怎么理解編寫閥門定時循環(huán)切換程序
鄭志武
發(fā)布于2012-12-27 22:00
253
0
標(biāo)簽:
有張時序圖,假如一共有6個閥門,va1-va6。而每個閥門的開斷時間都是不一樣的,比如在60秒的周期內(nèi),va1開40s,關(guān)20s;va2關(guān)15秒,開45s,并在周期內(nèi)循環(huán)運行。我看程序有時候運用2個定時器,一個定時器t1常開,一個定時器t2常閉,然后串聯(lián)輸出q,有的是并聯(lián)然后輸出q。怎么理解?
圖片說明: 1,1 2,2
佳答案
實際你這個可以不用定時器直接用ob35一類的中斷里面用計數(shù)就可以了,比如你設(shè)置了ob35的周期是1s,那么ob35執(zhí)行一次就是1s。里面用一個變量記錄ob35掃描的次數(shù),然后和你的設(shè)定時間進(jìn)行比較就行了。
比如你的這個兩個閥門的控制:
astart//點啟動按鈕后初始化
fponstart
jcn*
srun
l0
truntime
*:nop0
astop//點停止按鈕不再運行,設(shè)備保存在當(dāng)前狀態(tài),如果如果要停止輸出可以加上
rrun//rval1和rval2
arun
jcnend
lruntime//運行時間
l1
+i
truntime
lruntime_sp//周期設(shè)定值超過這個時間從新計時
>=i
jcnm1
l0
truntime
m1:nop0
//閥門1控制
lruntime
l40//如果這個常數(shù)改成變量可以修改val1的開關(guān)時間
<=i
jcnm2
sval1
m2:rval1
//閥門2控制
lruntime
l15//如果這個常數(shù)改成變量可以修改val2的開關(guān)時間
<=i
jcnm3
rval2
m3:rval2
end:nop0