宏程序符号代码大全(宏程序代码表)

http://www.itjxue.com  2023-03-03 08:57  来源:未知  点击次数: 

法兰克数控系统车宏程序有那些英文代码?例如:GT,EN,IF等,分别是什么意思?

在法兰克数控系统宏程序中涉及英文代码的有运算指令、控制指令等。

表示运算指令的有:GT表示大于,GE表示小于或等于,EQ表示等于,NE表示不等于,......;

表示控制指令的有:IF表示的是条件转移语句1,? GOTO表示的是无条件转移语句,WHILE表示的是循环语句 ,IF.....THEN表示的是条件转移语句2.....。

扩展资料:

数控宏程序编程,是用变量的方式进行数控编程的方法。

数控宏程序分为A类和B类宏程序,其中A类宏程序比较老,编写起来也比较费时费力,B类宏程序类似于C语言的编程,编写起来也很方便。不论是A类还B类宏程序,它们运行的效果都是一样的。

参考资料:百度百科-数控宏程序

数控宏程序

现行的数控程序的编制中,主要有两种编程方式:手工编程和自动编程。虽然自动编程运用得越来越广泛,但手工编程在某些领域也是不可或缺的一种编程手段。手工编程至少在此以下几方面有着自己的优势:其一,熟练的程序员编制的手工程序加工效率高于自动编程;其二,熟悉手工编程,对自动程序的修改是不无裨益的;其三,自动编程的所敲定的走刀路线限制了其加工工艺,通过手工编程能够得到弥补。

在手工编程过程中,用户宏程序的编制,能极大提高程序编制的效率,因此,我们在数控教学及训练过程中,必须把用户宏程序的编制作为我们数控教学的重要内容之一。从历年全国数控大赛的试题中也不难发现,用户宏程序的编制是运用得极其频繁的。但是,我们很难在目前的教材中找到完整的宏程序的编写的方法及思路。为此,笔者提出了一整套设计用户宏程序的方法,通过利用流程图来设计用户宏程序,提高了编程的效率。

二、用户宏程序简介

用户宏程序有A、B两种,A类宏程序用G65指令编写,其格式如下:

G65 Hm P#i Q#j R#k

其中,m—01~99表示运算命令或转移命令功能;

#i—存入运算结果的变量名;

#j—进行运算的变量名1,可以是常数,常数直接表示,不带#;

#k—进行运算的变量名2,也可以是常数。

意义, #i=#j○#k,表示运算符号,常用意义如表1

表1

G代码

H代码

功能

定义

G65

H01

赋值

#i=#j

G65

H02

加法

#i=#j+#k

G65

H03

减法

#i=#j-#k

G65

H04

乘法

#i=#j×#k

G65

H05

除法

#i=#j÷#k

G65

H80

无条件转移

转向N

G65

H81

条件转移1

IF #j=#k,GOTO N

G65

H82

条件转移2

IF #j≠#k,GOTO N

G65

H83

条件转移3

IF #j>#k,GOTO N

G65

H84

条件转移4

IF #j<#k,GOTO N

G65

H85

条件转移5

IF #j≥#k,GOTO N

G65

H86

条件转移6

IF #j≤#k,GOTO N

G65

H99

产生P/S报警

产生500+1号P/S报警

除此以外,G65指令还可以实现逻辑运算、开平方、取绝对值、三角运算及复合运算等,相关指令见有关书籍,这里不一一介绍。需要指出的是,不同的数控系统,其功能的多少也不一样,用户可参考有关系统的说明书。

B类宏程序由控制语句,调用语句所组成。宏程序可以与主程序做在一起,也可以单独做成一个子程序,然后用G65指令调用。调用方法如下:

G65 P(程序号)〈引数赋值〉或G65 P(程序号) L(循环次数)〈引数赋值〉

所谓引数赋值,是指用A、B、C、D等地址给变量#1、#2、#3、#4等赋值。

