S7-300/400進階筆記11:巧用計數器,擴展S5定時器的計時時長

一、問題的提出

前面的文章中,我們介紹了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所示,為計數器的字

S7-300/400進階筆記11:巧用計數器,擴展S5定時器的計時時長

圖1 計數器的"字"

  • 程序中,計數器的表示方法為:"C+計數器號",如C10表示10號計數器。
  • 計數器的計數範圍為:0-999。
  • 僅當計數器的當前計數值為0時,計數器的觸點狀態位才為0;否則,其觸點/線圈狀態位1;
  • 計數器分為加計數器、減計數器及加/減計數器,這裡,我們用到了減計數器。

2、設計計數脈衝

我們可以首先設計一個"方波"信號,具體實現辦法可參見《西門子S7 300仿真實驗平臺——編程實現矩形波、方波發生器》

這裡,需要確定方波的週期。如圖2所示。

S7-300/400進階筆記11:巧用計數器,擴展S5定時器的計時時長

圖2 定時器及計數器的初始值的確定

如圖3所示,為方波發生器,當M0.0=1時,定時器T1和T2週期性的工作,並在"#temp1"輸出一個週期為288s的方波信號。

S7-300/400進階筆記11:巧用計數器,擴展S5定時器的計時時長

圖3 方波發生器

3、實現延時時長為8h的"延時斷"功能

有了圖3所示的"方波發生器"後,我們只需利用減1計數器記錄100個方波脈衝,即:

288s*100=28800s=8h

即可實現定時8小時的功能,如圖4所示。

S7-300/400進階筆記11:巧用計數器,擴展S5定時器的計時時長

圖4 時長為8h的"延時斷"


四、思考

本文介紹瞭如何利用計數器擴展S5定時器的定時時長。有興趣的可以進一步思考:

是否能利用計數器實現週期更長(超出S5定時器的範圍)的矩形波呢?


分享到:


相關文章: