結構數據類型(Struct)
Struct類型是一種由多個不同數據類型元素組成的數據結構,其元素可以是基本數據類型,也可以是Struct、數組等復雜數據類型以及PLC數據類型(UDT)等。Struct類型嵌套Struct類型的深度限制為 8 級。Struct類型的變量在程序中可作為一個變量整體,也可單獨使用組成該Struct的元素。Struct 類型可以在DB、OB/FC/FB接口區(qū)、PLC數據類型(UDT) 處定義使用。
Struct數據類型使用非常靈活,隨時可以使用,但是相對于PLC數據類型 (UDT) 有以下缺點,所以建議需要使用Struct類型時,可以使用PLC數據類型(UDT)代替。
維護成本增加:如果對一個Struct進行了多次復制,則在更改過程中該Struct也必需進行相應的多次更改。
Struct與 PLC 數據類型(UDT)的相同結構不兼容。
由于系統會檢查所有結構元素的類型是否匹配,因而會導致性能下降。
存儲空間要求增加:每個Struct都是一個單獨的對象,其描述信息將加載到PLC中。
Struct應用案例
1. 單獨使用組成該Struct的元素時,和普通的變量沒有區(qū)別,只是每出現一個Struct的嵌套層級,變量名增加一個前綴,如圖1-2所示。

圖1 Struct的定義

圖2 Struct的使用
2. Struct可以將一種類型變量放在一起,利于區(qū)分,如圖3-4所示。

圖3 原始結構

圖4 增加了Struct類型的結構
圖4和圖3功能明顯相同,但圖4相對圖3,分類更加清晰。
3. 通訊程序中,通??梢园研枰l(fā)送的數據放在一個Struct中,即看做一個整體,這樣在發(fā)送區(qū)只需填寫一個變量即可,如圖5所示。

圖5 使用了圖4定義的Struct類型
4. MOVE指令支持相同Struct類型的直接傳送,如果傳送雙方是大量數據,并且結構相同,可以先分別將雙方數據建立在一個結構,然后用一個MOVE指令一次傳送即可,如圖6所示。

程序中直接MOVE,即可傳送整個Struct,而不需要若干MOVE。并且,即使兩邊Struct中的對應元素名稱不同也可以傳送成功,如圖7所示。

圖7 Struct的傳送
審核編輯 :李倩
-
plc
+關注
關注
5040文章
14330瀏覽量
482416 -
數據類型
+關注
關注
0文章
237瀏覽量
14089
原文標題:結構數據類型(Struct)
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
使用18b20軟件包報錯怎么解決?
rtthread 5.20 安裝 systemview 2.52a 出錯的原因?
gd32h737 開啟cache程序跑飛是哪里的問題?
【嘉楠堪智K230開發(fā)板試用體驗】編寫一個GPIO 的字符驅動
飛凌嵌入式ElfBoard ELF 1板卡-Regmap使用
嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-I2C設備驅動之I2C驅動之溫濕度傳感器
嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-I2C設備驅動之I2C驅動構建流程
飛凌嵌入式ElfBoard ELF 1板卡-I2C設備驅動之I2C驅動構建流程
嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-platform總線驅動簡單示例
飛凌嵌入式ElfBoard ELF 1板卡-platform驅動控制LED
飛凌嵌入式ElfBoard ELF 1板卡-platform總線驅動簡單示例
飛凌嵌入式ElfBoard ELF 1板卡-字符驅動測試示例
【ELF 2學習板試用】04 ASoC中platform class
使用DMA寫flash后,讀取數據出現錯位現象,是什么原因導致的?如何解決?
零基礎開發(fā)小安派-Eyes-S1【外設篇】——PWM

Struct應用案例
評論