利用时钟周期做定时器

因为使用施耐德屏幕,里面没有西门子专有的S5TIME变量类型。
只能输入INT,然后依次转换并调用FC40,最后转换成S5TIME
我觉得这样的程序很长,又是调用什么的。
所以想着 我是否可以利用时钟周期来做?这样的程序有没有影响?程序中,255.0是0.1s的脉冲周期

      A     M     10.1
      A     M    255.0
      FP    M     10.2
      JNB   _001
      L     MW     0
      L     1
      +I    
      T     MW     0
_001: NOP   0
      L     MW     0
      L     100
      >=I   
      =     L     22.0
      A     L     22.0
      JNB   _002
      L     0
      T     MW     0
_002: NOP   0
      A     L     22.0
      BLD   102
      S     M     10.0

问题补充:
我想把这段程序做成功能块,已实现。但是有个问题,我做成功能块后,定时器的启动输出,只有利用IN和OUT添加的位。有没有办法利用调用此FC时的EN 和 ENO。就是怎么在功能块里把EN读取出来利用,把ENO作为定时器到达时间后的输出?像S_ODT那样

最佳答案

没问题,我们也经常利用系统时钟然后计数的方式实现定时器的功能。这种做法还有一个好处,就是程序封装比较方便,在移植到另一个项目时不用考虑定时器的资源和冲突情况。

提问者对于答案的评价:
谢谢,我就想知道有没有不好的地方

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午10:23
下一篇 2018年12月1日 下午10:24

相关推荐