一、問題的提出
前面的文章中,我們介紹了S5定時器,並詳細探討了它們的用法。S5定時器在時基"10s"的情況下,可定時時間最長,其定時時長為9990s,即
2小時46分鐘30秒。在實際應用中,我們常會用到計時時長遠超過S5定時器的最大定時時長的情況。比如,我們要求某一設備在滿足運行條件後,持續運行8個小時。此時,單獨用S5定時器很難實現這一控制要求。
實現上述控制要求的方法有多種,這裡,介紹一種"利用計數器擴展定時時長"的方法,並簡要引出S7中計數器的概念。
二、控制任務歸納
控制任務為:某一設備在滿足運行條件後,持續運行8個小時
做以下假設:
1、假設該設備的各運行條件彙總為M10.0,且M10.0=1時,運行條件滿足;
2、該設備的運行命令由Q2.0給出,即Q2.0=1時,設備運行;
3、為方便討論,這裡不考慮本設備故障、來自其他設備的連鎖/互鎖、及快/急停等各種信號的影響。
三、利用計數器擴展定時時長
1、計數器的相關概念
S7的系列CPU為計數器保留了一片存儲區域。一個計數器包括一個16位的字和一個二進制的位。計數器的字用來存儲當前的計數值,而計數器的觸點狀態反映在它的位上。如圖1所示,為計數器的字。
- 程序中,計數器的表示方法為:"C+計數器號",如C10表示10號計數器。
- 計數器的計數範圍為:0-999。
- 僅當計數器的當前計數值為0時,計數器的觸點狀態位才為0;否則,其觸點/線圈狀態位1;
- 計數器分為加計數器、減計數器及加/減計數器,這裡,我們用到了減計數器。
2、設計計數脈衝
我們可以首先設計一個"方波"信號,具體實現辦法可參見《西門子S7 300仿真實驗平臺——編程實現矩形波、方波發生器》
這裡,需要確定方波的週期。如圖2所示。
如圖3所示,為方波發生器,當M0.0=1時,定時器T1和T2週期性的工作,並在"#temp1"輸出一個週期為288s的方波信號。
3、實現延時時長為8h的"延時斷"功能
有了圖3所示的"方波發生器"後,我們只需利用減1計數器記錄100個方波脈衝,即:
288s*100=28800s=8h
即可實現定時8小時的功能,如圖4所示。
四、思考
本文介紹瞭如何利用計數器擴展S5定時器的定時時長。有興趣的可以進一步思考:
是否能利用計數器實現週期更長(超出S5定時器的範圍)的矩形波呢?
閱讀更多 塞北名駝 的文章