一、wchar 和 wstring 的定義:
1、數(shù)據(jù)類型為 wchar(寬字符)的變量長(zhǎng)度為 16 位,占用2個(gè) byte 的內(nèi)存。wchar數(shù)據(jù)類型將擴(kuò)展字符集中的單個(gè)字符保存為 UFT-16 編碼形式。
2、數(shù)據(jù)類型為 wstring (寬字符串)的操作數(shù)用于在一個(gè)字符串中存儲(chǔ)多個(gè)數(shù)據(jù)類型為 wchar 的 Unicode 字符。如果未指定長(zhǎng)度,則字符串的長(zhǎng)度為預(yù)置的 254 個(gè)字。
Unicode 是國(guó)際標(biāo)準(zhǔn)字符集,可譯為萬(wàn)國(guó)碼或統(tǒng)一碼等,包含中日韓越漢字和世界上絕大多數(shù)語(yǔ)言文字。
二、wchar 和 wstring 在西門子 PLC 中的格式
本節(jié)以漢字為例說(shuō)明漢字在西門子 PLC 中的格式。
例如,在 PLC 中創(chuàng)建一個(gè) DB 塊,并將屬性設(shè)置為標(biāo)準(zhǔn) DB 塊,在 DB1 塊中創(chuàng)建如下的漢字字符串和漢字字符,并賦予起始值。如下圖所示:

圖.01
1、wstring 數(shù)據(jù)類型的格式
下載到 PLC 中,通過(guò)監(jiān)視表逐個(gè)查看每個(gè)字中的值。如下圖所示:

圖.02
可以看出:
a.數(shù)據(jù)類型為 wstring 的漢字字符串,通過(guò)查看 DB 塊偏移地址可見(jiàn)該字符串占用254字;查看字符串第一個(gè)字,其最多存儲(chǔ)漢字字符總數(shù)量為254個(gè)。
b.數(shù)據(jù)類型為 wstring[10] 的漢字字符串,通過(guò)查看 DB 塊偏移地址可見(jiàn)該字符串占用12字;查看字符串第一個(gè)字,其最多存儲(chǔ)漢字字符數(shù)量為10個(gè)。
c.漢字字符串的第一個(gè)字為該字符串總長(zhǎng)度,第二個(gè)字為當(dāng)前存儲(chǔ)的有效字符數(shù)量。
2、wchar 和16進(jìn)制數(shù)的關(guān)系
在計(jì)算機(jī)領(lǐng)域,所有的數(shù)據(jù)都是以2進(jìn)制數(shù)存儲(chǔ)的,那么 wchar,16進(jìn)制數(shù)和2進(jìn)制數(shù)又有什么關(guān)系?
如下圖所示:

圖.03
可以看出:
a.通過(guò)漢字字符 ‘好’ 的16進(jìn)制數(shù)和2進(jìn)制數(shù),可見(jiàn)字符(wchar)、16進(jìn)制數(shù)只是在PLC中顯示的形式不同,實(shí)際存儲(chǔ)的是一個(gè)2進(jìn)制值。
通過(guò)下面的網(wǎng)頁(yè),可以查看漢字和16進(jìn)制數(shù)的對(duì)應(yīng)關(guān)系。
unicode 轉(zhuǎn)中文,中文轉(zhuǎn) unicode,鏈接:Unicode碼
b.通過(guò)漢字字符 ‘1’ 的16進(jìn)制數(shù)和2進(jìn)制數(shù),可見(jiàn)漢字字符(wchar)‘1’ 顯示的16進(jìn)制數(shù)為16#0031,而字符(char)‘1’ 對(duì)應(yīng)的16進(jìn)制數(shù)為16#31。因此,如果使用 wchar 存儲(chǔ)僅占一個(gè)字節(jié)的 char 字符時(shí),則高八位為16#00,低八位是相同的,都是2進(jìn)制的2#0011_0001。
三、常問(wèn)問(wèn)題:
1、定義為 wstring 的字符串,是否能保存數(shù)字和英文字母的字符?
可以。
例如,wchar#‘A’,實(shí)際存儲(chǔ)時(shí),對(duì)應(yīng)的16進(jìn)制數(shù)為16#0041,wchar#‘1’,實(shí)際存儲(chǔ)時(shí),對(duì)應(yīng)的16進(jìn)制數(shù)為16#0031。
如下圖所示:

圖.04
也就是說(shuō),使用 wchar 存儲(chǔ)僅占一個(gè)字節(jié)的英文字母或數(shù)字時(shí),對(duì)應(yīng) wchar 的字的高八位將為16#00。
2、如何輸入特殊字符(如:回車,換行,$ 等)?
例如,需要輸入的漢字字符串為 ‘$早上好$+回車+換行’,可以參考如下表格:

圖.05
根據(jù)表格說(shuō)明,字符串在 PLC 中的書寫格式:‘$$早上好$$$R$L’或‘$$早上好$$$N’,如下圖所示:

圖.06
審核編輯:郭婷
-
plc
+關(guān)注
關(guān)注
5051文章
14594瀏覽量
486921 -
西門子
+關(guān)注
關(guān)注
98文章
3312瀏覽量
120382
原文標(biāo)題:S7-1200 wchar 和 wstring
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
???????通過(guò)西門子平臺(tái) API 接口高效獲取 XMZ 詳情數(shù)據(jù)
西門子PLC如何使用Modbus 485通訊傳輸接收數(shù)據(jù)
宏集方案 | 如何輕松管理西門子S7 PLC?S7Comm: 與西門子 PLC 直接通信的關(guān)鍵
使用C#實(shí)現(xiàn)西門子PLC數(shù)據(jù)定時(shí)讀取保存
plc以太網(wǎng)通訊模塊:西門子 S7-300PLC 與 S7-1200、觸摸屏及變頻器通訊案例
開(kāi)疆智能ModbusTCP轉(zhuǎn)Profient網(wǎng)關(guān)連接西門子PLC與川崎機(jī)器人配置案例
西門子PLC免點(diǎn)表數(shù)據(jù)采集方案
西門子PLC(S7-1200/1500/300/400)的數(shù)據(jù)采集與監(jiān)控方案
西門子S7-200 PLC:數(shù)據(jù)采集與遠(yuǎn)程調(diào)試上下載解決方案
如何破解三菱PLC與西門子PLC的通訊難題
工業(yè)智能網(wǎng)關(guān)可以采集西門子PLC嗎
OPC UA數(shù)采網(wǎng)關(guān)實(shí)現(xiàn)西門子PLC數(shù)據(jù)采集到MES平臺(tái)
MCGS觸摸屏與西門子S7系列PLC以太網(wǎng)通信
數(shù)據(jù)類型wchar和wstring在西門子PLC中的應(yīng)用
評(píng)論