This guide explains how to move plant-floor data from field devices into MQTT consumers and SCADA systems without creating an unmanageable topic tree. The main objective is predictable naming, payload quality and alarm-friendly behavior.
Reference architecture
- Collect values from the device or protocol gateway on the local industrial network.
- Normalize tags into a consistent MQTT namespace that reflects site, line, asset and signal.
- Expose the same normalized model to SCADA through the preferred northbound connector.
Topic structure recommendation
Use a fixed hierarchy such as site/line/asset/signal. Avoid dynamic topic fragments that depend on human-entered labels because they break subscriptions and alarm mappings over time.
- Define the asset namespace before any payload mapping starts.
- Separate telemetry, alarms and command channels so subscribers can apply different retention and QoS rules.
- Publish quality metadata including timestamp, source and bad-quality markers when values are uncertain.
- Map SCADA tags from the normalized namespace instead of directly from raw device addresses.
Payload hygiene
- Keep units, scaling and engineering ranges explicit.
- Use consistent booleans and enumerations across all assets of the same type.
- Document whether timestamps represent sample time or publish time.
Validation checklist
Before sign-off, prove that a new value appears in MQTT, reaches the SCADA view, updates at the expected rate and preserves the same engineering meaning in both places.