图文解说B类宏程序
宏 程 序 数控程序中含有变量的程序称为宏程序。 虽然子程序对编制相同的加工程序特别有用,但用户宏程序由于允许 运用变量、算术和逻辑运算与条件转移,使得编制同样的加工程序更 简便。例如型腔加工宏程序和用户开发固定循环。运用时,加工程序 可用一条简洁指令调出用户宏程序,和调用子程序完全一样。 1.1 变量 一般加工程序干脆用数值指定G代码和移动距离;例如,G01 和X100.0。 运用用户宏程序时,数值可以干脆指定或用变量指定。当用变量时,变 量值可用程序或用MDI 面板操作变更。 #1=#2+100; G01 X#1 F300; 说明 变量的表示 一般编程方法允许对变量命名,但用户宏程序不行。变量用变量符号(#) 和后面的变量号指定。 例如:#1 表达式可以用于指定变量号。此时,表达式必需封闭在括号中。 例如:#[#1+#2-12] 变量的类型 变量依据变量号可以分成四种类型。 变量值的范围 局部变量和公共变量可以为0 值或下面范围中的值: -1047 到-10-29 或 10-29 到1047 假如计算结果超出有效范围,则发出P/S 报警No.111 小数点的省略 当在程序中定义变量值时,小数点可以省略。 例:当定义#1=123;变量#1 的实际值是123.000。 变量的引用 在地址后指定变量号即可引用其变量值。当用表达式指定变量时,要把 表达式放在括号中。 例如:G01X[#1+#2]F#3; 被引用变量的值依据地址的最小设定单位自动地舍入。 例如: 当系统的最小输入增量为1/1000mm 单位,指令G00X#1,并将 12.3456 赋值给变量#1,实际指令值为G00X12.346;。 变更引用变量的值的符号,要把负号(—)放在#的前面。 例如:G00X—#1; 当引用未定义的变量时,变量与地址字都被忽视。 例如: 当变量#1 的值是0,并且变量#2 的值是空时,G00X#1 Y#2 的执行 结果为G00X0;。 双轨迹(双轨迹限制)的公共变量 对双轨迹限制,系统为每一轨迹都供应了单独的宏变量。但是,根 据参数No.6036 和6037 的设定,某些公共变量可同时用于两个轨 迹。 未定义的变量 当变量值未定义时,这样的变量成为“空”变量。变量#0 总是空变量。 它不能写,只能读。 (a)引用 当引用一个未定义的变量时,地址本身也被忽视。 (b)运算 除了用赋值以外,其余状况下与0 相同。 当变量值是空白时,变量是空。 符号********表示溢出(当变量的肯定值大于99999999 时)或下 溢出(当变量的肯定值小于0.0000001 时)。 限制 程序号,依次号和任选程序段跳转号不能运用变量。 例: 下面状况不能运用变量: ○#1; /#2G00X100.0; N#3Y200.0; 1.2 系统变量 系统变量用于读和写NC 内部数据,例如,刀具偏置值和当前位置数据。 但是,某些系统变量只能读。系统变量是自动限制和通用程序开发的基 础。 说明 接口信号 是可编程机床限制器(PMC)和用户宏程序之间交换的信号。 刀具补偿值 用系统变量可以读和写刀具补偿值。 可运用的变量数取决于刀补数,是否区格外形补偿和磨损补偿以与是否 区分刀长补偿和刀尖补偿。当偏置组数小于等于200 时,也可运用 #2001~#2400。 宏程序报警 例: #3000=1(TOOL NOT FOUND) →报警屏幕上显示“3001 TOOL NOT FOUND”(刀具未找到) 停止和信息显示 程序停止执行并显示信息。 时间信息 时间信息可以读和写。 自动运行限制 可以变更自动运行的限制状态。 ·当电源接通时,该变量的值为0。 ·当单程序段停止无效时,即使单程序段开关设为ON,也不执行单程 序段停止。 ·当指定不等待协助功能(M,S 和T 功能)完成时,在协助功能完成 之前,程序即执行到下一程序段。而且安排完成信号DEN 不输出。 ·当电源接通时,该变量的值为0。 ·当进给暂停无效时: (1) 当进给暂停按钮被按下时,机床以单段停止方式停止。但是,当 用变量#3003 使单程序段方式无效时,单程序段停止不执行。 (2) 当进给暂停按钮压下又松开时,进给暂停灯亮,但是,机床不停 止;程序接着执行,并且机床停在进给暂停有效的第一个程序段。 ·当进给速度倍率无效时,倍率总为100%,而不管机床操作面板上的 进给速度倍率开关的设置。 ·当精确停止检测无效时,即使那些不执行切削的程序段也不进行精确 停止检测(位置检测) SETTING 值 SETTING 值可用变量读和写。二进制数转换为十进制数。 镜像 运用外部开关或SETTING 操作设置的各轴镜像状态可以通过输出信号 (镜像检测信号)读出。可以检测当前的镜像状态(见III—4.6 节)。 得到的二进制值转换成十进制。 ·当用镜像信号和SETTING 两者对某轴设置镜像功能时,信号值和设 定值相或,然后输出。 ·当限制轴以外的轴的镜像功能接通时,它们也被读进系统变量#3007。 ·系统变量#3007 是写爱护的系统变量。假如试图在变量中写数据,则 发出P/S116 报警“WRITE PROTECTED VARIABLE”。 已加工的零件数 要求的零件数(目标数)和已加工的零件数(完成数)可以读和写。 模态信息 正在处理的程序段之前的模态信息可以读出。 例: 当执行#1=#4002;时,在#1 中得到的值是17,18 或19。 对于不能运用的G 代码组,假如指定系统变量读取相应的模态信息, 则发出P/S 报警。 当前位置 位置信息不能写,只能读。 · 第1 位代表轴号(从1 到3)。 · 变量#5081~#5083 存储的刀具长度补偿值是当前的执行值,不是后 面程序段的处理值。 · 在G31(跳转功能)程序段中跳转信号接通时的刀具位置储存在变 量#5061 到#5063 中。当G31 程序段中的跳转信号未接通时,这些 变量中储存指定程序段的终点值。 · 移动期间不能读是指由于缓冲(预读)功能的缘由,不能读期望值。 工件坐标系补偿值 工件零点偏移值的系统变量 (工件零点偏移值) 可以运用以下变量 1.3 算术和逻辑运算 表15.3(a)中列出的运算可以在变量中执行。运算符右边的表达式可包 含常量和/或由函数或运算符组成的变量。表达式中的变量#j 和#k 可以 用常数替换。左边的变量也可以用表达式赋值。 表15.3(a) 算术和逻辑运算 角度单位 函数SIN,COS,ASIN,ACOS,TAN 和ATAN 的角度单位是度。如 90°30ˊ表示为90.5 度。 ARCSIN # i=ASIN[#j] 取值范围如下: 当参数(No.6004#0)NAT 位设为0 时,270°~90° 当参数(