要求
塊接口已打開。
操作步驟
要聲明 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
+關注
關注
4980文章
12309瀏覽量
455494 -
西門子
+關注
關注
92文章
2865瀏覽量
113921 -
數據類型
+關注
關注
0文章
229瀏覽量
13529 -
Struct
+關注
關注
0文章
29瀏覽量
10819
原文標題:西門子博途:聲明 STRUCT 數據類型的變量
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論