数控宏程序中的循环

奇妙的循环

循环可以说是宏编程中最重要的概念,利用循环配合变量,可以用短短几行程序,来代替之前几十乃至数百行的程序。这还没完,因为程序的高度抽象,我们往往只需要修改少量的程序,就能将其用于其他结构类似但尺寸不同的产品。套用一句电脑编程的术语,这可以理解成为——具备一定的可重用性。

循环的语法

各厂宏程序的原理和逻辑基本相同,但语法以及性能上会有一定的差异,比如我们接下来要说的循环,在法拉克系统中,循环是这样的:

WHILE[#1LE20] DO 1
.
.
END 1

而在国产华中系统中,循环是这样的(华中的更简洁一些):

WHILE[#1LE20]
.
.
ENDW

相差虽然只是只言片语,造成的结果可能就是程序无法运行,所以实际生产中,遇到问题还是需要勤于查询编程手册。

循环的使用

数控宏程序中的循环

仍旧从实例来切入,我们这次需要打3个孔,孔距为40mm,深度20mm,孔直径请自便。以下是法拉克上的程序:

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

如果使用的是华中系统,那么循环则应该是这样的:

G54
M3
#1=0
WHILE[#1LE80]
G81X#1Y0Z-10R0
#1=#1+40
ENDW
G0Z50
M5
M30

很明显,两台设备的程序差异不大,接下来以法拉克为例,解释下程序原理。之所以以法拉克为例,是因为法拉克的循环实现相对更为复杂。在实现循环嵌套的时候,需要额外的标注层数,也就是上图中方框中的DO 1,以及END后面的1,这是后话,暂且不表。WHILE后面的中括号不再是优先运算了,需要注意,这里被括起来的是一个判断的条件,“LE”是小于等于的意思,“#1”不用解释了,这是一个几面之缘的变量,如果“#1”的位置换成一个固定的数字比如说20,那么20小于等于这个80这个式子是正确的,括号中的条件成立,那么包含在循环中的语句会被依次执行一次,然后重新回到WHILE,重新再判断一次,括号中的条件是否成立,因为我们把变量换成20了嘛,所以这条件也不可能变成不成立,所以这个程序就走不完了,你可以过几年再来看看,没准机器跑坏了就该停下来了。那如果把#1换成90,让这个判断条件不成立呢,这个时候的运行顺序是这样的,程序直接从G0Z50开始,跳过整段循环程序,然后就结束了。

数控宏程序中的循环

条件成立的时候根本停不下来,条件不成立干脆跳过,我要你这循环有何用啊。不要着急,关键在于,#1它是一个变量,它会变,所以程序中我们插入了一条#1=#1+40,前面说过,这个不是等号,这个式子也不是等式,这是一条赋值语句,意思是把#1的当前值增加40,这么说吧,你包里有100,又给你40,要求你还放包里。#1的初始值是0,这条语句每运行一次,#1包里的钱会多40,依次是,0,40,80,120。所以WHILE循环每次拿到的判断条件也是不同的。

数控宏程序中的循环

所以WHILE部分,注意只是WHILE部分,#1=0没机会重走啊,重走了那这戏法就没法变了。又因为#1是个多面手,我顺便让它负责了一下坐标定位工作,所以3遍循环,每遍的孔位也是不一样的。事实上,条件里的80就是根据孔距来规划的,之所以说是规划而不是计算,因为你设置成81~119程序也这么跑。81~119都小于120,第三遍的时候#1=80都会给过,第四遍#1成了120,都会被刷下来。所以考89的同学,也别嘲笑人家81的,都没过90好吗。

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