如圖:想知道為什么C1只計(jì)一次數(shù),之后就不計(jì)數(shù)了?
劉玉蓉
發(fā)布于2014-10-09 15:30
0
0
標(biāo)簽:
這是編程常見(jiàn)問(wèn)題之一文檔中截取的,對(duì)C1只計(jì)一次數(shù)的問(wèn)題請(qǐng)教.
圖片說(shuō)明: 1,計(jì)數(shù)截圖
佳答案
造成這種情況是由定時(shí)器的刷新方式引起的,S7-300/400的定時(shí)器是異步刷新的,也就是定時(shí)時(shí)間到可能出現(xiàn)在PLC程序中任何時(shí)刻,不像輸入映像區(qū)是在掃描之前刷新。PLC程序是順序掃描的,對(duì)于梯形圖來(lái)說(shuō)就是自左向右自上而下,程序執(zhí)行時(shí)序?qū)τ赑LC來(lái)說(shuō)是區(qū)別于繼電器回路的一個(gè)顯著特點(diǎn),把梯形圖轉(zhuǎn)換成STL語(yǔ)句表就可以很好的分析。
首先計(jì)時(shí)C1計(jì)數(shù)一次是由I0.4的上升沿引起的
A I 0.4
= L 20.0
A L 20.0
AN T 0
= L 20.1
A L 20.1
BLD 102
L S5T#1S
SD T 0
A L 20.1 //只有當(dāng)T0定時(shí)時(shí)間到出現(xiàn)在T0定時(shí)器指令之后C1的CU指令之前,C1才能檢測(cè)到T0的狀態(tài)變化,才會(huì)計(jì)數(shù),但這個(gè)區(qū)間時(shí)間是非常之短的,CPU在掃描之外還要處理通訊以及刷新輸入輸出映像區(qū),所以T0定時(shí)時(shí)間到出現(xiàn)在這里的概率幾乎為0。
CU C 0
BLD 101
NOP 0
NOP 0
NOP 0
NOP 0
NOP 0
NOP 0
A L 20.0
AN T 0
CU C 1
BLD 101 //如果T0時(shí)間到出現(xiàn)在計(jì)數(shù)器C1指令之后或T0定時(shí)器指令之前,那么對(duì)于C1來(lái)說(shuō)下一個(gè)掃描周期因定時(shí)器已經(jīng)被復(fù)位了,所以C1的CU端狀態(tài)不會(huì)改變,即C1檢測(cè)不到T0的狀態(tài)的變化,所以就不計(jì)數(shù)了
NOP 0
NOP 0
NOP 0
NOP 0
NOP 0
NOP 0