数控宏程序的编程基础,快速入门秘笈
一、FANUC—0M宏程序的H代码
宏程序标准格:G65 Hm P#i Q#j R#k
H代码 |
意 义 |
H代码 |
意 义 |
H01 |
#i=#j |
条件转移格式 |
G65 H8× P程序段号码n Q#j R#k |
H02 |
#i=#j+#k |
H80 |
无条件转移 GoTo n |
H03 |
#i=#j-#k |
H81 |
#i=#j GoTo n |
H04 |
#i=#j×#k |
H82 |
#i≠#j GoTo n |
H05 |
#i=#j÷#k |
H83 |
#i>#j GoTo n |
H21 |
#i=#j^1/2 |
H84 |
#i<#j GoTo n |
H22 |
#i=‖j‖ |
H85 |
#i≥#j GoTo n |
H23 |
求余(丢弃小于1的分数) |
H86 |
#i≤#j GoTo n |
H26 |
#i=(#i×#j)/#k |
||
H27 |
#i=(#j^2+#k^2)^1/2 |
||
H28 |
#i=(#j^2-#k^2)^1/2 |
||
H31 |
#i=#j×SIN #k |
||
H32 |
#i=#j×COS #k |
||
H33 |
#i=#j×TAN #k |
||
H34 |
#i=#j×ATAN #k |
二、FANUC—18M宏程序的格式
1.变量的类型:
#0 |
Always null(总是零) |
#1-#33 |
Local variables(局部变量) |
#100-#149(#199);#500-#531(#999) |
Common variables(公用变量) |
#1000- |
System variables(系统变量) |
NOTE(注意):common variables #150 to #199 and #532 to #999 are optional。 (从#150到 #199 和#532到#999是可选的) |
2.非模态调用宏程序:
程序的标准格式:G65 P(宏程序号) L(重复次数) <指定引数值>
注:每次调用都要重新写G65的标准格式,用后自动取消。
3.模态调用宏程序:
程序的标准格式:G66 P(宏程序号) L(重复次数) <指定引数值>
注:不用指定G66直接输入引数值。
4. 关于G65、G66中的引数赋值
⑴.引数赋值Ⅰ的地址和变量号码的对应关系:
A |
#1 |
D |
#7 |
H |
#11 |
K |
#6 |
R |
#18 |
U |
#21 |
X |
#24 |
B |
#2 |
E |
#8 |
I |
#4 |
M |
#13 |
S |
#19 |
V |
#22 |
Y |
#25 |
C |
#3 |
F |
#9 |
J |
#5 |
Q |
#17 |
T |
#20 |
W |
#23 |
Z |
#26 |
⑵.引数赋值Ⅱ的地址和变量号码的对应关系:
A |
#1 |
I2 |
#7 |
I4 |
#13 |
I6 |
#19 |
I8 |
#25 |
I10 |
#31 |
B |
#2 |
J2 |
#8 |
J4 |
#14 |
J6 |
#20 |
J8 |
#26 |
J10 |
#32 |
C |
#3 |
K2 |
#9 |
K4 |
#15 |
K6 |
#21 |
K8 |
#27 |
K10 |
#33 |
I1 |
#4 |
I3 |
#10 |
I5 |
#16 |
I7 |
#22 |
I9 |
#28 |
引数赋值Ⅰ、Ⅱ可以连用, 以后的为准 |
|
J1 |
#5 |
J3 |
#11 |
J5 |
#17 |
J7 |
#23 |
J9 |
#29 |
||
K1 |
#6 |
K3 |
#12 |
K5 |
#18 |
K7 |
#24 |
K9 |
#30 |
5. 关于G65、G66中的算术和逻辑运算:
数 学 意 义 |
标准格式 |
数 学 意 义 |
标准格式 |
定 义 |
#I=#j |
平 方 根 |
#I=SQRT[#J] |
加 法 |
#I=#J+#K |
绝 对 值 |
#I=ABS[#J] |
减 法 |
#I=#J-#K |
舍 入 |
#I=ROUND[#J] |
乘 法 |
#I=#J*#K |
上 取 整 |
#I=FIX[#J] |
除 法 |
#I=#J/#K |
下 取 整 |
#I=FUP[#J] |
正 弦 |
#I=SIN[#J] |
自然对数 |
#I=LN[#J] |
反正弦 |
#I=ASIN[#J] |
指数函数 |
#I=EXP[#J] |
余 弦 |
#I=COS[#J] |
或 |
#I=#J OR #K |
反余弦 |
#I=ACOS[#J] |
异或 |
#I=#J XOR #K |
正 切 |
#I=TAN[#J] |
与 |
#I=#J AND #K |
反正切 |
#I=ATAN[#J] |
||
从BCD转为 BIN |
#I=BIN[#J] 用于与PMC信号交换 |
从BIN转为BCD |
#I=BCD[#J] 用于与PMC信号交换 |
Remaindering (余数) |
#I=#J MODE #K |
the Remainder is determined指定的 after以后 the specified精确确定的values值 are是rounded四舍五入的 to integers整数。 |
6. G67宏程序的模态调用宏程序取消。
7.宏程序可以用 G×× <指定引数值> 的格式调用:
说明:①程序号用O9010~O9019;
②将程序号对应的参数设置为G代码的数值;
③调用的形式为:G(参数设定值) <指定引数值>。
宏程序主体号码与对应的参数号:
O9010 |
7550 |
O9012 |
7552 |
O9014 |
7554 |
O9016 |
7556 |
O9018 |
7558 |
O9011 |
7551 |
O9013 |
7553 |
O9015 |
7555 |
O9017 |
7557 |
O9019 |
7559 |
8.条件转移指令:
意 义 |
标准格式 |
条 件 表 达 式 |
|
⑴无条件转移指令 |
GOTO n(程序号) |
||
⑵有条件转移指令 |
IF【<条件表达式>】GOTO n 意思:满足条件返回程序号为n的单节加工, 不满足条件加工后面的程序。 |
标准格式 |
数学意义 |
#i EQ #j |
#i=#j GoTo n |
||
#i NE #j |
#i≠#j GoTo n |
||
⑶无条件循环 |
DO m……END m |
#i GT #j |
#i>#j GoTo n |
⑷条件循环 |
WHILE【<条件表达式>】DO m……END m(m=1.2.3…..) 意思:满足条件调用WHILE与END之间的程序 m次,WHILE与END后面的m数必须相同。 |
#i LT #j |
#i<#j GoTo n |
#i GE #j |
#i≥#j GoTo n |
||
#i LE #j |
#i≤#j GoTo n |
三、西门子(SIEMENS)宏程序的格式
1.计算参数R:
R0—R99 ——可以自由使用;
R100R249 ——加工循环传递参数;
R250—R299——用于加工循环传递的内部计算参数。
计算:遵循通常的数学运算规则,括号内的优先,乘除优先与加减。
如:R15=SQRT(R1*R1+R2*R2);意义:R15=(R1^2+R2^2)^1/2;
N10 Z=R3 表示为Z赋值;其余同18M。
2.条件跳跃:
⑴.标准格式:IF条件GoToF Label 向前跳跃
IF条件GoToB Label 向后跳跃
其中:标记符(Label):由2-8个字母或数字组成开始的两个字符必须是字母或下划线。
跳跃目标标记符的后面必须是冒号。
⑵.比较运算:
运算符 |
意义 |
= = |
等于 |
< > |
不等于 |
> |
大于 |
< |
小于 |
> = |
大于或等于 |
< = |
小于或等于 |
3.算术:
数学意义 |
标准格式 |
数学意义 |
标准格式 |
定 义 |
R1=R2 |
正切 |
R1=TAN(R2) |
加法 |
R1=R2+R3 |
反正切 |
R1=ATANZ(R2) |
减法 |
R1=R2-R3 |
平方根 |
R1=SQRT(R2) |
乘法 |
R1=R2*R3 |
平方 |
R1=POT(R2) |
除法 |
R1=R2/R3 |
舍去小数位 |
R1=TRUNC(R2) |
正弦 |
R1=SIN(R2) |
舍入 |
R1=ROUND(R2) |
反正弦 |
R1=ASIN(R2) |
绝对值 |
R1=ABS(R2) |
余弦 |
R1=COS(R2) |
自然对数 |
R1=LN(R2) |
反余弦 |
#I=ASCOS(R2) |
指数函数 |
R1=EXP(R2) |
四、西门子(SIEMENS)编程语言的格式
编程语言 |
名称 |
格式 |
含义 |
G110(相对)、 G111(绝对)、 G112 |
带极坐标 的移动命令 |
G110,G111,G112,X_Y_Z_ |
指定极点 |
G0 AP=_RP=_(模态) |
AP极角RP极半径 |
||
AC/IC |
绝对/增量 |
AP=IC(70) |
|
CIP |
CIP X_ Y _ Z_ |
圆终点及中点 |
|
I1=IC(10)J1=IC(10)K1(10) |
三轴坐标 |
子程序和程序段重复 |
||
子程序调用 |
L100 |
子程序调用“L100.SPF”;还可用程序名调用子程序 |
M17 |
子程序结束 |
|
FRAME P3 |
表示子程序FRAME必须连续执行3次 |
|
程序段重复 |
LABEL: |
跳跃目的;冒号后为目的名 |
REPEAT |
重复(两标号之间) |
|
REPEATB |
重复单个程序段 |
【亲点好看】小编工资涨五毛
↙↙↙别操机了,快来学UG软件吧