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