0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

char和string在西門子PLC中的格式

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 作者: 微笑應對 ? 2022-07-21 09:10 ? 次閱讀

一、char 和 string 的定義:

1、數(shù)據(jù)類型為 char (Character) 的變量長度為 8 bit 位,占用1個 byte 的內存。char 數(shù)據(jù)類型將單個字符存儲為 ASCII 編碼形式。

通常是指計算機中使用的字母、數(shù)字和符號,包括:1、2、3、A、B、C、常見符號等。每個字符占用空間為1字節(jié)。

2、數(shù)據(jù)類型為 string 的操作數(shù)可存儲多個字符,最多可包括 254 個字符。字符串中的第一個字節(jié)為總長度,第二個字節(jié)為有效字符數(shù)量。

字符串(string)在存儲上類似字符的數(shù)組,所以它每一個元素都是可以提取的字符,如:"abcdefg"叫字符串,而其中的每個元素叫字符。

二、char 和 string 在西門子 PLC 中的格式

例如,在 PLC 中創(chuàng)建一個 DB 塊,并將屬性設置為標準 DB 塊,在 DB1 塊中創(chuàng)建如下的字符串和字符,并賦予起始值。如下圖所示:

372bf478-0834-11ed-ba43-dac502259ad0.png

圖.01

1、string 數(shù)據(jù)類型的格式

下載到 PLC 中,通過監(jiān)視表逐個查看每個字節(jié)中的值。如下圖所示:

37474a84-0834-11ed-ba43-dac502259ad0.png

圖.02

可以看出:

a.數(shù)據(jù)類型為 string 的字符串,通過查看 DB 塊偏移地址可見該字符串占用256字節(jié);查看字符串第一個字節(jié),其最多存儲字符總數(shù)量為254個。

b.數(shù)據(jù)類型為 string[10] 的字符串,通過查看 DB 塊偏移地址可見該字符串占用12字節(jié);查看字符串第一個字節(jié),其最多存儲字符數(shù)量為10個。

c.字符串的第一個字節(jié)為該字符串總長度,第二個字節(jié)為當前存儲的有效字符數(shù)量。

2、char 和16進制數(shù)的關系

在計算機領域,所有的數(shù)據(jù)都是以2進制數(shù)存儲的,那么 char,16進制數(shù)和2進制數(shù)又有什么關系?

如下圖所示:

3763227c-0834-11ed-ba43-dac502259ad0.png

圖.03

可以看出:

a.通過字符 'A' 的16進制數(shù)和2進制數(shù),可見字符(char)、16進制數(shù)只是在 PLC 中顯示的形式不同,實際存儲的是一個2進制值。

b.通過字符 '1' 和數(shù)值1(MB0的值)的16進制數(shù)和2進制數(shù),可見字符 '1' 和數(shù)值1是兩種不同數(shù)據(jù)。因此,實際使用是必須注意區(qū)別。

c.下圖是 ASCII 字符(char):'0','1',……'E','F' 對應的2進制,10進制,16進制對應關系的截圖。

379812fc-0834-11ed-ba43-dac502259ad0.png

圖.04

更多的 ASCII 字符對應關系,請查看下面的鏈接。

ASCII 碼表鏈接:ASCII

三、使用 string 數(shù)據(jù)類型在 HMI 上顯示漢字

例如,在某些不支持 WString 數(shù)據(jù)類型(關于 WString 參見:跳轉鏈接)的 HMI 設備上顯示漢字,也是可以使用 string 數(shù)據(jù)類型顯示的。

但由于 string 數(shù)據(jù)類型中存儲的漢字編碼標準為 GBK 編碼;因此,需要在 HMI 設備上選擇相應的編碼標準。

如下圖所示,在 string 數(shù)據(jù)類型的起始值中定義漢字 '你好',且字符背景底色為淺黃色(編譯時會有警告信息,這是TIA軟件建議 string 數(shù)據(jù)類型中不使用漢字的友情提示),但不影響使用。

37b0b33e-0834-11ed-ba43-dac502259ad0.png

圖.05

