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