- 艾寶物聯IOBOV? ─ 工業無線測控專家
PLC的控制方式屬于存儲程序控制,其控制功能是通過存放在存儲器內的程序來實現的,若要對控制功能作必要修改,只需改變控制程序即可,這就實現了控制的軟件化??删幊炭刂破鞯膬烖c在于"可"字,從軟件來講,其控制程序可編輯、可修改;從硬件上講,其外部設備配置可變。構建一個PLC控制系統的重心就在于控制程序的編制,但外部設備的選用也將對程序的編制產生影響。因此在進行程序設計時應結合實際需要,硬、軟件綜合考慮。本文就硬、軟兩方面,選取梯形圖為編程語言,以松下電工FPO-C32型PLC為例,對PLC使用過程中易出現的幾個問題及解決方法進行了分析。
一、外部輸入設備的選用與PLC輸入繼電器的使用
1. 外部輸入信號的采集
PLC的外部設備主要是指控制系統中的輸入輸出設備,其中輸人設備是對系統發出各種控制信號的主令電器,在編寫控制程序時必須注意外部輸入設備使用的是常開還是常閉觸點,并以此為基礎進行程序編制。否則易出現控制錯誤。
在PLC內部存儲器中有專用于輸入狀態存儲的輸入繼電器區,各輸入設備(開關、按鈕、行程開關或傳感器信號)的狀態經由輸入接口電路存儲在該區域內,每個輸入繼電器可存儲一個輸入設備狀態。PLC中使用的"繼電器"并非實體繼電器,而是"軟繼電器",可提供無數個常開、常閉觸點用于編程。每個"軟繼電器"僅對應PLC存儲單元中的一位(bit),該位狀態為"1",表示該"軟繼電器線圈"通電,則程序中所有該繼電器的觸點都動作。輸入繼電器作為PLC接收外部主令信號的器件,通過接線與外部輸入設備相聯系,其"線圈"狀態只能由外部輸入信號驅動。輸入信號的采集工作示意圖如圖1。
輸入繼電器線圈其狀態取決于外部設備狀態
圖1
PLC輸入信號采集示意圖
圖1中,輸入設備選用的是按鈕SB0的常閉觸點,輸入繼電器X0的線圈狀態取決于SB0的狀態。該按鈕未按下時,輸入繼電器X0線圈狀態為"1"通電狀態,程序中所有X0觸點均動作,即常開觸點接通,常閉觸點斷開;若按下該按鈕,則輸入繼電器X0線圈狀態為"0"斷電狀態,程序中所有X0觸點均恢復常態。如果輸入繼電器連接的輸入設備是按鈕SB0的常開觸點,則情況恰好相反:在該按鈕未按下時,輸入繼電器X0線圈狀態為"0"斷電狀態,程序中所有X0觸點均不動作;若按下該按鈕,輸入繼電器X0線圈狀態為"1"通電狀態,程序中所有X0觸點均動作。
2. 停車按鈕使用常閉型
由于PLC在運行程序判別觸點通斷狀態時,只取決于其內存中輸入繼電器線圈的狀態,并不直接識別外部設備,因此編程時,外部設備的選用與程序中的觸點類型密切相關。這是一個在對照電氣控制原理圖進行PLC編程時易出現的問題。最典型的例子是基本控制--"起保??刂?/span>"中的停車控制。
圖2
"起保??刂?/span>"電氣原理圖
圖2為"起保??刂?/span>"電氣原理圖,在該系統中,按鈕SB0用于停車控制,因此使用其常閉觸點串聯于控制線路。SBl為起動按鈕,使用其常開觸點。若使用相同的設備(即停車SB0用常閉觸點,起動SBl用常開觸點),利用PLC進行該控制,則需編程梯形圖程序(圖3):
圖3
"起保??刂?/span>"梯形圖程序(停車按鈕使用常閉觸點)
I/O分配:SB0--X0,SBl--Xl,輸出Y0
該梯形圖中停車信號X0使用的是常開觸點串聯在控制線路中,這是因為外部停車設備選取按鈕常閉觸點所致,不操作該按鈕,則輸出Y0正常接通,若按下該按鈕,輸出Y0斷電。
3. 停車按鈕使用常開型
若希望編制出符合我們平時閱讀習慣的梯形圖程序(圖4),則在選用外部停車設備時需使用按鈕SB0的常開觸點與X0相連。
圖4
"起保??刂?/span>"梯形圖程序(停車按鈕使用常開觸點)
I/O分配:SB0--X0,SBl--Xl,輸出Y0
圖3、4梯形圖完成相同的控制功能,程序中停車信號X0使用的觸點類型卻不相同,其原因就是連接在輸入繼電器X0上的外部停車按鈕觸點類型選用不同。圖4所示梯形圖程序更加符合我們的閱讀習慣,也更易分析其邏輯控制功能,因此在PLC構成控制系統中,外部開關、按鈕無論用于起動還是停車,一般都選用常開型,這是一個在使用PLC時需要格外注意的問題。
二、PLC的"串行"運行方式與控制程序的編制
PLC與繼電接觸器控制的重要區別之一就是工作方式不同。繼電接觸器控制系統是按"并行"方式工作的,也就是說是按同時執行的方式工作的,只要形成電流通路,就可能有幾個電器同時動作。而PLC是以"串行"方式工作的,PLC在循環執行程序時,是按照語句的書寫順序自上而下進行邏輯運算,而前面邏輯運算的結果會影響后面語句的邏輯運算結果。因此梯形圖編程時,各語句的位置也會對控制功能產生關鍵影響。例如:
圖5
程序1
程序1調試結果:X0接通3次,Y3接通,X0再接通1次,Y3斷開。
圖6
程序2
程序2程序調試結果.X0接通3次,Y3接通瞬間即斷開。
上面兩個程序中,輸出Y3、計數器CTl02及內部通用繼電器R0前面的邏輯條件均相同,僅僅是計數器CTl02所在語句位置發生了變化,而兩段程序的運行結果就截然不同。這是因為CTl02對輸出Y3的影響方式發生了變化。執行第一段程序時,將首先判斷輸出Y3的狀態,再判斷CTl02的狀態,CTl02的狀態變化只能在下一個掃描周期對Y3產生影響;而執行第二段程序時,將首先判斷CTl02的狀態,再判斷輸出Y3的狀態,CTl02的狀態變化將在該掃描周期直接影響Y3的狀態。
從以上討論可以得出,由于PLC采用"串行"工作方式,所以即使是同一元件,在梯形圖中所處的位置不同,其工作狀態也會有所不同,因此在利用梯形圖進行控制程序編制時,應對控制任務進行充分分析,合理安排各編程元件的位置,才能夠更為準確地實現控制。
三、PLC的編程元件
PLC的各種功能主要是通過運行控制程序來實現。編制程序時,需要合理使用PLC提供的編程元件(即軟元件)。FPO型PLC中常用的編程元件有兩種:位元件(bit)和字元件(word)。位元件實際上是PLC內存區域所提供的一個二進制位單元,又被稱為軟繼電器,主要用作基本順序指令的編程元件,如輸入繼電器Xn、輸出繼電器Yn、內部通用繼電器Rn、定時(計數)器等,其參與控制的方式主要是通過對應觸點的通斷狀態改變影響邏輯運算結果即輸出。
字元件則為PLC內存區域內的一個字單元(16bit),主要用作功能指令和高級指令的編程元件,通常用以存放數據,如數據寄存器DTn,定時(計數)器的設定值SVn、經過值EVn等。字元件沒有觸點,通常以整體內容參與控制。
值得注意的是內存中的輸入(X)區、輸出(Y)區和內部通用(R)區,該區中的每個bit均可用作位元件,而且每16bit可構成一個字元件,如WRIO即是由16個位元件R100~R10F構成的字元件,該字元件中的內容一旦發生變化,這16個位的狀態也隨之發生改變。如:
圖7
編程元件示例程序
圖7所示程序中,WR0即為字元件,是左移位指令SR的編程元件,而Y0為輸出軟繼電器的線圈,X0、X1、X2、X3則為輸人軟繼電器的觸點,其中第4步的R4觸點為位元件R4的常開觸點,而位元件R4又是字元件WR0中的一位,因此其狀態受限于WR0的移位結果。
四、順序控制多步同輸出的編程方法
順序控制是生產現場常見的一類控制任務,步進指令是PLC指令庫中專用于順序控制的。步進指令編程時,根據工藝流程將程序劃分為一個個獨立的程序段,執行時,CPU嚴格按梯形圖編程順序,只有執行完前一段程序后才能激活下一段程序,并在下一段程序執行之前,將前面程序段復位。并且在語法上要求各程序段所使用的輸出不允許重復。這在解決順序控制任務中有多步同輸出的情況時,就帶來了一定的困難。借助于內部通用繼電器可方便解決這一難題。如某一順序控制任務如以下流程圖(圖8)所示。
圖8
某機械手動作流程圖
從機械手動作流程圖可以看出,這個控制任務每個循環的工作可以劃分為八步,其中第1步與第5步動作相同,均為上升;第3步和第7步動作相同,均為下降。在利用步進指令進行編程時,這兩個工步所對應的程序段的輸出不能直接設置為Y3、Y4,同一個輸出使用兩次則會出現語法錯誤。這時應考慮使用用于存儲中間狀態的內部通用繼電器Rn來解決這個問題。如圖7所示梯形圖程序,其中R1、R5分別被定義為第1步與第5步的輸出,R3、R7分別被定義為第3步與第7步的輸出,在步進結束后再將R1、R5的狀態輸出到上升Y3,將R3、R7的狀態輸出到下降Y4,通過這樣的方法可方便解決順序控制任務中若干工步輸出相同的問題。
圖9
機械手控制梯形圖
五、結束語
初學者對于PLC的基本應用易于掌握,但要做到靈活使用仍需對一些技術難點和使用技巧深刻理解。在編程之前,要對控制任務進行認真分析,合理選擇外部設備和編程元件,并以此為基礎進行編程;在編程過程中,如能靈話巧妙地使用編程元件,合理地進行程序編排,可使程序邏輯清楚,可讀性增強。