Documentation Home Page HYPERSIM Home Page
Pour la documentation en FRANÇAIS, utilisez l'outil de traduction de votre navigateur Chrome, Edge ou Safari. Voir un exemple.

DNP3 Slave | Configuration

Accessing the I/O Interface Configuration

The DNP3 slave communication protocol can be configured in the I/O Interface Configuration tool that can be opened from the HYPERSIM ribbon.

For more information on the general use of the I/O Interface Configuration, read I/O Interface Configuration.

General Configuration


Use an RT core for asynchronous computation
  • If set to true, the driver reserves a real-time CPU core for its communication system and will be able to handle a bigger number of slaves.
  • If set to false, the communication system defaults to core 0 (running with the operating system).
Enable verbose modeIf enabled, additional information is displayed in the HYPERSIM log during the loading of the model.
Enable virtual modeIn virtual mode, the model can be executed even if this I/O interface is not compatible with the hardware configuration of the system. The connections between the model and the I/O interface will be done during the initialization, but the I/O interface will not do anything.







The virtual mode can be used to troubleshoot problems on a system without having the required hardware, or to prepare a model with different I/O interfaces even if the final hardware platform is not available.

Slave Configuration

By default, the driver is configured with one slave, that contains 2 analog inputs, 2 binary inputs, 2 double bit binary inputs, 2 analog outputs and 2 binary outputs. It is configured within a few pages. The first page contains most of the configuration.

IDUnique numeric value to identify each DNP3 slave (1-65534)
Channel nameA unique name to be given to each DNP3 slave channel
ProtocolCommunication protocol that the DNP3 master will use to communicate with the DNP3 slave. Only 'TCP' is supported.
TCP portTCP port number that the DNP3 master will use to establish a connection with the DNP3 slave. In other words, the DNP3 slave is waiting for a connection on this TCP port.
NIC nameNetwork interface controller name of the target. Typically, on Linux systems, the main interface name is 'eth0'. It is possible to get the network interface name by running the 'ifconfig' command on the target. If the target is equipped with more than one network interface, the user can assign different DNP3 slave to different network controllers and control the Ethernet traffic that will have to be handled by each of them.
IP addressIP address that will be used to reach the DNP3 slave communication interface. If required, this parameter can be set to 'AUTO' to select the first IP address assigned to the target. In this case, the DNP3 master will be able to reach the DNP3 using the main IP address assigned to the target. It can also be set to 'localhost' if the DNP3 master is running on the same target. If multiple DNP3 slaves are simulated in the same model on the target IP address, the TCP port used for each device must be different. On Linux systems, if an IP address that is not configured on the defined network interface is specified, the driver will attempt to create an IP alias on the network interface and attach the DNP3 slave to this alias. In this case, the master will be able to reach the slave using the alias IP address. This functionality is interesting to simulate different slave in the same model and have each of them being reachable using their own IP address. To avoid network conflicts, an error will be returned if the IP address is already used on the network.
Slave link addressSpecifies the DNP3 link layer address of the simulated DNP3 slave IED. In a real IED network, each IED has its own DNP3 link layer address.
Master link addressSpecifies the DNP3 link layer address of the DNP3 master that will be allowed to establish a connection with the simulated DNP3 slave IED.
Link status periodSpecifies how often to send link status requests, if no DNP3 frames have been received on this session. In DNP3 IP networking spec this is called keep-alive interval.
Validate source addressSpecifies whether or not to validate source link address in received frames. DNP3 frames contain both a source link-address field and a destination link-address field. If set to 0, the DNP3 slave will does not validate the source link address and frames whose destination link address matches a configured slave session will be accepted. Setting this to 1 requires both source and destination link addresses to match a local slave session before the frame is accepted.
Enable self addressSpecifies whether or not to enable self-address functionality on this slave device as specified by DNP Technical Bulletin 2003-003 Self-Address Reservation. The slave will respond to address 0xfffc as though it received a request for its configured address. It will respond with its own address so the master can automatically discover the slave address.
Allow multiple fragment responseSpecifies whether the application is allowed to send multi fragment responses.
Confirm multiple fragmentSpecifies whether application layer confirmations will be requested for non-final fragments of a multi fragment response. "Application layer confirmations are always requested for responses that contain events.
Send qualifier 7 for active config response:Parsing Table says send qualifier 5b for activate config response. For backward compatibility with old implementations send qualifier 7 instead.
Set need time in responseSpecifies whether this slave will set the Need Time IIN bit in response to this session at startup and after the clock valid period has elapsed. If this bit is set the master will respond with a time synchronization request. Typically this parameter should be true for one session for each slave device. Set this parameter to 0 if report by exception is not supported or there is no reason this device needs to be synchronized from the master.
Application confirm timeout (ms)Application confirm timeout specifies how long the DNP3 slave will wait for an application layer confirmation from the master. This in combination with unsolRetryDelay or unsolOfflineRetryDelay will determine how frequently an unsolicited response will be resent. The unit is in milliseconds.
Delete oldest eventIf set to 1, the event with the earliest timeStamp will be deleted when a new event is added to an event queue that is full.
Select timeout (ms)Specifies the maximum amount of time that a select will remain valid before the corresponding operate is received. If an operating request is received after this period has elapsed since the previous select the select will not be valid and the operate request will fail. The unit is in milliseconds.
Warm restart delay (ms)Specifies the time a master must wait after receiving a response to a warm restart request. This value is encoded in a time delay fine object in the response which limits it to 65535 ms. The unit is in milliseconds.
Cold restart delay (ms)Specifies the time a master must wait after receiving a response to a cold restart request. This value is encoded in a time delay fine object in the response which limits it to 65535 ms. The unit is in milliseconds.
Allow unsolicited responsesSpecifies whether or not unsolicited responses are allowed. Only Class 1, 2 and 3 input data can allow unsolicited responses.
Send unsolicited responses when onlineSpecifies whether or not unsolicited responses is enabled sent when session comes online.
Unsolicited class maskSpecifies which class of point is reported by default when sendUnsolWhenOnline is set to true.
Default variation for type 30 objectsSpecifies the DNP3 default variation for type 30 objects (*). Refer to official DNP3 documentation for more details about the objects' variations.
Default variation for type 32 objectsSpecifies the DNP3 default variation for type 32 objects (*). Refer to official DNP3 documentation for more details about the objects' variations.
Default variation for type 40 objectsSpecifies the DNP3 default variation for type 40 objects (*). Refer to official DNP3 documentation for more details about the objects' variations.
Default variation for type 42 objectsSpecifies the DNP3 default variation for type 42 objects (*). Refer to official DNP3 documentation for more details about the objects' variations.
Event mode for analog inputsSpecifies the event mode for analog inputs. Must be 'MOST_RECENT' to have the most recent events being reported or 'SOE' for having sequences of events being reported.
Event mode for binary inputs*Specifies the event mode for binary inputs. Must be 'MOST_RECENT' to have the most recent events being reported or 'SOE' for having sequences of events being reported.
Maximum number of analog inputsSpecifies number of analog inputs events that can be registered between two consecutive polling operations. This value will scale the analog input event buffer size. To avoid buffer overflow, it should be large enough to handle all the analog input events registered between two analog inputs read request from the master.
Maximum number of binary inputs*Specifies number of binary inputs events that can be registered between two consecutive polling operations. This value will scale the binary input event buffer size. To avoid buffer overflow, it should be large enough to handle all the analog input events registered between two binary inputs read request from the master.
Analog inputs scan period (ms)
  • Specifies analog inputs scan period (in millisecond). This is the rate at which the DNP3 slave library will scan the database to detect events on analog input points. It is recommended to configure this rate about 10 time the variation speed of the fastest analog input.
