纸箱码垛工作站作业报告
课程名称:工业机器人原理及应用
项目名称:双工位纸箱码垛工作站搭建与调试
软件版本:RobotStudio 6.08
机器人型号:ABB IRB 460
系统版本:RobotWare 6.08.01
完成时间:2026年6月5日星期五
姓名:宁家辉 班级:23机器1班 学号:1234160115
一、项目任务与目标
1. 项目任务
在 RobotStudio 6.08 仿真软件内完成 Pack&Go 工作站解包、控制器系统重置、DSQC652 模块 I/O 硬件与系统信号配置、工具 / 工件 / 载荷数据创建、7 处关键点位示教、RAPID 程序导入编写调试,实现左右双产线纸箱自动抓取、分层码垛、产品计数、满载信号输出、托盘更换中断复位全自动化运行。
2. 学习目标
1 熟悉 ABB IRB460 码垛机器人双工位码垛完整工艺流程,掌握 IRB460 机型特性(最大节拍 2190 次 /h,工作半径 2.4m);
2 熟练 DSQC652(16 入 16 出)I/O 单元硬件组态、通用数字 IO 与系统绑定 IO 配置方法;
3 掌握工具数据、工件坐标系(三点标定)、负载数据的参数设定;
4 掌握 TriggL/TriggEquip 动作触发、时钟计时、数组存储垛型、中断 TRAP 程序编写;
5 掌握双工位轮询码垛逻辑、垛位坐标自动计算、程序故障调试、码垛生产节拍优化。
二、项目设备与软件环境
1 仿真软件:RobotStudio 6.08
2 本体机型:ABB IRB 460 四轴专用码垛机器人
3 IO 硬件:DSQC652 DeviceNet 通讯 IO 模块(16DI+16DO)
4 源工作站文件:SituationalTeaching_Pallet608.rspag
5 机器人系统:RobotWare 6.08.01
三、项目实施步骤与完成记录
任务 1 工作站解包与系统重置
工作站解包步骤
1 双击 SituationalTeaching_Pallet608.rspag 打包文件启动 Pack&Go 解包向导;
2 自定义存储路径,库文件选择从 Pack&Go 包加载文件;
3 RobotWare 版本选定 6.08.01,确认参数后点击完成,等待工作站模型加载。
系统备份与重置步骤
1 点击【控制器】-【备份】-【创建备份】,自定义备份名称与存储路径,生成 zip 备份文件;
2 【控制器】-【重启】-【重置系统】,确认重置,控制器恢复出厂空白系统,清空原有参数与程序。
完成情况:已完成
任务 2 I/O 单元与 I/O 信号配置
2.1 I/O 单元 DSQC652 配置
Name:Board10 Address:10 Network:DeviceNet
2.2 数字 I/O 信号配置表
信号名称 | 类型 | 所属设备 | 地址 | 功能说明 |
di00_BoxInPos_L | 输入 | Board10 | 0 | 左侧产线纸箱到位检测 |
di01_BoxInPos_R | 输入 | Board10 | 1 | 右侧产线纸箱到位检测 |
di02_PalletInPos_L | 输入 | Board10 | 2 | 左侧托盘就位信号 |
di03_PalletInPos_R | 输入 | Board10 | 3 | 右侧托盘就位信号 |
di07_MotorOn | 输入 | Board10 | 7 | 机器人电机上电 |
di08_Start | 输入 | Board10 | 8 | 自动程序启动按钮 |
do00_ClampAct | 输出 | Board10 | 0 | 夹板夹紧 / 松开控制 |
do01_HookAct | 输出 | Board10 | 1 | 钩爪锁紧 / 释放控制 |
do02_PalletFull_L | 输出 | Board10 | 2 | 左侧托盘满载提示 |
do03_PalletFull_R | 输出 | Board10 | 3 | 右侧托盘满载提示 |
2.3 系统输入 / 输出配置
信号名称 | 系统动作 | 功能 |
di07_MotorOn | Motors On | 机器人电机上电使能 |
di08_Start | Start | 自动模式程序启动 |
di09_Stop | Stop | 整机程序停止运行 |
do05_AutoOn | Auto On | 系统自动运行状态反馈 |
do08_Error | Execution error | 程序故障报警输出 |
完成情况:已完成
任务 3 程序数据创建
3.1 工具数据 tGripper
mass:20kg trans Z:527mm cog Z:150mm
3.2 工件坐标系
WobjPallet_L(左托盘)、WobjPallet_R(右托盘),创建方法:三点法
3.3 载荷数据 LoadFull(带纸箱负载)
mass:20kg cog Z:-227mm
完成情况:已完成
任务 4 程序模板导入
导入方式:RobotStudio 导入
导入模块:MainMoudle.mod
遇到问题及解决方法
故障:导入提示 tGripper、Wobj 等数据名称不明确、重命名冲突;
解决:在 RAPID 数据栏删除本地已建立同名程序数据,重新加载模块文件。
完成情况:已完成
任务 5 目标点示教(rModPos 子程序)
需手动示教 7 个关键目标点位,操作:手动摇杆控机器人到位→选中对应 robtarget→修改位置保存
1 pHome:机器人安全原点
2 pPick_L:左侧纸箱抓取点位
3 pPick_R:右侧纸箱抓取点位
4 pPlaceBase0_L:左侧 0° 码垛基准点
5 pPlaceBase90_L:左侧 90° 换向码垛基准
6 pPlaceBase0_R:右侧 0° 码垛基准点
7 pPlaceBase90_R:右侧 90° 换向码垛基准
完成情况:已完成
任务 6 RAPID 程序结构与功能说明
例行程序名称 | 功能说明 |
Main | 主循环程序,循环执行初始化、左右工位取料码垛、状态巡检 |
rInitAll | 整机初始化:关闭轴监控、中断绑定、IO 复位、计数清零 |
rPick | 纸箱抓取逻辑,夹具动作、节拍计时启动、负载加载 |
rPlace | 纸箱码放、钩爪提前释放、空载载荷切换 |
rCalPosition | 左右工位轮询判断,自动匹配抓取 / 放置基准坐标 |
pPattern | 垛位计算功能函数,根据层数 / 计数自动计算 XYZ 偏移 |
rPlaceRD | 码垛计数累加,单托盘满 15 箱触发满载输出 |
rCycleCheck | 示教器 TP 屏打印节拍、左右码垛数量、设备运行状态 |
tEjectPallet_L | 左托盘取走中断子程序,复位满载信号 |
tEjectPallet_R | 右托盘取走中断子程序,复位满载信号 |
完成情况:已完成
任务 7 程序调试与仿真运行
调试步骤
1 打开 IO 仿真面板,核对所有 DI/DO 信号地址与状态;
2 复核工具、工件、负载三项数据参数无误;
3 单段分步调试各子程序,排查点位、信号逻辑错误;
4 I/O 仿真置位 di02_PalletInPos_L、di03_PalletInPos_R=1(托盘到位),启动输送线信号,全自动连续仿真。
报警及处理
1 轴配置报错:点位轴参数差异过大,启用 ConfL\Off、ConfJ\Off 关闭轴监控;
2 数据未定义报错:漏建工件 / 工具数据,补充对应 tooldata、wobjdata 参数;
3 满载不复位:中断未正常绑定,重新执行 CONNECT+ISignalDI 配置。
仿真结果
左右双工位自动轮换码垛
单层 5 箱、共 3 层合计 15 箱垛型摆放规范
满载自动输出 DO 信号,托盘撤离后中断自动复位计数
示教面板实时显示单循环节拍、左右码垛存量
全程无碰撞、无报错,连续稳定自动运行
完成情况:已完成
四、核心指令与功能总结
1 Offs:以参考点位为基准进行 XYZ 坐标偏移,快速生成垛位坐标;
2 RelTool:基于工具坐标系偏移点位,多用于夹具相对位置微调;
3 GripLoad:动态切换机器人负载(满载 LoadFull / 空载 Load0),优化运动性能。
1. 轴配置监控指令
ConfL\Off:关闭线性运动 (MoveL) 轴配置校验,机器人自动自适应关节姿态,规避轴配置报警;
ConfJ\Off:关闭关节运动 (MoveJ) 轴配置校验,相邻点位轴姿态差异大时防止停机报错。
2. 计时指令
ClkReset:时钟变量清零复位,用于单次码垛周期开始前重置计时器;
ClkStart:启动时钟,抓取纸箱瞬间开启计时;
ClkRead:读取时钟数值,换算单循环节拍,配合 TPWrite 示教器显示。
3. 动作触发指令
TriggEquip:定义触发事件参数(触发距离、提前延时、IO 输出),配合 TriggL 实现夹具提前动作;
TriggL:直线运动中指定位置触发预设动作(夹爪开合、真空启停),无需定点 Waittime 等待。
4. 中断程序指令
CONNECT:中断号与 TRAP 中断子程序绑定;
ISignalDI:绑定 DI 信号触发条件,电平变化触发中断;
TRAP/ENDTRAP:中断服务程序主体,满载托盘拿走后复位满载信号与计数。
5. 数组与数据赋值
数组定义:VAR/PERS + 数据类型 + 数组名 {维度},例 PERS num Compensation {15,3} 二维数组存储 15 个垛位 XYZ 补偿值;
单独赋值 trans/rot:单独修改目标点坐标 / 姿态,如 pPlace.trans.x:=pBase.trans.x+nBoxL。
6. 码垛专用功能
Offs:以参考点位为基准进行 XYZ 坐标偏移,快速生成垛位坐标;
RelTool:基于工具坐标系偏移点位,多用于夹具相对位置微调;
GripLoad:动态切换机器人负载(满载 LoadFull / 空载 Load0),优化运动性能。
五、项目总结与收获
1. 本项目完成内容
完成 Pack&Go 工作站解包、系统重置、DSQC652 IO 全配置;完成工具 / 工件 / 负载三类关键数据标定、7 处关键点位示教;导入并调试完整 RAPID 码垛程序,实现左右双工位自动码垛、分层摆放、计数、满载报警、托盘更换中断复位全功能,仿真垛型每层 5 个、三层 15 个纸箱,整机连续自动化运行。
2. 遇到的难点及解决方法
难点 1:导入程序提示数据重名报错
解决:提前删除控制器内同名 tooldata、wobjdata,再加载模块;
难点 2:码垛层数升高后机器人撞垛
解决:在 pPattern 函数内按计数分层修改抓取安全高度 pPickSafe;
难点 3:托盘取走满载信号无法自动复位
解决:核查 ISignalDI 信号电平(托盘离开 DI 由 1 变 0 触发),重新绑定中断 CONNECT。
3. 学习收获
1 掌握 ABB DSQC652 IO 硬件组态 + 系统 IO 绑定实操,理解数字信号与系统功能映射关系;
2 熟练三点法标定工件坐标系、工具重心与负载参数设定原理;
3 理解双工位轮询逻辑、垛位数组算法、Trigg 提前触发、中断故障复位核心编程思路;
4 学会 RobotStudio 仿真调试方法、常见故障排查思路与码垛节拍优化思路。
4. 码垛节拍优化措施(4 条)
1 优化运动转弯半径:非取放点位运动使用 z50/z100 大转弯半径,仅抓取 / 放置点用 fine,轨迹圆滑提升运行速度;
2 Trigg 指令替代固定延时:利用 TriggEquip+TriggL 实现夹具提前开合,取消 Waittime 固定等待,压缩动作耗时;
3 夹具加装到位反馈:使用 WaitDI 代替 Waittime 等待夹具动作,夹具到位立即执行下一步动作;
4 合理配置负载与加速度:精准设置工具、产品载荷参数,配合 AccSet 指令,空载加大加速度、满载降低加速度,避免过载减速;精简冗余过渡点位,减少无效运动行程。
六、自评评分表
项目 | 技术要求 | 分值 | 评分细则 | 评分记录 | 备注 |
练习码垛常用 I/O 配置 | 能够正确配置常用的 I/O 信号和系统输入输出 | 20 | 1 理解流程 2 操作流程 | 20 | IO 配置全部正确 |
练习并总结中断程序的设定 | 能够正确设定中断程序并进行总结 | 20 | 1 理解流程 2 操作流程 | 20 | 左右中断正常触发复位 |
练习准确触发动作指令 Trigg 的应用 | 能够正确使用触发动作指令 Trigg | 20 | 1 理解流程 2 操作流程 | 19 | 提前开合夹具功能正常 |
尝试码垛程序编写 | 能够在程序模板的基础上实现单进单出码垛 | 20 | 1 理解流程 2 操作流程 | 20 | 双工位垛型摆放准确 |
总结码垛节拍优化技巧的方法 | 能够根据实际需要对码垛节拍进行优化 | 20 | 1 理解流程 2 熟练操作 | 19 | 优化方法完整可行 |
总分:98 分 |
七、CSDN 博客链接