项目四 PLC与RobotStudio联合仿真激光切割工作站——机器人示教编程

一、任务描述

通过示教编程,实现搬运机器人能够将工件搬运到工作台;激光切割机器人能够实现对工件的模拟切割;搬运机器人能够实现将工件从工作台搬运码垛台。

二、目标点示教

1. 示教前准备工作

首先按照上个任务的操作步骤,测试一下传送带和传感器,使一个工件到达传感器并停止下,如图所示。

2. 机器人示教目标点

步骤1)激活当前使用的机器人。

步骤2)使用机械装置手动关节命令,调整吸盘的姿态为水平姿态

结果如下图所示

点击示教目标点命令,产生第一个示教点。

步骤3)使用机械装置手动线性命令,将机器人末端调整到工件的表面。

点击示教目标点,完成点位示教。

3.吸盘工具的组件化改造

因为要连续实现工件的复制,搬运工件的名称会随着系统的不断复制而不断变化。因此,末端工具仅仅在事件管理器中设置的事件就不能实现对工件的抓取和释放了。这里需要通过Smart组件进行调整。

步骤1)拆除MyNewTool,右键击MyNewTool,点击拆除。弹出更新位置对话框,这里要选择否。

步骤2)添加Smart组件,并进行重命名

步骤3)将MyNewTool从模型树中拖动到Sucker上,然后再右侧子对象组件中,右键击MyNewTool,设置为Role。

步骤4)添加组件LineSensor,并设置组件属性,最后点击应用。

步骤5)添加Attacher和Detacher,并设置Attacher的Parent为如图所示。

步骤6)添加一个逻辑非组件,并设计如图所示的控制逻辑。

步骤7)将组件安装到搬运机器人上,当弹出更新位置时,选择否。

步骤8)在工作站逻辑中,将系统的do_suck信号和组件的DO_SC_SUCK信号相连接

4. 搬运目标点示教

步骤1)切换系统运行模式

步骤2)打开IO仿真器

步骤3)开启仿真,将机器人调整到放置位置,并点击示教目标点,进行示教。

注意:这里如果出现不能抓取工件,只需要重新进行传送带仿真,生成一个新的工件即可。

步骤4)将do_suck信号设置为0,调整搬运机器人的位置,查看是否能正确释放工件。

5. 切割目标点示教

步骤1)切换激活状态

步骤2)示教目标点

调整完成后,将机器人更换到安全姿态,再次保存示教点。如图所示。

完成的切割机器人点位如图所示。

6. 码垛目标点示教

重新激活搬运机器人,进行码垛开始位置示教。

1)右键击放置位置,跳转到目标点

使搬运机器人保持放置姿态,重新点击do_suck信号,使工件被吸附。

2)调整机器人到码垛开始位置,如图所示。

3)示教目标点,最终得到如图所示的四个目标点。

三、机器人程序编写

1. 编写前准备

步骤1)修改示教点名称

步骤2)将示教点拖动到main中。分别选中两个机器人的所有示教点,拖动到各自的main函数中。

步骤3)同步到RAPID...

2. 编写搬运机器人搬运和码垛子程序

1)打开编辑器

2)创建两个子程序

 !完成从传送带到工作台的搬运;仅仅是搬运过程。

    PROC ConToWork()

        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;

        SetDO do_suck,1;

        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;

        SetDO do_suck,0;

        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;

    ENDPROC

    !完成从工作台到码垛位置的搬运;仅仅是搬运过程。这里先不考虑码垛,放置在同一位置

    PROC WorkToStack()

        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;

        SetDO do_suck,1;

        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;

        SetDO do_suck,0;

        MoveL Offs(StackPoint,0,0,100),v1000,fine,MyNewTool\WObj:=wobj0;

        MoveJ ZeroPoint,v1000,fine,MyNewTool\WObj:=wobj0;

    ENDPROC

3. 编写激光切割机器人加工子程序

打开激光切割机器人的编辑器,添加如下子程序

 !激光切割过程

    PROC WorkP()

        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;

    ENDPROC

完成以上操作之后,关闭编辑器,将所有数据同步到工作站。

4. 构建信号系统

整个搬运过程和激光切割过程采用“一问一答”方式建立信号。如下图所示。

基于此,在搬运机器人建立两个输入信号,两个输出信号;在激光切割机器人建立1个输入信号,1个输出信号。

如图打开System1的I/O系统,创建上述信号。

完成后的效果如图。

同样方法,在System2中创建信号,如图所示。

完成以上操作之后,要对两个系统进行重启,使信号生效。

5. 完成主程序编写

(1)搬运机器人主程序编写

 PROC main()

WHILE TRUE DO

            SetDO do_finish_carry,0;

            SetDO do_finish_stack,0;

            IF di_start_carry=1 THEN

                ConToWork;

            ENDIF

            IF di_start_stack=1 THEN

                WorkToStack;

            ENDIF

            WaitTime 0.2;

        ENDWHILE

    ENDPROC

(2)激光切割机器人主程序编写

 PROC main()

        WHILE TRUE DO

          SetDO do_finish_cutting,0;

            IF di_start_cutting=1 THEN

                WorkP;

            ENDIF

          WaitTime 0.2;

        ENDWHILE

    ENDPROC

6. 子程序修改

在每个子程序的结尾加入SetDO命令,反馈动作完成。

完成后的效果如图所示。

至此,已经完成机器人程序的编写。

未编写部分就是码垛程序,后续进行完善了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巨巨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值