史騰虎,李少波,于麗婭,周 鵬
(貴州大學機械工程學院,貴州 貴陽 550025)
可編程序邏輯控制器( programmable logic controller,PLC)是一種基于數字運算的電子操作系統(tǒng),專為工業(yè)環(huán)境而設計,它因1969 年美國數字設備公司(digital equipment corporation, DEC) 為通用汽車(general motors,GM)公司開發(fā)汽車生產流水線而出現[1-2]。 到目前為止,PLC 不僅擁有豐富的邏輯指令,還具有強大的運算能力和通信功能,在現代工業(yè)的各個領域都有它的應用,已成為自動化控制的核心。 為更好地推動工業(yè)自動化的發(fā)展、提高編程的效率,有必要系統(tǒng)論述自PLC 誕生以來,在工業(yè)界廣泛應用的幾種主要的編程方法和編程方式,對比它們各自的特點和適用的工程范圍,從而揭示從簡單工程到復雜工程之間的邏輯主線,為廣大工程人員的工業(yè)應用提供必要的參考。
PLC 編程方法是指編排工程邏輯關系的一種設計。 根據這種設計,可以快速、準確地編寫出滿足相應功能要求的程序。 雖然目前PLC 已經形成了五大編程語言:語句表(statement list,STL)、梯形圖(ladder diagram,LAD)、功能塊圖(function block diagram,FBD)、順序功能圖(sequential function chart,SFC)、結構化文本(structured text,ST)[3-4],但無論哪一種語言都可以依據本文所論述的方法實現快速、準確的編程。因LAD 語言更為廣大電氣工程人員所接受,所以本文以此為例進行編程方法的展示。
經驗設計法是依據工程人員的先驗知識而直接編程的一種方法,多針對較簡單工程。 因其運行邏輯關系簡單而能夠直接構思出來,所以為節(jié)約網絡數,多采用起保停編程方式進行程序的編寫。 同時,當顧客的要求發(fā)生改變時,富有經驗的工程人員可以現場改編程序并直接將其投入生產。
案例1:單擊開始按鈕I0.0,電機1(Q0.0)立即啟動;間隔15 s(T37)后,電機2(Q0.1)啟動;再間隔20 s(T38)后,電機3(Q0.2)啟動。 單擊停止按鈕I0.1,電機3 立即停止;間隔25 s(T39)后,電機2 停止;再間隔10 s(T40)后電機1 停止。
此工程運行邏輯關系比較簡單,可以直接構思出來,所以通常憑借編程經驗直接采用起保停的編程方式進行編寫。
案例1 的程序如圖1 所示。
圖1 案例1 的程序圖Fig.1 Procedure diagram of Case 1
PLC 價格昂貴且功能強大,將其應用于簡單工程會浪費內部極其豐富的軟元件資源。 因此,針對這類工程,目前大都是用交流接觸器、中間繼電器、時間繼電器等硬件直接組成并行的硬件邏輯電路[5-6],總體成本比直接使用PLC 低很多。 案例1 的并行硬件邏輯電路如圖2 所示。
圖2 案例1 的并行硬件邏輯電路Fig.2 Parallel hardware logic circuit of Case 1
圖2 中:FU 為熔斷器;BB 為熱保護器;KF 為時間繼電器;SF 為按鈕;QA 為電機的交流接觸器。 與圖1中的軟元件的對應關系為:KF1~KF4 對應于T37~T40;SF1~SF2 對應于I0.0~I0. 1;QA1~QA3 對應于Q0.0~Q0.2。
時序圖設計法是針對較復雜工程而采用的一種編程方法。 這類工程因涉及并行、循環(huán)等分支,單憑借編程經驗,一般難以厘清各機構之間的運行邏輯關系,因此需要一定的編程方法。
時序圖是專為描述這類工程而開發(fā)的流程展示圖,是在波形圖的基礎上演變而來的[7]。 時序圖利用波形圖的高電平表示輸出點的ON 狀態(tài)、低電平表示輸出點的OFF 狀態(tài);跳變位置表示觸發(fā)條件,而跳變與跳變之間的距離則表示運行時間上的間隔。 因此,時序圖清晰地表示出了工程的運行邏輯關系,十分有利于據此編寫程序。
案例2:單擊啟動按鈕(I0.0),南北紅燈亮25 s,這期間,東西綠燈先亮20 s(T37),再以1 Hz 的頻率閃爍3 次(C0),接著東西黃燈亮2 s(T38)。 25 s 后,南北紅燈熄滅30 s,東西紅燈開始亮30 s,南北綠燈先亮25 s(T39),然后以1 Hz 的頻率閃爍3 次(C1),接著南北黃燈亮2 s(T40)。 之后循環(huán)運行,單擊停止按鈕(I0.1),所有燈熄滅。 根據以上所述,案例2 的時序圖如圖3 所示。
圖3 案例2 的時序圖Fig.3 Sequence diagram of Case 2
由于復雜工程往往涉及選擇、跳轉、嵌套等復雜分支,時序圖一般難以描述,需要新的設計方法。 順序功能圖設計法是針對復雜工程而采用的一種編程方法。
順序功能圖以通用輔助繼電器(M)作為運行環(huán)節(jié)的中心,以十字線條作為流程的導向和觸發(fā)條件,以方框表示每一個環(huán)節(jié)應該運行的軟元件種類和數量。 通過線框組合,可清晰地描述出復雜工程的運行邏輯關系。 當工程要求發(fā)生變化時,可在圖上直接進行修改。
案例3:按下啟動按鈕,GP1、GP2、GP3 泵分別將堿、聚合物、水抽入1#、2#、3#容器,抽滿后分別發(fā)出信號,GP1、GP2、GP3 泵關閉。 此時若接通I1.4,則GP4、GP6 泵分別將1#、3#抽到4#容器;若接通I1.5,則GP5、GP6 泵分別將2#、3#抽到4#容器。 同時啟動攪拌器60 s,4#滿或者1#、2#、3#容器空,則GP4、GP5、GP6 泵關閉。攪拌時間到后,檢測均勻程度:若不合格,則再次攪拌60 s;若合格,GP7 將4#抽到5#,直至4#空或者5#容器滿,GP7 泵關閉。 至此,一個循環(huán)完成。 按啟動按鈕后,新一輪循環(huán)開始。 案例3 的示意圖如圖4 所示。
圖4 案例3 的示意圖Fig.4 Schematic diagram of Case 3
與經驗設計法、時序圖設計法不同,功能圖設計法多應用于復雜工程。 在編排相應的順序功能圖之前,必須首先定義好相應的輸入、輸出點地址,才能夠設計出邏輯關系清晰的功能圖。 針對案例3,輸入、輸出點地址分配如表1 所示。
表1 輸入、輸出點地址分配Tab.1 Address assignment of input and output points
根據案例3 的描述,以及相應的輸入、輸出點地址分配,編排工程的整體流程。 案例3 的順序功能如圖5 所示。
圖5 案例3 的順序功能圖Fig.5 Sequence function diagram of Case 3
圖5 中:SM0.1 為初始掃描到ON;M 為通用輔助繼電器;“=1”指上面并行條件同時滿足時成立;“*”為“與”條件;“+”為“或”條件。
編程方式是將編程方法具象化的手段。 就目前而言,PLC 主要有三種編程方式:起保停編程方式、置復位編程方式和順序控制指令編程方式。 每種編程方式都有其優(yōu)缺點,綜合應用才能夠達到最佳的編程效果。
起保停編程方式以步為中心,與傳統(tǒng)的并行硬件邏輯電路相似。 其也正是由此演化而來的[8-10],所以這種編程方式最為廣大電氣工程人員所接受。 圖1 程序采用了起保停編程方式進行編寫,可以和圖2 并行硬件邏輯電路圖作對比。 這里有兩點需要注意。 一是PLC 內部沒有如硬件時間繼電器的即通電即保持接通/斷開的觸點,所以需要利用通用輔助繼電器(M)來作為自鎖的供電電路。 二是PLC 中的時間繼電器(T)只有在分辨率為100 ms 的情況下才可用自身常閉觸點斷自己的供電,而分辨率為10 ms 和1 ms 的時間繼電器則不可。 這與不同分辨率的時間繼電器在PLC內部具有不同的刷新方式有關。
交通燈的置復位編程方式如圖6 所示。
圖6 交通燈的置復位編程方式Fig.6 Set/reset programming mode for traffic lights
置復位編程方式是在起保停編程方式基礎上改進的一種編程方式。 起保停編程方式每一步不僅需要考慮自身網絡,還需要考慮與上、下網絡之間的聯(lián)系[11-13],因此每一步編程都需要跨越3 個網絡。 而置復位編程方式只需要考慮自身網絡情況,邏輯關系更加清晰。 所以,在同等工程量下,置復位編程方式一般比起保停編程方式所用到的軟元件總量要少。
如1.2 節(jié)中所述工程:根據圖3,按照從左到右、從上到下的順序依次編程(并規(guī)定東西綠燈閃爍用M0.1,南北綠燈閃爍用M0.0,T37~T40 自鎖供電用M0.2~M0.5);用置復位編程方式進行程序的編寫,則如圖6 所示(文中只給出Q0.1、Q0.4、T37~T40 的程序)。
圖6 中:SM0. 5 為時鐘脈沖,通0. 5 s,斷0. 5 s。實際編程按下降沿計數,所以綠燈長亮的編程時間均應比工程規(guī)定的時間少0.5 s,即計數值應為4 而非3。
以1.3 節(jié)所舉的工程為例,用三種編程方式進行其前七步中心環(huán)節(jié)的編程。
三種編程方式的比較如圖7 所示。
圖7 三種編程方式的比較Fig.7 Comparison of three programming methods
順序控制指令是PLC 生產廠家專為便于工程人員編寫順序控制程序而開發(fā)出的指令[14-15]。 由于順序控制指令由各個PLC 生產廠家提供,因此每個廠家規(guī)定的指令形式、數量及使用方法都有所不同[16-20],不像前兩種編程方式,在任何品牌PLC 中都通用。
以S7-200 PLC 為例,SIEMENS 公司提供了四條順序控制指令:順序狀態(tài)開始(SCR)、順序狀態(tài)轉換(SCRT)、順序狀態(tài)結束(SCRE)、條件順序狀態(tài)結束(CSCRE)[21-23]。 需要注意的是:用順序控制指令進行編程時,中間繼電器不再是通用輔助繼電器(M),而是順序控制繼電器(S)[24-26],否則程序無法運行。
針對不同類型的工程,采用適配的編程方法,才能達到最佳的編程效果。 針對簡單工程,因其運行邏輯關系簡單而能夠直接構思出來,所以常采用經驗設計法。 因為工程邏輯關系簡單,將主要精力集中在單個網絡集成度上,反而使得起保停編程方式在簡單工程中更具有優(yōu)勢。
針對較復雜工程,若直接采用順序功能圖設計法,步驟較為繁瑣,反而會導致開發(fā)效率的降低,故時序圖設計法是更優(yōu)的設計方法。
復雜工程運行分支的復雜性,使順序功能圖設計法成為唯一適用的設計方法。 也正因為這個特點,順序功能圖設計法能夠向下兼容所有的工程類型。 但研究發(fā)現,順序功能圖設計法是三種編程方法中設計步驟較為繁瑣的。 遵循“能用簡單,不用復雜”的原則,是保證開發(fā)效率的基礎。
通過圖1、圖6 和圖7 的比較分析,本文提出考核編程方式的兩個重要指標:單個網絡集成度、邏輯關系清晰度。 單個網絡集成度以一個網絡內具有的軟元件總量多少作為評判標準,邏輯關系清晰度以本網絡與上下網絡間的聯(lián)系程度作為評判標準,因此可以得出編程方式特點的比較,如表2 所示。
由表2 可知:起保停編程方式單個網絡集成度最高、邏輯關系清晰度最低、在簡單工程中網絡數最少,所以最適合簡單工程;順序控制指令編程方式單個網絡集成度最低、邏輯關系清晰度較高、在所有工程中網絡數最多,所以最適合復雜工程;置復位編程方式單個網絡集成度適中、邏輯關系清晰度達到順序控制指令編程方式的等級、在所有工程中網絡數均適中,所以適用于所有的工程類型,整體最有優(yōu)勢。 同時,通過對圖1、圖6 和圖7 的進一步分析可以得出,隨著工程復雜度的提高,編程時,其邏輯關系清晰度的重要性遠大于單個網絡集成度。
表2 編程方式特點的比較Tab.2 Feature comparison of programming modes
此外,置復位編程方式以轉換條件為中心,而起保停編程方式以步為中心進行編程[25],因此置復位編程方式可以直接處理如圖8(a)所示的兩步閉環(huán)操作,而起保停編程方式則不可。 若想運用起保停編程方式,必須將圖8(a)改為圖8(b)。 這樣無疑將增加程序的復雜度和網絡數。
圖8 兩步閉環(huán)功能圖的比較Fig.8 Comparison of two-step closed loop function diagrams
本文系統(tǒng)論述了PLC 在工業(yè)界廣泛應用的三種主要的編程方法和編程方式,并進行了詳細的比較。隨著工程復雜度的提高,其邏輯關系清晰度的重要性遠大于單個網絡集成度,從而揭示了從簡單工程到復雜工程之間的邏輯主線,并得出了順序功能圖設計法可以兼容所有工程類型,置復位編程方式在三種編程方式中整體最優(yōu)的結論。
雖然PLC 已廣泛應用于現代工業(yè)的各個領域,經過幾十年的發(fā)展有了長足的進展,但仍有以下問題要解決。 ①雖然PLC 已經形成了五大編程語言,但即使是同一種編程語言,各PLC 生產廠家所規(guī)定的指令形式、使用方法仍有較大不同,這給工程人員帶來了困擾。 ②盡管PLC 已經形成了主程序調用子程序、中斷程序的工作模式,但仍然無法滿足一些復雜工程中的應用場景,如大型系統(tǒng)之間程序的無縫配合、脈沖中斷程序的及時響應等。
PLC 沒有可視化窗口,需要另外搭配相應的觸摸屏設備。 因此,將觸摸屏和PLC 進行集成,或提高計算機的可靠性來代替PLC,以及研發(fā)通用的高級編程語言,可能是今后的發(fā)展方向。