兩個(gè)循環(huán)的問(wèn)題
劉玉蓉
發(fā)布于2014-12-10 17:31
25
0
標(biāo)簽:
在做一個(gè)除塵控制程序,控制提升閥和脈沖閥動(dòng)作,提升閥組和脈沖閥組各做一個(gè)循環(huán),提升閥動(dòng)作循環(huán)嵌套脈沖閥動(dòng)作循環(huán),想用FOR NEXT來(lái)做,或者指針來(lái)做,一直沒(méi)有好的思路,請(qǐng)指點(diǎn)一下吧。
Network 1 // 網(wǎng)絡(luò)標(biāo)題
// 網(wǎng)絡(luò)注釋
LD M0.1
FOR VW0, 1, 3
Network 2
LD M0.2
TON T101, 100
Network 3
LD T101
= M0.3
Network 4
NEXT
Network 5
LD M0.4
= M0.5
做了一個(gè)測(cè)試程序,發(fā)現(xiàn)T101始終等不到延時(shí)循環(huán)就結(jié)束了。
佳答案
建議里仔細(xì)看看幫助里關(guān)于定時(shí)器的內(nèi)容,100ms分辨率的定時(shí)器,不應(yīng)該在一個(gè)掃描周期里多次執(zhí)行,所以不應(yīng)該放在循環(huán)里,以下內(nèi)容摘自幫助
100毫秒分辨率
100毫秒定時(shí)器記錄自現(xiàn)用100毫秒定時(shí)器上一次更新以來(lái)100毫秒定時(shí)器間隔的數(shù)目。這種定時(shí)器的更新方法是在執(zhí)行定時(shí)器指令時(shí)以當(dāng)前值加上積累的100毫秒間隔的數(shù)目(自前一次掃描開(kāi)始算起)。
只有在執(zhí)行定時(shí)器指令時(shí)才對(duì)100毫秒定時(shí)器的當(dāng)前值進(jìn)行更新。因此,如果啟用了100毫秒定時(shí)器但并未對(duì)各掃描循環(huán)執(zhí)行定時(shí)器指令,則仍不能更新定時(shí)器當(dāng)前值并將喪失時(shí)間。同樣,如果在單個(gè)掃描循環(huán)內(nèi)多次執(zhí)行100毫秒定時(shí)器指令,將向定時(shí)器的當(dāng)前值多次增加100毫秒間隔數(shù),贏得時(shí)間。只有在每次掃描循環(huán)僅僅執(zhí)行一次定時(shí)器指令時(shí),才應(yīng)該使用100毫秒定時(shí)器。
因?yàn)榭稍?00毫秒內(nèi)的任意時(shí)刻啟動(dòng)定時(shí)器,預(yù)設(shè)值必須設(shè)為比小要求定時(shí)器間隔大一個(gè)時(shí)間間隔。例如,使用100毫秒定時(shí)器時(shí),為了保證時(shí)間間隔至少為2100毫秒,則預(yù)設(shè)時(shí)間值應(yīng)設(shè)為22。