SHANGHAI-FANUC
图3
程序结构
一.运动指令
运动指令已经在编程一章中讲过,在这里我们重点讨论弧焊指令,寄存器指令,
I/O指令,分支指令,等待指令,偏置指令,程序控制指令和其他常用的指令。这些指令都是通过程序编辑画面中的[INST]进入的(见图1)
Instruction JOINT 10% Instruction JOINT 10% 1 Registers 5 JMP/LBL 1 Miscellaneous 5 Track offset
2 I/O 6 CALL 2 Weave 6 offset frame
3 IF/SELECT 7 Arc 3 Skip 7 program control
4 WAIT 8 ---nest page--- 4 Payload 8 ---nest page---
SAMPLE1 SAMPLE1 1/7 1/7
1 R[1]=0 1 R[1]=0
2 LBL[1] 2 LBL[1]
3 L P[1] 1000mm/sec CNT30 3 L P[1] 1000mm/sec CNT30
4 L P[2] 500cm/min FINE 4 L P[2] 500cm/min FINE
5 R[1]=R[1]+1 5 R[1]=R[1]+1
注意:不同的软件,[INST]里的内容不尽相同,图1只是一个例子,在实际应用中要根据具体的软件选择指令,所以我们要记住表示各个功能语句的单词。 二.焊接指令 1.焊接开始指令 ■ Arc Start [i] :
设置焊接条件号
i:焊接条件号(1到32)按MENU→ ---next page--- →Data→ Weld Sched可以进入设置焊接条件画面
DATA Weld Sched JOINT 30% 1/32 (Volts) (Amps) (sec) COMMMENT 1 16.0 140.0 0.00 2 16.0 145.0 0.00 3 15.0 140.0 0.00 ■ Arc Start[ V,A ] 设置焊接开始条件
V : 电压
A : 电流
2.焊接结束指令 ■ Arc End [i] : 设置焊接条件号
进入方法同上
28
SHANGHAI-FANUC
■ Arc Endt[ V,A ,s ]
3.摆焊开始指令 ■ Weave [i]
设置焊接结束条件 V : 电压
A : 电流 s : 维持时间(0到9.9秒)
设置焊接件号
i:焊接条件号(1到16)按MENU→ ---next page--- →Data→ Weave Sched可以进入设置焊接条件画面
DATA Weave Sched JOINT 30% 1/32 FREQ(Hz) AMP(mm) R_DW(sec) L_DW(sec) 1 1.0 4.0 0.100 0.100 2 1.0 4.0 0.100 0.100 3 1.0 4.0 0.100 0.100 ■ Weave Sine(Hz,mm,sec,sec)
正弦波摆焊 ■ Weave Circle(Hz,mm,sec,sec) 圆形摆焊 ■ Weave Figure 8(Hz,mm,sec,sec) 8字型摆焊
Hz : 摆焊频率(0.0 to 99.9) mm : 摆焊幅宽(0 .0 to 25.0) Sec : 摆焊左停留时间(0 to 1.0) Sec : 摆焊右停留时间(0 to 1.0)
4.摆焊结束指令 ■ Weave End
三.寄存器指令
寄存器支持“+”,“-”,“*”,“/”四则运算和多项式,例如: R[12]=R[2]*100/R[6]
1.寄存器指令
R[i]= Constant 常数 R[i] 寄存器的值 RDI[i] 信号的状态 Timer[i] 程序记时器的值
+ 加 - 减 运算符
* 乘
/ 除
MOD 两值相除后的余数 DIV 两值相除后的整数
2.位置寄存器指令
位置寄存器是记录有位置信息的寄存器,可以进行加减运算,用法和寄存器类似。 ■ PR[i] ■ PR[i,j]
29
SHANGHAI-FANUC
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 常数 R[i]
行为
JMP LBL[i] Call (Program)
2)I/O条件指令 IF (variable)(operator)(value)(Processing) Variable Operator Value Processing
变量 AO[i]
运算符 >
值
Constant 常数
30
行为
JMP LBL[i]
SHANGHAI-FANUC
AI[i] GO[i] GI[i]
>= 大于等于 =
<= 小于等于 <
<> 不等于
R[i]
Call (Program)
变量 运算符 值 行为 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) Variable
Operator
Value
Processing
六.等待指令
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] AI[i] GO[i]
运算符 > >= =
值
Constant 常数 R[i]
31
行为
若忽略则等待无限长时间 TIMEOUT LBL[i]