官术网_书友最值得收藏!

1.4 PLC的工作原理

1.4.1 PLC的循環掃描工作過程

各種PLC都采用掃描工作方式,具體工作過程大同小異。下面以歐姆龍公司的小型機CP1為例,介紹PLC的工作過程。如圖1-5a所示,PLC上電后,首先進行初始化,然后進入循環工作過程。一次循環過程可歸納為5個工作階段,如圖1-5b所示。一次循環所用的時間稱為一個工作周期(或掃描周期),其長短與用戶程序的長短以及PLC本身的性能有關,其數量級為ms級,典型值為幾十ms。

978-7-111-44136-6-Chapter01-5.jpg

圖1-5 PLC工作流程圖

各階段完成的任務如下:

1)公共處理:進行硬件檢查、用戶程序內存檢查和電池異常檢查等。檢查正常后,方可進行下面的操作。如果有異常情況,則根據錯誤的嚴重程度發出報警或停止PLC運行。

2)程序執行:在程序執行階段,CPU按先左后右,先上后下的順序對每條指令進行解釋、執行,CPU從輸入映像寄存器(每個輸入繼電器對應一個輸入映像寄存器,其通/斷狀態對應1/0)和元件映像寄存器(即與各種內部繼電器、輸出繼電器對應的寄存器)中讀出各繼電器的狀態,根據用戶程序給出的邏輯關系進行邏輯運算,運算結果再寫入元件映像寄存器中。

3)掃描周期計算處理:若設定掃描周期為固定值(可由用戶在PLC設置中設定),則進入等待循環,直到該固定值到,再往下進行。若設定掃描周期為不定的(即決定于用戶程序的長短等,為不定值),不等待,接著進行掃描周期的計算。

4)I/O刷新:在此階段,進行I/O刷新。輸入刷新時,CPU從輸入電路中讀出各輸入點狀態,并將此狀態寫入輸入映像寄存器中;輸出刷新時,將輸出繼電器的元件映像寄存器的狀態(1/0)傳送到輸出鎖存電路,再經輸出電路隔離和功率放大,驅動外部負載。

5)外圍設備服務:包括USB端口通信、串行端口通信、存儲盒訪問,以及通信單元的鏈接服務等。

根據上述PLC的工作過程,可以得出從輸入端子到輸出端子的信號傳遞過程如圖1-6所示。若輸入端子外接開關狀態有變化,則此變化反映到輸入電路的輸出端;在I/O刷新階段,CPU從輸入電路的輸出端讀出各路狀態,并將其寫入輸入映像寄存器;在程序執行階段,CPU從輸入映像寄存器和元件映像寄存器中讀出各繼電器的狀態,并根據此狀態執行用戶程序,執行結果再寫入元件映像寄存器中;在緊接著的下一個I/O刷新階段,將輸出映像寄存器的狀態寫入輸出鎖存電路,再經輸出電路傳遞到輸出端子,從而控制外接器件動作。

978-7-111-44136-6-Chapter01-6.jpg

圖1-6 從輸入到輸出的信號傳遞過程

PLC的循環掃描工作方式也為PLC提供了一條死循環自診斷功能。PLC內部設置了一個監視定時器WDT,其定時時間可由用戶設置為大于用戶程序的掃描周期,PLC在每個掃描周期的公共處理階段將監視定時器復位。在正常情況下,監視定時器不會動作,如果由于CPU內部故障使程序執行進入死循環,那么掃描周期將超過監視定時器的定時時間,這時監視定時器動作,運行停止,以示用戶。

在循環掃描過程中,有時需要立即對某個信息進行處理,以加快響應速度,為此,PLC中引入中斷功能,設有內置輸入中斷、定時中斷、高速計數器中斷、外部中斷等,PLC在循環掃描的各個階段都可以響應中斷信號。

1.4.2 PLC的I/O滯后現象

PLC有很多優越特性,但也有不足之處,其中之一就是PLC的I/O有響應滯后現象。產生I/O滯后現象的原因主要有3個方面:

