- 三菱PLC應用100例
- 楊后川等編著
- 3811字
- 2018-12-27 16:57:31
1.4 PLC的編程語言
PLC是專為工業控制而開發的裝置,主要使用者是企業電氣技術人員。為了適應他們的傳統習慣和掌握能力,通常PLC不采用計算機編程語言,而采用面向控制過程、面向問題的“自然語言”編程。國際電工委員會(IEC)1994年5月公布的IEC 61131—3《可編程控制器語言標準》詳細地說明了句法、語義和下述五種編程語言。
(1)梯形圖(Ladder Diagram,LD)。
(2)指令語言(Instruction List,IL)。
(3)順序功能圖(Sequential Function Chart,SFC),也稱為狀態轉移圖。
(4)功能塊圖(Function Block Diagram,FBD)。
(5)結構文本(Structured Text,ST)。
其中,梯形圖(LD)和功能塊圖(FBD)為圖形語言;指令語言(IL)和結構文本(ST)為文字語言;順序功能圖(SFC)是一種結構塊控制流程圖。
目前已有越來越多的生產PLC的廠家提供符合IEC 61131—3標準的產品。有的廠家推出的在個人計算機上運行的“PLC軟件包”,也是按IEC 61131—3標準設計的。
1.4.1 梯形圖
梯形圖是使用最多的圖形編程語言,其基本結構形式如圖1-7所示。梯形圖與繼電器控制系統的電路圖很相似,特別適用于開關量邏輯控制。梯形圖常被稱為電路或程序,梯形圖的設計稱為編程。梯形圖由觸點、“線圈”(主要指Y、M等繼電器和輔助繼電器)和應用指令等組成。線圈通常代表邏輯輸出結果和輸出標志位。觸點代表邏輯輸入條件。

圖1-7 梯形圖基本結構形式
1.梯形圖編程的基本概念
(1)能流。在梯形圖中為了分析各個元器件間的輸入與輸出的關系,就會假想一個概念電流,也稱為能流(Power Flow)。認為電流按照從左到右的方向流動,這一方向與執行用戶順序時的邏輯運算關系是一致的。在圖1-7中,當X001與X002的觸點接通,或者M0與X002的觸點接通時,就會有一個假想的能流流過Y000的線圈,使線圈通電。利用能流這一概念,可以幫助我們更好地理解和分析梯形圖。能流只能從左向右流動,層次改變只能從上向下。
(2)母線。梯形圖兩側的垂直公共線稱為母線(Bus Bar)。母線之間有能流從左向右流動。通常梯形圖中的母線有左右兩條,如圖1-7所示。
(3)軟觸點。PLC梯形圖中的某些編程元件沿用了繼電器這一名稱,如輸入繼電器、輸出繼電器、內部輔助繼電器等,但是它們不是真實的物理繼電器,而是一些存儲單元,每個軟繼電器的觸點與PLC存儲器中映像寄存器的一個存儲單元相對應,所以這些觸點稱為軟觸點。這些軟觸點的“1”或“0”狀態代表著相應繼電器觸點或線圈的接通或斷開。而且對于PLC內部的軟觸點,該存儲單元如果為“1”狀態,則表示梯形圖中對應軟繼電器的線圈通電,其常開觸點(┨┠)接通,常閉觸點(┨/┠)斷開。在繼電器控制系統的接線中,觸點的數目是有限的,而PLC內部的軟觸點的數目和使用次數是沒有限制的,用戶可以根據控制現場的具體要求在梯形圖程序中多次使用同一軟觸點。觸點與線圈在梯形圖程序與動態檢測中所代表的意義如表1-3所示。
表1-3 梯形圖程序中觸點與線圈所代表的意義

