:: 可編程控制器的工作原理
一、問題提出
可編程控制器的工作原理建立在計(jì)算機(jī)基礎(chǔ)上,故其 CPU 以分時(shí)操作方式來處理各項(xiàng)任務(wù),即串行工作方式,通過對(duì)可編程控制器的工作方式和工作過程的說明,讓學(xué)生理解可編程控制器的工作原理。
二、可編程控制器的工作方式與運(yùn)行框圖
眾所周知,繼電器控制系統(tǒng)是一種“硬件邏輯系統(tǒng)”,如圖 1 ( a )所示,它的三條支路是并行工作的,當(dāng)按下按鈕 SB1 ,接觸器 KM1 得電, KM1 的一個(gè)觸點(diǎn)閉合并自鎖,接觸器 KM2 ,時(shí)間繼電器 KT 的線圈同時(shí)得電動(dòng)作。所以繼電器控制系統(tǒng)采用的是并行工作方式。
圖 1 ( a ) 繼電器控制系統(tǒng)簡圖
可編程控制器是一種工業(yè)控制計(jì)算機(jī),故它的工作原理是建立在計(jì)算機(jī)工作原理基礎(chǔ)上的,即是通過執(zhí)行反映控制要求的用戶程序來實(shí)現(xiàn)的。但是 CPU 是以分時(shí)操作方式來處理各項(xiàng)任務(wù)的,計(jì)算機(jī)在每一瞬間只能做一件事,所以程序的執(zhí)行是按程序順序依次完成相應(yīng)各電器的動(dòng)作,便成為時(shí)間上的串行。由于運(yùn)算速度極高,各電器的動(dòng)作似乎是同時(shí)完成的,但實(shí)際輸入 / 輸出的響應(yīng)是有滯后的。如圖 1 ( b )所示。
圖 1 ( b ) 用 PLC 實(shí)現(xiàn)控制功能的接線示意圖
概括而言, PLC 的工作方式是一個(gè)不斷循環(huán)的順序掃描工作方式。每一次掃描所用的時(shí)間稱為掃描周期或工作周期。 CPU 從第一條指令開始,按順序逐條地執(zhí)行用戶程序直到用戶程序結(jié)束,然后返回第一條指令開始新的一輪掃描。 PLC 就是這樣周而復(fù)始地重復(fù)上述循環(huán)掃描的。
執(zhí)行用戶程序時(shí),需要各種現(xiàn)場信息,這些現(xiàn)場信息已接到 PLC 的輸入端口。 PLC 采集現(xiàn)場信息即采集輸入信號(hào)有兩種方式:第一種,采樣輸入方式。一般在掃描周期的開始或結(jié)束將所有輸入信號(hào)(輸入元件的通 / 斷狀態(tài))采集并存放到輸入映像寄存器( PII )中。執(zhí)行用戶程序所需輸入狀態(tài)均在輸入映像寄存器中取用,而不直接到輸入端或輸入模塊去取用。第二種,立即輸入方式。隨著程序的執(zhí)行需要那一個(gè)輸入信號(hào)就直接從輸入端或輸入模塊取用這個(gè)輸入狀態(tài),如“立即輸入指令”就是這樣,此時(shí)輸入映像寄存器的內(nèi)容不變,到下一次集中采樣輸入時(shí)才變化。
同樣, PLC 對(duì)外部的輸出控制也有集中輸出和立即輸出兩種方式。
集中輸出方式在執(zhí)行用戶程序時(shí)不是得到一個(gè)輸出結(jié)果就向外輸出一個(gè),而是把執(zhí)行用戶程序所得的所有輸出結(jié)果,先后全部存放在輸出映像寄存器( PIQ )中,執(zhí)行完用戶程序后所有輸出結(jié)果一次性向輸出端口或輸出模塊輸出,使輸出設(shè)備部件動(dòng)作。立即輸出方式是在執(zhí)行用戶程序時(shí)將該輸出結(jié)果立即向輸出端口或輸出模塊輸出,如“立即輸出指令”就是這樣,此時(shí)輸出映像寄存器的內(nèi)容也更新。
PLC 對(duì)輸入輸出信號(hào)的傳送還有其他方式。如有的 PLC 采用輸入,輸出刷新指令。在需要的地方設(shè)置這類指令,可對(duì)此電源 ON 的全部或部分輸入點(diǎn)信號(hào)讀入上電一次,以刷新輸入映像寄存器內(nèi)容;或?qū)⒋藭r(shí)的輸出結(jié)果立即向輸出端口或輸出模塊輸出。又如有的 PLC 上有輸入、輸出的禁止功能,實(shí)際上是關(guān)閉了輸入、輸出傳送服務(wù),這意味著此時(shí)的輸入信號(hào)不讀入、輸出信號(hào)也不輸出。
PLC 工作的全過程可用圖 5 所示的運(yùn)行框圖來表示。
圖 5 可編程控制器運(yùn)行框圖
可編程控制器整個(gè)運(yùn)行可分為三部分:
第一部分是上電處理?删幊炭刂破魃想姾髮(duì) PLC 系統(tǒng)進(jìn)行一次初始化工作,包括硬件初始化, I/O 模塊配置運(yùn)行方式檢查,停電保持范圍設(shè)定及其他初始化處理等。
第二部分是掃描過程?删幊炭刂破魃想娞幚硗瓿梢院筮M(jìn)入掃描工作過程。先完成輸入處理,其次完成與其他外設(shè)的通信處理,再次進(jìn)行時(shí)鐘、特殊寄存器更新。當(dāng) CPU 處于 STOP 方式時(shí),轉(zhuǎn)入執(zhí)行自診斷檢查。當(dāng) CPU 處于 RUN 方式時(shí),還要完成用戶程序的執(zhí)行和輸出處理,再轉(zhuǎn)入執(zhí)行自診斷檢查。
第三部分是出錯(cuò)處理。 PLC 每掃描一次,執(zhí)行一次自診斷檢查,確定 PLC 自身的動(dòng)作是否正常,如 CPU 、電池電壓、程序存儲(chǔ)器、 I/O 、通信等是否異;虺鲥e(cuò),如檢查出異常時(shí), CPU 面板上的 LED 及異常繼電器會(huì)接通,在特殊寄存器中會(huì)存入出錯(cuò)代碼。當(dāng)出現(xiàn)致命錯(cuò)誤時(shí), CPU 被強(qiáng)制為 STOP 方式,所有的掃描停止。
PLC 運(yùn)行正常時(shí),掃描周期的長短與 CPU 的運(yùn)算速度有關(guān),與 I/O 點(diǎn)的情況有關(guān),與用戶應(yīng)用程序的長短及編程情況等均有關(guān)。通常用 PLC 執(zhí)行 1K 指令所需時(shí)間來說明其掃描速度 ( 一般 1~10ms/K) 。值得注意的是,不同指令其執(zhí)行是不同的,從零點(diǎn)幾微秒到上百微秒不等,故選用不同指令所用的掃描時(shí)間將會(huì)不同。若用于高速系統(tǒng)要縮短掃描周期時(shí),可從軟硬件上考慮。
三、可編程控制器的工作過程
上面已經(jīng)說明,可編程控制器是按圖 5 所示的運(yùn)行框圖進(jìn)行工作的,當(dāng) PLC 處于正常運(yùn)行時(shí),它將不斷重復(fù)圖中的掃描過程,不斷循環(huán)掃描地工作下去。分析上述掃描過程,如果我們對(duì)遠(yuǎn)程 I/O 特殊模塊和其他通信服務(wù)暫不考慮,這樣掃描過程就只剩下“輸入采樣”,“程序執(zhí)行”,“輸出刷新”三個(gè)階段了。下面就對(duì)這三個(gè)階段進(jìn)行詳細(xì)的分析,并形象地用圖 6 表示(此處 I/O 采用集中輸入,集中輸出方式)。
圖 6 PLC 掃描工作過程
1 .輸入采樣階段。 PLC 在輸入采樣階段,首先掃描所有輸入端子,并將各輸入狀態(tài)存入內(nèi)存中各對(duì)應(yīng)的輸入映像寄存器中。此時(shí),輸入映像寄存器被刷新。接著,進(jìn)入程序執(zhí)行階段,在程序執(zhí)行階段和輸出刷新階段,輸入影響寄存器與外界隔離,無論輸入信號(hào)如何變化,其內(nèi)容保持不變,直到下一個(gè)掃描周期的輸入采樣階段,才重新寫入輸入端的新內(nèi)容。
2 .程序執(zhí)行階段。根據(jù) PLC 梯形圖程序掃描原則, PLC 按先左后右,先上后下的步序語句逐句掃描。但遇到程序跳轉(zhuǎn)指令,則根據(jù)跳轉(zhuǎn)條件是否滿足來決定程序的跳轉(zhuǎn)地址。當(dāng)指令中涉及輸入、輸出狀態(tài)時(shí), PLC 就從輸入映像寄存器“讀入”上一階段采入的對(duì)應(yīng)輸入端子狀態(tài),從元件映像寄存器“讀入”對(duì)應(yīng)元件 ( “軟繼電器” ) 的當(dāng)前狀態(tài)。然后,進(jìn)行相應(yīng)的運(yùn)算,運(yùn)算結(jié)果再存入元件映像寄存器中。對(duì)元件映像寄存器來說,每一個(gè)元件 ( “軟繼電器” ) 的狀態(tài)會(huì)隨著程序執(zhí)行過程而變化。
3 .輸出刷新階段。在所有指令執(zhí)行完畢后,元件映像寄存器中所有輸出繼電器的狀態(tài)(接通 / 斷開)在輸出刷新階段轉(zhuǎn)存到輸出鎖存器中,通過一定方式輸出,驅(qū)動(dòng)外部負(fù)載。
四、可編程控制器的中斷處理
根據(jù)以上所述,外部信號(hào)的輸入總是通過可編程控制器掃描由“輸入傳送”來完成,這就不可避免地帶來了“邏輯滯后”。 PLC 能不能像計(jì)算機(jī)那樣采用中斷輸入的方法,即當(dāng)有中斷申請(qǐng)信號(hào)輸入后,系統(tǒng)會(huì)中斷正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相關(guān)的中斷子程序;系統(tǒng)若有多個(gè)中斷源時(shí),它們之間按重要性是否有一個(gè)先后順序的排隊(duì);系統(tǒng)能否由程序設(shè)定允許中斷或禁止中斷等等。 PLC 關(guān)于中斷的概念及處理思路與一般微機(jī)系統(tǒng)基本是一樣的,但也有特殊之處。
1 .響應(yīng)問題
一般微機(jī)系統(tǒng)的 CPU ,在執(zhí)行每一條指令結(jié)束時(shí)去查詢有無中斷申請(qǐng)。而 PLC 對(duì)中斷的響應(yīng)則是在相關(guān)的程序塊結(jié)束后查詢有無中斷申請(qǐng)和在執(zhí)行用戶程序時(shí)查詢有無中斷申請(qǐng),如有中斷申請(qǐng),則轉(zhuǎn)入執(zhí)行中斷服務(wù)程序。如果用戶程序以塊式結(jié)構(gòu)組成,則在每塊結(jié)束或?qū)嵭袎K調(diào)用時(shí)處理中斷。
2 .中斷源先后順序及中斷嵌套問題
在 PLC 中,中斷源的信息是通過輸入點(diǎn)而進(jìn)入系統(tǒng)的, PLC 掃描輸入點(diǎn)是按輸入點(diǎn)編號(hào)的先后順序進(jìn)行的,因此中斷源的先后順序只要按輸入點(diǎn)編號(hào)的順序排列即可。系統(tǒng)接到中斷申請(qǐng)后,順序掃描中斷源,它可能只有一個(gè)中斷源申請(qǐng)中斷,也可能同時(shí)有多個(gè)中斷源申請(qǐng)中斷。系統(tǒng)在掃描中斷源的過程中,就在存儲(chǔ)器的一個(gè)特定區(qū)建立起“中斷處理表”,按順序存放中斷信息,中斷源被掃描過后,中斷處理表亦已建立完畢,系統(tǒng)就按該表順序先后轉(zhuǎn)至相應(yīng)的中斷子程序入口地址去工作。
必須說明的是,多中斷源可以有優(yōu)先順序,但無嵌套關(guān)系。即中斷程序執(zhí)行中,若有新的中斷放生,不論新中斷的優(yōu)先順序如何,都要等執(zhí)行中的中斷處理結(jié)束后,再進(jìn)行新的中斷處理。所以在 PLC 系統(tǒng)工作中,當(dāng)轉(zhuǎn)入下一個(gè)中斷服務(wù)子程序時(shí),并不自動(dòng)關(guān)閉中斷,所以也沒有必要去開啟中斷。
3 .中斷服務(wù)程序執(zhí)行結(jié)果信息輸出問題
PLC 按巡回掃描方式工作,正常的輸入 / 輸出在掃描周期的一定階段進(jìn)行,這給外設(shè)希望及時(shí)響應(yīng)帶來了困難。采用中斷輸入,解決了對(duì)輸入信號(hào)的高速響應(yīng)。當(dāng)中斷申請(qǐng)被響應(yīng),在執(zhí)行中斷子程序后有關(guān)信息應(yīng)當(dāng)盡早送到相關(guān)外設(shè),而不希望等到掃描周期的輸出傳送階段,就是說對(duì)部分信息的輸入或輸出要與系統(tǒng) CPU 的周期掃描脫離,可利用專門的硬件模塊(如快速響應(yīng) I/O 模塊)或通過軟件利用專門指令使某些 I/O 立即執(zhí)行來解決。