宏程序教案

时间:2019-05-12 16:42:03下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《宏程序教案》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《宏程序教案》。

第一篇:宏程序教案

数控宏程序的概念

用变量的方式进行数控编程的方法就叫做数控宏程序编程。

一、控宏程序的分类

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

一般说来,华中的数控机床用的是B类宏程序,广州数控机床用的是A类宏程序。

二、数控宏程序的优点

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#103

1)逻辑或 #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#10

3;(#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,执行下一程序段。

3)条件转移2 #j NE #k(≠)

编程格式 G65 H82 Pn Q#j R#k(n为程序段号)

例 G65 H82 P1000 Q#101 R#102

当#101≠ #102,转移到N1000程序段;若#101=#102,执行下一程序段。

4)条件转移3 #j GT #k(>)

编程格式 G65 H83 Pn Q#j R#k(n为程序段号)

例 G65 H83 P1000 Q#101 R#102

当#101 > #102,转移到N1000程序段;若#101 ≤#102,执行下一程序段。

5)条件转移4 #j LT #k(<)

编程格式 G65 H84 Pn Q#j R#k(n为程序段号)

例 G65 H84 P1000 Q#101 R#102

当#101 < #102,转移到N1000;若#101 ≥ #102,执行下一程序段。

6)条件转移5 #j GE #k(≥)

编程格式 G65 H85 Pn Q#j R#k(n为程序段号)

例 G65 H85 P1000 Q#101 R#102

当#101≥ #102,转移到N1000;若#101<#102,执行下一程序段。

7)条件转移6 #j LE #k(≤)

编程格式 G65 H86 Pn Q#j Q#k(n为程序段号)

例 G65 H86 P1000 Q#101 R#102

当#101≤#102,转移到N1000;若#101>#102,执行下一程序段。

四、B类宏程序

1. 定义

#I=#j

2. 算术运算

#I=#j+#k(加)

#I=#j-#k(减)

#I=#j×#k(乘)

#I=#j/#k(除)

3.1 逻辑函数之布尔函数

= EQ 等于

≠ NE 不等于

> GT 大于

< LT 小于

≥ GE 大于或等于

≤ LE 小于或等于

例:#I = #j 即#I EQ #J

3.2 逻辑函数之二进制函数

#I=#J AND #k(与,逻辑乘)

#I=#J OR #k(或,逻辑加)

#I=#J XOR #k(非,逻辑减)

4.三角函数

#I=SIN[#j] 正弦

#I=COS[#j] 余弦

#I=TAN[#j] 正切

#I=ASIN[#j]反 正弦

#I=ACOS[#j]反 余弦 #I=ATAN[#j]

5.四舍五入函数

#I=ROUND[#j] 四舍五入化整

#I=FIX[#j] 上取整

反正切

#I=FUP[#j] 下取整

6.辅助函数

#I=SQRT[#j]平方根

#I=ABS[#j] 绝对值

#I= LN [#j] 自然对数

#I= EXP [#j] 指数函数

7.变换函数 #I=BIN[#j] BCD→BIN(十进制转二进制)

#I=BCD[#j] BIN→BCD(二进制转十进制)

8.转移和循环

1〉.无条件的转移 格式: GOTO 1; GOTO #10;

2〉.条件转移1 格式: IF[<条件式>] GOTO n

条件式:例:#j=#k用 #j EQ #k 表示,即 IF[#j EQ #k] GOTO n

3〉.条件转移2 格式: IF[<条件式>] THEN #I

例:IF[#j EQ #k] THEN #a=#b

4〉.循环 格式:WHILE [<条件式>] DOm,(m=1、2、3)

N10~~~~~~~~~

N20~~~~~~~~~~~~

ENDm(上下两个m只能为1、2、3且必须相

同,这样才能够成一段程序的循环)

1. 说明 1)角度单位为度 例:90度30分为90.5度

2)ATAN函数后的两个边长要用“1”隔开 例:#1=ATAN[1]/[-1]时,#1为了35.0

3)ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入

例:设#1=1.2345,#2=2.3456,设定单位1μm

G91 X-#1;X-1.235 X-#2 F300;X-2.346 X[#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.0

5)简写函数时,可只写开头2个字母 例:ROUND→RO FIX→FI GOTO→GO

