数控宏程序编程入门

合集下载

数控车宏程序编程方法及技巧通用课件

数控车宏程序编程方法及技巧通用课件
补的刀具路径计算和控制
05
06
宏程序在生产中的应用及调试
实例二:椭圆轮廓宏程序编写
总结词:利用宏程序实现椭圆轮廓的精 确、高效加工
宏程序在生产中的应用及调试 椭圆轮廓的刀具路径计算和控制
详细描述 椭圆轮廓的数学模型建立
实例三:倒角宏程序编写
详细描述
倒角的刀具路径计 算和控制
总结词:利用宏程 序实现倒角的精确 、快速加工
宏程序函数及调用
系统函数
系统函数是数控系统中已经定义 好的函数,可以直接调用,例如 坐标系设定函数、圆弧插补函数
等。
自定义函数
自定义函数是根据实际需要自定 义的函数,可以在程序中多次调 用,例如求绝对值函数、三角函
数等。
宏程序调用
宏程序调用是通过调用自定义函 数或系统函数来执行一段程序代 码,调用方式包括直接调用和间
01 02 03 04
不同点
使用方式不同:普通程序是按照规定的语法规则编写的,而宏程序则 是使用自定义的函数和变量进行编程。
功能不同:普通程序主要用于实现基本的加工操作,而宏程序则可以 完成更复杂的加工任务,如曲面加工、螺纹加工等。
灵活性不同:宏程序具有更高的灵活性和可扩展性,可以根据需要进 行修改和扩展,适应不同的机床和加工需求。
宏程序在生产中的应 用及调试
05
宏程序编程常见问题及解 决方案
常见问题一:变量赋值错误
01
总结词
在宏程序编程中,变量赋值是一个常见的错误。
02
详细描述
变量赋值错误通常是由于变量名错误或变量类型错误导致的。例如,将
一个整型变量赋值为字符串类型,或者将一个未定义的变量名赋值。
03
解决方案

数控车宏程序编程方法及技巧(PPT41页)

