戚陽楊捷
(云南民族大學,云南昆明650500)
隨著微型處理器、信息技術和工業自動化技術的迅猛發展,使用計算機進行工業自動化控制已經覆蓋了幾乎所有的工業領域。現代社會,工業制造對市場的快速反應提出了更高的要求。可編程邏輯控制器(PLC)作為一種專門針對工業環境應運而生的數字運算操作系統,其具有的高穩定性、高可靠性、價格便宜、應用靈活方便、功能多樣、操作維護容易等優點使其得到了飛速發展。在現場總線技術和以太網技術也同步發展的背景下,PLC應用的范圍變得愈加廣泛。
本文結合梯形圖語言和西門子公司推出的GRAPH編程方法,為PLC編程設計者介紹兩種方便、快捷、有效的程序設計方法。
順序控制是指預先設定工藝生產流程順序,按照不同的時間順序、邏輯順序或條件控制順序使各個機構有序地按照預先設定的順序依次進行工作。不同品牌和類型的PLC所使用的編程語言也有細微的差異,梯形圖(LAD)是一種在各類型PLC上使用最多的編程語言,是最易上手、使用最廣泛的PLC語言之一。基于梯形圖的順序控制設計方法有以轉換為中心、起保停和置位復位等分類。順序控制設計必須保證其連貫性,不同的設計方法所適用的編程設計環境不同,在不同的工業環境下,不同的設計方法所展現出的設計功能、難易度、直觀性和程序量都有所不同。在特定的狀況下選擇適合的順序控制設計思路和方法是PLC程序設計者需要注意的重要問題。
LAD是一種圖形編程語言,它采用基于電路圖的表示法,程序以一個或多個程序段表示。程序段在梯級源位置的左側包含一個電源線,二進制信號以觸點的形式排列在梯級上。在梯級上元素的順序排列構成串聯,在并行分支上的排列構成并聯。復雜函數用函數塊表示。
圖1顯示了一個具有兩個常開觸點、一個常閉觸點和一個線圈的LAD程序段(程序段1)。

圖1 LAD編程示例
LAD程序是由在程序段電源線上串聯或并聯的各個元素組成的,必須給多數程序元素提供變量,至少有一個梯級是從電源線引出的。程序段編程從梯級左邊緣位置開始,可以通過使用多個梯級和分支去延伸電源線。
起保停電路是在典型圖中使用比較廣泛的一種梯形圖順序控制設計方法。它的設計思路如下:如程序段1所示,在給入輸入信號時常開觸點I0.1動作,隨之輸出線圈Q0.1得電,同時使輸出線圈“自鎖”或“自保持”,輸入線圈I0.1常開觸點失去作用。當“停止”信號來到時,輸入線圈I0.2動作,則輸出線圈Q0.1失電停止動作。
此次以洗衣機為例的順序控制設計的思路是使用PLC的輸出信號去控制繼電器組,從而達到控制電器的目的。通過對電機“正反轉”“注水”和“排水”進行控制,使電機的繼電器線圈分別受PLC的輸出信號控制。洗衣機順序控制流程如圖2所示。

圖2 順序控制流程圖
針對上面的流程圖使用博途V15軟件對PLC進行正確的配置組態后,在主程序塊中按照順序控制流程設計了以起保停為邏輯思想的LAD程序。
如圖3所示,使用I0.1為啟動按鈕;I0.2為洗滌注水后的高水位監測點,監測洗衣機是否注滿水;使用I0.3作為洗滌后排水是否排凈的低水位監測點;使用I0.5為漂洗過程的高水位監測點;使用I0.4作為漂洗后排水的低水位監測點。