B类宏程序的控制指令有三类,与C语言等高级程序设计语言的控制指令很类似。一类是IF语句,格式为:

IF[条件式]GOTO n (n即顺序号)

条件式成立时,从顺序号为n的程序段往下执行,条件式不成立时,执行下一下程序段;第二类是WHILE语句,格式为:

WHILE[条件式] DO m

END m

条件式成立时,从DO m的程序段到END m的程序段重复执行,条件式不成立时,则从END m的下一程序段执行。

第三类是无条件转移指令,格式为:GOTO n。

三、运用流程图编写用户宏程序的一般步骤

运用流程图编写用户宏程序的一般步骤为:一分析零件结构,确定宏程序加工的内容,找出加工工艺路线的律;二将零件加工路线规律用流程图表达出来,并进一步分清楚哪些是程序编制过程中的变量,哪些是常量,从而将一般的流程变成程序流程图;三根据程序流程图,编写零件的加工程序。

四、应用举例

(一)宏程序应用实例一

如图1所示,在一根轴上加工N个槽,每个槽的宽度为a1,槽的间距为a2,槽底直径为b1,棒料直径b2,并且设所给材料足够长,试编写程序加工该零件,现有一零件参数为N=100个槽,槽底直径b1=30mm,槽宽a1=5mm,工件直径b2=40mm,间隔a2=2mm,刀宽=3mm,现编写程序加工。图11零件工艺过程分析

该零件是一个比较简单的例子,在压面机械上用得较多。零件的精度要求不高,为了使程序有更广泛的适应性,将宏程序做成一个子程序,用主程序来调用实现零件的加工。加工时将坐标原点选择在如图所示的位置,X轴离第一个槽的距离为一个间距a2的距离。

零件的加工过程如下将:将刀具移至加工起点→进刀→切削第一个槽→计算下一槽的位置并将刀具移到此位置→加工下一个槽……如此至最后一个槽加工完为止。

将此过程画成流程图,如图2(a)所示。

(a) (b)

图2

2零件加工过程中所使用的变量

通过分析,要加工该零件,需要如下一些变量:

工件直径#200= b2

槽底直径#201= b1

槽宽#202= a1

槽间间隔#203= a2

切槽刀宽度#204

每加工一个槽后,切槽刀在Z轴方向移动的距离#205(等于槽间距加上槽宽)

槽的起点坐标Xs=#206,Zs=#207

槽加工终点的坐标Xf=#208,Yf=#209

计算槽数目的变量#215

加工槽的总数#216

由此画出编制程序所用的流程图,如图2(b)所示。

3根据程序流程图编制程序

宏程序O9061

N10 G65 H83 P160 Q#204 R#202 如果刀宽大于槽完,则结束

N20 G65 H01 P#215 Q0 计数器变量清零

N30 G65 H02 P#205 Q#202 R#203 计算#205

N40 G65 H02 P#206 Q#200 R5 工件直径加上5mm作为X方向起点

N50 G65 H02 P#207 Q#203 R#204 槽的间距加上一个刀宽

N60 G65 H01 P#207 Q?#207 取负值后作为第一个槽的Z向起点

N70 G65 H01 P#208 Q#201 槽底直径作为槽终点的X坐标

N80 G65 H01 P#209 Q?#205 第一个槽终点Z向坐标

N90 G00 X#206 Z#207 M08 定位到槽加工的位置

N100 G75 R1

N110 G75 X#208 Z#209 P2 Q#204 F20 加工槽

N120 G65 H03 P#207 Q#207 R#205 下一个槽起点Z向坐标计算

N130 G65 H03 P#209 Q#209 R#205 下一个槽终点Z向坐标计算

N140 G65 H02 P#215 Q#215 R1 槽计数器加1

N150 G65 H84 P90 Q#215 R#216 判断槽是否加工完毕

N160 M08

N170 M99 结束

主程序 O0001

N10 G65 H01 P#200 Q40 工件直径赋值

