3. 现场程序迁移前的资产盘点

现场程序迁移最怕的不是“搬不过去”,而是“搬过去才发现少东西”。机器人能手动运行,不代表程序能自动跑;能自动跑,不代表安全逻辑、外部设备通信和标定数据都完整。资产盘点的目的,就是在动手迁移之前,把控制器里所有会影响程序运行和现场行为的“家底”查清楚,形成一份可核对、可追溯、可交接的迁移清单。

RobotStudio 离线环境与真实控制器的差异,往往不在 RAPID 代码本身,而在代码之外的系统层资产。一个典型的 IRC5 或 OmniCore 控制器中,与迁移直接相关的资产至少分布在六个层面:RAPID 程序模块、系统参数、EIO 配置、示教器用户数据、备份文件、版本记录。它们不是并列的六个文件夹,而是有依赖关系的:RAPID 模块调用 EIO 信号,EIO 信号依赖系统参数中的总线与单元配置,系统参数又受控制器软件版本和选项约束,而备份文件和版本记录则是这一切的“快照”和“身份证”。

现场程序迁移资产盘点关系图 六类资产 · 依赖方向 · 迁移清单输出 迁移清单 Migration Checklist RAPID 模块 主程序 / 例行程序 / 中断 模块属性 / 变量声明 .mod / .prg 文件 系统参数 Motion / IO / Man-machine 单元配置 / 轴配置 .cfg 文件 EIO 配置 总线 / 设备 / 信号映射 DSQC 板卡 / 单元 EIO.cfg 示教器用户数据 用户 / 权限 / 语言 自定义按键 / 屏幕布局 用户数据文件 备份文件 完整备份 / 系统备份 程序备份 / 参数备份 .bak / 目录结构 版本记录 RobotWare 版本 选项 / 补丁 / 修改历史 版本清单 调用信号 约束配置 快照 标识 盘点顺序建议:版本记录 → 系统参数 → EIO 配置 → RAPID 模块 → 示教器数据 → 备份文件

图中展示了六类资产与迁移清单之间的汇聚关系,以及它们之间的依赖方向。实际盘点时,建议按“版本记录 → 系统参数 → EIO 配置 → RAPID 模块 → 示教器用户数据 → 备份文件”的顺序推进,因为后一项的完整性往往依赖前一项的确认结果。

一、RAPID 模块:不只是复制 .mod 文件

RAPID 程序通常由多个模块组成,包括主程序模块(如 MainModule)、功能模块、通信模块、安全模块等。盘点时不能只看模块名称,要逐项确认以下内容:模块类型(程序模块 / 系统模块)、是否加密、是否被 UAS 或 SafeMove 引用、模块内是否包含 LOCAL 变量、是否使用了 PERS 持久变量、是否定义了中断程序、是否引用了外部轴或 MultiMove 配置。

一个容易被忽略的点是模块的“加载方式”。如果原系统使用 Load 指令在运行时动态加载模块,迁移后必须保证目标控制器中模块路径和文件权限一致。另外,如果模块中使用了 TPWrite 或 TPReadFK 等示教器交互指令,要确认目标示教器语言设置是否匹配,否则可能出现乱码或按键无响应。

盘点结果应记录为模块清单,至少包含:模块名、类型、文件路径、是否加密、依赖的全局变量、被哪些例行程序调用。示例记录如下:

模块名          类型      文件路径                    加密   关键依赖
MainModule      程序模块  /HOME/Programs/Main.mod     否     socket1, gripper
GripperCtrl     程序模块  /HOME/Programs/Grip.mod     否     doGrip, diGrip
SafeZone        系统模块  /HOME/Programs/Safe.mod     是     SafeMove选项
CommTCP         程序模块  /HOME/Programs/Comm.mod     否     socket1

二、系统参数:迁移后最容易“水土不服”的部分

系统参数决定了机器人的运动学行为、通信行为和单元行为。盘点时重点检查四类参数:Motion(轴配置、关节限位、工具坐标系、工件坐标系、负载)、IO(信号定义、交叉连接、安全信号)、Man-machine(示教器语言、单位、日期格式)、Communication(总线类型、IP 地址、站号)。

其中,工具坐标系(tooldata)和工件坐标系(wobjdata)必须逐条核对。如果原系统使用了 ActUnit 或 DeactUnit 切换单元,还要确认目标控制器的单元配置是否一致。一个实用的做法是:在 RobotStudio 中打开原系统备份,导出 Motion 和 IO 参数为 .cfg 文件,再与目标控制器逐项比对。差异项要标注“需修改”“需确认”或“可忽略”。

