陳忠華
4 通信模式
IEC 61131-3的通信方式使用訪(fǎng)問(wèn)路徑(Access paths)、全局變量(Global variables)、參數調用(Call parameters)、通信組織單元(Communication organization,IEC 61131-5)來(lái)說(shuō)明組態(tài)單元的數據交換。
(1) 訪(fǎng)問(wèn)路徑
定義訪(fǎng)問(wèn)路徑允許組態(tài)單元相互之間和PLC系統實(shí)現通信。
(2) 全局變量
全局變量能容易地在程序之間實(shí)現通信,它們能在組態(tài)、資源、程序內進(jìn)行說(shuō)明和應用。
(3) 參數調用
在程序內部,數據交換是通過(guò)參數(如輸入和輸出變量)調用來(lái)實(shí)現的,參數調用定義了值轉移的接口。
(4) 通信組織單元
通信組織單元提供了通信服務(wù),這些服務(wù)將在IEC 61131的第5 部分進(jìn)行定義。
5 通用語(yǔ)言單元
IEC 61131-3的通用語(yǔ)言單元是標識符(Identifiers)、關(guān)鍵詞(Keywords)、評論(Comments)、文字(Literals)、數據類(lèi)型和變量(Data types and variables)。以下對它們進(jìn)行詳細描述。
(1) 標識符
標識符用來(lái)尋址變量、功能、程序等,它們是一些單元且能支持程序的可讀性。標識符是一個(gè)字母數字和下劃線(xiàn)的序列,以一個(gè)字母或下劃線(xiàn)開(kāi)始。
以下各項不可以做為標識符:空格和德文中的元音變音字母;以同一方式說(shuō)明兩次;用關(guān)鍵字做為標識符(參看(2))。
(2) 關(guān)鍵字
關(guān)鍵字是清楚的字母組合,能做為單個(gè)的語(yǔ)法助記符單元。關(guān)鍵字不能用做為標識符,IEC 61131-3關(guān)鍵字舉例:ABS、SIN、BOOL、FALSE、TRUE、FOR、NEXT、IF、THEN、VAR、GLOBAL、DATE、TIME、FUNCTION。
(3) 評論
評論或程序的一部分用來(lái)幫助理解程序且是重要的溝通方法。評論允許在任何位置以所有文本編輯的形式,而且必須以特殊的字母序列(*and*)開(kāi)始和結束。每一個(gè)網(wǎng)絡(luò )段能對它的功能評論成一段文本。
(4) 文字
IEC 61131-3說(shuō)明文字做為字母、數字和時(shí)間的序列。
字母序列 字母序列文字具有0或更多字母,而且以“反逗號”開(kāi)始和結束(例如:’Character sequence’)
數字 有兩種不同類(lèi)型的數字文字:整數和實(shí)數,見(jiàn)表1。整數能定義帶有基數,十進(jìn)制數能具有(+或-)的符號,實(shí)數能表示成指數形式。
表1
時(shí)間 有兩種不同的時(shí)間文字(間隔時(shí)間和天/日期時(shí)間),見(jiàn)表2。
(5) 數據類(lèi)型
IEC 61131-3定義了不同的標準數據類(lèi)型,它們幫助編譯、推導以及用戶(hù)定義數據類(lèi)型。每一個(gè)標識符被分配到一個(gè)數據類(lèi)型,數據類(lèi)型決定了多大的存儲容量將被保留以及什么值相應于存儲器的內容。
標準數據類(lèi)型
① 波爾型(真值表 真/偽)。
② 字節、字、雙字、帶符號的整型數、不帶符號的整型數、16位整形數、不帶符號的16位整形數、雙整形數、不帶符號的雙整形數(整形數據類(lèi)型)。
③ 實(shí)數(浮點(diǎn)數據類(lèi)型)。
④ 串數據(字符串)。
⑤ 時(shí)間(TIME)、日時(shí)間(TIME-OF-DAY)、日期(DATE)、日期和時(shí)間(DATE_AND_TIME) (時(shí)間數據類(lèi)型)。
定義數據類(lèi)型
① 陣列(ARRAY)(1,2,3維場(chǎng))
② 指針(POINTER)(包含用于實(shí)時(shí)程序的變量/功能塊的尋址)
③ 枚舉(Enumeration)(枚舉數,由很多字符串常數組成)
④ 結構(STRUCT)
⑤ 參考 (Reference)(用于對變量/常數/功能塊生成一個(gè)替換名)
(6) 變量
IEC 61131-3定義5種不同的變量類(lèi)型
① 全局變量
② 本地變量
③ 輸入變量
④ 輸出變量
⑤ 輸入和輸出變量
本地變量不能連接到外部,亦即它們只能在程序內部的一部分進(jìn)行尋址,全局變量能被所有程序組織單元(POUs)尋址。輸入、輸出和輸入/輸出變量是與程序、功能和功能塊有關(guān)的。它們能在被分配的POU內通過(guò)讀或寫(xiě)來(lái)改變,在POU外部改變必須進(jìn)行定義(輸入,輸出和輸入/輸出),在原文件之間變量要加以說(shuō)明,變量VAR變量結束END_VAR。通常每個(gè)變量在冷啟動(dòng)之后被初始化。默認的初始值為0或“偽”,可以通過(guò)另一變量符號“ : =”在說(shuō)明中指定用戶(hù)定義的初始值。
變量屬性
當說(shuō)明一個(gè)變量時(shí),能附加以下的屬性:
① 保留(RETAIN):這些變量在主要故障之后,仍保留同一值。當再啟動(dòng)時(shí),程序將以這一保留的值繼續進(jìn)行。
② 常數(CONSTANT):變量值不能改變。
③ AT:變量在儲存器映像區中具有固定位置(固定地址)。
Example舉例:以一初始值說(shuō)明一個(gè)輸出變量。
VAR-OUTPUT
Par_out1 : INT :10;(* 輸出參數1,具有初始值10 *)
END-VAR
固定地址變量
在進(jìn)行說(shuō)明時(shí),通過(guò)關(guān)鍵字變量能被分配一個(gè)物理存儲器位置。
地址用特殊字母序列來(lái)指示,字母序列的起始用%符號,跟隨一個(gè)范圍前綴和一個(gè)數據前綴(數據類(lèi)型)表示數據長(cháng)度。最后是數字序列表示存儲器的位置。
范圍前綴:I(輸入)、Q(輸出)、M(標志,內部存儲器范圍)。
長(cháng)度前綴:X(單個(gè)位)、B(字節,8位)、W(字,16位)、D(雙字,32位)。
Example舉例:
%QX1.0.2 輸出位2
%IW1.0.1 輸入位1
%MB7 標志字節7
%MW1 標志字1
%MD3 標志雙字3
%MX1.2 在標志字1中的第2標志位。