邹军:邀你一起学CNC宏程序编程(基础篇)

您所在的位置:网站首页 cnc编程自己学的难吗 邹军:邀你一起学CNC宏程序编程(基础篇)

邹军:邀你一起学CNC宏程序编程(基础篇)

2024-07-16 08:47| 来源: 网络整理| 查看: 265

G01Z-30.F0.1

……

……

这种办法可以编写出来,但是OUT了,小白突然想起G90,G71等循环指令,是的, G90 G71等循环指令,其实是系统厂商用宏程序开发出来的G代码。

本质上属于宏程序范畴,你学会宏程序,也可以定义属于自己的G代码,让程序通用性强,关于这点绝活,军哥我后面传授,就目前而言,先把变量理解透彻。

你看上面程序G代码后面都是些具体的数值,那么变量并非是一个具体数值,而是由符号来代替具体数值。

举个例子,上面零件毛坯为D42,要加工到尺寸D20,长为20,那么我用符号#1,#2,#3分别定义为毛坯尺寸,要加工到的尺寸,加工的长度等。

这个程序如下:

军哥我用#1,#3等符号来代表零件的毛坯尺寸,零件的长度等,加工形状相似,尺寸不同的零件,这个程序就有了通用性。

看完军哥的讲解,小白顿时觉得采用#1,#2这种符号来编写程序太方便了。

于是小白接着问:“#1,#2,#3这种“符号”怎么理解?是不是还可以使用#4,#5,#6等等。

军哥我知道小白是个善于思考的人,于是就给他讲到:这些符号就是宏变量,你看市面上有不少数控系统,如三菱,法拉克,哈斯,广州数控,华中数控等等,变量都是由#和 数字组成 。所以军哥我以FANUC系统为蓝本来展开讲解宏程序变量,这样一通百通。

既然宏程序的变量是由#和数字组成,如#1,#2……#33,#300,#301,#302…..,#1000,#1001 ……等等,编写程序的时候,可以任意使用这些变量?

