如何在PLC中对编码器的脉冲数做采集归档记录?
刘玉蓉
发布于2014-12-05 17:51
2
0
标签:
编码器的单圈分辨率是13位.我想在DB1中,记录每一个脉冲数值,用来分析编码器的输出脉冲是否连续正常。不能用定时采集的方法做,避免丢失脉冲数。
用数值比较的方法始终没成功,不知道为何?
图片说明: 1,程序截图
佳答案
在网络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这个数值。