安川机器人INFORM程序的注释规范
在工业自动化现场,程序的可读性直接决定了调试效率与维护成本。安川机器人的INFORM语言作为一种基于示教器的编程语言,其代码往往由大量的点位数据和逻辑指令组成。若缺乏规范的注释,后续维护人员将面临极大的理解障碍。制定并执行一套严格的注释规范,是实现标准化作业的第一步。
1. 基础语法规则
INFORM语言的注释通过单引号 ' 触发。解释器会忽略该符号后直至行尾的所有内容。理解这一特性是编写注释的基础。
- 使用 英文半角单引号
'作为注释的起始符号。严禁使用中文全角单引号或双引号,否则控制器会报错或将其视为代码指令。 - 区分 行注释与行尾注释。行注释指整行均为说明文字,行尾注释指在指令后添加说明。
- 确保 注释内容不超出示教器屏幕的显示宽度(通常建议不超过32个字符),避免需要左右滚动查看。
代码示例:
' 这是一个整行注释,说明后续指令的作用
MOVJ C00000 ' 这是一个行尾注释,说明C00000是初始位置
2. 程序文件头规范
每个程序文件的开头必须包含“文件头”,用于声明程序的基本信息。这相当于程序的“身份证”,能让维护人员快速了解程序的用途与版本历史。
- 保留 至少4行空白行或分隔符作为文件头区域。
- 填写 程序名称、功能描述、作者及编写日期。
- 记录 版本变更历史。当对核心逻辑进行重大修改时,必须在文件头追加修改记录。
标准文件头模板:
' ==========================================
' 程序名称: MAIN_WELD
' 功能描述: 钣金件焊接主程序
' 编写作者: 张工
' 编写日期: 2023-10-27
' 版本记录: V1.0 初始版本
' V1.1 增加焊枪防撞检测
' ==========================================
3. 动作指令注释规范
机器人程序的核心是运动。清晰的点位注释能有效防止碰撞,并明确工艺路径。
3.1 点位数据说明
对于示教点位,必须标明其物理意义,而不是仅仅记录点位编号。
- 标注 关键位置的动作意图。使用“动词+对象”的格式,例如“抓取工件”、“焊接起点”、“等待位置”。
- 标记 特殊姿态。如果点位涉及奇异点规避或强制姿态,必须备注。
- 避免 使用无意义的编号描述。例如,
C00001的注释不应是“第1点”,而应是“进入工装夹具安全点”。
点位注释对比表:
| 点位编号 | 错误注释示例 | 正确注释示例 | 说明 |
|---|---|---|---|
C00000 |
' 初始点 |
' 机器人原点位置 |
明确具体位置性质 |
C00001 |
' 移动 |
' 相机拍照上方等待点 |
描述动作目的 |
C00002 |
' 下降 |
' 工件抓取接近点 |
描述工艺意图 |
C00003 |
' 第3点 |
' 避开干涉区过渡点 |
解释为何需要此点 |
3.2 运动指令细节
在关键运动指令行尾,添加 速度或平滑度的特别说明。如果使用了特定插补方式(如MOVL用于直线焊接),备注 其工艺要求。
代码示例:
MOVJ C00000 ' 回到安全原点
MOVL C00001 V=300 ' 直线运动接近工件,控制速度防抖动
MOVC C00002 ' 圆弧过渡开始
MOVC C00003 ' 圆弧过渡结束,焊接终点
4. I/O信号与变量注释规范
输入输出(I/O)信号和变量是逻辑控制的核心,也是最容易混淆的部分。缺乏注释的信号线查找起来极其耗时。
4.1 I/O信号定义
在程序开头或信号使用处,注明 信号的物理连接设备。
- 定义 输入信号(IN)的触发源。例如:传感器、按钮、PLC信号。
- 定义 输出信号(OUT)的控制对象。例如:电磁阀、继电器、指示灯。
- 使用 “信号地址: 功能描述”的标准格式。
信号定义示例:
' --- I/O 信号定义 ---
' IN01: 光幕安全信号 (ON=安全, OFF=闯入)
' IN02: 夹具夹紧到位传感器
' OUT01: 抓手闭合电磁阀
' OUT02: 焊接电源启动信号
4.2 变量说明
对于字节型(B)、整数型(I)、实数型(D)及位置型(P)变量,必须在使用前声明 其用途。
- 建立 变量映射表(可在程序头或纸质文档中)。
- 注释 变量的单位与量程。例如计数器需注明最大值,实数变量注明单位(mm, sec, deg)。
- 标识 全局变量与局部变量的区别。若使用共享变量,需注明受其他程序影响的可能。
变量注释示例:
SET B000 0 ' 初始化焊接计数器B000 (单位: 个, 最大: 99)
ADD B000 1 ' 焊接计数加1
CMP B000 50 ' 判断是否达到保养周期 (每50次)
5. 逻辑流程与段落分隔
复杂的程序逻辑需要通过视觉上的分隔来提升可读性。利用特殊字符构建视觉区块,能够迅速定位代码段落。
5.1 段落标题
对于不同的工艺阶段(如初始化、主循环、报警处理),使用 大写字母和分隔符制作“标题栏”。
格式要求:
- 使用 单引号
'配合等号=或减号-构建分隔线。 - 独占 一行作为段落标题。
- 缩进 段落内的代码(INFORM通常不支持物理缩进,但可通过注释符号的数量模拟层级,或保持整齐划一)。
段落划分示例:
' ==========================================
' 主程序逻辑区
' ==========================================
LBL1: ' 循环开始标签
' [步骤1] 检测工件是否存在
WAIT IN01=1 ' 等待工件到位信号
' [步骤2] 抓取动作
CALL JOB:GRIPPER_CLOSE ' 调用抓手闭合子程序
' [步骤3] 搬运逻辑
MOVJ C00010 ' 移动至放置点上方
' ==========================================
' 异常处理区
' ==========================================
LBL99: ' 报警处理入口
DOUT OUT10 ON ' 点亮报警灯
5.2 逻辑判断注释
在 IF...THEN、JUMP 等跳转指令处,简述 跳转条件与目的。避免阅读者在代码行间跳转时迷失方向。
逻辑注释示例:
IF IN05=1 THEN ' 如果检测到废料标志
JUMP LBL99 ' 跳转到废料处理程序
ENDIF
IF B000>=50 THEN ' 计数器满
DOUT OUT05 ON ' 触发保养提示灯
ENDIF
6. 子程序调用规范
子程序(JOB)的调用是模块化编程的基础。在 CALL 指令处,必须说明该子程序的功能概要,而不是仅保留子程序名称。
- 描述 子程序的单一功能。
- 注明 是否有参数传递(若有)。
- 提示 可能的执行时间或交互要求。
调用注释示例:
CALL JOB:INIT_ALL ' 系统全初始化,耗时约3秒
CALL JOB:WELD_PATH_1 ' 执行1号焊缝焊接轨迹
CALL JOB:CHECK_DATA ' 校验坐标数据有效性
暂无评论,快来抢沙发吧!