Binary inputs scan period (ms)*
  • Specifies binary inputs scan period (in millisecond). This is the rate at which the DNP3 slave library will scan the database to detect events on binary input points. It is recommended to configure this rate about 10 time the variation speed of the fastest binary input.

*Note: The configuration will also be applied on double bit binary inputs (for event mode, maximum number of inputs and scan period only).


DNP3 has provisions for representing data in different formats.

Static values can be represented by variation numbers as follows:

  • A 32-bit integer value with flag
  • A 16-bit integer value with flag
  • A 32-bit integer value
  • A 16-bit integer value
  • A 32-bit floating point value with flag 
  • A 64-bit floating point value with flag

The flag referred to is a single octet with bit fields indicating whether the source is online, the data source restarted, communications are lost with a downstream source, the data is forced and the value is over range.

Event data can be represented by variation numbers as follows:

  • A 32-bit integer value with flag
  • A 16-bit integer value with flag
  • A 32-bit integer value with flag and event time
  • A 16-bit integer value with flag and event time
  • A 32-bit floating point value with flag
  • A 64-bit floating point value with flag
  • A 32-bit floating point value with flag and event time
  • A 64-bit floating point value with flag and event time

The flag has the same bit fields as for the static variations


A slave contains a list for each of the input data types (analog and binary).

Analog Inputs and Outputs Configuration

These lists are to be configured depending on the desired point class of each point. If the DNP3 master sends a command to enable 'unsolicited responses' for the analog inputs, changes on these inputs will be periodically reported to the DNP3 master.

Each input data point has two parameters:

  • Point class: The point class can be 0, 1, 2 or 3.
  • Deadband: The analog input data will be reported to the master if the value exceeds the latest value in the event queue plus or minus the value set as deadband.

Each output data point has two parameters:

  • Point class: The point class can be 0, 1, 2 or 3.
  • Default value: The initial value that will be sent to the model until a DNP3 master connects and updates it with a new value.

The DNP3 master can enable unsolicited responses for a specific class of points (class 1, 2 and 3).

Binary Inputs and Outputs Configuration

These lists are to be configured depending on the desired point class of each point. If the DNP3 master sends a command to enable 'unsolicited responses' for the binary inputs, changes on these inputs will be periodically reported to the DNP3 master.

Each input data point has one parameter:

  • Point class: The point class can be 0, 1, 2 or 3.

Each output data point has three parameters:

  • Point class: The point class can be 0, 1, 2 or 3.
  • Default value: The initial value that will be sent to the model until a DNP3 master connects and updates it with a new value.
  • Operate as trip/close pair: A checkbox that enables or disables the use of the point as a trip/close pair. When checked, the binary output will have 2 connection points, one for 'trip' and one for 'close'. The default value dictates how the 'trip or 'close' gets activated:
    • default value OFF = 'trip' or 'close' output will be active for the duration of the 'on time' parameter of the command
    • default value ON = 'trip' or 'close' output will be active for the duration of the 'off time' parameter of the command


The DNP3 master can enable unsolicited responses for a specific class of points (class 1, 2 and 3).


Double Bit Binary Inputs Configuration

These lists are to be configured depending on the desired point class of each point. If the DNP3 master sends a command to enable 'unsolicited responses' for the double bit binary inputs, changes on these inputs will be periodically reported to the DNP3 master.

Each input data point has one parameter:

  • Point class: The point class can be 0, 1, 2 or 3.

The DNP3 master can enable unsolicited responses for a specific class of points (class 1, 2 and 3).

OPAL-RT TECHNOLOGIES, Inc. | 1751, rue Richardson, bureau 1060 | Montréal, Québec Canada H3K 1G6 | opal-rt.com | +1 514-935-2323