一段錯(cuò)誤程序引起的對(duì)S7-200定時(shí)器的思考
網(wǎng)友squall001發(fā)帖問:用T37的TON定時(shí)器,把他嵌套在FOR循環(huán)里面,但是在循環(huán)斷開后定時(shí)器的當(dāng)前值不會(huì)回零,這是怎么回事?
下面是他的源程序:
LD I0.0
FOR VW100, 1, 100
LD SM0.0
TON T37, 35
LD T37
+I 1, VW102
NEXT
為了便于觀察,我把定時(shí)器的設(shè)定值改為30000,運(yùn)行和監(jiān)控上述程序。
下面是我看到的現(xiàn)象:
1)接通I0.0的常開觸點(diǎn),定時(shí)器的當(dāng)前值以100為單位增大,實(shí)際的定時(shí)時(shí)間為30s(30000/100=300ms)。
2)30s后,T37的常開觸點(diǎn)閉合,每個(gè)掃描周期VW102的值加100。
3)斷開I0.0的觸點(diǎn),停止執(zhí)行循環(huán)程序,VW102的值保持不變。接通I0.0的觸點(diǎn),VW102的值在保持值的基礎(chǔ)上繼續(xù)增大。
4)因?yàn)門37的線圈用一直接通的SM0.0的常開觸點(diǎn)控制,T37的線圈不會(huì)斷開,它不能復(fù)位。
上述現(xiàn)象的解釋如下:
1)作為應(yīng)用指令,F(xiàn)OR指令的調(diào)用條件不滿足時(shí)(I0.0為0狀態(tài)),循環(huán)程序不會(huì)被執(zhí)行(一次也沒有執(zhí)行),其中的定時(shí)器指令也沒有執(zhí)行,因此它的當(dāng)前值和VW102的值保持不變。
2)作為普通的定時(shí)器,T37在它的線圈指令被執(zhí)行時(shí)進(jìn)行定時(shí)。循環(huán)條件滿足時(shí),每次掃描要執(zhí)行100次T37的線圈指令,因此T37的定時(shí)速度比普通情況要快100倍。
3)30s后,T37的常開觸點(diǎn)閉合,每個(gè)掃描周期要執(zhí)行100次“+I”指令,所以每個(gè)掃描周期VW102的值加100。
4)任何情況T37的線圈都不會(huì)斷電,所以它的當(dāng)前值不會(huì)回零。這個(gè)例子提示我們,除了考慮定時(shí)器線圈通電工作,一定要考慮定時(shí)器復(fù)位的條件,否則你的定時(shí)器就只能用一次。
顯然定時(shí)器線圈指令不應(yīng)放在循環(huán)程序里,一個(gè)掃描周期不應(yīng)多次執(zhí)行同一個(gè)定時(shí)器的線圈指令。
下面是S7-200的系統(tǒng)手冊(cè)介紹的分辨率對(duì)定時(shí)器的影響:
對(duì)于1 ms分辨率的定時(shí)器來說,定時(shí)器位和當(dāng)前值的更新不與掃描周期同步。對(duì)于大于1ms的程序掃描周期,定時(shí)器位和當(dāng)前值在一次掃描內(nèi)刷新多次。
對(duì)于10ms分辨率的定時(shí)器來說,定時(shí)器位和當(dāng)前值在每個(gè)程序掃描周期的開始刷新。定時(shí)器位和當(dāng)前值在整個(gè)掃描周期過程中為常數(shù)。在每個(gè)掃描周期的開始會(huì)將一個(gè)掃描累計(jì)的時(shí)間間隔加到定時(shí)器當(dāng)前值上。
對(duì)于分辨率為100 ms的定時(shí)器,在執(zhí)行指令時(shí)對(duì)定時(shí)器位和當(dāng)前值進(jìn)行更新;因此,確保在每個(gè)掃描周期內(nèi),程序僅為100毫秒的定時(shí)器執(zhí)行一次指令,以便使定時(shí)器保持正確計(jì)時(shí)。
下面是他的源程序:
LD I0.0
FOR VW100, 1, 100
LD SM0.0
TON T37, 35
LD T37
+I 1, VW102
NEXT
為了便于觀察,我把定時(shí)器的設(shè)定值改為30000,運(yùn)行和監(jiān)控上述程序。
下面是我看到的現(xiàn)象:
1)接通I0.0的常開觸點(diǎn),定時(shí)器的當(dāng)前值以100為單位增大,實(shí)際的定時(shí)時(shí)間為30s(30000/100=300ms)。
2)30s后,T37的常開觸點(diǎn)閉合,每個(gè)掃描周期VW102的值加100。
3)斷開I0.0的觸點(diǎn),停止執(zhí)行循環(huán)程序,VW102的值保持不變。接通I0.0的觸點(diǎn),VW102的值在保持值的基礎(chǔ)上繼續(xù)增大。
4)因?yàn)門37的線圈用一直接通的SM0.0的常開觸點(diǎn)控制,T37的線圈不會(huì)斷開,它不能復(fù)位。
上述現(xiàn)象的解釋如下:
1)作為應(yīng)用指令,F(xiàn)OR指令的調(diào)用條件不滿足時(shí)(I0.0為0狀態(tài)),循環(huán)程序不會(huì)被執(zhí)行(一次也沒有執(zhí)行),其中的定時(shí)器指令也沒有執(zhí)行,因此它的當(dāng)前值和VW102的值保持不變。
2)作為普通的定時(shí)器,T37在它的線圈指令被執(zhí)行時(shí)進(jìn)行定時(shí)。循環(huán)條件滿足時(shí),每次掃描要執(zhí)行100次T37的線圈指令,因此T37的定時(shí)速度比普通情況要快100倍。
3)30s后,T37的常開觸點(diǎn)閉合,每個(gè)掃描周期要執(zhí)行100次“+I”指令,所以每個(gè)掃描周期VW102的值加100。
4)任何情況T37的線圈都不會(huì)斷電,所以它的當(dāng)前值不會(huì)回零。這個(gè)例子提示我們,除了考慮定時(shí)器線圈通電工作,一定要考慮定時(shí)器復(fù)位的條件,否則你的定時(shí)器就只能用一次。
顯然定時(shí)器線圈指令不應(yīng)放在循環(huán)程序里,一個(gè)掃描周期不應(yīng)多次執(zhí)行同一個(gè)定時(shí)器的線圈指令。
下面是S7-200的系統(tǒng)手冊(cè)介紹的分辨率對(duì)定時(shí)器的影響:
對(duì)于1 ms分辨率的定時(shí)器來說,定時(shí)器位和當(dāng)前值的更新不與掃描周期同步。對(duì)于大于1ms的程序掃描周期,定時(shí)器位和當(dāng)前值在一次掃描內(nèi)刷新多次。
對(duì)于10ms分辨率的定時(shí)器來說,定時(shí)器位和當(dāng)前值在每個(gè)程序掃描周期的開始刷新。定時(shí)器位和當(dāng)前值在整個(gè)掃描周期過程中為常數(shù)。在每個(gè)掃描周期的開始會(huì)將一個(gè)掃描累計(jì)的時(shí)間間隔加到定時(shí)器當(dāng)前值上。
對(duì)于分辨率為100 ms的定時(shí)器,在執(zhí)行指令時(shí)對(duì)定時(shí)器位和當(dāng)前值進(jìn)行更新;因此,確保在每個(gè)掃描周期內(nèi),程序僅為100毫秒的定時(shí)器執(zhí)行一次指令,以便使定時(shí)器保持正確計(jì)時(shí)。
本文標(biāo)簽:一段錯(cuò)誤程序引起的對(duì)S7-200定時(shí)器的思考
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《一段錯(cuò)誤程序引起的對(duì)S7-200定時(shí)器的思考》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
關(guān)于“一段錯(cuò)誤程序引起的對(duì)S7-200定時(shí)器的思考”的更多資訊