定時器是根據預先設定的定時值,按一定的時間單位進行計時的PLC內部裝置,在運行過程中當定時器的輸入條件滿足時,當前值從0開始按一定的單位增加。當定時器的當前值到達設定值時,定時器發生動作,從而滿足各種定時邏輯控製的需要。下麵詳細介紹定時器的使用。 www.fpxing.com
1、S7—200 PLC定時器種類
S7—200 PLC為用戶提供了三種類型的定時器:接通延時定時器(TON)、有記憶接通延時定時器(TONR)和斷開延時定時器(TOF)。對於每一種定時器,又根據定時器的分辨率的不同,分為:1 ms、10 ms和100 ms三個精度等級。
定時器定時時間T的計算:T=PT×S。式中:T為實際定時時間,PT為設定值,S為分辨率。例如:TON指令使用T35(為10 ms的定時器),設定值為100,則實際定時時間為:
T=100 X 10=1 000 ms
定時器的設定值PT:數據類型為INT型。操作數可為:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常數,其中常數最為常用。
定時器的編號用定時器的名稱和它的常數編號(最大為255)來表示,即T×××。如:T40。定時器的編號包含兩方麵的變量信息:定時器位和定時器當前值。定時器位即定時器觸點,與其他繼電器的輸出相似。當定時器的當前值達到設定值PT時,定時器的觸點動作。定時器當前值即定時器當前所累計的時間值,它用16位符號整數來表示,最大計數值為32 767。
定時器的分辨率和編號如表所列。
定時器類型 |
分辨率/ms |
最大當前值/s |
定時器編號 |
TONR |
1 |
32.767 |
T0,T64 |
10 |
327.67 |
T1~T4,T65~68 | |
100 |
3276.7 |
T5~T31,T69~T95 | |
TON,TOF |
1 |
32.767 |
T32,T96 |
10 |
327.67 |
T33~T36,T97~T100 | |
100 |
3276.7 |
T37~T63,T101~T255 |
從上表可以看出TON和TOF使用相同範圍的定時器編號,需要注意的是,在同一個PLC程序中決不能把同一個定時器號同時用作TON和TOF。例如在程序中,不能既有接通延時(TON)定時器T32,又有斷開延時(TOF)定時器T32。
2、定時器指令的使用
三種定時器指令的LAD和STL格式如表所列。
表 定時器指令的LAD和STL形式
三種定時器指令的LAD和STL格式如表7.10所列。 | |||||||||||||||
表7.10 定時器指令的LAD和STL形式
|
(1)接通延時定時器TON(On—Delay Timer)
接通延時定時器用於單一時間間隔的定時。上電周期或首次掃描時,定時器位為OFF,當前值為0。輸入端接通時,定時器位為OFF,當前值從0開始計時,當前值達到設定值時,定時器位為ON,當前值仍繼續計數,直到32 767為止。輸入端斷開,定時器自動複位,即定時器位為OFF,當前值為0。
(2)記憶接通延時定時器TONR(Retentive On—Delay Timer)
記憶接通延時定時器對定時器的狀態具有記憶功能,它用於對許多間隔的累計定時。首次掃描或複位後上電周期,定時器位為OFF,當前值為0。當輸入端接通時,當前值從0開始計時。當輸入端斷開時,當前值保持不變。當輸入端再次接通時,當前值從上次的保持值繼續計時,當前值累計達到設定值時,定時器位ON並保持,隻要輸入端繼續接通,當前值可繼續計數到32 767。
需要注意的是,斷開輸入端或斷開電源都不能改變TONR定時器的狀態,隻能用複位指令R對其進行複位操作。
(3)斷開延時定時器TOF(Off—Delay Timer)
斷開延時定時器用來在輸入斷開後延時一段時間斷開輸出。上電周期或首次掃描,定時器位為OFF,當前值為0。輸入端接通時,定時器位為ON,當前值為0。當輸入端由接通到斷開時,定時器開始計時。當達到設定值時定時器位為OFF,當前值等於設定值,停止計時。輸入端再次由OFF—ON時,TOF複位;如果輸入端再從ON—OFF,則TOF可實現再次啟動。
圖1所示為三種類型定時器的基本使用舉例,其中T35為TON、T2為TONR、T36為TOF。
圖1 定時器指令
3、定時器的分辨率(時基)及其正確使用
定時器實質就是對時間間隔計數。定時器的分辨率(時基)決定了每個時間間隔的時間長短。在S7—200係列PLC的定時器中,定時器的分辨率有1 ms、10 ms、100 ms三種,這三種定時器的刷新方式是不同的,從而在使用方法上也有很大的不同。這和其他PLC是有很大區別的。使用時一定要注意根據使用場合和要求來選擇定時器。
(1)定時器的刷新方式
①1 ms定時器 1 ms定時器采用的是中斷刷新方式,由係統每隔1 ms刷新一次,與掃描周期及程序處理無關。對於大於1ms 的程序掃描周期,在一個掃描周期內,定時器位和當前值刷新多次。其當前值在一個掃描周期內不一定保持一致。
②10 ms定時器 10 ms定時器由係統在每個掃描周期開始時自動刷新,在每個掃描周期的開始會將一個掃描累計的時間間隔加到定時器當前值上。由於是每個掃描周期隻刷新一次,故在一個掃描周期內定時器位和定時器的當前值保持不變。
③100 ms定時器 100 ms定時器在定時器指令執行時被刷新,因此,如果100 ms定時器被激活後,如果不是每個掃描周期都執行定時器指令或在一個掃描周期內多次執行定時器指令,都會造成計時失準。100ms定時器僅用在定時器指令在每個掃描周期執行一次的程序中。
(2)定時器的正確使用
圖2所示為正確使用定時器的一個例子。它用來在定時器計時時間到時產生一個寬度為一個掃描周期的脈衝。
圖2定時器指令的正確使用
結合各種定時器的刷新方式規定,從圖中可以看出:
①對1ms定時器T32,在使用錯誤方法時,隻有當定時器的刷新發生在T32的常閉觸點執行以後到T32的常開觸點執行以前的區間時,Q0.0才能產生一個寬度為一個掃描周期的脈衝,而這種可能性是極小的。在其它情況下不會產生這個脈衝。
②對10 ms定時器T33,使用錯誤方法時,Q0.0永遠產生不了這個脈衝。因為當定時器計時到時,定時器在每次掃描開始時刷新。該例中T33被置位,但執行到定時器指令時,定時器將被複位(當前值和位都被置0)。(www.fpxing.com版權所有)當常開觸點T33被執行時,T33永遠為OFF,Q0.0也將為OFF,即永遠不會被置位ON。
③100 ms的定時器在執行指令時刷新,所以當定時器T37到達設定值時,Q0.0肯定會產生這個脈衝。改用正確使用方法後,把定時器到達設定值產生結果的元器件的常閉觸點用做定時器本身的輸入,則不論哪種定時器,都能保證定時器達到設定值時,Q0.0產生一個寬度為一個掃描周期的脈衝。所以,在使用定時器時,要弄清楚定時器的分辨率,否則,一般情況下不要把定時器本身的常閉觸點作為自身的複位條件。在實際使用時,為了簡單,100 ms的定時器常采用自複位邏輯,而且100 ms定時器也是使用最多的定時器。