工程师好:我用着一个编码器接的是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