文章:数控宏程序的编程基础,快速入门秘笈

所有者:TerryWang(呢称); 发布时间:2021-04-18 02:29:53; 更新时间:2021-04-18 03:06:03

阅读所需积分:0; 

简介:一、FANUC—0M宏程序的H代码宏程序标准格:G65 Hm P#i Q#j R#kH代码意 义H代码意 义H01#i=#j条件转移格式G65 H8× P程序段号码n Q#j R#kH02#i=#j+#kH80无条件转移 GoTo nH03#i=#j-#kH81#i=#j GoTo nH04#i=#j×#kH82#i≠#j GoTo nH05#i=#j÷#k

一、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. 关于G65G66中的引数赋值

⑴.引数赋值Ⅰ的地址和变量号码的对应关系:

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. 关于G65G66中的算术和逻辑运算:


数 学 意 义

标准格式

数 学 意 义

标准格式

定 义

#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 arerounded四舍五入的 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次,WHILEEND后面的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=R2R3

反正切

R1=ATANZ(R2)

减法

R1=R2R3

平方根

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

重复单个程序段



数控e家

https://mp.weixin.qq.com/s/O9-Y2tl_m_s7rFrGWflCxw