圖3 起保停順序控制設計
GRAPH是一種可創建順序控制設計系統的圖形式編程語言。合理使用順序控制程序,編程者可以更加快捷和清晰直觀地對順序控制邏輯進行編程。可以使用GARPH將順序控制過程分解為多個步,設計者在每一個步都設計好所需執行的程序功能,再將設計好的每一個步合理組織分配到順序控制程序當中;在每一個步中定義好要執行的動作,并設計好當前步與下一步之間的轉換條件。
基于GARPH的順控系統可以對整個過程進行合理的控制,并附加條件對其進行限制。順序控制系統的整體復雜性由自動化任務決定。GARPH順序控制系統至少包含3個塊:
(1)GRAPH函數塊:可以在GRAPH函數塊中,定義一個或多個順控程序的單步和順序控制的步轉換條件。
(2)背景數據塊:順序控制系統的數據和參數都包含在背景數據塊內。可以分配背景數據塊給GARPH函數塊,并且可以由系統自動去生成。
(3)調用代碼塊:要在一個循環中去執行GARPH函數塊,就必須在較高級代碼塊中去調用這個函數塊,這個函數塊可以是一個函數(FC)、組織塊(OB)或者其他函數塊(FB)。一般將GRAPH函數塊作為一個單背景調用。
GRAPH函數塊中,可以按照順序控制程序的格式去編寫程序。順序控制程序不僅可以處理很多個獨立的任務,還可以把一個復雜的任務分解成兩個或者多個順序控制程序。如果順序控制程序要完成多個獨立任務,那么這些順序控制程序在程序流程中需并行處理。如果要使用多個順序控制程序把一個復雜的任務分解成許多更小的部分,就必須把相關的順序控制程序和程序跳轉相聯結。
可以把程序劃分為順序控制程序的各個步。在比較簡單的情況下,每個步可以以線性的方式按順序逐個處理,但也可以用選擇型分支或者并行分支去創建一些結構更為復雜的順序控制程序。程序會始終從我們定義為初始步的那一步開始進行,一個順序控制程序可以含有一個或者多個初始步。初始步可以在順序控制程序中的任意位置。
激活某一步時,將執行當前步中的動作;若有需要也可同時去激活多個步,比如在一些并行分支中。同時會相應地去檢查下一步的轉換條件:若滿足所有需要的轉換條件且沒有未處理的監控錯誤,轉換條件將立刻轉換到下一步,這個步將轉換成活動步。結束順序控制程序時,我們使用跳轉或按順序結尾。跳轉到的目標可以是同一順序控制程序中的任意一步,也可以是其他順序控制程序中的任意一步,這樣有利于順序控制程序的循環執行。
可以使用跳轉,從GRAPH函數塊里的任何一步開始繼續程序的執行。跳轉能夠插入到分支、并行分支或選擇分支的結尾,從而去激活順序控制程序中的循環處理。在順序控制程序中,跳轉和跳轉的目標應使用箭頭來表示。在這里,需要去指定跳轉目標返回跳轉的條件和返回的目標步,應該避免從轉換條件去跳轉到直接的前導步。若需要執行這類跳轉,可以去插入一個沒有任何轉換條件的空步。
可以運用步將冗雜的自動化任務分解成各個明確的子任務,并通過步中的動作去完成,然后讓各個步加入到順序控制程序中,如此一來每步都能在程序流中去按指定的順序執行。每步都應該分配一個獨有的編號和名稱,每當激活一個步時就執行這一步中的動作。因此,當前步應該是初始步,或者必須達到該步前面應有的轉換條件。還可以運用事件型的動作去調用一個步。在此之外,還可以通過對步中的監控條件和互鎖條件進行合理編程,任意選擇一個開始執行順序控制程序的步。因此,初始步可以由任意一步指定。
如圖4所示,使用GARPH順序控制設計方法將圖2中的順序控制流程分為7步——啟動洗滌注水、洗滌轉動、洗滌排水、漂洗注水、漂洗轉動、漂洗排水、脫水。將每一步的動作寫入每一步的對應動作程序,同時將轉換條件也寫入每一步對應的Trans中,具體的輸入/輸出線圈可與起保停的輸入/輸出線圈對應。
針對基于LAD的起保停順序控制設計方法和GARPH順序控制設計方法進行比較,我們清晰地了解到,這兩種順序控制設計方法分別具有以下特點:
(1)基于LAD的起保停順序控制設計方法在PLC的設計方法中屬于較為基礎的設計方法,大部分順序控制系統的設計都可以采用此類方法,其適合初學者學習,學習難度較低,相對較容易理解;但設計時語句較多、程序較長,在大型冗雜的項目中設計較為困難。

圖4 GARPH順序控制設計
(2)基于GARPH的設計方法是一種有針對性的順序控制設計方法,其按照步與步之間的轉換,每一步所要執行的動作進行順序控制設計,邏輯性較強,響應速度更快,語句使用得較少,同樣的邏輯功能下所需要的程序長度較短。在對大型項目進行順序控制設計時可以將較為復雜的任務分解成多個小型且較為簡單的任務去完成,更加適用于冗雜型的項目任務。該方法在合理規劃程序流程圖后更容易進行設計,但目前在不同PLC之間還不能精準地實現功能轉換。
綜上,我們在項目實際進行時,至少要掌握兩種及以上的順序控制設計方法,才能根據不同的項目類別、復雜程度和不同的響應速度要求進行合理的程序設計。選擇合理的順序控制程序設計方法會使項目的完成得到更好的助力。