系统参数中的 RobotWare 选项(如 PC Interface、Multitasking、SafeMove)必须与目标控制器一致。如果目标控制器缺少某个选项,相关 RAPID 指令将无法编译或运行。

三、EIO 配置:信号映射的“接线图”

EIO 配置定义了机器人控制器与外部设备之间的信号映射关系,包括总线类型(DeviceNet、PROFINET、EtherNet/IP 等)、设备地址、信号名称、信号类型(DI/DO/AI/AO)、信号方向、交叉连接(Cross Connection)和单元分配。盘点时,要逐条记录每个信号的名称、类型、地址和所属单元。

特别要注意的是“交叉连接”和“安全信号”。交叉连接用于在控制器内部建立信号之间的逻辑关系,如果迁移后遗漏,可能导致外部设备无法正确响应。安全信号(如 ESTOP、GS、AS)通常与安全 PLC 或安全继电器配合,必须确认目标控制器的安全配置与原系统一致。

建议在盘点时直接导出 EIO.cfg 文件,并生成一份信号对照表。示例片段如下:

信号名        类型   地址          单元      说明
diGripOpen    DI     0-0            Board1    夹爪打开到位
doGripClose   DO     0-1            Board1    夹爪闭合指令
diSafeDoor    DI     0-2            Board1    安全门状态
doAlarmLamp   DO     0-3            Board1    报警灯输出
aiPressure    AI     0-0            Board1    气压模拟量

四、示教器用户数据:容易被忽视的“软资产”

示教器用户数据包括用户账号、权限等级、语言设置、自定义按键、屏幕布局、快捷菜单等。这些数据虽然不直接影响程序逻辑,但会影响操作人员的日常使用和故障处理效率。如果原系统设置了多级用户权限(如操作员、程序员、管理员),迁移后必须重新创建对应的用户和权限,否则可能出现“程序能跑但改不了”的尴尬局面。

盘点时,记录以下内容:用户列表及权限等级、当前语言、自定义按键映射、屏幕布局文件、是否有自定义的 FlexPendant 界面。如果原系统使用了 RobotStudio 的 ScreenMaker 功能,还要确认目标控制器是否安装了对应的 ScreenMaker 选项。

五、备份文件与版本记录:迁移的“底稿”和“身份证”

备份文件是迁移的底稿。盘点时,要确认备份的类型和完整性:完整备份(包含系统参数、RAPID 程序、EIO 配置、用户数据)、系统备份(仅系统参数)、程序备份(仅 RAPID 程序)。建议至少保留一份完整备份,并记录备份时间、备份人、备份文件大小和存放路径。

版本记录则是迁移的“身份证”。必须记录原控制器的 RobotWare 版本号、选项列表、补丁号、控制器序列号、机器人型号和序列号。这些信息决定了目标控制器需要满足的最低版本要求。如果目标控制器版本低于原系统,可能需要先升级 RobotWare,否则部分指令或选项无法使用。

不要依赖“记忆”或“口头交接”来记录版本信息。现场迁移中,因版本不一致导致的编译错误、选项缺失、信号无法映射等问题非常常见。版本记录必须形成书面文件,并与备份文件一起归档。

六、形成迁移清单:从盘点结果到可执行文档

盘点的最终产出是一份迁移清单。清单不是简单的资产列表,而是一份可核对、可追溯、可交接的工作文档。建议清单包含以下字段:资产类别、资产名称、原系统位置/值、目标系统要求、差异说明、处理方式、负责人、确认状态。

示例迁移清单片段如下:

资产类别 资产名称 原系统值 目标系统要求 差异 处理方式 状态
版本记录 RobotWare 6.10.01 ≥6.10.01 无 直接迁移 已确认
系统参数 tooldata tool0, tool1 需重建 坐标系偏移 重新标定 待处理
EIO 配置 diGripOpen 0-0 0-0 无 直接迁移 已确认
RAPID 模块 SafeZone 加密 需 SafeMove 选项缺失 升级选项 待处理
示教器数据 用户权限 3 级 3 级 无 重建用户 待处理

清单完成后,建议进行一次“反向核对”:从目标控制器的角度出发,逐项确认每个资产是否已就位、是否可编译、是否可运行。例如,打开 RobotStudio 的虚拟控制器,导入 RAPID 模块和 EIO 配置,尝试编译并运行主程序。如果编译通过且信号映射正确,说明盘点基本到位;如果出现错误,则回到清单中定位缺失项。

资产盘点的价值,不在于“列了多少项”,而在于“迁移时能不能一次到位”。一份好的迁移清单,应该让接手的人不需要反复询问原系统的情况,就能独立完成迁移和校核。这也是现场程序迁移从“凭经验”走向“可复现”的关键一步。