6)优先级 函数→乘除(*,1,AND)→加减(+,-,OR,XOR)例:#1=#2+#3*SIN[#4];

7)括号为中括号,最多5重,园括号用于注释语句 例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)

转移与循环指令

第二篇:宏程序加工教案

《数控铣加工技术》教案

宏程序加工实例

一、宏指令编程

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,ATAN2,ABS,INT,SIGN,SQRT,EXP(5)表达式

用运算符连接起来的常数,宏变量构成表达式。例如:175/SQRT[2]*COS[55*PI/180]; #3*6 GT 14; 3赋值语句

格式:宏变量=常数或表达式

《数控铣加工技术》教案

把常数或表达式的值送给一个宏变量称为赋值。例如:#2=175/SQRT[2]*COS[55*PI/180];

#3=124.0;世纪星铣床数控系统(HNC-21/22M)编程说明书 4条件判别语句IF,ELSE,ENDIF 格式(i):IF条件表达式 „ ELSE „ ENDIF 格式(ii):IF条件表达式 „ ENDIF 5循环语句WHILE,ENDW 格式:WIIILE条件表达式 „ ENDW 条件判别语句的使用参见宏程序编程举例。循环语句的使用参见宏程序编程举例。

二、宏程序编制举例 例1:G81宏程序 例2 椭圆编程程序:

a=50 b=30的一个椭圆;

弧度增量:0.1 宏程序:

%1 G54G90G17G21 M03S3000 G00X50Y0Z10 G01 Z-1 F300 #1=0 #2=50 #3=30 WHILE #1 LT 2*PI #4=#2*COS#1 #5=#3*SIN#1 G01 X[#4] Y[#5]

#1=#1+0.1 《数控铣加工技术》教案

ENDW G01 X__Y__Z100;

M30 % 例3抛物线编程: Y=0.1 *X*X %0206 G54M03S600T1D1 M03S6000 G41 X27.9 Y32 D1 #1=17.9 G01 X[#1+10] Y[0.1*#1*#1-8]

#1=#1-0.1 IF[#1GE-19.8] GOTO__ G40 G01 X__Y__ G00Z100 M30 % 例4切圆台与斜方台,各自加工3个循环,要求倾斜10°的斜方台与圆台相 切,圆台在方台之上,顶视图见图3.50。

%8002 #10=10.0;圆台阶高度

《数控铣加工技术》教案

#11=10.0;方台阶高度

#12=124.0;圆外定点的X坐标值 #13=124.0;圆外定点的Y坐标值 #101=8.0刀具半径偏置(粗加工)#102=6.5刀具半径偏置(半精加工)#103=6.0刀具半径偏置(精加工)N01 G92 X0.0 Y0.0 Z10.0 #0=0 N06 G00 X[?#12]Y[?#13];→A N07 G01 Z[?#10]M03 S600 F200;Z轴进刀,准备加工圆台 WHILE#0 LT 3;加工圆台

