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 指令集可能有差异。

视觉抓取工程中,视觉系统通常通过以太网或 IO 与控制器通信。视觉结果一般以位置偏移量或直接坐标的形式传给机器人,机器人再叠加到示教点上。这个“示教点 + 视觉偏移”的模式是 MOTOMAN 视觉抓取最常用的实现方式。
MOTOMAN 视觉抓取工程:INFORM 程序结构与数据流 视觉系统 相机拍照 / 识别 输出坐标偏移量 通信接口 以太网 / IO 视觉结果传入 MOTOMAN 控制器 INFORM JOB 执行 示教点 P + 视觉偏移 → 目标位置 MOVJ / MOVL 运动指令 机器人本体 关节运动 / 直线运动 夹爪抓取 / 放置 示教器 手动示教 / 记录点位 再现启动 / 状态监控 示教数据 / 再现指令 控制器文件系统(项目文件管理) JOB 文件 (.JBI) 主程序 / 子程序 指令与标签 位置数据 (POS) 示教点坐标 P 变量存储 系统参数 工具号 / 用户坐标系 速度限制 IO 配置 输入输出信号 夹爪 / 传感器 读写 示教→再现循环

把上面这张图串起来看:视觉系统给出偏移量,通过通信接口进入控制器,控制器把示教点 P 与偏移量叠加,生成实际目标位置,再由 MOVJ/MOVL 驱动本体运动。示教器负责手动记录点位和启动再现,而所有 JOB、位置、参数、IO 都落在控制器的文件系统里。工程创建的本质,就是把这四类文件组织清楚,让“视觉—通信—运动—抓取”这条链路稳定跑起来。

常见问题:视觉偏移量坐标系与机器人用户坐标系不一致,会导致抓取位置整体偏转。排查时先确认视觉输出的偏移是在相机坐标系还是机器人基坐标系下,必要时在 INFORM 里做一次坐标变换再叠加到示教点。