Skip to main content

DNP3

The dnp3 adapter implements DNP3 per IEEE 1815 in two modes. The standard DNP3-over-TCP port is 20000.

Gateway mode (default)

A transparent serial ↔ TCP bridge with full data-link frame validation: sync 0x05 0x64, CRC-16/DNP computed per 16-byte block.

Outstation mode

OmniBus itself acts as a DNP3 outstation (slave) answering from a configurable point database — binary inputs, binary output status, counters, analog inputs, analog output status.

Application-layer support:

  • FC=01 READ — class-0 reads (g60v1 q06) and specific-group reads with start..stop qualifiers.
  • FC=02 WRITE — for time and IIN clear.
  • FC=18 DELAY_MEASURE, COLD_RESTART / WARM_RESTART.
  • IIN managementDEVICE_RESTART is set on boot and cleared by the master via g80v1 WRITE.

In both modes the application-layer object decoder publishes structured points to MQTT/webhooks: binary inputs (g1v1/v2), binary output status (g10v2), counters (g20v1/v2/v5/v6), analog inputs (g30v1–v6, including 32-bit float and 64-bit double), and time (g50v1).

Outstation REST

ActionBodyEffect
set-point{type, index, value}Populate the database (also persisted to disk).
set-iin{set, clear}Override IIN flags (for testing).

Limitations

:::caution Operate and unsolicited events not implemented OPERATE (FC=04/05/06) returns NO_FUNC_CODE_SUPPORT — no controllable point types are wired yet. Unsolicited events are not implemented, so a master that depends on push-style reporting must poll. :::

Outputs

OutputBehavior
TCPGateway transport / outstation listener (port 20000).
MQTTPublishes decoded points.
RESTOutstation point/IIN management.
WebhooksFan out decoded points.