2.5 数控铣加工数控铣加工的的 宏指令及宏程序 宏指令编程:是指可以使用变量进行算术运算、逻辑运宏指令编程:是指可以使用变量进行算术运算、逻辑运算和函数混合运算的程序编写形式算和函数混合运算的程序编写形式可编制各种复杂的零件加工程序,增强机床的加工能力,可编制各种复杂的零件加工程序,增强机床的加工能力,同时可精简程序量同时可精简程序量各种数控系统的宏程序格式和用法均有所不同各种数控系统的宏程序格式和用法均有所不同以下以华中数控以下以华中数控HNC-21MHNC-21M系统为例介绍宏指令编程系统为例介绍宏指令编程第一节第一节 变量及其运算变量及其运算一、宏变量一、宏变量v 在宏程序中使用的变量称为宏变量在宏程序中使用的变量称为宏变量v 宏变量值可在程序中修改或利用宏变量值可在程序中修改或利用MDIMDI面板操作进行修改面板操作进行修改二、二、宏变量表示宏变量表示#0#49 当前局部变量当前局部变量#50#100 全局变量全局变量二、宏变量运算二、宏变量运算1 1、算术运算、算术运算:主要是指加、减、乘、除、乘方、函数等主要是指加、减、乘、除、乘方、函数等 (加)(减)*(乘)(除)SIN (正弦)ASIN (反正弦)COS (余弦)ACOS (反余弦)TAN (正切)ATAN (反正切)SQRT (平方根)ABS (绝对值)ROUND (舍入)EXP (指数)LN (对数)FIX (上取整)FUP (下取整)MOD (取余)2 2、数学和逻辑运算、数学和逻辑运算:通常是指两个数值的比较或者关系。
通常是指两个数值的比较或者关系常用的运算有:常用的运算有:EQ (等于)NE (不等于)GT (大于)GE(大于且等于)LT (小于)LE(小于且等于)AND(与)OR (或)NOT(非)函 数 格 式 赋值 Definition#i=#j 求和 Sum 求差 difference 乘积 Product 求商 Quotient#i=#j+#k#i=#j-#k#i=#j*#k#i=#j/#k 正弦 sine 余弦 cosine 正切 tangent 反正切 arctangent#i=SIN#j#i=COS#j#i=TAN#j#i=ATAN#J/#k 平方根 Square root 绝对值 Absolute value 四舍五入 Rounding off#i=SQRT#j#i=ABS#J#I=ROUND#J 或 OR 异或 XOR 与 AND#I=#J OR#K#I=#J XOR#K#I=#J 三、变量赋值三、变量赋值1 1、赋值、赋值 赋值是指将一个数据赋予给一个变量赋值是指将一个数据赋予给一个变量如:如:#1#11010,则表示变量则表示变量#1#1的值是的值是1010变量值变量值赋值符号赋值符号变量符号变量符号2 2、赋值规则、赋值规则(1 1)赋值号两边内容不能随意互换,左边只能是变量,右边只能是表赋值号两边内容不能随意互换,左边只能是变量,右边只能是表达式。
达式2 2)一个赋值语句只能给一个变量赋值一个赋值语句只能给一个变量赋值3 3)可以多次向同一个变量赋值,新变量值取代原变量值可以多次向同一个变量赋值,新变量值取代原变量值4 4)赋值语句具有运算功能,它的一般形式为:变量表达式赋值语句具有运算功能,它的一般形式为:变量表达式5 5)在赋值运算中,表达式可以是变量自身与其它数据的运算结果在赋值运算中,表达式可以是变量自身与其它数据的运算结果6 6)赋值表达式的运算顺序与数学运算顺序相同赋值表达式的运算顺序与数学运算顺序相同7 7)不能用变量代表的地址符有:不能用变量代表的地址符有:O O、N N、:、:、/四、分支和循环四、分支和循环 在程序中可用在程序中可用GOTO语句和语句和IF语句改变控制执行语句改变控制执行顺序v分支和循环操作共有三种类型分支和循环操作共有三种类型:GOTO 语句语句无条件分支(转移)无条件分支(转移)IF语句语句条件分支条件分支;if,thenWHILE语句语句 循环;循环;while1 1、无条件分支无条件分支GOTO语句语句控制转移(分支)到顺序号控制转移(分支)到顺序号n n所在位置所在位置顺序号可用表达式指定顺序号可用表达式指定。
格式:格式:GOTO n;n n(转移到的程序段)顺序号(转移到的程序段)顺序号例:例:GOTO1;GOTO#10;2 2、条件分支条件分支IF语句语句 在在IF后指定一条件,当条件满足时,转移到顺序号为后指定一条件,当条件满足时,转移到顺序号为n的程的程序段,不满足则执行下一程序段序段,不满足则执行下一程序段格式:格式:IF 表达式表达式 GOTO n;.Nn;条件表达式由两变量或一变量一常数中间夹比较运算符组成,条件条件表达式由两变量或一变量一常数中间夹比较运算符组成,条件表达式必需包含在一对方括号内条件表达式可直接用变量代替表达式必需包含在一对方括号内条件表达式可直接用变量代替2 2、例程例程 求求1 11010的和的和O9500;#1=0;和和#2=1;加数加数N1 IF#2 GT 10 GOTO2;相加条件相加条件#1=#1+#2;相加相加#2=#2+1;下一加数下一加数 GOTO1 返回返回1N2 M30;结束结束3 3、循环循环WHILE语句语句 在在WHILE 后指定一条件表达式,当条件满足时,执行后指定一条件表达式,当条件满足时,执行DO到到END之间的程序,之间的程序,(然后返回到然后返回到WHILE 重新判断条重新判断条件件,),)不满足则执行不满足则执行END后的下一程序段。
后的下一程序段格式:格式:WHILE 条件表达式条件表达式;.ENDW;第二节第二节 宏程序应用宏程序应用例例1主程序:主程序:O0001 G40 G90 G92 X0 Y0 Z0;O0001 G40 G90 G92 X0 Y0 Z0;确定坐标系确定坐标系;N10 G65 P0002 A100 B120 C150;N10 G65 P0002 A100 B120 C150;调用宏程序并赋初值调用宏程序并赋初值;N20 M30;N20 M30;程序结束程序结束;子程序:子程序:O0002 G01 X#1 Y#2 O0002 G01 X#1 Y#2 F#3+#1F#3+#1;子程序运行子程序运行;N10 M99;N10 M99;返回主程序返回主程序;第二节第二节 宏程序应用宏程序应用例例2:加工一椭圆:加工一椭圆 椭圆长轴为椭圆长轴为100100,短轴为,短轴为50 50 O100XXYY50第二节第二节 宏程序应用宏程序应用加工路线为加工路线为O O X X Y Y X X Y Y X X O O假如现在要加工内形,它的刀具轨迹如下图假如现在要加工内形,它的刀具轨迹如下图 程序如下:程序如下:O0001 O0001 N10N10 G92 X0 Y0 Z0 S1200 M03;G92 X0 Y0 Z0 S1200 M03;确定坐标系确定坐标系;N20 N20 G01 G41 X50;G01 G41 X50;图图1 1中中OXOX距离距离;N30N30#1=0;#1=0;将角度设为自变量,赋初值为将角度设为自变量,赋初值为0;0;N40N40 X50 X50*COS#1 Y25COS#1 Y25*SIN#1 F200;SIN#1 F200;XYXY轴联动的步距轴联动的步距;N50 N50#1=#1#1=#11;1;自变量每次自加自变量每次自加1O;1O;N60 N60 IF#1LT360 GOTO IF#1LT360 GOTO 4040;如果变量自加后不足如果变量自加后不足360360度,则转到第度,则转到第4040段段 执行,否则执行下一段执行,否则执行下一段;(4040前不用加行号前不用加行号N N)N70 N70 GO0 G40 X0;GO0 G40 X0;撤消刀补,回到起点撤消刀补,回到起点 N80 N80 M30;M30;程序结束程序结束 说明说明v 若要提高椭圆的加工精度,可将自变量的角度(步距)若要提高椭圆的加工精度,可将自变量的角度(步距)改小(如改小(如0.10.1度),修改程序很简单。
度),修改程序很简单v 若要将此椭圆轮廓加工多次,只需多加两循环语句若要将此椭圆轮廓加工多次,只需多加两循环语句对于可以用标准的参数方程表示的曲线,如正圆、抛对于可以用标准的参数方程表示的曲线,如正圆、抛物线、渐开线、摆线等,宏编程技术可以方便的编制物线、渐开线、摆线等,宏编程技术可以方便的编制其加工程序其加工程序第二节第二节 宏程序应用宏程序应用例例3:在圆周上钻、镗均匀分布的孔:在圆周上钻、镗均匀分布的孔如下图所示,在半径为如下图所示,在半径为R R的圆周上均匀分布的圆周上均匀分布n n个孔第 个孔jXY第二节第二节 宏程序应用宏程序应用1 1、数学建模、数学建模 n n个孔均匀分布,则第个孔均匀分布,则第i i个孔与编程坐标系个孔与编程坐标系X X轴夹角为轴夹角为i i=360/n=360/n(i i1 1)(1in)(1in)第第i i个孔的孔中心在编程坐标系中个孔的孔中心在编程坐标系中X X、Y Y值分别如下:值分别如下:x xi i=Rcos=Rcosi i y yi i=Rsin=Rsini i第二节第二节 宏程序应用宏程序应用2 2、变量设置、变量设置变量名称 变量意义#1 孔所在圆周半径 R#2 均匀分布孔总个数 n#3 第 i 个孔#4 第 i 个孔的孔中心与编程坐标 X 轴夹角i#10 第 i 个孔的孔中心 X 坐标值ix#11 第 i 个孔的孔中心 Y 坐标值iy#6 孔深度#7 R 平面高度 第二节第二节 宏程序应用宏程序应用3 3、宏程序、宏程序#1=50#1=50#2=6#2=6#3=1#3=1#5=3.14159/180#5=3.14159/180#6=-20#6=-20#7=5#7=5 while#3LE#2while#3LE#2#4=360/#2#4=360/#2*#3-1#3-1*#5#5#10=#1#10=#1*COS(#4)COS(#4)#11=#1#11=#1*SIN(#4)SIN(#4)G90G98G81X#10Y#10Z#6R#7F500G90G98G81X#10Y#10Z#6R#7F500#3=#3+1#3=#3+1ENDWENDWG80 G80 取消固定循环取消固定循环G91G28Z0 G91G28Z0 退刀退刀M05M05M30M30第二节第二节 宏程序应用宏程序应用3 3、宏程序、宏程序#1=50#1=50#2=6#2=6#3=1#3=1#5=3.14159/180#5=3.14159/180#6=-20#6=-20#7=5#7=5 while#3LE#2while#3LE#2#4=360/#2#4=360/#2*#3-1#3-1*#5#5#10=#1#10=#1*COS(#4)COS(#4)#11=#1#11=#1*SIN(#4)SIN(#4)G90G98G81X#10Y#10Z#6R#7G90G98G81X#10Y#10Z#6R#7F500F500#3=#3+1#3=#3+1ENDWENDWG80G80G91G28Z0 G91G28Z0 M05M05M30M30。