DNP3 Addressing

The address of any Tag that belongs to a IEC60870-5-104 data source is describe below:


A. Read Tags

Single point and Measure Values (normalized, scaled, and short float) are supported.


The basic addressing format for reading tags in a Stream consists of 4 parts separated by semi-column as the following:


CommonAddress ; TypeId ; IOA ; Cause Of Transmission


Here's what each component represents:


  • CommonAddress: Identifies the common address of the device or the data source within the network.
  • TypeId: A numerical identifier that specifies the type of data or information being accessed. Each TypeId corresponds to a specific data format.
  • IOA (Information Object Address): Uniquely identifies each information object within a common address.
  • Cause Of Transmission: Indicates the reason for the data transmission, such as a response to a periodic poll or an event-triggered update.


Supported TypeIds and Data Formats

The protocol supports various TypeIds, each representing different data formats. Here are some examples:


Boolean Types:

  • M_SP_NA (1): Single-point information
  • M_SP_TB (30): Single-point information with a time tag
  • Real Types:
  • M_ME_NA (9): Measured value, normalized
  • M_ME_ND (21): Measured value, normalized without quality
  • M_ME_TD (34): Measured value, normalized with time
  • M_ME_NC (13): Measured value, short floating point
  • M_ME_TF (36): Measured value, short floating point with time


Integer Types (16-bit):

  • M_ME_NB (11): Measured value, scaled
  • M_ME_TE (35): Measured value, scaled with time


Supported Causes of Transmission:

The reason for data transmission is also coded numerically:


  • General Interrogation (20): Triggers a general device-wide data update.
  • Interrogation Groups (21 to 36): Specific interrogation groups can trigger updates for particular types or groups of data points.


Example

If a system operator wants to read a normalized measured value with a time tag from a specific device, the address might be structured like this:


1023;34;158;20


This address means:


  • CommonAddress 1023 refers to a specific device or substation.
  • TypeId 34 (M_ME_TD) indicates a normalized measured value with time.
  • IOA 158 uniquely identifies the specific measurement point.
  • Cause of Transmission 20 (General Interrogation) requests a general update from the device.


Example 1: Reading a Single-Point Information without Time Tag

Address Format: 500;1;200;21

Description:

  • CommonAddress 500: Refers to a specific device or substation.
  • TypeId 1 (M_SP_NA): Represents single-point information without any associated time tag.
  • IOA 200: Identifies the specific binary input or switch state.
  • Cause of Transmission 21 (Interrogation Group 1): Requests data related to group 1, typically used for more frequent or high-priority data updates.


Example 2: Reading a Scaled Value with Time

Address Format: 150;35;75;36

Description:

  • CommonAddress 150: Designates a particular device or section within the network.
  • TypeId 35 (M_ME_TE): Indicates a scaled value that includes a time tag, often used for values that are normalized to a specific scale.
  • IOA 75: Points to a particular measurement sensor or instrument.
  • Cause of Transmission 36 (Interrogation Group 16): Initiates data transmission for a specific group, possibly set for monitoring less critical or less dynamic parameters.


Example: Reading a Normalized Measured Value with Time

Address Format: 1023;34;158;20

Description:

  • CommonAddress 1023: Identifies a specific device or substation.
  • TypeId 34 (M_ME_TD): Represents a normalized measured value with an associated time tag.
  • IOA 158: Uniquely identifies the specific measurement sensor or instrument within the device.
  • Cause of Transmission 20 (General Interrogation): Requests a general update from the device, typically used to refresh all relevant data points at once.


Other Examples:


Type ID

Data Type

Example Address

Example for 34: M_ME_TD Measured value, normalized value with time

Real

1;34;2;21

Example for 36: M_ME_TF Measured value, short floating point value with time

Real

1;36;2;21

Example for 35: M_ME_TE Measured value, scaled value with time

Integer

1;35;2;21

Example for 21: M_ME_ND Measured value, scaled value without quality

Real

1;21;3;21

Example for 30: M_SP_TB Single-point information with time tag

Boolean

1;30;2;21

Example for 9: M_ME_NA Measured value, normalized value

Real

1;9;1;20

Example for 13: M_ME_NC Measured value, short floating point value

Real

1;13;1;20

Example for 11: M_ME_NB Measured value, scaled value

Integer

1;11;1;20

Example for 1: M_SP_NA Single-point information

Boolean

1;1;1;20


B. Command Tags

Note: Single commands, Double commands, and Set point (normalized, scaled, and short float) commands are supported.


Command Tags Addressing Format

