程序中用go_to指令相对运动一段距离,如果接受到一个位置信号,无论是否完成运动,都用rseek指令寻找零点,步进电机根据位置信号不断正转反转。现在出现以下故障:如果位置信号出现的频率过快,就出现到零点不停止,一直旋转,只有plc停电才行,当位置信号频率低时,则运行正常。
最佳答案
1. " 如果接受到一个位置信号I10.0,无论是否完成运动,都用rseek指令寻找零点,步进电机根据位置信号不断正转反转。"
可以把这个位置信号I10.0作为POSx_GOTO 指令中ABORT 的输入条件。一旦I10.0有信号,步进电机就减速停止。这是第一步。
2. A I10.0
S M10.0 // 标记要寻找原点
A M10.0, 做一个定时器,
延时接通1.2 秒 , 接通POSx_RSEEK 指令。 一旦检测到POSx_RSEEK 指令的 DONE信号,则取其上升沿, 作为复位M10.0 的条件。否则,POSx_RSEEK 指令就反反复复地在执行。
3. " 如果位置信号出现的频率过快,就出现到零点不停止,一直旋转,只有plc停电才行,当位置信号频率低时,则运行正常。"
我个人认为,现在的问题出在,没有在控制面板中设置好寻找原点的最佳运行包络及速度,尤其要提出的是你事先要搞清楚I10.0 的位置与你使用POSx_GOTO 指令时的位置,二者之间的关系,是正向RSEEK ,还是反向RSEEK 比较理想。 另外,可以从机械角度出发,适当增加 POSx_RSEEK 运动中前极限,后极限开关的距离。
提问者对于答案的评价:
我也不再现场,问题解决,寻零速度太高。谢谢!!
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc347605.html