要求
塊接口已打開。
操作步驟
要聲明 STRUCT 數據類型的變量,請按以下步驟操作:
|
在塊接口中,選擇需聲明的部分。 在“名稱”(Name) 列中,輸入變量的名稱。 在“數據類型”列中輸入“Struct”。輸入時系統將提供自動完成功能。 在新變量后將插入空的縮進行。 在第一個空行中插入第一個結構元素。 在該元素后會再插入一個空行。 選擇結構元素的數據類型。 可選:更改在塊接口其它列中顯示的結構元素的屬性。 對于所有其它結構元素,重復執行步驟 4 到 6。 不必顯式完成該結構。結構會以輸入的最后一個元素結束。 要在結構后插入新變量,請在結構結尾后留一個空行,然后在第二個空行中啟動新變量。 |
結果
創建數據類型 STRUCT 的變量。
|
說明 S7-1500:一個數據塊中最多有 252 個結構 一個數據塊中最多允許有 252 個結構。如果需要更多結構,則必須重新構造自己的程序。例如,可以在多個全局數據塊中創建結構。 |
TRUCT 聲明
STRUCT 數據類型是指一種元素數量固定但數據類型不同的數據結構。
也可以基于 PLC 數據類型 (UDT) 創建結構。為此,需將 PLC 數據類型指定為一個結構化數據類型。小系統將通過工具提示,顯示該 PLC 數據類型的各個元素。
語法
聲明 STRUCT 所用的語法如下:
| 聲明 | 語法 | 示例 |
|---|---|---|
| STRUCT |
<名稱> : Struct <元素名稱> : <數據類型> [:= <值>]; <元素名稱> : <數據類型> [:= <值>]; ... END_Struct := (<初始化列表>); |
myStruct : Struct mem_1 : Int; mem_2 : Int; mem_3 : BOOL; END_Struct := (6,0, TRUE) ; |
| 基于 PLC 數據類型 (UDT) 的 STRUCT |
<名稱> : " |
myStruct : "myType" := (6,0, TRUE); |
|
說明 S7-1500:一個數據塊中最多有 252 個結構 S7-1500 系列 CPU 中的一個數據塊中最多允許有 252 個結構。如果需要更多結構,則必須重新構造自己的程序。例如,可以在多個全局數據塊中創建結構。 |
STRUCT 的初始化
STRUCT 初始化為可選操作。進行初始化時,可在變量聲明后直接跟隨一個值,也可使用初始化列表。
初始化列表位于關鍵字 END_STRUCT 之后,包含在一個括號內并通過 := 進行賦值。如果該結構中還包含下級結構,則可通過括號嵌套進行初始化。如果這兩種初始化方式均未采用,則可使用初始化列表中的值。
初始化列表使用的語法如下所示:
| 聲明 | 語法 | 示例 | 注釋 |
|---|---|---|---|
| STRUCT 的初始化 |
<名稱> : Struct <元素名稱> : <數據類型> [:= <值>]; ... END_Struct |
myStruct : Struct mem_1 : Int := 1; mem_2 : Int := 2; mem_3 : BOOL := FALSE End_Struct |
該結構中的元素將進行如下初始化: // mem_1 := 1 // mem_2 := 2 // mem_3 := FALSE |
| STRUC 的初始化列表 | := (<值>,<值>,<值>... ) |
myStruct : Struct mem_1 : Int; mem_2 : Int; mem_3 : BOOL End_Struct:=(2,0,TRUE); |
該結構中的元素將進行如下初始化: // mem_1 := 2 // mem_2 := 0 // mem_3 := TRUE |
| 嵌套 STRUC 的初始化列表 | := (<值>,(<值>,<值>... )) |
myStruct : Struct mem_1 : Int; mem_2 : Int; mem_3 : Struct mem_4 : BOOL; mem_5 : BOOL; End_Struct; End_Struct:=(2,0, (TRUE,TRUE)); |
該結構中的元素將進行如下初始化: // mem_1 := 2 // mem_2 := 0 // mem_4 := TRUE // mem_5 := TRUE |
| STRUC 的初始化列表(帶元素命名規范) | := (<元素名稱> := <值>), (<元素名稱> := <值>)... |
myStruct : Struct mem_1 : Int; mem_2 : Int; End_Struct:=(mem_2:=55); |
該結構中的元素將進行如下初始化: // mem_2 := 55 |
| PLC 數據類型 (UDT) 的初始化列表 | := (<值>,<值>,<值>... ) | myStruct : "myType" := (2,0,TRUE); |
該結構中的元素將進行如下初始化: // mem_1 := 2 // mem_2 := 0 // mem_3 := TRUE |
| 嵌套 PLC 數據類型 (UDT) 的初始化列表 | := (<值>,(<值>,<值>... )) | myStruct : "myType" := (2,0,(TRUE,TRUE); |
該結構中的元素將進行如下初始化: // mem_1 := 2 // mem_2 := 0 // mem_3 := TRUE // mem_4 := TRUE |
| PLC 數據類型 (UDT) 的初始化列表(帶元素命名規范) | := (<元素名稱> := <值>), (<元素名稱> := <值>)... | myStruct : "myType" := (mem_1:=22,mem_2:=55); |
該結構中的元素將進行如下初始化: // mem_1 := 22 // mem_2 := 55 |
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
plc
+關注
關注
5051文章
14594瀏覽量
486904 -
西門子
+關注
關注
98文章
3312瀏覽量
120377 -
數據類型
+關注
關注
0文章
237瀏覽量
14185 -
Struct
+關注
關注
0文章
31瀏覽量
11266
原文標題:西門子博途:聲明 STRUCT 數據類型的變量
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
Verilog 變量聲明與數據類型二
Verilog 變量聲明與數據類型二上節介紹了wire,reg數據類型及其用法,并對變量定義中的向量的定義及使用做了說明。本節主要介紹其它幾
發表于 08-06 09:21
Verilog 變量聲明與數據類型一
Verilog 變量聲明與數據類型一Verilog語法中最基本的數據類型有 線網(wire),寄存器(reg)和整數(integer)三種類型
發表于 08-10 14:01
西門子plc數據類型_西門子plc通訊方式
西門子PLC的品質非常好,其網絡穩定性、開放性深受工控人員的喜愛,而且編程軟件分類多,使用方便。在國內工控界具有顯著地位。雖然大家對西門子PLC都有一定的了解,但要你說出西門子PLC各種通信方式的特點,相信很多人都不能完整答出。
發表于 07-25 10:57
?1.6w次閱讀
西門子PLC模擬量輸入輸出相關數據類型轉換
plc模擬量輸入輸出都會涉及到數據類型的互轉問題,然而西門子300系統對于數據格式有著明確的規定,一般的四則運算都是在同一數據類型下才能進行的,這也是一直以來困擾初學者的一個問題。
發表于 03-19 08:42
?2.1w次閱讀
重視變量的數據類型
不管在什么語言中,定義一個變量時必然要在內存中開辟一個相應大小的空間來存儲該變量。不同的數據類型在內存所占的空間大小不同,其所能表示的數據范圍也不相同。在單片機C語言中,常用的基本
發表于 01-13 15:05
?1次下載
西門子博途F型PLC數據類型與標準PLC數據類型的差別
可以像使用標準 PLC 數據類型 (UDT) 那樣,聲明和使用 F 型 PLC 數據類型 (UDT) 。可以在安全程序中以及標準用戶程序中使用 F 型 PLC 數據類型 (U
結構數據類型(Struct)及應用案例
Struct數據類型使用非常靈活,隨時可以使用,但是相對于PLC數據類型 (UDT) 有以下缺點,所以建議需要使用Struct類型時,可以使
ARRAY 數據類型的變量
要求 全局數據塊已打開。 操作步驟 要聲明一個 ARRAY 數據類型的變量,請按以下步驟操作: 在“名稱”(Name) 列中,輸入變量的名稱
西門子PLC UDT數據類型的使用方法
西門子PLC(Programmable Logic Controller)的自定義數據類型(User Defined Type,簡稱UDT)是一種自定義的數據結構,可以根據具體需求定義一種包含多個不同
西門子博途中聲明STRUCT數據類型的變量
評論