1.4 通過PLC 數(shù)據(jù)類型創(chuàng)建DB
PLC數(shù)據(jù)類型是一個用戶自定義的數(shù)據(jù)類型模板,可以由不同的數(shù)據(jù)類型組成,提供一個固定格式的數(shù)據(jù)結(jié)構(gòu),便于用戶使用。PLC數(shù)據(jù)類型的變量在程序中作為一個整體變量使用。
- 創(chuàng)建PLC 數(shù)據(jù)類型
在“PLC 數(shù)據(jù)類型”文件夾中,單擊“添加新數(shù)據(jù)類型”后,會創(chuàng)建和打開一個PLC 數(shù)據(jù)類型的聲明表。選擇該P(yáng)LC 數(shù)據(jù)類型,并在快捷菜單中選擇“重命名”命令,就可以給這個PLC數(shù)據(jù)類型重新命名。然后在聲明表中聲明變量及數(shù)據(jù)類型,完成PLC 數(shù)據(jù)類型的創(chuàng)建。比如創(chuàng)建一個名稱為“PLC_DT_1”的PLC數(shù)據(jù)類型,在這個數(shù)據(jù)類型中包含3個變量,如圖7所示。
圖7
- 創(chuàng)建固定數(shù)據(jù)結(jié)構(gòu)的 DB 塊
單擊“添加新塊”命令,選擇數(shù)據(jù)塊,并在類型的下拉列表中選擇所創(chuàng)建的PLC 數(shù)據(jù)類型“PLC_DT_1”,如圖8所示。
圖8
然后點(diǎn)擊“確定”,生成與“PLC_DT_1”相同數(shù)據(jù)結(jié)構(gòu)的DB塊。
通過PLC 數(shù)據(jù)類型創(chuàng)建DB與通過系統(tǒng)數(shù)據(jù)類型創(chuàng)建DB的目的相同,一個是用戶自定義的數(shù)據(jù)類型,一個系統(tǒng)給出的特定的數(shù)據(jù)類型,但是用戶自定義的數(shù)據(jù)類型在全局DB塊中的變量類型向?qū)е惺强梢姷摹?/p>
1.5 數(shù)組DB
數(shù)組DB是一種特殊類型的全局?jǐn)?shù)據(jù)塊,它包含一個任意數(shù)據(jù)類型的數(shù)組。例如可以是基本數(shù)據(jù)類型,也可以是PLC數(shù)據(jù)類型(UDT)的數(shù)組,但這種數(shù)據(jù)塊不能包含除數(shù)組之外的其它元素。創(chuàng)建數(shù)組DB時需要輸入數(shù)組的數(shù)據(jù)類型和數(shù)組的上限。創(chuàng)建完數(shù)組DB后,可以在其屬性中隨時更改數(shù)組的上限,但是無法更改數(shù)據(jù)類型。數(shù)組DB始終啟用“優(yōu)化塊訪問”(Optimized block access)屬性,不能進(jìn)行標(biāo)準(zhǔn)訪問,并且為非保持性屬性,不能修改為保持性屬性。數(shù)組DB的聲明如圖9所示。
圖9
數(shù)組DB塊的名稱與塊中變量(只能有一個數(shù)組變量)的名稱是相同的,如圖10所示。
圖10
數(shù)組DB塊中變量元素的訪問需要使用“THIS[x]”替代變量的名稱,例如圖10中變量的第一個元素為DDD.THIS[0],如圖11所示。
圖11
可以使用函數(shù)“ReadFromArrayDB”和“WriteTOArrayDB”等對數(shù)組DB進(jìn)行類似間接尋址的訪問,比如將數(shù)組DB中的變量值復(fù)制到“變量1”中,可以參考圖12中的程序。
圖12
在DB13(數(shù)據(jù)塊_7)中共有3個數(shù)組元素,由“Tag_58”的值決定將哪個元素的值復(fù)制給“數(shù)據(jù)塊_10”中的“變量1”。示例中“Tag_58”的值為1,所以是將“數(shù)據(jù)塊_7[1]”的值賦值給“變量1”。
1.6 什么類型的DB可以與VARIANT轉(zhuǎn)換
S7-1500中使用VARIANT數(shù)據(jù)類型變量作為程序塊中參數(shù)的傳遞,指令DB_ANY_TO_VARIANT或者VARIANT_TO_DB_ANY用于參數(shù)DB_ANY和VARIANT轉(zhuǎn)換,DB_ANY的使用是有要求的,必須是格式固定的,使用要求參考下表(DB_ANY_TO_VARIANT的在線幫助)中的加粗標(biāo)記。
輸入變量 | 轉(zhuǎn)換結(jié)果... | 轉(zhuǎn)換選項(xiàng) |
---|---|---|
DB_ANY | 作為 PLC 數(shù)據(jù)類型或系統(tǒng)數(shù)據(jù)類型 (SDT) 的實(shí)例化數(shù)據(jù)塊的數(shù)據(jù)塊。 | 可以轉(zhuǎn)換 |
DB_ANY | ...作為 ARRAY 數(shù)據(jù)塊的數(shù)據(jù)塊。 | 可以轉(zhuǎn)換 |
DB_ANY | ...作為函數(shù)塊或全局?jǐn)?shù)據(jù)塊中的實(shí)例化數(shù)據(jù)塊 | 不可轉(zhuǎn)換 |
所以說通常情況下,通過系統(tǒng)數(shù)據(jù)類型、用戶數(shù)據(jù)類型創(chuàng)建的數(shù)據(jù)塊、數(shù)組DB與全局DB訪問和使用的方式是相同的,而在特殊的情快下,這些數(shù)據(jù)塊類型是不可替代的。
-
cpu
+關(guān)注
關(guān)注
68文章
10804瀏覽量
210829 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6808瀏覽量
88743 -
S7-1500
+關(guān)注
關(guān)注
3文章
300瀏覽量
6299
發(fā)布評論請先 登錄
相關(guān)推薦
評論