8.用户宏B功能
使用子程序编程可以重复同样的操作,简化程序的书写工作,但是用户宏B提供了更丰富的编程功能,它允许使用变量、算术和逻辑操作及条件分支,使得用户可以自行编辑软件包、固定循环程序。
57
8.1变量
8.1.1 变量概述
G100 X100.0。一个普通的零件加工程序指定G码并直接用数字值表示移动的距离,例:
而利用用户宏,既可以直接使用数字值也可以使用变量号。当使用变量号时,变量值既可以由程序改变,也可以用MDI面板改变。
#1=#2+100 G01 X#1 F300 变量书写规格:
当指定一个变量时,在#后指定变量号。个人计算机允许赋名给变量,宏没有此功能。
例:#1
也可以用表达式指定变量号,这时表达式要用方括号括起来。例:#[#1+#2—12] 变量值的范围:
地方变量和公共变量可以有值0和在下述范围内的值:
-1047~-10—19;10—29~1047,如果计算结果无效,发出111号报警。
忽略小数点:
在程序中定义变量时,可以忽略小数点。例:当#1=123被定义时,变量#1的实际值为123.000。
未定义的变量:
当变量的值未定义时,这样的一个变量被看作“空”变量,变量#0总是“空”变量,是一个只读变量。
变量的类型:
根据变量号将变量分为四类,见下表: 变量号 #0 #1~#33 变量类型 功能 “空” 这个变量总是空的,不能赋值。 源时,地方变量被初始化成“空”。宏调用时,自变量分配给地方变量。 #100~#149(#199) 公共变量 公共变量可在不同的宏程序间共享。关闭电源时变量#500~#531(#999) #100~#149被初始化成“空”,而变量#500~#531保持数据。公共变量#150~#199和#532~#999可以选用,但是当这些变量被使用时,纸带长度减少了8.5米。 #1000~ 系统变量 系统变量用于读写各种NC数据项,如当前位臵、刀具补偿值。 地方变量 地方变量只能在宏中使用,以保持操作的结果,关闭电
引用变量:
为了在程序中引用变量,指定一个字地址其后跟一个变量号。当用表达式指定一个变量时,须用方括号括起来。例:G01 X[#1+#2] F#3。引用的变量值根据地址的最小输入增量自动进行四舍五入。例:G00 X#1;其中#1值为12.3456,CNC最小输入增量1/1000mm,则实际命令为G00 X12.346。为了将引用的变量值的符号取反,在#号前加“—”号。 例:G00 X—#1;当引用一个未定义的变量时,忽略变量及引用变量的地址。例:#1=0 ,#2=“空”, 则G00 X#1 Y#2;的执行结果是G00 X0; 显示变量值:
1)按键 OFFSET 显示刀具补偿页面 2)按软键[MACRO]显示宏变量页面 3) 按NO.键后,输入一个变量号,然后按INPUT键,将光标移到输入的变量号的位臵。☆当变量值空白时,变量为空。
☆********表示溢出(即变量的绝对值大于99999999或小于0.0000001)。 注意:
程序号、顺序号、任选段跳跃号不能使用变量。例:变量不能用于下列方法 O#1; /#2G00 X100.0; N#3 Y200.0;
MENU
57
8.1.2系统变量
系统变量能用来读写内部NC数据,如刀具补偿值和当前位臵数据。然而,注意:有些系统变量是只读变量。对于扩展自动化操作和一般的程序,系统变量是必须的。 刀具补偿值:
使用这类系统变量可以读写刀具补偿值。可用的变量数取决于能使用的补偿对数,当补偿对数不大于200时,可以用变量#2001~#2400。
用于刀具补偿内存A的系统变量 补偿号 1 : 200 补偿号 1 : 200 系统变量 #10001(#2001) : #10200(#2200) 用于刀具补偿内存B的系统变量 几何补偿 #11001(#2201) : #11200(#2400) 磨损补偿 #10001(#2001) : #10200(#2200) 宏报警:
用于宏报警的系统变量: 变量号 #3000 功能 当#3000中有0~99间的某一值时,NC停止并显示报
警信息。报警信息不超过26个字符,
例:#3000=1(TOOL NOT FOUND); 报警屏幕显示“3001 TOOL NOT FOUND。”
时间信息:
时间信息可以读写。
#3001 #3002 用于时间信息的系统变量: 变量号 功能 这个变量是一个以1毫秒为增量一直记数的记时器,上电或达到65535毫秒时复值为0。 这个变量是一个以1小时为增量、当循环启动灯亮时记数的记时器,电源关闭后记时器值依然保持,达到1145324.612小时时复值为0。 #3011 #3012
自动操作控制:
自动操作的控制状态可以改变。
自动操作控制的系统变量#3003 #3003 单段 辅助功能的完成 0 使能 要等待 1 无效 要等待 2 使能 不要等待 3 无效 不要等待 ☆上电时该变量值为0。 ☆当不能执行单段停止时,单段停止操作不能执行,即使单段开关有效。
☆当没有指定是否等待辅助功能(M、S、T)完成时,在辅助功能完成之前,程序执行到下一段,定位完成信号DEN不发出。
自动操作控制的系统变量#3004 进给保持 进给倍率 使能 使能 无效 使能 使能 无效 无效 无效 使能 使能 无效 使能 使能 无效 无效 无效 这个变量用于读当前年/月/日数据,该数据以十进制数显示。例:March 28,1993表示成19930328。 这个变量用于读当前时/分/秒数据,该数据以十进制数显示。例:下午3点34分56秒表示成153456。 57
#3004 0 1 2 3 4 5 6 7 精确停止 使能 使能 使能 使能 无效 无效 无效 无效
☆上电时该变量值为0。 ☆当不能执行进给保持时:
进给保持按钮按下并保持时,机床以单段停止方式停止,但单段方式若因变量#3003而无效时,不执行单段停止操作。
进给保持按钮按下又释放时,进给保持灯亮,但机床不停止;程序继续进行,机床停在最先含有进给保持使能的段。
☆当进给倍率无效时,倍率定在100%,忽略机床操作面板上的倍率开关。
☆当精确停止无效时不执行精确停止检查(定位检查),即使是包含有不执行切削的段。
57
设定:
设定变量#3005可以读写,并且二进制值转换成十进制。 #3005 #15 #7 设定 SEQ #14 #6 ABS #13 #5 #12 #4 INCH #3 ISO #11 #10 TAPE #2 TVON #9 REV4 #1 REVY #0 REVX #8 57
设定 REVX:X—轴镜象on/off REVY:Y—轴镜象 on/off TVON:TV 检查 on/off ISO: 输出码EIA/ISO INCH: 公制/英制输入 ABS: 相对值/绝对值编程 SEQ: 顺序号自动插入on/off REV4: 第四轴镜象on/off TAPE: F10/11 纸带格式 on/off 零件数:
需要加工的零件数变量#3902和已加工的零件数变量#3901可以被读写。见下表: 变量号 功能 #3901 已加工的零件数 #3902 需要加工的零件数 注:不能使用负数。 模信息:
段中指定的模信息可以读出。见下表: 变量号 #4001 #4002 #4003 #4004 #4005 #4006 #4007 #4008 #4009 #4010 #4011 #4012 #4014 #4015 #4016 : 功能 G00,G01,G02,G03,G33 G17,G18,G19 G90,G91 G94,G95 G20,G21 G40,G41,G42 G43,G44,G49 G73,G74,G76,G80~G89 G98,G99 G50,G51 G65,G66,G67 G54~G59 G61~G64 G68,G69 : (01组) (02组) (03组) (04组) (05组) (06组) (07组) (08组) (09组) (10组) (11组) (12组) (14组) (15组) (16组)