結(jié)構(gòu)數(shù)據(jù)類型(Struct)
Struct類型是一種由多個不同數(shù)據(jù)類型元素組成的數(shù)據(jù)結(jié)構(gòu),其元素可以是基本數(shù)據(jù)類型,也可以是Struct、數(shù)組等復(fù)雜數(shù)據(jù)類型以及PLC數(shù)據(jù)類型(UDT)等。
Struct類型嵌套Struct類型的深度限制為 8 級。Struct類型的變量在程序中可作為一個變量整體,也可單獨使用組成該Struct的元素。
Struct 類型可以在DB、OB/FC/FB接口區(qū)、PLC數(shù)據(jù)類型(UDT) 處定義使用。
Struct數(shù)據(jù)類型使用非常靈活,隨時可以使用,但是相對于PLC數(shù)據(jù)類型 (UDT) 有以下缺點,所以建議需要使用Struct類型時,可以使用PLC數(shù)據(jù)類型(UDT)代替。
維護成本增加:如果對一個Struct進(jìn)行了多次復(fù)制,則在更改過程中該Struct也必需進(jìn)行相應(yīng)的多次更改。
Struct與 PLC 數(shù)據(jù)類型(UDT)的相同結(jié)構(gòu)不兼容。
由于系統(tǒng)會檢查所有結(jié)構(gòu)元素的類型是否匹配,因而會導(dǎo)致性能下降。
存儲空間要求增加:每個Struct都是一個單獨的對象,其描述信息將加載到PLC中。
Struct應(yīng)用案例
1. 單獨使用組成該Struct的元素時,和普通的變量沒有區(qū)別,只是每出現(xiàn)一個Struct的嵌套層級,變量名增加一個前綴,如圖1-2所示。
圖1 Struct的定義
圖2 Struct的使用
2. Struct可以將一種類型變量放在一起,利于區(qū)分,如圖3-4所示。
圖3 原始結(jié)構(gòu)
圖4 增加了Struct類型的結(jié)構(gòu)
圖4和圖3功能明顯相同,但圖4相對圖3,分類更加清晰。
3. 通訊程序中,通??梢园研枰l(fā)送的數(shù)據(jù)放在一個Struct中,即看做一個整體,這樣在發(fā)送區(qū)只需填寫一個變量即可,如圖5所示。
圖5 使用了圖4定義的Struct類型
4. MOVE指令支持相同Struct類型的直接傳送,如果傳送雙方是大量數(shù)據(jù),并且結(jié)構(gòu)相同,可以先分別將雙方數(shù)據(jù)建立在一個結(jié)構(gòu),然后用一個MOVE指令一次傳送即可,如圖6所示。
程序中直接MOVE,即可傳送整個Struct,而不需要若干MOVE。并且,即使兩邊Struct中的對應(yīng)元素名稱不同也可以傳送成功,如圖7所示。
圖7 Struct的傳送
審核編輯:劉清
-
plc
+關(guān)注
關(guān)注
5036文章
13906瀏覽量
474404 -
move
+關(guān)注
關(guān)注
0文章
12瀏覽量
7584 -
Struct
+關(guān)注
關(guān)注
0文章
31瀏覽量
11079
原文標(biāo)題:結(jié)構(gòu)數(shù)據(jù)類型(Struct)
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
GaussDB 數(shù)據(jù)類型介紹

Redis數(shù)據(jù)類型介紹

C語言中數(shù)據(jù)類型介紹(基本類型、構(gòu)造類型、指針類型、空類型)
Java的基本數(shù)據(jù)類型與條件結(jié)構(gòu)
Struct結(jié)構(gòu)數(shù)據(jù)類型
結(jié)構(gòu)數(shù)據(jù)類型(Struct)及應(yīng)用案例
用戶定義數(shù)據(jù)類型的結(jié)構(gòu)
SpinalHDL中Bundle數(shù)據(jù)類型的轉(zhuǎn)換
Go高性能-兩種內(nèi)存大小為0的數(shù)據(jù)類型
西門子博途有關(guān)STRUCT的基本信息

西門子博途:使用PLC數(shù)據(jù)類型 (UDT)

PLC 數(shù)據(jù)類型 (UDT) 的基本知識

評論