Skip to main content

IEC104 Server

Purpose

This target maps variables from a forwarding group to IEC 60870-5-104 information objects. A control-center client can perform general interrogation, read indications and measurements, and issue remote controls when permitted. The plugin is named IEC104Slave in the target selector.

Configure the forwarding group range, common channel fields, and target runtime state through Data Forwarding. This page covers only IEC104 station, information-object mapping, write permission, and debug behavior.

Open the plugin

Open Development Configuration → Data Forwarding, select or create a forwarding group, and add a target using IEC104Slave.

Server properties

SettingDefaultDescription
Common address1Target-level CA used when a variable does not override it. Valid range is 1–65534.
Send window K12Maximum unacknowledged I frames sent by the server. Keep it within the control-center receive capacity.
Receive acknowledgement threshold W8Number of received I frames that triggers an S-frame acknowledgement.
Channel typeTcpServiceA standard IEC104 server uses a TCP service channel and Local bind address. Use another channel only when the project architecture requires it.
Allow writesEnabledTarget-level switch for remote-control write-back. Disabling it rejects writes to every mapped variable.
Send delay0 msDelay before each protocol send. Change it only when the receiver requires an inter-message delay.
Maximum pending changes4096Bounded queue for spontaneous changes. Repeated changes to one point are coalesced; overflows are logged and rejected.
Selection timeout30 sValidity of a Select-Before-Operate selection before execution.

TCP, serial, DTU, SSL, heartbeat, timeout, and connection-limit fields are common channel settings. Fill only the group that matches the selected Channel type.

Target variable properties

Save the target, open Variable Properties, and map every variable that must be exposed through IEC104.

SettingDefaultDescription
Common addressEmptyOptional override of the target CA, valid 1–65534.
Information object address0Required three-byte IOA, valid 0–16777215. The same CA, monitoring base type, and IOA combination must be unique.
Interrogation groupEmptyOptional group 1–16, corresponding to QOI 21–36. Ungrouped points participate only in general interrogation.
Type identificationScaledMeasurementSelect the monitoring TypeId used by the control center, including single/double point, step, bit string, normalized/scaled/short-float measurement, counter, and CP56Time2a variants.
Allow writesEnabledVariable-level remote-control permission. Both target and variable permissions must allow a write.
Select before operateDisabledWhen enabled, the control center must send a matching select command before execution, within the selection timeout.

The variable must already be inside the forwarding group's range. Match TypeId with the source value and the control-center point list. CP56Time2a TypeIds 30–37 use the source variable collection time; TypeId 21 carries no quality byte.

General interrogation (QOI=20) returns all points for the requested CA. Group interrogation returns only points matching both the CA and group. Debug interrogation publishing follows the same rule; an empty group returns no points. Spontaneous updates are independent of interrogation groups.

Functions

FunctionPurpose
Runtime statusConfirm server state, CA, K/W, point count, connected control centers, active data-transfer sessions, and pending changes.
Control-center connectionsInspect STARTDT state, sequence numbers, unacknowledged frames, last activity, and errors.
Point values and interrogationFilter and sort the point table by CA, TypeId, IOA, quality, timestamp, or write status.
Test interrogation publishSelect a STARTDT-ready client, CA, and qualifier, then publish a real general interrogation.
MessagesView IEC104 requests, responses, protocol fields, and errors.

Target debug

Open Development Configuration → Data Forwarding, select the IEC104 target, and open Debug.

FeaturePurpose
Forwarding pipelineShows the group range, trigger, variable count, and data entering the IEC104 server.
Runtime statusShows server state, point mappings, clients, and pending spontaneous changes.
Control-center connectionsShows STARTDT and I-frame acknowledgement state for each client.
Point values and interrogationConfirms the encoded CA, TypeId, IOA, quality, timestamp, and write state.
Test interrogation publishPublishes an approved test interrogation to selected STARTDT-ready clients.
MessagesShows sent and received APDUs and error details.

IEC104 Server forwarding pipeline

Confirm that the expected variables reach the target before connecting an IEC104 client and running general interrogation. Test remote controls only on approved points and under the site safety procedure.

Verify the target

  1. Enable the forwarding group and target, then confirm that the target runtime is available.
  2. Configure the control-center client with the server address, port, and matching station, then connect and run general interrogation.
  3. In the point table, compare one indication and one measurement by CA, TypeId, IOA, value, quality, and timestamp.
  4. Run the test interrogation and confirm the result count is the number of encoded information objects, not the point-table total.
  5. Test remote control only after confirming target permission, variable permission, select-before-operate settings, and site approval.

Troubleshooting

SymptomCheck
Client cannot connectChannel type, local bind address, port conflict, firewall, and target state.
General interrogation returns no pointsForwarding group range, target variable properties, information-object addresses, data types, and station.
Value or quality is incorrectSource variable value, online state, IEC104 data type, and client type identification.
Remote control is rejectedTarget and variable write permission, information-object address, source-variable write permission, and site interlocks.
Client connects but I frames are rejectedConfirm that the client completed STARTDT_ACT/CON and that K/W values match the peer.
Interrogation is incompleteCheck CA, qualifier 20–36, TypeId, IOA uniqueness, APDU size, K/W, and the pending-change limit.
Timestamp or quality is wrongCheck CP56Time2a TypeId 30–37, source collection time, online state, and TypeId 21 quality rules.