N[08+#0*6]G01 G42 X[?#12/2]Y[?90/2]F280.0 D[#0+101];→B N[09+#0*6]X[0]Y[?90/2];→C N[10+#0*6]G03 J[90/2];整圆加工

N[11+#0*6]G01 X[#12/2]Y[?90/2];→B’ N[12+#0*6]G40 X[#12]Y[?#13];→A’ N[13+#0*6]G00 X[-#12]Y[?#13];→A #0=#0+1;#0中数值加1 ENDW N100 Z[-#10-#11];Z轴进刀,准备加工斜方台

#2=90/SQRT[2]*COS[55*PI/180];P1点坐标(X=-#12,Y=-#13)#3=90/SQRT[2]*SIN[55*PI/180] #4=90*COS[10*PI/180];P1 P2间X增量为#4,Y增量为#5 #5=90*SIN[10*PI/180] #0=0 WHILE#0 LT 3;加工斜方台

N[101+#0*8]G01 G42 X[?#12/2]Y[?90/2]F280.0 D[#0+101];→B N[102+#0*8]X[?#2]Y[?#3];→P1 N[103+#0*8]G91 X[+#4]Y[+#5];→P2 N[104+#0*8]X[?#5]Y[+#4];→P3 N[105+#0*8]X[?#4]Y[?#5];→P4 N[106+#0*8]X[+#5]Y[?#4];→P1 N[107+#0*8]G90 X[#12/2]Y[?90/2];→B’ N[108+#0*8]G00 G40 X[?#12]Y[?#13];→A #0=#0+1 ENDW G00 X0 Y0 M05 M30 《数控铣加工技术》教案

例5要求沿直线方向钻一系列孔,直线的倾角由C65指令中的x,Y变量来决定,如图所示。

%100G54G21 M03 S1000 G90G00X1Y1Z20 G65P10 M05 M30 %10 #10=10 孔数10 #11=100 进给速度100 #12=50 长轴50 #13=25 短轴25 #14=-10 孔深10 G98G81X1Y1Z[#14]F[#11]R2 G91 WHILE[#10GT0] #10=#10-1 G81 X[#12]Y[#13]R0 ENDW M99 例6加工一椭圆,椭圆长轴为100 mm,短轴为50 mm。

《数控铣加工技术》教案

第三篇:华中数控宏程序教案

华中数控宏程序教案.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

第四篇:数控编程--宏程序教案

华中数控加工中心编程---宏程序

教案

一、组织教学

检查学生出勤情况

二、复习提问

1、画图,椭圆怎么加工

2、举例,一个任意形状的工件,如何在边上倒圆角

三、相关专业理论基础

1、看、画图零件

2、加工工艺分析与编写数控加工工艺卡

3、装夹方法与定位方法的分析

4、华中系统编程规则

5、刀具的选择

6、检验方法与检测技巧

三、课题训练思路

采用综合例题方式,按上述要求逐一分组进行,加工前教师进行加工讲评,对程序验证后进行加工,加工完教师进行总结讲评,指出加工过程中的错误和不合格项。

四、课题内容 用数控加工中心铣床加工出如下图所示零件,材料为铝,毛坯为75*75mm,按图样要求完成零件的加工。

五、新授课

如何使加工中心这种高效自动化机床更好地发挥效益,其关键之一,就是开发和提高数控系统的使用性能。宏程序的应用,是提高数控系统使用性能的有效途径。下面就宏程序的应用。

(一)什么是宏程序?

什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。宏程序具有如下些特点: 1.使用了变量或表达式(计算能力),例如:(1)G01X[#3+#5];有表达式#3+#5(2)G00X4F[#1];有变量#1(3)G01Y[50*SIN[#3]];有函数运算

2.使用了程序流程控制(决策能力),例如:(1)WHILE有条件循环命令

(二)用宏程编程有什么好处?

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 M993.全局变量

编号#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 为什么要把变量分为局部变量和全局变量?如果只有全局变量,由变量名不能重复,就可能造成变量名不够用;全局变量在任何地方都可以改变它的值,这是它的优点,也是它的缺点。说是优点,是因为参数传递很方便;说是缺点,是因为当一个程序较复杂的时候,一不小心就可能在某个地用了相同的变量名或者改变了它的值,造成程序混乱。局部变量的使用,解决了同名变量冲突的问题,编写子程序时,不需要考虑其它地方是否用过某个变量名。什么时候用全局变量?什么时候用局部变量?在一般情况下,你应优先考虑选用局部变量。局部变量在不同的子程序里,可以重复使用,不会互相干扰。如果一个数据在主程序和

子程序里都要用到,就要考虑用全局变量。用全局变量来保存数据,可以在不同子程序间传递、共享、以及反复利用。

(四)常量 PI:圆周率π

角度用弧度表示:1°对应 PI/180弧度

(五)运算符

1、算数运算符 +-* /

2、条件运算符

EQ(=)NE(≠)GT(>)GE(≥)LT(<)LE(≦)

3、逻辑运算符

AND(与)OR(或)NOT(异或)

(六)函数

SIN[正弦] COS[余弦] TAN[正切] EXP[指数] ATAN[反正切] ABS[绝对值] INT[取整] FIX[上取整] FUP[下取整] SQRT[开方]

(六)循环语句(WHILE语句)(七)宏指令编程

%O0001 #1=20(定义a值)#2=10(定义b值)

#4=5(定义刀具补偿半径R值)#5=0(定义步距角初始值)

G90G54G0X0Y0S1500M3 G43X#1Y#2D01 G01Z-5F30 G01Y0F100 WHILE[#5LE360] G01X[#1*COS[#5*PI/180]]Y-[#2*SIN[#5*PI/180]] #5=#5+2 ENDW GOG40Z100 M30 %

六、结束语

宏程序是数控加工必不可少的编程方法,只要我们掌握了宏程序的编程原理,对规则几何图形建立数学模型,就能解决实际加工中各种几何形状规则零件的加工和“疑难杂症”,同时宏程序编制简单,通用性强,加工效率高,在数控加工中有着广泛的应用。

第五篇:数控铣床宏程序编程 经典

变量

普通加工程序直接用数值指定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可以用常数赋值。左边的变量也可以用表达式赋值。

功能 格式 备注 定义 #i=#j 加法

减法

乘法

除法 #i=#j+#k;

#i=#j-#k;

#i=#j*#k;

#i=#j/#k;正弦

反正弦

余弦

反余弦

正切

反正切 #i=sin[#j;

#i=asin[#j];

#i=cos[#j];

#i=acos[#j];

#i=tan[#j]

#i=atan[#j]/[#k] 角度以度指定,90o30'表示为90.5度。平方根

绝对值

舍入

上取整

下取整

自然对数

指数函数 #i=SQRT[#j];

#i=ABS[#j];

#i=ROUNG[#j];

#i=FIX[#j];#i=FUP[#j];

#i=LN[#j];

#i=EXP[#j];或

异或

#i=#jOR#k;

#i=#jXOR#k;

#i=#jAND#k;逻辑运算一位一位地按二进制数执行。从BCD转为BIN

从BIN转为BCD #i=BIN[#j];

#i=BCD[#j];用于与PMC的信号交换。

说明:

角度单位

函数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

下载宏程序教案word格式文档
下载宏程序教案.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    加工中心铣螺纹宏程序精华[最终版]

    加工中心通用铣螺纹宏程序编程教程使用G03/G02三轴联动走螺旋线,刀具沿工件表面(孔壁或圆柱外表)切削。螺旋插补一周,刀具Z向负方向走一个螺距量。 工作原理 使用G03/G02三轴联......

    数控机床宏程序编程的技巧和实例

    论文: 数控机床宏程序编程的技巧和实例 2011年8月11日 前言 随着工业技术的飞速发展,产品形状越来越复杂,精度要求越来越高,产品更新换代越来越快,传统的设备已不能适应新要求。......

    数控车B类宏程序的简单入门

    数控车B类宏程序的简单入门. 一、前言 很多做数控车的朋友,看着别人都能够熟练的运用宏编程和加工,自己除了羡慕外也曾经多少次暗暗下决心决定学好宏,但苦于没有老师和实际的教......

    几种典型宏程序的编写方法(精选五篇)

    圆周打孔宏程序#11 代表中心点X坐标#12 代表中心点Y坐标 #13 代表中心圆半径#14 代表打深度#15 代表起始角#16 代表孔的个数#17代表安全高度#18代表参考高度#19 代表下刀速......

    数控铣床椭圆形加工宏程序的编程实例

    数控铣床椭圆形加工宏程序的编程实例 实际应用中经常会遇到各种各样的椭圆形加工特征。在现今的数控系统中,无论硬件数控系统,还是软件数控系统,其插补的基本原理是相同的,只是......

    宏程序车削螺纹结合G76的进刀思路

    宏程序车削螺纹结合G76的进刀思路 是的自己最近一段时间与大家交流时 很多同行感觉宏程序车螺纹时走刀不好 因感觉每次下刀一样 例如 每次下刀都是20丝 第一刀是20丝 第二......

    万能教案

    万能教案模板 说课是教师职业的基本素养,说课要求教师对教学大纲、教学目的、课堂设计很了解,说课要包括:教材、目标、重点、难点、教法、学法、过程、板书、小结。 说课基本......

    教案

    小姐,在社会的不断发展中,被赋予了不同的含义。 “小姐”本是对年轻女子的一个称谓,表示爱称或尊称。对中国人来说,它既不是舶来品,也不属于资本主义的产物。根据《现代汉语词典......