数控宏程序中的判断

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

数控宏程序中的判断

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

数控宏程序中的判断

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的程序段开始执行,中间的打孔语句就被跳过了。下面是一个稍微复杂点的例子:

数控宏程序中的判断

编制程序如下:

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。

华中数控的IF语句

补充一下华中的IF语句的写法:

IF [#1 LE 10]
    执行语句
ENDIF

标签: CNC

移动端可扫我直达哦~

推荐阅读

thumbnail 2026-07-17

华中刀库无计数信号报警时的刀库复位操作

似乎是第二次遇到这个问题了,但第一次遇到的印象已经模糊,所以重新记录一下,换刀臂式的刀库对于刀具的位置要求比较严格,当不慎让刀库停在下图右侧这样的位置时,就会出发无计数信号报警。报警号大概是G3018,不确定记忆是否准确。解决的方法也...

工作相关 CNC

thumbnail 2026-07-16

三菱M60S重置刀库编号

三菱60S系统突然换不了刀了,而且这个故障挺奇怪,一会是卡在准备松刀下拉之前,一会是卡在松开主轴刀具,刀臂下拉之后。主要报警如下:M06 TIME OVER SPINDLE NOT ORIENTATIONM06超时这是结果而不是原因,...

工作相关 CNC

thumbnail 2026-07-12

加工中心没有开吹气为什么一直有气流声

单位新买了一台加工中心,调试的时候明明没有打开冷却水以及吹气功能,但能听到明显的气流声,同时旁边供气的空压机也会时不时的启动一下。询问了一下设备厂商,说这是主轴气幕,我说怎么拿手在外部摸了一遍,也没感觉哪里漏气呢。关于主轴气幕主轴气幕...

工作相关 CNC

thumbnail 2026-05-08

机床Z方向主轴转动时异响一例

一台老设备,稳定工作了几年了,期间只换过一次电机伺服器。早上回零的时候发现,Z轴上下时有异响,运行时发出有规律的“嘎吱”摩擦声。看了下主轴传动部位外观,发现因为油路不通,传动部位的链条与导轨基本都是干的,尝试润滑加油,但异响的状况并没...

工作相关 CNC

thumbnail 2026-04-14

G0正常G1不动,FANUC机床的奇怪故障

遇到一个奇怪的问题,设备回零正常,空走xyz轴也顺畅,但自动运行程序的时候。到正常切割程序段落G1 X200这样的程序时就不动了。按面板RESET键还容易报出一个9073错误。9073 (SPN1 S-SPINDLE ERROR AL...

工作相关 CNC

thumbnail 2026-03-05

fanuc 0i 手轮无响应故障一例

开年上班没几天,车间同事反馈某台fanuc 0i的手轮无响应。现场看了一下,乘100速率下没有反应,乘10速率下没有反应,但原速的时候还是正常在移动的,只是1倍速率的运动肉眼机会识别不出来,只能找一个参照物多转几圈就可以看出来明显的位...

工作相关 CNC

thumbnail 2026-01-27

华中数控设备系统宏变量与运算指令

接触华中的设备比较早,大概是在2010年左右,当时使用的华中世纪星系统。世纪星的说明书是很薄的一本,语焉不详,这几年无论是官网,还是官网提供的说明书,都完善了很多,华中的进步也是国内数控设备与系统发展的一个缩影。在华中系统的程序中,某...

工作相关 CNC

thumbnail 2025-11-13

关于华中818系统系统注册到期

买第一台华中818设备的时候遇到过类似的问题,因为与对方公司谈好试用后缴纳余款,所以在使用了一个月之后,购买的设备提示注册有效期满,需要续期。后面重新购买的时候觉得质量较好,所以都是全款结算,这台设备运到的时候还特地和采购确认了一下,...

工作相关 CNC

thumbnail 2025-09-19

华中8型机床Z轴零点位置丢失后重设的注意事项

华中系统经常用外部电池保存数据信息,这个电池容易耗尽,更换的时候容易造成零点的丢失,X\Y两轴的零点稍微有点误差不至于有大的问题,但Z轴关系到换刀的参考位置,当零点被重新设置后,这个参考位置也需要做出相应的修改。在系统参数设置中,这个...

工作相关 CNC

thumbnail 2025-09-19

华中世纪星系统如何批量导出程序

世纪星是华中老一代的系统,菜单里并没有批量导出程序的功能,甚至没有明确的导出程序到U盘的指令。但导出程序到U盘是可以实现的,方法就是在保存程序的时候,在程序之前加上盘符,比如程序名为 O001,我们保存文件的时候修改如下:D:O001...

工作相关 CNC

thumbnail 2025-08-05

步进电机实物简单拆解图

公司的打标机用了七八年了,前段时间重复定位出现了累积误差,咨询售后并自检,发现问题大致出在两个方面:电机机械磨损导致定位误差;电机驱动故障。更换配件后故障得到解决,更换下来的电机则一直放在了手边。本来就很好奇步进电机的内部结构,趁白天...

工作学习 CNC

thumbnail 2025-05-14

如何为数控系统外接一个启动按钮

这里以鑫科瑞数控NEW990TDa车床系统为例,记录一下外接输入信息,比如启动按钮的过程,首先当然是找到对应系统的用户手册,比如前文所提及的这款:鑫科瑞数控NEW990TDa车床系统用户手册在系统接口连接图里找到了这个cn3接口,该接...

工作相关 CNC