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

数控宏程序中的判断

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

G73高速深孔啄钻指令详解

G73 X_ Y_ Z_ R_ Q_ F_ ;X, Y:孔的位置坐标。Z:钻孔的最终深度(从工件表面计算)。R:安全平面(返回点,通常高于工件表面)。Q:每次啄钻的深度(增量值,正值)。F:进给速度(mm/min或inch/min)。...

工作相关 CNC

cnc 2025-04-10

fanuc 438报警 x轴 inv abnormal current 一例

手头也没书面资料,百度了一下FANUC伺服SV438报警属于逆变器电流异常报警。可以进行的处理有:1、检查动力线是否有被损坏、对地短路,要更换动力线。2、测量点击三相对地是否绝缘,如果对地不绝缘,则要更换电机。3、可以选择更换伺服驱动...

工作相关 CNC

cnc 2025-04-06

三菱60s加工中心提示 ATC NOT IN ZERO POSITION

很多年前遇到的一个问题,百度翻看了无数页面,最后在一位热心吧友的回复里找到了正确的解决办法:首先将刀库手动摇回初始位置,此时复位后如果仍旧有报警,那么就需要修改系统参数了。先确认L44参数是否为1,如果为1,则修改L100参数: ...

工作相关 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