說明
STRUCT 數據類型是指一種元素數量固定但數據類型不同的數據結構。在結構中,也可嵌套 STRUCT 或 ARRAY 數據類型的元素。結構可用于根據過程控制系統分組數據以及作為一個數據單元來傳送參數。
變量中直接使用的結構聲明稱為匿名結構。匿名結構可具有以下形式:
所有后續說明都將基于該結構圖。
結構的嵌套深度和數量
在嵌套式結構中,包含至少一個附加結構作為元素。此時,可定義 65535 個函數、函數塊、數據塊和 PLC 數據類型。各 CPU 的具體上限值與塊類型和所有塊的總數相關。
結構描述(如,DB 或 PLC 數據類型 (UDT))中,每個層級最多可定義 16K 的元素。這些結構中的元素可以同樣為 ARRAY 或 STRUCT 數據類型。因此,結構化元素可以源自一個顯式聲明的 PLC 數據類型,而無任何限制。每個層級可包含 PLC 數據類型 (UDT)/SDT 的 16K 個元素。但一個塊中最多可包含 252 個“匿名結構”。
結構 (STRUCT) 的嵌套層級深度為 8 級。具體的嵌套深度取決于所使用的 CPU。
傳遞 STRUCT 數據類型的參數
STRUCT 數據類型可作為參數進行傳遞。有關將 STRUCT 作為參數的更多信息,請參見
“傳遞 STRUCT 數據類型的變量”
匿名結構的缺陷
在這種結構化變量中,元素的尋址方式都相同,而不考慮該元素采用 PLC 數據類型聲明,還是采用匿名結構聲明。
使用匿名結構具有以下缺點:
維護成本增加:如果對一個匿名結構進行了多次復制,則在更改過程中該匿名結構也必需進行相應的多次更改。
匿名結構與 PLC 數據類型 (UDT) 的相同結構不兼容。
由于系統會檢查所有結構元素的類型是否匹配,因而會導致性能下降。
存儲空間要求增加:每個匿名結構都是一個單獨的對象,其描述信息將加載到 AS 中。
示例
如果在一個 PLC 數據類型 (UDT) 中聲明數據類型為 STRUCT 的變量,則使用方式將增加(參見左圖)。但是,也可以直接使用數據類型 STRUCT 對變量進行聲明(參見右圖)。
使用或不使用 PLC 數據類型 (UDT) 對結構化變量“Motor”進行聲明:
PLC 數據類型 (UDT) 的結構化變量 | 非 PLC 數據類型 (UDT) 的結構化變量 |
---|---|
聲明 STRUCT 數據類型的變量 |
要求 塊接口已打開。
步驟
要聲明 STRUCT 數據類型的變量,請按以下步驟操作:
選擇接口中的相應聲明部分。 在“名稱”列中輸入變量名稱。 在“數據類型”列中輸入“Struct”。輸入時系統將提供自動完成功能。 在新變量后將插入空的縮進行。 在第一個空行中插入第一個結構元素。 在該元素后會再插入一個空行。 選擇結構元素的數據類型。 可選:更改在塊接口其它列中顯示的結構元素的屬性。 對所有其它結構元素重復步驟 4 到 7。 不必顯式完成該結構。結構會以輸入的最后一個元素結束。 要在結構后插入新變量,請在結構結尾后留一個空行,然后在第二個空行中啟動新變量。 |
結果 創建數據類型 STRUCT 的變量。
說明 S7-1500:一個數據塊中最多有 252 個結構 一個數據塊中最多允許有 252 個結構。如果需要更多結構,則必須重新構造自己的程序。例如,可以在多個全局數據塊中創建結構。 |
-
plc
+關注
關注
5008文章
13151瀏覽量
462064 -
西門子
+關注
關注
93文章
3008瀏覽量
115635 -
變量
+關注
關注
0文章
613瀏覽量
28329 -
數據類型
+關注
關注
0文章
236瀏覽量
13608 -
Struct
+關注
關注
0文章
31瀏覽量
10857
原文標題:西門子博途:有關 STRUCT 的基本信息
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論