名称:绝对位移指令
符号:MC_MoveAbsolute
说明:
用于实现轴的绝对位移功能,上升沿有效。
只有使用MC_Power指令使能轴后,并且在轴位置确定时(调用MC_Home或者MC_SetPosition完成后),才可以调用本指令。
在EXECUTE的上升沿,输入ABSPOS、VEL、ACC、JERK值被锁定,轴的PLCOpen状态机切换为DiscreteMotion,开始绝对位移运动。
如果当前位置小于目标位置,轴将正向运动,如果大于目标位置,轴将反向运动,最终到达ABSPOS设定的位置。
本指令可被打断而终止执行:可以让轴处于ContinuousMotion、DiscreteMotion、Stopping状态的指令,均可打断本指令(参考轴的PLCOpen状态机),被打断后,CMDABORTED有效,剩余的未完成距离将被丢弃。
轴运行碰到软件限位时,指令将被中断(CMDABORTED有效),轴停止运动但不会进入Errorstop状态,可修改为远离软件限位的目标位置,重新触发。
图片:
参数:
| 参数名称 | 数据类型 | IN/OUT | 参数作用 | 说明 | 默认值 |
|---|---|---|---|---|---|
| AXISNO | UDINT | IN | 脉冲轴号 | 0-7 | 无 |
| EXECUTE | BOOL | IN | 功能块触发 | 上升沿触发指令执行(轴位置确定后方可执行:调用MC_Home或MC_SetPostion完成后) | FALSE |
| ABSPOS | REAL | IN | 目标位置 | 目标位置相对于零点的距离(正数/负数/0),单位: unit | 无 |
| VEL | REAL | IN | 目标速度 | 目标速度(非0值, 绝对值有效),≤最大速度,单位: unit/s | 无 |
| ACC | REAL | IN | 加速度 | 加速度(非0值,绝对值有效),≤最大加速度,单位:unit/s | 无 |
| JERK | REAL | IN | 加加速度 | 加加速度(绝对值有效),≤加速度(0-T型加减速,非0-S型加减速),单位:unit/s^2 | 无 |
| DIR | USINT | IN | 方向 | 旋转运动预留,线性运动无效 | 无 |
| DONE | BOOL | OUT | 完成标志 | TRUE:执行完成,目标位置到达 | FALSE |
| BUSY | BOOL | OUT | 忙标志 | TRUE:处于运动中 | FALSE |
| CMDABORTED | BOOL | OUT | 终止执行标志 | TRUE:被其它指令中断,本指令终止执行 | FALSE |
| ERROR | BOOL | OUT | 出错标志 | TRUE:功能块调用出错 | FALSE |
| ERRORID | UINT | OUT | 错误码 | 0:正常;其它:错误码值 | 0 |
示例:
LD:
ST:
解释:
AXISNO为0,表示操作脉冲轴0; EXECUTE由FALSE->TRUE,上升沿触发指令执行; ABSPOS为50,表示目标位置相对于零点的距离为50unit; VEL为20,表示目标速度为20unit/s; ACC为100,表示以100unit/s的加速度加减速,直至达到目标速度20unit/s; JERK为0,将执行T型加减速运动,非0,将执行S型加减速运动; DIR为0,旋转运动预留,对于线性运动无效; DoneOut为TRUE,表示执行完成,到达绝对位置; BusyOut为TRUE,表示正在执行绝对位移,完成后BusyOut复位; CmdAbortOut为TRUE,表示已被中断而终止执行; ErrorOut如果为TURE,表示存在错误,指令无法执行; ErrorIdOut为0,表示执行正常,非0,表示存在错误,无法执行。