要求
塊接口已打開。
操作步驟
要聲明 STRUCT 數(shù)據(jù)類型的變量,請按以下步驟操作:
在塊接口中,選擇需聲明的部分。 在“名稱”(Name) 列中,輸入變量的名稱。 在“數(shù)據(jù)類型”列中輸入“Struct”。輸入時系統(tǒng)將提供自動完成功能。 在新變量后將插入空的縮進(jìn)行。 在第一個空行中插入第一個結(jié)構(gòu)元素。 在該元素后會再插入一個空行。 選擇結(jié)構(gòu)元素的數(shù)據(jù)類型。 可選:更改在塊接口其它列中顯示的結(jié)構(gòu)元素的屬性。 對于所有其它結(jié)構(gòu)元素,重復(fù)執(zhí)行步驟 4 到 6。 不必顯式完成該結(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)造自己的程序。例如,可以在多個全局?jǐn)?shù)據(jù)塊中創(chuàng)建結(jié)構(gòu)。 |
TRUCT 聲明
STRUCT 數(shù)據(jù)類型是指一種元素數(shù)量固定但數(shù)據(jù)類型不同的數(shù)據(jù)結(jié)構(gòu)。
也可以基于 PLC 數(shù)據(jù)類型 (UDT) 創(chuàng)建結(jié)構(gòu)。為此,需將 PLC 數(shù)據(jù)類型指定為一個結(jié)構(gòu)化數(shù)據(jù)類型。小系統(tǒng)將通過工具提示,顯示該 PLC 數(shù)據(jù)類型的各個元素。
語法
聲明 STRUCT 所用的語法如下:
聲明 | 語法 | 示例 |
---|---|---|
STRUCT |
<名稱> : Struct <元素名稱> : <數(shù)據(jù)類型> [:= <值>]; <元素名稱> : <數(shù)據(jù)類型> [:= <值>]; ... END_Struct := (<初始化列表>); |
myStruct : Struct mem_1 : Int; mem_2 : Int; mem_3 : BOOL; END_Struct := (6,0, TRUE) ; |
基于 PLC 數(shù)據(jù)類型 (UDT) 的 STRUCT |
<名稱> : " |
myStruct : "myType" := (6,0, TRUE); |
說明 S7-1500:一個數(shù)據(jù)塊中最多有 252 個結(jié)構(gòu) S7-1500 系列 CPU 中的一個數(shù)據(jù)塊中最多允許有 252 個結(jié)構(gòu)。如果需要更多結(jié)構(gòu),則必須重新構(gòu)造自己的程序。例如,可以在多個全局?jǐn)?shù)據(jù)塊中創(chuàng)建結(jié)構(gòu)。 |
STRUCT 的初始化
STRUCT 初始化為可選操作。進(jìn)行初始化時,可在變量聲明后直接跟隨一個值,也可使用初始化列表。
初始化列表位于關(guān)鍵字 END_STRUCT 之后,包含在一個括號內(nèi)并通過 := 進(jìn)行賦值。如果該結(jié)構(gòu)中還包含下級結(jié)構(gòu),則可通過括號嵌套進(jìn)行初始化。如果這兩種初始化方式均未采用,則可使用初始化列表中的值。
初始化列表使用的語法如下所示:
聲明 | 語法 | 示例 | 注釋 |
---|---|---|---|
STRUCT 的初始化 |
<名稱> : Struct <元素名稱> : <數(shù)據(jù)類型> [:= <值>]; ... END_Struct |
myStruct : Struct mem_1 : Int := 1; mem_2 : Int := 2; mem_3 : BOOL := FALSE End_Struct |
該結(jié)構(gòu)中的元素將進(jìn)行如下初始化: // 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); |
該結(jié)構(gòu)中的元素將進(jìn)行如下初始化: // 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)); |
該結(jié)構(gòu)中的元素將進(jìn)行如下初始化: // mem_1 := 2 // mem_2 := 0 // mem_4 := TRUE // mem_5 := TRUE |
STRUC 的初始化列表(帶元素命名規(guī)范) | := (<元素名稱> := <值>), (<元素名稱> := <值>)... |
myStruct : Struct mem_1 : Int; mem_2 : Int; End_Struct:=(mem_2:=55); |
該結(jié)構(gòu)中的元素將進(jìn)行如下初始化: // mem_2 := 55 |
PLC 數(shù)據(jù)類型 (UDT) 的初始化列表 | := (<值>,<值>,<值>... ) | myStruct : "myType" := (2,0,TRUE); |
該結(jié)構(gòu)中的元素將進(jìn)行如下初始化: // mem_1 := 2 // mem_2 := 0 // mem_3 := TRUE |
嵌套 PLC 數(shù)據(jù)類型 (UDT) 的初始化列表 | := (<值>,(<值>,<值>... )) | myStruct : "myType" := (2,0,(TRUE,TRUE); |
該結(jié)構(gòu)中的元素將進(jìn)行如下初始化: // mem_1 := 2 // mem_2 := 0 // mem_3 := TRUE // mem_4 := TRUE |
PLC 數(shù)據(jù)類型 (UDT) 的初始化列表(帶元素命名規(guī)范) | := (<元素名稱> := <值>), (<元素名稱> := <值>)... | myStruct : "myType" := (mem_1:=22,mem_2:=55); |
該結(jié)構(gòu)中的元素將進(jìn)行如下初始化: // mem_1 := 22 // mem_2 := 55 |
審核編輯:湯梓紅
-
plc
+關(guān)注
關(guān)注
5010文章
13271瀏覽量
463067 -
西門子
+關(guān)注
關(guān)注
94文章
3034瀏覽量
115782 -
數(shù)據(jù)類型
+關(guān)注
關(guān)注
0文章
236瀏覽量
13618 -
Struct
+關(guān)注
關(guān)注
0文章
31瀏覽量
10864
原文標(biāo)題:西門子博途:聲明 STRUCT 數(shù)據(jù)類型的變量
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論