CPU 224xp 定时器T33指令使用问题:
网1
LDN T33
TON T33, 120
网2
LD T33
MOVB 120, VB50
程序的问题是,我无法看到VB50存放了120。请问这是为什么?
问题补充:
将上述的T33全改成,T37就可以查看v中有存储值。请高手告诉我,为什么?
最佳答案
T33(10ms)不能这样编程,T37(100MS)可以。
改成这样:
LD SM0.0
TON T33,120
LD T33
MOVB 120, VB50
AENO
R T33, 1
原因是这两种定时器的工作原理、刷新机制不同造成的。
具体原理我也没搞清楚,我把西门子的说明复制在下面,看你能不能搞懂。
使用10毫秒定时器时,因为从扫描顶端至执行定时器方框均打开定时器位T33。一旦执行了定时器方框,定时器的当前值及T位均被设为零。
注意事项:用定时器本身触点激励输入的定时器,时基为1ms和10ms 时不能可靠工作,不宜使用本身触点作为激励输入。
提问者对于答案的评价:
这个问题,我想了想并查了资料:
使用T33时,T33在扫描周期的开始刷新T33的位。那么扫描时间等于定时器的时间时,能流在到达第一个常闭触点前时,T33的位就为1.那么,常闭触点就为1.——》定时器位变为0——》常开触点为0。
第二次能流再到达第一个常闭触点前时,T33的位就为0。那么常闭触点就为0.——》定时器位变为0——》常开触点为0。所以常开触点始终为0无输出。
使用T37时,能流经过t37时才改变状态位。那么当一个周期,经过常闭,到达定时器时(此时正好为定时的时间),定时器位位1。据推断可知,经过前一个常闭指令损耗时间,肯定未达到定时器的定时时间,所以,那时的常闭位为0(先经过常闭,后经过定时器)。然后由常闭0——》定时器位1——》常开位1,可以判定,下个扫描周期的常闭1——》定时器位0——》常开0。可以看到,常开触点有输出。
希望各位,给点看法。QQ761153454
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc346091.html