如何在PLC中对编码器的脉冲数做采集归档记录?

编码器的单圈分辨率是13位.我想在DB1中,记录每一个脉冲数值,用来分析编码器的输出脉冲是否连续正常。不能用定时采集的方法做,避免丢失脉冲数。
用数值比较的方法始终没成功,不知道为何?

图片说明:

如何在PLC中对编码器的脉冲数做采集归档记录?   

最佳答案

在网络2中,你的DB1中的每个DBW都赋不同的初值了是吗。
如果是,则因为循环指令是在一个扫描周期内完成的,所以MW50的值在循环期间没有改变。假设第一次执行时MW50为1,进入循环指令后与DBW0(为1)比较相等,则与DBW2(为2)比较,这时不相等则跳出循环了。在第二次扫描周期时MW50为2,进入循环指令后与DBW0比较,不相等则直接跳出循环,此后的每次扫描相当于你的循环都不起作用了。
如果不是,初值都相同(默认为0),则第一次扫描就可能不执行循环,或进入循环后都赋相同的值,并不能起到你想要的结果。
 OPN   DB1
      L     MW    50
     T     DBW [MD60]                   
      L    MD60
      L     P#2.0
      +I    
     T     MD60
      L    MD60
     L     80                          
      <I   
      JC    mo1
      L     0
     T     MD60
mo1:  NOP   0
程序没有测试,你可以试一试,只是个思路。在OB100中对MD60赋值0。保存到DB块地址最大为DBW10,若扩大则修改80这个数值。

提问者对于答案的评价:
感谢“我心飞翔”。
对“zengzy”也非常感谢!!!

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

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

相关推荐