按時(shí)間控制是最常用的邏輯控制形式,所以定時(shí)器是plc中最常用的元件之一。用好、用對定時(shí)器對plc程序設(shè)計(jì)非常重要。
定時(shí)器是根據(jù)預(yù)先設(shè)定的定時(shí)值,按一定的時(shí)間單位進(jìn)行計(jì)時(shí)的plc內(nèi)部裝置,在運(yùn)行過程中當(dāng)定時(shí)器的輸入條件滿足時(shí),當(dāng)前值從0開始按一定的單位增加。當(dāng)定時(shí)器的當(dāng)前值到達(dá)設(shè)定值時(shí),定時(shí)器發(fā)生動作,從而滿足各種定時(shí)邏輯控制的需要。下面詳細(xì)介紹定時(shí)器的使用。
1、s7—200 plc定時(shí)器種類
s7—200 plc為用戶提供了三種類型的定時(shí)器:接通延時(shí)定時(shí)器(ton)、有記憶接通延時(shí)定時(shí)器(tonr)和斷開延時(shí)定時(shí)器(tof)。對于每一種定時(shí)器,又根據(jù)定時(shí)器的分辨率的不同,分為:1 ms、10 ms和100 ms三個(gè)精度等級。
定時(shí)器定時(shí)時(shí)間t的計(jì)算:t=pt×s。式中:t為實(shí)際定時(shí)時(shí)間,pt為設(shè)定值,s為分辨率。例如:ton指令使用t35(為10 ms的定時(shí)器),設(shè)定值為100,則實(shí)際定時(shí)時(shí)間為:
t=100 x 10=1 000 ms
定時(shí)器的設(shè)定值pt:數(shù)據(jù)類型為int型。操作數(shù)可為:vw、iw、qw、mw、sw、smw、lw、aiw、t、c、ac、*vd、*ac、*ld和常數(shù),其中常數(shù)最為常用。
定時(shí)器的編號用定時(shí)器的名稱和它的常數(shù)編號(最大為255)來表示,即t×××。如:t40。定時(shí)器的編號包含兩方面的變量信息:定時(shí)器位和定時(shí)器當(dāng)前值。定時(shí)器位即定時(shí)器觸點(diǎn),與其他繼電器的輸出相似。當(dāng)定時(shí)器的當(dāng)前值達(dá)到設(shè)定值pt時(shí),定時(shí)器的觸點(diǎn)動作。定時(shí)器當(dāng)前值即定時(shí)器當(dāng)前所累計(jì)的時(shí)間值,它用16位符號整數(shù)來表示,最大計(jì)數(shù)值為32 767。
定時(shí)器的分辨率和編號如表所列。
定時(shí)器類型
分辨率/ms
最大當(dāng)前值/s
定時(shí)器編號
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使用相同范圍的定時(shí)器編號,需要注意的是,在同一個(gè)plc程序中決不能把同一個(gè)定時(shí)器號同時(shí)用作ton和tof。例如在程序中,不能既有接通延時(shí)(ton)定時(shí)器t32,又有斷開延時(shí)(tof)定時(shí)器t32。
2、定時(shí)器指令的使用
三種定時(shí)器指令的lad和stl格式如表所列。
表 定時(shí)器指令的lad和stl形式
三種定時(shí)器指令的lad和stl格式如表7.10所列。
表7.10 定時(shí)器指令的lad和stl形式
格式
名稱
接通延時(shí)定時(shí)器
有記憶接通延時(shí)定時(shí)器
斷開延時(shí)定時(shí)器
lad
stl
ton t***, pt
tonr t***, pt
tof t***, pt
(1)接通延時(shí)定時(shí)器ton(on—delay timer)
接通延時(shí)定時(shí)器用于單一時(shí)間間隔的定時(shí)。上電周期或首次掃描時(shí),定時(shí)器位為off,當(dāng)前值為0。輸入端接通時(shí),定時(shí)器位為off,當(dāng)前值從0開始計(jì)時(shí),當(dāng)前值達(dá)到設(shè)定值時(shí),定時(shí)器位為on,當(dāng)前值仍繼續(xù)計(jì)數(shù),直到32 767為止。輸入端斷開,定時(shí)器自動復(fù)位,即定時(shí)器位為off,當(dāng)前值為0。
(2)記憶接通延時(shí)定時(shí)器tonr(retentive on—delay timer)
記憶接通延時(shí)定時(shí)器對定時(shí)器的狀態(tài)具有記憶功能,它用于對許多間隔的累計(jì)定時(shí)。首次掃描或復(fù)位后上電周期,定時(shí)器位為off,當(dāng)前值為0。當(dāng)輸入端接通時(shí),當(dāng)前值從0開始計(jì)時(shí)。當(dāng)輸入端斷開時(shí),當(dāng)前值保持不變。當(dāng)輸入端再次接通時(shí),當(dāng)前值從上次的保持值繼續(xù)計(jì)時(shí),當(dāng)前值累計(jì)達(dá)到設(shè)定值時(shí),定時(shí)器位on并保持,只要輸入端繼續(xù)接通,當(dāng)前值可繼續(xù)計(jì)數(shù)到32 767。
需要注意的是,斷開輸入端或斷開電源都不能改變tonr定時(shí)器的狀態(tài),只能用復(fù)位指令r對其進(jìn)行復(fù)位操作。
(3)斷開延時(shí)定時(shí)器tof(off—delay timer)
斷開延時(shí)定時(shí)器用來在輸入斷開后延時(shí)一段時(shí)間斷開輸出。上電周期或首次掃描,定時(shí)器位為off,當(dāng)前值為0。輸入端接通時(shí),定時(shí)器位為on,當(dāng)前值為0。當(dāng)輸入端由接通到斷開時(shí),定時(shí)器開始計(jì)時(shí)。當(dāng)達(dá)到設(shè)定值時(shí)定時(shí)器位為off,當(dāng)前值等于設(shè)定值,停止計(jì)時(shí)。輸入端再次由off—on時(shí),tof復(fù)位;如果輸入端再從on—off,則tof可實(shí)現(xiàn)再次啟動。
圖1所示為三種類型定時(shí)器的基本使用舉例,其中t35為ton、t2為tonr、t36為tof。
圖1 定時(shí)器指令
3、定時(shí)器的分辨率(時(shí)基)及其正確使用
定時(shí)器實(shí)質(zhì)就是對時(shí)間間隔計(jì)數(shù)。定時(shí)器的分辨率(時(shí)基)決定了每個(gè)時(shí)間間隔的時(shí)間長短。在s7—200系列plc的定時(shí)器中,定時(shí)器的分辨率有1 ms、10 ms、100 ms三種,這三種定時(shí)器的刷新方式是不同的,從而在使用方法上也有很大的不同。這和其他plc是有很大區(qū)別的。使用時(shí)一定要注意根據(jù)使用場合和要求來選擇定時(shí)器。
(1)定時(shí)器的刷新方式
①1 ms定時(shí)器 1 ms定時(shí)器采用的是中斷刷新方式,由系統(tǒng)每隔1 ms刷新一次,與掃描周期及程序處理無關(guān)。對于大于1ms 的程序掃描周期,在一個(gè)掃描周期內(nèi),定時(shí)器位和當(dāng)前值刷新多次。其當(dāng)前值在一個(gè)掃描周期內(nèi)不一定保持一致。
②10 ms定時(shí)器 10 ms定時(shí)器由系統(tǒng)在每個(gè)掃描周期開始時(shí)自動刷新,在每個(gè)掃描周期的開始會將一個(gè)掃描累計(jì)的時(shí)間間隔加到定時(shí)器當(dāng)前值上。由于是每個(gè)掃描周期只刷新一次,故在一個(gè)掃描周期內(nèi)定時(shí)器位和定時(shí)器的當(dāng)前值保持不變。
③100 ms定時(shí)器 100 ms定時(shí)器在定時(shí)器指令執(zhí)行時(shí)被刷新,因此,如果100 ms定時(shí)器被激活后,如果不是每個(gè)掃描周期都執(zhí)行定時(shí)器指令或在一個(gè)掃描周期內(nèi)多次執(zhí)行定時(shí)器指令,都會造成計(jì)時(shí)失準(zhǔn)。100ms定時(shí)器僅用在定時(shí)器指令在每個(gè)掃描周期執(zhí)行一次的程序中。
(2)定時(shí)器的正確使用
圖2所示為正確使用定時(shí)器的一個(gè)例子。它用來在定時(shí)器計(jì)時(shí)時(shí)間到時(shí)產(chǎn)生一個(gè)寬度為一個(gè)掃描周期的脈沖。
圖2定時(shí)器指令的正確使用
結(jié)合各種定時(shí)器的刷新方式規(guī)定,從圖中可以看出:
①對1ms定時(shí)器t32,在使用錯(cuò)誤方法時(shí),只有當(dāng)定時(shí)器的刷新發(fā)生在t32的常閉觸點(diǎn)執(zhí)行以后到t32的常開觸點(diǎn)執(zhí)行以前的區(qū)間時(shí),q0.0才能產(chǎn)生一個(gè)寬度為一個(gè)掃描周期的脈沖,而這種可能性是極小的。在其它情況下不會產(chǎn)生這個(gè)脈沖。
②對10 ms定時(shí)器t33,使用錯(cuò)誤方法時(shí),q0.0永遠(yuǎn)產(chǎn)生不了這個(gè)脈沖。因?yàn)楫?dāng)定時(shí)器計(jì)時(shí)到時(shí),定時(shí)器在每次掃描開始時(shí)刷新。該例中t33被置位,但執(zhí)行到定時(shí)器指令時(shí),定時(shí)器將被復(fù)位(當(dāng)前值和位都被置0)。當(dāng)常開觸點(diǎn)t33被執(zhí)行時(shí),t33永遠(yuǎn)為off,q0.0也將為off,即永遠(yuǎn)不會被置位on。
③100 ms的定時(shí)器在執(zhí)行指令時(shí)刷新,所以當(dāng)定時(shí)器t37到達(dá)設(shè)定值時(shí),q0.0肯定會產(chǎn)生這個(gè)脈沖。改用正確使用方法后,把定時(shí)器到達(dá)設(shè)定值產(chǎn)生結(jié)果的元器件的常閉觸點(diǎn)用做定時(shí)器本身的輸入,則不論哪種定時(shí)器,都能保證定時(shí)器達(dá)到設(shè)定值時(shí),q0.0產(chǎn)生一個(gè)寬度為一個(gè)掃描周期的脈沖。所以,在使用定時(shí)器時(shí),要弄清楚定時(shí)器的分辨率,否則,一般情況下不要把定時(shí)器本身的常閉觸點(diǎn)作為自身的復(fù)位條件。在實(shí)際使用時(shí),為了簡單,100 ms的定時(shí)器常采用自復(fù)位邏輯,而且100 ms定時(shí)器也是使用最多的定時(shí)器。