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