在線監(jiān)控時發(fā)現(xiàn)漢字無法按 Unicode 編碼方式正確顯示,設置顯示格式為16進制數(shù),通過下圖所示的字符編碼對應關系,發(fā)現(xiàn)其對應的是 GBK 編碼。如下圖所示:

3833dd7c-0834-11ed-ba43-dac502259ad0.png

圖.06

所以,在 HMI 設備上顯示 string 數(shù)據(jù)類型中存儲的漢字時,需要在 HMI 上設置對應的 GBK 編碼方式,是可以顯示漢字的。

關于16進制數(shù)和 GBK 編碼對應關系,可以通過如下網(wǎng)址查詢:GBK

四、常問問題:

1、HTA 和 ATH 指令的輸入和輸出使用限制?

通過 TIA 軟件的在線幫助,查看指令功能說明:

指令 HTA 功能——輸入范圍為16進制數(shù):16#0,1,……E,F,輸出范圍為由 ASCII 字符(char):'0','1',……'E','F' 組成的數(shù)組或字符串 。

指令 ATH 功能——輸入范圍為由 ASCII 字符(char):'0','1',……'E','F' 組成的數(shù)組或字符串,輸出范圍為16進制數(shù):16#0,1,……E,F 。

注意:指令 ATH 和指令 HTA 的輸入和輸出都是受到限制的。

2、HTA 和 ATH 指令的作用?

