我采用A、B、Z增量型旋转编码器,转一周600个脉冲,带复位输入保证机械零位固定,不能有累积误差!想在一圈0-360度和两圈0-720度分别设置工作区间,但还要求复位信号有效,如何设置高速计数,大家给个编程方法!!急!!
问题补充:
我要达到的功能是:电磁阀1在0-360度(一周)动作一次设置,电磁阀2在0-720度(2周)动作三次设置。我的编码器选择具有外部机械复位中断形式的,以保证每转一周复0一次,保证机械零点准确。主要目的是防止程序复位造成累积误差机械传动漂移。
1.像这种一周复零有效的设置能否在程序里设置编码器转两周外部的复位中断有效呢?如何编程呢?
可不可以使用复位脉冲输入I1.4做计数,当转完一周后对当前值+360,实现电磁阀2的工作周期为0-720度呢?计数器如何设置断电保持?
2.我用的是HSC2高速计数器!!
3.采用电机主轴速比传动!!
最佳答案
你的设计是可以实现的.HC2设为模式10,但不用Z相复位或清零.而用外部的I1.4进行机械复位.每周复一次.并将其计数到2产生一个中断有效指令.至于编程还是你自己试试,别人的劳动成果你无偿获取有点太那个了吧!断电保持是可以实现的.只是保持的数据可能你无法用,掉电后角度也许已人为改变了呢!你考虑了吗?
提问者对于答案的评价:
采用模式10的话,那复位脉冲不就有效了吗??我还可以用I1.4进行计数吗?
我是这么做的:将复位脉冲I1.4计数处理,计1次时当前值VW1080+一周360,另存寄存器VW1180,设置电磁阀2工作.然后计数为2时使用当前值VW1080!原来的复位脉冲I1.4在高速计数中还有效,可以吗?
附部分程序:
Network 1
LD SM0.1
MOVB 16#FC, SMB57
HDEF 2, 10
MOVD +0, SMD58
MOVD 360, SMD62
ATCH INT0, 16
ENI
HSC 2
Network 2
LD I1.4
EU
LD C2
CTU C1, 1
Network 3
LD I1.4
EU
LD C2
CTU C2, 2
Network 4
LD C1
MOVW VW1080, VW1180
+I +360, VW1180
Network 5
LDN C1
MOVW VW1080, VW1180
INT_0
LD SM0.0
MOVD +0, SMD58
HSC 2
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc358586.html