Connecting the plant
Every number KaizenFlow produces traces back to a raw tag on a machine. This module covers how to stream that data over OPC-UA, MQTT, and MTConnect, and how to prove the feed is trustworthy before anyone builds an OEE tile on top of it.
Three protocols, three jobs
OPC-UA is the workhorse for PLC and SCADA data: browse the server's address space, subscribe to nodes, and let the server push changes on a deadband rather than polling. MQTT (often Sparkplug B) is pub/sub over a broker — lightweight, good for sensors and edge gateways, but you own topic structure and birth/death certificates. MTConnect is the read-only, XML-over-HTTP standard native to CNC and machine tools, where you pull a stream of samples and events from the agent.
Pick by what the asset actually speaks, not by preference. A CNC cell gives you MTConnect for free; forcing an OPC-UA wrapper adds a failure point. KaizenFlow's connector library (43+) sits on top of these to normalize MES/SCADA/ERP into the same tag model.
- ›OPC-UA: subscriptions + deadband, browse the namespace, prefer over polling
- ›MQTT/Sparkplug B: pub/sub, watch birth/death certs and QoS
- ›MTConnect: pull samples/events from the agent, read-only by design
Validate before you trust
A connected feed is not a valid feed. Confirm units and scaling (a counter in dozens vs. each will silently 12x your throughput), timestamp source (device clock vs. ingest time — clock skew destroys downtime attribution), and update cadence against the tag's real change rate. Then watch for stale tags: a value that never changes during a running shift is usually a dead subscription, not a stable machine.
Cross-check one tag against ground truth — a shift's good-count tag against the operator's tally, a state tag against what the andon shows. If those agree, you have a feed worth modeling on.
A connection is not a validation: prove units, timestamps, and counts against ground truth before any tile depends on the tag.
You bring a packaging line online over OPC-UA. The good-count tile reads roughly 12x the line's rated capacity, which is physically impossible. The subscription is live and updating.
What do you do first?
Which protocol is read-only by design and native to CNC machine tools?