首页>工作相关>数控宏程序中的判断

数控宏程序中的判断

宏程序各个厂家的实现出入较大,不同厂家实现的方法和功能也有差异,一般来说,越新的系统对宏程序的支持越好。具体到在某一台设备上实现功能,还是需要不断的调试与查询手册。来看下面的流程图,左侧的实现很简洁,如果烧烤没开,一起吃烧烤这个诱人的邀请不会被执行,程序吃个面就结束了,那如果烧烤店出摊了,那就一起吃个烧烤,炒面就免了。流程很清楚,也是电脑编程中常用的做法,而宏程序的实现却是后面这种,通过2个跳转实现了左边程序相同的效果。所以说有点繁琐,这种goto结构早已淡出了电脑编程,但在宏程序中还是在广泛应用。

cnc_marco_if_p1

上图中右边部分如果不在吃炒面后跳转的话,烧烤开着你能正常吃到一顿烧烤,如果没开,那就吃完炒饭在去吃烧拷,违背了程序非好即坏二选一的初衷。来看下下面的例题,均匀分布5个孔,现在只打两侧4个,中间一个不打需要跳过,有规律的孔我们可以直接使用循环,先按5孔编程:

cnc_marco_if_p2

G54
M3
G0X0Y0Z0
#1=0
WHILE[#1LE60] DO 1
G81X#1Y0Z-10R0
#1=#1+15
END 1
G0Z50
M5
M30

又因为中间的孔需要被跳过,也就是说,当#1=30的时候,这个孔是需要跳过的,现在修改程序如下:

G54
M3
G0X0Y0Z0
#1=0
WHILE[#1LE60] DO 1
IF[#1EQ30]GOTO 100
G81X#1Y0Z-10R0
N100 #1=#1+15
END 1
G0Z50
M5
M30

解释一下程序,“EQ”表示等于,”GE”表示大于等于,“LE”表示小于等于,“IF”是一个选择语句,其后的中括号包括的也是条件语句,整句的意思是,如果#1=30,那么跳转到标记为100的程序段开始执行,中间的打孔语句就被跳过了。下面是一个稍微复杂点的例子:

cnc_marco_if_p3

编制程序如下:

G54
M3
G0X0Y0Z0
#1=0
WHILE[#1LE60] DO 1
IF[ [#1/30] NE INT[#1/30]]GOTO 100
G81X#1Y0Z-10R0
GOTO 200
N100 G81X#1Y20Z-10R0
N200 #1=#1+15
END 1
G0Z50
M5
M30

条件语句内,[#1/30] NE INT[#1/30]表示,当#1/30与#1/30并取整的结果不同时,跳转到标记为100的程序,否则按正常流程运行,问题是在正常流程中,如果不加“GOTO 200”无条件语句时,程序在不满足条件时会把两个孔都打掉。二选一的情况下,会需要用到无条件跳转语句。顺带一提,宏程序中可以对变量进行复杂的运算,基本包括了10块钱一个的地摊计算器的所有功能。

当然,上面这个题目可以有更为巧妙的方法,比如我们把原点放在20的中心,往上打孔需要走10mm,往下打孔也需要走10mm,所不同的是,往上是正方向,往下则是反方向:

G54
M3
G0X0Y0Z0
#1=0
#2=10
WHILE[#1LE60] DO 1
G81X#1Y#2Z-10R0
#1=#1+15
#2=-#2
END 1
G0Z50
M5
M30

每循环一次,#2会被赋值为它自身的相反数,当#2=10的时候,它被赋值为-10,当它的值为负时,因为负负得正,所以值又变回了10。

标签: CNC

移动端可扫我直达哦~

推荐阅读

cnc 2025-01-03

三菱60S如何删除多余程序

可能很少有工厂还在使用这么老旧的设备了吧,单位就有这么一台,一般拿来开粗,除了内存小一些,手工编程麻烦一点,还是蛮好用的,至于面板上的浮灰就请诸位当作没看见吧。内存小到什么程度呢,平均2~3KB的程序存了30几道,它就开始报空间不足。...

工作相关 CNC

cnc 2024-12-28

Hsv-160u-075型号驱动器报A35处理一例

闲聊的时候最怕空气突然安静,上班的时候则是最怕车间突然变安静——不是停电了,就是设备又故障了。今天一向任劳任怨的华中机床也报了一串错误:百度大致查了一下,说这个报错可能是由于输入的指令脉冲的脉冲频率过高。故障原因:指令脉冲频率过高。指...

工作相关 CNC

cnc 2024-09-07

三菱CNC 64-SM如何复制程序

2024年了,遇到这样一台没有u盘,rs232接口生死难料的设备,也是挺无语的。BOSS以旧换旧淘了这么台设备,于是输入程序成了一个令人头疼的事情。花整半天时间手打了一个程序之后,想起来,这台设备对应的工序类似,所以程序格式基本相同,...

工作相关 CNC

cnc 2024-06-25

数控设备打刀缸紧刀慢松刀快或是紧刀快松到慢

公司某台华中的设备出了点问题,自动换刀的时候刀臂停在了换刀的位置不动弹了。检查了一下气源,供气倒是正常,将刀臂手动摇回初始位置后,按华中官网的指令,用“M69”命令将刀杯回位。检测了一下抓刀的流程,发现松刀时打刀缸下落速度正常,但紧刀...

工作相关 CNC

cnc 2024-06-22

华中数控刀库主要功能M代码含刀套倒下回位

单位多台华中系统的设备,运行稳定,就是时不时会出现一些小问题,比如刀库突然卡死,主轴定位偏移之类的。今天遇到一个因为信号超时引起的异常,换刀时松刀较快,但紧刀的时候气缸回退过慢,松紧刀信号超过了换刀程序的规定时长,从而引发了报警。用活...

工作相关 CNC

cnc 2024-04-17

数控铣刀杆MFWN04镶合金铣刀的代替品

单位加工深槽一直使用镶合金的铣刀,这货因为需要把刀片焊接上去,可能尺寸比较难以控制。博主在淘宝上尝试了很多家店铺的商品,质量偏差较大,不是直径(标称值统一为20的情况下)有较大出入,就是头部研磨过于粗糙,好不容易找到一家图片与产品质量...

工作相关 CNC

cnc 2024-03-07

三菱M60S无刀库报错9.ATC NOT READY

公司的三菱M60S有年头了,原本就是一台二手设备,配置较低,也没有加装刀库。某天操机的师傅过来找,说机床撞刀后报警了,重新开机后报警也没有消除。下去看了一下报警信息:9.ATC NOT READY这个错误太眼熟了,在有刀库的设备上经常...

工作相关 CNC

cnc 2024-03-01

广州数控GSK980MDC黑屏维修一例

清早到公司的时候车间主任告知一台广数的设备黑屏,看了下电气柜,伺服均通电量灯无报警。打开GSK980MDC位置的控制箱,测量了一下配套开关电源的输入部分,220V输入正常,就是没有了低压输出,考虑是开关电源损坏了。开关电源是个易损件,...

工作相关 CNC

cnc 2023-10-28

GSK980数控铣床伺服无报警黑屏一例

生产企业的设备故障犹如家常便饭,坏得多了,虽然不是设备维修人员,现场看上一圈,偶尔也能看出一点门道了。今天遇到一个黑屏的故障,设备系统是广州数控980系统的,广数的系统虽然没有三菱法拉克之类的名声在外,胜在操作简单,工作也很稳定。打开...

工作相关 CNC