请问大家数控加工中心怎么钻孔用宏程序怎么编程,WHILE和IF[#100 GE #101]GOTO1 分别怎么编写.悬赏100

希望大家能举例说明,分数绝对在150以上

循环宏程序举例:

IF[#100 GE #101]GOTO1

当#100大于等于#101时跳到N1程序段执行。

IF是满足条件跳出,WHILE是满足条件运行,掌握一个就够了。

#1~#33是局部变量,局部变量只能在宏中使用,以保持操作的结果,关闭电源时,局部变量被初始化成“空”。宏调用时,自变量分配给局部变量。

#100~#149(#199)和#500~#531(#999)是公共变量,公共变量可在不同的宏程序间共享。关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据。公共变量#150~#199和#532~#999可以选用,但是当这些变量被使用时,纸带长度减少了8.5米。

扩展资料:

数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。

宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程。较大地简化编程;扩展应用范围。

参考资料来源:百度百科-宏程序

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-29

举个简单例子:100直径圆周9孔均布。初始角20°,孔均布角40°。

 使用循环语句WHILE

O1000

G00G90G54X0.Y0.

Z50.M03S800

#1=20             初始角

#2=9              孔数

#3=50             圆周半径

#4=0              孔加工计数器

WHILE[#4LT#2]DO 1  加工的孔数小于9则继续加工,否则跳出循环。      

#5=#1+#4*40         加工孔的角度

#6=#3*COS[#5]       加工孔的X值      

#7=#3*SIN[#5]       加工孔的Y值

G81X#6Y#7Z-5.R5.F200   加工孔

#4=#4+1             计算加工孔数

END 1              循环体末

G80G00Z50M05

G91G28Z0

M30 

使用条件转移语句IF[  ] GOTOn

O2000

G00G90G54X0.Y0.

Z50.M03S800

#1=20             初始角

#2=9              孔数

#3=50             圆周半径

#4=1              孔加工计数器

N100 #5=#1+#4*40     加工孔的角度

#6=#3*COS[#5]        加工孔的X值 

#7=#3*SIN[#5]        加工孔的Y值

G81X#6Y#7Z-5.R5.F200

#4=#4+1

IF[#4LT#2]GOTO 100  加工的孔数小于9转向N100段,否则向下段  

G80G00Z50M05

G91G28Z0

M30 

  

给你用了2种循环方法,尽量用循环语句,系统处理的快。

沿圆周均布的孔加工都可参考,20等分50等分...都行。

20年前我用的是FANUC 6系统,没有极坐标编程,经常使用。

有问题经常交流啊!!!

第2个回答  2011-08-29
兄弟 别听他们说的 宏程序作用大着呢
另外在初学阶段 是真的得什么都用宏程序编编看 只有这样才能熟练的掌握他
IF GOTO 跟WHILE DO END 的组合其实能实现的作用是一样的
只不过WHILE组合属于模块化编程 一般计算机编程里面推荐用这个方法
宏程序的作用是抓住加工过程中重复的有规律的那一部分 进行参数化编程 节省因刀具 孔径 高度等参数变化而修改程序的时间 或者为机床增加一些你需要经常用到的功能
附上我自己为厂里一类工件所编的参数化数控程序 里面既用IF GOTO 也有WHILE
主程序
%
O0555
( D12 R0)
M6T3
G0G90G54X0.Y90M3S2200
G43H3Z100.F1800M09
G65P1234A37.3B14.C1.D12.R3.H0.5Q0.5Z-7.X0.Y0.
G65P1234A23.B14.C3.D12.R3.H0.5Q0.5Z-7.X-21.5Y38.5
G52X100.
G65P1234A37.3B14.C1.D12.R3.H0.5Q0.5Z-7.X0.Y0.
G65P1234A23.B14.C3.D12.R3.H0.5Q0.5Z-7.X-21.5Y38.5
G52X200.
G65P1234A37.3B14.C1.D12.R3.H0.5Q0.5Z-7.X0.Y0.
G65P1234A23.B14.C3.D12.R3.H0.5Q0.5Z-7.X-21.5Y38.5
G52X0.
M5
M9
G91G28Z0.
M01

( D10 R0)
M6T5
G0G90G54X0.Y90M3S2200
G43H5Z100.F500M09
G65P1234A37.3B14.2C2.D10.R3.Z-7.X0.Y0.
G65P1234A23.B14.2C4.D10.R3.Z-7.X-21.5Y38.5
G52X100.
G65P1234A37.3B14.2C2.D10.R3.Z-7.X0.Y0.
G65P1234A23.B14.2C4.D10.R3.Z-7.X-21.5Y38.5
G52X200.
G65P1234A37.3B14.2C2.D10.R3.Z-7.X0.Y0.
G65P1234A23.B14.2C4.D10.R3.Z-7.X-21.5Y38.5
M5
M9

G52X0.
G91G28Z0.
G91G28Y0.
G0G90X80.
M30
%

子程序
%
O1234
(---------)
IF[#1LE0.]GOTO5
IF[#2LE0.]GOTO5
IF[#7GE#2]GOTO5
IF[#18EQ#0]GOTO5
IF[#800GE500.]THEN#800=500.
IF[#11EQ#0]THEN#11=#18
IF[#11GT#18]THEN#11=#18
IF[#26GT#11]THEN#26=#11
#17=ABS[#17]
#5=#4109
#6=#5003
#8=[#2-#7]/2
(---------)
IF[#3EQ1.]GOTO1
IF[#3EQ2.]GOTO3
IF[#3EQ3.]GOTO2
IF[#3EQ4.]GOTO4
GOTO5
N1G0G90X#24Y#25
Z#18
#9=#11
WHILE[#9GE#26]DO1
G01Z#9F#800
Y[#25-#8]
X[#24+#1/2]F#5
G03Y[#25+#8]R#8F[#5*0.7]
G01X[#24-#1/2]F#5
G03Y[#25-#8]R#8F[#5*0.7]
G01X#24F#5
Y#25
/Z[#9+0.5]
#9=#9-#17
END1
G0Z#6
F#5
M99

N2G0G90X#24Y#25
Z#18
#9=#11
WHILE[#9GE#26]DO2
G01Z#9F#800
X[#24-#8]
Y[#25-#1/2]F#5
G03X[#24+#8]R#8F[#5*0.7]
G01Y[#25+#1/2]F#5
G03X[#24-#8]R#8F[#5*0.7]
G01Y#25F#5
X#24
/Z[#9+0.5]
#9=#9-#17
END2
G0Z#6
F#5
M99

N3G0G90X[#24-#1/2]Y#25
Z#18
G01Z#26F#800
Y[#25-#8]
X[#24+#1/2]F#5
G03Y[#25+#8]R#8F[#5*0.7]
G01X[#24-#1/2]F#5
G03Y[#25-#8]R#8F[#5*0.7]
G01Y#25
G0Z#6
F#5
M99

N4G0G90X#24Y[#25+#1/2]
Z#18
G01Z#26F#800
X[#24-#8]
Y[#25-#1/2]F#5
G03X[#24+#8]R#8F[#5*0.7]
G01Y[#25+#1/2]F#5
G03X[#24-#8]R#8F[#5*0.7]
G01X#24
G0Z#6
F#5
M99

N5#3000=1( ERROR)
%追问

这位大哥你编的很好,但是小弟是新学的,能不能给点注解啊

追答

加工的零件图片 看网址 http://hiphotos.baidu.com/mjfen/pic/item/f0330311356c80aaa6ef3fbb.jpg

G65P1234 指调用宏程序 O1234
后面跟参数意义 槽 A长 B宽 C 模式 1横粗加工 2横精加工3竖粗加工4竖精加工 D刀具直径 R逼近点 H开始加工高度 Z深度 Q每刀吃刀量
WHILE[条件] DO1
...
END1

N1
......
IF[条件] GOTO1
意义一样
不过后者还可以
IF[条件] GOTO1
......
N1
前者办不到
IF 后面还能跟THEN

留个邮箱 给你发本WORD书

追问

我的QQ油箱是[email protected],麻烦你发给我吧!或者发挖我的163邮箱[email protected]

第3个回答  2011-09-06
其实原理很简单,宏程序就是把你的一串G代码打包而已,然后可以直接输入宏程序名来调用。钻孔的话,它的动作过程是,1.先以G00移动到所指定之(X, Y)点2.以G00下降至所设定的中间点R点。3.以G01下降至相对于目前所钻深度一个切削量Q的深度4. 以G00向上升到工件表面 R点。5. 以G00下降至相对于目前所钻深度上方一个退刀量 d的深度(参数4002设定)6. 再以G01向下降到相对于目前所钻深度一个切削量Q的深度7. 以G00向上升到工件表面 R点。8. 重复上述的钻孔动作直到到达洞底Z点9. 以G00向上升到初始点(G98)或程序R点(G99)
宏程序就是把这么一段过程打包,然后可以直接用一个G码来调用了。不过正正写的过程中就不会这么简单,要考虑很多东西。
希望对你有用,我也是刚学数控不久。
第4个回答  推荐于2017-09-05
在初学阶段 是真的得什么都用宏程序编编看 只有这样才能熟练的掌握他
IF GOTO 跟WHILE DO END 的组合其实能实现的作用是一样的
只不过WHILE组合属于模块化编程 一般计算机编程里面推荐用这个方法
宏程序的作用是抓住加工过程中重复的有规律的那一部分 进行参数化编程 节省因刀具 孔径 高度等参数变化而修改程序的时间 或者为机床增加一些你需要经常用到的功能本回答被提问者采纳
相似回答