数控宏程序中的判断

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

标签: 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

thumbnail 2025-04-24

G73高速深孔啄钻指令详解

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

工作相关 CNC

thumbnail 2025-04-10

fanuc 438报警 x轴 inv abnormal current 一例

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

工作相关 CNC