Guide

IEC 60870-5-104 (server)

Exposes SCADA measurements to IEC 104 clients — the server-side counterpart to the client agent.

This is the protocol reference for the IEC 104 server agent — it writes SCADA measurements out to connected IEC 104 clients; incoming commands from those clients are rejected. For reading a field device in instead, see the client agent. For everything else in the config format, see Agent configuration.

01
Driver address

Same three-part key as the client agent — {common_address}:{type_id}:{ioa} — but registered as a point clients can read, timestamped on the wire. Points are registered and unregistered to match the config on every reload; each address maps to one type_id only — a collision is logged and the last one wins.

  • SP, DP, ST, BO, IT — discrete, with a timestamped IEC type on the wire.
  • MEf — analogical. MEn and MEs carry either kind, depending on the measurement they're serving.
measurement
{
  "name": "pos",
  "equipment": "bay1.brk52",
  "type": "discrete",
  "driver": {
    "type": "discrete",
    "common_address": 100,
    "type_id": "DP",
    "ioa": 2001
  }
}
02
Docker image

Image: khorde/iec104-server-agent:latest, publishing port 2404 — same compose shape as every agent (see Agent configuration). Save the agent's service account key next to it, renamed to service-user.json. Its own config.yaml:

config.yaml
iec104:
  # 0.0.0.0, not localhost — clients connect from outside the container.
  address: 0.0.0.0
  port: 2404
  # tls:
  #   server_certificate: "<path to server cert>"
  #   server_key: "<path to server key>"
agent:
  broker:
    ip: host.docker.internal
    port: "4222"
    tls: false
  credentials:
    url: http://auth.localhost:9310
    service_account_path: service-user.json
  command_timeout: 10s
Next

Agent configuration

The full schema shared by every protocol. Agent configuration.

The client counterpart

Reading a field device's points into SCADA instead of exposing them out. IEC 60870-5-104 (client).

Other protocols

REST and IEC 61850 agents work the same way.

Taking this past your laptop?

Talk to us