西門子PLC的定時(shí)器是有限的,,并且使用起來(lái)并不是太方便,,尤其是在FB程序模塊中使用時(shí)必須通過(guò)引腳指定定時(shí)器編號(hào),當(dāng)使用較多時(shí)非常麻煩,。由于我使用定時(shí)器的場(chǎng)合對(duì)時(shí)間精度要求不高,,一般以秒為單位就足夠,比如計(jì)算設(shè)備的運(yùn)行臺(tái)時(shí),,通過(guò)時(shí)間周期控制設(shè)備等,,因此我習(xí)慣使用秒脈沖計(jì)數(shù)的方式代替計(jì)時(shí)器功能,這樣封裝在FB程序塊中只需要通過(guò)引腳輸入一個(gè)秒時(shí)鐘信號(hào)就可以了。 脈沖計(jì)數(shù)代替定時(shí)器的一個(gè)關(guān)鍵就是時(shí)鐘脈沖要準(zhǔn)確,,曾經(jīng)在AB的1769PLC上使用秒脈沖計(jì)數(shù)的方式計(jì)算設(shè)備運(yùn)行時(shí)間時(shí),,發(fā)現(xiàn)設(shè)備連續(xù)運(yùn)行一天計(jì)算的運(yùn)行臺(tái)時(shí)竟然比24小時(shí)要少,最后發(fā)現(xiàn)就是秒脈沖時(shí)基不準(zhǔn)確,。當(dāng)時(shí)是使用了2個(gè)500毫秒定時(shí)器產(chǎn)生秒時(shí)基信號(hào),,因?yàn)閽呙柚芷诘拇嬖冢總€(gè)秒時(shí)基的實(shí)際時(shí)間是1秒+掃描周期,,最后誤差累積造成計(jì)時(shí)不準(zhǔn)確,,后來(lái)為了避免這種情況只好把時(shí)基發(fā)生程序放在周期任務(wù)里。 西門子PLC相比較而言就方便多了,,因?yàn)槲鏖T子S7-200系列有系統(tǒng)時(shí)間標(biāo)志位可以直接產(chǎn)生時(shí)基信號(hào),,S7-300/400和S7-1200/1500等有時(shí)鐘存儲(chǔ)器功能可以設(shè)置,如下圖,。一般設(shè)置MB0為時(shí)鐘存儲(chǔ)器字節(jié)地址,,這樣就有8個(gè)占空比為50%的時(shí)基信號(hào)可以使用,時(shí)基最短0.1秒,,最長(zhǎng)2秒,,可以滿足大多數(shù)情況。 如果要想生成小于0.1秒的時(shí)基信號(hào),,最好用循環(huán)中斷的方法實(shí)現(xiàn),,如果要生成分鐘時(shí)基、小時(shí)時(shí)基甚至日,、月時(shí)基怎么辦呢,?也很簡(jiǎn)單,,結(jié)合系統(tǒng)時(shí)鐘讀取程序,,把CPU的系統(tǒng)時(shí)間讀取出來(lái),然后根據(jù)時(shí)間數(shù)據(jù)就可以很容易產(chǎn)生,,如下圖,。當(dāng)秒數(shù)據(jù)=0時(shí)就可以驅(qū)動(dòng)分鐘脈沖信號(hào);當(dāng)分?jǐn)?shù)據(jù)=0且秒數(shù)據(jù)=0時(shí)就可以驅(qū)動(dòng)小時(shí)脈沖信號(hào),,以此類推,。 (素材源自西門子工業(yè)技術(shù)支持中心,技術(shù)論壇作者:will666)
|