ID : 2017
编程
编程示例
以下所示为协调功能的编程示例。
各程序的内容
MainPro.pcs
该程序为主程序。首先执行初始化处理,然后,非同步执行使主局、子局分别动作的程序。然后,执行进行协调动作的程序。
InitRobots.pcs
作为初始化处理,设定主局和子局的基准坐标的程序。
Robot0Pro.pcs
将Robot0(主局)移至动作点的程序。
默认机器人在最开始已设定为Robot0,因此无需指定Robot0即可记述指令。
Robot1Pro.pcs
将Robot1(子局)移至动作点的程序。
默认机器人在最开始已设定为Robot1,因此无需指定Robot1即可记述指令。
CoopRobotPro.pcs
该程序为协调功能的程序。
设定工具坐标、工件坐标,首先执行同步动作。然后夹持工件并进行协调动作。
<MainPro.pcs>
'!TITLE “多台机器人作业的程序示例”
#Include "InitRobots.pcs"
Sub Main
Call InitRobots '机器人0和机器人1的初始化
Run Robot0Pro '机器人0的动作程序
Run Robot1Pro '机器人1的动作程序
Wait Not( Status( Robot0Pro ) = 3 ) '等待机器人0的动作程序结束
Wait Not( Status( Robot1Pro ) = 3 ) '等待机器人1的动作程序结束
Run CoopRobotPro '机器人0和机器人1的动作程序
End Sub
<InitRobots.pcs>
'!TITLE “机器人0和机器人1的初始化”
Sub Main
Robot0.TakeArm '获取机器人0的控制权
Robot1.TakeArm '获取机器人1的控制权
'设定机器人的位置(面对面距离800mm的位置)
Robot0.Base P( 0, 400, 0, 0, 0, -90 ) '变更机器人0的基准坐标
Robot1.Base P( 0, -400, 0, 0, 0, 90 ) '变更机器人1的基准坐标
Robot0.GiveArm '释放机器人0的控制权
Robot1.GiveArm '释放机器人1的控制权
End Sub
<Robot0Pro.pcs>
'!TITLE “机器人0的动作程序
Sub Main
'P1,P2,P3:机器人0的动作点
#Pragma Optimize( "DefaultRobot", 0 ) '将机器人0设定为默认机器人
TakeArm 0 '获取机器人0的控制权
Move P, @e P1 '将机器人0移至P1
Move P, @e P2 '将机器人0移至P2
Move P, @e P3 '将机器人0移至P3
End Sub
<Robot1Pro.pcs>
'!TITLE “机器人1的动作程序
Sub Main
'P11,P12:机器人1的动作点
#Pragma Optimize( "DefaultRobot", 1 ) '将机器人1设定为默认机器人
TakeArm 0 '获取机器人1的控制权
Move P, @e P11 '将机器人1移至P11
Move P, @e P12 '将机器人1移至P12
End Sub
<CoopRobotPro.pcs>
'!TITLE “机器人0和机器人1的动作程序”
Sub Main
'主局的教导点:P21,P23,P24
'子局的教导点:P22
Robot0.TakeArm '获取机器人0的控制权
Robot1.TakeArm '获取机器人1的控制权
Robot0.ChangeTool 1 '变更机器人0的工具坐标
Robot1.ChangeTool 1 '变更机器人1的工具坐标
Robot0.ChangeWork 1 '变更机器人0的工件坐标
Robot1.ChangeWork 1 '变更机器人1的工件坐标
'将Robot0、Robot1移至作业趋近位置50mm
SyncTime ( Robot0.Approach P, P21, 50 ),_
( Robot1.Approach P, P22, 50 ), Next
'将Robot0、Robot1移至作业点
SyncTime ( Robot0.Move L, @e P21, Speed = 20 ),_
( Robot1.Move L, @e P22, Speed = 20 )
'夹持工件
Robot0.SetHandIO 64, 1, 1 '机器人0的夹治具IO 64 ON
Robot1.SetHandIO 64, 1, 1 '机器人1的夹治具IO 64 ON
Delay 100
'协调动作
'机器人1根据机器人0自动进行动作
Robot0.Move L, P23, Speed = 20, syncmove = Robot1
Robot0.Move L, P24, syncmove = Robot1
End Sub
ID : 2017