1)輸入濾波器有時間常數。輸入電路中的濾波器對輸入信號有延遲作用,時間常數越大,延遲作用越大。

2)輸出繼電器有機械滯后。從輸出繼電器的線圈通電到其觸點閉合有一段時間,這是輸出電路的硬件參數,如CP1輸出繼電器的滯后時間為15ms。

3)PLC循環操作時,進行公共處理、I/O刷新和執行用戶程序等產生掃描周期。

在圖1-7a給出的梯形圖中,從輸入觸點閉合到輸出觸點閉合有一段延遲時間,稱為I/O響應時間。圖1-7b為最小I/O響應時間,在I/O刷新階段,輸入信號已經在輸入電路的輸出端反映出來,CPU將其寫入輸入映像寄存器,經過程序執行后,結果在隨后掃描周期的I/O刷新階段被輸出,在這種情況下,I/O響應時間最小,為輸入ON時間、一個掃描周期和輸出ON時間之和。圖1-7c為最大I/O響應時間,在I/O刷新階段剛結束,輸入信號恰好在輸入電路的輸出端反映出來,由于錯過了I/O刷新階段,CPU不能讀取,而要等到第一個掃描周期的I/O刷新階段,才能被CPU寫入輸入映像寄存器,經過程序執行后,結果在第二個掃描周期的I/O刷新階段被輸出,在這種情況下,I/O響應時間最大,為輸入ON時間、兩個掃描周期和輸出ON時間之和。

以CP1為例,I/O響應時間計算如下:

輸入ON延時: 8ms(默認設置)

公共處理+I/O刷新時間: 2ms

程序執行時間: 14ms

輸出ON延時: 15ms

最小I/O響應時間=8+(2+14)+15ms=39ms

最大I/O響應時間=8+(2+14)×2+15ms=55ms

由于PLC是在循環掃描的I/O刷新階段才對I/O更新的,PLC這種集中輸入、集中輸出的刷新方式是造成輸出滯后輸入的原因之一。對一般工業控制設備來說,這些滯后現象是完全允許的。但某些場合下,需要輸出對輸入做出快速響應,PLC提供以下措施:

1)執行I/O刷新指令。CP1設置了I/O刷新指令IORF(97),在程序中執行該指令,可隨時對指定的CPU單元內置的或擴展單元的I/O通道進行刷新,以縮短輸出滯后輸入的時間,提高I/O響應速度。

2)執行立即刷新指令。常用的輸入指令是LD/LD NOT、AND-AND NOT和OR/OR NOT,常用的輸出指令是OUT/OUT NOT,CP1為這些指令設置了立即刷新功能,執行時立即對指令所訪問的CPU單元內置的I/O通道(字)進行刷新,刷新是以通道(字)為單位操作的,即刷新指定位時,對含該位的通道內的其他位也同時進行刷新。立即刷新指令如圖1-8所示,包含!LD和!OUT,圖中第一行執行時,先對PLC內置輸入通道2所有的16位立即讀入,然后進行邏輯運算;第二行執行時,在已更新的輸入通道2的數據基礎上,進行邏輯運算,將結果立即輸出,這時內置輸出通道100所有的16位一起被更新。

978-7-111-44136-6-Chapter01-7.jpg

圖1-7 I/O響應時間

978-7-111-44136-6-Chapter01-8.jpg

圖1-8 立即刷新指令

主站蜘蛛池模板: 正定县| 平泉县| 通城县| 贺兰县| 濮阳市| 门源| 叶城县| 遂平县| 洛隆县| 龙海市| 临猗县| 吕梁市| 平武县| 尚义县| 桂阳县| 青阳县| 北宁市| 海城市| 陇川县| 长阳| 澄江县| 扎赉特旗| 邯郸县| 合水县| 永顺县| 东阿县| 兴仁县| 开封市| 富顺县| 永昌县| 柞水县| 蕉岭县| 河南省| 泽库县| 峨眉山市| 宜昌市| 涿州市| 榕江县| 油尖旺区| 萨嘎县| 美姑县|