- 西門子PLC、變頻器與觸摸屏技術及綜合應用
- 侍壽永 王玲主編
- 3782字
- 2023-08-28 20:00:41
1.6 定時器及計數器指令
1.6.1 定時器指令
1.脈沖定時器
在梯形圖中輸入脈沖定時器指令時,打開右邊的指令窗口,將“定時器操作”文件夾中的定時器指令拖放到梯形圖中的適當位置。在出現的“調用選項”對話框中,可以修改將要生成的背景數據塊的名稱,或采用默認的名稱,單擊“確定”按鈕,自動生成數據塊。
脈沖定時器類似于數字電路中上升沿觸發的單穩態電路,其應用如圖1-31a所示,圖1-31b為其工作時序圖。在圖1-31a中,“%DB1”表示定時器的背景數據塊(此處只顯示了絕對地址,因此背景數據塊地址顯示為“%DB1”,也可設置顯示符號地址),TP表示脈沖定時器。

圖1-31 脈沖定時器及其時序圖
a)脈沖定時器 b)時序圖
脈沖定時器的工作原理如下。
1)起動:當輸入端IN從“0”變為“1”時,定時器起動,此時輸出端Q也置為“1”,開始輸出脈沖。到達PT(Preset Time)預置的時間時,輸出端Q變為“0”狀態(見圖1-31b波形A、B、E)。輸入端IN輸入的脈沖寬度可以小于輸出端Q的脈沖寬度。在脈沖輸出期間,即使輸入端IN輸入發生了變化又出現上升沿(見波形B),也不影響脈沖的輸出。到達預設值后,如果輸入端IN輸入為“1”,則定時器停止定時且保持當前定時值。若輸入端IN輸入為“0”,則定時器定時時間清零。
2)輸出:在定時器定時過程中,輸出端Q為“1”,定時器停止定時,不論是保持當前值還是清零當前值其輸出皆為“0”狀態。
3)復位:當圖1-31a中的I0.1為“1”時,定時器復位線圈(RT)通電,定時器被復位。如果此時正在定時,且輸入端IN輸入為“0”狀態,將使已耗時間值清零,輸出端Q輸出也變為“0”(見波形C)。如果此時正在定時,且輸入端IN輸入為“1”狀態,將使已耗時間值清零,輸出端Q輸出保持為“1”狀態(見波形D)。復位信號I0.1變為“0”狀態時,如果輸入端IN輸入為“1”狀態,將重新開始定時(見波形E)。
圖1-31a中的ET(Elapsed Time)為已耗時間值,即定時開始后經過的時間,它的數據類型為32位的Time,采用T#標識符,單位為ms,最大定時時間長達T#24D_20H_31M_23S_647MS(D、H、M、S、MS分別為日、小時、分、秒和毫秒),可以不給輸出ET指定地址。
定時器指令可以放在程序段的中間或結束處。IEC定時器沒有編號,在使用對定時器復位的RT(Reset Time)指令時,可以用背景數據塊的編號或符號名來指定需要復位的定時器。如果沒有必要,不用對定時器使用RT指令。
【例1-1】 按下起動按鈕I0.0,電動機立即直接起動并運行,工作3h后自動停止。在運行過程中若發生故障(如過載I0.2接通),或按下停止按鈕I0.1,電動機立即停止運行,如圖1-32所示。

圖1-32 電動機起動運行后自動停止程序——使用脈沖定時器
2.接通延時定時器
接通延時定時器如圖1-33a所示,圖1-33b為其工作時序圖。在圖1-33a中,“%DB2”表示定時器的背景數據塊,TON表示接通延時定時器。

