\
宏程序简单来说分两部分
一是:宏程序的格式
主要是变量和循环体
变量属于硬性的规定,每个系统都有自己的规定,
根据自己的系统去了解,不需要都理解的特别多
只要会运用就可以
这里以发那科系统为例
在发那科系统中,变量是以#键开始的后面跟数字
(变量的格式即#1 #2)
例如 #1 这个时候考虑这个#1的时候,可以
把他想象成1号仓库,这里的存储物品是数据
和运算的公式
在这个仓库中所以的运算时直接进行的,是可以
直接通过如X#1这样的形式直接调用里面的数据
也可以通过#29=#30/COS[15]*[SIN[15]+COS[15]-1]]
#16=0.5*[#11-#3]+#12+#13+#29-0.5
运算公式,直接代入数据参与运算后再调用
简单来说变量就直接理解为一个存储单元
#1 #2 #3这些,就直接理解为1号仓库2好仓库3号仓库
变量符号后面的数值没有特殊的含义,他所代表的就是
一个变量的具体地址,这些是发那科系统中的变量
西门子系统中R1 R2 R3(变量的格式)
在任何的宏程序,思路只要你会,其他的都简单,可能
3、5天格式就完全会了,所以宏程序具体的格式,不重
要,重要的是思路,是方法,用什么系统到时候在看下
具体的格式就可以了
变量一般分为3种:局部变量(只在当前程序中有效,包括
所在的主程序和子程序,断电后数据会清零,一般如果去
编写通用宏程序尽量使用局部变量)(#1到#33)
全局变量(在所有的程序中都有效,断电后也不会清零)
系统变量(与系统参数绑定到一块的变量,一般不是
厂家或是非常了解参数的人尽量不要改)
初期只需要把局部变量用好就行了,变量不用刻意的
去研究或是理解,没有必要,也没有太大的意义
在发那科系统中循环语句就两个:while和if
循环控制语句
WHILE[] DO1
WHILE[]DO3
WHILE[]DO2
END2
WHILE[]DO2
END2
END3
END1(1.2.3只能是这三个数值,但是没有顺序之分)
这里是一个多重嵌套,具体的直播的时候也给大家讲了
(IF[ ]GOTO30
N+数字n
条件跳转)
往前跳这叫循环体
N30
IF[判定条件]GOTO30
IF[]GOTO30
往后跳条件跳转
N30
这些直播的时候也讲的挺详细的了
WHILE语句更像是用苹果系统
(封闭但是效率高)
IF语句更像是用安卓系统
(开发兼容但是效率较低)
IF和WHILE可以相互嵌套,也可以单独嵌套
也可以单独使用
N+数字m
当我们想用IF循环的时候,一定要前置跳转程序段
例如:
#1=10
N10
G0 X[#1+10] 20 19 ...10
G1 Z-20 F0.2
G0 X22
Z2
#1=#1-1 9 8 7...0
IF[#1 GE 0]GOTO10
G0 X200
Z200
最简单的车个螺纹,如果只有一个车削动作的话,只要
一层循环
深度循环就好
WHILE[]DO1
IF[]GOTOn
变量运算
IF[]THEN运算
END1
Nn
WHILE语句在实际用的时候,他是一个封闭的整体,相当于
一个通道,这个通道只有一个入口那就WHILE[]DO
任何的跳转语句都不能跳转进入,出口可以有两个或是多个
这个时候可以直接结束循环,也可以通过跳转语句来跳转
下面的这个格式是错误的,GOTO是跳不进循环去的
GOTO20
WHILE[]DO1
N20
IF[]GOTOn
变量运算
IF[]THEN运算
END1
Nn
GOTOn(强制跳转) GOTO2 N2
N5
IF[]GOTO5(有条件跳转)一是循环体(往前跳)
二是跳转(往后跳)
N5
IF[]THEN(有条件运算)
THEN后面一般都赋值或是运算
IF[]成立的时候,执行
THEN后面的语句
(这个语句为我们简化程序或是增加程序的功能
提供了很大的方便)
N3
T101
程序段
GOTO3
(GOTO语句后的程序段号一定不能出现在GOTO前,否则
就是死循环)
T202
程序段
T303
程序段
N3
T404
程序段
T101
M03 S2000
N2
G0 X-200
Z-200
X0
Z0
GOTO2
M99
宏程序的语句和变量,大概这个意思都讲清楚
循环体之间可以通过GOTO 与条件跳转或IF[]THEN
之间的搭配来完成强大功能,这个就需要具体的
情况具体搭配
#1=1
IF[#1 EQ -1]GOTO20
WHILE[]DO1
END1
GOTO30
N20
WHILE[]DO1
END1
N30
标签: 数控宏程序