FOCAS 是什么,用在哪些设备上
FOCAS(FANUC Open CNC API Specification)是 FANUC 官方提供的数据访问接口,配套的开发库叫 Fwlib。 它面向的是 FANUC 0i、16i/18i/21i、30i/31i/32i 这些数控系统,以及使用 FANUC 控制器的加工中心、车床、 磨床和部分 FANUC 机器人(机器人侧更常用的是专门的接口,但 CNC 集成型机器人单元里也会走 FOCAS)。 能读的数据包括运行状态、主轴转速与负载、进给速度、各轴坐标、当前程序号与程序段号、加工件数、 报警号与报警文本、刀具号与刀具寿命、宏变量、伺服负载等。
在整线数采与 OEE 统计项目里,FANUC 机床通常是最容易出数的一类设备——前提是选装功能位买对了。
敏洽的 SCADA 数采软件内置 fanuc_focas 驱动,
基于 Fwlib 实现,不需要在现场额外安装 FANUC 的运行库。
实际会遇到的几个坑
1. 选装功能位没开,函数直接返回错误
这是最常见的一条。FOCAS 的函数不是买了机床就全部可用,而是按功能分组授权。
坐标、转速、报警号这类基础数据一般都能读;刀具管理、宏变量批量读取、加工程序列表、
伺服波形这些经常要额外的选装功能。表现出来就是连接成功、基础数据正常,
但某几个函数固定返回 EW_FUNC 或 EW_NOOPT。
这种情况软件侧无解,只能让机床方向 FANUC 服务商购买并开通功能位。
所以点表评审阶段就要逐项确认哪些数据项是必须的,不要等到现场联调才发现。
2. Fwlib 版本与系统型号不匹配
Fwlib 分 0i 系列版与 30i 系列版,还区分 32 位与 64 位。用错版本的典型症状是
cnc_allclibhndl3 直接失败,或者能连上但读出来的数值是垃圾值(比如坐标恒为 0,
或者主轴转速跳到几万转)。判断方法:先在机床的系统信息画面确认系统型号与软件系列号,
再选对应的库版本。混线现场同时有 0i 和 31i 的机床时,采集程序需要同时带两套库并按机床型号分派。
3. 以太网口被占用或连接数打满
很多机床只有一个以太网口,可能已经被终端客户的 MES 采集、刀具管理系统或者 DNC 传输程序占用。 FOCAS 的并发连接数是有限的(常见 1~3 路),挤满之后新连接会直接被拒绝, 而且可能把别人已有的连接踢掉——这在现场会变成责任纠纷。 稳妥做法是一台机床只留一路采集,数据进到本地采集服务后再分发给多个上层系统。 如果机床本身有第二个网口或者可以加装以太网模块,也可以做物理隔离。
4. 采得太快会拖慢机床界面
FOCAS 的请求由机床 CPU 处理,和机床自己的 HMI 抢资源。把坐标采集周期压到 100 毫秒以下, 操作工会明显感觉到机床画面变卡,严重时甚至影响手轮响应。 实测的合理区间是:快变量(坐标、主轴负载)200~500 毫秒,慢变量(状态、程序号、件数、报警)1~2 秒。 需要更高频率的振动或电流数据,应该另外加传感器采集,不要指望从 CNC 里抠。
5. 老机型只有 HSSB,没有网口
早期的 16i/18i 机床可能只提供 HSSB(高速串行总线)方式,需要在采集工控机上插专用板卡, 而且采集机必须放在机床附近(HSSB 光缆有长度限制)。这类改造的硬件成本和布线成本都不低, 需要在方案阶段就把工控机安装位置和柜内空间确认下来。实在没有条件的, 退一步走老旧设备联网里的间接取数方案。
接入方式与硬件条件
| 项目 | 要求与说明 |
|---|---|
| 机床侧 | 具备以太网通信功能并开通 FOCAS 选装功能位;需要的数据项对应的功能位需逐项确认 |
| 网络 | 机床网口接入采集网段;建议与办公网隔离,机床 IP 固定分配,不要走 DHCP |
| 采集端 | Windows 工控机或工业网关;fanuc_focas 驱动已内嵌 Fwlib,现场不需另装运行库 |
| 并发限制 | 单机床建议只保留一路采集,数据由采集服务统一分发给 MES、看板与 ERP |
| 采集周期 | 快变量 200~500ms,慢变量 1~2s;不建议低于 200ms |
| 老机型 | 仅 HSSB 的机床需插专用板卡且采集机需就近安装,需在方案阶段确认柜内空间 |
点表确认的顺序是:先列出需要的数据项 → 逐项对照 FOCAS 函数 → 让机床方确认对应功能位已开通 → 未开通的项要么补买功能位,要么从点表里去掉并在方案里写明。这一步做完再动手写代码, 能避免绝大多数现场返工。
相关交付情况
敏洽在 CNC 加工车间的数采项目中处理过 FANUC 与其他系统混线的情况:同一套采集服务里
FANUC 走 fanuc_focas,海德汉与兄弟机床走各自驱动,国产系统走 Modbus TCP,
数据统一入库后再算 OEE 与稼动率。这类项目的工作量大头不在协议本身,
而在数据口径统一——不同品牌机床对「运行中」的定义不一样,
需要在方案阶段把状态映射规则定下来,否则各线的稼动率没法横向比较。
具体的口径处理见 OEE 怎么算才不被终端客户挑战。
更多交付情况见 案例中心。
常见问题
有具体设备清单或工件样品,可以直接给判断
提供设备型号、PLC 品牌与需要采集的数据项,或提供被检工件照片与精度要求,敏洽可先给出可行性判断与硬件前置条件,再谈软件工作量与报价。