ID : 5112
程序应用示例
程序应用示例如下所示。
应用示例的内容说明
-
碰撞检测功能可设定多个工作台。
下述示例中,使用设定的多个工作台,将碰撞检测功能全部设为有效,使用时仅提高特定部分检测灵敏度。
-
通过“SetCollisionDetection”指令设定整体动作和特定动作用工作台。
在整体动作开始前,通过“CollisionDetection”指令将整体动作用工作台设为有效。
在特定动作前,将特定动作用工作台设为有效。特定动作完成后,通过“CollisionDetection”指令将特定动作用工作台设为无效。
最后通过“GetCollisionStatus”指令确认碰撞检测状态,发生碰撞时进行躲避。 - 但是,实际使用时,特权任务或其它任务中使用“GetCollisionStatus”监视碰撞状态,需要不断执行躲避动作或机器人停止等回避动作。
应用示例
Sub Main '开始程序。
'整体动作用碰撞检测(工作台1,机器人轴,无错误输出)
SetCollisionDetection 1, &h3f, J(100,100,100,100,100,100), 1
'选取用碰撞检测(工作台2,机器人轴,有错误输出)
SetCollisionDetection 2, &h3f, J(100,50,50,100,50,100), 0
TakeArm 0
Extspeed 80
Speedmode 3
Motor ON
Move P,@0 P1
'整体动作用工作台设为有效
CollisionDetection True, 1
'选取&装入动作
'目标点上空位置
Approach L, P2, 100
'选取动作
'特定动作用工作台设为有效并提高检测灵敏度
CollisionDetection True, 2
Move L,@0 P2, Speed = 10
Depart L, 100
'结束特定动作用碰撞检测
CollisionDetection False, 2
:
:
'结束整体动作用碰撞检测
CollisionDetection False, 1
'确认碰撞状态
I1 = GetCollisionStatus(1)
If Not I1 = 0 Then Goto ErrProc
ExitProc:
Exit Sub
ErrProc:
'错误处理
S0="检测到碰撞。请确认工件"
End Sub '结束程序。
ID : 5112