文章目录

安川机器人INFORM程序的注释规范

发布于 2026-03-25 07:32:39 · 浏览 9 次 · 评论 0 条

安川机器人INFORM程序的注释规范

在工业自动化现场,程序的可读性直接决定了调试效率与维护成本。安川机器人的INFORM语言作为一种基于示教器的编程语言,其代码往往由大量的点位数据和逻辑指令组成。若缺乏规范的注释,后续维护人员将面临极大的理解障碍。制定并执行一套严格的注释规范,是实现标准化作业的第一步。


1. 基础语法规则

INFORM语言的注释通过单引号 ' 触发。解释器会忽略该符号后直至行尾的所有内容。理解这一特性是编写注释的基础。

  1. 使用 英文半角单引号 ' 作为注释的起始符号。严禁使用中文全角单引号或双引号,否则控制器会报错或将其视为代码指令。
  2. 区分 行注释与行尾注释。行注释指整行均为说明文字,行尾注释指在指令后添加说明。
  3. 确保 注释内容不超出示教器屏幕的显示宽度(通常建议不超过32个字符),避免需要左右滚动查看。

代码示例:

' 这是一个整行注释,说明后续指令的作用
MOVJ C00000 ' 这是一个行尾注释,说明C00000是初始位置

2. 程序文件头规范

每个程序文件的开头必须包含“文件头”,用于声明程序的基本信息。这相当于程序的“身份证”,能让维护人员快速了解程序的用途与版本历史。

  1. 保留 至少4行空白行或分隔符作为文件头区域。
  2. 填写 程序名称、功能描述、作者及编写日期。
  3. 记录 版本变更历史。当对核心逻辑进行重大修改时,必须在文件头追加修改记录。

标准文件头模板:

' ==========================================
' 程序名称: MAIN_WELD
' 功能描述: 钣金件焊接主程序
' 编写作者: 张工
' 编写日期: 2023-10-27
' 版本记录: V1.0 初始版本
'           V1.1 增加焊枪防撞检测
' ==========================================

3. 动作指令注释规范

机器人程序的核心是运动。清晰的点位注释能有效防止碰撞,并明确工艺路径。

3.1 点位数据说明

对于示教点位,必须标明其物理意义,而不是仅仅记录点位编号。

  1. 标注 关键位置的动作意图。使用“动词+对象”的格式,例如“抓取工件”、“焊接起点”、“等待位置”。
  2. 标记 特殊姿态。如果点位涉及奇异点规避或强制姿态,必须备注。
  3. 避免 使用无意义的编号描述。例如,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信号定义

在程序开头或信号使用处,注明 信号的物理连接设备。

  1. 定义 输入信号(IN)的触发源。例如:传感器、按钮、PLC信号。
  2. 定义 输出信号(OUT)的控制对象。例如:电磁阀、继电器、指示灯。
  3. 使用 “信号地址: 功能描述”的标准格式。

信号定义示例:

' --- I/O 信号定义 ---
' IN01: 光幕安全信号 (ON=安全, OFF=闯入)
' IN02: 夹具夹紧到位传感器
' OUT01: 抓手闭合电磁阀
' OUT02: 焊接电源启动信号

4.2 变量说明

对于字节型(B)、整数型(I)、实数型(D)及位置型(P)变量,必须在使用前声明 其用途。

  1. 建立 变量映射表(可在程序头或纸质文档中)。
  2. 注释 变量的单位与量程。例如计数器需注明最大值,实数变量注明单位(mm, sec, deg)。
  3. 标识 全局变量与局部变量的区别。若使用共享变量,需注明受其他程序影响的可能。

变量注释示例:

SET B000 0 ' 初始化焊接计数器B000 (单位: 个, 最大: 99)
ADD B000 1 ' 焊接计数加1
CMP B000 50 ' 判断是否达到保养周期 (每50次)

5. 逻辑流程与段落分隔

复杂的程序逻辑需要通过视觉上的分隔来提升可读性。利用特殊字符构建视觉区块,能够迅速定位代码段落。

5.1 段落标题

对于不同的工艺阶段(如初始化、主循环、报警处理),使用 大写字母和分隔符制作“标题栏”。

格式要求:

  1. 使用 单引号 ' 配合等号 = 或减号 - 构建分隔线。
  2. 独占 一行作为段落标题。
  3. 缩进 段落内的代码(INFORM通常不支持物理缩进,但可通过注释符号的数量模拟层级,或保持整齐划一)。

段落划分示例:

' ==========================================
'           主程序逻辑区
' ==========================================

LBL1: ' 循环开始标签

' [步骤1] 检测工件是否存在
WAIT IN01=1 ' 等待工件到位信号

' [步骤2] 抓取动作
CALL JOB:GRIPPER_CLOSE ' 调用抓手闭合子程序

' [步骤3] 搬运逻辑
MOVJ C00010 ' 移动至放置点上方

' ==========================================
'           异常处理区
' ==========================================
LBL99: ' 报警处理入口
DOUT OUT10 ON ' 点亮报警灯

5.2 逻辑判断注释

IF...THENJUMP 等跳转指令处,简述 跳转条件与目的。避免阅读者在代码行间跳转时迷失方向。

逻辑注释示例:

IF IN05=1 THEN ' 如果检测到废料标志
  JUMP LBL99 ' 跳转到废料处理程序
ENDIF

IF B000>=50 THEN ' 计数器满
  DOUT OUT05 ON ' 触发保养提示灯
ENDIF

6. 子程序调用规范

子程序(JOB)的调用是模块化编程的基础。在 CALL 指令处,必须说明该子程序的功能概要,而不是仅保留子程序名称。

  1. 描述 子程序的单一功能。
  2. 注明 是否有参数传递(若有)。
  3. 提示 可能的执行时间或交互要求。

调用注释示例:

CALL JOB:INIT_ALL ' 系统全初始化,耗时约3秒
CALL JOB:WELD_PATH_1 ' 执行1号焊缝焊接轨迹
CALL JOB:CHECK_DATA ' 校验坐标数据有效性

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文