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