数控宏程序编程入门
- 格式:doc
- 大小:38.00 KB
- 文档页数:6
数控编程讲义第一篇铣工篇 (1)专题一行切和环切 (1)1.1环切 (1)1.1.1环切刀具半径补偿值的计算 (2)1.1.2环切刀补程序工步起点(下刀点)的确定 (4)1.1.3在程序中修改刀具半径补偿值 (5)1.1.4环切宏程序 (7)1.2 行切 (8)1.2.1 矩形区域的行切计算 (8)1.2.2行切的子程序实现 (10)1.2.3 行切宏程序实现 (11)专题二相同轮廓的重复加工 (13)2.1 用增量方式完成相同轮廓的重复加工 (14)2.2用坐标系平移完成相同轮廓的重复加工 (14)2.3 用宏程序完成相同轮廓的重复加工 (15)专题三简单平面曲线轮廓加工 (17)专题四简单立体曲面加工 (18)4.1球面加工 (18)4.1.1外球面加工 (20)4.1.2内球面加工 (21)4.2水平圆柱面的加工 (22)4.2.1圆柱面的轴向走刀加工 (22)4.2.1圆柱面的周向走刀加工 (23)专题五孔系加工 (25)5.1 矩形阵列孔系加工 (25)5.2环形阵列孔系加工 (26)第二篇车工篇 (27)专题六参数编程 (27)专题七方程曲线的车削加工 (29)7.1方程曲线车削加工的走刀路线: (29)7.2 椭圆轮廓的加工 (30)附录FANUC系统G指令和宏指令 (32)附录1刀具补偿值、刀具补偿号及在程序中赋值G10 (32)1、刀具补偿值的范围 (32)2、刀具补偿值的存贮 (32)3、刀具补偿赋值格式: (34)附录2 缩放G50、G51 (35)附录3 坐标系旋转G68、G69 (42)附录4 宏程序B(custom macro B) (48)1 宏变量(variables) (48)2 系统变量SYSTEM V ARIABLES (54)2.1接口信号Interface signals (55)2.2刀具补偿值Tool compensation values (56)2.3宏程序报警信息Macro alarms (58)2.4时间信息 (59)2.5自动运行控制 (60)2.6背景(#3005)Settings (63)2.7已加工的零件数Number of machined parts (64)2.8模态信息Model information (65)2.9当前位置 (68)2.10工件坐标系补偿值(工件坐标系零点偏置值) (68)3算术和逻辑运算 (70)4 宏语句和NC语句 (81)5分支和循环 (83)5.1无条件分支GOTO语句 (83)5.2 条件分支IF语句 (84)5.3 循环WHILE 语句 (87)6 调用宏程序MACRO CALL (34)6.1 简单调用G65 (35)6.2模态调用G66 (45)6.3使用G代码的宏调用 (51)6.4使用M代码的宏调用 (54)6.5使用M代码的子程序调用 (57)6.6使用T代码的子程序调用 (59)6.7例程............................................................................................. 错误!未定义书签。
教你数控宏程序编程一. 什么是宏程序?用变量的方式进行数控编程二. 宏程序与普通程序的区别。
普通程序: 只能使用常量宏程序: 可以使用变量,并给变量赋值普通程序: 常量之间不可以运算宏程序: 变量之间可以运算普通程序: 程序只能顺序执行,不能跳转宏程序: 程序可以跳转三. 变量#1~#33在宏程序中储存数据,在程序中对其赋值。
赋值是将一个数据赋予一个变量。
例如#1=0,表示#1的值就是0,其中#1代表变量,#是变量符号,0就是给变量#1赋的值。
例如G0 X0 Y0;G01 X100 F500 ;#1=100 ;#2=50 ;G0 X0 Y0;G01 X#1F500;G01 X[#1+#2]F500;四. 变量之间的运算变量之间可以进行加,减,乘,除函数等各种运算例如#1=60;#2=SIN#1;运算顺序和一般数学上的定义相同例如#1=#2+3*SIN#4括号嵌套最里层的括号优先例如#6=COS[[[#5+#4]*#3+#2]*#1]比较难理解的一种情况#1=10;G0 X#1 Y0;#1=#1+1;G0 X#1 Y0;五. 转移和循环在程序中使用GOTO和IF可以改变程序执行顺序1. GOTO 语句—--无条件转移例如G0 X0 Y0;G01 X100 Y100 F100;X500;GOTO 01;Y500;N01 X550;Y550;G0 Z200;2. IF语句1).IF[条件表达式]GOTO n如果指定的表达式满足,则转移到标有顺序号n 的程序段,如果不满足指定的条件表达式,则顺序执行下一个程序段。
例如IF[#1 GT 100] GOTO 01;G0 X0 Y0;N01 X200;运算符含义EQ 等于 =NE 不等于≠GT 大于 >GE 大于或等于≥LT 小于 <LE 小于或等于≤典型例子#1=0;#2=1;N1;IF[#2 GT 100] GOTO 02;#1= #1+#2;#2= #2+#1;GOTO 01;N2 M30;3.循环(WHILE语句)在WHILE后制定一个条件表达式,当指定条件满足时,则执行从DO到END之间的程序,否则,转到END后的程序段例如#2=10;#3=20;WHILE[#2 LT #3]DO01;#2=#2-1;END01;实例运用O2012(螺旋铣孔)#1=50;圆孔直径#2=40;圆孔深度#3=30;刀具直径#4=0;Z坐标设为自变量,赋值为0 #10=1;Z坐标每次递增量#5=[#1-#3]/2;刀具回转直径S1000 M3;G54 G90 G00 X0 Y0 Z30;G00 X#5Z[-#4+1];G01 Z-#4 F200;WHILE[#4 LT #2]DO01;#4= #4+#10;G03 I-#5 Z-#4 F1000;END 01;G03 I-#5;G01 X[#5-1];G0 Z100;M30;O2013(群孔)#1=40;最内圈孔圆心所在直径#2=30;每列孔间隔#3=12;孔的列数#4=10; 空间隔#5=6;每列孔个数S1000 M3;G54 G90 G00 X0 Y0 Z30G16;#6=1;WHILE[#6 LE #3]DO 01;#7=1;WHILE[#7 LE #5]DO 02;#8= #1/2+[#7-1]*#4#9= [#6-1]*#2;G98 G81 X#8 Y#9 Z-60 R3 F100; #7=#7+1;END 02;#6=#6+1;END 01;G80 Z30;G15;M30;O2013(可变式深孔钻)#1=3;每次进给钱的缓冲高度#2=20;第一次钻深#3=0.5;递减比例#4=35;孔总深的#5=5.;R点M3 S1000;G54 X0 Y0;G0 Z#5;WHILE[#4 GT 0] DO 01;G01 Z-#2 F1000;G0 Z#5;Z[-#2+#1];#7=#2*#3;#2=#2+#7;#4=#4-#2;END 01;G0 Z100;M30;O2014(铣平面)#1=1000;工件长度#2=1000;工件宽度#3=10;刀具直径#4=-#2/2;Y设为自变量,初始值赋值为-#2/2 #14=0.8*#3;递增量#5=[#1+#3]/2+2.;开始X坐标S1000 M3;G54 G90 G00 X0 Y0 Z30;X#5 Y#4;Z0;WHILE[#4 LT #2/2] DO01;G01 X-#5 F1000;#4= #4+#14;Y#4;X#5;#4= #4+#14;Y#4;END 01;G0 Z30;M30;另一种编程方式#1=1000;工件长度#2=1000;工件宽度#3=10;刀具直径#4=-#2/2;Y设为自变量,初始值赋值为-#2/2 #14=0.8*#3;递增量#5=[#1+#3]/2+2.;开始X坐标S1000 M3;G54 G90 G00 X0 Y0 Z30;X#5 Y#4;Z0;N01 G01 X-#5 F1000;#4= #4+#14;Y#4;X#5;#4= #4+#14;Y#4;IF [#4 LT #2/2] GOTO 01; G0 Z30;M30,。
数控宏程序编程入门自学数控宏程序编程是数控加工中的一种重要的编程方式,也是数控编程研究的一个重要方向。
相较于手动编程,宏程序编程具有编程简单,编程效率高,重复利用性强等优点。
对于想要学习和掌握数控加工技术的人来说,学习宏程序编程是必不可少的一步。
本文将分享一些入门自学数控宏程序编程的方法和步骤。
一、了解数控宏程序编程首先,想要学好数控宏程序编程,需要了解数控宏程序编程的基本概念和知识点。
比如,数控宏程序是什么,宏定义和调用的语法规则是怎样的,如何在宏程序中加入不同的数控指令等。
除此之外,还应了解编程软件的使用方法,包括软件的安装、打开方式、编写程序时的操作步骤以及如何输出程序等。
二、系统学习编程语言数控宏程序编程的语言通常是基于ISO标准的G代码,因此,为了能够顺利学习和掌握宏程序编程,需要系统地学习G代码的基本知识。
这涵盖了G代码中的知识点,如注释、坐标系、插补方式、刀具半径补偿等。
三、实践编程演习学习宏程序编程不仅要有理论基础,还需要进行实际操作,切实掌握编程技能。
可以试着编写基本的程序,通过实践操作中不断调整修改程序,从而理解宏程序编程的各种规则和方法。
可以先写一些简单的宏程序,如点动调试、公差自动换刀、刀具半径补偿等。
四、结合实际加工应用除了学习和理解宏程序编程的基础知识以及实践演习,还需要将它应用到实际的切削加工应用中。
因为实际应用和理论知识相结合,才能在实际操作中真正体验到宏程序编程的优势和功能。
在应用中也可以学到更多的编程技巧和经验,从而不断提升自己的宏程序编程水平。
五、多参考相关书籍和网络资源在学习宏程序编程的过程中还可以多参考相关的书籍和网络资源,如《数控编程技术指南》、《G代码编程基础》、以及国内外相关的论坛和博客等。
这些都可以帮助自己更好地理解宏程序编程的各方面知识点,也可以了解到最新的技术和应用。
总之,学习数控宏程序编程需要有系统的学习方法和耐心的实践过程。
逐步的掌握编程的技能和方法,并将其运用到实际的切削加工中,才能使自己的宏程序编程水平得到不断的提升和完善。
数控高手必会的宏程序编程知识,你会吗?现在很多数控技术人员都不懂宏程序,他们认为有了自动编程软件,就不需要学习宏程序了。
事实上,宏程序的功能非常强大,比如编写一些批量、重复的程序,使用宏程序就只需要改动几个数据就可以了,没有必要进行大量重复的编程,可极大简化操作,大幅度提高工作效率。
宏程序可以使用变量进行算术运算、逻辑运算和函数的混合运算,还提供了循环语句、分支语句和子程序调用语句。
一般来说:宏程序适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程;适合抛物线、椭圆、双曲线等没有插补指令的曲线编程。
01变量的表示和使用1. 变量表示#I(I=1,2,3,…)或#[<式子>]例:#5,#109,#501,#[#1+#2-12]2. 变量的使用1)地址字后面指定变量号或公式格式:<地址字>#I这里的“I”代表变量号例:F#103,设#103=15则为F15Z-#110,设#110=250 则为Z-250X[#24+#18*COS[#1]]2)变量号可用变量代替例:#[#30],设#30=3 则为#33)变量不能使用地址O,N,I例:下述方法下允许O#1;I#2 6.00×100.0;N#3Z200.0;4)变量号所对应的变量,对每个地址来说,都有具体数值范围例:#30=1100时,则M#30是不允许的5)#0为空变量,没有定义变量值的变量也是空变量6)变量值定义:程序定义时可省略小数点,例:#123=14902变量的种类1. 局部变量#1~#33一个在宏程序中局部使用的变量,其运算结果其他程序不可使用。
例:A宏程序B宏程序……#10=20X#10 不表示X20……断电后清空,调用宏程序时代入变量值2. 公共变量#100~#199,#500~#999各用户宏程序内公用的变量,其运算结果任何程序调用都相同。
例:上例中#10改用#100时,B宏程序中的X#100表示X20#100~#149 断电后清空#500~#531保持型变量(断电后不丢失)3. 系统变量固定用途的变量,其值取决于系统的状态例:#2001值为1号刀补X轴补偿值#5221值为X轴G54工件原点偏置值入时必须输入小数点,小数点省略时单位为μm03运算指令运算式的右边可以是常数、变量、函数、式子式中#j,#k也可为常量式子右边为变量号、运算式1. 定义#I=#j2. 算术运算#I=#j+#k#I=#j-#k#I=#j*#k#I=#j/#k3. 逻辑运算#I=#JOK#k#I=#JXOK#k#I=#JAND#k4. 函数#I=SIN[#j] 正弦#I=COS[#j] 余弦#I=TAN[#j] 正切#I=ATAN[#j] 反正切#I=SQRT[#j]平方根#I=ABS[#j]绝对值#I=ROUND[#j] 四舍五入化整#I=FIX[#j] 上取整#I=FUP[#j] 下取整#I=BIN[#j] BCD→BIN(二进制)#I=BCN[#j] BIN→BCD1) 角度单位为度例:90度30分为90.5度2) ATAN函数后的两个边长要用“/ ”隔开例:#1=ATAN[1]/[-1]时,#1为了35.03) ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入例:设#1=1.2345,#2=2.3456,设定单位1μmG91X-#1;X-1.235X-#2 F300;X-2.346X[#1+#2];X3.580未返回原处,应改为X[ROUND[#1]+ROUND[#2]];4) 取整后的绝对值比原值大为上取整,反之为下取整例:设#1=1.2,#2=-1.2时若#3=FUP[#1]时,则#3=2.0若#3=FIX[#1]时,则#3=1.0若#3=FUP[#2]时,则#3=-2.0若#3=FIX[#2]时,则#3=-1.05) 指令函数时,可只写开头2个字母例:ROUND→ROFIX→FI6) 优先级函数→乘除(*,1,AND)→加减(+,-,OR,XOR)例:#1=#2+#3*SIN[#4];7) 括号为中括号,最多5重,括号用于注释语句例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)04转移与循环指令1. 无条件的转移格式:GOTO n;无条件地转移到程序段n去n:程序段号(1-99999)n也可用变量或表达式来代替GOTO10;GOTO #10;2. 条件转移IF [<条件表达式>] GOTO n;若满足<条件表达式>,下步操作转移到程序段号为n的程序段去。
数控宏程序编程方法技巧与实例一、数控宏程序编程的基本方法:1.定义宏变量:宏变量是宏程序中使用的变量,用于传递参数或保存临时数据。
定义宏变量可以使用#VAR指令,例如“#VARx=10”表示定义一个宏变量x并赋值为10。
2. 定义宏:宏是一个带有参数的程序段,可以通过调用宏来实现一系列操作。
定义宏可以使用#MACRO指令,例如“#MACRO move(x,y) G0Xx Yy”表示定义一个名为move的宏,参数为x和y,宏体为“G0 Xx Yy”。
3. 调用宏:调用宏可以使用#CALL指令,例如“#CALLmove(100,200)”表示调用名为move的宏,并传递参数为100和200。
4.结束宏程序:使用#END指令结束宏程序的编写。
二、数控宏程序编程的技巧:1.使用循环结构:可以使用循环结构来简化重复性的操作,提高程序的效率。
例如,使用FOR循环可以实现多次重复执行同样的操作。
2.使用条件判断:在宏程序中可以使用条件判断来根据不同的情况执行不同的操作。
例如,使用IF-THEN-ELSE语句可以根据条件的结果选择执行不同的指令。
3.使用局部变量:在宏程序中可以定义局部变量,用于保存临时数据。
使用局部变量可以减少全局变量的使用,提高程序的可读性和可维护性。
4.通过参数传递数据:宏程序可以通过参数来传递数据,使得宏的使用更加灵活。
在调用宏时,可以传递不同的参数来实现不同的操作。
三、数控宏程序编程的实例:以制作一个矩形的宏程序为例,实现自动绘制不同尺寸的矩形。
```#VAR width=100#VAR height=200#MACRO rectangle(x,y)G0XxYyG1 X(x+width) YyG1 X(x+width) Y(y+height)G1 Xx Y(y+height)G1XxYy#END#CALL rectangle(0,0)```上述的宏程序定义了一个名为rectangle的宏,参数为x和y,表示矩形的左上角坐标。
数控车宏程序编程实例
以下是一个简单的数控车宏程序编程实例,用于加工一个圆柱零件:
```数控车宏程序
O0001
#1=50 (定义圆柱的半径)
#2=100 (定义圆柱的长度)
G00 X#1
Z2
G01 Z0 F0.1
X#2
G00 Z100
M30
```
在上述示例中,我们使用了以下几个步骤来创建宏程序:
1. 定义变量:使用`#1`和`#2`分别定义了圆柱的半径和长度。
2. 设定初始位置:使用`G00`指令将刀具快速移动到初始位置(X=50,Z=2)。
3. 开始加工:使用`G01`指令以 0.1mm/rev 的进给速度开始加工圆柱,从 Z=0 处开始,沿着 X 轴加工到 X=100。
4. 快速退回:使用`G00`指令将刀具快速移动到安全位置(Z=100)。
5. 程序结束:使用`M30`指令结束程序。
通过使用宏程序,我们可以在加工过程中灵活地调整变量的值,实现不同尺寸零件的加工。
请注意,在实际应用中,你可能需要根据具体的机床和加工要求进行适当的调整和修改。
数控宏程序入门知识讲解1,何为宏程序?用变量的方式进行数控编程的方法就叫做数控宏程序编程。
我们普通程序(如G01X100.Y100.F200)X,Y地址后面都是些常量,如果我们把这些常量用变量来编写如G01X#1 Y#2 F200,这就是我们所谓的宏程序。
备注*:FUNC系统是用#1,#2等等来表示变量的。
机床系统不同表示的方式也不同,在这以FUNC系统为例)FUNC系统是用#1,#2等等来表示变量的。
即“#”和“数字”组成的。
如#1,#2……#33等。
这些#后面的数子1,2,3等等有什么含义吗?其实它只是宏变量的代号而已。
举个最简单的例子:如果有三个人,他们的名字都叫小李。
那么当你呼叫小李的时候,会发生一个问题,这三个人都会回答,但你其实只想喊其中的一个。
这就分不清了。
同理,#1 ,如果后面的数字都是一样,当系统使用#1的时候,它也会发生糊涂,到底让我用哪个呢?所以为了区分它们,就把后面的数字写成不同的,比如#1,#2,#3。
此时如果系统使用#1,就不会发生混乱了。
2,何为变量?,变量是一个会变化的量,与之对应的是常量。
(常量比如:1,2,22,65等等阿拉伯数字。
变量比如:#1,#2,#5等等,#1,#2的值到底是多少?因为它是变量,一个会变化量)。
3,变量是多少?比如把#1,#2等变量当做的银行卡,你往这些卡里存了多钱,那么这些卡里就有多钱(比如:往#1里面存了500元,此时#1就相当于500,又取走了300此时#1里面就有200)。
4,变量的赋值往#1里面存了500元等这么一个过程就叫变量赋值。
如果你不在往“#1“里面存钱,或取钱,那么#1就相当于500.也就是说#1不发生运算的情况下就是500.如果有这么一个程序段G0X#1,也就等同于此程序段G0X500.那么变量在数控机床中是怎么赋值的呢?,格式如下:(机床中的赋值中文解释备注)#5=100把100这个数值赋给变量#5把常量赋给了#5#1=#1-1把#1-1这个运算结果赋值给#1把表达式结果赋值给了#1#6= [#11 #15 3]把[#11 #15 3]这个表达式的运算结果赋值给#6把表达式结果赋值给了#65,宏程序IF…GOTO语句直观意思是:如果...就跳转到哪(或者是做什么事)。
数控宏程序基本知识,看懂你也基本入门了数控宏程序编程,是用变量的方式进行一般说来,华中的数控机床用的是B类宏程序,优点1.可以编写一些非圆曲线,如宏程序编写,双曲线,抛物线等。
2.编写一些大批相似零件的时候,可以用宏程序编写,这样只需要改动几个数据就可以了,没有必要进行大量重复编程。
使用方法A类宏程序1)的定义和替换 #i=#j编程格式 G65 H01 P#i Q#j例 G65 H01 P#101 Q1005; (#101=1005)G65 H01 P#101 Q-#112;(#101=-#112)2)加法 #i=#j+#k编程格式 G65 H02 P#i Q#j R#k例 G65 H02 P#101 Q#102 R#103;(#101=#102+#103)3)减法 #i=#j-#k编程格式 G65 H03 P#i Q#j R#k例 G65 H03 P#101 Q#102 R#103;(#101=#102-#103) 4)乘法#i=#j×#k编程格式 G65 H04 P#i Q#j R#k例 G65 H04 P#101 Q#102 R#103;(#101=#102×#103) 5)除法 #i=#j / #k编程格式 G65 H05 P#i Q#j R#k例 G65 H05 P#101 Q#102 R#103;(#101=#102/#103) 6)平方根 #i=编程格式 G65 H21 P#i Q#j例 G65 H21 P#101 Q#102;(#101= )7)#i=│#j│编程格式 G65 H22 P#i Q#j例 G65 H22 P#101 Q#102;(#101=│#102│)8)复合平方根1 #i=编程格式 G65 H27 P#i Q#j R#k例 G65 H27 P#101 Q#102 R#103;( #101=9)复合平方根2 #i=编程格式 G65 H28 P#i Q#j R#k例 G65 H28 P#101 Q#102 R#1031) #i=#j OR #k编程格式 G65 H11 P#i Q#j R#k例 G65 H11 P#101 Q#102 R#103;(#101=#102 OR #103) 2) #i=#j AND #k编程格式 G65 H12 P#i Q#j R#k例 G65 H12 P#101 Q#102 R#103;#101=#102 AND #103 (3)三角函数指令1)正弦函数#i=#j×SIN(#k)编程格式 G65 H31 P#i Q#j R#k (单位:度) .例 G65 H31 P#101 Q#102 R#103;(#101=#102×SIN(#103)) 2)余弦函数#i=#j×COS(#k)编程格式 G65 H32 P#i Q#j R#k (单位:度)例 G65 H32 P#101 Q#102 R#103;(#101=#102×COS(#103)) 3)正切函数#i=#j×TAN#k编程格式 G65 H33 P#i Q#j R#k (单位:度)例 G65 H33 P#101 Q#102 R#103;(#101=#102×TAN(#103)) 4)反正切 #i=ATAN(#j/#k)编程格式 G65 H34 P#i Q#j R#k (单位:度,0o≤ #j ≤360o)例 G65 H34 P#101 Q#102 R#103;(#101=ATAN(#102/#103) (4)指令编程格式 G65 H80 Pn (n为程序段号)例 G65 H80 P120;(转移到N120)2)条件转移1 #j EQ #k(=)编程格式 G65 H81 Pn Q#j R#k (n为程序段号)例 G65 H81 P1000 Q#101 R#102当#101=#102,转移到N1000;若#101≠ #102,执行下一。
数控宏程序编程入门自学
数控宏程序编程是数控加工中非常重要的一环,对于数控编程爱好者来说,掌握数控宏程序编程不仅可以提升编程能力,还能够提高工作效率。
本篇文章简要介绍数控宏程序编程的基本概念和入门方法。
数控宏程序是一种可重复使用的程序,它能够自动化执行一系列的操作。
在数控加工中,常常需要重复使用相同的操作,这时候就可以使用数控宏程序来实现。
数控宏程序编程是将一系列操作编写成一段程序,在需要时通过调用该程序来实现自动化加工。
数控宏程序编程一般使用G代码进行编写,因此在学习数控宏程序编程之前需要掌握一定的G代码知识。
同时,还需要了解数控机床的基本工作原理和操作流程。
入门数控宏程序编程的步骤如下:
1. 学习G代码基础知识,了解每个G代码的作用和使用方法。
2. 学习数控机床工作原理和操作流程,了解数控机床在加工过程中需要哪些操作。
3. 学习数控宏程序编程语法和编写方法。
4. 练习编写简单的数控宏程序,逐步提升编程能力。
总之,数控宏程序编程是数控加工中非常重要的一环,掌握数控宏程序编程不仅能够提高工作效率,还能够提升编程能力。
- 1 -。
不学会宏程序,就别说你是数控师傅!宏程序入门知识!1. 变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100G01 X#1 F300(1)变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12](2)变量的类型变量根据变量号可以分成四种类型:1)#0 空变量,该变量总是空,没有值能赋给该变量。
2)#1-#33 局部变量,局部变量只能用在宏程序中存储数据,例如,运算结果。
当断电时,局部变量被初始化为空。
调用宏程序时,自变量对局部变量赋值。
3)#100-#199、#500-#999 公共变量,公共变量在不同的宏程序中的意义相同。
当断电时,变量#100-#199初始化为空。
变量#500-#999的数据保存,即使断电也不丢失。
4)#1000--- 系统变量。
系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置,补偿值。
(3)变量值的范围局部变量和公共变量可以有0值或下面范围中的值:-1047到-10-29或-10-2到-1047,如果计算结果超出有效范围,则发出P/S报警NO.111。
(4)小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000。
(5)变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。
例如:当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.改变引用变量的值的符号,要把负号(-)放在#的前面。
大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用。
宏一般分为A类宏和B类宏。
A类宏是以G65 Hxx P#xx Q#xx R#xx 的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广.由于现在B类宏程序的大量使用很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如法兰克OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN—32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用;A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的xx的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM~~~~~。
#xx就是变量号,关于变量号是什么意思再不知道的的话我也就没治了,不过还是教一下吧,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般OTD系统中有#0~~~#100~#149~~~#500~#531关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单。
好现在我来说一下H代码,大家可以看到A类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了,好,现在说一下H代码的各个含义:以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行,基本指令:H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中G65H01P#101Q#10:把10赋予到#101中H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋予#101 G65 H02 P#101 Q#102 R10G65 H02 P#101 Q10 R#103G65 H02 P#101 Q10 R20上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H03减指令;格式G65 H03 P#101 Q#102 R#103,把#102的数值减去#103的数值赋予#101G65 H03 P#101 Q#102 R10G65 H03 P#101 Q10 R#103G65 H03 P#101 Q20 R10上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数值或变量号内的数值然后等于到P后面的变量号中.H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的数值乘上#103的数值赋G65 H04 P#101 Q#102 R10G65 H04 P#101 Q10 R#103G65 H04 P#101 Q20 R10上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H05除指令;格式G65 H05P#101 Q#102 R#103,把#102的数值除以#103的数值赋予#101G65 H05 P#101 Q#102 R10G65 H05 P#101 Q10 R#103G65 H05 P#101 Q20 R10上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数值或变量号内的数值然后等于到P后面的变量号中.(余数不存,除数如果为0的话会出现112报警)三角函数指令:H31 SIN正玄函数指令:格式G65 H31 P#101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*SIN#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值。
宏程序大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用..宏一般分为A类宏和B类宏.A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广.由于现在B类宏程序的大量使用很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如法兰克OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A 类宏的引用;A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的xx的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM~~~~~.#xx就是变量号,关于变量号是什么意思再不知道的的话我也就没治了,不过还是教一下吧,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般OTD系统中有#0~~~#100~#149~~~#500~#531关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单.好现在我来说一下H代码,大家可以看到A类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了,好,现在说一下H代码的各个含义:以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行,基本指令:H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中G65H01P#101Q#10:把10赋予到#101中H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋予#101 G65 H02 P#101 Q#102 R10G65 H02 P#101 Q10 R#103G65 H02 P#101 Q10 R20上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H03减指令;格式G65 H03 P#101 Q#102 R#103,把#102的数值减去#103的数值赋予#101 G65 H03 P#101 Q#102 R10G65 H03 P#101 Q10 R#103G65 H03 P#101 Q20 R10上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数值或变量号内的数值然后等于到P后面的变量号中.H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的数值乘上#103的数值赋予#101 G65 H04 P#101 Q#102 R10G65 H04 P#101 Q10 R#103G65 H04 P#101 Q20 R10上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H05除指令;格式G65 H05P#101 Q#102 R#103,把#102的数值除以#103的数值赋予#101 G65 H05 P#101 Q#102 R10G65 H05 P#101 Q10 R#103G65 H05 P#101 Q20 R10上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数值或变量号内的数值然后等于到P后面的变量号中.(余数不存,除数如果为0的话会出现112报警)三角函数指令:H31 SIN正玄函数指令:格式G65 H31 P#101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*SIN#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.H32 COS余玄函数指令:格式G65 H32 #101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*COS#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.H33和H34本来应该是TAN 和ATAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么?开平方根指令:H21;格式G65 H21 P#101 Q#102 ;意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的如果在车椭圆的时候没有开平方跟的指令是没可能用宏做到的.无条件转移指令:H80;格式:G65 H80 P10 ;直接跳到第10程序段有条件转移指令:H81 H82 H83 H84 H85 H86 ,分别是等于就转的H81;不等于就转的H82;小于就转的H83;大于就转的H84;小于等于就转的H85;大于等于就转的H86;格式:G65 H8x P10 Q#101 R#102;将#101内的数值和#102内的数值相比较,按上面的H8x 的码带入H8x中去,如果条件符合就跳到第10程序段,如果不符合就继续执行下面的程序段.用户宏程序能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。
l 所存入的这一系列指令——用户宏程序l 调用宏程序的指令————宏指令l 特点:使用变量一.变量的表示和使用(一)变量表示#I(I=1,2,3,…)或#[<式子>]例:#5,#109,#501,#[#1+#2-12](二)变量的使用1.地址字后面指定变量号或公式格式:<地址字>#I<地址字>-#I<地址字>[<式子>]例:F#103,设#103=15 则为F15Z-#110,设#110=250 则为Z-250X[#24+#18*COS[#1]]2.变量号可用变量代替例:#[#30],设#30=3 则为#33.变量不能使用地址O,N,I例:下述方法下允许O#1;I#2 6.00×100.0;N#3 Z200.0;4.变量号所对应的变量,对每个地址来说,都有具体数值范围例:#30=1100时,则M#30是不允许的5.#0为空变量,没有定义变量值的变量也是空变量6.变量值定义:程序定义时可省略小数点,例:#123=149MDI键盘输一.变量的种类1. 局部变量#1~#33一个在宏程序中局部使用的变量例:A宏程序B宏程序……#10=20 X#10 不表示X20……断电后清空,调用宏程序时代入变量值2. 公共变量#100~#149,#500~#531各用户宏程序内公用的变量例:上例中#10改用#100时,B宏程序中的X#100表示X20#100~#149 断电后清空#500~#531保持型变量(断电后不丢失)3. 系统变量固定用途的变量,其值取决于系统的状态例:#2001值为1号刀补X轴补偿值#5221值为X轴G54工件原点偏置值入时必须输入小数点,小数点省略时单位为μm一.运算指令运算式的右边可以是常数、变量、函数、式子式中#j,#k也可为常量式子右边为变量号、运算式1.定义#I=#j2.算术运算#I=#j+#k#I=#j-#k#I=#j*#k#I=#j/#k3.逻辑运算#I=#JOK#k#I=#JXOK#k#I=#JAND#k4.函数#I=SIN[#j] 正弦#I=COS[#j] 余弦#I=TAN[#j] 正切#I=ATAN[#j] 反正切#I=SQRT[#j] 平方根#I=ABS[#j] 绝对值#I=ROUND[#j] 四舍五入化整#I=FIX[#j] 下取整#I=FUP[#j] 上取整#I=BIN[#j] BCD→BIN(二进制)#I=BCN[#j] BIN→BCD1.说明1) 角度单位为度例:90度30分为90.5度2) ATAN函数后的两个边长要用“1”隔开例:#1=ATAN[1]/[-1]时,#1为了35.03) ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入例:设#1=1.2345,#2=2.3456,设定单位1μmG91 X-#1;X-1.235X-#2 F300;X-2.346X[#1+#2];X3.580未返回原处,应改为X[ROUND[#1]+ROUND[#2]];4) 取整后的绝对值比原值大为上取整,反之为下取整例:设#1=1.2,#2=-1.2时若#3=FUP[#1]时,则#3=2.0若#3=FIX[#1]时,则#3=1.0若#3=FUP[#2]时,则#3=-2.0若#3=FIX[#2]时,则#3=-1.05) 指令函数时,可只写开头2个字母例:ROUND→ROFIX→FI6) 优先级函数→乘除(*,1,AND)→加减(+,-,OR,XOR)例:#1=#2+#3*SIN[#4];7) 括号为中括号,最多5重,园括号用于注释语句例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)一.转移与循环指令1.无条件的转移格式:GOTO 1;GOTO #10;2.条件转移格式:IF[<条件式>] GOTO n条件式:#j EQ#k 表示=#j NE#k 表示≠#j GT#k 表示>#j LT#k 表示<#j GE#k 表示≥#j LE#k 表示≤例:IF[#1 GT 10] GOTO 100;…N100 G00 691 X10;例:求1到10之和O9500;#1=0#2=1N1 IF [#2 GT10] GOTO 2#1=#1+#2;#2=#2+1;GOTO 1N2 M301.循环格式:WHILE[<条件式>]DO m;(m=1,2,3)………ENDm说明:1.条件满足时,执行DOm到ENDm,则从DOm的程序段不满足时,执行DOm到ENDm的程序段2.省略WHILE语句只有DOm…ENDm,则从DOm到ENDm之间形成死循环3.嵌套4.EQ NE时,空和“0”不同其他条件下,空和“0”相同例:求1到10之和O0001;#1=0;#2=1;WHILE [#2LE10] DO1;#1=#1+#2;#2=#2+#1;END1;M30;。