关于CPU扫描问题的一个程序

AN    M      1.0
      L     S5T#10S
      SD    T      0
      A     I      0.0
      CU    C      0
      A     T      0
      JNB   s0
      L     C      0
      T     MW    10
s0:   A     T      0
      =     M      1.0
      A     M      1.0
      R     C      0
正确的程序A
      AN    T      0
      L     S5T#10S
      SD    T      0
      A     I      0.0
      CU    C      0
      A     T      0
      JNB   s0
      L     C      0
      T     MW    10
s0:   A     T      0
      R     C      0
错误的程序B
结果区别:A程序中可以10s正确的采集一次C0的数据,而B程序无法采集。请问问为什么?由于本人基础不是很好,希望能通过通俗的语言文字表达。在此非常感谢您!

最佳答案

S7-300/400的定时器是异步扫描的,即定时器不所循环扫描周期影响,定时时间到可能出现在程序执行的任意一刻。
对于程序B,如果定时时间到出现在定时器指令前,那么执行到定时器指令时,定时器被复位,后面的采集程序得不到执行,如果出现在A   T0之后,那么到下一个循环是同样的情况,只有定时时间到出现在SD指令和 A T0指令之间,采集指令才会执行,不过这段时间相对于整个循环扫描周期太短,所以定时时间到出现在这个区间的几率几乎为0,所以会出现无法采集的情况
对于程序A,采集程序扫描完下个周期才对定时器复位。

提问者对于答案的评价:
谢谢你!我的联系方式:QQ:521122669邮箱:zhouzhangxun@qq.com  希望能做朋友。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc245869.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月2日 上午12:19
下一篇 2018年12月2日 上午12:19

相关推荐