Why Industrial Routes?
Bridge the gap between your PLCs and MQTT without custom middleware. Read sensor data, write setpoints, and integrate industrial equipment into your IoT pipeline—using a single, consistent configuration pattern across all supported protocols.Industrial Protocol Integration
Industrial routes enable direct communication between your Coreflux MQTT broker and industrial automation equipment. Read data from PLCs, write setpoints, and bridge the gap between IT and OT systems - all through standardized LoT (Language of Things) syntax.Supported Protocols
Modbus TCP
Industry-standard protocol for PLCs and industrial devices over Ethernet.
Modbus Serial
RS-232/RS-485 serial communication with Modbus RTU devices.
Siemens S7
Native S7 protocol for Siemens S7-200/300/400/1200/1500 PLCs.
OPC UA
Unified Architecture for cross-platform industrial communication.
ADS (Beckhoff)
TwinCAT ADS protocol for Beckhoff PLCs with AutoDiscovery support.
Allen-Bradley
ControlLogix, CompactLogix, and other Rockwell Automation PLCs.
EtherNet/IP
CIP-based communication for Allen-Bradley and compatible devices.
FINS (Omron)
Omron FINS protocol for CJ/CS/CP series PLCs.
Protocol Comparison
| Protocol | Transport | Use Case | Vendor |
|---|---|---|---|
| Modbus TCP | TCP/IP | Universal PLC communication | Multi-vendor |
| Modbus Serial | RS-232/485 | Legacy devices, long distances | Multi-vendor |
| Siemens S7 | TCP/IP | Siemens automation systems | Siemens |
| OPC UA | TCP/IP | Cross-platform, secure IIoT | Multi-vendor |
| ADS | TCP/IP | Beckhoff TwinCAT systems | Beckhoff |
| Allen-Bradley | TCP/IP | Rockwell Automation | Rockwell |
| EtherNet/IP | TCP/IP | CIP devices, explicit messaging | Multi-vendor |
| FINS | TCP/UDP | Omron PLCs | Omron |
Common Architecture
All industrial routes share a common architecture with three key components:1. Connection Configuration
Each protocol has specific connection parameters:2. MAPPING with Polling
MAPPING Definition A MAPPING is a scheduled, continuous polling operation that automatically reads data from industrial devices (PLCs, Modbus devices, etc.) at regular intervals and publishes the values to MQTT topics.- Polls: industrial device at regular intervals (
EVERY) - Reads: multiple data points (TAGs) in a single operation
- Publishes: each TAG value to its own MQTT topic
Common MAPPING-level fields
These fields are available at the MAPPING level across all industrial protocols:SOURCE_TOPIC
SOURCE_TOPIC
Base MQTT topic for publishing tag data. Each TAG publishes to
{SOURCE_TOPIC}/{TAG_NAME}.EVERY
EVERY
Polling interval (e.g.
500 MILLISECONDS, 1 SECOND).3. TAG Definitions
TAG Definition A TAG is an individual data point within a MAPPING that represents a specific variable or register in an industrial device.- Identifies: a specific memory address in the device
- Transforms: raw value using scaling, offset, and engineering units
- Publishes: to a dedicated MQTT topic
- Monitors: changes using deadband filtering
TAG capabilities
TAG capabilities
- Data transformation: Scaling, offset, min/max validation
- Change detection: Deadband to filter noise
- Formatting: Publish as JSON or raw value
Common TAG Parameters
These parameters are available across all industrial protocols:Addressing
Addressing
Data Types
Data Types
Data type for the value. Common types:
BOOL, INT16, UINT16, INT32, UINT32, FLOAT, DOUBLE, STRING.Topics
Topics
Value Transformation
Value Transformation
Filtering
Filtering
Publishing Options
Publishing Options
Write Control
Write Control
Allow writing to this TAG via DESTINATION_TOPIC. Default: false.
4. SOURCE_TOPIC Configuration
There are two ways to configure where TAG values are published. Use group-level when you want consistent topic structure across all TAGs in a MAPPING; use individual TAG when you need custom paths per sensor (e.g., different namespaces for temperature vs pressure).- Group-level (Recommended)
- Individual TAG
Define Result: Temperature publishes to
SOURCE_TOPIC at the MAPPING level. Each TAG automatically publishes to {SOURCE_TOPIC}/{TAG_NAME}.factory/line1/Temperature; Pressure publishes to factory/line1/Pressure.5. EVENT (On-Demand Operations)
Understanding on-demand operations in routes. EVENT Definition An EVENT is an on-demand operation that waits for messages on an MQTT topic, executes a specific action when triggered, and publishes the results back to another MQTT topic. Use EVENT when you need on-demand reads or writes (triggered by a message); use MAPPING for continuous polling. Syntax varies by protocol—see the protocol-specific docs (e.g., Modbus TCP) for details. In LoT, you define an EVENT like this:Common EVENT Parameters
These parameters are available across all industrial protocols for EVENT definitions:SOURCE_TOPIC
SOURCE_TOPIC
MQTT topic where the EVENT listens for trigger messages. Publish a message here to execute the operation.
DESTINATION_TOPIC
DESTINATION_TOPIC
MQTT topic where the EVENT publishes the result of the operation.
QUERY
QUERY
Protocol-specific specification of the operation (read or write) and its parameters. Uses LoT object syntax. See each protocol’s documentation for supported operations.
When to Use MAPPING vs EVENT
Use the right acquisition pattern for the job:| MAPPING (Cyclic) | EVENT (On-Demand) | |
|---|---|---|
| Trigger | Automatic, on a timer (WITH EVERY) | Manual, via an MQTT message to SOURCE_TOPIC |
| Direction | Reads from device, publishes to MQTT | Reads or writes on command, publishes result |
| Best for | Dashboards, alarms, continuous telemetry | Operator commands, diagnostics, recipe downloads |
| Data volume | Constant stream at defined interval | Only when requested |
Most real-world routes combine both patterns: MAPPING for continuous monitoring and EVENT for on-demand operations within the same
DEFINE ROUTE.Basic Example Pattern
Cyclic Only
This minimal pattern works across all industrial protocols for continuous data acquisition:Combined (Cyclic + On-Demand)
A production route typically combines MAPPING for continuous monitoring with EVENT for on-demand operations. Publish a message to the EVENT’s SOURCE_TOPIC to trigger a one-shot read or write, and receive the result on the DESTINATION_TOPIC:Advanced Example Pattern
When you need engineering-unit conversion, noise filtering, range validation, or bidirectional control, add transformation and publishing parameters to your TAGs. This pattern builds on the basic structure above to unlock the full power of industrial routes.Scaled and Filtered Monitoring
Apply scaling and offset to convert raw PLC register values into meaningful engineering units, and use deadband to suppress noise:Writable Setpoints with Validation
Enable bidirectional control by marking TAGs as writable. Published values on the DESTINATION_TOPIC are written to the PLC, with MIN/MAX enforcing safe limits:Best Practices
Optimize Polling Intervals
Optimize Polling Intervals
Group TAGs by update frequency:
- Fast (50-100ms): Safety signals, real-time control
- Medium (500ms-1s): Process values, sensor readings
- Slow (5-30s): Configuration, counters, status
Use Deadband for Analog Values
Use Deadband for Analog Values
Reduce network traffic for slowly changing values:
Apply Scaling at the Edge
Apply Scaling at the Edge
Transform raw PLC values to engineering units in the route:
Use JSON Mode for Rich Data
Use JSON Mode for Rich Data
Include metadata in published messages:Output:
Secure Write Operations
Secure Write Operations
Only enable WRITABLE for TAGs that need it, and use specific topics:
Next Steps
Choose the protocol that matches your equipment:Modbus TCP
Start with the most common industrial protocol.
Siemens S7
Connect to Siemens PLCs directly.

