3. MOTOMAN机器人编程环境与工程创建
MOTOMAN 机器人的抓取工程最终要落到控制器里运行,而控制器只认一种语言——INFORM。理解 INFORM 的程序结构、示教与再现机制,以及工程文件如何组织,是把视觉识别结果变成真实抓取动作的最后一公里。本节围绕这四件事展开:INFORM 语言、程序结构、示教与再现、项目文件管理。
INFORM 语言:面向运动的机器人专用语言
INFORM 不是通用编程语言,而是 Yaskawa 为 MOTOMAN 控制器设计的运动控制语言。它的核心是“位置 + 动作 + 逻辑”三件事:位置由示教点记录,动作由运动指令描述,逻辑由控制指令和变量完成。与 C 或 Python 不同,INFORM 里没有复杂的数据结构,取而代之的是位置变量(P 变量)、字节/整数/实数变量(B/I/D 变量)和 IO 变量。
最常用的运动指令有四类,理解它们的区别是编程的基础:
- MOVJ:关节插补,各轴独立运动到目标点,速度快但路径不可控,适合大范围空走。
- MOVL:直线插补,TCP 沿直线运动,适合接近工件、插入、涂胶等需要路径可控的场合。
- MOVC:圆弧插补,需要起点、经过点、终点三点确定圆弧。
- MOVS:自由曲线插补,用于复杂轨迹。
视觉抓取里,MOVJ 常用于从拍照位到抓取位上方,MOVL 用于垂直下探到抓取点,这样能保证接近方向可控,避免碰撞。
程序结构:作业(JOB)与主程序
INFORM 的程序单位叫 JOB(作业),一个 JOB 就是一个可独立执行的程序文件。JOB 内部由若干行指令组成,每行有行号,可以带标签(LABEL)。程序结构上通常分为三部分:初始化段、主循环段、结束段。
初始化段负责设置速度、工具号、用户坐标系、打开夹爪等;主循环段是抓取逻辑的核心,通常包含视觉通信、位置计算、运动指令;结束段回到安全位并关闭伺服。下面是一个简化的抓取 JOB 结构示例:
// JOB: PICK_VISION
// 初始化
SET TOOL 01
SET UFRAME 01
SPEED 200
// 主循环
*LOOP
CALL JOB:GET_VISION_POS // 读取视觉结果
MOVJ P010 VJ=50.00 // 到拍照位上方
MOVL P011 V=100.0 // 直线下探
DOUT OT#1 ON // 夹爪闭合
WAIT IN#1=ON // 等待夹紧信号
MOVL P012 V=100.0 // 抬起
MOVJ P013 VJ=80.00 // 到放置位
DOUT OT#1 OFF // 松开
JUMP *LOOP
END
注意 CALL 指令可以调用子 JOB,这是模块化的关键。视觉通信、坐标变换这类逻辑建议单独写成子 JOB,主 JOB 只负责调度,便于调试和复用。
示教与再现:从手动到自动
示教(Teaching)是操作者用示教器手动把机器人移动到目标位置,然后记录该点的过程。再现(Playback)是机器人按记录好的程序自动重复执行。这两步是 MOTOMAN 工程的基本工作模式。
示教时要注意几个关键点:一是示教点的坐标系归属,同一个物理位置在不同工具号或用户坐标系下记录的 P 变量值不同,切换工具后必须重新示教或做坐标变换;二是示教速度要低,通常用示教器上的低速档;三是每个关键点都要记录姿态,尤其是抓取点的接近方向。
再现前必须检查:伺服是否上电、模式是否切到 PLAY、程序是否选中、安全围栏是否复位。再现过程中如果出现位置偏差,优先检查工具号、用户坐标系和示教点是否被误改。
项目文件管理:控制器里的文件系统
MOTOMAN 控制器内部有一套文件系统,JOB、位置数据、系统参数、IO 配置都以文件形式存储。常见的文件类型包括:
| 文件类型 | 扩展名/标识 | 作用 |
|---|---|---|
| JOB 文件 | .JBI | 程序主体,包含指令和位置变量引用 |
| 位置数据 | POS 变量 | 示教点坐标,可单独导出 |
| 系统参数 | PARAM | 工具号、用户坐标系、速度限制 |
| IO 配置 | IO | 输入输出信号分配 |
工程创建时,建议先在控制器里建立清晰的命名规范,例如 JOB 名用“功能_序号”,位置变量按“工位_动作”命名。备份时用 U 盘导出全部 JOB 和系统参数,恢复时注意版本一致性——不同控制器型号的 INFORM 指令集可能有差异。
把上面这张图串起来看:视觉系统给出偏移量,通过通信接口进入控制器,控制器把示教点 P 与偏移量叠加,生成实际目标位置,再由 MOVJ/MOVL 驱动本体运动。示教器负责手动记录点位和启动再现,而所有 JOB、位置、参数、IO 都落在控制器的文件系统里。工程创建的本质,就是把这四类文件组织清楚,让“视觉—通信—运动—抓取”这条链路稳定跑起来。