Fanuc机床 CNC_STATINFO 方法返回值说明

Fanuc机床 CNC_STATINFO 方法返回值说明

以下只选取了该返回值的部分进行说明,主要是针对0i F-Plus型号的机床进行适配举例

根据你提供的 Fanuc 官方文档(cnc_statinfo - ODBST 结构体说明),在 0i F-PLUS(属于 0i/30i/31i/32i/16i/18i/21i/Power Mate i/PMi-A 系列)机床中,odbst 结构体用于描述 CNC(数控系统)的当前状态。每个字段的含义和取值如下:


ODBST 结构体定义(0i/30i/31i/32i/16i/18i/21i/Power Mate i/PMi-A)

c 复制代码
typedef struct odbst {

  short hdck ;   *// 手轮再追踪状态*

  short tmmode ;  *// T/M 模式选择(复合加工功能专用)*

  short aut ;    *// 自动/手动模式选择*

  short run ;    *// 自动运行状态*

  short motion ;  *// 轴移动/暂停状态*

  short mstb ;   *// M/S/T/B 功能状态*

  short emergency ; *// 急停状态*

  short alarm ;   *// 报警状态*

  short edit ;   *// 程序编辑状态*

} ODBST ;

字段详细说明与取值意义

1. hdck(手轮再追踪状态,仅部分型号支持)
  • 0:无效

  • 1:M.H.RTR.(手轮再追踪中)

  • 2:NO RVRS.(禁止反向移动)

  • 3:NO CHAG.(禁止方向变更)

注意:仅 30i/31i/32i、0i-D/F 支持。大多数情况下用不到。


2. tmmode(T/M 模式选择,仅复合加工功能)
  • 0:T 模式

  • 1:M 模式

注意:仅复合加工机床有用,普通车/铣床一般恒为 0。


3. aut(自动/手动模式选择)
  • 0:MDI(手动数据输入)

  • 1:MEMory(内存自动运行)

  • 2:(未定义/保留)

  • 3:EDIT(编辑模式)

  • 4:HaNDle(手轮模式)

  • 5:JOG(点动模式)

  • 6:Teach in JOG(点动示教)

  • 7:Teach in HaNDle(手轮示教)

  • 8:INC·feed(增量进给)

  • 9:REFerence(回零)

  • 10:ReMoTe(远程)

常用判断:

  • 0/1/3:自动相关

  • 4/5/6/7/8/9/10:手动相关


4. run(自动运行状态)
  • 0:(复位/未运行)

  • 1:STOP(停止)

  • 2:HOLD(暂停)

  • 3:STaRT(运行中)

  • 4:MSTR(刀具回退/恢复、JOG MDI 运行中)

常用判断:

  • 3(STaRT):机床正在自动运行

  • 1/2:机床未运行或暂停


5. motion(轴移动/暂停状态)
  • 0:(无动作)

  • 1:MoTioN(轴正在移动)

  • 2:DWeLl(暂停/等待)


6. mstb(M/S/T/B 功能状态)
  • 0:(无特殊状态/其他)

  • 1:FIN(M/S/T/B 功能完成)


7. emergency(急停状态)
  • 0:未急停

  • 1:急停

  • 2:复位

  • 3:WAIT(仅 FS35i)

常用判断:

  • 1:急停,需人工干预

8. alarm(报警状态)
  • 0:无报警

  • 1:ALarM(有报警)

  • 2:BATtery low(电池低电)

  • 3:FAN(风扇报警,NC 或伺服放大器)

  • 4:PS Warning(电源警告)

  • 5:FSsB warning(伺服系统警告)

  • 6:INSulate warning(绝缘警告)

  • 7:ENCoder warning(编码器警告)

  • 8:PMC alarm(PMC 报警)

常用判断:

  • 1:有报警,需排查

  • 2~8:具体报警类型


9. edit(程序编辑状态/其他状态,部分型号有扩展)
  • 0:(未编辑)

  • 1:EDIT(编辑中)

  • 2:SeaRCH(搜索中)

  • 3:OUTPUT(输出中)

  • 4:INPUT(输入中)

  • 5:COMPARE(比较中)

  • 6:Label SKip(跳过标签状态)

  • 7:ReSTaRt(程序重启中)

  • 8~...:其他特殊状态(如 AI 轮廓控制、刀具回退等,详见文档)


实际应用与注意事项

  • 判断机床是否在自动运行:通常需同时判断 aut(自动/手动模式)和 run(运行状态),如 aut=1(MEMory)且 run=3(STaRT)表示自动运行中。

  • 报警与急停:alarm 和 emergency 任一非 0,说明机床有异常,需暂停自动流程。

  • edit 字段:在自动换刀、程序切换等流程中,edit=1(EDIT)时不能下发自动运行指令。

  • motion/mstb:可用于判断轴是否在移动、M代码是否完成,适合流程同步等待。


参考文档


如需结合实际代码判断机床状态,可根据上述字段和取值进行逻辑判断。例如:

js 复制代码
if (odbst.aut === 1 && odbst.run === 3) {

 *// 机床处于自动运行状态*

}
js 复制代码
if (odbst.alarm !== 0 || odbst.emergency !== 0) {

 *// 机床有报警或急停*

}

如需更详细的报警类型、edit 状态扩展等,可查阅 Fanuc Focas 官方文档或机床参数手册。

相关推荐
雪兽软件1 小时前
构建强大的物联网架构所需了解的一切
物联网·架构
王小王-1238 小时前
基于Python的物联网岗位爬取与可视化系统的设计与实现【海量数据、全网岗位可换】
python·物联网·数据分析·计算机岗位分析·大数据岗位分析·物联网专业岗位数据分析
梦想CAD控件13 小时前
在线CAD实现形位公差标注(在线编辑DWG)
前端·javascript·node.js
HHW13 小时前
大文件上传难题?前端优雅解决方案全解析!
前端·node.js
LuDvei15 小时前
ESP8266模块间通信
物联网·tcp/ip
行之无边15 小时前
零基础入门物联网-远程门禁开关:代码调试
物联网
创思通信1 天前
4G模块 A7670发送英文短信到手机
物联网·网络协议·信息与通信
五点六六六1 天前
cli中的@/components/utils是怎么被替换的成对应的alias的?
前端·前端框架·node.js
花海如潮淹1 天前
物联网设备管理工具实战:用AR运维镜击穿6.8天修复魔咒
运维·物联网·ar