通过示教编程,实现搬运机器人能够将工件搬运到工作台;激光切割机器人能够实现对工件的模拟切割;搬运机器人能够实现将工件从工作台搬运码垛台。
首先按照上个任务的操作步骤,测试一下传送带和传感器,使一个工件到达传感器并停止下,如图所示。
步骤3)使用机械装置手动线性命令,将机器人末端调整到工件的表面。
因为要连续实现工件的复制,搬运工件的名称会随着系统的不断复制而不断变化。因此,末端工具仅仅在事件管理器中设置的事件就不能实现对工件的抓取和释放了。这里需要通过Smart组件进行调整。
步骤1)拆除MyNewTool,右键击MyNewTool,点击拆除。弹出更新位置对话框,这里要选择否。
步骤3)将MyNewTool从模型树中拖动到Sucker上,然后再右侧子对象组件中,右键击MyNewTool,设置为Role。
步骤4)添加组件LineSensor,并设置组件属性,最后点击应用。
步骤5)添加Attacher和Detacher,并设置Attacher的Parent为如图所示。
步骤7)将组件安装到搬运机器人上,当弹出更新位置时,选择否。
步骤8)在工作站逻辑中,将系统的do_suck信号和组件的DO_SC_SUCK信号相连接
步骤3)开启仿真,将机器人调整到放置位置,并点击示教目标点,进行示教。
注意:这里如果出现不能抓取工件,只需要重新进行传送带仿真,生成一个新的工件即可。
步骤4)将do_suck信号设置为0,调整搬运机器人的位置,查看是否能正确释放工件。
调整完成后,将机器人更换到安全姿态,再次保存示教点。如图所示。
使搬运机器人保持放置姿态,重新点击do_suck信号,使工件被吸附。
步骤2)将示教点拖动到main中。分别选中两个机器人的所有示教点,拖动到各自的main函数中。
MoveJ ZeroPoint,v1000,fine,MyNewTool\WObj:=wobj0;
MoveJ Offs(GrapPoint,0,0,100),v1000,fine,MyNewTool\WObj:=wobj0;
MoveL GrapPoint,v200,fine,MyNewTool\WObj:=wobj0;
MoveL Offs(GrapPoint,0,0,100),v1000,fine,MyNewTool\WObj:=wobj0;
MoveJ Offs(WorkPoint,0,0,100),v1000,fine,MyNewTool\WObj:=wobj0;
MoveL WorkPoint,v200,fine,MyNewTool\WObj:=wobj0;
MoveL Offs(WorkPoint,0,0,100),v1000,fine,MyNewTool\WObj:=wobj0;
MoveJ Offs(GrapPoint,0,0,100),v1000,fine,MyNewTool\WObj:=wobj0;
MoveJ ZeroPoint,v1000,fine,MyNewTool\WObj:=wobj0;
!完成从工作台到码垛位置的搬运;仅仅是搬运过程。这里先不考虑码垛,放置在同一位置
MoveJ ZeroPoint,v1000,fine,MyNewTool\WObj:=wobj0;
MoveJ Offs(WorkPoint,0,0,100),v1000,fine,MyNewTool\WObj:=wobj0;
MoveL WorkPoint,v200,fine,MyNewTool\WObj:=wobj0;
MoveL Offs(WorkPoint,0,0,100),v1000,fine,MyNewTool\WObj:=wobj0;
MoveJ ZeroPoint,v1000,fine,MyNewTool\WObj:=wobj0;
MoveJ Offs(StackPoint,0,0,100),v1000,fine,MyNewTool\WObj:=wobj0;
MoveL StackPoint,v200,fine,MyNewTool\WObj:=wobj0;
MoveL Offs(StackPoint,0,0,100),v1000,fine,MyNewTool\WObj:=wobj0;
MoveJ ZeroPoint,v1000,fine,MyNewTool\WObj:=wobj0;
MoveJ ZeroPoint,v1000,z100,AW_Gun\WObj:=wobj0;
MoveJ Offs(Target_10,0,0,100),v1000,fine,AW_Gun\WObj:=wobj0;
MoveL Target_10,v200,fine,AW_Gun\WObj:=wobj0;
MoveL Target_20,v200,fine,AW_Gun\WObj:=wobj0;
MoveL Target_30,v200,fine,AW_Gun\WObj:=wobj0;
MoveL Target_40,v200,fine,AW_Gun\WObj:=wobj0;
MoveL Offs(Target_40,0,0,100),v200,fine,AW_Gun\WObj:=wobj0;
MoveJ ZeroPoint,v1000,z100,AW_Gun\WObj:=wobj0;
整个搬运过程和激光切割过程采用“一问一答”方式建立信号。如下图所示。