能够使ABB机器人停止的方式有很多。比如上一次我们一起分享的ABB机器人安全回路中的ES与AS,通过示教器的停止键或者系统输入中的stop来停止机器人,还有就是可以通过ABB机器人中的各种停止指令使机器人在满足某种条件的时候自行停止。这一次我们就来分享一下ABB机器人的几种停止指令。
Stop指令
Stop用于停止程序执行。在Stop指令执行结束之前,将完成当前执行的所有移动任务。Stop指令可以同时停止当前正在执行的逻辑任务与运动任务。stop指令也可以理解为机器人的暂停指令,因为使用stop并不会改变机器人程序的调用结构,可以在机器人收到启动命令时继续执行机器人程序。
Stop指令有两个非常有用的可选参数:
[ \NoRegain ]参数:指令默认是不使用NoRegain参数的。通常我们停止机器人后,如果机器人脱离了程序(例如手动模式下JOG运动)发生了移动,即机器人再次启动时的位置与机器人停止时的位置不是同一位置时,示教器上会提示人工确认机器人在执行程序前是否回到程序停止时机器人所在的位置。如果使用了NoRegain参数,在停止位置与启动不在同一位置的情况,就不会出现需要人工确认是否返回程序停止时的路径的提示。
[ \AllMoveTasks ]参数:如果机器人存在多任务。则使用本参数可以停止机器人所有任务中的程序。如果不使用该参数,则stop指令只会对其所在任务产生作用,非stop指令所在任务将不受stop指令影响。
EXIT指令
EXIT指令会使机器人在停止时程序指针随之消失。即使用EXIT停止后是无法直接继续启动机器人的,必须通过示教器重置程序指针或者通过系统输入Start at Main重置程序指针至主程序才可以继续运行。
Break指令
Break指令的使用效果与stop指令的效果类似,与stop不同的是当机器人执行Break指令的时候机器人会立即停止,即使机器人当前的运动指令没有执行完机器人也会停止运动。
那么有的小伙伴可能就会问了,我用stop指令机器人也可以在当前运动指令没有执行结束前停止呀?这不和Break一样吗?其实不然,采用stop指令停止机器人时,如果当前的运动指令机器人停止时没有执行完,机器人再启动后还是会继续执行完停止时未执行完的运动指令,然后再继续向下执行程序,而使用Break指令时,机器人在停止时即使当前运动指令没有执行完,也会直接将程序指针直接跳转至下一行程序,即机器人会放弃当前被中断的运动指令,机器人再次启动时会直接从下一条指令开始执行。Stop与Break停止的位置区别可以参见下图。
StopMove指令
StopMove指令用于停止机器人的运动任务,但机器人的逻辑任务是不受其影响的,即机器人StopMove后,机器人的非运动任务仍然还是在继续运行的,没有停止。StopMove指令需要与StartMove指令配合使用。为方便理解,下面举一个例子。
StopMove;
WaitDI di0, 1;
StartMove;
机器人停止运动,当di0信号为1时机器人继续运动。
StopMove指令也有两个可选参数:
[\Quick]参数:Quick可以使机器人尽快停止本路径上的运动。,如果没有使用该参数,则机器人的停止速度将与普通的程序停止相同。
[\AllMotionTasks]参数:与stop指令的AllMotionTasks参数作用相同,当StopMove指令执行时只停止指令所在任务运动还是停止所有任务运动。