宏程序使用说明

上传人:人*** 文档编号:557736378 上传时间:2023-02-15 格式:DOCX 页数:18 大小:111.91KB
返回 下载 相关 举报
宏程序使用说明_第1页
第1页 / 共18页
宏程序使用说明_第2页
第2页 / 共18页
宏程序使用说明_第3页
第3页 / 共18页
宏程序使用说明_第4页
第4页 / 共18页
宏程序使用说明_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《宏程序使用说明》由会员分享,可在线阅读,更多相关《宏程序使用说明(18页珍藏版)》请在金锄头文库上搜索。

1、第五章 用户宏程序变量普通加工程序直接用数值指定G代码和移动距离;例如,G01和。使用用尸宏程序时, 数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作 改变。#1 = #2 + 100G01 X#1 F300 说明: 变量的表示 计算机允许使用变量名,用尸宏程序不行。变量用变量符号()和后面的变量号指定 例如:1表达式可以用于指定变量号。此时,表达式必须封闭在括号中。例如:#1+#2-12 变量的类型变量根据变量号可以分成四种类型变量号变量类型#0空变量#1-#33局部变量#100-#199公共变量#500-#999#1000-系统变量功能 该变量总是空,没有值能

2、赋给该变量. 局部变量只能用在宏程序中存储数据, 例如,运算结果.当断电时,局部变量被 初始化为空.调用宏程序时,自变量对 局部变量赋值, 公共变量在不同的宏程序中的意义相 同.当断电时,变量#100-#199初始化为 空.变量#500-#999的数据保存,即使断 电也不丢失.系统变量用于读和写CNC运行时各种数 据的变化,例如,刀具的当前位置和补 偿值. 变量值的范围局部变量和公共变量可以有0值或下面范围中的值:-1047到-10-29或-10-2到-1047如果计算结果超出有效范围,则发出P/S报警. 小数点的省略当在程序中定义变量值时,小数点可以省略。例:当定义#1 = 123 ;变量#

3、1的实际值是。 变量的引用 为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式 放在括号中。例如:G01X#l+#2F#3;被引用变量的值根据地址的最小设定单位自动地舍入。例如:当G00X#/ ;以l/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为 G00X12346.改变引用变量的值的符号,要把负号()放在的前面。例如:G00X#1 当引用未定义的变量时,变量及地址都被忽略。例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0。 双轨迹(双轨迹控制)的公共变量 对双轨迹控制,系统为每一轨迹都提供了单

4、独的宏变量,但是,根据参数和6037的 设定,某些公共变量可同时用于两个轨迹。 未定义的变量 当变量值未定义时,这样的变量成为空变量。变量#0总是空变量。它不能写,只能读。(a) 引用当引用一个未定义的变量时,地址本身也被忽略。当#1=空G90 X100 Y#1G90 X100(b) 运算除了用空赋值以外,其余情况下空与0相同 当#1=空时#2=#1#2=空#2=#*5#2=0#2=#1+#1#2=0(c)条件表达式EQ和NE中的空不同于0。当#1=空时#1EQ#0成立#1 NE#0当 #1 = 0G90 X100 Y#1G90 X100 Y0当#1=0时#2=#1#2=0#2=#*5#2=0

5、#2=#1+#1#2=0当#1=0时#1EQ#0不成立#1 NE #0不成立成立1 GE0成立1 GT0不成立1 GE 0不成立1 GT 0不成立 限制 程序号,顺序号和任选程序段跳转号不能使用变量 例:下面情况不能使用变量:01;/2G;N#;算术和逻辑运算下面表中列出的运算可以在变量中执行。运算符右边的表达式可包含常量和或由函数或运 算符组成的变量。表达式中的变量#j和#k可以用常数赋值。左边的变量也可以用表达式赋 值。功能格式备注定义#i=#j加法#i-#j+#k;减法#i-#j-#k;乘法#i-#j*#k;除法#i-#j/#k;正弦#i=SIN#j;角度以度数指定,90反正弦#i=AS

6、IN#j;30表示为度。余弦#i=COS#j;反余弦#i=ACOS#j;正切#i=TAN#j;反正切#i=ATAN#j;平方根#i=SQRT#j;绝对值#i=ABS#j;舍入#i=ROUNND#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;用于与 PMC 的信号交#i=BCD#j;换。说明: 角度单位函数SIN ,COS,ASIN,ACOS,TAN和ATAN的角度单位是度。如90

7、30表示为度。 ARCSIN # i= ASIN#j(1) 取值范围如下:当参数(#0) NAT位设为0时,27090当参数(#0) NAT位设为1时,一90。90(2) 当#)超出一1到1的范围时,发出P/S报警.(3) 常数可替代变量#j ARCCOS #i=ACOS#j (1)取值范围从1800当#j超出一1到1的范围时,发出P/S报警. (3)常数可替代变量# ARCTAN #i= ATAN#j/ #k(1) 指定两个边的长度,并用斜杠(/)分开(2) 取值范围如下:当NAT位(参数,#0)设为0时;0至I360当NAT位(参数,#0)设为1时;T80至I180(3) 常数可替代变量#

