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