今天在西门子官网上下载了一篇《STEP7 编程常见错误》的文章,仔细看了下,发现有个小错误,在2.11.2这一章节中,如下:
在OB1里程序
A M 0.0
CALL FC 13
在FC13里程序
A M 2.0
L S5T#10S
SD T 0
A T 0
= M 2.1
作者的意思,是断开FC13调用,将T0清零,以保证下次调用FC13时,T0可以重新计时工作,为此作者将
OB1里的程序改为如下:
A M 0.0
= L 20.0
A L 20.0
JNB _001
CALL FC 13
_001: NOP 0
A L 20.0
NOT
R T 0
作者给的是梯形图,我是转成语句表发上来的,这样按照作者的意思,当M0.0由1变为0时,将T0复位,来保证下次调用FC13时定时器重新计时工作。
但实际这样不行,这样只是将定时器当前值清零,下次调用FC13时,T0当前值为0,如果M2.0一直通,而且T0当前值一直为0,换句话说定时器就不工作了。
我认为在断开对FC13调用前就应该将定时器工作使能输入M2.0复位。或者在重新调用FC13一开始就要保证M2.0为0.将T0清不清0没必要,主要是对M2.0的处理,来复位T0,保证重新计时工作
我是这样理解的,希望大家提意见