用电机带动一个丝杠做直线往返运动,丝杠带动编码器转动,丝杠转动一圈编码器也转动一圈,丝杠转动一圈的距离可以知道,用高速计数器记录编码器的脉冲数,当到达极限位置时,B相超前A相,通过中断发送此时脉冲数,通过两个极限点的脉冲数,计算电机曲柄的半径。不考虑机械原因,这样精度高吗?会出现丢失脉冲的现象吗?
问题补充:
最开始的时候,编码器正转,A相超前B相1/4周期,到达极限点后,编码器反转,应该是B相超前A相1/4周期。在200的HSC指令向导中有一个控制方向改变时产生中断,利用这个中断不可以实现将此时的脉冲数送出来吗?问客服也没有一个确定的回复,请各位大侠指教。
最佳答案
“A相超前B相1/4周期 B相超前A相1/4周期”这样叙述很累。
直接说正转、反转不是很好嘛。
200高速计数器支持换向中断,您需要在中断处理程序中分别将换向时的当前值赋值到2个寄存器,其差值就是您需要的数。乘上脉冲当量就得到工程值了。
附加思考题:怎样用同一个中断程序不将当前值送到n个地址连续的寄存器。每次中断写入1个双字? ~_~
提问者对于答案的评价:
利用200内部方向控制标志位加适当的延时,可以实现利用一个中断程序将不同的极限值送到不同的地址中。就可以计算了。谢谢各位大侠
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc350028.html