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