邹军:邀你一起学CNC宏程序编程(基础篇) |
您所在的位置:网站首页 › cnc编程自己学的难吗 › 邹军:邀你一起学CNC宏程序编程(基础篇) |
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 |