Appearance
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 输出到界面,以便操作人员实时看到机器人是处于"忙碌运动"还是"空闲待机"状态。