Skip to content
JelinaJelina DocumentationTechnical documentation
Back to website

IEC 104 Acquisition

Use the protocol simulator to generate data. Configure it as follows:

(1.) Double-click protocolsimulator.exe in its folder to open the protocol simulator.

(2.) Configure the following information in the simulator:

a. Connection parameter: TCP-S

b. IP: the laptop’s IPv4 address

c. Port: an integer greater than or equal to 1000, matching the port entered in Connection settings

d. Protocol type: iec104-server

e. Point list file: download simulator_point.csv, the point list for simulated measurement data, and upload it to the simulator

(3.) Select the required measurement points.

(4.) At the upper left, click Test → Auto Send, enter an interval of 1000ms, then click OK.

(5.) Click Open Connection to start generating simulated data.

(1.) Open Digital Twin in CommBridge, then select Device Connectivity on the left.

(2.) Drag the IEC104 Acquisition, Data Processing, and MQTT Upload plugins to the plugin workspace to create three nodes.

(3.) Connect the three nodes in this order: IEC104 Acquisition → Data Processing → MQTT Upload.

(1.) Double-click IEC104 Acquisition, then click Add Scheme.

(2.) Enter the connection settings, then click Next.

(3.) Click Add Group, enter the group settings, then click Confirm.

(4.) Click Add Data, enter the point settings, then click Confirm.

(5.) Click Finish to add the acquisition scheme.

(6.) Enable the scheme, then click Save.

(1.) Click Deploy in Device Connectivity to deploy successfully.

(2.) Switch to Digital Twin and hover over the IEC104 Acquisition node to display its information list.

(3.) Click the scheme to view real-time and historical point data for its groups.

Parameter Description Format Example
Scheme name User-defined name for the scheme Nonempty IEC 104 acquisition
Protocol IEC 104 power-system protocol Nonempty IEC 104(TCP)
Cause of transmission size Size of the cause of transmission (COT) in bytes; defaults to 1 byte 1, 2 2
Common address length Size of the ASDU common address (CA) in bytes; defaults to 2 bytes (16 bits) 1, 2 2
Information object address length Size of the information object address (IOA); defaults to 3 bytes (24 bits) 1, 2, and 3 3
Originator address User-defined Number, range: [0,255] 0
Application service data unit common address Common address (CA) of the application service data unit (ASDU), set when issuing a general interrogation or sending a command Number, range: [0,2147483647] 1
General interrogation interval Interval for general interrogation in milliseconds; 0 disables periodic general interrogation Number, range: [0,2147483647] 0
Host IP address of the IEC 104 slave being polled (the device running the simulator, or controlled station) Address in decimal notation 192.168.220.146
Port IP port number of the IEC 104 slave being polled; enter the actual port, matching the simulator’s port Number, range: [1, 65535] 2404
K Send-window size: maximum number of sent but not yet acknowledged I-format APDUs Number, range: [1,32767] 12
W Maximum number of unacknowledged APDUs the receiver can accept Number, range: [1,32767] 8
t0 Connection establishment timeout. Attempts to reconnect if no connection is established Number, range: [1,255] 30
t1 APDU transmission or test timeout: time to wait for acknowledgment. Data must be retransmitted if acknowledgment is not received Number, range: [1,255] 15
t2 Acknowledgment timeout: time from the slave’s spontaneous data transmission to receipt of an S-format acknowledgment frame;
if no data is sent within t2, the next acknowledgment frame should be sent
Number, range: [1,255] 10
t3 Heartbeat timeout: if no data is exchanged within t3, a U-format test frame should be sent to ensure continued link-layer activity Number, range: [1,255] 20

Note:

  1. K defaults to 12: at most 12 sent I-format APDUs may remain unacknowledged. Once this window limit is reached, the sender must wait for an acknowledgment before continuing to send I-format APDUs.
  2. W defaults to 8: after receiving 8 APDUs, the master must reply with an S-format acknowledgment. Applies to the master. In theory, W < 2/3K.
  3. Defaults: t0 = 30s, t1 = 15s, t2 = 10s, and t3 = 20s. In theory, t2 < t1 < t3.
  4. t0–t3 are in seconds.