N20 G65 H01 P#201 Q30 槽底直径赋值

N30 G65 H01 P#202 Q5 槽宽赋值

N40 G65 H01 P#203 Q2 槽间间隔赋值

N50 G65 H01 P#204 Q3 切槽刀宽赋值

N60 G65 H01 P#216 Q100 槽数赋值

N70 G00 X100 Z100 起刀点位置

N80 M98 P9061 调用宏程序

N90 M30 程序结束

(二)宏程序应用实例二

对于一些大悬伸(加工深度与刀具直径之比较大)的零件,用普通加工方法总难达到理想效果,此时用插铣法容易保证零件精度,如图3所示的零件,尺寸80很难保证,用插铣法后获得了比较好的效果。曾经有工厂做过类似的程序,但程序只是针对零件本身,适应性不强,当零件的尺寸发生变化后,程序还得发生较大修改。笔者针对这种情况,将程序分为主程序和子程序,当零件的尺寸发生变化后,只需要修改主程序即可,非常方便。

1加工工艺分析

传统加工工艺方法采用多次重复加工。很难消除让刀,并且造成加工应力,最后由于应力释放造成零件的内腔变小。为了解决这个问题,我们将加工分为粗加工和精加工,粗加工采用普通的工艺方法,精加工采用插铣。

建立如图3所示的坐标系,为了保证加工质量,防止划伤已加工过的表面,编程时避免使用钻孔循环指令。加工轨迹如图4所示,在YZ平面内进行以下加工步骤:加工第一刀→沿圆弧退刀→返回Z=3处→沿圆弧进刀→沿X方向移动一个步距→加工第二刀→…。

加工过程中,粗加工尺寸80按79.6加工,而精加工采用宏程序编制高速插铣程序。精加工的具体参数如表2所示

图3零件图及坐标系 图4刀具路径表2精加工参数

加工方式

加工材料

刀具

步距

设置安全高度

顺铣

铝合金

Φ18整体硬质合金加长球头刀

0.05

Z=3

2加工流程图

为增强程序的适应性,本程序刀分为子程序和主程序来编写,子程序起始位置为(0,0,50),刀具在加工过程中的基本路线是按前面所给出的路线来走刀。

由此画出加工流程图如图5(a)所示。(a) (b)

图5

3程序所使用的变量及程序流程图

本程序中所使用的变量如下:

需加工部位X方向的长度:#1;

需加工部位Y方向的长度:#2;

需加工部位Z方向的深度:#3;

X方向的步距:#4;

走刀轨迹中,退(或进)刀时的半径:#5(本例图4中的R10);

中间变量:#6、#7、#8、#9

由所确定的变量及加工流程图,画出程序流程图如图5(b)所示。

4编制程序

子程序:%9001

N10 #1=#1/2 #1变量取1/2作为X坐标

N20 #2=#2/2 #2变量取1/2作为Y坐标

N30 G00 X#1 X方向定位到加工位置

N40 G41 D1 Y#2 Y方向定位到加工位置

N50 G01 Z3 F3000 M08 下降下安全高度,开冷却液

N60 #6=-(#3-#5) 计算加工终点Z向坐标

N70 #7=#2-2*#5 计算退刀终点Y坐标

N80 G01 Z#6 插铣加工

N90 G02 Y#7 R#5 退刀

N100 G01 Z3 返回

N110 G02 Y#2 R#5 进刀

N120 #8=#8+#4 X方向总加工长度计数

N130 G91 G01 X-#4 X方向走一个步距

N140 IF #8LE#1 GOTO 80 判别第一侧是否加工完

N150 G90 Y-#2 移至另一侧

N160 G01 Z#6 插铣加工另一侧

N180 G02 Y-#7 R#5 退刀

N190 G01 Z3 返回安全高度

N200 G02 Y-#2 R#5 进刀

N210 #9=#9+#4 X方向总加工长度计数

