在實際應(yīng)用中,我們常會用到計時時長遠超過s5定時器的最大定時時長的情況。比如,我們要求某一設(shè)備在滿足運行條件后,持續(xù)運行8個小時。此時,單獨用s5定時器很難實現(xiàn)這一控制要求。
實現(xiàn)上述控制要求的方法有多種,這里,介紹一種利用計數(shù)器擴展定時時長的方法,并簡要引出s7中計數(shù)器的概念。
一、控制任務(wù)歸納
控制任務(wù)為:某一設(shè)備在滿足運行條件后,持續(xù)運行8個小時
做以下假設(shè):
1、假設(shè)該設(shè)備的各運行條件匯總為m10.0,且m10.0=1時,運行條件滿足;
2、該設(shè)備的運行命令由q2.0給出,即q2.0=1時,設(shè)備運行;
3、為方便討論,這里不考慮本設(shè)備故障、來自其他設(shè)備的連鎖/互鎖、及快/急停等各種信號的影響。
二、利用計數(shù)器擴展定時時長
1、計數(shù)器的相關(guān)概念
s7的系列cpu為計數(shù)器保留了一片存儲區(qū)域。一個計數(shù)器包括一個16位的字和一個二進制的位。計數(shù)器的字用來存儲當(dāng)前的計數(shù)值,而計數(shù)器的觸點狀態(tài)反映在它的位上。如圖1所示,為計數(shù)器的字。
圖1 計數(shù)器的字
程序中,計數(shù)器的表示方法為:c+計數(shù)器號,如c10表示10號計數(shù)器。
計數(shù)器的計數(shù)范圍為:0-999。
僅當(dāng)計數(shù)器的當(dāng)前計數(shù)值為0時,計數(shù)器的觸點狀態(tài)位才為0;否則,其觸點/線圈狀態(tài)位1;
計數(shù)器分為加計數(shù)器、減計數(shù)器及加/減計數(shù)器,這里,我們用到了減計數(shù)器。
2、設(shè)計計數(shù)脈沖
我們可以首先設(shè)計一個方波信號,具體實現(xiàn)辦法可參見《西門子s7 300仿真實驗平臺——編程實現(xiàn)矩形波、方波發(fā)生器》
這里,需要確定方波的周期。如圖2所示。
圖2 定時器及計數(shù)器的初始值的確定
如圖3所示,為方波發(fā)生器,當(dāng)m0.0=1時,定時器t1和t2周期性的工作,并在#temp1輸出一個周期為288s的方波信號。
圖3 方波發(fā)生器
3、實現(xiàn)延時時長為8h的延時斷功能
有了圖3所示的方波發(fā)生器后,我們只需利用減1計數(shù)器記錄100個方波脈沖,即:
288s*100=28800s=8h
即可實現(xiàn)定時8小時的功能,如圖4所示。
圖4 時長為8h的延時斷