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