Skip to content

GetRobotIsMoving 检测机器人运动状态

该指令用于实时检测机器人当前是否处于物理运动状态。通过读取此状态,程序可以实现复杂的逻辑分支,例如在确认机器人完全停稳后再执行视觉拍照、IO 通讯或开启外部工艺设备。

指令格式

GetRobotIsMoving(MovStatus) GetRobotIsMoving(存储变量)


参数详细说明

参数类型说明默认值/备注
MovStatus:机器人运动状态BOOL 变量(如 BOOL0 或自定义变量 IsMoving接收并存储运动监测结果。
* true:机器人当前正在执行运动指令,或者由于惯性、余震尚未完全停止。
* false:机器人已完全停止运动,处于静止状态。

工作原理

该指令直接访问控制器的运动规划层。它不仅检查程序是否在运行,还检查电机的实际编码器反馈。只要机器人仍在加减速过程中,该值就会保持为 true


示例:精确触发外部任务

estun
// 1. 发送运动指令
MovL(P1, 1000, 0, 1)

// 2. 循环等待,直到机器人完全停稳
LABEL LOOP_START:
    GetRobotIsMoving(BOOL0)
    IF (BOOL0 == true) THEN
        GOTO LOOP_START
    ENDIF

// 3. 确认停稳后,触发相机拍照
DO1 = ON

应用场景

  • 视觉检测同步:在高速节拍下,直接在运动指令后拍照可能会因震动导致图像模糊。通过此指令配合循环,可以确保在"静止"的瞬间触发快门。
  • 协作安全确认:在多机协作或人机交互场景中,作为第二重保险确认机器人已停止,再开启安全门或允许辅助设备进场。
  • 生产节拍分析:在后台任务中记录机器人从"开始运动"到"完全停止"的实际耗时,用于优化路径规划。
  • 条件跳转:如果由于某种原因(如碰撞报警后的恢复)机器人未启动成功,可以通过判断该状态来决定是否重新尝试运动。

💡 与 SetRtInfo 的配合建议

在复杂的自动化单元中,建议将读取到的状态通过 SetRtInfo 输出到界面,以便操作人员实时看到机器人是处于"忙碌运动"还是"空闲待机"状态。

ESTUN Robotics — ER 系列机器人编程语言指令参考