如圖:想知道為什么C1只計一次數(shù),之后就不計數(shù)了?
劉玉蓉
發(fā)布于2014-10-10 16:53
1
0
標(biāo)簽:
這是編程常見問題之一文檔中截取的,對C1只計一次數(shù)的問題請教.
圖片說明: 1,計數(shù)截圖
佳答案
造成這種情況是由定時器的刷新方式引起的,S7-300/400的定時器是異步刷新的,也就是定時時間到可能出現(xiàn)在PLC程序中任何時刻,不像輸入映像區(qū)是在掃描之前刷新。PLC程序是順序掃描的,對于梯形圖來說就是自左向右自上而下,程序執(zhí)行時序?qū)τ赑LC來說是區(qū)別于繼電器回路的一個顯著特點,把梯形圖轉(zhuǎn)換成STL語句表就可以很好的分析。
首先計時C1計數(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定時時間到出現(xiàn)在T0定時器指令之后C1的CU指令之前,C1才能檢測到T0的狀態(tài)變化,才會計數(shù),但這個區(qū)間時間是非常之短的,CPU在掃描之外還要處理通訊以及刷新輸入輸出映像區(qū),所以T0定時時間到出現(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時間到出現(xiàn)在計數(shù)器C1指令之后或T0定時器指令之前,那么對于C1來說下一個掃描周期因定時器已經(jīng)被復(fù)位了,所以C1的CU端狀態(tài)不會改變,即C1檢測不到T0的狀態(tài)的變化,所以就不計數(shù)了
NOP 0
NOP 0
NOP 0
NOP 0
NOP 0
NOP 0