[CodeSys] 使用频率最高的运动控制功能块

[复制链接]
查看217 | 回复0 | 2024-6-30 12:11:11 | 显示全部楼层 |阅读模式
在运动控制系统中,绝对定位指令是非常关键且频繁使用的功能之一。绝对位置指令--MC_MoveAbsolute,该指令允许我们指定轴以特定的速度移动到一个确切的位置,确保了精确的定位控制。无论是在简单的直线移动还是在复杂的路径规划中,都能发挥重要作用。

输入输出引脚
Axis:轴名称,映射到要操作的轴



输入端:
Execute:
输入一个上升沿信号将激活功能块。


Position:
运动的绝对位置设定。


Velocity:
速度设定值(用户单位 / S)。


Acceletation/Deceletation:
加减速度设置。设置点动启停时的加/减速度。


Jerk:
加加速度设置。此参数可不做设置。


Direction:
运动方向设置。


BufferMode:
与前一条运动指令的缓存模式选择


输出端:
Done:志林执行完成。
Busy:标记功能块是否处于活动状态。
Active:功能块进行控制时设为TRUE。

Error:标记功能块是否产生错误。
ErrorID:当功能块产生错误时,用ErrorID表示错误号。
CommandAborted:被另一个更高优先级的功能块打断。


功能说明
  • 本功能块专门用于轴的绝对定位指令。其中,Position 数据代表轴的目标绝对位置。当该功能块处于 Standby 状态时,一旦接收到Execute指令,它将进入 Discrete Motion 状态以执行轴的精确定位。在整个运动过程中,系统需确保对轴的不同运动状态进行精确控制。
  • 启动指令由 Execute 信号的上升沿触发。特别值得一提的是,在 Discrete Motion 状态下,此上升沿触发机制可以多次有效,每次触发都会刷新 Position 数据,确保轴按照最新的目标位置进行移动。
  • 如果 Acceleration 或 Deceleration 参数被设置为零,虽然指令仍能执行,但会进入异常状态。
时序图

  • 当Execute被触发时,Busy状态立即变为 TRUE,表示轴定位指令已经开始执行。在接下来的一个控制周期中,Active状态变为 TRUE,表明轴现在正处于受控的运动过程中。
  • 随着轴的移动,系统将持续监测轴的当前位置,直到达到指定的 Position并完成定位。一旦定位完成,Done状态将变为 TRUE,表明轴已经成功到达目标位置,并且此次定位指令已成功执行完毕。
  • 如果在执行过程中,需要利用其他指令来中止当前的轴定位指令,CommandAborted状态将变为 TRUE。同时,Busy和 Active状态将立即变为 FALSE。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则