宏程序是加工编程的重要补充。Fan6m数控系统变量用#后跟1 ~ 4位数字表示,变量有三种类型:(1)局部变量:# 1 ~ # 33是宏程序中局部使用的变量,用于自变量传递。(2)常见变量:用户可以杀死各种东西,让大便充满苦涩和怨恨。100 ~ # 149,断电后变量值全部清零,而# 500 ~ # 509,断电后变量值可以保存。(3)系统变量:由#后跟4位数字定义,可以获取机床处理器或NC存储器中包含的只读或可读写信息,包括交换参数、机床状态采集参数、加工参数等与机床处理器相关的系统信息。编程变量有四个用途:操作;增加或减少的数量;与一个表达式比较后,决定是否实现跳转函数的条件分支;将变量值传送到零件程序。运算包括:算术运算(赋值、加、减、乘、除、绝对值、四舍五入、小数点以下部分四舍五入);函数运算(正弦、余弦、正切、反正切、平方根);运算(与、或);比较(等于、大于、小于、大于等于一个变量)普通加工程序直接用数值指定g代码和移动距离;例如GO1和X100.0。使用用户宏程序时,可以直接或通过变量指定数值。使用变量时,变量值可以通过程序或MDI面板上的操作来更改。# 1=# 2 100G01x # 1F300注意:变量表示允许计算机使用变量名,但不允许用户宏程序使用。它由变量符号(#)和后面的变量编号指定。例如:#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,实际指令值为G0012346。更改引用变量的值的符号,并将减号(-)放在#前面。例如:G00x-# 1当引用未定义的变量时,变量和地址都被忽略。例如,当变量#1的值为0,变量#2的值为空时,G00X#1 Y#2的执行结果为G00X0。* * * *跟踪(* * * *跟踪控制)通过公共变量控制* * * *跟踪。系统为每个轨迹提供一个单独的宏变量。但是,根据参数N0.6036和6037的设置,一些公共变量可以同时用于两条迹线。未定义变量当变量值未定义时,这样的变量就变成了空变量。变量#0总是空变量。它不会写,只会读。当引用一个未定义的变量时,地址本身也会被忽略。当#1=null时当# 1=0g 90 x 100y # 1g 90 x 100g 90 x 100y # 1g 90 x 100y 0时(b)操作与相同
当#1=空时,当# 1=0时,#1EQ#0成立#1EQ#0不成立# 1ene # 0不成立#1 GE #0不成立#1 GT #0不成立#1 GT #0不成立,没有变量可用于序号和可选程序段跳转号。示例:变量不能用于以下情况:0 # 1;/# 2g 00100.0;N # 3Y200.0II算术和逻辑运算下表中列出的运算可以在变量中执行。运算符右侧的表达式可以包含由函数或运算符组成的常量和或变量。表达式中的变量#j和#k可以用常量赋值。左边的变量也可以用表达式赋值。注:角度单位函数SIN、COS、ASIN、TAN和的角度单位为度。例如90 30是90.5度。ARCSIN # i=ASIN[#j](1)取值如下:当参数(编号6004 # 0)的NAT位设置为0时,270 ~ 90;当参数(No.6004 # 0)的NAT位设置为1,-90 ~ 90;(2)当# Issue P/S alarm NO.111.(3)常量可替换变量#jarccos # i=acos [#j]取值范围从180到0。当# j超出-1到1的范围时,发出P/S报警号111 .常量可替换变量# j三个程序铣削椭圆:轨迹:椭圆程序代码如下
1N20 #1=0N22 #2=34N24 #3=24N26 #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#11N36 #1=#1+1N38 IF [#1 LT 370] GOTO26N40 G40 G1 X0 Y0N42 G0 Z100N44 M30铣矩形槽:铣矩形槽代码如下:#102=0.N3#100=0.#101=0.#103=200.#104=400.G91G28Z0.G0G90G54X0.Y0.G43H1Z20.M3S2000.N4G0X#100Y#101G01Z#102F200.#102=#102-2.IF[#102EQ-50.]GOTO1GOTO2N2N4X#104F500.Y#103X#100Y#101#100=#100+10.#101=#101+10.#103=#103-10.#104=#104-10.IF[#100EQ100.]GOTO3GOTO4N3N1M5M9G91G28Z0.G28Y0.M30铣倾斜3度的面:#[#1+1*2]=1G65P9012L1A0B0.1C4I100J3K0M30宏程序O9012代码如下:G54 G90 G00 X[#3] Y0 Z100S500 M3G01 Z0 F300WHILE[#1LE10]DO1#7= #1/TAN[#5]+#3G1Z-#1 X#7#8=#6/2-ROUND[#6/2]IF[#8EQ0]GOTO10G1Y0GOTO20N10 Y#4N20#1=#1+#2#6=#6+1END1G0Z100铣半球:轨迹:铣半球代码如下:G90G0G54X-10.Y0M3S4500G43Z50.H1M8#1=0.5WHILE[#1LE50.]DO1#2=50.-#1#3=SQRT[2500.-[#2*#2]]G1Z-#1F20X-#3F500G2I#3#1=#1+0.5END1G0Z50.M5M30铣喇叭:铣喇叭代码如下:M03 S500M06 T01#1=0#2=0G0 Z15X150 Y0N11#2=30*SIN[#1]#3=30+30*[1-COS[#1]]G01 Z-#2 F40G41 X#3 D01G03 I-#3G40 G01 X150 Y0#1=#1+1IF [#1 LE 90] GOTO 11G0 Z30M30