圖1-33 接通延時定時器及其時序圖
a)接通延時定時器 b)時序圖
接通延時定時器的工作原理如下。
1)起動:接通延時定時器的使能輸入端IN的輸入電路由“0”變為“1”時開始定時。定時時間大于等于預置時間PT指定的設定值時,定時器停止計時且保持為預設值,即已耗時間值ET保持不變(見圖1-33b的波形A),只要輸入端IN為“1”,定時器就一直起作用。
2)輸出:當定時時間到,且輸入端IN為“1”,此時輸出端Q變為“1”狀態。
3)復位:輸入端IN的電路斷開時,定時器被復位,已耗時間值被清零,輸出端Q變為“0”狀態。CPU第一次掃描時,定時器輸出端Q被清零。如果輸入端IN在未達到PT設定的時間變為“0”(見波形B),輸出端Q保持“0”狀態不變。圖1-33a中的I0.1為“1”狀態時,定時器復位線圈RT通過(見波形C),定時器被復位,已耗時間值被清零,輸出端Q變為“0”狀態。I0.1變為“0”狀態,如果輸入端IN為“1”狀態,將開始重新定時(見波形D)。
【例1-2】 使用接通延遲定時器實現【例1-1】中電動機的起停控制,如圖1-34所示。

圖1-34 電動機起動運行后自動停止程序——使用接通延時定時器
視頻“接通延時定時器指令”可通過掃描二維碼1-7播放。

1-7 接通延時定時器指令
3.關斷延時定時器
關斷延時定時器如圖1-35a所示,圖1-35b為其工作時序圖。在圖1-35a中,TOF表示關斷延時定時器。

圖1-35 關斷延時定時器及其時序圖
a)關斷延時定時器 b)時序圖
關斷延時定時器的工作原理如下。
1)起動:關斷延時定時器的輸入端IN由“0”變為“1”時,定時器尚未定時且當前定時值清零。當輸入端IN由“1”變為“0”時,定時器起動開始定時,已耗時間值從0逐漸增大。當定時器時間到達預設值時,定時器停止計時并保持當前值(見圖1-35b波形A)。
2)輸出:當輸入端IN從“0”變為“1”時,輸出端Q變為“1”狀態,如果輸入端IN又變為“0”,則輸出繼續保持“1”,直到到達預設的時間。如果已耗時間未達到PT設定的值時,輸入端IN又變為“1”狀態,輸出端Q將保持“1”狀態(見圖1-35b波形B)。
3)復位:當I0.1為“1”時,定時器復位線圈RT通電。如果輸入端IN為“0”狀態,則定時器被復位,已耗時間值被清零,輸出端Q變為“0”狀態(見圖1-35b波形C)。如果復位時輸入端IN為“1”狀態,則復位信號不起作用(見圖1-35b波形D)。
【例1-3】 通過關斷延遲定時器實現電動機停止后其冷卻風扇延時2min后停止,如圖1-36所示。

圖1-36 冷卻風扇延時停止程序
4.保持型接通延時定時器
保持型接通延時定時器(又稱時間累加器)如圖1-37a所示,圖1-37b為其工作時序圖。在圖1-37a中,TONR表示保持型接通延時定時器。

圖1-37 保持型接通延時定時器及其時序圖
a)保持型接通延時定時器 b)時序圖
其工作原理如下。
1)起動:當定時器的輸入端IN從“0”到“1”時,定時器起動,開始定時(見圖1-37b波形A和B),當輸入端IN變為“0”時,定時器停止工作并保持當前計時值(累計值)。當定時器的輸入端IN又從“0”變為“1”時,定時器繼續計時,當前值繼續增加。如此重復,直到定時器當前值達到預設值時,定時器停止計時。
2)輸出:當定時器計時時間到達預設值時,輸出端Q變為“1”狀態(見圖1-37b波形D)。
3)復位:當復位輸入I0.1為“1”時(見圖1-37b波形C),TONR被復位,它的累計時間值變為零,同時輸出端Q變為“0”狀態。
1.6.2 計數器指令
S7-1200 PLC提供3種計數器:加計數器、減計數器和加減計數器。它們屬于軟件計數器,最大計數速率受到其所在OB(組織塊)的執行速率的限制。如果需要速度更高的計數器,可以使用內置的高速計數器。
與定時器類似,使用S7-1200的計數器時,每個計數器需要使用一個存儲在數據塊中的結構來保存計數器數據。在程序編輯器中放置計數器即可分配該數據塊,可以采用默認設置,也可以手動自行設置。
使用計數器需要設置計數器的計數數據類型,計數值的數據范圍取決于所選的數據類型。如果計數值是無符號整型數,則可以減計數到零或加計數到范圍限值。如果計數值是有符號整數,則可以減計數到負整數限值或加計數到正整數限值。支持的數據類型包括有符號短整數SInt、整數Int、雙整數DInt、無符號短整數USInt、無符號整數UInt、無符號雙整數UDInt。
1.加計數器
加計數器如圖1-38a所示,圖1-38b為其工作時序圖。在圖1-38a中,CTU表示加計數器,圖中計數器數據類型是整數,預設值PV(Preset Value)為3,其工作原理如下。