数控车宏程序编程方法及技巧(PPT41页)
可转化为:
Z X 2 / 2P (或X Z2 / 2P)
抛物线宏程序结构流程:
开始 给常量赋值 给变量赋初值 进入循环体 X变量递加 计算Z坐标值 指令机床沿抛物线轮廓移动X,Z坐标
判断X值是否小于抛物线终点处直径一半
若不小于刀具退离到工件右端
结束
若小于返回进入循环体
抛物线宏程序编制:
D2之间的程序段)
#6=#2*COS[#3];(构造 a * COS( ))
#7=2*#1*SIN[#3];(构造 2 *b * SIN( ) )
G1 X[#7+#20] Z#6 F150;
(椭圆X坐标加余量值)
#3=#3+#4;(椭圆离心角递增) #10=#7+#20;(X向当前点坐标) IF [#10 GT 26] GOTO 56;
(如果X向当前点坐标大于26跳转到56句从 新定起点)
END 2 G0 U2; Z26;(退刀) IF [#20 GE 0] GOTO 100;
(如果余量大于等于0跳转到100句)
G0 X100; M05; M30;
3.抛物线类零件的宏程序编制 抛物线的一般方程:
X2 2PZ(或Z2 2PX)
Y a / sin
双曲线宏程序结构流程:
开始 给常量赋值 给自变量Z赋初值 指令机床移动X,Z坐标 Z向均值递减
双曲线上任意一点X坐标值计算
动点Z值是否大于等于双曲线终点Z值
若小于结束
若大于等于返回移动X,Z坐标
焦点在Y轴上的双曲线宏程序编制:
程序编制: O0273; T0101; M03 S500; G98; G01 X10; Z-5.05; X17.524; #1=20; N10 #2=38-10/SIN[#1]; #3=-60+20/TAN[#1]; G01 X2*#2 Z#3; #1=#1+1; IF [#1 LT 80] GOTO 10; G01 X56 Z-56.473; X60; G00 X100; Z100; M05; M30;

数控车床华中系统用户宏程序编程

数控车床华中系统用户宏程序编程

如图2,Z坐标为自变量#2,则X坐标为因变量#1,那么X用Z表示为:
分别用宏变量#1、#2代替上式中的X、Z,即得因变量#1相对于自变量#2的宏表达式:
如图1,Z坐标为自变量#2,则X坐标为因变量#1,那么X用Z表示为:
3、如何进行函数变换,确定因变量相对于自变量的宏表达式

如图3,X坐标为自变量#1,因Z坐标为因变量#2,那么Z用X表示为:
IF 条件表达式 IF 条件表达式
02
… …
ELSE ENDIF

05
ENDIF
格式:WHILE 条件表达式

ENDW
5、循环语句WHILE,ENDW
二、公式曲线宏程序编程模板的具体应用实例
运用以上公式曲线宏程序模板,结合粗加工循环指令,就可以快速准确实现零件公式曲线轮廓的编程和加工。具体应用示例如下: 例1:如图1所示零件的外轮廓粗精加参考程序如下(设毛坯为直径25毫米的棒料): %0001(程序头) T0101(调用01号外圆刀及01号刀具偏置补偿) G90 M03 S700(绝对值编程;主轴以700转/分正转) G00 X33 Z2(快速定位到粗加工循环起点) G71 U1 R0.5 P10 Q20 X0.6 F100(外径粗车循环) N10 G01 X10 F60 S1000(精加工起始程序段) Z-10 X24 Z-22(公式曲线起点) #2=8(设Z为自变量#2,给自变量#2赋值8:Z1=8) WHILE #2 GE [-8](自变量#2的终止值-8:Z2=-8) (因变量#1: 用#1、#2代替X、Z) #11=-#1+15(工件坐标系下的X坐标值#11:编程使用的是负轮廓,#1前冠以负;ΔX=15) #22=#2-30(工件坐标系下的Z坐标值#22:ΔZ=-30) G01 X[2*#11] Z[#22](直线插补,X为直径编程) #2=#2-0.5(自变量以步长0.5变化) ENDW(循环结束) N20 G01 Z-50(精加工终止程序段) G00 X100 Z80(快速定位到退刀点) M30(程序结束)

数控车宏程序编程讲解

数控车宏程序编程讲解
的尺寸) (GE或GT都可以).
矩形螺纹
刀具
• 12. [矩形螺纹].
• 编程:
• O0001:(主程序) O0002: (子程序)
• N1 T0202 G99; G0 U–0.3; G0 U10; U–10;
• N2 M3 S200;
G32 Z–55 F12; Z14; M99;
• N3 G0 X82 Z12; G0 U10;
数控车床(宏程序)编程
特形零件练习
正切曲线方程:
椭圆
抛物线方程:
椭圆
双头螺纹.
材料:45#刚. 毛坯: 50*140.
华中系统(宏程序)编程
• 1. 图1.
方向
右偏刀
1.
• 抛物线方程:– X*X/10. • ①以(X轴)作变量. • 编程: • O0001; • N1 #1= 0; (X轴的起点) • N2 WHILE #1 LE [10]; (X轴的终点). • N3 #2= – #1*#1/10; (抛物线的公式) • N4 G01 X[2*#1] Z[#2]; (X,Z轴的坐标变量) • N5 #1= #1+0.1; (X轴的增量) • N6 ENDW; (调用返回) • ②以(Z轴)作变量. • 编程: • O0001; • N1 #1= 0; (Z轴的起点) • N2 WHILE #1 LE [10]; (Z轴的终点) • N3 #2= SQRT[#1*10]; (抛物线的公式) • N4 G01 X[2*#2] Z[–#1]; (X,Z轴的坐标变量) • N5 #1= #1+0.1; (Z轴的增量) • N6 ENDW; (调用返回)
图2.
方向
图2
右偏刀
• 2. 抛物线方程:–X*X/10. • ①以(X轴)作变量. • 编程: • O0001; • N1 #1= 0; • N2 #2= – #1*#1/10; • N3 G01 X[2*#1] Z[#2]; • N4 #1= #1+0.1; • N5 IF #1 LE [10] GOTO2; • ②以(Z轴)作变量. • 编程: • O0001; • N1 #1= 0; • N2 #2= SQRT[#1*10]; • N3 G01 X[2*#2] Z[–#1]; • N4 #1= #1+0.1; • N5 IF #1 LE [10] GOTO2;

数控车宏程序编程方法及技巧课件

数控车宏程序编程方法及技巧课件

常见问题三:条件语句使用不当导致逻辑错误
条件语句使用不当、条件判断过于复杂、条件判断错误。
在宏程序中,条件语句可以根据条件控制程序的流程。如果条件语句使用不当,可能导致程序逻辑错误;条件判断过于复杂 ,会使程序难以理解和维护;条件判断错误,会导致程序结果不正确。
06 数控车宏程序编 程的未来发展趋 势与展望

THANKS
感谢观看
发展趋势一:智能化编程技术的普及与应用
智能化编程技术是指通过人工智能和机器学习等技术,实现数控车宏程序的自动化 和智能化。
随着技术的发展,越来越多的企业开始应用智能化编程技术,以提高生产效率和加 工质量。
未来,智能化编程技术将在数控车宏程序编程中得到广泛应用,并成为主流趋势。
发展趋势二
01
02
03
变量命名不规范、变量初始化不正确、变量值未更新。
在宏程序中,变量的使用是相当频繁的。如果变量命名不规范,可能导致程序混 乱;变量初始化不正确,将影响程序计算;变量值未更新,会导致程序结果不正 确。
常见问题二:循环嵌套过深导致程序复杂化
循环嵌套过深、循环次数过多、循环条件过于复杂。
在宏程序中,循环结构的使用可以简化编程,但过度使用循环可能导致程序复杂化。如果循环嵌套过 深,会使程序难以理解和维护;循环次数过多,会浪费程序运行时间;循环条件过于复杂,可能增加 程序出错的风险。
SELECT语句
根据不同的条件,执行不同的程序 段。
CASE语句
对多个条件进行判断,执行对应的 程序段。
宏程序中的函数与变量
函数
可以进行数学运算、逻辑运算、字符 串处理等操作。
变量
可以存储数据,作为函数参数传递等 。
04 数控车宏程序应 用实例

数控编程——宏程序教程

数控编程——宏程序教程

数控编程讲义第一篇铣工篇 (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代码编程基础》、以及国内外相关的论坛和博客等。

这些都可以帮助自己更好地理解宏程序编程的各方面知识点,也可以了解到最新的技术和应用。

总之,学习数控宏程序编程需要有系统的学习方法和耐心的实践过程。

逐步的掌握编程的技能和方法,并将其运用到实际的切削加工中,才能使自己的宏程序编程水平得到不断的提升和完善。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

宏程序大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出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;。

相关文档
最新文档