在很多工程應用中,根據控制功能要求,需要對系統進行24小時監控,在經過某一特定時間或遇到緊急情況后給出提醒或預警。為了減少人為因素造成的影響,我們希望系統能自動進行。PLC中的定時器便具有這個功能。
但是,定時器的計數值在PLC的內部使用二進制,一個16位二進制字除去一個符號位后,能表示的最大整數是32767,它將對應定時器的最大定時時間。以100ms定時器為例,32767對應最大定時時間為32767×0.1=3276.7(s),時間不足1小時。這使得在使用單個定時器編制長時間計時程序受到很大制約。
由于定時器的計時時間有限,利用單個定時器達不到長時間計時的目的,要解決問題需要利用軟件編程來實現長時間計時。下面以S7-200 PLC為例,通過案例來探討利用定時器和計數器擴展的方式進行長時間計時,供使用者參考。
1.1 定時器基本應用
S7-200 PLC有三種類型的定時器,接通延時定時器(TON)、斷開延時定時器(TOF)、記憶接通延時定時器(TONR)。以常用的延時接通定時器(TON)為例討論定時器的基本應用。
圖1 定時器基本應用
工作原理:當輸入端閉合,即I0.0為“ON”時,定時器T37接通并開始計時,10秒后,定時器T37常開觸點接通并保持,輸出繼電器Q0.0輸出。I0.0斷開,定時器復位,Q0.0斷開。
1.2 計數器基本應用
S7-200 PLC有三種類型的計數器,增計數器(CTU)、減計數器(CTD)、增/減計數器(CTUD)[2]。以常用的增計數器(CTU)為例討論計數器的基本應用。
圖2 計數器的基本應用
工作原理:首先,使I0.1輸入端通、斷一次,計數器C0復位,即當前值回“0”。然后,每通、斷一次I0.0,計數器C0記錄1個數,即C0當前值加1,當C0當前值達到10后,計數器C0常開觸點接通并保持,輸出繼電器Q0.0輸出,直到I0.1再次閉合,計數器復位,Q0.0斷開。
1.3 定時器級聯擴展延時
對于分辨率為100ms的延時接通定時器(TON)來講,其設定值最大為32767,延時時間最長為3276.7秒。當超過該時間,單個定時器則無法完成計時功能。這種情況下,可以利用定時器級聯的方式實現延時時間的擴展。
案例1:利用兩個定時器級聯實現延時1小時
圖3 定時器延時1小時
總的延時時間T=T37+T38=1800秒+1800秒=3600秒=1小時。這是單個定時器無法完成的定時時間。
還可以用同樣的方法實現三個、四個定時器級聯延時。這種擴展方法的計時時間是各個定時器計時時間的總和。
1.4 利用計數器延時
案例2:利用兩個計數器實現延時10小時
圖4 計數器延時10小時
總的延時時間為:1秒×(6000×6)=36000秒÷3600秒=10小時。
這種擴展延時方法的關鍵是:(1)在網絡1中,首先,利用特殊功能寄存器SM0.5(周期為1秒,占空比為1:1),作為計數器C0的計數輸入脈沖,在計數的同時實現計時;第二,將C0的輸出作為自身的復位,實現記錄6000個脈沖后重新開始。(2)在網絡2中,將C0的輸出作為C1的輸入,實現每記錄6000個脈沖觸發C1計數1次。
3.1控制要求
某住宅小區需要24小時晝夜定時報警,早上6:30,電鈴每秒響一次,6次后自動停止;9:00-17:00,啟動住宅報警系統;晚上18:00打開小區內照明系統;晚上22:00關閉小區內照明系統。
3.2 I/0口分配
表1 I/O 分配表
3.3 接線圖
圖5 接線圖
3.4 梯形圖程序
程序說明:
(1) 網絡1、網絡2 中,I0.0為系統啟動開關;I0.1 為快速調整開關; I0.2為系統實驗用開關;SM0.1用于上電時系統復位;C0 、C1兩個計數器級聯,C0形成900秒的計時周期,C1記錄96個900秒,共計900×96=86400秒,即24個小時;
(2)網絡3用于實現早晨6:30啟動電鈴,電鈴每隔1秒響1次,6次后停止;
(3)網絡4用于實現晚上18:00開啟小區內照明系統;網絡4用于實現晚上22:00關閉小區內照明系統;
(4)網絡5用于實現9:00到17:00開啟小區內報警系統;
(5)網絡7、網絡8,形成0.1秒鐘震蕩信號,用于快速調整系統使用。
圖6 梯形圖程序
定時器指令和計數器指令是PLC編程的重要指令,掌握好它們的使用方法,使設計格式規范化,可以優化設計程序,對編程水平的提高有十分重要的意義,利用編程實現長時的方法還有很多,案例也不勝枚舉,同時,靈活利用定時器和計數器組合進行長時間計時,PLC的編程功能,既可減少硬件設備資源,降低生產成本,又使系統運行靈活可靠。
本文編自《電氣技術》,標題為“關于利用PLC定時器和計數器進行長計時功能的探討”,作者為侯肖霞。