华中数控宏程序教案
华中数控车宏程序
华中数控宏程序一.什么就是宏程序?什么就是数控加工宏程序?简单地说,宏程序就是一种具有计算能力与决策能力的数控程序。
宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01 X[3+5] ;有表达式3+5(2)G00 X4 F[#1] ;有变量#1(3)G01 Y[50*SIN[3]] ;有函数运算2.使用了程序流程控制(决策能力),例如:(1)IF #3 GE 9 ;有选择执行命令……ENDIF(2)WHILE #1 LT #4*5 ;有条件循环命令……ENDW二.用宏程编程有什么好处?1.宏程序引入了变量与表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2.宏程序可以完成图形一样,尺寸不同的系列零件加工;3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5.使用宏程序能极大地简化编程,精简程序。
适合于复杂零件加工的编程。
一.宏变量及宏常量1.宏变量先瞧一段简单的程序:G00 X25、0上面的程序在X轴作一个快速定位。
其中数据25、0就是固定的,引入变量后可以写成: #1=25、0 ;#1就是一个变量G00 X[#1] ;#1就就是一个变量宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,……。
变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给程序的设计带来了极大的灵活性。
使用变量前,变量必需带有正确的值。
如#1=25G01 X[#1] ;表示G01 X25#1=-10 ;运行过程中可以随时改变#1的值G01 X[#1] ;表示G01 X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。
如:#2=3G[#2] X30 ;表示G03 X30例1 使用了变量的宏子程序。
宏程序编程
基于华中数控系统的宏程序编制
以椭圆为例:
1、获得椭圆的参数方程
椭圆上任意一点的坐标可表示
为:
X=A×cosa
Y=B×sina
A为长半轴长度
B为短半轴长度(仅对此图而言)
数控机床的坐标系与平面直角坐标系不同:
如图所示:
经转换可得:
在数控机床坐标中,椭圆上任意
一点坐标可表示为:
X=B×sina(半径值)
Z=A×cosa-40(坐标原点移动一
个半轴长)
由上面两图我们可得任意位置的椭圆在数控机床坐标系内的X与Z值的参数方程。
2、编程实例:
分析零件图,得要加工椭圆长半轴长为40mm,短半轴长为25mm,以角度a为变量,设置为#1,椭圆上任意点坐标可表示为:
x=2※25※sin[#1](直径编程)
z=cos[#1]-40
具体程序如下
O1
%1
T0101
S1000M03
G0X80Z2
G71U2R1P1Q2X0.4Z0.2F200
GOX100Z80
T0202
S2000M03
N1GOXOG42
G1Z0F80
G64
#1=0
WHILE#1LE[PI/2]
G1X[2※25※sin[#1]]Z[cos[#1]-40]
#1=#1+PI/180
ENDW
G1X70
Z-60
N2X80
GOX100Z80
M30。
数控课教案宏程序应用
数控课教案-宏程序应用一、教学目标1. 了解宏程序的定义和作用。
2. 掌握宏程序的编写方法和步骤。
3. 能够运用宏程序进行数控加工。
二、教学内容1. 宏程序的概念:介绍宏程序的定义和作用,解释宏程序在数控加工中的应用。
2. 宏程序的编写方法:讲解宏程序的编写方法和步骤,包括宏定义、宏调用和宏参数的设置。
3. 宏程序的应用实例:通过实例讲解如何运用宏程序进行数控加工,包括宏程序的调用和参数的赋值。
三、教学方法1. 讲授法:讲解宏程序的概念、编写方法和应用实例。
2. 示范法:演示如何编写宏程序并进行数控加工。
3. 练习法:让学生通过实际操作练习编写和应用宏程序。
四、教学准备1. 教学课件:制作课件,包括宏程序的概念、编写方法和应用实例的讲解。
2. 数控机床:准备一台数控机床,安装好相应的数控系统。
3. 练习材料:准备一些练习题和实例,让学生进行实际操作练习。
五、教学过程1. 导入:通过讲解宏程序在数控加工中的应用,引起学生对宏程序的兴趣。
2. 讲解宏程序的概念:介绍宏程序的定义和作用,解释宏程序在数控加工中的应用。
3. 讲解宏程序的编写方法:讲解宏程序的编写方法和步骤,包括宏定义、宏调用和宏参数的设置。
4. 示范宏程序的应用:通过实例讲解如何运用宏程序进行数控加工,包括宏程序的调用和参数的赋值。
5. 学生练习:让学生通过实际操作练习编写和应用宏程序。
6. 总结和反馈:对学生的练习进行点评和指导,解答学生的问题,总结宏程序的应用方法和技巧。
教学反思:在教学过程中,要注意引导学生理解和掌握宏程序的概念和作用,讲解清晰、示范到位,让学生能够通过实际操作练习编写和应用宏程序。
要及时解答学生的问题,给予学生足够的指导和支持,帮助他们掌握宏程序的应用方法和技巧。
六、教学评估1. 课堂问答:通过提问的方式检查学生对宏程序概念的理解和掌握程度。
2. 编写练习:布置编写宏程序的练习题,检查学生对宏程序编写方法的掌握。
华中数控铣床宏程序实例
G18G01X[#2]Z[#3]
#5=#2
WHILE#5GE2
G17G01X[#5]
#6=0
WHILE#6LT360
#7=#5*COS[#6*PI/180]
#8=#4*SIN[#6*PI/180]
G01X[#7]Y[#8]
#6=#6+1ENDW
#5=#5+5
ENDW
G54G00X0Y0Z50
M3S1500
Z3
G01Z0F250
#1=90
WHILE#1GE0
#2=30*COS[#1*PI/180]
#3=30*SIN[#1*PI/180]-30
G18G01X[#2]Z[#3]
#4=#2
WHILE#4LT43
G17X[#4]
G02I[-#4]
#4=#4+5
ENDW
G01X[-#2]
Z5
G01Z0F250
#1=180
WHILE#1LT270
#2=30*COS[#1*PI/180]
#3=30*SIN[#1*PI/180]
G18G01X[#2]Z[#3]
#4=#2
WHILE#4GE0
G17G01X[#4]
G02I[-#4]
#4=#4-5
ENDW
G01X[#2]
#1=#1+1
ENDW
G00Z50
M30
(精铣)
G54G00X0Y0Z50
M03S1500
Z5
G01Z0F250
#1=180
WHILE#1LT270
#2=30*COS[#1*PI/180]
#3=30*SIN[#1*PI/180]
任务5 使用宏指令编程的配合零件加工与操作华中数控
二、实训知识准备
勤 学
(二)宏程序编程
苦 应用举例
练 当#1和#2相等,或#3 和#4相等时,将0赋
值给#3,否则将1赋值给#3。
技 IF[#1EQ#2]OR[#3EQ#4] 能 #3=0 报 ELSE 国 #3=1
ENDIF
当#1和#2相等,并且#3和#4相等时, 将0赋值给#3。 IF [#1 EQ #2] AND [#3 EQ #4] #3=0 ENDIF
2233
三、方案设计
勤
学
(一)零件图样分析
苦
本零件为具有非圆曲线的零件配合件,零件要求较高的部位是
练 φ53mm、φ44mm,均有公差要求;椭圆及其他外圆表面粗糙度为
Ra1.6μm。因此,必须安排精车,以达到图样要求。
技 能 报 国
2244
三、方案设计
2.制定加工方案
勤 学 加工顺序安排如下:
苦 (1)使用端面车刀车削配合件1左端端面。(手动车削) 练
(三)椭圆编程思路
苦 用直线插补逼近非圆曲线
练
当 Zi=0,求出Xi=0
Zi=-0.1时,利用X表达式求出新的Xi=0.816
技
Zi=-0.2时,利用X表达式求出新的Xi=1.155
能
…….
报
Zi=-15时,利用X表达式求出新的Xi=10
国
通过运行G01 Xi_Zi_实现用直线段逼近非圆
曲线方法完成。
国
G02 X25Z25 R25
G00 G40 X10 Z10 取消刀具补偿
图1-45刀尖方位代码
99
二、实训知识准备
勤 学
(二)宏程序编程
苦 1.宏程序的概念
数控课教案宏程序应用
数控课教案-宏程序应用一、教学目标1. 理解宏程序的概念及其在数控加工中的应用。
2. 学会编写简单的宏程序,并进行实际操作。
3. 掌握宏程序的调用和参数设置方法。
二、教学内容1. 宏程序概述宏程序的定义宏程序的作用宏程序与普通程序的区别2. 宏程序的编写宏程序的语法结构宏参数的定义与使用宏程序的调用方式3. 宏程序的应用实例圆柱体加工宏程序螺纹加工宏程序复杂形状加工宏程序4. 宏程序的调试与优化宏程序的调试方法宏程序的优化技巧5. 宏程序的实际操作宏程序的导入与调用宏参数的设置与调整宏程序的应用与验证三、教学方法1. 讲授法:讲解宏程序的基本概念、语法结构和应用实例。
2. 演示法:展示宏程序的编写和实际操作过程。
3. 实践法:让学生动手编写和调试宏程序,巩固所学知识。
四、教学环境1. 教室环境:多媒体教学设备、计算机、投影仪等。
2. 实践环境:数控机床、数控仿真软件等。
五、教学评价1. 课堂问答:检查学生对宏程序基本概念的理解。
2. 编写练习:评估学生编写和调试宏程序的能力。
3. 实际操作:考核学生运用宏程序进行数控加工的能力。
六、教学资源1. 教材:数控编程与操作教程2. 辅助材料:宏程序应用PPT、案例分析文档3. 软件工具:数控仿真软件、编程软件4. 实物教具:数控机床、示教板七、教学过程1. 导入新课:通过PPT展示宏程序在数控加工中的应用场景,激发学生兴趣。
2. 讲解概念:详细讲解宏程序的定义、作用和语法结构。
3. 案例分析:分析实际加工中的宏程序应用实例,让学生理解宏程序的优势。
4. 编程实践:引导学生动手编写简单的宏程序,并进行调试和优化。
5. 课堂互动:鼓励学生提问、分享心得,巩固所学知识。
6. 总结回顾:对本节课内容进行总结,强调宏程序在实际加工中的应用价值。
八、教学策略1. 针对不同基础的学生,调整教学难度,确保教学内容符合学生实际需求。
2. 采用循序渐进的教学方法,让学生从简单实例入手,逐步掌握宏程序的编写和应用。
华中数控宏程序全套教程
华中数控宏程序全套教程名目序1一.什么是宏程序?1二.用宏程编程有什么好处?1一.宏变量及宏常量11.宏变量12.局部变量33.全局变量34.系统变量45.常量5二.运算符与表达式51.算术运算符52.条件运算符53.逻辑运算符54.函数65.表达式与括号66.运算符的优先级77.赋值号= 78.注释7三.程序流程操纵71.条件分支IF 82.条件循环WHILE 9四.子程序及参数递传111.一般子程序112.宏子程序113.全局变量传参数124.局部变量传参数125.系列零件加工146.高级参考16五.宏编程实例191.数车编程19(1)函数曲线加工通用宏程序19(2)抛物线车削1 19(3)抛物线车削2 20(4)抛物线车削3 20(5)抛物线车削4 21(6)抛物线车削5(G71与宏程序) 22(7)抛物线车削6 23(8)正弦线车削23(9)抛物线与椭圆车削24(10)椭圆粗、精车削25(11)用子程序完成粗、精加工26(12)变螺距螺纹282.数铣编程28(1)直线段靠近整园的宏程序29(2)螺旋线走刀29(3)来回铣削的方法30(4)铣平面31(5)铣斜面31(6)铣半圆柱33(7)铣半球35(8)多次旋转的宏编程37(9)切圆台与斜方台37(10)铣椭圆38(11)铣孔39(12)倒圆角加工39(14)抛物斜边岛屿加工43(15)凹球曲面加工44(16)螺纹镗刀铣螺纹45(17)圆柱45(18)直斜边岛屿加工45(19)圆弧斜边岛屿加工45(20)椭球面加工的宏程序实例45(21)自定义G指令46附件471.华中数控指令一览472.固定循环指令的宏程序实现47 G73 47G74 49G76 50G81 52G82 53G83 55G84 57G85 59G86 60G87 61G88 63G89 652.华中数控系统系统变量一览66(1)子程序嵌套局部变量 66(2)刀具有关系统变量67(3)坐标有关系统变量: 67(4)参考点有关系统变量 68(5)系统状态变量 703.数学知识71序一.什么是宏程序?什么是数控加工宏程序?简单地讲,宏程序是一种具有运算能力和决策能力的数控程序。
华中数控铣宏程序加工
宏程序加工实例一、宏指令编程1宏变量及常量(1)宏变量#0~#49当前局部变量#50~#199全局变量#200~#249 0层局部变量#250~#299 1层局部变量#300~#349 2层局部变量#350~#399 3层局部变量#400~#449 4层局部变量#450~#499 5层局部变量#500~#549 6层局部变量#550~#599 7层局部变量#600~#699刀具长度寄存器H0~H99#700~#799刀具半径寄存器D0~D99#800~#899刀具寿命寄存器#1000“机床当前位置X”#1001“机床当前位置Y”#1002“机床当前位置Z”#1003“机床当前位置A”#1004“机床当前位置B”#1005“机床当前位置C”#1006“机床当前位置U”#1007“机床当前位置V”#1008“机床当前位置W”#1009保留#1010“程编机床位置X”#1011“程编机床位置Y”#1012“程编机床位置Z”#1013“程编机床位置A”#1014“程编机床位置B”#1015“程编机床位置C”#1016“程编机床位置U”#1017“程编机床位置V”#1018“程编机床位置W”#1019保留#1020“程编工件位置X”#1021“程编工件位置Y”#1022“程编工件位置Z”#1023“程编工件位置A”#1024“程编工件位置B”#1025“程编工件位置C”#1026“程编工件位置U”#1027“程编工件位置V”#1028“程编工件位置W”#1029保留53#1030“当前工件零点X”#1031“当前工件零点Y”#1032“当前工件零点Z”#1033“当前工件零点A”#1034“当前工件零点B”#1035“当前工件零点C”#1036“当前工件零点U”#1037“当前工件零点V”#1038“当前工件零点W”#1039保留#1040“G54零点X”#1041“G54零点Y”#1042“G54零点Z”#1043“G54零点A”#1044“G54零点B”#1045“G54零点C”#1046“G54零点U”#1047“G54零点V”#1048“G54零点W”#1049保留#1050“G55零点X”#1051“G55零点Y”#1052“G55零点Z”#1053“G55零点A”#1054“G55零点B”#1055“G55零点C”#1056“G55零点U”#1057“G55零点V”#1058“G55零点W”#1059保留#1060“G56零点X”#1061“G56零点Y”#1062“G56零点Z”#1063“G56零点A”#1064“G56零点B”#1065“G56零点C”#1066“G56零点U”#1067“G56零点V”#1068“G56零点W”#1069保留#1070“G57零点X”#1071“G57零点Y”#1072“G57零点Z”#1073“G57零点A”#1074“G57零点B”#1075“G57零点C”#1076“G57零点U”#1077“G57零点V”#1078“G57零点W”#1079保留#1080“G58零点X”#1081“G58零点Y”#1082“G58零点Z”#1083“G58零点A”#1084“G58零点B”#1085“G58零点C”#1086“G58零点U”#1087“G58零点V”#1088“G58零点W”#1089保留#1090“G59零点X”#1091“G59零点Y”#1092“G59零点Z”#1093“G59零点A”#1094“G59零点B”#1095“G59零点C”#1096“G59零点U”#1097“G59零点V”#1098“G59零点W”#1099保留#1100“中断点位置X”#1101“中断点位置Y”#1102“中断点位置Z”#1103“中断点位置A”#1104“中断点位置B”#1105“中断点位置C”#1106“中断点位置U”#1107“中断点位置V”#1108“中断点位置W”#1109“坐标系建立轴”#1110“G28中间点位置X”#1111“G28中间点位置Y”#1112“G28中间点位置Z”#1113“G28中间点位置A”#1114“G28中间点位置B”#1115“G28中间点位置C”#1116“G28中间点位置U”#1117“G28中间点位置V”#111“8G28中间点位置W”#1119“G28屏蔽字”#1120“镜像点位置X”#1121“镜像点位置Y”#1122“镜像点位置Z”#1123“镜像点位置A”#1124“镜像点位置B”#1125“镜像点位置C”#1126“镜像点位置U”#1127“镜像点位置V”#1128“镜像点位置W”#1129“镜像屏蔽字”#1130“旋转中心(轴1)”#1131“旋转中心(轴2)”#1132“旋转角度”#1133“旋转轴屏蔽字”#1134保留#1135“缩放中心(轴1)”#1136“缩放中心(轴2)”#1137“缩放中心(轴3)”#1138“缩放比例”#1139“缩放轴屏蔽字”#1140“坐标变换代码1”#1141“坐标变换代码2”#1142“坐标变换代码3”#1143保留#1144“刀具长度补偿号”#1145“刀具半径补偿号”#1146“当前平面轴1”#1147“当前平面轴2”#1148“虚拟轴屏蔽字”#1149“进给速度指定”#1150“G代码模态值0”#1151“G代码模态值1”#1152“G代码模态值2”#1153“G代码模态值3”#1154“G代码模态值4”#1155“G代码模态值5#1156“G代码模态值6”#1157“G代码模态值7”#1158“G代码模态值8”世纪星铣床数控系统(HNC-21/22M)编程说明书54#1159“G代码模态值9”#1160“G代码模态值10”#1161“G代码模态值11”#1162“G代码模态值12”#1163“G代码模态值13”#1164“G代码模态值14”#1165“G代码模态值15”#1166“G代码模态值16”#1167“G代码模态值17”#1168“G代码模态值18”#1169“G代码模态值19”#1170“剩余CACHE”#1171“备用CACHE”#1172“剩余缓冲区”#1173“备用缓冲区”#1174保留#1175保留#1176保留#1177保留#1178保留#1179保留#1180保留#1181保留#1182保留#1183保留#1184保留#1185保留#1186保留#1187保留#1188保留#1189保留#1190“用户自定义输入”#1191“用户自定义输出”#1192“自定义输出屏蔽”#1193保留#1194保留(2)常量PI:圆周率πTRUE:条件成立(真)FALSE:条件不成立(假)2运算符与表达式(1)算术运算符:+,-,*,/(2)条件运算符EQ(=),NE(≠),GT(>),GE(≥),LT(<),LE(≤)(3)逻辑运算符AND,OR,NOT(4)函数SIN,COS,TAN,ATAN,A TAN2,ABS,INT,SIGN,SQRT,EXP(5)表达式用运算符连接起来的常数,宏变量构成表达式。
华中数控车宏程序【范本模板】
华中数控宏程序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序.宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01 X[3+5] ;有表达式3+5(2)G00 X4 F[#1];有变量#1(3)G01 Y[50*SIN[3]] ;有函数运算2.使用了程序流程控制(决策能力),例如:(1)IF #3 GE 9 ;有选择执行命令……ENDIF(2)WHILE #1 LT #4*5 ;有条件循环命令……ENDW二.用宏程编程有什么好处?1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2.宏程序可以完成图形一样,尺寸不同的系列零件加工;3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5.使用宏程序能极大地简化编程,精简程序。
适合于复杂零件加工的编程。
一.宏变量及宏常量1.宏变量先看一段简单的程序:G00 X25.0上面的程序在X轴作一个快速定位.其中数据25.0是固定的,引入变量后可以写成:#1=25.0 ;#1是一个变量G00 X[#1];#1就是一个变量宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,……。
变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给程序的设计带来了极大的灵活性。
使用变量前,变量必需带有正确的值。
如#1=25G01 X[#1] ;表示G01 X25#1=—10 ;运行过程中可以随时改变#1的值G01 X[#1] ;表示G01 X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。
如:#2=3G[#2] X30 ;表示G03 X30例1 使用了变量的宏子程序。
数控车床华中系统用户宏程序编程教材
在数控编程中,宏程序编程灵活、高效、快捷,是加 工编程的重要补充。宏程序不仅可以实现象子程序
那样,对编制相同加工操作的程序非常有用,还可
以完成子程序无法实现的特殊功能,例如,型腔加
工宏程序、固定加工循环宏程序、球面加工宏程序、
锥面加工宏程序等。
华中数控用户宏程序
HNC-21/22T 、HNC-21M为用户配备了强有力 的类似于高级语言的宏程序功能,用户可以使 用变量进行算术运算、逻辑运算和函数的混合 运算,此外宏程序还提供了循环语句、分支语 句和子程序调用语句,利于编制各种复杂的零 件加工程序,减少乃至免除手工编程时进行繁 琐的数值计算,以及精简程序量。
用户宏程序训练
数控车削加工中公式曲线宏程序编程模板的 应用
一、公式曲线宏程序编程模板的原理和使用步骤 1、如何选定自变量 1)公式曲线中的X和Z坐标任意一个都可以被定义为自变量
2)一般选择变化范围大的一个作为自变量,如图1 ★
3)根据表达式方便情况来确定X或Z作为自变量,如图3★ 4)为了表达方便,在这里将和X坐标相关的变量设为#1、 #11、#12等,将和Z坐标相关的变量设为#2、#21、#22等。 际中变量的定义完全可根据个人习惯进行定义
6、如何套用宏编程模板
1)设Z坐标为自变量#2,X坐标为因变量#1,自变量步长为 ΔW,则公式曲线段的精加工程序宏指令编程模板如下: #2=Z1 (给自变量#2赋值Z1:Z1是公式曲线自身坐标 系下起始点的坐标值) WHILE #2 GE Z2 (自变量#2的终止值Z2:Z2是公式曲线自 身坐标系下终止点的坐标值) #1=f(#2) (函数变换:确定因变量#1(X)相对于自变 量#2(Z)的宏表达式) #11=±#1+ΔX (计算工件坐标系下的X坐标值#11:编程中 使用的是正轮廓,#1前冠以正,反之冠以负;ΔX为公式曲线 自身坐标原点相对于编程原点的X轴偏移量。) #22=#2+ΔZ (计算工件坐标系下的Z坐标值#22:ΔZ为公 式曲线自身坐标原点相对于编程原点的Z轴偏移量) G01 X[2*#11] Z[#22](直线插补,X为直径编程) #2=#2-ΔW (自变量以步长ΔW变化) ENDW (循环结束)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华中数控宏程序教案.txt人生在世,难敌宿命,沉沦其中。
我不爱风尘,似被前缘误!!我只为我最爱的人流泪“我会学着放弃你,是因为我太爱你”赢了你,我可以放弃整个世界华中数控宏程序教案
一.什么是宏程序?
什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。
宏程序具有如下些特点:
1.使用了变量或表达式(计算能力),例如:
(1)G01X[3+5];有表达式3+5
(2)G00X4F[#1];有变量#1
(3)G01Y[50*SIN[3]];有函数运算
2.使用了程序流程控制(决策能力),例如:
(1)IF#3GE9;有选择执行命令
……
ENDIF
(2)WHILE#1LT#4*5;有条件循环命令
……
ENDW
二.用宏程编程有什么好处?
1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;
2.宏程序可以完成图形一样,尺寸不同的系列零件加工;
3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;
4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;
5.使用宏程序能极大地简化编程,精简程序。
适合于复杂零件加工的编程。
一.宏变量及宏常量
1.宏变量
先看一段简单的程序:
G00X25.0
上面的程序在X轴作一个快速定位。
其中数据25.0是固定的,引入变量后可以写成:
#1=25.0;#1是一个变量
G00X[#1];#1就是一个变量
宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,……。
变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给程序的设计带来了极大的灵活性。
使用变量前,变量必需带有正确的值。
如
#1=25
G01X[#1];表示G01X25
#1=-10;运行过程中可以随时改变#1的值
G01X[#1];表示G01X-10
用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。
如:
#2=3
G[#2]X30;表示G03X30
例1使用了变量的宏子程序。
%1000
#50=20;先给变量赋值
M98P1001;然后调用子程序
#50=350;重新赋值
M98P1001;再调用子程序
M30
%1001
G91G01X[#50];同样一段程序,#50的值不同,X移动的距离就不同
M99
2.局部变量
编号#0~#49的变量是局部变量。
局部变量的作用范围是当前程序(在同一个程序号内)。
如果在主程序或不同子程序里,出现了相同名称(编号)的变量,它们不会相互干扰,值也可以不同。
例
%100
N10#3=30;主程序中#3为30
M98P101;进入子程序后#3不受影响
#4=#3;#3仍为30,所以#4=30
M30
%101
#4=#3;这里的#3不是主程序中的#3,所以#3=0(没定义),则:#4=0
#3=18;这里使#3的值为18,不会影响主程序中的#3
M99
3.全局变量
编号#50~#199的变量是全局变量(注:其中#100~#199也是刀补变量)。
全局变量的作用范围是整个零件程序。
不管是主程序还是子程序,只要名称(编号)相同就是同一个变量,带有相同的值,在某个地方修改它的值,所有其它地方都受影响。
例
%100
N10#50=30;先使#50为30
M98P101;进入子程序
#4=#50;#50变为18,所以#4=18
M30
%101
#4=#50;#50的值在子程序里也有效,所以#4=30
#50=18;这里使#50=18,然后返回
M99
为什么要把变量分为局部变量和全局变量?如果只有全局变量,由变量名不能重复,就可能造成变量名不够用;全局变量在任何地方都可以改变它的值,这是它的优点,也是它的缺点。
说是优点,是因为参数传递很方便;说是缺点,是因为当一个程序较复杂的时候,一不小心就可能在某个地用了相同的变量名或者改变了它的值,造成程序混乱。
局部变量的使用,解决了同名变量冲突的问题,编写子程序时,不需要考虑其它地方是否用过某个变量名。
什么时候用全局变量?什么时候用局部变量?在一般情况下,你应优先考虑选用局部变量。
局部变量在不同的子程序里,可以重复使用,不会互相干扰。
如果一个数据在主程序和子程
序里都要用到,就要考虑用全局变量。
用全局变量来保存数据,可以在不同子程序间传递、共享、以及反复利用。
华中数控宏程序编程实例
(1)宏程序编抛物线车削
%0342
T0101M03S600
G00X20.5Z2
#11=12;B初值
#10=SQRT[2*#11];A初值
WHILE#10LE8
G90G01X[2*#10]Z[12-#11]F200
#10=#10+0.1
#11=#10*#10/2
ENDW
G01X16Z[-32+12]
Z-28
U4
G00X20.5Z2M05
M30
(2)宏程序编正弦线
%3404
M03S600T0101
G92X80Z30
G00X25Z3
G71U0.6R0.6P6Q13X0.8F100
N6G0X17
#11=0
WHILE#11GE-25
#9=#11*PI/10;
#10=3.5*SIN[#9]
G01X[17-2*#10]Z[#11]F100
#11=#11-0.5
N13ENDW
G01X24Z-25
Z-30
X30
G00X80Z30
M30
(3)宏程序编抛物线与椭圆
%8002
G92X50Z100
M98P8001A8B5C4U32V40W55
G36G90X50Z0
M30
%8001
G64G37(连续切削,半径编程)
#10=0#11=0(抛物线起点)
WHILE#11LE#20
G01X[#10]Z[-#11]F150
#10=#10+0.08(抛物线X增量)
#11=#10*#10/#2(计算抛物线z)
ENDW
#50=SQRT[#20*#2](抛物线与椭圆交接处半径) G01X[#50]Z[-#20](抛物线终点)
G01Z[-#21](直线终点)
#12=0#13=0(椭圆起点)
WHILE#13LE#1
#12=#0/#1*SQRT[#1*#1-#13*#13](椭圆X增量) G01X[#50+#0-#12]Z[-#21-#13]
#13=#13+0.08(椭圆z增量)
ENDW
G01X[#50+#0]Z[-#21-#1](椭圆终点)
Z[-#22]
U2
G0X50Z100
M99。