-
Notifications
You must be signed in to change notification settings - Fork 0
Protocol Support en
EnerOS Bot edited this page Jul 5, 2026
·
1 revision
中文 | English
Maintained version: v0.51.2 | Last updated: 2026-07-06
EnerOS natively supports 11 power / IoT / industrial protocols, covering transmission / distribution / consumption / edge IoT scenarios. This page is a protocol matrix quick reference; for adapter development see Development Workflow and the main repo docs/developer-guide.md §5.
| Protocol | crate | Introduced | Purpose | Link layer | Typical scenario |
|---|---|---|---|---|---|
| IEC 61850 | eneros-device | v0.25.0 | Substation automation / IED | TCP/IP | Within substation / bay level |
| IEC 60870-5-104 | eneros-device / eneros-scada | v0.26.0 | Telecontrol telemetry / signaling / control | TCP/IP | Master-slave station |
| IEC 60870-5-103 | eneros-protocol-iec103 | v0.35.0 | Protection equipment communication | Serial / TCP | Protection device - recorder |
| CDT cyclic telecontrol | eneros-protocol-cdt | v0.35.0 | Legacy telecontrol equipment | Serial | Legacy substations |
| Modbus | eneros-device | v0.25.0 | Industrial general protocol | Serial / TCP | Inverters / storage / peripherals |
| PMU C37.118 | eneros-protocol-pmu | v0.35.0 | Synchrophasor measurement | UDP / TCP | Wide-area monitoring WAMS |
| ICCP / TASE.2 | eneros-protocol-iccp | v0.35.0 | Inter-control-center data exchange | TCP/IP | Dispatch center interconnection |
| MQTT | eneros-protocol-mqtt | v0.45.0 | IoT message bus | TCP | Distributed energy / storage |
| CoAP | eneros-protocol-coap | v0.45.0 | Constrained device RESTful | UDP | Sensors / edge nodes |
| LwM2M | eneros-protocol-lwm2m | v0.45.0 | IoT device management | UDP | Smart meters / terminal management |
| DL/T 698.45 | eneros-protocol-dlt698 | v0.47.0 | Chinese power energy data acquisition | TCP | Smart meters / energy acquisition |
| Feature | Description |
|---|---|
| AF_PACKET | Linux raw socket, used for SV / GOOSE L2 direct transmission, bypassing IP stack to reduce latency |
| FT 1.2 | Serial frame format, used for IEC 103 / CDT |
| R-GOOSE | GOOSE via Routed VLAN across subnets, used between substations |
| mTLS | v0.39.0+ all protocol clients support mTLS mutual certificate authentication |
eneros-device provides protocol gateway capability, converting between different protocols:
[IEC 104 slave station] ─┐
[Modbus inverter] ─┼→ ProtocolGateway → [ICCP upstream to dispatch]
[DL/T 698 meter] ─┘ → [MQTT upstream to cloud platform]
tests/protocol_conformance/ provides 275 conformance test cases across 7 protocols:
| Protocol | Tests | Coverage |
|---|---|---|
| IEC 104 | 60 | Frame codec / sequence numbers / timestamps / general interrogation / commands / short floats |
| IEC 103 | 35 | Frame format / ASDU / fault records / disturbance data |
| Modbus | 40 | Function codes / exception codes / register mapping |
| PMU C37.118 | 30 | Config frames / data frames / command frames / phasor accuracy |
| DL/T 698 | 50 | Link layer / application layer / data identifiers / security authentication |
| MQTT | 30 | Connect / subscribe / publish / QoS / will |
| CoAP | 30 | Methods / options / blockwise / resource discovery |
fuzz/ directory provides 4 fuzz targets:
| Target | Protocol | Engine |
|---|---|---|
fuzz_iec104 |
IEC 104 | libFuzzer |
fuzz_iec103 |
IEC 103 | libFuzzer |
fuzz_dlt698 |
DL/T 698 | libFuzzer |
fuzz_pmu_c37118 |
PMU C37.118 | libFuzzer |
eneros.toml [quality].fuzz_targets configures enabled targets. Windows platform libFuzzer linking issues require Linux / WSL2 environment (see Testing Strategy).
- IEC 104 mock implementation is not production-grade, for demo only
- Fuzz 60s smoke and 24h long runs pending Linux/WSL2 environment validation
- IEC 61850 MMS service set only implements core subset
- DNP3 only supports serial variant; TCP variant pending v0.52.0
- Power System Primer — IEC protocol family crash course
- Testing Strategy — Fuzz / proptest / protocol conformance
- Main repo docs/developer-guide.md §5 — Adding new protocol adapter
- Main repo crates/eneros-device/ — device adapter source
EnerOS Wiki | v0.51.2