基于樹莓派的CODESYS編程(6)——ST語言編程的基礎(chǔ):字符串?dāng)?shù)據(jù)類型
基于樹莓派的CODESYS編程(6)——ST語言編程的基礎(chǔ):字符串?dāng)?shù)據(jù)類型
founderchip
原創(chuàng)工業(yè)智能控制領(lǐng)域(PLC、單片機、嵌入式、機器人、通信)的技術(shù)及經(jīng)驗分享。
字符串是一種數(shù)據(jù)類型,它是字符的集合。不同的編程環(huán)境對字符串的處理不盡相同。今天這篇文章,來介紹下CODESYS的字符串?dāng)?shù)據(jù)類型,并與西門子S7-1200/1500進行簡單的對比。本文包括如下三個主題:
字符串(STRING);
寬字符串(WSTRING);
-
S7-1200/1500的字符串?dāng)?shù)據(jù)類型;
1、字符串(STRING)
CODESYS的字符串由N個字符和1個結(jié)束字符組成。如果在聲明字符串變量時沒有對長度進行設(shè)置,則CODESYS默認分配80個字符長度的內(nèi)存,加上結(jié)束字符,總計長度81個字節(jié)。
比如下面的變量的聲明:strName實際占用內(nèi)存為81個字節(jié);
strName : STRING;
//默認情況下字符串分配80個字節(jié)長度
可以在聲明變量的同時使用括號“()”指定其字符數(shù)量,也就是字符串的長度。
比如下面的變量聲明:strRcvData的實際占用內(nèi)存為201個字節(jié)(200個數(shù)據(jù)字符+1個結(jié)束字符)
strRcvData : STRING(
200
);
//指定字符長度為200個字節(jié)
CODESYS本身并不限制字符串的長度,不過字符串處理函數(shù)只能處理長度為1~255的字符串,因此需要指定字符串長度時,最大應(yīng)為255。
可以使用單引號來聲明字符串常量,比如:
VAR CONSTANT
JK : STRING(
5
):=
’Jack’
;
//JK字符串常量,占用6個字節(jié)
RS: STRING(
5
):=
’Rose’
;
//JK字符串常量,占用6個字節(jié)
END_VAR
2、寬字符串(WSTRING)
字符串(STRING)中的字符采用ASCII編碼,每個ASCII編碼的字符長度為1個字節(jié)。ASCII編碼最多能表達256種含義,無法處理漢字等東方文字。這種情況下需要采用Unicode編碼。Unicode編碼采用多個字節(jié)表示一個字符,其字符集簡寫為UCS(Unicode Character Set)。常見的Unicode字符集有UCS-2和UCS-4,UCS-2用兩個字節(jié)編碼,UCS-4用4個字節(jié)編碼。
寬字符串中的字符是采用Unicode編碼的字符,一般情況下使用2個字節(jié)表示一個字符。
比如聲明一個wstrName的寬字符串:
wstrName
:WSTRING
;
//
聲明一個寬字符串
wstrName沒有指定字符長度,默認為80個寬字符。寬字符串也需要一個寬字符作為結(jié)束字符,因此其默認長度為81個寬字符。假設(shè)每個寬字符的長度為2個字節(jié),則該字符串占用內(nèi)存為162個字節(jié)。
當(dāng)然,為了節(jié)省內(nèi)存,建議在聲明字符串時指定其長度,比如:
wstrName10:WSTRING(
10
);
//聲明一個寬字符串,長度為10個寬字符
也可以聲明寬字符串常量,比如:
VAR CONSTANT
GREETING : WSTRING(
10
):=
’你好,偉大的祖國’
;
//寬字符串常量
END_VAR
3、西門子S7-1200/1500的字符串?dāng)?shù)據(jù)類型
在西門子S7-1200/1500系列PLC的編程中,字符串?dāng)?shù)據(jù)類型最多占用256個字節(jié)的存儲區(qū),最多可以存儲254個字符,剩下的2個字節(jié)用來存儲字符串的最大長度(第1個字節(jié))和當(dāng)前長度(第2個字節(jié)),如下圖所示:
比如字符串’Name’有4個字符,它實際占用6個字節(jié)的存儲區(qū)。
聲明字符串變量時可以用方括號“[]”指定其最大長度,比如String[10]的最大長度為10個字符,占用12個字節(jié)的存儲區(qū)。
除了STRING類型,也支持寬字符串WSTRING類型。我的新書《西門子S7-1200/1500 PLC SCL語言編程從入門到精通》對此也有很詳細的介紹,該書即將上市。
好了,關(guān)于CODESYS的字符串?dāng)?shù)據(jù)類型就先介紹到這里。
我的視頻號以視頻的方式分享工控小知識,歡迎觀看:
你喜歡,就好
微信掃一掃贊賞作者
贊賞
發(fā)送給作者
人贊賞
長按二維碼向我轉(zhuǎn)賬
你喜歡,就好
受蘋果公司新規(guī)定影響,微信 iOS 版的贊賞功能被關(guān)閉,可通過二維碼轉(zhuǎn)賬支持公眾號。
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計算焓和比熱容 2020-08-31
-
Aspen Plus安裝過程中RMS License證書安裝失敗的解決方法,親測有效! 2021-10-15
-
CAD外部參照無法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
