本节学习要点
1.牢记G65数据传递规则
在前面的章节里,介绍了关于非圆曲线、异形螺纹的宏程序编制。但那些程序的针对性很强,没有扩展性、通用性。就拿讲过的“直面圆弧螺纹”来说吧,今天我想车一个大径为50mm、圆弧半径为3mm、螺距为12mm的螺纹,明天我又想车一个大径为47.5mm、圆弧半径为3.2mm、螺距为13mm的螺纹。很明显这两个程序只能用在相对的图样上。那么有没有一种程序,能够一劳永逸地解决同类型零件的编程呢?答案是肯定的。接下来就看看这种程序——通用宏程序。
其实通用宏程序,就是将变化的部分集合在一起。这一点会在本章中详细介绍。通用宏程序是技术员们自己创造的方法,名称也是自定义的。编制通用宏程序的方法比较多,根据每个人不同的习惯,最常见的是G65调用法和公共变量法。
让我们先来看G65调用法。
格式:G65 P子程序名地址名
关于地址名我们暂不管,先看看Po其实G65和M98子程序调用很类似。P后面跟着子程序的名字。比如说现在有个子程序01100,那么在主程序利用G65调用时,写成G65 Pll00即可I那个大写字母O不需要l。
接下来就该谈谈非常关键的地址名了。
其实地址名说白了就是给其对应的局部变量传递数据的。地址名分两种,
先看第一种,见表7-1
表7-1 地址名与变量名
表7-1中这么多数据看起来很晕。通过一个例子加以说明。
如果要通过地址名的方法编写宏程序,那么一定是分主程序与子程序的其中,宏程序主体部分(加工部分)写在子程序里,而调用的程序写在主程序比如要写一个外圆的通用宏程序,程序如例7-1所示。
例7-1(图7-1)
图 7-1
前面说过通用宏程序既然是通用,说明程序要能适应图样的变化。比如图7-1中要车削一个φ30mm×50mm的成品。那如果我又想车一个φ26mm×48mm的零件呢?由此可见,编制的程序要包含这个变化因素。所以编制通用宏程序一定要把会变化的数据找出来!
程序示例:(www.xing528.com)
下面开始分析程序以及编程时的注意点。
1)在主程序中,我们使用G65来调用2号子程序。后面跟着的A、B、C、I、J就是地址名。根据表7-1可以看出A、B、C、I、J分别对应变量#1、#2、#3、#4、#5。那么这里是什么意思呢?其实很简单。在调用子程序O0002的时候,主程序的数据50、30、50、2、150由地址名分别赋值给了子程序里对应的#1、#2、#3、#4、#5。虽然子程序没有对这些变量赋值,实际上已经被主程序传进来了。
2)在主程序传递数值的时候,整数的值必须在后面加上小数点。比如你要传A50,那么必须写成A50.,否则传进去的数就是0.05!或许这和系统参数设置有关,但不论如何,我都建议加上小数点。
3)在传递数据的时候,#1、#2、#3分别对应地址名A、B、C。当要用到#4时,千万别想当然地用地址名D。如果你用地址名D,那么在子程序例的#4将没有任何数据。因为地址名D对应的变量是#7!
4)在上例程序中,如果把毛坯换成60mm,Z向车削长度改为70mm,那么在主程序中改变A、C的数据即可加工。甚至改变背吃刀量也没问题(这里没考虑能否整除的问题)。所以只要找好会变化的数据,然后在子程序中用变量表示,加工思路是不变的。
让我们看一下加工效果(见图7-2)。
图 7-2
本例分析到这就结束了。但有读者可能会问:如果想用到#10、#29、#30等变量该怎么办呢?表7-1中有没有这些变量对应的地址名啊。就这个问题得介绍另一个地址名与变量名表,见表7-2。
表7-2 地址名与变量名
在表7-2中,可以看到变量的个数明显比表7-1的多。但是它们的地址名却发生了变化。在使用表7-2的地址名传递数据时,一定要按照顺序传递!其他没任何区别。
但有没有想过为什么表7-1中只有21个字母?让我们看看没写的几个字母就知道为什么了。
除去21个字母,还有5个分别是:G、L、N、O、Po看到这些字母我们很快就能想到G表示准备指令、L表示循环次数、N表示程序段号、O表示程序号标识、P表示程序号调用。这些字母都有特定的含义是不能使用的。虽然在主程序中没法使用这5个字母给对应的变量传递数据,但是在子程序中可以使用这5个字母所对应的变量#10、#12、#14、#15、#16。这个根据程序来自己定义了。这里不多赘述。
除了G65调用宏程序以外,还有G66指令。但这里不介绍G660它们的区别是G66为模态指令,需要用G67注销,而G65是非模态的,仅此而已。另外,通用宏程序可以设置数据监测变量。不过对于新手来说,我并不建议这么做。
本节到这里就结束了,读者一定要看懂例题和牢记两个表格的数据。否则后面的示例程序难度比较大,会给你带来一定的压力。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。