可編程序控制器(PLC)的應(yīng)用中,我們常會碰到對繼電器控制系統(tǒng)的改造問題,這時我們往往要參考原有的繼電器控制電路來編制PLC的應(yīng)用程序。因此,在編程時,我們應(yīng)注意PLC控制系統(tǒng)與繼電器控制系統(tǒng)工作方式上的一些不同。
1.掃描方式不同
我們看一個例子:一個繼電器控制回路如圖1所示。
圖一
因繼電器控制系統(tǒng)是以“并行”方式工作的,而且其觸點的通斷需要一定的動作時間。所以當(dāng)該電路起動后,時間繼電器KT延時時間到時,KT是否能繼續(xù)保持通電狀態(tài),需要同時考慮“并行”的兩個動作過程:KT的常閉延時觸點斷開,KA1失電,KA1常開觸點斷開;KT的常開延時觸點閉合,KA2得電,KA2常開觸點閉合。這兩個過程作用的結(jié)果,來決定KT的狀態(tài)。同時,觸點動作時間的存在,使得電路出現(xiàn)時序競爭。因此該電路不能可靠工作。如果加人虛框中的回路,并如圖1把KA2的常開觸點換成KA3的常開觸點(見圖1中括號)。結(jié)果是KT動作后,KT自身失電,就不會繼續(xù)保持通電狀態(tài)。
同樣是這個電路,我們用PLC來實現(xiàn),梯形圖如圖2所示。 PLC是以“串行”方式工作的,也就是以掃描的方式,循環(huán)地、連續(xù)地、順序地,逐條執(zhí)行程序的方式工作。同時在PLC中,軟觸點的動作可認為是瞬時完成的,且其能把本次動作的結(jié)果記憶保持到下一次掃描運算時為止。即具有記憶保持功能。按這樣一個順序“串行”的工作方式,梯形圖動作順序如下:
圖二
當(dāng)在某一掃描周期中T38延時到后,則:網(wǎng)絡(luò)1中T38 常閉觸點斷開(OFF) Q0.0 OFF(無輸出);網(wǎng)絡(luò)2中T38常開觸點閉合(ON),Q0.1 ON;網(wǎng)絡(luò)3中Q0.0常開觸點OFF,Q0.1常開觸點ON,T38繼續(xù)保持通電狀態(tài)。而且不論我們在Q0.1與T38之間再加多少級前面繼電器電路所加的虛框中的回路,并把Q0.1常開觸點換成所加回路最后一級繼電器的常開觸點,T38仍能繼續(xù)保持通電狀態(tài)。
2.輸入控制方式不同
我們再看一個例子。大家都比較熟悉的電動機正反轉(zhuǎn)控制電路,見圖3。
圖三
在這個電路里面,啟動按鈕我們使用SB1、SB2的常開按鈕,而停止按鈕則使用的是SB3的常閉按鈕。PLC程序里面也是這樣設(shè)計的。(見圖4)
圖四
但是我們給PLC設(shè)計硬件輸入時,停止按鈕SB3卻不能像繼電器控制電路那樣使用常閉觸點而是使用的常開觸點,見圖5。這是為什么呢?這是因為繼電器控制電路里按鈕開關(guān)直接控制接觸器的線圈,而在PLC控制程序里,按鈕開關(guān)控制的卻是與之對應(yīng)的輸入繼電(I),而由這個輸入繼電器再去控制其觸點,不能把硬件按鈕開關(guān)看出程序里的軟觸點,就相當(dāng)是拐了個彎一樣。程序里的軟觸點受相應(yīng)的輸入繼電器控制,而輸入繼電器的狀態(tài)又受外部所接的輸入信號元件(比如按鈕開關(guān))的控制。這是初學(xué)者容易搞混淆的地方。
圖五
假設(shè)這個例子里的停止按鈕SB3我們像繼電器控制電路一樣,使用常閉觸點的話,那么PLC一上電,SB3對應(yīng)的輸入繼電器I0.2立即為ON,則相應(yīng)的軟觸電I0.2就會改變狀態(tài)常閉觸點立即就斷開了,如果再按下啟動按鈕SB1,輸出繼電器Q0.0或Q0.1就不會有輸出,即一直為OFF。
通過全面的兩個例子我們知道同樣的電路,由于繼電器控制系統(tǒng)和PLC控制系統(tǒng)工作方式上的差異,兩者會有不同的動作結(jié)果。注意到這一點,我們在編程時,就會避免犯不應(yīng)該的錯誤。同時學(xué)會PLC這樣一些特點,會編出功能更強、更好的程序。
PLC編程最容易犯的錯在編制plc程序時,不管是新手還是老手,都會犯下這種低級錯誤。因為這種錯誤是非語法上的,所以用編程軟件也不能檢查出錯誤之處。此錯誤一旦發(fā)生,自己有時還很難發(fā)現(xiàn),直至上機調(diào)試運行時,所控設(shè)備不能運行或運行到某個位置停止不前,才察覺出來有問題,再對PLC程序逐條逐句查找分析,或采取對程序逐條逐句執(zhí)行,費時費工。
那么究竟是什么問題易使我們犯下這種低級錯誤呢?繼電器電氣控制的固有思維,在編制程序時,某個或幾個輸入點采用物理常閉觸點(如停止開關(guān)、行程限位開關(guān)),在程序中,仍延續(xù)繼電器電氣控制方式編制,即仍采用常閉接點作為導(dǎo)通條件使用。
下面用一個簡單的啟停與自鎖電路示例來說明。
根據(jù)上圖編制的不能運行的錯誤PLC程序如下:
PLC上電后,X000、X002常閉點就會斷開。即邏輯值為“0”
Y0=(Y0+X001)×X000×X002
從上面數(shù)字邏輯表達式可知,在按下啟動按鈕SB1后,X001的邏輯值為“1”,而Y0的邏輯值永遠不會變化,始終為“0”。原因是與PLC內(nèi)部輸入電路有關(guān),以下是PLC內(nèi)部輸入等效電路:
正確的PLC程序如下:
PLC上電后,X000、X002常開點就會閉合。即邏輯值為“1”
Y0=(Y0+X001)×X000×X002
只要按下啟動按鈕SB1后,X001的邏輯值為“1”,Y0邏輯值就為“1”。松開啟動按鈕SB1,X001的邏輯值為“0”但Y0邏輯值為“1”,Y0與X001是或的關(guān)系,保證了Y0邏輯值始終為“1”,即自鎖。直至按下停止按鈕或出現(xiàn)過載 (FR0動作),Y0的邏輯值才變?yōu)椤?”。
通過上面的簡單示例可知,新手可能還未弄懂外部為常閉輸入時,經(jīng)PLC內(nèi)部輸入電路后邏輯值發(fā)生了“非”的變化。以及繼電器電氣控制固有思維影響,老手是出于疏忽。這雖然是低級錯誤,也易發(fā)生在程序編制過程中。