2. ROBOGUIDE项目结构解析
在ROBOGUIDE中,一个可运行的项目并不是“一个程序文件”那么简单。它更像一个由多层对象嵌套而成的虚拟工作站:最外层是工作单元(Workcell),内部挂载机器人系统(Robot System),机器人系统再引用工具(Tool)、工件(Part)、路径(Path)与程序(Program),而所有这些对象的参数最终被写入若干配置文件。理解这种组织关系,是判断“迁移什么、怎么迁移、迁移后哪里会出问题”的前提。
一、从工作单元到机器人系统的层级关系
工作单元是ROBOGUIDE项目的顶层容器,它保存了场景的全局信息:坐标系、布局、设备模型、仿真环境以及一个或多个机器人系统。一个工作单元可以包含多台机器人,但每台机器人都有独立的机器人系统。机器人系统是迁移时最核心的单元,因为它绑定了机器人型号、控制柜类型、软件版本、运动参数和I/O配置。
在ROBOGUIDE的树形结构中,典型层级如下:Workcell → Robot System → Tool / Part / Path / Program → Configuration Files。这个层级不是简单的文件夹嵌套,而是引用关系:程序引用路径,路径引用工具坐标系和工件坐标系,工具和工件又依赖机器人系统的运动学参数。因此,迁移时如果只复制程序文件,而忽略工具和工件的坐标系定义,程序中的位置点就会全部偏移。
二、工具、工件与路径的引用关系
工具(Tool)在ROBOGUIDE中定义的是TCP(工具中心点)相对于机器人法兰盘的位置和姿态,通常用六维参数表示:X、Y、Z、W、P、R。工件(Part)定义的是工件坐标系相对于世界坐标系或机器人基坐标系的位姿。路径(Path)则是一系列示教点的集合,每个示教点记录的是机器人到达该点时各轴的角度值或笛卡尔位姿。
关键点在于:路径点通常不是直接以世界坐标存储,而是以“工具坐标系+工件坐标系”为参照。例如,一个焊接路径点可能记录为“在UF[1]工件坐标系下,使用UTOOL[1]工具,到达P[5]位置”。迁移到另一台机器人或另一个工作单元时,如果工具TCP参数不同,或者工件坐标系原点偏移,那么同一个P[5]在空间中的实际位置就会改变。这就是为什么迁移后经常出现“程序能跑,但焊枪撞工件”或“抓取位置偏了”的根本原因。
三、程序与配置文件的组织方式
ROBOGUIDE中的程序分为TP程序(示教器程序)和KAREL程序(高级语言程序)。TP程序通常以.LS或.TP文件形式存在,KAREL程序以.PC文件存在。程序内部通过调用路径、设置工具号、设置工件号、控制I/O来实现动作逻辑。例如:
1: UTOOL_NUM=1 ;
2: UFRAME_NUM=1 ;
3: J P[1] 100% FINE ;
4: L P[2] 500mm/sec CNT50 ;
5: DO[1]=ON ;
6: WAIT DI[1]=ON ;
7: L P[3] 500mm/sec FINE ;
这段程序本身并不包含P[1]、P[2]、P[3]的坐标值,坐标值存储在位置寄存器文件(如POSREG.VA)或程序附属的.DT文件中。工具和工件的定义则存储在SYSMASTER.SV、$GROUP、$UTOOL、$UFRAME等系统变量或配置文件中。因此,迁移时如果只复制.LS程序文件,而不迁移位置寄存器、工具定义和工件定义,程序中的P[n]就会变成未定义或默认值,导致运行失败或位置错误。
四、迁移影响面分析
基于上述结构,迁移影响面可以按“对象—依赖—风险”三个维度来梳理。下表给出一个示例性的迁移影响面检查表,用于在迁移前逐项确认。
| 迁移对象 | 依赖关系 | 典型风险 | 检查方式 |
|---|---|---|---|
| 机器人系统 | 型号、控制柜、软件版本 | 运动学参数不匹配,程序无法加载 | 对比$GROUP和SYSMASTER.SV |
| 工具UTOOL | TCP六维参数、负载 | 路径点整体偏移,碰撞或焊偏 | 在ROBOGUIDE中显示TCP轨迹 |
| 工件UFRAME | 工件坐标系原点与姿态 | 抓取/焊接位置偏移 | 对比UFRAME定义并试运行 |
| 路径点P[n] | 工具号、工件号、位置寄存器 | 点未定义或坐标错误 | 检查POSREG.VA和程序中的引用 |
| 程序逻辑 | I/O映射、调用关系、条件判断 | 信号错位、逻辑跳转异常 | 对比I/O配置和程序注释 |
| 配置文件 | 版本、路径、系统变量 | 版本不兼容,参数丢失 | 逐文件对比并记录差异 |
五、实际迁移中的操作建议
在实际操作中,建议按以下顺序处理:第一,导出原工作单元的完整备份,包括所有配置文件、程序文件、位置寄存器和系统变量。第二,在新工作单元中先建立机器人系统,确保型号和控制柜类型一致。第三,导入工具和工件定义,并在ROBOGUIDE中通过“工具坐标系显示”和“工件坐标系显示”功能确认TCP和UFRAME的位姿。第四,导入路径和程序,检查每个P[n]是否已正确关联到位置寄存器。第五,进行单步仿真,观察机器人是否按预期到达每个示教点,特别关注工具末端轨迹是否与工件发生干涉。第六,检查I/O信号在仿真中的通断状态,确认逻辑与实物一致。
如果迁移后出现位置偏差,优先排查工具TCP和工件坐标系,而不是直接修改程序中的P[n]数值。因为P[n]通常是以工具和工件为参照的,修改P[n]会掩盖坐标系定义错误,导致后续维护更加困难。正确的做法是:先修正UTOOL和UFRAME,再重新生成或重新示教路径点。
最后,配置文件中的版本信息往往被忽略。例如,SYSMASTER.SV中记录了机器人软件版本和选项配置,如果新控制柜的软件版本较低,某些指令或系统变量可能不被支持。迁移前应核对版本兼容性矩阵,必要时先升级控制柜软件或调整程序中的指令用法。只有把工作单元、机器人系统、工具、工件、路径、程序和配置文件作为一个整体来对待,迁移后的项目才能真正稳定运行。