實現上述控制要求的方法有多種,這里,介紹一種"利用計數器擴展定時時長"的方法,并簡要引出S7中計數器的概念。
一、控制任務歸納
控制任務為:某一設備在滿足運行條件后,持續運行8個小時
做以下假設:
1、假設該設備的各運行條件匯總為M10.0,且M10.0=1時,運行條件滿足;
2、該設備的運行命令由Q2.0給出,即Q2.0=1時,設備運行;
3、為方便討論,這里不考慮本設備故障、來自其他設備的連鎖/互鎖、及快/急停等各種信號的影響。
二、利用計數器擴展定時時長
1、計數器的相關概念
S7的系列CPU為計數器保留了一片存儲區域。一個計數器包括一個16位的字和一個二進制的位。計數器的字用來存儲當前的計數值,而計數器的觸點狀態反映在它的位上。如圖1所示,為計數器的字。
圖1 計數器的"字"
程序中,計數器的表示方法為:"C+計數器號",如C10表示10號計數器。
計數器的計數范圍為:0-999。
僅當計數器的當前計數值為0時,計數器的觸點狀態位才為0;否則,其觸點/線圈狀態位1;
計數器分為加計數器、減計數器及加/減計數器,這里,我們用到了減計數器。
2、設計計數脈沖
我們可以首先設計一個"方波"信號,具體實現辦法可參見《西門子S7 300仿真實驗平臺——編程實現矩形波、方波發生器》
這里,需要確定方波的周期。如圖2所示。
圖2 定時器及計數器的初始值的確定
如圖3所示,為方波發生器,當M0.0=1時,定時器T1和T2周期性的工作,并在"#temp1"輸出一個周期為288s的方波信號。
圖3 方波發生器
3、實現延時時長為8h的"延時斷"功能
有了圖3所示的"方波發生器"后,我們只需利用減1計數器記錄100個方波脈沖,即:
288s*100=28800s=8h
即可實現定時8小時的功能,如圖4所示。
圖4 時長為8h的"延時斷"