Every machine-connectivity project I've seen starts by stalling on the same question: which protocol? MTConnect, OPC-UA, or FOCAS. The reason it stalls is that the internet frames them as competitors, and they're really not — they're different tools for different jobs. Here's the honest comparison, from someone who has to make the data actually show up.
FOCAS: deep, FANUC-only, polling
FOCAS is FANUC's own API. If your shop is FANUC-heavy and you want everything — macro variables, tool tables, servo loads, diagnostics — nothing else gets you as deep. The cost: it's FANUC-only, you poll it (call, wait, call again), and functions are gated behind machine options. If you're going this route, I wrote a full FOCAS + Python walkthrough.
MTConnect: open, read-only, HTTP pull
MTConnect is an open standard built for manufacturing. An adapter on (or near) the machine speaks the machine's language and feeds a plain-text stream to an agent, which serves clean XML over HTTP. You just make web requests: /probe for what exists, /current for a snapshot, /sample for a stream. It's cross-vendor and dead simple to consume — but it's read-only by design. You monitor with it; you don't command with it.
OPC-UA: heavy, secure, two-way, subscriptions
OPC-UA is the industrial-IT heavyweight. Instead of polling, you subscribe to nodes in an address space and get pushed updates on change. It has real security (certificates, encryption, auth), it's genuinely cross-vendor, and via companion specs like OPC UA for Machinery (umati) it's becoming the standard newer machine tools ship with. It can also write, not just read. The cost is complexity: certificates, address spaces, and more moving parts than a shop that just wants a dashboard may want.
The lines are blurring
The OPC Foundation and the MTConnect Institute now run a joint working group to harmonize the two standards. Practically: pick what fits today, but don't bet your architecture on one "winning" and the other dying. They're converging.
How to actually choose
- 1All-FANUC shop, and you need deep data (macros, tool life)? → FOCAS.
- 2Mixed-brand shop, you just want to monitor (OEE, uptime, alarms)? → MTConnect. Lowest friction to a working dashboard.
- 3Need security, writes, or you're integrating with enterprise IT / newer machinery? → OPC-UA.
- 4Legacy machine that speaks none of them? → An MTConnect adapter (or a small FOCAS/serial bridge) retrofits the data in.
In practice: hybrid
Real shops rarely pick one. A common pattern is FOCAS for the deep FANUC data, MTConnect for uniform cross-brand monitoring, and everything normalized into one database behind the scenes. The protocol is an implementation detail; the unified data model is the real deliverable.
Don't choose a protocol. Choose an outcome — a dashboard, an OEE number, an alarm log — and let the outcome pick the protocol.
Once the data lands, the fun starts: dashboards, OEE, tool-wear trending, even an AI agent over the top of it. If you want help picking a path for your specific machine mix, get in touch.


