Technical Article
三菱 M80 的 #3006 写成0,为什么程序没有停?
三菱M80的#3006写0为什么不停?按U版加工中心手册区分停止编号、#3003位0与#11482的抑制组合,并说明无消息停止及#3000报警的不同。
在三菱M80加工中心程序里写了 #3006=0 (CHECK.SIZE),期待程序停下来等人测量,结果却继续执行。这个0不是“无限等待”,也不是“默认停止”:它不在该指令的有效停止编号范围内。先把编号含义查清,再排查是否有程序段停止抑制,不能只盯着括号里的提示文字。
本文依据三菱M800/M80/E80/C80《加工中心系统编程手册》U版,第2册IB-1501278-U第1160—1161页,针对M80加工中心系统的用户宏变量。没有把车床、M80V或其他品牌同名变量的规则混用。
把0改成有效编号,改的不是等待时间
#3006右侧的整数是停止编号,手册规定范围为1~9999。明确写0或大于9999的编号时,指令无效,程序不会因此停止。编号1与编号9999没有“一秒”和“9999秒”的关系。
下面是同一条提示的修改前后对照,不含轴运动:
#3006=0 (CHECK.SIZE);
改为一个约定好的有效编号:
#3006=1 (CHECK.SIZE);
这里选择1只是为了说明编号有效。对没有停止抑制影响的情况,该指令在前一程序段执行后停止,并显示消息及停止编号。更换数字没有定义测量时间,也不能证明主轴、冷却或夹紧动作已经结束;这些状态要由相应程序和机床逻辑明确处理。

图1为原创规则示意,窄屏可左右滑动查看。
写成1仍不停,核对这一组状态
有效编号只是第一层条件。U版手册还规定了 #3003 的bit0与机床参数 #11482(ValBlkStopSelect)的关系:当bit0为0时,两种参数值都执行 #3006 停止;当bit0为1时,#11482为0会抑制这次停止,消息也不保留,而#11482为1仍执行停止并显示消息。

图2为原创规则示意,窄屏可左右滑动查看。
因此,排查时应把实际执行的 #3006 段、前面的宏调用链、#3003的相关设置及机床参数现值放在一起核对。bit0只是 #3003 的一个位,不能把“bit0为1”直接等同于“整个 #3003 必须等于1”。图2列的是状态对应关系,不是让程序批量写入参数的操作步骤。
如果某段宏为了自己的执行流程改变过停止控制状态,应先查清其设计和恢复位置。不要为了让一条提示停住,就在后处理开头统一覆盖 #3003,或直接改机床参数 #11482;这样会把其他宏原本依赖的停止行为一并改变。
没有文字,和没有停止,是两件事
只写 #3006=1 而不带括号消息,手册说明仍会停止,但不会显示停止编号。反过来,仅凭屏幕上一闪而过的文字,也不能判定程序已等待操作员。
需要显示提示时,把消息括号紧跟停止编号,使用简短清楚的内容。示例CHECK.SIZE共10个半角字符,低于手册的31个半角字符限制。消息中的空格不显示,因此这里用点分隔两个词;不要靠多个空格排版。若改用中文提示,还需匹配机床显示语言对应的程序编码,不能只把文本编辑器中的显示效果当成机床结果。
别把 #3000=0 当作同一种“取消”
#3000用于宏报警。相邻章节明确说明,即使报警编号写0,编号本身不显示,系统仍进入报警状态,并显示指定的报警消息。因此不能从“#3006=0不停止”推导出“#3000=0不报警”。正常流程中的人工测量停顿,与发现非法输入后终止程序的报警,是两种不同目的,后处理或宏程序应分别设计。
这次审查的落点很具体:先确认实际输出是否用了有效停止编号,再确认停止是否被抑制,最后核对提示文字能否辨认。不能只把提示文字翻译漂亮,却留下一个不会停的编号。#3006也不能替代机床安全联锁。
如需继续梳理宏的调用位置,可看G65与M98调用区别;修改后处理时,可按先比较输出NC的修改方法核对改动是否落在预期程序段。
技术依据:三菱加工中心系统编程手册U版第23.12、23.13节;参数含义交叉核对三菱报警/参数手册T版第447页的#11482。图中的编号边界和四种组合依据手册整理,不是实机测试记录。