Parameter Description Format Example
Group name User-defined name for the group Nonempty Group 1
Originator address (s) User-defined ASDU common address (ADR), used to distinguish substations on this link Number, range: [0,255] 1
General interrogation interval Interval for general interrogation; 0 disables periodic general interrogation Seconds; number, range: [0,2147483647] 1
Teleindication (DI) point offset Offset for all teleindication (digital input DI) data; supports decimal and hexadecimal Decimal range: [1,2147483647]
Hexadecimal range: [0x0,0xffff]
0x0
Remote control (DO) point offset Offset for all remote control (digital output DO) data; supports decimal and hexadecimal Decimal range: [1,2147483647]
Hexadecimal range: [0x0,0xffff]
0x6001
Telemetry (AI) point offset Offset for all telemetry (analog input AI) data; supports decimal and hexadecimal Decimal range: [1,2147483647]
Hexadecimal range: [0x0,0xffff]
0x3e9
Remote adjustment (AO) point offset Offset for all remote adjustment (analog output AO) data; supports decimal and hexadecimal Decimal range: [1,2147483647]
Hexadecimal range: [0x0,0xffff]
0x6201
Parameter Prerequisite Description Format Example
Data alias User-defined data name, matching the key to acquire Nonempty Data 1
Information object address Information object address (InfoAdr), distinguishing applications such as teleindication and telemetry; each information item occupies a different address Number; see below 0
Data category Teleindication is digital input DI; remote control is digital output DO; telemetry is analog input AI; remote adjustment is analog output AO AI, DI AI
Data type Data type of the point being acquired Select from the drop-down list; see below
Include timestamp Whether to include a timestamp indicating when the information was sent Yes, No; see below No
Timestamp type Include timestamp is Yes Timestamp type. IEC 104 does not support CP24Time2a CP56Time2a, CP24Time2a CP56Time2a
Read/write Determined by the data category Supports ro (read only) and wo (write only) ro, wo; see below No
Calculation User-defined formula based on the data alias Unrestricted
Execution mode Data category is AO/DO Execute: direct control; Select Execute: select before operate Execute, Select Execute; see below
Control timeout Data category is AO/DO See below
Quality qualifier Data category is AO/DO Set-point qualifier QL for AO; command qualifier QU for DO See below
Control type Data category is DO Duration of the control command’s output signal Persistent Output, Short Pulse, Long Pulse; see below

Note:

Actual point address = teleindication/remote control/telemetry/remote adjustment point offset + information object address.

  1. The information object address range depends on its configured size: 1 byte gives [0-255]; 2 bytes gives [0-65535]; 3 bytes gives [0-16777215].

Data types:

  1. DI: Single Point Information or Double Point Information.
  2. DO: Single Command, Double Command, or Regulating Step Command.
  3. AI: Step Position Information, Bitstring32, Measured Value Normalized, Measured Value Scaled, Measured Value Short Floating, Integrated Total, or Measured Hormalized Without Quality.
  4. AO: BitString32 Command, Setpoint Command Normalized, Setpoint Command Scaled, or Setpoint Command Short Floating.

Read/write:

  1. ro: DI and AI default to ro (read only).
  2. wo: DO and AO default to wo (write only).

Quality qualifiers:

  1. Set-point qualifier QL is used for measured values (telemetry) and status information (teleindication), describing the quality of the data object itself; number, range: [0,127].
  2. Command qualifier QU is used for commands (remote control and set points), describing the execution mode and attributes. Options: No Additional Definition, Persistent Output, Short Pulse, Long Pulse.
    1. Persistent Output: continuous output.
    2. Short Pulse: short-duration pulse.
    3. Long Pulse: long-duration pulse.

Point data in the protocolsimulator simulator has no timestamp by default.

Data category Data type Type identification (ASDU type) Description
Teleindication DI Single Point M_SP_NA_1=1 Single-point information without timestamp
M_SP_TB_1=30 Single-point information with long timestamp
Double Point M_DP_NA_1=3 Double-point information without timestamp
M_DP_TB_1=31 Double-point information with long timestamp
Telemetry AI Step Position M_ST_NA_1=5 Step position information without timestamp
M_ST_TB_1=32 Step position information with long timestamp
Bitstring M_BO_NA_1=7 32-bit string without timestamp
M_BO_TB_1=33 32-bit string with long timestamp
Measured Normalized M_ME_NA_1=9 Measured value, normalized, without timestamp
M_ME_TD_1=34 Measured value, normalized, with long timestamp
Measured Scaled M_ME_NB_1=11 Measured value, scaled, without timestamp
M_ME_TE_1=35 Measured value, scaled, with long timestamp
Measured Short Float M_ME_NC_1=13 Measured value, floating point, without timestamp
M_ME_TF_1=36 Measured value, floating point, with long timestamp
Integrated Totals M_IT_NA_1=15 Integrated totals without timestamp
M_IT_TB_1=37 Integrated totals with long timestamp
Measured Normalized Without Quality M_ME_ND_1=21 Measured value, normalized, without quality descriptor
Remote control DO Single Command C_SC_NA_1=45 Single command
C_SC_TA_1=58 Single command with long timestamp
Double Command C_DC_NA_1=46 Double command
C_DC_TA_1=59 Double command with long timestamp
Regulation Command C_RC_NA_1=47 Regulating step command
C_RC_TA_1=60 Regulating step command with long timestamp
Remote adjustment AO Setpoint Normalized C_SE_NA_1=48 Set-point value, normalized
C_SE_TA_1=61 Set-point value, normalized, with long timestamp
Setpoint Scaled C_SE_NB_1=49 Set-point value, scaled
C_SE_TB_1=62 Set-point value, scaled, with long timestamp
Setpoint Floating C_SE_NC_1=50 Set-point value, short floating point
C_SE_TC_1=63 Set-point value, short floating point, with long timestamp
Bitstring Command C_BO_NA_1=51 32-bit string
C_BO_TA_1=64 32-bit string with long timestamp