1. 课程导入与INFORM编程定位
MOTOMAN 是安川电机(Yaskawa)工业机器人产品线的统称,广泛应用于弧焊、点焊、搬运、喷涂、装配等场景。要让一台 MOTOMAN 机器人按生产节拍稳定工作,仅靠示教器手动按键记录点位远远不够:当工件型号切换、焊枪姿态需要微调、节拍要求压缩、或要与 PLC、视觉、焊接电源协同动作时,必须依靠机器人语言编写程序。MOTOMAN 控制器使用的机器人语言就是 INFORM(INdustrial robot FORMat 的缩写,也常写作 INFORM II / INFORM III,随控制器代次演进)。本课程围绕 INFORM 编程工程展开,从系统组成、语言定位、工程流程到实际编程与调试,逐步建立可落地的工程能力。
一、MOTOMAN 机器人系统的组成
理解 INFORM 编程,先要看清程序运行在什么样的系统里。一套典型的 MOTOMAN 工作站可拆成四层:
- 机械本体(Manipulator):如 MH6、MA1440、GP25 等型号,由各轴伺服电机、减速机、编码器、制动器组成。编码器提供各轴角度反馈,是位置闭环的基础。
- 控制柜(Controller):如 DX200、FS100、YRC1000 等。柜内含 CPU 单元、伺服驱动单元、I/O 单元、电源单元,以及存储系统程序和用户程序的存储区。INFORM 程序就存放在这里,并由控制器解释执行。
- 示教器(Programming Pendant):带液晶屏与按键的人机接口,用于示教点位、编辑程序、查看报警、切换模式。它是编写 INFORM 程序最直接的入口。
- 外围设备:焊机、焊枪、夹具、气缸、视觉相机、安全光栅、PLC 等,通过 I/O 或现场总线与控制器交换信号。
这四层之间不是简单堆叠,而是存在明确的信号与控制关系:示教器把操作者意图送入控制器,控制器把运动指令解算为各轴位置指令发给伺服驱动,驱动机械本体运动;同时控制器通过 I/O 读取外围设备状态,并输出动作指令。INFORM 程序正是串起这条链路的“指挥脚本”。
二、INFORM 在控制器中的角色
INFORM 是一种面向工业机器人作业的解释型机器人语言。它不像 C 语言那样先编译成机器码,而是由控制器内的解释程序逐行读取、逐行执行。这一特性带来两个直接后果:一是程序修改后无需编译即可运行,便于现场调试;二是执行速度受解释开销影响,对节拍极敏感的场合需要合理组织程序结构。
INFORM 程序在控制器中通常以“JOB”(作业)为单位组织。一个 JOB 由若干命令行(也称指令行)构成,每行包含行号、指令和附加数据。常见的指令类别包括:
- 运动指令:MOVJ(关节插补)、MOVL(直线插补)、MOVC(圆弧插补)、MOVS(自由曲线)等,决定机器人如何从当前位姿到达目标位姿。
- I/O 指令:DOUT、DIN、WAIT、PULSE 等,用于读写通用 I/O 或专用 I/O,实现与焊机、夹具、PLC 的握手。
- 控制指令:JUMP、LABEL、IF、CALL、RET、TIMER、SET/RESET 等,用于分支、循环、子程序调用和逻辑控制。
- 变量与运算:位置变量(P)、字节型/整型/实数型变量(B/I/D/R)、算术与逻辑运算,用于参数化编程。
需要特别强调的是,INFORM 中的位置数据与运动指令是分离的。示教时记录的是“示教点”(如 P0001、P0002),运动指令引用这些点号。这样当工件位置整体偏移时,只需修改对应位置变量,而不必逐条改写运动指令,这是工程化编程的重要基础。
三、编程工程的整体流程
把 INFORM 编程当作“工程”而非“写几行指令”,意味着要遵循一条可复现的流程。典型流程如下:
- 需求与工艺分析:明确工件、焊缝或搬运路径、节拍要求、精度要求、安全要求,确定需要哪些外围设备参与。
- I/O 分配与信号定义:列出输入输出信号清单,例如“夹具夹紧确认”对应 IN#(1),“焊机起弧”对应 OUT#(10),并约定有效电平。
- 坐标系与工具标定:设定工具坐标系(TCP)和用户坐标系,确保示教点位与工艺基准一致。
- 示教点位:在示教器上手动移动机器人到关键位置,记录为位置变量,并检查姿态是否可达、是否接近奇异点。
- 编写 JOB:按工艺顺序组合运动指令、I/O 指令和控制指令,必要时拆分为主程序与子程序。
- 试运行与调试:先用低速、单步方式验证动作顺序和信号时序,再逐步提高速度。
- 节拍与稳定性验证:连续运行若干循环,观察节拍、报警、位置偏差,确认满足生产要求后归档程序。
四、学习路径与本节定位
本课程后续将按“系统认知 → 语言基础 → 运动编程 → 信号与逻辑 → 工程案例 → 调试与优化”的顺序推进。本节作为导入,重点不是记住所有指令,而是建立三张“地图”:
- 系统地图:知道程序运行在控制柜里,通过伺服驱动控制本体,通过 I/O 连接外围设备。
- 语言地图:知道 INFORM 是解释型语言,程序以 JOB 为单位,指令分为运动、I/O、控制、变量四类。
- 工程地图:知道从需求分析到归档的完整流程,理解每一步的输入与输出。
有了这三张地图,后续学习具体指令时就能明确“它属于哪一类、在流程的哪一步使用、会影响系统中的哪个对象”。例如看到 MOVL 指令,就能联想到它属于运动指令,作用于机械本体,需要在工具坐标系标定之后使用;看到 WAIT IN#(1)=ON,就能联想到它属于 I/O 指令,用于等待夹具夹紧确认,属于流程中的信号交互环节。这种“指令—系统—流程”的对应关系,是 INFORM 编程工程能力的核心。
下面用一个最小的示例说明 INFORM 程序的基本形态(示例参数为教学假设,非实测结果):
0000 NOP
0001 MOVJ P0001 VJ=50.00 ' 关节插补到待机点
0002 MOVL P0002 V=200.0 ' 直线插补到接近点
0003 WAIT IN#(1)=ON ' 等待夹具夹紧确认
0004 DOUT OT#(10) ON ' 输出起弧信号
0005 MOVL P0003 V=80.0 ' 低速直线焊接段
0006 DOUT OT#(10) OFF ' 关闭起弧信号
0007 MOVJ P0001 VJ=50.00 ' 返回待机点
0008 END