最初研制生產(chǎn)的 PLC主要用于代替?zhèn)鹘y(tǒng)的由繼電器接觸器構(gòu)成的控制裝置,但這兩者的運(yùn)行方式是不相同的:
(1)繼電器控制裝置采用硬邏輯并行運(yùn)行的方式,即如果這個(gè)繼電器的線圈通電或斷電,該繼電器所有的觸點(diǎn)(包括其常開或常閉觸點(diǎn))在繼電器控制線路的哪個(gè)位置上都會(huì)立即同時(shí)動(dòng)作。
(2)PLC的CPU則采用順序邏輯掃描用戶程序的運(yùn)行方式,即如果一個(gè)輸出線圈或邏輯線圈被接通或斷開,該線圈的所有觸點(diǎn)(包括其常開或常閉觸點(diǎn))不會(huì)立即動(dòng)作,必須等掃描到該觸點(diǎn)時(shí)才會(huì)動(dòng)作。
PLC是采用“順序掃描,不斷循環(huán)”的方式進(jìn)行工作的。即在PLC運(yùn)行時(shí),CPU根據(jù)用戶按控制要求編制好并存于用戶存儲(chǔ)器中的程序,按指令步序號(hào)(或地址號(hào))作周期性循環(huán)掃描,如無跳轉(zhuǎn)指令,則從第一條指令開始逐條順序執(zhí)行用戶程序,直至程序結(jié)束。然后重新返回第一條指令,開始下一輪新的掃描。在每次掃描過程中,還要完成對(duì)輸入信號(hào)的采樣和對(duì)輸出狀態(tài)的刷新等工作。
PLC的一個(gè)掃描周期必經(jīng)輸入采樣、程序執(zhí)行和輸出刷新三個(gè)階段。
PLC在輸入采樣階段:首先以掃描方式按順序?qū)⑺袝捍嬖谳斎腈i存器中的輸入端子的通斷狀態(tài)或輸入數(shù)據(jù)讀入,并將其寫入各對(duì)應(yīng)的輸入狀態(tài)寄存器中,即刷新輸入。隨即關(guān)閉輸入端口,進(jìn)入程序執(zhí)行階段。
PLC在程序執(zhí)行階段:按用戶程序指令存放的先后順序掃描執(zhí)行每條指令,經(jīng)相應(yīng)的運(yùn)算和處理后,其結(jié)果再寫入輸出狀態(tài)寄存器中,輸出狀態(tài)寄存器中所有的內(nèi)容隨著程序的執(zhí)行而改變。
輸出刷新階段:當(dāng)所有指令執(zhí)行完畢,輸出狀態(tài)寄存器的通斷狀態(tài)在輸出刷新階段送至輸出鎖存器中,并通過一定的方式(繼電器、晶體管或晶閘管)輸出,驅(qū)動(dòng)相應(yīng)輸出設(shè)備工作。
為了消除二者之間由于運(yùn)行方式不同而造成的差異,考慮到繼電器控制裝置各類觸點(diǎn)的動(dòng)作時(shí)間一般在 100ms以上,而PLC掃描用戶程序的時(shí)間一般均小于100ms,因此,PLC采用了一種不同于一般微型計(jì)算機(jī)的運(yùn)行方式---掃描技術(shù)。這樣在對(duì)于I/O響應(yīng)要求不高的場合,PLC與繼電器控制裝置的處理結(jié)果上就沒有什么區(qū)別了。
1、掃描技術(shù)
當(dāng) PLC投入運(yùn)行后,其工作過程一般分為三個(gè)階段,即輸入采樣、用戶程序執(zhí)行和輸出刷新三個(gè)階段。完成上述三個(gè)階段稱作一個(gè)掃描周期。在整個(gè)運(yùn)行期間,PLC的CPU以一定的掃描速度重復(fù)執(zhí)行上述三個(gè)階段。
(1)輸入采樣階段
在輸入采樣階段, PLC以掃描方式依次地讀入所有輸入狀態(tài)和數(shù)據(jù),并將它們存入I/O映象區(qū)中的相應(yīng)得單元內(nèi)。輸入采樣結(jié)束后,轉(zhuǎn)入用戶程序執(zhí)行和輸出刷新階段。在這兩個(gè)階段中,即使輸入狀態(tài)和數(shù)據(jù)發(fā)生變化,I/O映象區(qū)中的相應(yīng)單元的狀態(tài)和數(shù)據(jù)也不會(huì)改變。因此,如果輸入是脈沖信號(hào),則該脈沖信號(hào)的寬度必須大于一個(gè)掃描周期,才能保證在任何情況下,該輸入均能被讀入。
(2)用戶程序執(zhí)行階段
在用戶程序執(zhí)行階段, PLC總是按由上而下的順序依次地掃描用戶程序(梯形圖)。在掃描每一條梯形圖時(shí),又總是先掃描梯形圖左邊的由各觸點(diǎn)構(gòu)成的控制線路,并按先左后右、先上后下的順序?qū)τ捎|點(diǎn)構(gòu)成的控制線路進(jìn)行邏輯運(yùn)算,然后根據(jù)邏輯運(yùn)算的結(jié)果,刷新該邏輯線圈在系統(tǒng)RAM存儲(chǔ)區(qū)中對(duì)應(yīng)位的狀態(tài);或者刷新該輸出線圈在I/O映象區(qū)中對(duì)應(yīng)位的狀態(tài);或者確定是否要執(zhí)行該梯形圖所規(guī)定的特殊功能指令。即,在用戶程序執(zhí)行過程中,只有輸入點(diǎn)在I/O映象區(qū)內(nèi)的狀態(tài)和數(shù)據(jù)不會(huì)發(fā)生變化,而其他輸出點(diǎn)和軟設(shè)備在I/O映象區(qū)或系統(tǒng)RAM存儲(chǔ)區(qū)內(nèi)的狀態(tài)和數(shù)據(jù)都有可能發(fā)生變化,而且排在上面的梯形圖,其程序執(zhí)行結(jié)果會(huì)對(duì)排在下面的凡是用到這些線圈或數(shù)據(jù)的梯形圖起作用;相反,排在下面的梯形圖,其被刷新的邏輯線圈的狀態(tài)或數(shù)據(jù)只能到下一個(gè)掃描周期才能對(duì)排在其上面的程序起作用。
(1)輸出刷新階段
當(dāng)掃描用戶程序結(jié)束后, PLC就進(jìn)入輸出刷新階段。在此期間,CPU按照I/O映象區(qū)內(nèi)對(duì)應(yīng)的狀態(tài)和數(shù)據(jù)刷新所有的輸出鎖存電路,再經(jīng)輸出電路驅(qū)動(dòng)相應(yīng)的外設(shè)。這時(shí),才是PLC的真正輸出。
這兩段程序執(zhí)行的結(jié)果完全一樣,但在 PLC中執(zhí)行的過程卻不一樣。程序1只用一次掃描周期,就可完成對(duì)%M4的刷新; 程序2要用四次掃描周期,才能完成對(duì)%M4的刷新。
這兩個(gè)例子說明:同樣的若干條梯形圖,其排列次序不同,執(zhí)行的結(jié)果也不同。另外,也可以看到:采用掃描用戶程序的運(yùn)行結(jié)果與繼電器控制裝置的硬邏輯并行運(yùn)行的結(jié)果有所區(qū)別。當(dāng)然,如果掃描周期所占用的時(shí)間對(duì)整個(gè)運(yùn)行來說可以忽略,那么二者之間就沒有什么區(qū)別了。
一般來說, PLC的掃描周期包括自診斷、通訊等,如下圖所示,即一個(gè)掃描周期等于自診斷、通訊、輸入采樣、用戶程序執(zhí)行、輸出刷新等所有時(shí)間的總和。
2、PLC的I/O響應(yīng)時(shí)間
為了增強(qiáng) PLC的抗干擾能力,提高其可靠性,PLC的每個(gè)開關(guān)量輸入端都采用光電隔離等技術(shù)。
為了能實(shí)現(xiàn)繼電器控制線路的硬邏輯并行控制, PLC采用了不同于一般微型計(jì)算機(jī)的運(yùn)行方式(掃描技術(shù))。
以上兩個(gè)主要原因,使得 PLC得I/O響應(yīng)比一般微型計(jì)算機(jī)構(gòu)成的工業(yè)控制系統(tǒng)滿的多,其響應(yīng)時(shí)間至少等于一個(gè)掃描周期,一般均大于一個(gè)掃描周期甚至更長。
所謂 I/O響應(yīng)時(shí)間指從PLC的某一輸入信號(hào)變化開始到系統(tǒng)有關(guān)輸出端信號(hào)的改變所需的時(shí)間。其最短的I/O響應(yīng)時(shí)間與最長的I/O響應(yīng)時(shí)間如圖所示:
以上是一般的 PLC的工作原理,但在現(xiàn)代出現(xiàn)的比較先進(jìn)的PLC中,輸入映像刷新循環(huán)、程序執(zhí)行循環(huán)和輸出映像刷新循環(huán)已經(jīng)各自獨(dú)立的工作,提高了PLC的執(zhí)行效率。在實(shí)際的工控應(yīng)用之中,編程人員應(yīng)當(dāng)知道以上的工作原理,才能編寫出質(zhì)量好、效率高的工藝程序。