2024整合数控车床宏程序编程.docx
SAC缄默-(2024整合)数控宏程序什么是宏程序?什么是数控加工宏程序?简洁地说,宏程序是-种具有计算实力和决策实力的数控程序。宏程序具有如下些特点:1 .运用了变量或友达式(计打实力),例如:(1) GOIX3÷5;有表达式3+5(2) GOOX4Fl;有变鬓声(3) GOlY50*SIN3;有函数运算2 .运用了程序流程限制(决策实力,例如:(DlF"3GE9;有选择执行吩咐ENDlF(2) WHI1.E811.TS-H5;有条件衙环吩咐ENDI二.用宏程程有什么好处?1 .宏程序引入了变员和去达式,还有函数功能,具有实时动态计算实力,可以加工非国曲线,如微物城、椭圆、双曲城、三角函数曲戏等:2 .宏程序可以完成图形一样,尺寸不同的系列零件加工:3 .定程序可以完成工艺路径一样,位置不同的系列零件加工:1,安程序具有肯定袂策实力,能依据条件选择性地执行某些部分:5 .运用宏程序能极大地简化编程,精简程序。适合于困难零件加工的编程。1 .宏变量先看一段简洁的程序:GOOX25.0上面的程序在X轴作一个快速定位.其中数据25.0是固定的,引入变量后可以写成:»1=25.0是一个变砥GOOX#l就是一个变量宏程序中.用“=”号后面紧wn4位数字表示一个变量.ta#i.#50.«101.变另有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号,变量的运用,给程序的设计带来了极大的敏捷性。运用变量前,变量必需带有正确的假。如SI=25GOlXS1;友示C(HX25Sl=-IO;运行过程中可以随时变更#1的值GOlX#l;表示G(HX-IO用变Ift不仅可以表示坐标,还可以表示G、M.F.D.IkM,X、Y,等各种代码后的数字.如:#2=3G#2X30;表祀03X30例1运用了变出的宏子程序.%100O«50=20M98PlOOl#50-350M98P100lM30%1001:先给变收赋假;然后调用子程序:重新赋值;可调用于程序G91GOlXS5O;同样一段程序,#50的值不同,X移动的距禹就不同M992 .局部如编号*0、"49的变显是局部变量。局部变量的作用范用是当前程序(在同个程序号内),假如在主程序或不同子程序里,出现了相同名称编号的变量,它们不会相互干扰.值也可以不同.例%100NlO#3=30M98PI01#4=#3M30:主程序中#3为30:进入子程序后#3不受影响;#3仍为30,所以#4=30%101#4二#3#3=18M99:这里的#3不是主程序中的#3,所以#3=0(没定义,则:#4=0;这里使#3的(ft为18,不会影响主程序中的#33 .全局交量编号*#199的变量是全局变IIU注:其中M00TM99也是刀补变HO°全局变量的作用范用是整个零件程序,不管是主程序还是子程序,只要名称(漏号)相同就是同一个变量,带有相同的(ft在某个地方修改它的值.全部其它地方都受影响.例%10()NIO#50=30M98PlOi#4=#5()M30:先使MO为30:进入子程序;#50变为18所以#4=18%101#4=#5()#50=18M99:#50的值在子程序里也有效.所以#4=30;这里使#50=18,然后返回为什么要把变t分为局部变出和全局变量?假如,Uj全局变fit由变址名不能重复.就可能造成变Jlt名不够用:全局变址在任何地方都可以变更它的值,这地它的优点,也是它的缺点。说是优点,是因为多教传递很便利;说是缺点,是因为当一个程序较困难的时候,-不当心就可能在某个地用了相同的变愤名或者变更了它的值,造成程序混乱。局部变量的运用.解决了同名变成冲突的问题,源写于程序时,不须要考虑其它地方是否用过某个变fit%.什么时候用全局变显?什么时候用局部变出?在一般状况下,你应优先考虑选用局部变i1.同部变最在不同的子程序里,可以盍复运用,不会相互干扰,假如一个数据在主程序和子程序里都要用到,就要考虑用全局变崎。用全局变量来保存数据,可以在不同于程序间传递.共享、以及反复利用.刀补变疑(#1(X)T199).这些变家里存放的数据可以作为刀具半径或长度补偿值来运用。如#100=8G41DI(K):DloO就是指加皎#KK)的值8作为刀补半径.留意:上面的程序中,假如把DlOO写成了DMlo0,则相当于D8,即调用8号刀补,而不是补偿城为8。4. K统交量#300以上的变瓶是系统变“葭系统变址是具有特殊意义的变以,它们是数控系统内部定义好了的,你不行以变更它们的用途。系统变量是全局变敬,运用时可以干腑调用.和#599是可读写的,#600以上的变量是只读的,不能干脆修改.其中,#3007599是子程序局部变显缓存区.这些变成在一般状况下,不用关切它的存在,也不举样你去运用它们,要用意同一个子程序,被调用的层级不同时,对应的系统变量也是不同的,#6004899是与刀具相关系统变求,*10Ooxlo39坐标相关系统变:也#1(140#1143参考点相关系统变量.#114441194系统状态相关系统变量.详见:脩慢!未找到引用源.)有时候须要推断系统的某个状态,以使程序作相应的处理,就要用到系统变疑。5. MPl表示网周率.TRUE条件成立(真).FA1.SE条件不成立(假).二.透美将与表达式1 .算术运算符加+,减-,乘,除/2 .条件运算符宏程序运算符EQNEGTGE1.T1.E数学意义=>2<条件运算符用在程序流程限制IF和WHl1.E的条件&达式中,作为推断两个表达式大小关系的连接符。留意:宏程序条件运算符与计算机编程语言的条件运算符衣达习惯不同。3 .嵬运算符在IF或WHn.E语句中,假如有多个条件,用逻辑运算符来连接多个条件.AND(且)多个条件同时成立才成立OR(或)多个条件只要有一个成马上可NOT(非)取反(假如不是例#11.T50ANDWIGT20表示:网<50阳#1>20W3EQ8OR«41.E10表示:伸3=8或用#4WIO有多个逻辑运算符时,可以用方括号来表示结合依次,如:NOT|#I1.T50AND#IGT20我示:假如不是“#l<50I1.#020"更困难的例子,如:(«11.T50AND|»2GT20OR#3EQ8|ANDI#41.E104 .函敷正弦:SINa余弦:COSa正切:TANla)注;a为角度,单位是瓠收值。反正切:ATANlal(返回:度,范用:-9()-+90)反正切:ATAN2aWbl(返回:度,范围一l8O+l8O)Gi:华中数控哲不支持)定值:ABSa,表示Ial取整:INTi采纳去尾取整,T-四含丘入”取符号:SIGNa.a为正数返回1,0返回0.负数返IsM开平方:SQRTIa,表示百指数:EXPa,表示5 .表达式与括号包含运律符或函数的算式就是表达式。表达式里用方括号来表示运算依次.宏程序中不用网括号,因留括号是注祥符.例如175SQR112COS155*P"I80#3*6GT146 .运算符的优先fit方括号一函数一乘除一加减一条件一逻辑技巧:常用方括号来限制运算依次,更简洁阅读和理解7 .值号-把常数或表达式的值送给一个宏变俄称为赋值,格式如下:宏变量=行数或去达式例如*2=I75SQRT2*COS(55»PI/180|# 3=124.0# 50=#3+12特殊留意,赋信号后面的表达式里可以包含变量自身,如:# 1=01+4;此式表示把In的值与4相加,结果赋给#1。这不是数学中的方程或等式,假如#1的值是2.执行#1=#1+4后.#1的值变为6.=.程序设程限制程序流程眼制形式有很多种.都是通过推断某个“条件”是否成立来确定程序走向的.所谓“条件”,通常是对变量或变盘表达式的伯进行大小推断的式子,称为“条件表达式”.华中数控系统有两种流程限制吩咐:IF一ENDIF.WHI1.EENDW,1 .条件分支IF须要选择性地执行程序,就要用IF吩对。格式h(条件成立则执行IF条件表达式条件成立执行的语句IaENDlF功幡条件成立执行1*JENDIF之间的程序,不成立就跳过.其中IF、ENDIF称为关ti!i叽不区分大小写.IF为起先标识,ENDIF为结束标识,IFiA句的执行流程如图I所示.例:IF#1EQ10:假如#1=10M99:成立则,执行此句子程返回ENDIF:条件不成立,跳到此句后面例:IF«11.T10ANDflGTO1假如MIVloII.#1>0GOlx20:成立则执行YI5ENDIF;条件不成立,跳到此句后面格式2:(二选一,选择执行)形式:IF½条件成立执行的谙句IfiE1.SE条件不成立执行的语句taENDIF例IIF#511.T20G9IG0lX1OF25OE1.SEG91GO1X35F2ENDII-功倦I条件成立执行IF与E1.SE之间的程序,不成立就执行E1.SE与ENDIF之间的程序IF语句的执行流程如图1所示。2 .*f*环WHI1.E格式:WHI1.E条件表达式条件成立循环执行的话句ENDVV功勤条件成立执行WHl1.E与ENDW之间的程序,然后返回到WHl1.E再次推断条件,直.到条件不成立才跳刎ENDW后面.WHl1.E语句的执行流程如图1所示.例:#2=30WHI1.E#2GT0:假如#2>0G91G01X10«2=82-3ENDIG90CXX)z5O:成立就执行;修变更讨,;返回:不成立跳到这里执行SInE中必需有“健改条件变ST的语句,使掰其循环若干次后,条件变为“不成立”而退出循环,不然就成为死循环.程JiUIF-ENDIF流程图F-E1.SE-ENDIF流程图WHIIEENDW流程图%400#51=4()M98P40I»51=25M98P401M30%401G91G01X*51FI50;子程序消Sl的值由主程序确定ffll流程限制四.子程序及,Ri三传1 .一般子程序一般子程序指没有宏的子程序,程序中各种加工的数据是固定的,子程序编好后,子程序的工作流程就固定了,程序内部的数据不能在调用时“动态地变更,只能通过“镜做”、“旋转”.“缩放”、“平移”来有限的变史子程序的用途.例%400lGOlX8OF1M99子程序中数据固定.一般子程序的效能有限.2 .宏子程序宏子程序Ur以包含变埴,不但可以反红调用简化代码,而且通过变更变星的值就能实现加工数据的收徒变更或变更程序的流程.实现困难的加工过程处理.例%4002GO1ZW!)FW5ON坐标是变法:进给速度也是变量,可证应粗、精加工。M99例对圆弧往及切削时,指令GO2、G03交售运用,参数#51变更程序流程,自动选择.%4003IF#51GE1G02X#50|R#50:条件满意执行G02E