Industrial Protocols
Overview
Communication protocols for industrial automation, SCADA, and process control systems. Designed for deterministic real-time operation in factory floors, power plants, and distributed control systems.
┌─────────────────────────────────────────────────────────────────────┐
│ SCADA / HMI / PLC │
├───────────────────┬───────────────────┬─────────────────────────────┤
│ Modbus │ EtherCAT │ PROFINET │
│ (RTU / TCP) │ (Ethernet L2) │ (Ethernet RT/IRT) │
├───────────────────┼───────────────────┼─────────────────────────────┤
│ RS-485 / TCP │ Raw Ethernet │ Raw Ethernet + UDP │
├───────────────────┴───────────────────┴─────────────────────────────┤
│ Physical Layer (Serial / Ethernet) │
└─────────────────────────────────────────────────────────────────────┘
Modules
| Module | Status | Transport | Cycle Time |
| Modbus | ✅ Implemented | RS-485 (RTU) / TCP | 10–100 ms |
| EtherCAT | 🔲 Planned | Ethernet (raw L2) | < 100 µs |
| PROFINET | 🔲 Planned | Ethernet (UDP + L2) | 250 µs–10 ms |
Comparison
| Feature | Modbus | EtherCAT | PROFINET |
| Topology | Master-slave | Ring/line | Star/ring |
| Speed | 19.2 kbps–115.2 kbps (RTU) / 100 Mbps (TCP) | 100 Mbps | 100 Mbps / 1 Gbps |
| Determinism | Low | Very high | High (IRT mode) |
| Max nodes | 247 (RTU) | 65535 | 512+ |
| Complexity | Low | High | Medium-High |
| Open standard | Yes (Modbus.org) | Yes (ETG) | Yes (PI) |
| Year introduced | 1979 | 2003 | 2004 |
Design Principles
- Fieldbus heritage Many industrial protocols evolved from serial buses; maintain that simplicity
- Deterministic timing Bounded worst-case response times for safety-critical applications
- Error resilience CRC validation, timeout handling, and error recovery in every transaction
- Register-oriented Industrial devices expose data as registers (16-bit words) and coils (bits)
- Minimal dependencies Pure C, no external libraries for the protocol core
Use Cases
Build
# Build implemented modules
make -C src/industrial/modbus
# Run Modbus demo
./build/modbus_demo