标示数字的不同,宏变量的意义也不同,分局部变量(#1~#33)、公共变量、系统变量,就目前来说,先学会使用局部变量,也就是#1,#2,#3,#4,#5…….,#33这33个变量,可以任意使。

比如上面的例子,你可以用#1~#33中的任意一个变量来代表零件毛坯尺寸。

小白皱着眉头问:“#1~#33中的任意一个变量来代表零件毛坯尺寸” 比如,使用了#6代表毛坯尺,还可以使用#6代表零件加工长度吗?

军哥我给你举个例子,在一个班上,有两个学生都叫小白,当你叫小白的时候,会发生一个问题,这两个人都会回答,但你其实只想喊其中的一个。

这就分不清了。同理,在一个程序中(比如O0001程序中),你使用同一个变量代表多个零件特征的时候,机床系统会发生糊。所以在一个程序中,不同特征建议用不同变量。

2,变量的赋值

有了变量,我们需要给变量赋值。什么是赋值?也就是将某一数值赋给某个变量的过程,称为赋值。

军哥还是结合上面案给你举个例子。

比如自定义了两个变量

#2 代表:加工到的尺寸

#3代表:加工的长度

那么根据零件图纸尺寸,我把20这个数值赋给#2; -30赋给#3的过程就是赋值。

在数控系统中,赋值的表示方式是:

#2=20

#3=-30

也就是等号右边的数值赋给了左边变量号。

此时#2的数值就相当于20,#3的数值就相当于-30。如果有这么一个程序段G00X#2 ; Z#3;

那将等同于G00X20 ; Z-30;

军哥再给你举几个例子,如果

#6=3

#8=10

那么:G01X#6 Y#8完全等同于 G01X3. Y10.

因为把3,10这两个数字分别赋值给了变量#6,#8,所以#6,#8就代表着数字3, 10;因此上面两段小程序完全等同!

讲到这,军哥调出了电脑中的一个工序图:

突然问小白:“上面形状类似,尺寸不同的零件,要精加工内孔,你能编写个宏程序吗?”

小白一看,知道军哥我强调的玩宏就是玩变量,上面3种零件,加工的形状类似,只是尺寸不一样,那么可以用变量来代替这些尺寸,于是任意设置了几个变量如#1 代表D1的尺寸,#2代表D2的尺寸,#3代表L1的尺寸,#4代表L2的尺寸。

然后给军哥写了如下精加工的程序:

是的,普通程序X,Y,Z后面都跟的是具体数值,如果有好几种类似的零件,完全可以采用变量替代这些具体数值,根据零件图纸,给变量赋予对应数值,从而让一个程序来完成n多种的零件加工。

3,变量的运算

说起运算,你肯定会想到上学的时候学过加减乘除,开方,平方根正,弦余弦等等运算,那么变量之间也可以这样运算的。

比如,#1+#2 #6*TAN45 #1-#6*#3等等。

如果#1=10 ;#2=20 ;#3=-30;#6=2

那么#1+#2运算的结果为:30 ;

#6*TAN45运算的结果为:20;

#1-#6*#3运算的结果为:70 ;

军哥讲到这里,小白表示完全明白,因为小学生都学过加减乘除运算法则,小白很想知道,开方,平方根正,正余弦等等数学公式运算,于是问道:军哥,三角函数,开方,曲线,椭圆等数学方程式在宏程序中如何应用的?

关于函数,数学公式等在编程中如何应用,军哥后面传授,毕竟学习好比爬楼梯,你要的东西在10楼,目前你还在一楼,需要一步一个脚印去学,就目前而言,先把变量搞明白。

关于变量的运算,军哥我补充道:

变量的运算顺序和数学运算顺序一样,有乘除的先算乘除,然后算加减。

如果有括号,先算括号里面的,在FAUNC系统中运算式要用中括号括起来。

比如:

#1=1

#2=3

#6=10

那么:

#1+#6=11

#1+#2*#6=31

#1*[#1+#6]=11

#1-[#2+#6]=-12

再比如

#1=1

#1=#1+1

讲到这里,军哥我停了下来问小白:“#1的值最后是多少?”

由于#1是1,那么1=1+1 貌似不合理啊,小白回答道。

请注意:前面讲过变量只是个代号,而不是一个具体数字。

#1=#1+1

#1=#1-1

这种形式的表达式是宏程序的“源动力”我们称为变量的自增(#1=#1+1)或自减(#1=#1-1)运算,任何宏程序几乎都离不开这种类型的运算。

为了你理解这种运算,军哥我给你举个例子。

我们这里的房价一直飙升,两年前均价6千/㎡,一年前8千/㎡,随着周边配套设施的建设,房还在涨价,现在均价1万/㎡,这就是自增。

房价=房价+增值部分

再比如现在的小萌不是往年的小萌了,现在的小A 牛逼啦!他通过自身努力,先掌握了别人还没有掌握的技能,那么他就厉害了。

小萌=小萌+绝活

好了,回到上面的问题?

#1=1

#1=#1+1

最初变量#1的值是1,当程序运行到#1=#1+1

由于右边的变量增加了1,所以现在#1不是最开始#1了,而是2了

同样的道理,军哥问道:”小白你思考下面#1最后值是多少”?

#1=0

#1=#1-1

由于军哥前面讲了变量的自增,小白反应灵敏,于是一口的答道:“左边#1的值为-1。

看着小白掌握了变量的减运算,军哥接着说:

上面变量的算术运算和我们学的数学运算差不多吧,包括平方根,三角函数等等运算与数学运算的方法完全一致!只是在宏的运算中个别算术运算符号的格式 是不一样的。比如下表:

上表是我们常用的运算符号,我们用宏编写程序的时候,必须用宏变量的运算符号,具体如何应用会在后续的讲解中逐步渗透!数学中还有一些比如平方,绝对值,三角函数等等运算宏编程也会用到,下面我大致给讲解下,具体应用会在宏案例中来讲解!

SQRT[ ]: 平方根

ABS: [ ]:绝对值

这两个运算在我们学数学中都讲过。只不过宏的符号不一样而已。我们看在宏程序中如何使用它们。

比如:

#1=9

#2=SQRT[#1]

此时,#2=3

分析:因为#1的值是9,而对9开方 ,其结果就是3

比如:

#1=-20

#2=10

#3=ABS[#1+#2]

此时,#3=10

数学课本中学过 负数的绝对值,都是正数。在宏程序中ABS的目的就是去掉负号。所以#1=-20,#2=2

#1+#2这么运算 即-10 , -10的绝对值为:10

军哥再举几个简单例子

取整数函数ROUND,它的含义是去掉小数点,并对小数点后面的值四舍五入,使整个数值结果为整。

如#1=1.234

ROUND[#1] 的结果是1

如#1=0.6

ROUND[#1]的结果为1。

还有些函数如上取整FIX,下去整FUP

比如上取整FIX意思是直接舍弃小数点后面的数值。

如#1=0.96 那么FIX[#1]运算后的值为0,(因为此函数不考虑四舍五入,直接舍弃小数点后面的所有数值)。

FUP呢?用法和FIX相反,把小数部分变为整数1,并加到整数部分。

比如#1=1.06 FUP[#1]运算后的值为2。

#2=0.01 那么FUP[#2]运算后的值为1。

好了,关于变量今天给大家分享到这里, 学好数控编程 找军哥,因为一套好的,有价值的专业编程资料是让你看着不累,学着还轻松。 返回搜狐,查看更多



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3