2.梯形圖的特點
PLC的梯形圖源于繼電器邏輯控制系統的描述,并與電氣控制系統梯形圖的基本思想是一致的,只是在使用符號和表達方式上有一定區別。它采用梯形圖的圖形符號來描述程序設計,是PLC程序設計中最常用的一種程序設計語言。這種程序設計語言采用因果關系來描述系統發生的條件和結果。其中每個梯級是一個因果關系。在梯級中,描述系統發生的條件表示在左面,事件發生的結果表示在右面。PLC的梯形圖使用的內部輔助繼電器、定時/計數器等,都是由軟件實現的,它的最大優點是使用方便、修改靈活、形象、直觀和實用。這是傳統電氣控制的繼電器硬件接線所無法比擬的。
關于梯形圖的格式,一般有如下一些要求:每個梯形圖網絡由多個梯級組成。每個輸出元素可構成一個梯級,每個梯級可有多個支路。通常每個支路可容納11個編程元素,最右邊的元素必須是輸出元素。一個網絡最多允許16條支路。
梯形圖有以下8個基本特點。
(1)PLC梯形圖與電氣操作原理圖相對應,具有直觀性和對應性,并與傳統的繼電器邏輯控制技術相一致。
(2)梯形圖中的“能流”不是實際意義的電流,而是“概念”電流,是用戶程序運算中滿足輸出執行條件的形象表示方式。“能流”只能從左向右流動。
(3)梯形圖中各編程元件所描述的常開觸點和常閉觸點可在編制用戶程序時無限引用,不受次數的限制,既可常開又可常閉。
(4)梯形圖格式中的繼電器與物理繼電器是不同的概念。在PLC中編程元件沿用了繼電器這一名稱,如輸入繼電器、輸出繼電器、內部輔助繼電器等。對于PLC來說,其內部的繼電器并不是實際存在的具有物理結構的繼電器,而是指軟件中的編程元件(軟繼電器)。編程元件中的每個軟繼電器觸點都與PLC存儲器中的一個存儲單元相對應。因此,在應用時,需與原有繼電器邏輯控制技術的有關概念區別對待。
(5)梯形圖中輸入繼電器的狀態只取決于對應的外部輸入電路的通斷狀態,因此在梯形圖中沒有輸入繼電器的線圈。輸出線圈只對應輸出映像區的相應位,不能用該編程元件直接驅動現場機構,位的狀態必須通過I/O模板上對應的輸出單元驅動現場執行機構進行最后動作的執行。
(6)根據梯形圖中各觸點的狀態和邏輯關系,可以求出與圖中各線圈對應的編程元件的ON/OFF狀態,稱為梯形圖的邏輯運算。邏輯運算按照梯形圖中從上到下、從左至右的順序進行。邏輯運算是根據輸入映像寄存器中的值,而不是根據邏輯運算瞬時外部輸入觸點的狀態來進行的。
(7)梯形圖中的用戶邏輯運算結果馬上可為后面用戶程序的邏輯運算所利用。
(8)梯形圖與其他程序設計語言有一一對應關系,便于相互的轉換和對程序的檢查。但對于較為復雜的控制系統,與順序功能圖等程序設計語言比較,梯形圖的邏輯性描述還不夠清晰。
3.梯形圖設計規則
(1)由于梯形圖中的線圈和觸點均為“軟繼電器”,因此同一標號的觸點可以反復使用,次數不限,這也是PLC區別于傳統控制的一大優點。
(2)每個梯形圖由多層邏輯行(梯級)組成,每層邏輯行起始于左母線,經過觸點的各種連接,最后結束于線圈,不能將觸點畫在線圈的右邊,只能在觸點的右邊接線圈。每一邏輯行實際代表一個邏輯方程。
(3)梯形圖中的“輸入觸點”僅受外部信號控制,而不能由內部繼電器的線圈將其接通或斷開,即線圈不能直接與左母線相連接。所以在梯形圖中只能出現“輸入觸點”,而不可能出現“輸入繼電器的線圈”。
(4)在幾個串聯回路相并聯時,應將觸點最多的那個串聯回路放在梯形圖的最上面。在幾個并聯回路相串聯時,應將觸點最多的并聯回路放在梯形圖的最左面。這種安排所編制的程序簡潔明了,指令較少。
(5)觸點應畫在水平線上,不能畫在垂直分支上。被畫在垂直線上的觸點,難以正確識別它與其他觸點間的關系,也難以判斷通過觸點對輸出線圈的控制方向。因此梯形圖的書寫順序是自左至右、自上至下,CPU也按此順序執行程序。
(6)梯形圖中的觸點可以任意串聯、并聯,但輸出線圈只能并聯,不能串聯。
1.4.2 語句表
PLC的指令是一種與計算機的匯編語言中的指令相似的助記符表達式。語句表表達式與梯形圖有一一對應的關系,由指令組成的程序叫做指令(語句表)程序。在用戶程序存儲器中,指令按步序號順序排列。將圖1-7所示梯形圖程序用語句表編寫如下:

