调试数控车床宏程序Word格式.docx
《调试数控车床宏程序Word格式.docx》由会员分享,可在线阅读,更多相关《调试数控车床宏程序Word格式.docx(7页珍藏版)》请在冰豆网上搜索。
变量:
宏程序中可以使用变量来给地址码赋值,一般多用于坐标地址X、Z或U、W,同时可以使用表达式(算术四则运算及函数等)给变量赋值。
这样就可以实现编制同一个程序,用于同类结构的零件只是尺寸有所不同的各种零件加工(只要修改少数几个参数即可用于不同的零件)。
宏程序作为一个子程序保存,在主程序中给必要的参数(变量)赋值,然后调用子程序。
本模拟软件只支持一层子程序调用,不支持在子程序中再调用下一层子程序(这种情况很少用到)。
为便于用户调试分析宏程序,本模拟软件的主菜单《测量与查看》下有子菜单《宏变量值》可以查看当前的宏变量值。
逻辑跳转或逻辑循环:
可以使程序实现智能化判断,根据一定的条件决定执行或不执行某些程序段,继续一个循环或退出循环。
这样可以实现一些复杂形状的加工。
当前各数控系统厂家的宏程序语法大致分为二大类:
一类是以GSK980(当前版本是GSK980TDa)为代表,使用G65H**P**Q**R**指令来实现各种运算,其中H**表示运算方式类别,P**为目标操作数,Q**为第一源操作数,R**为第二源操作数;
在计算过程中不支持表达式,使用这一类语法系统的数控产品,除了广州数控外,还包括KND1000;
FANUCA类(FANUC的早期产品如FANUCOTD)。
该类宏程序的逻辑运算是通过G65H80至G65H86的条件转移指令(H80是无条件转移)来实现的,灵活使用这些指令,实际上可以实现所有的逻辑运算功能,缺点是所编制的程序太繁琐,阅读与分析程序不直观。
另一类是以FANUCB类宏程序为代表(FANUCOi系列),可以使用人们所熟悉的等号(=)与加减乘除(+-*/)等运算符组成表达式直接给变量赋值;
在条件表达式中使用英文单词缩写GE、GT、LE、LT。
EQ、NE来表示大于等于、大于、小于等于、小于、等于、不等于;
(也有直接使用更直观的比较符>
=、>
、<
=、<
、==、<
>
、如西门子)。
跳转与循环指令主要有IF、WHILE,后者用来实现循环,即当条件满足时重复执行WHILE至END间的程序段;
IF的用法则比较多,大致上有以下这些用法:
在FANUCB类中,有IFGOTO及IFTHEN二个用法,前者用于当条件满足时跳转到指定的程序段运行;
后者用于当条件满足时执行一个命令。
在华中世纪星中,有IE......ENDIF及IF......ELSE......ENDIF;
前者当条件满足时时执行其中的程序段;
后者是当条件满足时执行IF至ENDIF间的程序段,不满足时执行ELSE至ENDIF间的程序段。
在西门子801/802中,没有WHILE这类循环语句,完全依靠IF命令来实现跳转或循环功能,IF.......GOTOF是当条件满足时向前跳转到指定程序段,一般用来在某些情况下避免运行一些程序段;
IF......GOTOB是向后跳转,一般用来重复执行某些程序段,可以使用这个命令来实现循环。
GSK980T系列宏指令编程
GSK的980TA、980TB、980TD、980TDa都的宏指令编程功能,但具体使用上有不少差别,目前来看以980TDa功能最完善,本模拟软件也是以GSK980Tda为依据、同时兼顾其他数控系统,来考虑宏程序模块的构思。
(一)宏变量
980TDa的宏变量一般使用的公用变量,有#100-#199,#500-#999可使用(前者为失电不保持,后者为失电保持)。
980TD的公用变量有#200-#231,#500-#515;
980TA的公用变量只有#200-#231。
本模拟软件允许使用上述范围内的变量,但软件处理时以变量号的右二位数进行识别,请不要把#101与#501同时使用在同一程序中。
另外,本软件在退出后,所有变量值均不保存。
(二)用宏变量置换指令地址后面的数值:
程序段中的指令字地址可以用宏变量来设置其数值,但本模拟软件仅限于给坐标地址(X、Z、U、W);
园弧半径(R);
进刀量或螺纹导程(F、I)提供数值,其他功能如:
用变量置换变量号,置换G代码后面的其他的数值等,一般编程中不大可能用到,本软件未作考虑。
(三)本模拟软件所支持的G65功能:
本模拟软件对G65中最实用的各项功能给予支持,包括:
H01-H05:
赋值及四则运算
H21:
开平方
H31-H34:
三角函数
H80-H86:
跳转指令
其他如二进制运算等,一般很少用到,本软件未作考虑,上述功能以980TDa为准,980TA等型号所支持的功能要少一些。
(四)关于长度单位
980TDa中没有长度单位方面的问题,当把宏变量值用作尺寸坐标时,总是以毫米为单位,宏变量也可以接受小数点,三角函数的角度单位是度。
本模拟软件的编程原则与980TDa一致。
980TD的宏变量值不能接受小数点,用作长度时单位是0.001毫米,三角函数的角度单位是0.001度,980TD的用户(及KND、FANUC)如使用本软件调试宏程序,请注意应在模拟软件上按980TDa编程,实际输入数控系统时再对程序作必要的修改。
980TA的各个版本的宏变量值代表的意义可能还要复杂些,同样是1,究竟代表0.001、还是1000、还是真正的1,笔者目前没有该类数控系统可以实验,请980TA的用户自己在机床上试验后再作结论。
KND1000T宏指令编程:
KND1000T的公用变量与980TD相同,有#200-#231,#500-#515可使用,宏变量值也不能接受小数点,三角函数的角度单位也是0.001度,宏变量值用于长度时,单位是1毫米还是0.001毫米,请用户在自己的机床上试验确定。
本模拟软件上编程时应注意的事项与GSK980相同。
FANUCO系列的A类宏指令编程:
FANUCO系列的A类宏程序使用的公共变量有#100-#149,#500-#549,其他方面与GSK980TD相似,宏变量值也不接受小数点,作为长度值时单位一般也是0.001毫米,三角函数的角度单位也是0.001度。
为便于用户调试分析宏程序,本模拟软件的主菜单《测量与查看》下有子菜单《宏变量值》可以查看当前的宏变量值,注意请按变量号的后二位数查看(如#563号变量的值,在列表中对应为#63号变量的值。
)
本软件的文件夹\Prg\GSK980\典型宏程序\下有几个宏程序实例供用户参考,均是以GSK980Tda系统进行编制的,如要在其他系统上运行,应对表示尺寸及角度的变量值作修改
华中世纪星的宏变量分为当前局部变量(#0-#49),全局变量(#50-#199),本模拟软件支持这些变量号,但应注意#0-#49的用法有些特殊,一般可使用#50-#199号变量,#200以上的局部变量本软件不支持。
。
本软件在退出后,所有变量值均不保存。
进刀量或螺纹导程(F、J)提供数值,其他功能如:
用变量置换变量号,置换G代码后面的数值等,一般编程中不大可能用到,本软件未作考虑。
(三)本模拟软件所支持的运算符、表达式及语句:
(1)全部算术运算符+-*/
(2)全部条件运算符EQ、NE、GT、GE、LT、LE
(3)函数:
SIN、COS、TAN、ATAN、SQRT(其余函数因很少使用或可用其他方法替代,故未作考虑)
(4)表达式:
用运算符连接起来的常数、宏变量、函数
(5)表达式中可使用方括号:
[]
(6)本模拟软件不支持AND、OR、NOT(实际使用中很少用到)
(7)支持用等号连接的赋值语句
(8)支持条件判别语句:
IFELSEENDIF
(9)支持循环语句:
WHILEENDW
(10)不支持赏量PI,TRUE,FALSE(如程序中偶然要用到这些常量可以用其他方法代替)
(四)关于M98程序段中的参数与对应的局部变量
华中世纪星用M98来调用宏程序,并可在M98程序段中带上若干参数以向宏程序传递局部变量值,参数地址码从A到Z对应的局部变量号为#0到#25,同时#30,#32号局部变量分别是调用宏程序时的X、Z坐标值(经笔者在HNC-18iT上调试观察,#30号变量保存的是X/2即半径值)
本模拟软件支持这一功能,但不支持系统宏AR[](由于本软件一律以U、W作为相对坐标,实际编程时可以不使用AR这个系统宏。
(五)关于表达式
华中世纪星可以在下列情况中使用表达式
(1)给地址码赋值:
主要是给坐标地址码赋值,如G00X[#23+#8]Z2;
注意此时应使用方括号把表达式括住,并注意X[#23+#8]整个是一个指令字,中间不得有空格。
(2)给宏变量赋值:
如:
#51=#51*2/#52;
注意等号右边的计算式部分应看作一个整体,中间不应有空格。
(3)条件表达式:
用条件运算符EQ等,连接二个表达式进行比较,从而判断条件是否成立;
(用在IF或WHILE语句中),此时条件运算符二边的表达式应分别看作是一个整体,表达式内不应有空格,但条件运算符EQ等的前后应有一个空格。
IF#61LT#52+#53。
本软件的文件夹\Prg\HNC\典型宏程序\下有几个宏程序实例供用户参考。
实际上西门子数控系统中并没有“宏程序”或“宏指令”这一提法,西门子数控系统中相当于“宏程序”的功能是用《参数及条件编程》来实现的。
(一)计算参数
西门子数控系统的计算参数有R0-R299,本模拟软件可使用R0-R199号计算参数,一般使用R0-R99。
本软件在退出后,所有计算参数值均不保存。
(二)用计算参数置换指令地址后面的数值:
程序段中的指令字地址可以用宏变量来设置其数值,但本模拟软件仅限于给坐标地址(X、Z);
园弧半径(CR=);
进刀量(F)螺纹导程(K)提供数值。
(1)全部算术运算符+-*/
(2)全部比较运算符:
==、<
、>
=、<
、<
=
(3)函数:
(4)表达式:
(5)表达式中可使用括号:
()
(6)本模拟软件不支持AND、OR、NOT(实际使用中很少用到)
(7)支持用等号连接的赋值语句
(8)支持条件跳转语句:
IFGOTOB或IFGOTOF。
(9)支持绝对(无条件)跳转:
GOTOB或GOTOF
(10)不支持赏量PI,TRUE,FALSE(如程序中偶然要用到这些常量可以用其他方法代替)
(四)关于表达式
西门子数控系统可以在下列情况中使用表达式
(1)给地