N220 G91 G01 X#4 X方向移动一个步距

N230 IF #9LE#1 GOTO 160 判别另一侧是否加工完

N240 G90 G40 G00 X0 Y0 M09 X、Y方向返回起始点

N250 Z50 Z方向返回起始点

N260 M99 宏程序结束

主程序:%1010

N10 T01 选一号刀

N20 M06 换刀

N30 G00 G90 G54 G19 X0 Y0 S5000 M03 定位到起始位置,选择坐标平面及坐标系,启动主轴。

N40 G43 H01 Z50 Z方向补偿

N60 G65 P9001 A200 B80.05 C90 D0 E0 F0 I0.05 J10 K0 调用宏程序并给相关变量赋值

N70 M05 停止主轴

N80 G49 Z50 Z方向取消补偿

N90 M30 程序结束

五、结束语

利用流程图编制用户宏程序,思路清晰,所编制的程序适应性好,是一种值得推广的方法。

Fanuc系统中常见的宏程序#代码的含义

你问的前面8个都是不常用的,后面两个是常用的。

G31跳转功能,非模态G代码 多数用在宏程序中,设置在宏程序变量#5061-5064

G33螺纹加工 模态G代码 切削直螺纹G33 后跟地址

G39拐角偏置圆弧插补 非模态G代码 一般和G41或G42一起用。G41或G42在前 。

G51比例缩放有效 模态。编程形状被放大或者缩小。格式G51X_Y_Z_P_

G52局部坐标系设定 非模态。在G54-G59中设定另外一个坐标。

G60单方向定位。在参数中设置模态和非模态。

G61准确停止方式。

G62自动拐角倍率。

G94每分进给。

G95每转进给。

数控编程宏程序的指令

宏程序编程

一 变量

普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。

#1=#2+100

G01 X#1 F300

说明:

变量的表示

计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。

例如:#1

表达式可以用于指定变量号。此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]

变量的类型

变量根据变量号可以分成四种类型

变量号

变量类型

功能

#0

空变量

该变量总是空,没有值能赋给该变量.

#1-#33

局部变量

局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值,

#100-#199

#500-#999

公共变量

公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失.

#1000

系统变量

系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值.

变量值的范围

局部变量和公共变量可以有0值或下面范围中的值:

-1047到-10-29或-10-2到-1047

如果计算结果超出有效范围,则发出P/S报警NO.111.

小数点的省略

当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123;变量#1的实际值是123.000。

变量的引用

为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;

被引用变量的值根据地址的最小设定单位自动地舍入。

例如:

当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.

改变引用变量的值的符号,要把负号(-)放在#的前面。

例如:G00X-#1

当引用未定义的变量时,变量及地址都被忽略。

例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0。

双轨迹(双轨迹控制)的公共变量

对双轨迹控制,系统为每一轨迹都提供了单独的宏变量,但是,根据参数N0.6036和6037的设定,某些公共变量可同时用于两个轨迹。

未定义的变量

当变量值未定义时,这样的变量成为空变量。变量#0总是空变量。它不能写,只能读。

引用

当引用一个未定义的变量时,地址本身也被忽略。

当#1=

当#1=0

G90 X100 Y#1

G90 X100

G90 X100 Y#1

G90 X100 Y0

(b) 运算

除了用赋值以外,其余情况下与0相同。

当#1=时

当#1=0时

#2=#1

#2=

#2=#1

#2=0

#2=#*5

#2=0

#2=#*5

#2=0

#2=#1+#1

#2=0

#2=#1+#1

#2=0

(c)条件表达式

EQ和NE中的不同于0。

当#1=时

当#1=0时

#1EQ#0 成立

#1EQ#0 不成立

#1 NE #0 成立

#1 NE #0 不成立

#1 GE #0 成立

#1 GE #0 不成立

#1 GT #0 不成立

#1 GT #0 不成立

限制

程序号,顺序号和任选程序段跳转号不能使用变量。

