4. 虚拟控制器与真实控制器一致性检查
ROBOGUIDE 的离线验证之所以可信,前提是虚拟控制器(Virtual Robot Controller,VRC)与现场真实控制器(Real Robot Controller,RRC)在“决定运动结果”的那批配置上完全一致。只要系统变量、运动参数、负载设置、用户坐标系或工具坐标系中任意一项存在偏差,离线跑通的轨迹到了现场就可能出现位置偏移、速度异常、奇异点报警甚至碰撞。因此,一致性检查不是可选的“加分项”,而是离线验证前的强制前置动作。
需要先明确一个判断原则:一致性检查的对象是“影响运动学与动力学结果”的配置,而不是全部配置。像通信协议、I/O 分配、外部设备接口这类与轨迹无关的内容,可以留到后期联调阶段处理;而坐标系、负载、运动参数、系统变量这四类直接参与运动解算,必须逐项核对。下面按“先取基准、再逐项比对、最后固化”的顺序展开。
一、建立基准:从真实控制器导出配置
一致性检查的基准永远是真实控制器,而不是虚拟控制器。正确做法是:在真实控制器上进入 MENU → 6 SETUP → 0 Type 或使用 File → Backup → Controller as 导出 SUMMARY.DG、SYSVARS.SV、MOTION.DG、FRAMES.DG 等文件,作为比对源。ROBOGUIDE 侧则通过 Robot → Controller → Load Backup 载入同一份备份,或手动逐项录入。若现场控制器版本与 ROBOGUIDE 内置的 VRC 版本不一致(例如现场为 V9.30,软件内置为 V9.10),应优先在 ROBOGUIDE 中新建与现场同版本的 VRC,否则部分系统变量名称和默认值会不同,比对会失去意义。
二、四类关键配置的逐项比对
1. 系统变量(System Variables)。重点核对 $SCR.$GRP1.$MOTYPE(运动类型)、$PARAM_GROUP[1].$CHANNEL(组通道)、$DMA_GRP[1].$AXIS_ORDER(轴顺序)以及 $SCR.$GRP1.$ROT_AXIS(旋转轴定义)。这些变量决定机器人如何解释关节数据,一旦不一致,离线轨迹的关节角会整体错位。建议用 System → Variables 逐项对照,或直接比较 SYSVARS.SV 中对应行。
2. 运动参数(Motion Parameters)。包括各轴最大速度 $PARAM_GROUP[1].$MAX_SPEED、加速度 $ACC、加加速度限制 $JERK,以及 $MOTION_PLAN 中的规划模式。若虚拟控制器把速度上限设得比现场高,离线仿真会“跑得动”,现场却因限速而节拍不达标;反之则可能掩盖碰撞风险。核对时以现场 MOTION.DG 为准,逐轴比对数值。
3. 负载设置(Payload)。负载包含质量、重心位置和转动惯量三要素,对应 $PLST_GRP[1].$MASS、$PLST_GRP[1].$CM、$PLST_GRP[1].$IX/$IY/$IZ。负载偏差会直接影响动力学计算,导致离线验证时电机负载率、加速度表现与现场不符。若现场使用多个工具,需确认当前激活的负载编号与离线程序一致。
4. 用户坐标系与工具坐标系(UF/TF)。用户坐标系决定工件在空间中的位置,工具坐标系决定 TCP 的位置与姿态。核对 $MNUTOOL[1..10] 与 $MNUFRAME[1..9] 的 X/Y/Z/W/P/R 六分量。特别注意:现场若通过示教重新标定过 TCP,而离线仍用旧值,轨迹会整体偏移。建议在真实控制器上执行 MENU → 6 SETUP → 3 Frames 读取当前值,与 ROBOGUIDE 中 Robot → Frames 逐项对照。
三、比对方法与偏差处理
逐项比对时,建议采用“三列对照法”:左列写真实控制器值,中列写虚拟控制器值,右列写是否一致及处理动作。对于数值型参数,允许存在极小容差(例如 TCP 位置偏差小于 0.05 mm 可视为一致),但坐标系姿态角 W/P/R 的偏差必须严格为零,因为角度偏差会被轨迹放大。若发现偏差,处理原则是以真实控制器为基准修正虚拟控制器,而不是反过来修改现场参数——现场参数是经过实际标定和验证的,离线环境只是复现。
一个常见陷阱是“负载编号错位”。现场可能定义了多个负载(如 PLST[1] 为空载、PLST[2] 为抓取工件),而离线程序默认激活 PLST[1]。此时即使质量数值本身正确,激活的负载不对,动力学结果依然错误。核对时务必确认 $PLST_GRP[1].$ACTIVE 或程序中 PAYLOAD 指令指定的编号与现场一致。
VRC_Consistency_Base),后续所有离线验证都从该基线派生,避免重复比对。四、可执行的一致性检查清单
下表可直接作为离线验证前的检查表使用,字段可根据实际项目增减。示例中的数值为教学假设值,实际应以现场备份为准。
| 检查项 | 关键参数/对象 | RRC 示例值 | VRC 示例值 | 判定 |
|---|---|---|---|---|
| 系统变量 | $SCR.$GRP1.$MOTYPE | 1 | 1 | 一致 |
| 系统变量 | $DMA_GRP[1].$AXIS_ORDER | 1,2,3,4,5,6 | 1,2,3,4,5,6 | 一致 |
| 运动参数 | $PARAM_GROUP[1].$MAX_SPEED[1] | 180 deg/s | 180 deg/s | 一致 |
| 运动参数 | $ACC 各轴加速度 | 100% | 80% | 偏差,需修正 |
| 负载设置 | $PLST_GRP[1].$MASS | 5.0 kg | 5.0 kg | 一致 |
| 负载设置 | $PLST_GRP[1].$CM (X,Y,Z) | 0,0,120 mm | 0,0,120 mm | 一致 |
| 用户坐标系 | $MNUFRAME[1] X/Y/Z | 800,0,0 mm | 800,0,0 mm | 一致 |
| 工具坐标系 | $MNUTOOL[1] X/Y/Z | 0,0,150 mm | 0,0,148 mm | 偏差 2 mm,需修正 |
| 工具坐标系 | $MNUTOOL[1] W/P/R | 0,0,0 | 0,0,0 | 一致 |
表中两处偏差(加速度与 TCP 的 Z 向 2 mm)就是典型的“离线能跑、现场不准”来源。修正方式:在 ROBOGUIDE 中打开 Robot → Motion 将加速度恢复为 100%,在 Robot → Frames → Tool Frame 中将 Z 改为 150 mm,然后重新执行一次比对,确认全部一致后再进入轨迹验证环节。
MOTN-023 奇异点报警或 SRVO-050 碰撞检测,排查成本远高于事前比对。完成上述四类配置的比对与修正后,虚拟控制器才具备与真实控制器“同构”的运动学与动力学基础。此时再执行离线程序验证,得到的轨迹、节拍和可达性结论才具有现场参考价值。一致性检查本身不产生轨迹,但它决定了后续所有验证结论是否可信——这是离线验证流程中最容易被低估、却最不该省略的一步。