搞懂宏程序的编程基础快速入门!

搞懂宏程序的编程基础快速入门!
搞懂宏程序的编程基础快速入门!

1. 什么场合会用到宏程序编程?

其实说起来宏就是用公式来加工零件,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加一个量,那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用。

手工编程加工公式曲线(计算简单,输入快捷)

有规律的切削路径(作为一个切削模块)

程序间的控制(程序的调度)

刀具的管理(刀具的磨损)

自动测量(机内测头)

2. 什么叫宏程序?

在编程时,我们会把能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来调用它们,使用时只需给出这个总指令就能执行其功能所存入的这一系列指令称作用户宏程序本体,简称宏程序。

这个总指令称作用户宏程序调用指令。在编程时,编程员只要记住宏指令而不必记住宏程序。

3. 用户宏程序与普通程序的区别

1)在用户宏程序本体中,能使用变量,可以给变量赋值,变量间可以运算,程序可以跳转。

2)普通程序中,只能指定常量,常量之间不能运算,程序只能顺序执行,不能跳转,因此功能是固定的,不能变化。

3)用户宏功能是用户提高数控机床性能的一种特殊功能,在相类似工件的加工中巧用宏程序将起到事半功倍的效果。

4. 变量的三种类型

数控系统变量表示形式为“#”后跟1~4位数字,变量种类有三种:

(1)局部变量:#1~#33是在宏程序中局部使用的变量,它用于自变量转移。(2)公用变量:用户可以自由使用,它对于由主程序调用的各子程序及各宏程序来说是可以公用的。#100~#149在关掉电源后,变量值全部被清除,而

#500~#509在关掉电源后,变量值则可以保存。

(3)系统变量:由后跟4位数字来定义,它能获取包含在机床处理器或NC内存中的只读或读/写信息,包括与机床处理器有关的交换参数、机床状态获取参数、加工参数等系统信息。

5. 宏程序的特点

宏程序可使用变量,可用变量执行相应操作;实际变量值可由宏程序指令赋给变量。

一、FANUC—0M宏程序的H代码

宏程序标准格:G65 Hm P#i Q#j R#k

H代码意义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÷#kH83#i>#j GoTo nH21#i=#j^1/2H84#i<#j GoTo nH22#i=‖j‖H85#i≥#j GoTo nH23求余(丢弃小于1的分数)H86#i≤#j GoTo nH26#i=(#i×#j)/#kH27#i=(#j^2+

#k^2)^1/2H28#i=(#j^2-#k^2)^1/2H31#i=#j×SIN #kH32#i=#j×COS #kH33#i=#j×TAN #kH34#i=#j×ATAN #k#0Always null(总是

零)#1-#33Local 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#1D#7H#11K#6R#18U#21X#24B#2E#8I#4M#13S#19V#22Y#25C#3 F#9J#5Q#17T#20W#23Z#26⑵.引数赋值Ⅱ的地址和变量号码的对应关系:A#1I2#7I4#13I6#19I8#25I10#31B#2J2#8J4#14J6#20J8#26J10#32C#3 K2#9K4#15K6#21K8#27K10#33I1#4I3#10I5#16I7#22I9#28引数赋值Ⅰ、Ⅱ可以连用,以后的为准

J1#5J3#11J5#17J7#23J9#29K1#6K3#12K5#18K7#24K9#305. 关于

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 #Kthe Remainder is determined指定的after以后the specified精确确定的values值are是rounded四舍五入的to integers整数。6. G67宏程序的模态调用宏程序取消。

7.宏程序可以用G××<指定引数值> 的格式调用:

说明:

①程序号用O9010~O9019;

②将程序号对应的参数设置为G代码的数值;

③调用的形式为:G(参数设定值)<指定引数值>。

宏程序主体号码与对应的参数号:

O90107550O90127552O90147554O90167556O90187558O90117551O9 0137553O90157555O90177557O901975598.条件转移指令:

意义标准格式条件表达式

⑴无条件转移指令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 nR0—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)

编程语言名称格式含义

G110(相对)、G111(绝对)、G112带极坐标的移动命令G110,G111,G112,X_Y_Z_指定极点G0 AP=_RP=_(模态)AP极角RP极半径AC/IC绝对/增量AP=IC (70)CIPCIP X_ Y _ Z_圆终点及中点I1=IC(10)J1=IC(10)K1(10)三轴坐标子程序和程序段重复子程序调用L100子程序调用“L100.SPF”;还可用程序名调用子程序M17子程序结束FRAME P3表示子程序FRAME必须连续执行3次程序

段重复LABEL:跳跃目的;冒号后为目的名REPEAT重复(两标号之间)REPEATB 重复单个程序段

相关主题
相关文档
最新文档