圖1-38 加計數器及其時序圖
a)加計數器 b)時序圖
當接在輸入端R的復位輸入I0.1為“0”狀態,接在輸入端CU(Count Up)的加計數脈沖從“0”到“1”時(即輸入端出現上升沿),計數值CV(Count Value)加1,直到CV達到指定的數據類型的上限值。此后CU輸入的狀態變化不再起作用,即CV的值不再增加。
當計數值CV大于等于預設值PV時,輸出Q變為“1”狀態,反之為“0”狀態。第一次執行指令時,CV被清零。
各類計數器的復位輸入端R為“1”狀態時,計數器被復位,輸出Q變為“0”狀態,CV被清零。
打開計數器的背景數據塊,可以看到其結構如圖1-39所示,其他計數器的背景數據塊與此類似,不再贅述。

圖1-39 計數器的背景數據塊結構
視頻“加計數器指令”可通過掃描二維碼1-8播放。

1-8 加計數器指令
2.減計數器
減計數器如圖1-40a所示,圖1-40b為其工作時序圖。在圖1-40a中,CTD表示減計數器,圖中計數器數據類型是整數,預設值PV為3,其工作原理如下。

圖1-40 減計數器及其時序圖
a)減計數器 b)時序圖
減計數器的裝載輸入LD(LOAD)為“1”狀態時,輸出端Q被復位為0,并把預設值PV裝入CV。在減計數器CD(Count Down)的上升沿,當前計數值CV減1,直到CV達到指定的數據類型的下限值。此后CD輸入的狀態變化不再起作用,CV的值不再減小。
當前計數值CV小于等于0時,輸出Q為“1”狀態,反之輸出Q為“0”狀態。第一次執行指令時,CV值被清零。
3.加減計數器
加減計數器如圖1-41a所示,圖1-41b為其工作時序圖。在圖1-41中,CTUD表示加減計數器,圖中計數器數據類型是整數,預設值PV為3,其工作原理如下。

圖1-41 加減計數器及其時序圖
a)加減計數器 b)時序圖
在加計數輸入CU的上升沿,加減計數器的當前值CV加1,直到CV達到指定的數據類型的上限值。達到上限值時,CV不再增加。
在減計數輸入CD的上升沿,加減計數器的當前值CV減1,直到CV達到指定的數據類型的下限值。達到下限值時,CV不再減小。
如果同時出現計數脈沖CU和CD的上升沿,CV保持不變。CV大于等于預設值PV時,輸出QU為“1”狀態,反之為“0”狀態。CV值小于等于0時,輸出QD為“1”狀態,反之為“0”狀態。
裝載輸入LD為“1”狀態,預設值PV被裝入當前計數值CV,輸出QU變為“1”狀態,QD被復位為“0”狀態。
復位輸入R為“1”狀態時,計數器被復位,CU、CD、LD不再起作用,同時當前計數值CV被清零,輸出QU變為“0”狀態,QD被復位為“1”狀態。