宏程序编程实例与技巧方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

下午9时39分1用户宏程序编程在数控编程中,宏程序编程灵活、高效、快捷,是加工编程的重要补充。宏程序不仅可以实现象子程序那样,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。华中数控宏程序FANUC数控宏程序SIEMENS数控参数编程下午9时39分2•华中数控用户宏程序HNC-21/22T、HNC-21M为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。一、基础知识1.宏变量及常量(1)宏变量HNC-21/22T华中世纪星数控系统变量表示形式为#后跟1~4位数字,变量种类有三种:①局部变量:#0~#49是在宏程序中局部使用的变量,用于存放宏程序中的数据,断电时丢失为空。下午9时39分3一、基础知识②全局变量:用户可以自由使用#50~#199,它对于由主程序调用的各子程序及各宏程序来说是可以公用的,可以人工赋值。HNC-21/22T子程序嵌套调用的深度最多可以有8层,每一层子程序都有自己独立的局部变量(变量个数为50)。③系统变量:系统变量为#1000~#1199,它能获取包含在机床处理器或NC内存中的只读或读/写信息,包括与机床处理器有关的交换参数、机床状态获取参数、加工参数等系统信息。(2)常量PI:圆周率π;TRUE:条件成立(真);FALSE:条件不成立(假)1、宏变量及常量下午9时39分42、运算符与表达式(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*6GT14下午9时39分53、赋值语句格式:宏变量=常数或表达式把常数或表达式的值送给一个宏变量称为赋值。例如:#2=175/SQRT[2]*COS[55*PI/180;#3=124.0下午9时39分64、条件判别语句IF,ELSE,ENDIF格式(i):格式(ii):IF条件表达式IF条件表达式……ELSEENDIF…ENDIF下午9时39分75、循环语句WHILE,ENDW格式:WHILE条件表达式…ENDW下午9时39分86、宏程序/子程序调用的参数传递规则G代码在调用宏(子程序或固定循环,下同)时,系统会将当前程序段各字段(A~Z共26个字段,如果没有定义则为零)的内容拷贝到宏执行时的局部变量#0~#25,同时拷贝调用宏时当前通道九个轴(轴0~轴8)的绝对位置(机床绝对坐标)到宏执行时的局部变量#30~#38。宏程序的调用格式为:M98P(宏程序名)变量赋值或G65P(宏程序名)变量赋值。……#25Z下午9时39分9%1000;长半轴、短半轴分别为40、30的椭圆G54G90G00Z30M03S800G00X45Y-15;快速定位至下刀点Z3G01Z-5F100#0=0;给角度赋0初值WHILE#0LE360;当角度≤360度时,执行循环体内容#1=40*COS[#0*PI/180];用椭圆的标准参数方程求动点M的X坐标值#2=30*SIN[#0*PI/180];用椭圆的标准参数方程求动点M的Y坐标值G01X[#1]Y[#2];用直线插补指令加工至M点,即用直线段逼近椭圆#0=#0+1;角度的递增步长取1度ENDWX45Y15;切出椭圆G00Z30M05X0Y0M307、用户宏程序编程思路下午9时39分10%1000;长半轴、短半轴分别为40、30的椭圆G92X0Y0Z30M03S800G00X45Y-15M08;快速定位至A点Z3G01Z-5F100#2=0;给角度赋0初值WHILE#2LE360;当角度≤360度时,执行循环体内容#11=40*COS[#2*PI/180];用椭圆的标准参数方程求动点M的X坐标值#12=30*SIN[#2*PI/180];用椭圆的标准参数方程求动点M的Y坐标值G42G64G01X[#11]Y[#12]D01;用直线插补指令加工至M点,即用直线段逼近椭圆#2=#2+1;角度的递增步长取1度ENDWG40G01X45Y15;切出椭圆至C点Z3M09G00Z30X0Y0M05M30二、数控铣床用户宏程序编程下午9时39分11下午9时39分12下午9时39分13宏程序编程实例ZH7640立式加工中心由北京第三机床厂产生,采用华中铣床、加工中心数控系统。加工范围600mm×400mm×500mm。刀库可容纳20把刀。可用于镗、铣、钻、铰、攻丝等各种加工。实例为在预先处理好的100mm×100mm×80mm合金铝锭毛坯上加工如图所示的零件,其中正五边形外接圆直径为80mm。下午9时39分14O5000;FANUCG54G90G00Z40X70Y20M08M03S600G43Z3H01G01Z-5F100#0=18N10#1=80*COS#0#2=80*SIN#0G41X#1Y#2D01#0=#0+72IF[#0LT360]GOTO10G40X70Y70Z40M05M30O5000;HNC-21M%1000G54G90G00Z40X70Y20M08M03S600G43Z3H01G01Z-5F100#0=18IF[#0LT360]#1=80*COS#0#2=80*SIN#0G41X#1Y#2D01#0=#0+72ENDIFG40X70Y70Z40M05M30宏程序编程实例下午9时39分15三、数控车床用户宏程序编程%3015#10=0;X坐标(直径值)#11=0;Z坐标T0101M03S600G00X0Z34WHILE#10LE32G90G64G01X[#10]Z[#11]F100#10=#10+0.32#9=#10/2;求出X坐标的半径值,便于求解#11#11=32-[#9*#9/8]ENDWG00X80Z100M05M30用宏程序编制如图所示抛物线的精加工程序。下午9时39分16用宏指令编制椭圆部分的精加工程序。%3016;精加工椭圆程序T0101M03S800G00X39Z22#1=60;A点的角度#2=0;X坐标#3=0;Z坐标WHILE#1LE120;120是通过计算得来的B点角度#2=2*23*SIN[#1*PI/180];直径编程#3=40*COS[#1*PI/180]G64G01X[#2]Z[#3]F100#1=#1+1;步长取1度ENDWG00X100Z100M05M30下午9时39分17用户宏程序训练下午9时39分18下午9时39分19下午9时39分20一、构成1.包含变量2.包含算术或逻辑运算(=)的程序段3.包含控制语句(例如:GOTO,DO,END)的程序段4.包含宏程序调用指令(G65,G66,G67或其他G代码,M代码调用宏程序)的程序段•FANUC数控系统用户宏程序下午9时39分21二、FANUC宏程序的变量FANUC数控系统变量表示形式为#后跟1~4位数字,变量种类有四种:变量号变量类型功能#0空变量该变量总是空,没有任何值能赋给该变量#1——#33局部变量局部变量只能用在宏程序中存储数据,例如运算结果。当断电时局部变量被初始化为空,调用宏程序时自变量对局部变量赋值。下午9时39分22变量号变量类型功能#100—#199#500—#999公共变量公共变量在不同的宏程序中的意义相同当断电时变量#100#199初始化为空变量#500#999的数据保存即使断电也不丢失#1000——系统变量系统变量用于读和写CNC运行时各种数据的变化例如刀具的当前位置和补偿值等下午9时39分23三、刀具补偿存储器C用G10指令进行设定H代码的几何补偿值G10L10PR;D代码的几何补偿值G10L12PR;H代码的磨损补偿值G10L11PR;D代码的磨损补偿值G10L13PR;P:刀具补偿号R:绝对值指令(G90)方式时的刀具补偿值。增量值指令(G91)方式时的刀具补偿值为该值与指定的刀具补偿号的值相加。下午9时39分24四、算术和逻辑运算下列的运算可以在变量中执行。运算符右边的表达式可包含常量和/或由函数或运算符组成的变量。表达式中的变量#j和#k可以用常数赋值。左边的变量也可以用表达式赋值。1、(定义)赋值:#i=#j;2、加法:#i=#j+#k3、减法:#i=#j-#k4、乘法:#i=#j*#k5、除法:#i=#j/#k下午9时39分256、正弦:#i=SIN[#j];7、反正弦:#i=ASIN[#j];8、余弦:#i=COS[#j];角度以度指定9、反余弦:#i=ACOS[#j];90°30′表示为10、正切:#i=TAN[#j];90.5度11、反正切:#i=ATAN[#j]/[#K];12、平方根:#i=SQRT[#j];13、绝对值:#i=ABS[#j];14、舍入:#i=ROUND[#j];15、上取整:#i=FUP[#j];16、下取整:#i=FIX[#j];17、自然对数:#i=LN[#j];y=lnx18、指数函数:#i=EXP[#j];y=ex下午9时39分2619、或:#i=#jOR#k;20、异或:#i=#jXOR#k;按位执行21、与:#i=#jAND#k;22、从BCD转为BIN#i=BIN[#j];23、从BIN转为BCD#i=BCD[#j];注:①ARCSIN#i=ASIN[#j]取值范围当No.6004.0=0时:270°~90°No.6004.0=1时:-90°~90°②ARCCOS#I=ACOS[#j]取值范围180°~0°下午9时39分27π/20-π/21-1π3π/2π/20-111-10π/2π下午9时39分28③ARCTAN#i=ATAN[#j]/[#K];取值范围当No.6004.0=0时:0°~360°No.6004.0=1时:-180°~180°3π/2π/22ππ0π/2-π/2π-π0第一象限第二象限第四象限第一象限第二象限第三象限第三象限第四象限0~-π0~π0~2π下午9时39分29④ROUND函数●在逻辑运算指令IF、WHILE中,ROUND函数在第一个小数位四舍五入。例如#2=1.2345;#1=ROUND[#2];变量1的值是1.0●在NC语句地址中,ROUND函数根据地值得最小设定单位指定四舍五入。例如#1=1.2345;#2=2.3456;G00G91X-#1;G01X-#2F300;G00X[#1+#2];1.2345+2.3456=3.5801=3.580不返回到初始位置或G00X-[ROUND[#1]+ROUND[#2]]1.235+2.346=3.581刀具返回到初始位置下午9时39分30⑤上取整和下取整CNC处理数值运算时,若操作后产生的整数绝对值大于原数的绝对值时为上取整,小于原数的绝对值时为下取整。设:#1=1.2,#2=-1.2#3=FUP[#1];则2.0赋给#3#3=FIX[#1];则1.0赋给#3#3=FUP[#2];则-2.0赋给#3#3=FIX[#2];则-1.0赋给#3下午9时39分31⑥运算次序函数→乘、除(*、/、AND)→加、减(+、-、OR、XOR)⑦括号嵌套(方括号[],圆括号用于说明)括号用于改变运算次序,可以使用5级。下午9时39分32五、转移和循环使用GOTO语句和IF语句可以改变控制的流向。有三中转移和循环可供使用。GOTO无条件转移IF条件转移WHILE当型循环1、无条件转移GOTOn;n为顺序例如:GOTO1;GOTO#10;下午9时39分332、条件转移IF[条件表达式]GOTOn例如:IF[#1GT10]GOTO2程序N2G00G91X10.0IF[条件表达式]THEN表达式例如:IF[#1EQ#2

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功