8、j 自然对数 #i=LN#j;(1) 注意,相对误差可能大于10-8.(2) 当反对数(#j)为0或小于0时,发出P/S报警.(3) 常数可替代变量#jo 指数函数 #i=EXP#j(1)注意,相对误差可能大于10-8。(2) 当运算结果超过j大约是110)时,出现溢出并发出P/S报警.。(3) 常数可替代变量#jo R0UND(舍入)函数(1) 当算术运算或逻辑运算指令IF或WHILE中包含ROUND函数时,则ROUND函数在第一 个小数位置四舍五入.当执行#1= ROUND#2;此处#2=,变量1的值是。(2) 当在NC语句地址中使用ROUND函数时,ROUND函数根据地址的最小设定单位将

9、指定 值四舍五入 上取整下取整CNC 处理数值运算时,若操作后产生的整数绝对值大于原数的绝对值时为上取整;若小 于原数的绝对值为下整数.对于负数的处理应小心. 算术与逻辑运算指令的缩写 程序中指令函数时,函数名的前两个字符可以用于指定该函数.R0UNDR0FLXFI 运算次序(1) 函数(2) 乘和除运算(3) 加和减运算 括号嵌套 括号用于改变运算次序,括号可以使用5级,包括函数内部使用的括号.当超过5级时,出 现P/S报警.限制 括号 (,)用于封闭表达式.注意,圆括号用于注释. 运算误差 运算时,可能出现误差.注: 1.相对误差取决于运算结果.2. 使用两类误差的较小者.3. 绝对误差是

10、常数,而不管运算结果.4. 函数 TAN 执行 SIN/COS.5. 如果SIN/COS或TAN函数的运算结果小于10X10-或由于运算精度的限制不为 0的话,设定参数#1为1,则运算结果可以规算为0.(1) 变量值的精度约为8 位十进制数.当在加/减速中处理非常大的数时,将得不到期 望的结果.(2) 还应该意识到,使用条件表达式EQ,NE,GE,和LT时可能造成误差.(3) 使用下取整指令时应小心.除数当在除法或TAN90中指定为0的除数时,出现P/S报警宏程序语句和NC语句下面的程序段为宏程序语句:包含算术或逻辑运算(=)的程序段.包含控制语句的程序段包含宏程序调用指令的程序段 除了宏程序

11、以外的任何程序段都为NC语句.说明:与NC语句的不同(1)即使置于单程序段运行方式,机床也不停止但是,当参数#5SBM设定为1时,在单程 序段方式中,机床停止.(2)在刀具半径补偿方式中宏程序语句段不做为不移动程序段处理.与宏程序语句有相同性质的NC语句(1)含有子程序调用指令,但没有除O,N或L地址之外的其它地址指令的NC语句其性质 与宏程序相同. 不包含除ONP或L以外的指令地址的程序段其性质与宏程序语句相同.转移和循环在程序中,使用GOTO语句和IF语句可以改变控制的流向有三种转移和循环操作可供 使用;转移和循环GOTO语句(无条件转移)(-IF语句(条件转移) WHILE语句(当时循环

12、)5.4.1无条件转移(GOTO语句)转移到标有顺序号n的程序段.当指定1到99999以外的顺序号时,出现P/S报警.可用表 达方式指定顺序号.GOTOn;n:顺序号(1 到 99999)5.4.2条件转移(IF)语句IF之后指定条件表达式.IF条件表达式GOTOn 如果指定的条件表达式满足时,转移到标有顺序号n的程序 段.如果指定的条件表达式不满足,执行下个程序段.IF条件表达式THEN如果条件表达式满足,执行预先决定的宏程序语句.只执行一个宏程序语句.说明: 条件表达式 条件表达式必须包括算符.算符插在两个变量中间或变量和常数中间,并且用括号(,)封闭.表达式可以替代变量. 运算符 运算符

13、由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值.注意,不能使用不符号.运算符含义EQ等于NE不等于GT大于GE小于或等于LT小于LE小于或等于典型程序:下面的程序计算数值1-10的总和09500;#1=0;存储和数变量的初值#2=1;被加数变量的初值N1 IF#2 GT 10G0T0 2;当被加数大于10时转移到N2 #1=#1+#2;计算和数#2=#2+#1;下一个被加数G0T0A1; 转到 N1N2 M30 ;程序结束5.4.3循环(WHILE语句)在WHILE后指定一个条件表达式.当指定条件满足时,执行从D0到END之间的程序.否则, 转到END后的程序段

14、.说明:当指定的条件满足时,执行WHILE从D0到END之间的程序.否则,转而执行END之后的程序 段,这种指令格式适用于IF语句.D0后的号和END后的号是指定程序执行范围的标号,标号 值为1,2,3.若用1,2,3以外的值会产生P/S报警. 嵌套在DO-END循环中的标号可根据需要多次使用但是,当程序有交叉重复循环(D0范围的 重叠)时,出现P/S报警.说明:无限循环当指定DO而没有指定WHILE语句时,产生从DO到END的无限循环.处理时间当在GOT 0语句中有标号转移的语句时,进行顺序号检索反向检索的时间要比正向检索长.用WHILE语句实现循环可减少处理时间.未定义的变量 在使用EQ或NE的条件表达式中,空和零有不同的效果,在其它形 式的条件表达式中,空被当作零. 典型程序 下面的程序计

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号