王保飛
【摘要】IEC (國(guó)際電工委員會(huì))61131-3是IEC61131國(guó)際標(biāo)準(zhǔn)的第三部分,是第一個(gè)為工業(yè)自動(dòng)化控制系統(tǒng)的軟件設(shè)計(jì)提供標(biāo)準(zhǔn)化編程語(yǔ)言的國(guó)際標(biāo)準(zhǔn)。本文通過對(duì)IEC61131-3標(biāo)準(zhǔn)的深入分析并通過舉例,探討自動(dòng)化工程師在編寫PLC程序時(shí)如何符合國(guó)際標(biāo)準(zhǔn)。如何編寫程序才能使程序具備可移植性。
【關(guān)鍵詞】IEC61131-3 國(guó)際電工委員會(huì) PLC 編程語(yǔ)言
前言:在開發(fā)PLC(Programmable Logic Controller)的早期階段,并沒有一個(gè)統(tǒng)一的國(guó)際標(biāo)準(zhǔn)。不同的自動(dòng)化制造廠依據(jù)自己的習(xí)慣,使用自己的編程語(yǔ)言。這些編程語(yǔ)言不論從內(nèi)容上還有形式上來(lái)看都不盡相同。然而美國(guó)公司卻更加喜歡由繼電器控制邏輯而衍生的梯形圖語(yǔ)言和控制鼓。法國(guó)公司則使用了除梯形圖語(yǔ)言之外的另一種語(yǔ)言GRAFCET語(yǔ)言,這種語(yǔ)言更加適合完成順序控制。這對(duì)PLC程序的編制帶來(lái)了不便。為此國(guó)際電工技術(shù)委員會(huì)IEC于1993年正式頒布了IEC 1131-3的國(guó)際標(biāo)準(zhǔn)。并由IEC的第七工作組在其基礎(chǔ)上制定了新的IEC61131-3的標(biāo)準(zhǔn)。
一、編程語(yǔ)言
結(jié)合各大公司的PLC系統(tǒng),使標(biāo)準(zhǔn)具有更加寬泛的應(yīng)用范圍。IEC 61131-3共定義了兩大類共計(jì)5種編程語(yǔ)言。①指令表(Instruction List,IL);②結(jié)構(gòu)化文本(Structured Text Language,STL);③梯形圖(Ladder Diagram,LD);④功能塊圖(Function Block Diagram,F(xiàn)BD);⑤順序功能圖(Sequential Function Chart,SFC)。
二、文本類
文本類語(yǔ)言顧名思義就是編寫一條接一條的文本指令。而后通過這些指令形成有效地控制邏輯。文本類語(yǔ)言包含指令表與結(jié)構(gòu)化文本兩個(gè)部分。
(一)指令表(Instruction List)
指令表是類似組合語(yǔ)言的低階語(yǔ)言。它與匯編語(yǔ)言有些相似。雖然指令表是最單調(diào)的編程語(yǔ)言,編程可閱讀性差,不利用非計(jì)算機(jī)專業(yè)工程師理解,但是其程序的高效性與執(zhí)行速度是其它語(yǔ)言所不具備的。在IEC 61131-3標(biāo)準(zhǔn)中指令表定義了四類操作符:一般操作符、比較操作符、跳轉(zhuǎn)操作符和調(diào)用操作符。
(1)一般操作符在程序中經(jīng)常使用,是構(gòu)成程序的重要組成。例如:轉(zhuǎn)入指令LD ;邏輯指令A(yù)ND(與)、OR(或);算數(shù)指令A(yù)DD(加)、SUB(減)、MUL(乘)、DIV(除)等。
(2)比較操作符是用于比較大小的,它包括:GT(大于)、LE(小于)、EQ(等于)等。
(3)程序控制操作符:JMP(跳轉(zhuǎn))、CALL(調(diào)用)等。
(二)結(jié)構(gòu)化文本(Structured Text)
結(jié)構(gòu)化文本是一種高級(jí)程序語(yǔ)言,它有些類似Pasical程序語(yǔ)言,其語(yǔ)法也類似Pasical。它不采用底層的面相機(jī)器操作符,它具有大量的語(yǔ)句可以用來(lái)描述功能,功能塊和程序的行為,還可以在順序功能流程圖中描述步、動(dòng)作和轉(zhuǎn)變的行為。相對(duì)于指令表來(lái)說結(jié)構(gòu)化(ST)語(yǔ)言更是易學(xué)易用。此外,結(jié)構(gòu)化文本語(yǔ)言還易讀易理解,特別是使用有實(shí)際意義的標(biāo)識(shí)符、批注來(lái)注釋時(shí),更加容易理解程序的含義。結(jié)構(gòu)化文本語(yǔ)言的典型語(yǔ)句類型包括:賦值語(yǔ)句、程序控制語(yǔ)句、判斷選擇語(yǔ)句、循環(huán)語(yǔ)句等。
(1)結(jié)構(gòu)化文本定義了一些操作符主用于算數(shù)運(yùn)算與邏輯運(yùn)算。例如:邏輯運(yùn)算符AND、OR;算數(shù)運(yùn)算符+、-、*、/、=等;
(2)賦值語(yǔ)句不但可以完成簡(jiǎn)單的賦值也可以完成較為復(fù)雜的數(shù)組或結(jié)構(gòu)賦值。執(zhí)行賦值操作時(shí),等號(hào)左邊是操作數(shù),右邊是被賦予的表達(dá)式的值,例如:%MW52:=9527;
(3)程序控制語(yǔ)句用于在程序中調(diào)用功能塊。在功能塊被調(diào)用時(shí),輸入?yún)?shù)會(huì)被分配為默認(rèn)值;執(zhí)行完畢后,輸入?yún)?shù)值保留為最后一次調(diào)用的值。功能塊調(diào)用和函數(shù)調(diào)用不同,函數(shù)調(diào)用時(shí)一個(gè)表達(dá)式,兒功能塊調(diào)用是一條語(yǔ)句,他沒有返回值。
(4)判斷選擇語(yǔ)句的功能是,某一條件滿足時(shí)執(zhí)行相應(yīng)的選擇語(yǔ)句。例如:IF…THEN…ELSE條件語(yǔ)句,該選擇語(yǔ)句依據(jù)不同的條件分別執(zhí)行相應(yīng)THEN及ELSE語(yǔ)句;CASE 條件語(yǔ)句,該選擇語(yǔ)句的執(zhí)行方向取決于CASE語(yǔ)句的條件, 并有一返回值。
三、圖形類
圖形類語(yǔ)言指使用者以拖拽拼圖的方式開發(fā)出應(yīng)用程序,不需要任何的代碼編寫。這樣就大大降低了PLC編程的門檻。圖形類編程語(yǔ)言主要包括:梯形圖、順序功能圖、功能塊圖。
(一)梯形圖 (LaDder Logic)
梯形圖起源于美國(guó),它最初是用來(lái)表示繼電器邏輯關(guān)系的,直觀易理解,很容易被電氣工作人員所掌握。它特別適用于開關(guān)量邏輯控。梯形圖包含一系列的網(wǎng)絡(luò)(類似電路中的正負(fù)極),網(wǎng)絡(luò)連接各種類型的觸點(diǎn)、線圈和用方框表示的功能塊。梯形圖編程就像設(shè)計(jì)電路。
梯形圖中的許多元件符號(hào)仍舊使用繼電器這一名稱,例如輸入繼電器、輸出繼電器、內(nèi)部輔助繼電器等,但是它們不是真實(shí)的物理繼電器,而是在用戶程序中使用的編程元件。
(二)功能塊圖(Function Block Diagram)
功能塊圖起源于信號(hào)處理領(lǐng)域。功能塊圖是一種類似于數(shù)字邏輯門電路的編程語(yǔ)言,有數(shù)字電路基礎(chǔ)的人比較容易掌握。該編程語(yǔ)言用類似與門、或門和非門的方框來(lái)表示邏輯運(yùn)算關(guān)系,它將各種功能塊連接起來(lái)實(shí)現(xiàn)所需控制的功能,其圖形由功能、功能塊和連接元素組成。方框的左邊為邏輯運(yùn)算的輸入變量,右邊為輸出變量,信號(hào)由左向右流動(dòng)。
(三)順序功能圖(Sequential Function Chart)
順序功能圖源自于法國(guó),它將整個(gè)控制流程分割為一系列的控制步,并描述程序的執(zhí)行順序和控制條件。順序功能圖是一種位于其他編程語(yǔ)言之上的圖形語(yǔ)言,主要用來(lái)編制順序控制程序。順序功能圖提供了一種組織程序的圖形方向,可以用來(lái)描述系統(tǒng)的功能,根據(jù)它可以很容易畫出梯形圖。
四、總結(jié)
IEC61161-3繼承了在PLC發(fā)展過程中的多種特點(diǎn)明顯的多樣化編程語(yǔ)言,為PLC技術(shù)的進(jìn)一步發(fā)展提供了廣闊的空間。我們?cè)诰幊踢^程中盡可能的遵循這一標(biāo)準(zhǔn),為PLC程序在不同機(jī)型之間的移植提供便利。
參考文獻(xiàn):
[1]IEC 61131-3 編程語(yǔ)言,2003.