??(1)生成數(shù)組
??可以在數(shù)據(jù)塊中定義數(shù)組,也可以在邏輯塊的變量聲明表中定義它。下面介紹在數(shù)據(jù)塊中定義的方法。在SIMATIC管理器中用菜單命令“插入”→“S7塊”→“數(shù)據(jù)塊”生成數(shù)據(jù)塊DB4。雙擊打開它,默認(rèn)的顯示方式為聲明視圖方式。聲明視圖用于定義、刪除和修改共享數(shù)據(jù)塊中的變量,指定它們的名稱、數(shù)據(jù)類型和初始值。
??在新生成的數(shù)據(jù)塊的第一行和最后一行標(biāo)有STRUCT(結(jié)構(gòu))和END_STRUCT(結(jié)構(gòu)結(jié)束)。在這兩行中間有一個(gè)自動(dòng)生成的臨時(shí)占位符變量。
??將該行的名稱改為數(shù)組的名稱“PRESS”(見圖4-7),變量的名稱只能使用字母、數(shù)字和下劃線,不能使用中文。用鼠標(biāo)右鍵點(diǎn)擊該行的“類型”列,執(zhí)行彈出的快捷菜單中的“復(fù)雜類型”→“ARRAY”
??(數(shù)組)命令,在出現(xiàn)的“ARRAY 【】”的方括號中輸入
??“1..2,1.3”,即指定二維數(shù)組PRESS有2×3個(gè)元素。在“注釋”列按回車鍵,在AR-RAY下面一行的“類型”列輸入“INT”,定義數(shù)組元素為16位整數(shù),INT所在行的“地址”列自動(dòng)生成的“*2.0”表示一個(gè)數(shù)組元素占用2B。地址列的“ 12.0”表示該數(shù)組的6個(gè)元素一共占用12B,地址列的內(nèi)容是自動(dòng)生成的??梢杂弥形慕o每個(gè)變量加上注釋。
??數(shù)組PRESS的第1個(gè)元素為PRESS【1,1】(見圖4-6和圖4-8),第4個(gè)元素為PRESS【2,1】,第6個(gè)元素為PRESS【2,3】。
??(2)給數(shù)組元素賦初值
??STEP7根據(jù)變量的數(shù)據(jù)類型給出默認(rèn)的初始值,用戶可以修改初始值。定義數(shù)組時(shí)可以在ARRAY所在的行的“初始值”列中給數(shù)組元素賦初值,各元素的初值之間用英語逗號分隔,例如上例中6個(gè)元素的初值可以寫成“22,30,-5,0,0,0,結(jié)束時(shí)不用標(biāo)點(diǎn)符號。
??若相鄰元素的初值相同可以簡寫,上述初值可以簡寫為“22,30,-5,3(0)”(見圖4-7)。
??執(zhí)行菜單命令“視圖”→“數(shù)據(jù)視圖”,切換到數(shù)據(jù)視圖方式,將顯示數(shù)組和結(jié)構(gòu)中各元素的初始值和實(shí)際值(見圖4-8)。
??在數(shù)據(jù)視圖方式,顯示變量的初始值和實(shí)際值,用戶只能修改變量的實(shí)際值,修改后需要下載數(shù)據(jù)塊。如果用戶輸入的實(shí)際值與變量的數(shù)據(jù)類型不符,將用紅色顯示錯(cuò)誤的數(shù)據(jù)。在數(shù)據(jù)視圖方式,用菜單命令“編輯”→“初始化數(shù)據(jù)塊”,可以恢復(fù)變量的初始值。1 800
??(3)訪問數(shù)組中的數(shù)據(jù)
??本例中的數(shù)組是數(shù)據(jù)塊的一部分,訪問數(shù)組中的數(shù)據(jù)時(shí),需要指出數(shù)據(jù)塊和數(shù)組的名稱,以及數(shù)組元素的下標(biāo),例如”TANK”.PRESS【2,1】。其中的TANK是數(shù)據(jù)塊DB4的符號名,PRESS是數(shù)組的名稱,它們用英語的句號分開。方括號中是數(shù)組元素的下標(biāo),該元素是數(shù)組中的第4個(gè)元素(見圖4-8)。
??(4)用數(shù)組傳遞參數(shù)
??如果在塊的變量聲明表中聲明形參的類型為ARRAY,可以將整個(gè)數(shù)組作為參數(shù)來傳遞(見圖4-23)。在調(diào)用塊時(shí)也可以將某個(gè)數(shù)組元素賦值給同一數(shù)據(jù)類型的參數(shù)。
??(5)用數(shù)組定義數(shù)據(jù)塊的大小
??數(shù)據(jù)塊的大小與數(shù)據(jù)塊中定義的變量的個(gè)數(shù)和數(shù)據(jù)類型有關(guān)。如果需要一個(gè)容量很大的數(shù)據(jù)塊,可以用數(shù)組來定義數(shù)據(jù)塊的大小。如果在數(shù)據(jù)塊中只定義一個(gè)數(shù)組ARRAY 【1..500】,數(shù)組元素的數(shù)據(jù)類型為字,則該數(shù)據(jù)塊的大小為1000B??梢杂媒^對地址和任意的簡單數(shù)據(jù)類型來訪問該數(shù)據(jù)塊中的存儲(chǔ)單元。如果訪問數(shù)據(jù)塊中未定義的地址,將會(huì)出現(xiàn)錯(cuò)誤信息“讀取時(shí)發(fā)生區(qū)域長度錯(cuò)誤”。
??(6)設(shè)置數(shù)據(jù)塊的參數(shù)
??用鼠標(biāo)右鍵點(diǎn)擊某個(gè)數(shù)據(jù)塊,執(zhí)行出現(xiàn)的快捷菜單中的“對象屬性”命令,在出現(xiàn)的屬性對話框的“常規(guī)-第2部分”選項(xiàng)卡中,可以用復(fù)選框設(shè)置數(shù)據(jù)塊的屬性。各參數(shù)具體的意義見在線幫助。
??(7)使用程序狀態(tài)功能監(jiān)視數(shù)據(jù)塊
??點(diǎn)擊數(shù)據(jù)塊工具欄上的@按鈕,自動(dòng)切換到“數(shù)據(jù)視圖”顯示方式,數(shù)據(jù)塊內(nèi)的存儲(chǔ)單元在線的數(shù)值在“實(shí)際值”列中顯示。程序狀態(tài)被激活后,不能切換為“聲明視圖”方式。
??程序狀態(tài)結(jié)束后,“實(shí)際值”列將顯示程序狀態(tài)之前的有效內(nèi)容,在線數(shù)值不能傳送到離線的數(shù)據(jù)塊。