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

数控宏程序中的判断

宏程序各个厂家的实现出入较大,不同厂家实现的方法和功能也有差异,一般来说,越新的系统对宏程序的支持越好。具体到在某一台设备上实现功能,还是需要不断的调试与查询手册。来看下面的流程图,左侧的实现很简洁,如果烧烤没开,一起吃烧烤这个诱人的邀请不会被执行,程序吃个面就结束了,那如果烧烤店出摊了,那就一起吃个烧烤,炒面就免了。流程很清楚,也是电脑编程中常用的做法,而宏程序的实现却是后面这种,通过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 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

cnc 2023-10-09

HSV-18S系列交流主轴驱动器故障一览表

故障诊断注意:参与检修人员必须有相应专业知识和能力。主轴驱动和电机断电至少5分钟后,才能触摸驱动器和电机,防止电击和灼伤。驱动器故障报警后,须根据报警代码排除故障后才能投入使用。复位报警前,必须确认EN(主轴使能)信号无效,防止电机突...

工作相关 CNC

cnc 2023-06-23

三菱60S刀库报警 MAG. POT NOT STANDBY OK

单位的三菱60S是二手的设备,虽工作环境恶劣,劳动强度大,但是老当益壮,唯一容易出故障的是换刀系统,而故障原因也不在该设备自身,经常是由于外部气管的泄露断裂,导致机械结构未能正确到位,引起某个信号的缺失,今天遇到的就是这样一个故障。气...

工作相关 CNC

cnc 2023-06-14

数控程序中的不同基准面下的g81的数值设置

g81是数控程序中非常常用的一个打孔语句,它的语法一般如下,其中x,y是制孔的坐标,z轴指孔的深度坐标,r同样也是坐标,表示程序允许快速下降到一个安全位置的坐标。g0x0y0z0 (隐性提供起始坐标) g81 x0 y0 z-10 r...

工作相关 CNC