版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数控宏程序 一什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力 的数控程序。宏程序具有如下些特点:1使用了变量或表达式(计算能力),例如:(1) g01 x3+5 ; 有表达式3+5(2) g00 x4 f#1 ; 有变量#1(3) g01 y50*sin3 ; 有函数运算2使用了程序流程控制(决策能力),例如:(1)if #3 ge 9 ; 有选择执行命令endif(2)while #1 lt #4*5 ; 有条件循环命令endw二用宏程编程有什么好处?1 宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可 以加工非圆曲线,如抛物线、椭圆、双曲线
2、、三角函数曲线等;2 宏程序可以完成图形一样,尺寸不同的系列零件加工;3 宏程序可以完成工艺路径一样,位置不同的系列零件加工;4 宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5 使用宏程序能极大地简化编程,精简程序。适合于复杂零件加工的编程。一宏变量及宏常量1宏变量先看一段简单的程序:g00 x25.0上面的程序在x轴作一个快速定位。其中数据25.0是固定的,引入变量后可以 写成:#1=25.0 ;#1是一个变量g00 x#1 ;#1就是一个变量宏程序中,用“#”号后面紧跟14位数字表示一个变量,如#1,#50 ,#101,。变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀
3、补号、 g指令编 号,变量的使用,给程序的设计带来了极大的灵活性。使用变量前,变量必需带有正确的值。如#1=25g01 x#1 ;表示g01 x25#1=-10 ;运行过程中可以随时改变 #1的值g01 x#1 ;表示g01 x-10用变量不仅可以表示坐标,还可以表示g、m、f、d、h、m、x、y、等各 种代码后的数字。如:#2=3g#2 x30 ;表示g03 x30例1 使用了变量的宏子程序。%1000#50=20 ; 先给变量赋值m98 p1001 ; 然后调用子程序#50=350 ; 重新赋值m98 p1001 ; 再调用子程序m30%1001g91 g01 x#50 ;同样一段程序,#
4、50的值不同,x移动的距离就不同m992局部变量编号#0 #49 的变量是局部变量。局部变量的作用范围是当前程序(在同一个程序号内)。如果在主程序或不同子程序里,出现了相同名称(编号)的变量, 它们不会相互干扰,值也可以不同。例%100n10 #3=30m98 p101#4=#3m30%101#4=#3#3=18m993全局变量;主程序中#3为30;进入子程序后#3不受影响;#3仍为30,所以#4=30;这里的#3不是主程序中的#3,所以#3=0(没定义),则:#4=0 ;这里使#3的值为18,不会影响主程序中的 #3编号#50 #199 的变量是全局变量(注:其中#100#199 也是刀补变
5、量)。全局变量的作用范围是整个 零件程序 。不管是主程序还是子程序,只要名称(编号)相同就是同一个变量,带有相同的值,在某个地方修改它的值,所有其它地方都受影响。例%100n10 #50=30 ; 先使#50为30m98 p101 ; 进入子程序#4=#50 ;#50 变为18,所以#4=18m30%101#4=#50 ; #50 的值在子程序里也有效,所以#4=30#50=18 ; 这里使#50=18,然后返回m99为什么要把变量分为局部变量和全局变量?如果只有全局变量,由变量名不能重复,就可能造成变量名不够用;全局变量在任何地方都可以改变它的值,这是它的优点,也是它的缺点。说是优点,是因为
6、参数传递很方便;说是缺点,是因为当一个程序较复杂的时候,一不小心就可能在某个地用了相同的变量名或者改变了它的值,造成程序混乱。局部变量的使用,解决了同名变量冲突的问题, 编写子程序时,不需要考虑其它地方是否用过某个变量名。什么时候用全局变量?什么时候用局部变量?在一般情况下,你应优先考虑选用局部变量。局部变量在不同的子程序里,可以重复使用,不会互相干扰。如果一个数据在主程序和子程序里都要用到,就要考虑用全局变量。用全局变量来 保存数据,可以在不同子程序间传递、共享、以及反复利用。刀补变量(#100#199)。这些变量里存放的数据可以作为刀具半径或长度补 偿值来使用。如#100=8g41 d10
7、0 ;d100就是指加载#100 的值8作为刀补半径。注意:上面的程序中,如果把 d100写成了d#100,则相当于d8,即调用8号刀补, 而不是补偿量为8。4系统变量#300以上的变量是系统变量。系统变量是具有特殊意义的变量,它们是数控系统内部定义好了的,你不可以改变它们的用途。系统变量是全局变量,使用时 可以直接调用。#0#599是可读写的,#600以上的变量是只读的,不能直接修改。其中,#300 #599 是子程序局部变量缓存区。这些变量在一般情况下,不用关心它的存在,也不推荐你去使用它们。要注意同一个子程序,被调用的层级不同时 ,对 应的 系统 变量 也是 不同 的。 #600#899
8、 是与 刀 具相 关系 统变 量。#1000#1039 坐标相关系统变量。#1040#1143 参考点相关系统变量。#1144#1194 系统状态相关系统变量。(详见:)有时候需要判断系统的某个状态,以便程序作相应的处理,就要用到系统变 量。5常量pi 表示圆周率, true 条件成立(真), false 条件不成立( 假) 。二运算符与表达式1算术运算符加 +, 减 - , 乘 * ,除 /2条件运算符宏程序运算符数学意义eq ne gt ge lt le 条件运算符用在程序流程控制if 和while 的条件表达式中,作为判断两个表达式大小关系的连接符。注意:宏程序条件运算符与计算机编程语言
9、的条件运算符表达习惯不同。 3逻辑运算符在if或while语句中,如果有多个条件,用逻辑运算符来连接多个条件。and (且)or (或)not (非)多个条件同时成立才成立多个条件只要有一个成立即可 取反(如果不是)例#1 lt 50 and #1gt 20#3 eq 8 or #4 le 10 表示:#120 表示:#3=8 或者#410有多个逻辑运算符时,可以用方括号来表示结合顺序,如:not#1 lt 50 and #1gt 20 表示:如果不是“ #120 ” 更复杂的例子,如:#1 lt 50 and #2gt 20 or #3 eq 8 and #4 le 104函数正 弦:sin
10、a余弦:cosa正切:tana注:a为角度,单位是弧度值。反正切:atana ( 返回:度,范围:-90 90)反正切:atan2a/b (返回:度,范围:-180180) (注: 华中数控暂不支持)绝对值:absa ,表示|a|取 整:inta ,采用去尾取整,非“四舍五入”取符号:signa,a 为正数返回1,0返回0,负数返回-1 开平方:sqrta ,表示 a指 数:expa ,表示e 5表达式与括号a包含运算符或函数的算式就是表达式。表达式里用方括号来表示运算顺序。 宏程序中不用圆括号,因圆括号是注释符。例如 175/sqrt2 * cos55 * pi/180 #3*6 gt 14
11、6运算符的优先级方括号 函数 乘除 加减 条件 逻辑技巧:常用方括号来控制运算顺序,更容易阅读和理解。7赋值号 =把常数或表达式的值送给一个宏变量称为赋值,格式如下:宏变量 = 常数或表达式例如 #2 = 175/sqrt2 * cos55 * pi/180 #3 = 124.0#50 = #3+12特别注意,赋值号后面的表达式里可以包含变量自身,如:#1 = #1+4 ;此式表示把 #1的值与4 相加,结果赋给#1 。这不是数学中的 方程或等式,如果#1的值是2 ,执行#1 = #1+4 后,#1 的值变为6。三程序流程控制程序流程控制形式有许多种,都是通过判断某个“条件”是否成立来决定程序
12、走向的。所谓“条件”,通常是对变量或变量表达式的值进行大小判断的式子,称为“条件表达式”。华中数控系统有两种流程控制命令: ifendif,while endw。1条件分支 if需要选择性地执行程序,就要用 if命令。格式1:(条件成立则执行)if 条件表达式条件成立执行的语句组endif功能:条件成立执行if与endif之间的程序,不成立就跳过。其中if、endif称为关键词,不区分大小写。if为开始标识,endif 为结束标识。if语句的执行流程如图 1所示。例:if #1 eq 10 ;如果#1=10m99endif;成立则,执行此句(子程返回);条件不成立,跳到此句后面例:if #1
13、lt 10 and #1 gt 0;如果#10g01 x20y15endif;成立则执行;条件不成立,跳到此句后面格式2:(二选一, 选择执行) 形式:if 条件表达式条件成立执行的语句组 else条件不成立执行的语句组 endif例:if #51 lt 20g91g01 x10f250elseg91g01x35f200endif功能:条件成立执行if 与else 之间的程序,不成立就执行else与endif之间 的程序。if语句的执行流程如图 1所示。2条件循环 while格式:while 条件表达式条件成立循环执行的语句endw功能:条件成立执行while 与endw之间的程序,然后返回到
14、while 再次判断条件,直到条件不成立才跳到endw后面。while语句的执行流程如图 1 所示。例:#2=30while #2 gt 0 ; 如果#20g91g01x10 ; 成立就执行#2=#2-3 ; 修改变量,endw ; 返回g90 g00 z50 ;不成立跳到这里执行while中必须有“修改条件变量”的语句,使得其循环若干次后,条件 变为“不成立”而退出循环,不然就成为死循环。if 条件成假if 条件成真假真程序 awhile 条件程序 1程序 nelse真程序 1假程序 bendif endif程序 nifendif 流程ifelseendif 流endw图程图whileend
15、w 流程图图1 流程控制四子程序及参数递传1普通子程序普通子程序指没有宏的子程序,程序中各种加工的数据是固定的,子程序编好后,子程序的工作流程就固定了,程序内部的数据不能在调用时“动态”地改变,只能通过“镜像”、“旋转”、“缩放”、“平移”来 有限的改变子程序的用途。例%4001g01 x80 f100m99子程序中数据固定,普通子程序的效能有限。2宏子程序宏子程序可以包含变量,不但可以反复调用简化代码,而且通过改变变量的值就能实现加工数据的灵活变化或改变程序的流程,实现复杂的加 工过程处理。例%4002g01 z#1 f#50 ;z 坐标是变量;进给速度也是变量,可适应粗、精加工。 m99例
16、 对圆弧往复切削时,指令 g02、g03交替使用。参数#51 改变程序流程, 自动选择。%4003if #51 ge 1g02 x#50 r#50 ;条件满足执行g02elseg03 x-#50 r#50 ;条件不满足执行 g03endif#51=#51*-1 ; 改变条件,为下次做准备m99子程序中的变量,如果不是在子程序内部赋值的,则在调用时,就必需要给变量一个值。这就是参数传递问题,变量类型不同,传值的方法也 不同。3全局变量传参数如果子程序中用的变量是全局变量,调用子程序前,先给变量赋值, 再调用子程序。例:%400#51=40 ;#51 为全局变量,给它赋值m98 p401 ;进入子
17、程序后#51 的值是40#51=25 ; 第二次给它赋值m98 p401 ; 再次调用子程序,进入子程序后 #51 的值是25 m30%401 ; 子程序g91g01x#51f150 ;#51的值由主程序决定m994局部变量传参数问题:%400n1 #1=40 ; 为局部变量#1赋值n2 m98 p401 ; 进入子程序后#1的值是40吗?m30%401n4 g91g01x#1 ; 子程序中用的是局部变量#1m99结论:主程序中 n1 行的#1 与子程序中 n4 行的#1 不是同一个变量,子程序不 会接收到 40 这个值。怎么办呢?局部变量的参数传递,是在宏调用指令后面添加参数的方法来传递的。
18、 上面的程序中,把 n1 行去掉,把 n2 行改成如下形式即可:n2 m98 p401 b40比较一下,可知多了个b40,其中b代表#1 ,紧跟的数字40代表#1的值是40。这样就把参数40传给了子程序%401中的#1。更一般地,我们用g65 来调用宏子程序(称宏调用)。g65 指令:g65 是专门用来进行宏子程序调用的,但在华中数控系统里面,g65 和 m98 功能相同,可以互换。宏子程序调用指令g65的格式:g65 p_ l_ a_ b_z_plaz子程序号调用次数参数,每个字母与一个局部变量号对应。 a对应#0,b对应#1,c对应#2 ,d对应#3,如a20 ,即#0=20 ;b6.5,
19、即#1=6.5;其余类推。 换句话说,如果要把数 50传给变量#17,则写r50。g65代码在调用宏子程序时,系统会将当前程序段各字母(az 共26个,如果没有定义则为零) 后跟的数值对应传到宏子程序中的局部变量 #0-#25 。 下面列出了宏调用时,参数字母与变量号的对应关系:子程序中的#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10#11#12变量传参数用的字母ab c d e f g h i j k l m子程序中的变量传参数用的字母#1 #1 #1 #1 #1 #1 #1 #2 #2 #2 #2 #2 #2 3 4 5 6 7 8 9 0 1 2 3 4 5n o p
20、 q r s t u v w x y z要注意,由于字母g、p、l等已被宏调用命令、子程序号和调用次数占用,所以不能再用来传递其它任意数据。传进去的是, g65即#6=65,p401即#15=401(子程序号),l2即#11=2。为了便于参数传递,编写子程序时要避免用#6、#15、#11等变量号来接收数据,但这些变量号可以用在子程 序中作为内部计算的中间变量暂存数据。另外,g65 代码在调用宏子程序时,还会把当前九个轴的绝对位置 (工件绝对坐标)传入局部变量#30#38。#30#38与轴名的对应关系由机床制造厂家规定,通常#30为x轴,#31 为y轴,#32为z轴。固定循环指令初始平面z 模态
21、值也会传给变量#26。通过#30#38可以轻易得到进入子程序时的轴 坐标位置,这在程序流程控制中是很有用的。5系列零件加工所谓系列零件加工,是指不同规格的零件,形状基本相同,加工过程也相同,只是尺寸数据不一样,利用宏程序就可以编写出一个通用的加工 程序来。例1切槽宏子程序。%8002g92x90 z30m98 p8001 u10 v50 a20 b40 c3 ;uvabc 对应尺寸变量见下图 g00 x90z30m30%8001 ;子程序g00 z-#20 ; 切刀z向定位x#1+5 ; 接近工件,留5毫米距离#10=#2 ;#10 已切宽度+#2while #10 lt #21 ; 够切一刀
22、?g00 z-#20-#10 ;z向定位g01 x#0 ; 切到要求深度g00x#1+5 ;x退刀到工件外#10=#10+#2-1 ;修改#10 endwg00 z-#21-#20 ; 切最后一刀 g01x#0g00x#1+5m99例2根据下面系列零件的图形,编辑精加工轮廓及切断的程序。轮廓加工用外圆车刀、切断用切断刀(刀位点在右刀尖)。工件零点设在右端面。;工件1主程序:%1000m03 s600 t0101m98 p1001 a8b10c24d20e5f40t0202m98 p1002 c24f40m30;工件2主程序:%2000m03 s600 t0101m98 p1001 a10b15
23、c28d24e7f50t0202m98 p1002 c28f50m30;轮廓加工子程序%1001g00x0z3g01z0f100g03x2*#0z#0r#0g01x#2w-#4#10= #1- #2-#3/2#11=sqrt#1*#1-#10*#10g02x#2w-2*#11r#1g01z-#5u2g00x#2+50z100m99;切断子程序%1002g00x#2+2z-#5g01x0.3f30g00x#2+50z100m996高级参考在子程序中,可能会改变系统模态值。例如,主程序中的是绝对编程(g90),而子程序中用的是相对编程(g91),如果调用了这个子程序,主程序的模态就会受到影响。当然
24、,对于简单的程序,你可以在子程序返回后再加一条 g90指令变回绝对编程。但是,如果编写的子程序不是你自己用,别人又不知道你改变了系统模态值,直接调用就有可能出问题。有没有办法,使子程序不影响主程序的模态值呢?简单的办法就是,进入子程序后首先把子程序会影响到的所有模态用局部变量保存起来,然后再往后执行,并且在子程序返回时恢复保存的模 态值。看下面的例子例%102;不管原来是什么状态,先记录下来#45=#1162 ; 记录第12 组模态码 #1162 是g61 或 g64?#46=#1163 ; 记录第13 组模态码 #1163 是g90 或 g91?m99由此可见,系统变量虽然是不能直接改写的,
25、但并不是不能改变的。系统模态值是可以被指令改变 的。固定循环也是用宏程序实现的,而且固定循环中它改变了系统模态值,只是在固定循环子程序中采用了保护措施,在固定循环宏子程序返回时,恢复了它影响过的系统模态,所以外表看它对系统模态没有影响。这可以通过分析系统提供的固定循环宏程序看出来。;现在可以改变已记录过的模态g91 g64 ;用相对编程g91 及连 续插补方式g64;这里是其它程序;子程序结束前恢复记录值g#45 g#46 ;恢复第12 组13 组 模态对于每个局部变量,还可用系统宏ar来判别该变量是否被定义,是 被定义为增量或绝对方式。该系统宏的调用格式如下ar#变量号返回值:0 表示该变量
26、没有被定义90 表示该变量被定义为绝对方式g9091 表示该变量被定义为相对方式g91例 下面的主程序%1000 在调用子程序 %9990 时设置了i jk 之值,子程序%9990 可分别通过当前局部变量#8 #9 #10 来访问主程序的i j k 之值 %1000g92 x0y0z0m98 p9990 i20 j30 k40m30%9990if ar#8 eq 0 or ar#9 eq 0 or ar#10 eq 0m99 ; 如果没有定义i j k 值,则返回endifn10 g91 ; 用增量方式编写宏程序if ar#8 eq 90 ; 如果i 值是绝对方式g90#8=#8-#30 ;
27、将i 值转换为增量方式 , #30 为x 的绝对坐标 endifm99hnc-21m 子程序嵌套调用的深度最多可以有七层,每一层子程序都有自己独立的局部变量,变量个数为50 。当前局部变量为#0-#49, 第一层局部变量为#200-#249 ,第二层局部变量为#250-#299,第三层局部变量#300-#349 ,依此类推。在子程序中如何确定上层的局部变量要依上层的层数而定。由于通过系统变量来直接访问局部变量容易引起混乱,因此不 提倡用这种方法。例%0099g92 x0 y0 z0n100 #10=98m98 p100m30%100n200 #10=222 ; 此时n100 所在段的局部变量#
28、10 为第0层#210m98 p110m99%110n300 #10=333 ; 此时n200 所在段的局部变量#10为第1层#260,即 #260=222;此时n100 所在段的局部变量#10为第0层#210,即#210=98m99五宏编程实例1数车编程(1)函数曲线加工通用宏程序;任意曲线y=f(x)的加工;单调区间x由x1 变到x2方法一-%1001#1=x1 ; 初值#2=f(x1) ;或者写成#2=f(#1)while #1 le x2; 或者 while #1 ge x2g01 x#1 y#2 ;到下一位置#1=#1+0.01 ;x增量0.01;或者#1=#1-0.01 ;x增量-
29、0.01#2=f(#1) ; 计算下个点坐 标endw;.退刀m30(实际应用,请用具体表达式代替 f(x))#1=x1 ; 初值#3=f(x1) ; 或者写成#3=f(#1)while #1 le x2; 或者while #1 ge x2#2=#3 ; 保存前一个 点坐标#1=#1+0.01 ;x增量0.01;或者#1=#1-0.01 ;x增量-0.01#3=f(#1) ; 计算下个点坐 标g91 g01 x0.01 y#3-#2 ; 到下 一位置endw;.退刀m30方法二%1002(2)抛物线车削 1用宏程序编制如图所示抛物线在 x区间0,8内的程序。 %3401t0101 g37 m0
30、3 s600 ;g37 半径编程#0=0 ;x坐标,初值为0#1=0 ; z坐标,初值为0while #0 le 8g90g01x#0z-#1f200#0=#0+0.08#1=#0*#0/2endwg00 x40z80 m05m30(3)抛物线车削 2%0342t0101 m03 s600g00 x20.5 z2#11=12 ;b 初值#10=sqrt2*#11 ;a 初值while #10 le 8g90g01 x2*#10 z12- #11 f200 #10=#10+0.1#11=#10*#10/2endwg01 x16 z-32+12z-28u4g00 x20.5 z2 m05m30(4
31、)抛物线车削 3%0342t0101 m03 s600g00 x35 z3g01 x18 f100z-8#11=12 ;b 初值#10=sqrt2*#11 ;a 初值while #11 le 32g90g01x2*#10+3z4-#11f500#11=#11+0.06#10=sqrt2*#11endwg01 x22 z-28z-30x30z-35g00x35z3m30(5)抛物线车削 4%0001t0101 m03 s800g92 x100 z50g64 g00x36z4#11=32 ;b 初值#10=sqrt2*#11 ;a 初值while #11 gt 0g01x20+2*#10z#11-
32、38#11=#11-0.2#10=sqrt2*#11endwg01x20z-38g00x18z4x100z50m30(6)抛物线车削 5(g71 与宏程序)这个例子中应用了 g71 复合循环与宏程序配合完成粗精加工。 g71 参数简 介:g71 u_r_p_q_x_z_f_s_t_u 背吃刀量;r 每次退刀量;p 起始段号;q 结束段号;x、z 精加工余 量;f、s、t 粗车时有效,精车时以精车程序为准。%3402t0101 m03 s600g00 x21 z2g71 u0.5 r1 p11 q22 x0.6 z0.1 f100 s600n11 g01 x0 s1200 ; 精加工,起始#10
33、=0 ;a 坐标,初值为 0#11=0 ;b 坐标,初值为 0 while #10 le 8g01 x2*#10 z-#11 f50#10=#10+0.1 ;a 坐标增量 0.1#11=#10*#10/2 ; 更新 b 坐标 endwg01 x16 z-32z-40n22 g00x20.5 ; 精加工,结束x21 z2m30(7)抛物线车削 6%3404t0101 m03 s600g92x80z30g00x20z3n6g01x38#11=0 ;b 初值#10=0 ;a 初值while #11 le 18g01x38-2*#10z-#11f100#11=#11+0.5#10=sqrt#11*2e
34、ndwg01x26 z-18n14 g01z-24x22g00z5x80z30m05m30(8)正弦线车削%3404m03 s600 t0101g92 x80 z30g00 x25 z3n6g0x17#11=0while #11 ge -25#9=#11*pi/10 ;#10=3.5*sin#9g01x17-2*#10z#11f100#11=#11-0.5n13endwg01x24z-25z-30x30g00x80z30m30(9)抛物线与椭圆车削%8002g92x50z100m98 p8001 a8b5c4u32v40w55g36g90x50z0m30%8001g64 g37 (连续切削,半
35、径编程)#10=0 #11=0 ( 抛物线起点)while #11 le #20g01 x#10 z-#11 f150#10=#10+0.08 ( 抛物线 x 增量) #11=#10*#10/#2(计算抛物线 z)endw#50= sqrt#20*#2 ( 抛物线与椭圆交接处半径) g01 x#50 z-#20(抛物线终点)g01z-#21 ( 直线终点)#12=0 #13=0 ( 椭圆起点)while #13 le #1#12=#0/#1*sqrt#1*#1-#13*#13 ( 椭圆 x 增量)g01 x#50+#0-#12 z-#21-#13#13=#13+0.08 ( 椭圆 z 增量)e
36、ndwg01 x#50+#0 z-#21-#1 ( 椭圆终点)z-#22u2g0x50z100m99(10)椭圆粗、精车削 -%100g91 x1m03 t0101 s600 g90 z2g00 x32 z2 ; 粗车 #1=15endwg00 x0 s1200 ;精车#2=0 #1=0while #1 ge 1 ; 还可以车一刀#2=25while #1 le 15(2mm) g01 x#1*2 z#2-25 f80 #1=#1-1 #1=#1+0.1#2=25/15*sqrt15*15-#1*#1 #2=25/15*sqrt15*15-#1*#1g00 x#1*2+0.5 ;转为直径 编程
37、并留精车余量0.5g01 z#2-25 f150endwg01 x32g00 x50 z100m30(11)用子程序完成粗、精加工子程序按精车路径用相对编程( x方向)。方法1-%1010m03 s600 t0101#50=35 ;初始化x 尺寸(毛坯值) #51=3 ;切削量while #50 gt #51+0.5 ; 还够车 一刀?#50=#50-#51g00 x#50 z1m98 p1011endwg00 x0.5 z1g00 x0 z1m98 p1011 ; 精车 g00 x50 z100 m05m30%1011g01 z0 ;编程起点x0,z1 g03 u20 w-10 r10g01
38、 u12 w-5w-10u1 ;退刀g00 z1m99m98 p1011 ; 半精车方法2-%1020m03 s600 t0101#50=35 ;初始化x 尺寸(毛坯值)#51=3 ;切削量while #50 gt #51+0.5 ; 还够车一刀?#50=#50-#51g90 g00 x#50 z1m98 p1021endwg00 x0.5 z1m98 p1021 ; 半精车g00 x0 z1m98 p1021 ; 精车g00 x50 z100 m05m30%1021(少走空刀的子程序)g01 z0 ;编程起点x0,z1g03 u20 w-10 r10if #50+20 gt 35 ; 过了毛
39、坯就退刀g01 u12 w-5if #50+20+12 gt 35 ;过了毛坯就退刀w-10endifendifu1 ;退刀g00 z1m992华中数控系统系统变量一览(1)子程序嵌套局部变量主程序的局部变量为 0 层,没有对应的系统变量#200 #249 0 层局部变量(对应0层子程序#0#49#250 #299 1 层局部变量(对应1层子程序#0#49)#300 #349 2 层局部变量(对应2层子程序#0#49)#350 #399 3 层局部变量(对应3层子程序#0#49)#400 #449 4 层局部变量(对应4层子程序#0#49)#450 #499 5 层局部变量(对应5层子程序#0
40、#49)#500 #549 6 层局部变量(对应6层子程序#0#49)#550 #599 7 层局部变量(对应7层子程序#0#49)(2)刀具相关系统变量#600 #699 刀具长度寄存器h0 h99#700 #799 刀具半径寄存器d0 d99#800 #899 刀具寿命寄存器(3)坐标相关系统变量:#1000 机床当前位置 x #1001 机床当前位置y #1002 机床当前位置z#1003 机床当前位置 a #1004 机床当前位置b #1005 机床当前位置c#1006 机床当前位置 u #1007 机床当前位置v #1008 机床当前位置 w#1009 保留#1010 程编机床位置
41、x #1011 程编机床位置y#1012 程编机床位置 z #1013 程编机床位置a #1014 程编机床位置b#1015 程编机床位置 c #1016 程编机床位置u #1017 程编机床位置v#1018 程编机床位置 w#1019 保留#1020 程编工件位置x#1021 程编工件位置 y#1024 程编工件位置 b#1027 程编工件位置 v#1030 当前工件零点 x#1033 当前工件零点 a#1036 当前工件零点 uw #1039 保留(4)参考点相关系统变量 #1040 g54零点x#1043 g54零点a#1046 g54零点u #1049 保留#1050 g55零点x#1
42、053 g55零点a#1056 g55零点u #1059 保留#1060 g56零点x#1022 程编工件位置z #1023 程编工件位置a#1025 程编工件位置 c #1026 程编工件位置u #1028 程编工件位置w #1029 保留#1031 当前工件零点y #1032 当前工件零点z#1034 当前工件零点b #1035 当前工件零点 c#1037 当前工件零点v #1038 当前工件零点#1041 g54 零点y #1042 g54 零点z#1044 g54 零点b #1045 g54 零点c#1047 g54 零点v #1048 g54 零点 w#1051 g55 零点y #1
43、052 g55 零点z#1054 g55 零点b #1055 g55 零点c#1057 g55 零点v #1058 g55 零点w#1061 g56 零点y #1062 g56 零点z#1063 g56零点a #1064 g56 零点b #1065 g56 零点c#1066 g56零点u #1067 g56 零点v #1068 g56 零点 w #1069 保留#1070 g57零点x #1071 g57 零点y #1072 g57 零点z#1073 g57零点a #1074 g57 零点b #1075 g57 零点c#1076 g57零点u #1077 g57 零点v #1078 g57 零
44、点 w #1079 保留#1080 g58零点x #1081 g58 零点y #1082 g58 零点z#1083 g58零点a #1084 g58 零点b #1085 g58 零点c#1086 g58零点u #1087 g58 零点v #1088 g58 零点w #1089 保留#1090 g59零点x #1091 g59 零点y #1092 g59 零点z#1093 g59零点a #1094 g59 零点b #1095 g59 零点c#1096 g59零点u #1097 g59 零点v #1098 g59 零点w #1099 保留#1100 中断点位置x #1101 中断点位置y #110
45、2 中断点位置z#1103 中断点位置a #1104 中断点位置b #1105 中断点位置c#1106 中断点位置u #1107 中断点位置v #1108 中断点位置 w #1109 坐标系建立轴#1110 g28中间点位置x #1111 g28 中间点位置y #1112 g28 中 间点位置z#1113 g28中间点位置a #1114 g28 中间点位置b #1115 g28 中间点位置c#1116 g28中间点位置u #1117 g28 中间点位置v #1118 g28 中间点位置w #1119 g28屏蔽字#1120 镜像点位置x #1121 镜像点位置y #1122 镜像点 位置z#1123 镜像点位置a 位置c#1126 镜像点位置u 位置w#1129 镜像屏蔽字心(轴2)#1132 旋转角度#1135 缩放中心( 轴1) 心(轴3)#1138 缩放比例换代码1#1141 坐标变换代码 2 (5)系统状态变量#1144 刀具长度补偿号 面轴1#1147 当前平面轴2 度指定#1150 g代码模态值0#1124 镜像点位置b#112
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 前台的辞职报告模板合集七篇
- 迎新年晚会意义策划
- 2023一年级数学上册 八 认识钟表(小明的一天)教学实录 北师大版
- 2024-2025学年新教材高中化学 第五章 化工生产中的重要非金属元素 1.3 硫酸根离子检验、硫和含硫化合物的相互转化教学实录 新人教版必修2
- 2024秋八年级道德与法治上册 第一单元 成长的空间 第一课 相亲相爱一家人(他们这样做的原因)教学思路 人民版
- 2024年某城市地铁线路建设及运营管理长期租赁合同
- 实际正常和标准成本法ActualNormalandStandardCosting
- 广州市来穗人员服务管理局来穗人员积分制服务管理信息系统
- 2022天宫课堂第三课观后感10篇范文
- 2023二年级数学下册 7 万以内数的认识第8课时 近似数教学实录 新人教版
- 幼儿园交通安全宣传课件PPT
- 门窗施工组织设计与方案
- 健身健美(课堂PPT)
- 钢筋统计表(插图有尺寸)
- (完整版)财务管理学课后习题答案-人大版
- 食品安全管理体系培训系列教材(共44页).ppt
- 世界各地的新年习俗(课堂PPT)
- 生物矿化与仿生材料的研究现状及展望
- 人教版“课标”教材《统计与概率》教学内容、具体目标和要求
- JJF 1827-2020水泥细度负压筛析仪校准规范
- 物业项目月度绩效考核表格
评论
0/150
提交评论