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