FANUC机器人程序结构

发布日期:2012-06-11    兰生客服中心    浏览:3490

一、运动指令
  
运动指令已经在编程一章中讲过,在这里我们重点讨论弧焊指令,寄存器指令,I/O指令,分支指令,等待指令,偏置指令,程序控制指令和其他常用的指令。这些指令都是通过程序编辑画面中的[INST]进入的(见图1)

  注意:不同的软件,[INST]里的内容不尽相同,图1只是一个例子,在实际应用中要根据具体的软件选择指令,所以我们要记住表示各个功能语句的单词。

二、焊接指令
1、焊接开始指令

2、焊接结束指令

3、摆焊开始指令

三、寄存器指令
寄存器支持“+”,“-”,“*”,“/”四则运算和多项式,例如:

R[12]=R[2]*100/R[6]

1、寄存器指令

2、位置寄存器指令

  位置寄存器是记录有位置信息的寄存器,可以进行加减运算,用法和寄存器类似。
■ PR[i]
■ PR[i,j]

i : 位置寄存器号

   j : 1=X  2=Y  3=Z  4=W  5=P  6=R(直角坐标)

    1=J1  2=J2  3=J3  4=J4  5=J5  6=J6(关节坐标)

四、I/O指令
I/O指令用来改变信号输出状态和接受输入信号。

1、数字I/O(DI/DO)指令

■ R[i]=D[i]

■  DO[i]=(Value) 

Value=ON 发出信号

     Value=OFF 关闭信号

■  DO[i]= Pulse ,(Width)

     Width=脉冲宽度 (0.1 to 25.5秒)

机器人I/O (RI/RO) 指令,模拟I/O(AI/AO)指令,组I/O (GI/GO) 指令的用法和数字I/O指令类似。

五、分支指令
1、Label指令

用来定义程序分支的标签

■ LBL[i : Comment]

i : 1 to 32767

Comment : 注释(最多16个字符)

2、未定义条件的分支指令

1)跳转指令 JMP[i]

■ JMP LBL[i]    i : 1 to 32767

2)Call指令

■ Call (Program)    Program : 程序名

3、定义条件的分支指令

1)寄存器条件指令 IF (variable)(operator)(value)(Processing)

Variable

Operator

Value

Processing

变量

运算符

行为

R[i]

>  

Constant 常数

JMP LBL[i]

>= 大于等于

R[i]

Call (Program)

=  

<= 小于等于

<

<> 不等于

2)I/O条件指令 IF (variable)(operator)(value)(Processing)

Variable

Operator

Value

Processing

变量

运算符

行为

AO[i]

>  

Constant 常数

JMP LBL[i]

AI[i]

>= 大于等于

R[i]

Call (Program)

GO[i]

=  

GI[i]

<= 小于等于

<

<> 不等于

Variable

Operator

Value

Processing

变量

运算符

行为

DO[i]

=  

ON

JMP LBL[i]

DI[i]

<> 不等于

OFF

Call (Program)

UO[i]

R[i] :0=OFF 1=ON

UI[i]

可以通过逻辑运算符”or”和 “and”将多个条件组合在一起,但是”or”和 “and”不能在同一行使用。例如:

IF 〈条件1〉and(条件2)and(条件3)是正确的

IF 〈条件1〉and(条件2)or(条件3)是错误的

4、条件选择分支指令

■ SELECT R[i]=(Value) (Pressing)

=(Value) (Pressing)

=(Value) (Pressing)

ELSE (Pressing)

六、等待指令
1、定义时间的等待语句

■ WAIT(value)

value=Constant (0 to 327.67秒)

     value=R[i]

2、条件等待语句

1)寄存器条件等待语句 WAIT(variable)(operator)(value)(Processing)

Variable

Operator

Value

Processing

变量

运算符

行为

R[i]

>  

Constant 常数

若忽略则等待无限长时间

$系统变量

>=  

R[i]

TIMEOUT LBL[i]

=  

<= 

<

<>  

2)I/O条件等待语句 WAIT(variable)(operator)(value)(Processing)

Variable

Operator

Value

Processing

变量

运算符

行为

AO[i]

>  

Constant 常数

若忽略则等待无限长时间

AI[i]

>=  

R[i]

TIMEOUT LBL[i]

GO[i]

=  

GI[i]

<=  

<

<> 

DO[i]

= 

ON

若忽略则等待无限长时间

DI[i]

<>  

OFF

TIMEOUT LBL[i]

UO[i]

R[i] :0=OFF 1=ON

UI[i]

可以通过逻辑运算符”or”和 “and”将多个条件组合在一起,但是”or”和 “and”不能在同一行使用。

七、条件指令

■ OFFSET CONDITION PR[i]

通过此指令可以将原有的点偏置,偏置两由位置寄存器决定。偏置条件指令一直有效到程序运行结束或者下一个偏置条件指令被执行(注,偏置条件指令只对包含有附加运动指令OFFSET的运动语句有效,例如:

1. OFFSET CONDITION PR[1]

2. J P[1] 100% FINE (偏置无效)

3. L P[2] 500mm/sec FINE offset (偏置有效)

八、程序控制指令

■ Pause

通过此指令可以暂停程序运行,帮助我们进行程序的调试工作,当需要程序循环运行时,要将此指令删除。该指令在Program control中,见图2

九、其他指令
在编程过程中,用户报警指令,时钟指令,运行速度指令,注释指令,消息指令也经常用到。以上指令都在Miscellaneous中,见图3

1、用户报警指令

■ UALM[i]    i : 用户报警号

当程序中运行该指令时,机器人会报警并显示报警消息。要使用该指令,首先设置用户报警。依次按键选择MENU→SETUP→F1(TYPE)→User alarm即可进入用户报警设置画面。

2、时钟指令

■ TIMER[i] (Processing) i : 时钟号 

依次按键选择MENU→STATUE→F1(TYPE)→Prg Timer即可进入程序时钟显示画面。

3、运行速度指令

■ OVERRIDE=(value)%  value=1 to 100

4、注释指令

■ ! (Remark)  Remark : 注释内容,最多可以有32字符 

5、消息指令

■ Message[message] message : 消息内容,最多可以有24字符

当程序中运行该指令时,屏幕中将会弹出含有message的画面.