In the IEC 60870-104 protocol, command tags are used for sending control commands to field devices. These commands can vary in complexity from simple operations like toggling a device on or off, to more complex commands involving setting specific values. The command tags support a structured addressing format which allows for both direct and pre-selected operations.


Direct Operate:


  • Format: CommonAddress;TypeId;IOA;CommandType
  • Components:
    • CommonAddress: Specifies the address of the target device or subsystem within the network.
    • TypeId: Numerical identifier that specifies the type of command to be executed.
    • IOA (Information Object Address): Uniquely identifies the specific command target within the device.
    • CommandType: Indicates the nature of operation, typically a direct execute which doesn't require prior selection.


Select Before Operate (SBO):


  • Format: CommonAddress;TypeId;IOA;CommandType;SelectBeforeOperateTimeout
  • Components:
    • Same as Direct Operate for the first three components.
    • SelectBeforeOperateTimeout: The time in milliseconds allowed between the select (prepare) and operate (execute) phases of the command. This is crucial for operations that need confirmation or preparation before actual execution.


CommandAdditionalDefinition:

Sometimes included to specify additional command characteristics such as duration or persistence of the command effect. This can be appended at the end of the command structure if needed.


Supported Type IDs for Commands

Various Type IDs correspond to different command data types, such as Boolean or numerical values, which define whether the command is switching a binary output or setting a scaled or normalized value.


Supported Command Types

  • DIRECT_OPERATE: The command is executed immediately upon reception.
  • SELECT_BEFORE_OPERATE: The command requires a preliminary selection or preparation step before it can be executed. This is useful for ensuring safety and correctness in operations where commands have significant effects.


Command Tags Addressing Format Examples

1. Direct Operate

  • Format: CommonAddress;TypeId;IOA;CommandType
  • Description: This format is used for immediate execution of commands without a prior selection phase, suitable for operations requiring immediate response.
  • Example:
    • Address Format: 500;45;101;1
    • Meaning:
      • CommonAddress 500: Targets a specific device or subsystem.
      • TypeId 45 (C_SC_NA): Indicates a single command (Boolean).
      • IOA 101: Specifies the binary output or switch to be toggled.
      • CommandType 1 (Direct Operate): Command is executed immediately upon receipt.


2. Select Before Operate (SBO)

  • Format: CommonAddress;TypeId;IOA;CommandType;SelectBeforeOperateTimeout
  • Description: This format includes a selection phase where the command is prepared and must be followed by an execution command within the specified timeout period, enhancing safety and reliability.
  • Example:
    • Address Format: 500;61;152;2;5000
    • Meaning:
      • CommonAddress 500: Designates a particular control system.
      • TypeId 61 (C_SE_TA): Set point normalized value command with additional time constraint.
      • IOA 152: Identifies the specific setting or parameter to be adjusted.
      • CommandType 2 (Select Before Operate): Command requires prior selection.
      • SelectBeforeOperateTimeout 5000 (in ms): Execution must occur within 5 seconds of selection.


3. With Command Additional Definition

  • Format: CommonAddress;TypeId;IOA;CommandType;CommandAdditionalDefinition
  • Description: This format is used when additional specifications are necessary for the command, such as defining pulse duration or ensuring persistent application.
  • Example:
    • Address Format: 300;58;200;1;1
    • Meaning:
      • CommonAddress 300: Points to a specific device or station.
      • TypeId 58 (C_SC_TA): Single command with time awareness.
      • IOA 200: Targets a specific control mechanism.
      • CommandType 1 (Direct Operate): Command executed immediately.
      • CommandAdditionalDefinition 1 (Short Pulse): Command action applies for a short, defined duration.


Other Examples:


Type ID

Data Type

Example Address

Example for 63: C_SE_TC Set point float value command, Select Before Operate, with time

Real

1;63;2;2;3000

Example for 50: C_SE_NC Set point Float value command, Direct Operate

Real

1;50;1;1

Example for 62: C_SE_TB Set point scaled value command, Select Before Operate, with time

Integer

1;62;2;2;3000

Example for 49: C_SE_NB Set point scaled value command, Direct Operate

Integer

1;49;1;1

Example for 61: C_SE_TA Set point normalized value command, Select Before Operate, with time

Real

1;61;2;2;3000

Example for 48: C_SE_NA Set point normalized value command, Direct Operate

Real

1;48;1;1

Example for 58: C_SC_TA single command, Select Before Operate, and Short Pulse

Boolean

1;58;2;2;3000;1

Example for 45: C_SC_NA single command, Direct operate, and persistent

Boolean

1;45;1;1;3