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