每一條語句表指令都包含操作碼和操作數兩部分,操作數一般由標志符和地址碼組成。在上面的語句表表達式中,操作碼為LD、OR、ANI、OUT等;操作數為X001、X002、M000、Y000。其中,X、M、Y為操作數中的標志符;001、002、0等為操作數中的地址碼。這一組指令語言應包括可編程控制器處理的所有功能。
1.4.3 順序功能圖
順序功能圖(狀態轉移圖)是一種較新的編程方法,如圖1-8所示。它將一個完整的控制過程分為若干階段,各階段具有不同的動作,階段間有一定的轉換條件,轉換條件滿足就實現階段轉移,上一階段動作結束,下一階段動作開始。它提供了一種組織程序的圖形方法。在順序功能圖中可以用別的語言嵌套編程,步、路徑和轉換是順序功能圖中的三種主要元素。順序功能圖主要用來描述開關量順序控制系統,根據它可以很容易地畫出順序控制梯形圖程序。圖1-8所示為順序功能圖的一個實例。圖1-8(a)所示為該任務的示意圖,要求控制電動機正反轉,實現小車往返行駛,按鈕SB控制電動機的啟動和停止, SQ11、SQ12、SQ13分別為三個限位開關,控制小車的行程位置;圖1-8(b)所示是動作要求示意圖;圖1-8(c)所示是按照動作要求畫出的流程圖;圖1-8(d)所示是將流程圖中符號改為PLC指定符號后的功能流程圖程序。可以看到,整個程序完全按動作順序直接編程,非常直觀簡便,思路很清楚,很適合順序控制的場合。

圖1-8 順序功能圖
1.4.4 功能塊圖
功能塊圖類似于數字邏輯門電路,它是PLC的一種編程語言形式,有數字電路基礎的人很容易掌握。該編程語言用類似與門、或門的方框來表示邏輯運算關系。方框的左側為邏輯運算的輸入變量,右側為輸出變量。I/O端的小圓圈表示“非”運算,方框被“導線”連接在一起,信號自左向右流動。功能塊圖程序如圖1-9所示,該功能塊圖輸出:

圖1-9 功能圖塊程序

1.4.5 結構文本
結構文本是為IEC 61131—3標準創建的一種專用的高級編程語言,如BASIC、Pascal、C語言等。它采用計算機的描述語句來描述系統中各種變量之間的運算關系、完成所需的功能或操作。與梯形圖相比,它能實現復雜的數學運算,編寫的程序非常簡潔和緊湊。在大中型可編程控制器系統中,常采用結構文本設計語言來描述控制系統中各變量之間的關系,如一些模擬量等。它也被用于集散控制系統的編程和組態。在進行PLC程序設計過程中,除了允許幾種編程語言供用戶使用外,標準還規定編程者可在同一程序中使用多種編程語言,這使編程者能選擇不同的語言來適應特殊的工作,使PLC的各種功能得到更好的發揮。