Fanuc FOCAS — CNC
FOCAS = Fanuc Open CNC API Specification。Fanuc CNC (Computer Numerical Control) コントローラからスピンドル負荷 / 軸位置 / 加工プログラム / アラーム / OEE 指標を読み取るための事実上の標準 API です。Mazak、DMG MORI、Doosan といった工作機械 OEM も、コントローラに Fanuc を採用していれば同じインターフェースが公開されます。
このゲートウェイの FOCAS ドライバは stub です。FOCAS の wire プロトコルは非公開であり、Fanuc はライセンス契約者にのみ FwLib (Focas Library) C ライブラリを配布しています。単一 jar 配布を目指す PlantPulse Edge に 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 polling、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/Ethernet 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 コードが 2 桁しか出ない | MTConnect の condition カテゴリ分離 | XML の <Condition> 領域を別途パース |
| KEPServer ライセンス期限切れ | KEPServerEX の 7-day demo | ライセンス更新または永久ライセンス購入 |
次のステップ
- MTConnect Institute の無償 spec ドキュメント (mtconnect.org)
- Fanuc 本社 / 韓国 Fanuc への FwLib ライセンス問い合わせ (自社実装時)
- HTTP プッシュ登録 / OPC-UA 登録 ページを参照
- 技術背景: FOCAS ドライバ (advanced)