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