Fanuc FOCAS — CNC
FOCAS = Fanuc Open CNC API Specification。这是从 Fanuc CNC(计算机数控)控制器读取主轴负载 / 轴位置 / 加工程序 / 报警 / OEE 指标的事实标准 API。Mazak、DMG MORI、Doosan 等机床 OEM 如果采用 Fanuc 作为控制器,同样会暴露该接口。
本网关的 FOCAS 驱动为 stub。FOCAS 的 wire 协议未公开,Fanuc 仅向获得授权的用户分发 FwLib(Focas Library)C 语言库。PlantPulse Edge 追求单一 jar 分发,因此没有嵌入 native FwLib JNI 的计划。
推荐集成路径:请使用 MTConnect Adapter(HTTP/XML) 或 Fanuc 新型控制器的 OPC UA 选件。
推荐集成路径
选项 1. MTConnect Adapter / Agent(最常见方案 — 推荐)
大多数现代机床 / Fanuc CNC 都将 MTConnect(ANSI/MTC1.4)作为首选集成路径。Fanuc 免费提供自有的 FOCAS-MTConnect Adapter,各 OEM(Okuma、DMG MORI、Mazak SmartBox)也遵循同一标准。
| 使用的 PlantPulse 驱动 | 页面 |
|---|---|
HTTP(REST 轮询,XML 解析在计算公式或接收管道中完成) | HTTP 推送 |
选项 2. Fanuc OPC UA 选件或 KEPServerEX Fanuc Suite
Fanuc 新型控制器可通过附加选件暴露 OPC UA Server。旧型控制器则可通过 Kepware KEPServerEX Fanuc Suite 或 Matrikon FOCAS OPC Server 等商用网关进行转换。
| 使用的 PlantPulse 驱动 | 页面 |
|---|---|
OPCUA | OPC-UA |
选项 3. 边车 + gRPC(自有授权时)
在持有 FwLib 授权的场合,可将自研 JNI 模块作为独立的边车进程(例如 focas-grpc-server)运行,由 PlantPulse 轮询其输出。
该选择哪个选项
| 场景 | 推荐 |
|---|---|
| OEM(Mazak SmartBox / DMG MORI Celos / Okuma)已在运行 MTConnect Agent | MTConnect → HTTP |
| Fanuc 30i 新型,可加装 OPC UA 选件 | Fanuc OPC UA → OPCUA |
| Fanuc 0i 旧型,SI 持有授权 | KEPServerEX Fanuc Suite → OPCUA |
| 自有 FwLib 授权 / 需要定制数据 | focas-grpc 边车 → HTTP |
| 仅需简单的开机率(0/1)指标 | 控制器数字输出 → Modbus/以太网 IO 模块 |
使用 MTConnect 时常见的数据项
MTConnect agent 的 /current / /sample 响应 XML 中常注册的 DataItem。
| DataItem name | 含义 | PlantPulse 格式 |
|---|---|---|
Xact、Yact、Zact | 各轴实际位置(mm) | Float |
Sspeed | 主轴转速(rpm) | Float |
Sload | 主轴负载(%) | Float |
Sovr、Fovr | 主轴 / 进给 override(%) | Integer |
execution | 运行状态(ACTIVE / INTERRUPTED / READY) | String |
program | 当前程序名(如 O1234) | String |
mode | MANUAL / AUTOMATIC / MDI | String |
Tool_number | 当前刀具号 | Integer |
block | 当前程序段(NC 行) | String |
alarm | 报警代码(如 PS 0506) | String |
stub 注册(仅供参考)
| 输入项 | 填写内容 |
|---|---|
| IP 地址 | (不使用,填占位值) |
| 端口 | 8193(FOCAS 标准 — 占位值) |
| 自动采集 | 建议禁用 |
常见问题
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 注册 FOCAS 后取不到值 | stub 驱动 | 改用 MTConnect(HTTP)或 KEPServerEX(OPCUA)路径重新注册 |
| MTConnect XML 解析困难 | XML namespace + 多个 DataItem | 使用 HTTP 推送 的 XPath / 计算公式后处理 |
| 主轴负载固定为 0 | Adapter 缺少 Sload 映射 | 检查 Fanuc 的 PMC 设置 — 在 Adapter config 中添加 axis_event |
| 程序名乱码 | Fanuc 控制器编码(Shift_JIS 等) | 检查 Adapter 侧的 charset 选项 |
| Alarm 代码只显示两位 | MTConnect 的 condition 分类被拆分 | 单独解析 XML 的 <Condition> 区域 |
| KEPServer 授权过期 | KEPServerEX 的 7-day demo | 续订授权或购买永久授权 |
后续步骤
- MTConnect Institute 的免费规范文档(mtconnect.org)
- 如需自行实现,请向 Fanuc 总部 / 韩国 Fanuc 咨询 FwLib 授权
- 参考 HTTP 推送注册 / OPC-UA 注册 页面
- 技术背景:FOCAS 驱动(advanced)