在具體的應用中需要互相轉換字符('0','1',……'E','F')和16進制數(shù)值(16#0,1,……E,F),那么HTA和ATH就為轉換這兩種類型的數(shù)據(jù)提供了方便。

以 HTA 指令為例,在 OB1 中調用 HTA 指令,實現(xiàn)如下要求的轉換:

a.W#16#12AB需要轉換為 ASCII 字符數(shù)組,使用 HTA 指令轉換結果為 CHAR#['1','2','A','B']。

b.W#16#12AB需要轉換為 ASCII 字符串,使用 HTA 指令轉換結果為 '12AB' 。

如下圖所示:

385897a2-0834-11ed-ba43-dac502259ad0.png

圖.07

結果:使用 HTA 指令轉換后,數(shù)據(jù)類型及占用字節(jié)空間發(fā)生了變化;同樣的,使用 ATH 指令可以做反向轉換,這里不再舉例說明。

3、字符串存儲的 'abcdef',通過賦值更新為了 'DCBA',為何查看字符存儲單元時,字符 'e' 和 'f' 還能監(jiān)視到?該如何處理?

簡單測試程序,如下圖所示:

3882d080-0834-11ed-ba43-dac502259ad0.png

圖.08

當M0.0觸發(fā)之后,再觸發(fā)M0.2,結果如下圖所示:

389f486e-0834-11ed-ba43-dac502259ad0.png

圖.09

例子中,6字符的字符串更新為4字符的字符串,原字符串的后2個字符沒有更新;倘若這10個字符的字符串需要通過串口或 TCP 通信完整(字符串總長12字節(jié))的發(fā)送到通信伙伴,那么在字符串信息更新后的發(fā)送信息中將包含這兩個不需要發(fā)送的字符。

結果:字符串更新時,僅更新有效字符數(shù)量的部分。

建議處理方法:更新字符串之前,先清空該字符串中所有字符。

4、如何輸入特殊字符(如:回車,換行,$ 等)?

例如,需要輸入的字符串為 '$ABCD$+回車+換行',可以參考如下表格:

38bcdaaa-0834-11ed-ba43-dac502259ad0.png

圖.10

根據(jù)表格說明,字符串在 PLC 中的書寫格式:'$$ABCD$$$R$L' 或 '$$ABCD$$$N',如下圖所示:

38dd0938-0834-11ed-ba43-dac502259ad0.png

圖.11

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • plc
    plc
    +關注

    關注

    5004

    文章

    13054

    瀏覽量

    460943
  • 西門子
    +關注

    關注

    93

    文章

    2977

    瀏覽量

    115332
  • 數(shù)據(jù)類型

    關注

    0

    文章

    236

    瀏覽量

    13582
  • string
    +關注

    關注

    0

    文章

    40

    瀏覽量

    4713

原文標題:PLC中char 和 string 的定義

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    西門子plc接線原理圖

    西門子plc接線圖
    發(fā)表于 02-21 14:51 ?1949次下載
    <b class='flag-5'>西門子</b><b class='flag-5'>plc</b>接線原理圖

    西門子PLC板坯連鑄系統(tǒng)的應用

    西門子PLC板坯連鑄系統(tǒng)的應用 本文主要介紹了板坯連鑄的生產工藝及其系統(tǒng)概況,以及西門子PLC
    發(fā)表于 06-17 14:36 ?1267次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>PLC</b><b class='flag-5'>在</b>板坯連鑄系統(tǒng)<b class='flag-5'>中</b>的應用

    西門子PLC實例電子教程

    本書為西門子PLC實例電子教程,第一章就對PLC進行了概述,通過實例對 西門子 PLC進行了深度闡述,適合廣大
    發(fā)表于 07-19 16:09 ?0次下載
    <b class='flag-5'>西門子</b><b class='flag-5'>PLC</b>實例電子教程

    西門子PLC案例

    西門子PLC案例,感興趣的小伙伴們可以看看。
    發(fā)表于 07-29 18:42 ?164次下載

    西門子plc資料數(shù)碼顯示

    西門子plc資料
    發(fā)表于 04-05 10:10 ?3次下載

    西門子plc的型號選擇_西門子plc型號說明

    本文主要介紹了西門子plc的型號選擇及型號說明。首先需要根據(jù)工藝要求:確定輸入、輸出點數(shù),也就是DI、DO、AI、AO。
    發(fā)表于 07-25 10:38 ?2.4w次閱讀

    西門子plc數(shù)據(jù)類型_西門子plc通訊方式

    西門子PLC的品質非常好,其網(wǎng)絡穩(wěn)定性、開放性深受工控人員的喜愛,而且編程軟件分類多,使用方便。國內工控界具有顯著地位。雖然大家對西門子PLC
    發(fā)表于 07-25 10:57 ?1.4w次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>plc</b>數(shù)據(jù)類型_<b class='flag-5'>西門子</b><b class='flag-5'>plc</b>通訊方式

    西門子PLC中使用SCL語言編程的技巧

    西門子PLC中使用SCL語言編程的技巧說明。
    發(fā)表于 04-22 11:15 ?63次下載

    讀寫西門子PLC

    讀寫西門子PLC資料。
    發(fā)表于 05-10 09:33 ?33次下載

    西門子PLC中文手冊

    西門子PLC中文手冊
    發(fā)表于 06-24 15:36 ?53次下載

    charstring西門子PLC格式

    數(shù)據(jù)類型為 char (Character) 的變量長度為 8 bit 位,占用1個 byte 的內存。char 數(shù)據(jù)類型將單個字符存儲為 ASCII 編碼形式。
    的頭像 發(fā)表于 07-07 17:05 ?1.5w次閱讀

    西門子PLC編程軟件功能及安裝

    西門子PLC編程軟件官方版是一款專為西門子產品打造的PLC編程工具。西門子PLC編程軟件最新版支
    發(fā)表于 04-17 14:31 ?8次下載
    <b class='flag-5'>西門子</b><b class='flag-5'>PLC</b>編程軟件功能及安裝

    西門子PLC控制經(jīng)典案例

    西門子PLC控制經(jīng)典案例
    的頭像 發(fā)表于 06-27 14:02 ?4060次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>PLC</b>控制經(jīng)典案例

    西門子PLC系列的區(qū)別 西門子PLC指示燈報警解決方案

    西門子是全球知名的自動化解決方案提供商,其PLC(可編程邏輯控制器)系列產品廣泛應用于工業(yè)控制領域。不同系列的PLC功能、性能和適用范圍上有所區(qū)別。本文將詳細介紹
    發(fā)表于 08-04 10:15 ?2832次閱讀

    西門子PLCOB塊的功能詳解

    西門子PLC(Programmable Logic Controller)作為工業(yè)自動化領域的核心設備,其內部功能強大、應用廣泛。西門子PLC
    的頭像 發(fā)表于 06-15 11:27 ?3387次閱讀