一个高速记数器问题

工程师好:我用着一个编码器接的是S7200的I0。0 I0。1 I0。2 ,编码器说明上是A B Z 能说一下Z是做什么的吗,我在旋转编码器时,在我在程序中读HC0时一直是预置值,上下加2,
 比方说,我一转,HC0值为300 301302 300,反复是这几个数,没有达是一直增的效果,我的预置值为10000,当前值为300,用的是HC0的每九个模式

最佳答案

Z是拿来复位用的,也就是说当编码器旋转一圈时Z会发出一个复位信号.有可能高电平,有可能是低电平,具体看你的编码器怎么接线的,至于是多少时间的高低电平可以这样算:
 转一圈的时间/(编码器转一圈的脉冲数*4)
 比如说你的编码器1S转一圈,转一圈有250个脉冲
 那你Z相就有:1/(250*4)=1mS的高(低)电平.
 介意你这样做:用SM0.1调用一个子程序,在这个子程序里
 LD     SM0.0
 MOVB   16#FC, SMB37
 MOVD   (新当前值), SMD38
 MOVD   (新预置值), SMD42
 HDEF   0, 9
 ATCH   INT_0:INT0, 4    \\当I0.2出现上升沿时触发中断
 ENI
 HSC    0
 然后在中断里这样做
 LD SM0.0
 MOVB   16#C0, SMB37
 MOVD   (新当前值), SMD38
 HSC    0
 最后希望你能解决问题.我这里之所以把I0.2的电平时间计算帖上是因为以前有人出现过因I0.2信号出现时间过短而PLC没有检测到(他在系统块内滤波时间没改过)为什么乘4那是编码器做起来就这样.

提问者对于答案的评价:
很好

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论