例:下面情况不能使用变量:

0#1;

/#2G00X100.0;

N#3Y200.0;

二 算术和逻辑运算

下面表中列出的运算可以在变量中执行。运算符右边的表达式可包含常量和或由函数或运算符组成的变量。表达式中的变量#j和#k可以用常数赋值。左边的变量也可以用表达式赋值。

说明:

角度单位

函数SIN ,COS,ASIN,ACOS,TAN和ATAN的角度单位是度。如90°30'表示为90.5度。

ARCSIN # i= ASIN[#j]

(1)取值范围如下:

当参数(NO.6004#0)NAT位设为0时,270°~90°

当参数(NO.6004#0)NAT位设为1时,-90°~90°

(2)当#j超出-1到1的范围时,发出P/S报警NO.111.

(3)常数可替代变量#j

ARCCOS #i=ACOS[#j] 取值范围从180°~0° 当#j超出-1到1的范围时,发出P/S报警NO.111. 常数可替代变量#j

三 程序举例

铣椭圆:

轨迹:

椭圆程序代码如下:

N10 G54 G90 G0 S1500 M03

N12 X0 Y0 Z20.

N14 G0 Z1

N16 G1 Z-5. F150.

N18 G41 D1

N20 #1=0

N22 #2=34

N24 #3=24

N26 #4=#2*COS[#1]

N28 #5=#3*SIN[#1]

N30 #10=#4*COS[45]-#5*SIN[45]

N32 #11=#4*SIN[45]+#5*COS[45]

N34 G1 X#10 Y#11

N36 #1=#1+1

N38 IF [#1 LT 370] GOTO26

N40 G40 G1 X0 Y0

N42 G0 Z100

N44 M30

铣矩形槽:

铣矩形槽代码如下:

#102=0.

N3#100=0.

#101=0.

#103=200.

#104=400.

G91G28Z0.

G0G90G54X0.Y0.

G43H1Z20.

M3S2000.

N4G0X#100Y#101

G01Z#102F200.

#102=#102-2.

IF[#102EQ-50.]GOTO1

GOTO2

N2

N4X#104F500.

Y#103

X#100

Y#101

#100=#100+10.

#101=#101+10.

#103=#103-10.

#104=#104-10.

IF[#100EQ100.]GOTO3

GOTO4

N3

N1

M5

M9

G91G28Z0.

G28Y0.

M30

铣倾斜3度的面:

轨迹:

铣倾斜3度的面的代码如下:

O0001

#[#1+1*2]=1

G65P9012L1A0B0.1C4I100J3K0

M30

宏程序O9012代码如下:

G54 G90 G00 X[#3] Y0 Z100

S500 M3

G01 Z0 F300

WHILE[#1LE10]DO1

#7= #1/TAN[#5]+#3

G1Z-#1 X#7

#8=#6/2-ROUND[#6/2]

IF[#8EQ0]GOTO10

G1Y0

GOTO20

N10 Y#4

N20#1=#1+#2

#6=#6+1

END1

G0

Z100

铣半球:

轨迹:

铣半球代码如下:

G90G0G54X-10.Y0M3S4500

G43Z50.H1M8

#1=0.5

WHILE[#1LE50.]DO1

#2=50.-#1

#3=SQRT[2500.-[#2*#2]]

G1Z-#1F20

X-#3F500

G2I#3

#1=#1+0.5

END1

G0Z50.M5

M30

铣喇叭:

铣喇叭代码如下:

M03 S500

M06 T01

#1=0

#2=0

G0 Z15

X150 Y0

N11

#2=30*SIN[#1]

#3=30+30*[1-COS[#1]]

G01 Z-#2 F40

G41 X#3 D01

G03 I-#3

G40 G01 X150 Y0

#1=#1+1

IF [#1 LE 90] GOTO 11

G0 Z30

M30

(责任编辑:IT教学网)

更多

推荐网站策划文章