ABB工业机器人编程基础(十)搬运任务练习
本案例通过 RobotStudio 搭建一个简单的搬运工作站实现从工具架拿取吸盘工具使用吸盘从传送带抓取棋子将棋子搬运到棋盘指定位置放下棋子归还吸盘工具通过该案例可以综合练习工具坐标、工件坐标、有效载荷、I/O信号以及例行程序的使用。一、工具数据ToolData本项目使用两个工具坐标。1. 夹子工具tGrip机器人默认夹持工具用于夹取吸盘工具。用途 夹取和归还吸盘工具2. 吸盘工具tVacuum带真空吸盘的工具。用途 吸取棋子 放置棋子吸盘工具安装后机器人末端 TCP 将切换为 tVacuum。二、工件坐标WorkObject本项目使用三个工件坐标。1. 工具架WobjGJJ用于存放吸盘工具。2. 传送带WobjCSD用于抓取棋子。3. 棋盘WobjQP用于放置棋子。三、有效载荷LoadData为了保证机器人运动更加真实需要设置有效载荷。1. 空载load0机器人未抓取任何工件。2. 棋子loadQZ机器人吸附棋子后使用。四、例行程序本项目主要包含以下例行程序。rPickVacuum 拿取吸盘工具 rPutVacuum 归还吸盘工具 rPickQZ 抓取棋子 rPutQZ 放置棋子 main 主程序五、拿取吸盘工具机器人首先使用夹子工具到工具架拿取吸盘工具。程序代码PROC rPickVacuum() ! 回Home点 MoveJ pHome, maxSpeed, z50, tGrip; ! 移动到吸取点上方100mm MoveJ Offs(pPickVacuum,0,0,100), maxSpeed, z50, tGrip\WObj:wobjGJJ; ! 下降到吸取位置 MoveL pPickVacuum, maxSpeed, fine, tGrip\WObj:wobjGJJ; ! 夹吸盘工具 Set do10_1; ! 等待1s WaitTime 1; ! 提升到安全高度 MoveL Offs(pPickVacuum,0,0,100), minSpeed, z50, tGrip\WObj:wobjGJJ; ! 返回Home点 MoveJ pHome, maxSpeed, fine, tGrip; ENDPROC程序流程Home ↓ 工具架上方 ↓ 取工具 ↓ 夹紧 ↓ 等待 ↓ 抬起 ↓ Home六、抓取棋子机器人切换到吸盘工具后从传送带抓取棋子。程序代码PROC rPickQZ() ! 设置空载荷 GripLoad load0; ! 回Home点 MoveJ pHome, maxSpeed, z50, tGrip; ! 移动棋子上方50mm MoveJ Offs(pPickQZ,0,0,50), maxSpeed, z50, tVacuum\WObj:wobjCSD; ! 下降位置 MoveL pPickQZ, maxSpeed, fine, tVacuum\WObj:wobjCSD; ! 吸取 Set do10_2; ! 等待 WaitTime 1; ! 更新负载数据 GripLoad loadQZ; ! 提升到安全高度 MoveL Offs(pPickQZ,0,0,50), minSpeed, z50, tVacuum\WObj:wobjCSD; ENDPROC七、放置棋子机器人将棋子放到棋盘指定位置。程序代码PROC rPutQZ() ! 当前负载为抓棋子 GripLoad loadQZ; ! 移动到棋盘点上方50mm MoveJ Offs(pPutQZ,0,0,50), maxSpeed, z50, tVacuum\WObj:wobjQP; ! 下降到棋盘位置 MoveL pPutQZ, maxSpeed, fine, tVacuum\WObj:wobjQP; ! 放开 Reset do10_2; ! 等待 WaitTime 1; ! 恢复空载荷 GripLoad load0; ! 提升到安全高度 MoveL Offs(pPutQZ,0,0,50), minSpeed, z50, tVacuum\WObj:wobjQP; ENDPROC八、放回吸盘工具吸盘工具放回工具架。程序代码PROC rPutVacuum() ! 回Home点 MoveJ pHome, maxSpeed, z50, tGrip; ! 移动到工具架上方100mm MoveJ Offs(pPickVacuum,0,0,100), maxSpeed, z50, tGrip\WObj:wobjGJJ; ! 下降 MoveL pPickVacuum, maxSpeed, fine, tGrip\WObj:wobjGJJ; ! 松开夹子 Reset do10_1; ! 等待 WaitTime 1; ! 提升到安全高度 MoveL Offs(pPickVacuum,0,0,100), minSpeed, z50, tGrip\WObj:wobjGJJ; ! 返回Home点 MoveJ pHome, maxSpeed, fine, tGrip; ENDPROC九、主程序程序代码PROC main() !真空吸盘取料 rPickVacuum; ! ! Step2启动传送带 ! do10_0 1 ! Set do10_0; ! ! Step3等待工件到位信号 ! di10_0 1 时继续运行 ! WaitDI di10_0,1; ! ! Step4停止传送带 ! do10_0 0 ! Reset do10_0; ! ! Step5抓取QZ工件 ! rPickQZ; ! ! Step6放置QZ工件 ! rPutQZ; ! ! Step7释放真空吸盘工件 ! rPutVacuum; ENDPROC流程图拿取吸盘工具 ↓ 启动传送带 ↓ 等待棋子到位 ↓ 抓取棋子 ↓ 放置棋子 ↓ 归还吸盘工具逻辑信号图小结通过本案例可以掌握ToolData工具坐标WorkObject工件坐标LoadData有效载荷RAPID例行程序WaitDI信号等待Offs偏移函数真空吸盘控制RobotStudio工作站逻辑这是一个典型的机器人搬运项目也是后续学习码垛、上下料、装配等项目的重要基础。