DNP3 Technical Reference
DNP3 Technical Reference
Reference
2 SCADAPack E DNP3 Technical Reference
Table of Contents
3
4 SCADAPack E DNP3 Technical Reference
I DNP3 Technical
1 Technical Support
Support related to any part of this documentation can be directed to one of the following
support centers.
DNP3 Technical 5
2 Safety Information
Read these instructions carefully, and look at the equipment to become familiar with the
device before trying to install, operate, or maintain it. The following special messages may
appear throughout this documentation or on the equipment to warn of potential hazards or to
call attention to information that clarifies or simplifies a procedure.
DANGER
DANGER indicates an imminently hazardous situation which, if not avoided, will
result in death or serious injury.
WARNING
WARNING indicates a potentially hazardous situation which, if not avoided, can
result in death or serious injury.
CAUTION
CAUTION indicates a potentially hazardous situation which, if not avoided, can
result in minor or moderate.
CAUTION
CAUTION used without the safety alert symbol, indicates a potentially hazardous
situation which, if not avoided, can result in equipment damage..
PLEASE NOTE
Electrical equipment should be installed, operated, serviced, and maintained only by qualified
personnel. No responsibility is assumed by Schneider Electric for any consequences arising
out of the use of this material.
A qualified person is one who has skills and knowledge related to the construction and
operation of electrical equipment and the installation, and has received safety training to
recognize and avoid the hazards involved.
CAUTION
EQUIPMENT OPERATION HAZARD
Verify that all installation and set up procedures have been completed.
Before operational tests are performed, remove all blocks or other temporary
holding means used for shipment from all component devices.
DNP3 Technical 7
Follow all start-up tests recommended in the equipment documentation. Store all equipment
documentation for future references.
Software testing must be done in both simulated and real environments.
Verify that the completed system is free from all short circuits and grounds, except those
grounds installed according to local regulations (according to the National Electrical Code in
the U.S.A, for instance). If high-potential voltage testing is necessary, follow
recommendations in equipment documentation to prevent accidental equipment damage.
Before energizing equipment:
Remove tools, meters, and debris from equipment.
Close the equipment enclosure door.
Remove ground from incoming power lines.
Perform all start-up tests recommended by the manufacturer.
3 Preface
The purpose of this document is to describe the DNP3 Slave implementation for the SCADAPack E
RTU. It covers interaction of the SCADAPack E with a DNP3 master station, DNP3 networking, DNP3 -
TCP/IP communication, and brief descriptions of the DNP3 protocol.
This document does not describe SCADAPack E communication as a DNP3 Master (see the
8 SCADAPack E DNP3 Technical Reference
Target Audience
Systems Engineers
Commissioning Engineers
Maintenance Technicians
References
SCADAPack E Configurator User Manual
SCADAPack E Reference Manuals
ICS Triplex ISaGRAF Manuals
SCADAPack E Hardware Manuals
Assumed Knowledge
Exposure to the DNP3 protocol is recommended. It is also recommended that the readers familiarize
themselves with the Schneider Electric SCADAPack E Configurator tool required to configure the
SCADAPack E RTUs.
DNP3 Technical 9
4 Introduction
What is DNP3?
DNP3 (Distributed Network Protocol) is an industry standard SCADA communications protocol. It
originated in the Electricity Industry in North America and was based on drafts of the IEC870-5 SCADA
protocol standards (now known as IEC60870-5). DNP3 is now in widespread use in many industries
across the world and is managed by the DNP User Group.
DNP3 describes standards for SCADA protocol facilities such as data requests, polling, controls, and
report by exception (RBE). Master-slave and Peer-to-Peer communication architectures are supported
by DNP3.
Inter-operability is one of the key aspects of DNP3. It is enforced by way of minimum implementation
subsets to which vendors need to adhere. Currently, the DNP3 standard is supplemented by Subset
Definitions document describing 4 minimum subset levels. In addition, a vendor’s DNP3 implementation
needs to be provided with a Device Profile document describing information required by the DNP User
Group, including details of the implementation of one of the four minimum subset levels, and other
protocol information. The Device Profile is now required in machine readable XML format.
The DNP3 protocol also caters for expansion & evolution of the standard without detracting from the
strengths of inter-operability that it promotes. This is achieved by an object-oriented approach to the
data. Data objects can be added to the DNP3 Standard without affecting the way that devices inter-
operate.
The DNP3 User Group has published definitions for the operation of DNP3 protocol over TCP/IP LAN and
WAN networks.
What does the SCADAPack E RTU Provide when using the DNP3 Protocol?
The SCADAPack E RTU supports DNP3 to Subset Level 4 slave implementation with a range of
additional features from the DNP3 standard.
In summary the SCADAPack E RTU provides the following facilities for use of DNP3:
SCADA data configuration
Simultaneous DNP3 operation on Multiple Ports
Networking DNP3 frames
Peer-to-Peer communication
DNP3 over TCP/IP LAN & WAN networks
10 SCADAPack E DNP3 Technical Reference
The SCADAPack E RTUs add a transparent networking facility to DNP3. With minimal overhead and no
affect on inter-operability, this allows these devices to forward DNP3 frames to other DNP3 nodes,
transparent to the protocol.
The SCADAPack E RTU DNP3 structure is as follows:
OBJECT LIBRARY
APPLICATION LAYER
TRANSPORT FUNCTIONS
NETWORK FUNCTIONS
DATALINK LAYER
DNP3 Technical 11
PHYSICAL LAYER
The job of the RTU’s DNP3 network functions is to:
pass DLL frames for this DNP Node address to the Transport layer
determine if the destination node for received DLL frames appears in the network routing table to be
passed back to the DLL layer for transmission on a DNP physical channel
discard DLL frames not for this node & not to be forwarded to another node
The job of the Application layer is to:
process received fragments for this DNP node. It determines the type of operation requested (e.g.
Read, Operate, etc.) and decodes references to objects for processing in the object library.
build and manage outgoing data such as peer requests and unsolicited responses.
The Object library determines which objects are processed, and how they are processed for this DNP
device. (e.g., Binary Input, 32-bit Analog Input, Files, Floating point Analog Output, Binary Change
Event, 16-bit Analog Change Event, or 32-bit Counter).
Configuration for the DNP3 communication parameters is described in the following sections:
DNP3 Data Link Layer Configurations 12
DNP3 Application Layer Configurations 14
Related Topics
STATUS ASSOCIATIONS 78
ASSOCIATION STATES 82
12 SCADAPack E DNP3 Technical Reference
Where a data link confirmation is requested on a transmitted frame (ALWAYS or SOMETIMES modes)
the RTU waits a certain time interval for the requested confirmation. The maximum length of this time
interval is determined by a DL Confirm Timeout parameter accessible from the DNP3 Comms page of
SCADAPack E Configurator as illustrated below. The DL Confirm Timeout period is independently
adjustable on each RTU serial port and can take a value from 0 to 65535 seconds.
If a data link confirmation is requested but not received within the timeout period specified, the data-link
frame is resent, up to the number of retries configured by the DL Retries parameter. If the number of
retries is exceeded, then the frame is undeliverable and the application layer generating the message is
notified. The DL Retries parameter may have a value between 0 and 255.
14 SCADAPack E DNP3 Technical Reference
The Appl Layer Attempts parameter determines the number of times the RTU will attempt to send and
resend a request if a matching response is not received. This parameter sets the total number of
attempts between 1 and 255 (if this value is set to zero, the RTU will still perform one attempt). After
each transmission, the RTU waits for the Complete Fragment Timeout period before attempting to
resend. This parameter may be set between 0 and 65535 seconds.
These parameters are only applicable to Request messages generated from this RTU and not response
messages, for example, an unsolicited response containing events (see Min Unsol Event TX Delay and
Appl Layer Confirm (Event) Timeout for more information).
Another example of an application layer request generated by an RTU is the peer-to-peer communication
function blocks within ISaGRAF. In this particular case, a timeout can be applied individually to each
communication request (DT parameter). Where DT is zero (0) the Complete Fragment Timeout is used
as the default timeout value. Where a communication function block timeout is non-zero, the
communication function block value is used. (For more information see the ISaGRAF Technical and
the SCADAPack E Target 5 Technical Reference Manuals).
The Appl Layer Confirm (Event) Timeout parameter sets the time for an SCADAPack E RTU to wait
for a DNP3 Application Layer Confirmation message from the master after the RTU has transmitted event
data (either in a poll response or unsolicited response). The minimum value of this parameter is
automatically calculated by the RTU. You can set a value greater than the minimum, and reading this
parameter after a Warm Restart will indicate its current value. This parameter may be set up to 65535
seconds. If an Application Layer Confirmation is not received from the master, then the greater of this
value and the Min Unsol TX Delay parameter is used to delay the RTU transmitting new unsolicited event
DNP3 Technical 15
DNP3-TCP Keep Alive parameter is implemented as described by the DNP User Group’s “Transporting
16 SCADAPack E DNP3 Technical Reference
DNP3 over Local and Wide Area Network s” standard. It is a configurable Keep-Alive timer is used for
each active DNP3 - TCP socket connection. This configuration parameter specifies how often a DNP3
Link Status test message is sent across active TCP sockets for the purpose of verifying an active TCP
link. This timer may be set to “0” to de-activate the DNP-TCP Keep-Alive timer.
The Security Reply Timeout parameter is the time after which a device will stop waiting for a reply. It
is settable in hundreds of milliseconds.
Event Generation 24
Event Buffering 25
Event Transmission 29
Event Settings 31
Event Objects 35
Control Objects 40
DNP3 Operation Using and Routing for TCP/IP and TCP/IP Settings 64
Events
Events are generated by the SCADAPack E RTU based on the configuration of points in the RTU
database.
Three different event classes are defined “Class 1, Class 2, and Class 3 events”. Each point in the
SCADA table can be selected as not being an event (class 0 static or Local point), or an event being in
one of the three event classes. Event class 1 is nominally the highest priority, and class 3 is nominally
the lowest. The DNP3 SCADA master can enforce event priorities, e.g., request Class 1 events more
often than Class 2 or 3 events.
DNP3 Masters may request events buffered in the RTU a single class at a time, or in combinations of
classes. The RTU may also perform unsolicited reporting of events.
Each point configured with an event (i.e., having an event class of 1,2, or 3) has a corresponding static
data value (class 0). Events are generated from changes in the static data point. Points configured with
“Class 0 static” in the CLASS field report data in response to a SCADA poll, but events are not
generated.
18 SCADAPack E DNP3 Technical Reference
Using SCADAPack E Configurator, point records are configured with the following fields:
The DNP3 Static Object Type field describes the object type to be reported in a response to a Class 0
poll request. (See SCADA Objects)
The Point Data Class field assigns the DNP point(s) as “LOCAL” (not reported to the SCADA Master),
static data only (Class 0), or as an event class (Class 1,2, or 3). Events may be configured as
"Unsolicited" or "Buffered". The Point Data Class field can be set to Local, Class 0 (Static), Class 1,
Class 2 or Class 3 as illustrated below:
Analog and Counter points types have a Deviation attribute that is used when a point is set with an event
class as illustrated in . The Deviation field is used in detection of “change-of-value” for generating events.
See Section Event Generation 24 .
The following objects can be configured in the RTU Point Configuration DNP Static Object Type fields
for the various point types, and are returned to the DNP SCADA master in a response to a Class 0 poll
request (unless the Point Data Class is set to LOCAL as described above).
20 SCADAPack E DNP3 Technical Reference
One of these configurations is set for each binary input, binary output and derived binary point, and
determines the type of DNP3 object returned to represent the status of the binary point.
One of these configurations is set for each analog input, analog output and derived analog point, and
determines the type of DNP3 object returned to represent the value and status of the analog point.
DNP3 SCADA masters may require this object to be defined and returned in an integrity poll response in
order for the output point to be controlled. Other DNP SCADA masters may not require this object to be
returned to control a DNP point. In both cases it can be used to notify the DNP SCADA master if the
point value is modified elsewhere (e.g. internal state validation and point quality).
DNP3 Group 40 Variation 2 – 16-Bit Analog Output Status
This object returns the value and status of a 16-bit analog output or derived point. Some DNP3 SCADA
masters may require this object to be defined and returned in an integrity poll response in order for the
output point to be controlled. Other DNP SCADA masters may not require this object to be returned to
control a DNP point. In both cases it can be used to notify the DNP SCADA master if the point value is
modified elsewhere (e.g. internal state validation and point quality).
DNP3 Group 40 Variation 3 – Short Floating Point Analog Output Status
Use this object to return the value and status of floating point control data. Some DNP3 SCADA
masters may require this object to be defined and returned in an integrity poll response in order for the
output point to be controlled. Other DNP SCADA masters may not require this object to be returned to
control a DNP point. In both cases it can be used to notify the DNP SCADA master if the point value is
modified elsewhere (e.g. internal state validation and point quality).
DNP3 Technical 23
Counter Points
One of these configurations is set for each physical counter input and derived analog point used as a
counter. It determines the type of DNP3 object returned to represent the value and status of the counter
point.
Generated events are stored in the SCADAPack E Smart RTU memory and are retained through a
power cycle (Run mode startup). See the Startup Modes section of the SCADAPack E Smart RTU
Hardware Manual for further information on Startup Modes.
DNP3 Technical 25
In Single mode, only the recent instance of an event for a particular DNP analog point will be recorded in
the event buffer. Some older DNP3 masters cannot process more than a single analog event (the
recent), so in these cases use Single Mode.
Only new analog or counter events entering the event list are counted by the RTU when determining
unsolicited operation based on minimum number of class events. (See next section). Analog and
counter events replacing existing events on the event lists are not counted.
In Multiple mode (default), every analog and counter event is stored.
If the DNP3 Master station does not support decoding of multiple analog and counter events, then it is
more efficient for the RTU to be operated in Single mode. The RTU can then store and transmit more
events for other points than it could if many events were stored for a single analog point.
The number of events stored varies between RTU types (see following table).
SCADAPack ES and
Max. 40000 Events (of every type combined)
SCADAPack ER
SCADAPack E RTUs provide a “Unsol. Max. Event Storage” analog system point at 50362. The value
of this point defines an upper limit on the size of the event pool, up to the maximum values described
above. An RTU Restart is required for a change in this value to take effect. It is possible for stored non-
volatile events to be lost if this value is reduced and the RTU restarted.
The SCADAPack E RTU provides “Event Data Threshold” status and “Event Data Lost” status messages
on these event lists. “Event Data Threshold” (RTU status code 1030) is generated when the number of
events on any of the lists exceeds 80% event list capacity.
Handling of new event data once an event list is filled depends upon the setting of an RTU system point.
Binary System Point
26 SCADAPack E DNP3 Technical Reference
This system point also affects the storage of Trend Data by the Sampler. See the SCADAPack E Trend
Sampler Technical Reference manual.
“Event Data Lost” (RTU status code 1031) is generated when the number of events on any of the lists
exceeds the list capacity. In this case, the oldest event (of the same type as the new event) is
discarded. The SCADA Master is also notified through the DNP3 “Event Buffer Overflow” IIN flag in the
next DNP3 response.
SCADAPack E ISaGRAF supports the GEN_EVT and GENMSEVT function blocks which provides a
mechanism to force generation of DNP3 events on appropriately configured DNP3 points. The value
included in the forced DNP3 event will be the current point database value of the point in question.
These function blocks also have Time (gen_evt) or msTime (genmsevt) input parameters that
optionally allows a timestamp to be included in the forced DNP3 event. See the SCADAPack E
ISaGRAF Function Block s Reference and SCADAPack E Target 5 Function Block Reference
manuals for more information on the GEN_EVT and GENMSEVT function blocks.
DNP3 Technical 27
The Class X Min Events parameters refer to event classes and are independent of the event buffer list
sizes (see table below). Events removed from overflowing event lists are not decremented from the count
of class events, i.e. the Min Events count is a minimum number of new events generated.
A slightly different behavior occurs if the RTU is in Single ANALOG EVENT BUFFER MODE, where only
analog or counter events on a new point entering the list count toward this minimum when determining
30 SCADAPack E DNP3 Technical Reference
unsolicited operation. Analog and counter events replacing existing events on the event lists are not
counted.
RTU data points configured as events have one of two event attributes.
The occurrence of an event with a BUFFERED EVENT attribute (i.e. not selected for Unsolicited
reporting) is added to the internal event list. No direct action is taken by the RTU after the event is
added to the list unless the new event causes an event list size to exceed the transmission limit for
an enabled event class.
The occurrence of an event with a UNSOLICITED attribute is also added to the internal event list,
but causes the RTU to generate an unsolicited transmission containing the events currently on the
event list, for the enabled event classes.
Each of the eight enabled Analog Alarm Limits, Point Quality change events and Point Current Value/
State Deviation events can be individually assigned to generate either “Buffered” or "Unsolicited" DNP
event types.
This feature has advantages for RTU’s using dial-up or on “pay-per-byte” links where the user wants to
minimize the unsolicited reporting and hence communications costs. For example, an RTU may be
configured to Buffer all Current Value Deviation events, but to send Triggered DNP events if a certain
Alarm limit is transgressed.
The screen capture in Figure 7.10 30 below illustrates some of the Analog Point attributes that can be
configured to generate a triggered event. Triggered events are enabled with the fields containing a check
mark.
For more information about these fields, refer to the SCADAPack E Configuration Technical Reference
manual.
DNP3 Technical 31
This dialog can be accessed from the DNP Comms page of SCADAPack E Configurator. These fields
set the DNP node address of the DNP SCADA master, and the RTU port that the master can be found
on (one of: DIAG, PORT0, PORT1, PORT2, FSK).
The default DNP Master Addr is 30000 and default DNP Master Port is Port 1.
If the port selected as the “DNP Master Port” is not configured for “DNP3” protocol on the RTU, then the
configuration will be automatically modified to be the first port found that is configured with “DNP3”
protocol. If the user re-reads the configuration page in the SCADAPack E Configurator, it will report the
selected “DNP Master Port” if it was automatically modified.
Unsolicited Event Transmission can be controlled by the DNP SCADA master issuing “Disable
Unsolicited Messages” & “Enable Unsolicited Messages” commands. These allow the DNP SCADA
master to selectively enable & disable CLASSES of events from being reported by the RTU. If disabled
from sending unsolicited events, the RTU continues to buffer the events.
The default start-up state of an RTU’s Unsolicited Event Classes is configurable as illustrated in the
screen capture in Figure 7.12 31 taken off the DNP Events page of SCADAPack E Configurator.
The SCADAPack E RTU firmware supports an “Unsolicited Allowed” control to satisfy recently revised
DNP User Group DNP3 operational requirements. When Unsolicited responses are off, the RTU will not
support any unsolicited operation, and will reject the “ENABLE/DISABLE UNSOLICITED RESPONSES”
DNP3 function codes. This function is also configured on the DNP Events page of SCADAPack E
Configurator as illustrated below.
32 SCADAPack E DNP3 Technical Reference
When unsolicited operation is enabled on the RTU, it is the responsibility of the DNP3 Master to enable
the event classes in the RTU following an RTU restart. The Class settings are provided for backward
compatibility with older masters not automatically enabling RTU event classes. When supporting the
Unsolicited Allowed mode, it is recommended that Class settings should not be used with a DNP3 Level
2 compliant master station.
Unsolicited responses will not be generated by the RTU unless it has a configuration loaded into it.
Writing configuration values in SCADAPack E Configurator is insufficient for this purpose. A configuration
needs to be loaded using the restart config command or writing a configuration via SCADAPack E
Configurator.
DNP3 Technical 33
The SCADAPack E Configurator DNP3 Events page in Figure 7.14 33 presents the SCADAPack E
Configuration of the Unsolicited Response timing on the SCADAPack E RTU.
The Event Notification Delay field allows the RTU to continue collecting events for the configured period
AFTER the occurrence of a TRIGGER EVENT but before transmission of the event list to the DNP
SCADA master. This can be useful where a trigger event is followed by consequential events. This
allows the trigger event and consequential events to be reported together in the same DNP3 fragment.
The value of this period may be between 0 and 65535 seconds.
There are 5 parameters that affect the timing of subsequent Unsolicited Response transmissions.
The Min. Unsol Event Tx Delay field stops the RTU from transmitting unsolicited events too frequently e.
g., a new trigger event occurring outside the event notification delay will have to wait this period of time
from the transmission of the previous event, before it will be transmitted. The value of this period may be
between 0 and 65535 seconds.
In conjunction with the APPL LAYER CONFIRM (Event) TIMEOUT, this time also sets the re-
34 SCADAPack E DNP3 Technical Reference
transmission rate for events if the RTU does not receive an application confirm from the DNP3 SCADA
master to its event transmission.
The Quiet Time Delay parameter is the “offline” value for the Min. Unsol. Event Tx Delay time. This value
is applied when the number of timed-out Unsolicited Responses reaches the Unsol. Attempts per burst
count. These parameters allow the RTU to implement “burst-mode” where the RTU retries several times,
waits for an extended time period, and then begins another burst of Unsolicited retries. This behavior is
repeated indefinitely until an Application Layer confirmation is received. The benefit of using this scheme
is that an RTU does not give up trying to notify the Master of a change, but the RTU pauses for extended
period to allow time for “data storms” to clear. See Figure 7.15 33 .
DNP3 Technical 35
For firmware versions prior to 7.80 only, select "No Time (16-bit)" events if the DNP3 static object
configuration for counters is 16-bit. If any points are configured for 32-bit DNP3 static counter objects,
select "No Time (32-bit)".
For firmware versions 7.80 and later, the RTU automatically determines 16-bit or 32-bit event size for
each counter point, based on its configured DNP3 static object data size. Select either "No Time (16-
bit)" or "No Time (32-bit)".
32-bit counter events with no time are sent as DNP3 Group 22 Variation 1 objects.
16-bit counter events with no time are sent as DNP3 Group 22 Variation 2 objects.
The RTU generates events compatible with the analog output point's or analog derived point's DNP3
Static Object Type.
DNP3 Group 42 Variation 3 events for 32-bit analog output data
DNP3 Group 42 Variation 4 events for 16-bit analog output data
DNP3 Group 42 Variation 7 events for 32-bit Short Floating Point analog output data
40 SCADAPack E DNP3 Technical Reference
The purpose of control interlocks is to arbitrate control of physical output points and user RTU points
(digital and analog) between an ISaGRAF user application, and remote DNP3 control requests.
The Remote Control Interlock attribute of a point associates a separate RTU binary point with a point to
be controlled. Remote Control Interlock points can be associated with Physical Digital Output points,
Physical Analog Output points, user Digital points and user Analog points. The remote control interlock
point itself may be a Physical Digital Input point or a user Digital point. The Remote Control Interlock
attribute for each physical or user output point is configured from the property dialog of the corresponding
point as illustrated in Figure 7.17 41 below.
If the Remote Control Interlock point value is zero, then there will be no interlock on the controlled point.
Where a DNP3 control request is received for a point without a defined control interlock point, and the
point is not on an ISaGRAF output board, the point will be controlled successfully. Where a DNP3
control request is received for a point without a control interlock point, and the controlled point is on an
ISaGRAF output board, the DNP3 control will be rejected as described in Section Control Objects 40 .
Where an interlock point is specified, the Remote Interlock Point can be controlled externally via DNP3.
When the interlock point is inactive (OFF) and the controlled point is on an ISaGRAF Output Board,
external DNP3 control requests for the physical output point will be rejected as described in Section
Control Objects 40 . Controls asserted through an ISaGRAF application Output Board control the
physical output point. When the interlock point is active (ON), external DNP3 control of the physical
output point is allowed, and controls through an ISaGRAF Output board will be ignored.
As the Interlock Point is writeable (Remote Control Interlock set to ON), either external DNP3 requests
or an ISaGRAF application may control its state. ISaGRAF control of the interlock point requires a
specific function block call, e.g. WR1BIN to Local_Data. If potentially controlled from an ISaGRAF
application and DNP3, the interlock point should not be on an ISaGRAF output board.
EXAMPLE:
User defined analog point 1000 is controlled via a user application variable attached to an ISaGRAF
Analog Output Board. Analog point 1000 has an associated Remote Control Interlock user digital point
1107. If digital point 1107 is activated, changes to the ISaGRAF variable will no longer control analog
point 1000. Instead, DNP3 controls may be sent to analog point 1000 to change its value.
42 SCADAPack E DNP3 Technical Reference
The Data Processor tracks the period of time that the Interlock binary point is in an Active (ON) state.
Each time the Interlock point is set ON, the timer is restarted. If the timer period exceeds the value of
the interlock “Alarm Timeout” attribute, the RTU generates a DNP3 event on the Interlock user binary
point if the Interlock point has an event class configuration. The DNP binary change event generated will
contain the current state of the Interlock point (ON). The DNP event will be regenerated every 10 mins
thereafter, whilst the Interlock point is still active (ON). When the Interlock point is deactivated (OFF),
the 10 min and “Interlock alarm timeout” timers are cleared and a change event will be generated for the
Interlock point (with point state OFF). An “Alarm Timeout” value of zero indicates no interlock alarm
timeout.
DNP3 Technical 43
ISaGRAF applications and remote-control interlocks may affect the control of RTU points. For more
information see SCADAPack E Data Processing Technical Reference manual.
1. DNP Object - Group 10 Variation 1 – Binary Output
Use this object with a DNP Write function code for controlling one, or multiple binary points. These
points may be physical binary outputs, RTU user points, or system binary points.
The minimum transmitted data size for this object is 8 bits. 8 consecutive binary output objects is
the same data length as 1 single binary output object. Group binary objects together to improve
transmission efficiency. The DNP Write function code does not return a control result. It is
recommended that the result of this operation is check by another means such as feedback of the
controlled state to a binary input point.
2. DNP Object - Group 12 Variation 1 – Control Relay Output Block
Use this object (also known by the acronym CROB) with a Select/Operate pair of control messages,
a Direct Operate, or a Direct Operate No Acknowledge DNP function code. The use of Direct
Operate No Acknowledge is not recommended. This object may control physical binary outputs,
RTU user points, or system binary points.
The RTU supports CROB latch-on, latch-off and trip / close pulse controls. On-time / Off-time /
Count fields are supported for pulse controls. See SCADAPack E DNP3 Device Profile. The
operation of RTU points using a pulse control is further described in SCADAPack E Configuration
Technical Reference manual.
The transmitted data size for each point using this object is 11 bytes. For multiple point operation in a
single transaction, packet sizes can become large when using this object type. For large numbers of
binary controls, use of Binary Output object 10 variation 1 is suggested if available in the master station.
For object 1- variation 1, the returned DNP response does NOT return a control result for each point
controlled.
6.9.3 Analog Control Objects & Floating Point Analog Control Objects
For this object, the returned DNP response returns a control result for each point controlled.
For this object, the returned DNP response returns a control result for each point controlled.
For this object, the returned DNP response returns a control result for each point controlled.
DNP3 Technical 45
DNP3 Object or Variation that is not supported by the RTU. For more information see
SCADAPack E DNP3 Slave Device Profile.
ON = On-line (Default)
[0] On-line / Off-line
OFF = Off-line: “Point Failed” property active
[1] Restart Not used by the RTU. OFF
OFF = Point Communication OK (Default)
[2] Comm Lost ON = Communication Lost: “I/O not responding” point
property active
[3] Remote Forced Data This flag is not supported and is set to OFF.
[4] Local Forced Data This flag is not supported and is set to OFF.
Chatter Filter Used by SCADAPack ER Digital Input Module only
[Binary Objects Only]
Roll-over Not used as per DNP User Group recommendations.
[5]
[Counter Objects Only] OFF
Over-range OFF = Point state normal (Default)
[Analog Objects Only] ON = Analog point value is Over / Under range
Reference Error OFF = Point state normal (Default)
[6]
[Analog Objects Only] ON = A/D Hardware Reference Error
[7] Reserved
See following sections for specific DNP3 object use of status flags:
DNP3 “Binary Input” Data Objects access Physical Digital Inputs, User Digital points, System Digital
points
DNP3 “Binary Output” Data Objects access Physical Digital Outputs, User Digital points, System Digital
points.
DNP3 Technical 49
DNP3 “Analog Input” Data Objects access Physical Analog Inputs, User Analog points, System Analog
points
**The Over-Range analog input status flag is set when either an Over-Range or Under-Range point
property is set. The following table describes the value returned in the DNP object for over-range and
under-range conditions:
Table 7.3: Under and Over Range Conditions for Analog Inputs Types
* FLT_MAX = 3.402823e+38
It is the responsibility of the SCADA master to determine whether an actual over-range or under-range
has occurred based on the DNP3 Over-range flag and point value.
50 SCADAPack E DNP3 Technical Reference
DNP3 Counter Data Objects access Counters on Physical Digital Inputs, User Analog points and
System Analog points whose DNP Object Type attribute is set to a DNP3 Counter Object / Variation.
Roll-over is not supported by the SCADAPack E RTU Counters, as per the recommendation in the DNP3
subset in order to promote counter inter-operability. It is up to the SCADA Master to determine counter
roll-over based on knowledge of previous counter value.
Output Data Objects access Physical Analog Outputs, User Analog points, System Analog points.
DNP3 Technical 51
VT Ports 10 – 19 DNP VT Service Port Functions. Refer to Section DNP3 VT Service Ports (VT
Ports 10 – 19) 53
VT Port 20 Remote Command Line. Refer to Section Remote Command Line (VT Port
20) 52
52 SCADAPack E DNP3 Technical Reference
This section details the maximum “user data” sizes for inclusion in a single VT object (i.e. object 112 or
113). These sizes may determine any fragmentation and subsequent latencies of the request / response
messages.
Virtual Terminal transactions received from the DNP3 protocol for VT port numbers 10-14 will be
forwarded to the appropriately configured serial port (Port 0 through Port 4) as shown below.
Data received on the serial port will be forwarded to the configured DNP3 master station either in a
READ response, a class 3 poll response or an Unsolicited Response (depending on RTU configuration).
The specified VT Port number will determine which serial port the data should be directed to.
NOTE: When using VT transactions with SCADAPack 300E controllers, individual transactions should
be limited to 1K bytes. Data may be lost for transactions larger than this.
VT port numbers for the DNP VT Service ports are as follows:
The following sections details the DNP3 transactions used to transport the “user data” on the virtual
terminal port.
A message originating from the DNP3 Master is referred to as a “VT request transaction”.
A message received on the DNP VT Service Port is referred to as a “VT response transaction”.
Processing of VT Request Transactions, VT Service Port Event Buffers, & RTU Serial Port
Configurations 54
Processing of VT Response Transactions 55
54 SCADAPack E DNP3 Technical Reference
6.12.4.1 Processing of VT Request Transactions, VT Service Port Event Buffers, & RTU Serial Port
Configurations
Enabling / Disabling Unsolicited Responses On Object 113 & VT Response Transaction in DNP3
Unsolicited Response (FC 130) 56
‘Packet’ Determination for Responses & VT Response Transaction in DNP3 Request Response
(FC 129) 58
56 SCADAPack E DNP3 Technical Reference
6.12.4.2.1 Enabling / Disabling Unsolicited Responses On Object 113 & VT Response Transaction in
DNP3 Unsolicited Response (FC 130)
configuration, though if the RTU ‘hears’ from the Master on another interface, it will then direct the
Unsolicited Responses on this “updated” interface.
58 SCADAPack E DNP3 Technical Reference
6.12.4.2.2 ‘Packet’ Determination for Responses & VT Response Transaction in DNP3 Request Response
(FC 129)
This section details any error conditions that may arise as a result of processing VT request
transactions and / or event buffer storage limitations.
The RTU Physical Counter points may also be configured to automatically reset upon restart of a Main
RTU. For more information see the SCADAPack E Data Processing Technical Reference.
DNP3 Technical 61
The RTU firmware supports a maximum of 3 DNP masters as indicated on SCADAPack E DNP
Masters page. The DNP3 Multi-Master firmware is a licensed feature as indicated on the General /
Controller Status page of SCADAPack E Configurator. A sample screen shot is given in Figure 7.18 61
. Only the “Master 1” parameters are applicable if the “Supports Multiple DNP3 Masters” feature is not
licensed.
The Point Data Class common point attribute has been extended such that it is now configurable on a
per-Master basis as illustrated in Figure 7.19 62 . This allows the RTU to present a different “view” of its
non-local points to different DNP Masters. This may have applications in local HMI situations or for
RTUs used for custody transfer.
62 SCADAPack E DNP3 Technical Reference
Some configuration parameters applicable to Multi-master operation, and located on the DNP Masters
page of the SCADAPack E Configurator, are shown in Figure 7.19 62 and further explained below:
DNP Master Address
This parameter configures the DNP3 Node Address of the DNP3 Master (typically the SCADA Master),
to which the RTU may report Unsolicited Responses. A value of zero means “No Master” for Master
sessions 2 and 3.
DNP Master Port
This parameter configures the port on which the RTU sends Unsolicited Responses to the master
station.
Min. Unsol. Event Tx Delay
This parameter sets the minimum time (in seconds) between consecutive Unsolicited Responses sent
from the RTU to the SCADA Master. After an Unsolicited Response has been sent by the RTU, no
Unsolicited Response will be generated until this time period has elapsed.
Quiet Time Delay
This parameter is the “offline” Min. Unsol. Event Tx Delay time. This value is applied when the number of
timed-out Unsolicited Responses reaches the Unsol. Attempts per burst count. These parameters allow
the RTU to implement “burst-mode” where the RTU retries several times, waits for an extended time
period, and then begins another burst of Unsolicited retries. This behavior is repeated indefinitely until an
Application Layer confirmation is received.
Appl Layer Confirm (Event) Timeout
This parameter sets the time (in seconds) that the RTU expects a DNP Application Layer Confirm
message from the master after the RTU has transmitted event data (either in a poll response or
unsolicited response). The “Data-Link Layer Confirm Mode” and “Data Link Timeout” parameters are
used to calculate a minimum value for this timeout. The RTU will automatically apply the minimum
timeout if this parameter is set too low.
DNP3 Technical 63
If an Application Layer Confirm is not received from the master within the timeout period, then the greater
of this value and the Min Unsol TX Delay parameter (see above) is used to delay the transmission of new
unsolicited event data to the master.
DNP Local Address
This parameter allows the DNP Address of the RTU to be configured. The value for Master 1 is the same
setting as that found on the SCADAPack E Configurator Ports page. The values for Masters 2 and 3
allow the RTU to respond to the respective DNP Master address with a different local address. This is
required by some Master stations that can not configure different “logical” RTU’s with the same DNP
address. Zero is a valid entry for these fields.
Unsol. Allowed
This checkbox controls the Unsolicited Response mode (either on or off). When unsolicited response
operation is configured off, the RTU will not send an unsolicited response to the respective Master, but
otherwise responds to Master requests.
DNP3/TCP Keep-Alive
This parameter is implemented as described by the DNP User Group’s “Transporting DNP3 over Local
and Wide Area Network s” standard. It is a configurable Keep-Alive timer is used for each active DNP3 -
TCP socket connection. This configuration parameter specifies how often a DNP3 Link Status test
message is sent across active TCP sockets for the purpose of verifying an active TCP link. This timer
may be set to “0” to de-activate the DNP-TCP Keep-Alive timer.
PPP-TCP/IP processing and communication across local area and wide area networks may introduce
additional delays in transporting DNP3 frames. Increasing DNP3 Data Link Layer and Application Layer
time-outs in DNP3 devices, particularly across PPP links on WAN networks, may need to be
considered.
PPP-TCP/IP processing and communication across local area and wide area networks may introduce
additional delays in transporting DNP3 frames. Increasing DNP3 Data Link Layer and Application Layer
time-outs in DNP3 devices, particularly across PPP links on WAN networks, may need to be
considered.
Using SCADAPack E Configurator, adjust these serial port parameters from the DNP3 Comms page
as illustrated in the figure below.
Figure 7.20: Serial Port Data Link Layer Settings for DNP3
For the RTU Ethernet interface, the following DNP3 Link Layer facilities may be configured. The default
Data Link Layer mode as required by the DNP User Group’s “Transporting DNP3 over Local and Wide
Area Network s” document is Never mode. Using SCADAPack E Configurator, adjust these Ethernet
port settings from the Advanced TCP/P page as illustrated:
66 SCADAPack E DNP3 Technical Reference
This parameter may be set to either “UDP” or “TCP” and sets the default transport protocol used for
conveying out-bound DNP3 protocol frames across LAN/WAN links. Where a DNP3 route table entry
does not contain override information, the setting of this parameter determines whether UDP or TCP
transport is used for out-bound DNP3 LAN/WAN communications. This parameter is configured from
the Advanced TCP/IP Page of the SCADAPack E Configurator.
Mask
* For information on the use of “Connect No.” field for IP networking, see Section DNP3 TCP/IP
Networking 76 (DNP3 Network Forwarding with TCP/IP) 76 .
DNP3 Technical 69
Controlling these system points with a non-zero value will inhibit communications to the relevant DNP3
master station on the next restart of the RTU. The default values for these system points is 0.
If communications to a configured DNP3 Master has been inhibited (via these system points), the RTU
will NOT respond to any DNP3 messages received from that Master address, and the RTU will NOT
generate any Unsolicited Responses for that DNP3 Master.
70 SCADAPack E DNP3 Technical Reference
7 DNP3 Networking
Each SCADAPack E RTU node has a unique DNP3 Node Address, which needs to be set in the RTU
DNP Address field. A screen capture of this field from SCADAPack E Configurator Ports page is
displayed below.
The range of RTU DNP Node Address values is 0-65519. It is recommended, however, that node
address “0” not be used in field SCADAPack E RTUs for the following reasons:
“0” is the default node address when SCADAPack E RTUs are shipped from the factory and
after COLD BOOT initialization
“0” is the assumed node address in the SCADAPack E RTU when MAINTENANCE BOOT mode
is applied. (For more information see SCADAPack E Operational Reference manual)
The SCADAPack E RTU uses value “0” to terminate searches of some its internal lists
Communications to be sent from the RTU to a DNP Master are assigned a communication port by
putting an entry in the “DNP Master Port” field as described later in this section of the manual. Other
communications is directed to RTU communication ports based on routing.
Each DNP3 data-link layer frame contains both a Source and Destination DNP node address. This
addressing scheme allows peer-to-peer RTU communication, and allows DNP data-link layer frames to
be routed.
The SCADAPack E RTU DNP networking functions perform the following:
Pass a DLL frame with this DNP Node destination address to the Transport layer (including
DNP3 Technical 71
The SCADAPack E RTU determines how to route DNP3 data link frames by using a Network Routing
Table. Each RTU can be configured with a network routing table and route DNP packets. Typically,
though, only a small number of nodes in a DNP network are required to route frames. These nodes
usually have two or more DNP3 communication ports, and a unique routing table.
A screen capture of the DNP Node Routing Table located in the DNP Network page of SCADAPack E
Configurator is presented below.
The DNP Network Routing Table is organized in rows. Each row contains one route table entry and
describes one scenario for routing a DNP frame received at this node. Some routes may require
connection numbers.
The Source Port & Source DNP Address fields are not required in many circumstances. Common
values are ANY and 0-65535, respectively meaning the packet may originate anywhere in the network
and be routed by this SCADAPack E RTU. Store & Forward routing in some network architectures, for
example, can make use of the source port & address facilities of the SCADAPack E DNP Network
Routing Table. They can also be used to partition networks and stop RTUs on different networks from
communicating with each other.
The following fields for each route table entry are used:
Destination DNPThe range of DNP addresses to which the frame needs to be destined in order for
Addr: this entry to be valid.
Destination The communication port that this RTU will route the received packet TO if the
Port: source port, source address & destination address fields match the received
packet. It may have any of the following values:
Port 0 ~ Port 8, Ethernet 1, Ethernet, 2
Static routes may require connection numbers in order to connect to the required DNP device.
Connection numbers are required for the following Destination Port configurations
when the Destination Port is an IP Port (e.g. Ethernet or PPP), the Connect No. needs to
include the IP address of the target DNP device*.
when the Destination Port is a Hayes Modem port, the Connect No. field needs to include the
PSTN or GSM phone number.
*The Connect No. for IP Static routes will be updated when a DNP message is received from the target
DNP device. The updated Connect No. will include the IP address, IP transport (TCP or UDP), and the IP
port number.
TIP: If a fixed IP address and port number is required, use a FIXED route (see Fixed Routing
below).
Fixed Routing
FIXED routes are similar to STATIC routes except that the Connect No. field is not updated by the RTU.
FIXED routes can have either an OFFLINE or ONLINE status, though are considered ONLINE when the
DNP3 Technical 73
RTU is determining whether or not to add a DYNAMIC route entry (see Section Dynamic Routing &
Routing Rules (Dynamic Routing) 74 ), i.e. if the status of a route entry is OFF FIXED, a DYNAMIC
route entry will not be added to the DNP Route table.
74 SCADAPack E DNP3 Technical Reference
Status: The status & type of the route entry. The status may have the following values:
The SCADAPack E RTU network layer automatically creates dynamic route entries under certain
circumstances. For example, if an outbound packet is routed to a known RTU, but no static route entry
exists for the return route path then the RTU’s network layer creates an online dynamic route entry for
the return route path. Without this entry the RTU would not normally be able to route the reply back to
the sender. This mechanism is used to route mobile DNP addresses, such as PC based configuration &
diagnostic packages.
Automatic route entry creation will also be used where return route entries for standard static routing are
not configured by the user. It is suggested that return routes are statically entered by the user. Static
routes are processed more efficiently by the SCADAPack E RTU than dynamic routes.
Dynamic route entries are added to the bottom of the route table. New dynamic entries replace older
offline dynamic entries.
A DYNAMIC route entry will not be added to the DNP Route table, if the status of an existing relevant
route entry is OFF FIXED.
Routing Rules
Where multiple route entries exist which may potentially route the same data link packet, the order of
priority in processing the route table is as follows:
1. Route entries are processed in order from top of route table to bottom
2. Route entries with OFFLINE status are skipped in the processing order
3. Entries are processed in order regardless of Static or Dynamic status
To improve routing efficiency and simplify network configurations, Source Address ranges should be as
generalized as possible. Destination Address ranges should target specific sub-network groups.
Received DNP frames are routed according to the following rules:
1. If received frame matches this RTU’s DNP address, the frame is processed.
2. If frame is a broadcast (65535), it is processed locally.
3. Route table is searched for matching source address, source port and destination address. If a
matching route entry is found, frame is forwarded to the destination port.
4. If a frame is received on a local RTU port that is not the designated Master” port, and the route
DNP3 Technical 75
Connect Number
Null terminated string, Maximum 25 characters. Default value = Null.
Represents connection number relevant to destination port.
When routing using DNP3 over IP networks, valid IP Address Formats for “Connect No.” field are:
nnn.nnn.nnn.nnn IP address e.g. 192.168.0.249
only*1:
nnn.nnn.nnn.nnn:T use TCP e.g. 192.168.0.249:T
transport*2
nnn.nnn.nnn.nnn:U use UDP e.g. 192.168.0.249:U
transport*2
nnn.nnn.nnn.nnn: use UDP port e.g. 192.168.0.249:7001U
pppppU number
*1 uses default transport and port number – see Section DNP3 Operation Using TCP/IP 64 .
*2 uses default port number – see Section DNP3 - TCP Keep-Alive Timer 67 (Default DNP3 Port) 67 .
DNP3 Technical 77
The SCADAPack E RTU DNP Network Routing Table is organized in rows. Each row contains one route
table entry and describes one scenario for routing of DNP frames received at this node.
Due to the connection oriented nature of TCP transport, specifying a TCP port number on an individual
“Connect No.” field string is not supported.
RTU routing table parameters may be adjusted dynamically via the SCADAPack E Configurator, or
manipulated by an RTU ISaGRAF application Changes take effect immediately.
Entries may be automatically added to this table by the RTU if a received IP packet is destined for a
known DNP address, but where the return path for a response is via an unknown IP address. Such
entries are known as DYNAMIC route entries and are used when roaming DNP addresses communicate
with static DNP addresses (such as a laptop accessing remote RTUs). While this mechanism can be
used to automatically determine return path communications for responses to request who have a
configured forward path entry, it is recommended that known static return path entries be configured by
the user.
The routing table STATUS field will contain one of the following values:
Static / Online - User entry
Static / Offline - User entry currently inactive
Fixed / Online - User entry (connect no. not updated by RTU – see Section Static & Fixed
Routing 72 [Fixed Routing] 72 )
Fixed / Offline - User entry currently inactive (onnect no. not updated by RTU – see Section
Static & Fixed Routing 72 [Fixed Routing] 72 )
Dynam / - Automatically created entry
Online
Dynam / - Automatically created entry with expired lifetime
Offline
NOTE: Further information about DNP3 IP Associations can be found in Annex "C", IEEE Standard for
Electric Power Systems Communications - Distributed Network Protocol (DNP3), IEEE STD 1815TM -
2012.
This information is presented in addition to the standard status information and an example is shown as
follows. Note that the local DNP3 address in the example is 20:
C:\>status association
RTU Uptime: 0 days, 00:53:04
Reset Counter: 2
Reset Reason mask: 0x000E
Task Watchdog mask: 0x0000
Sys Last Error: 0
Sys Memory Free: 127696196 bytes
Sys Memory Size: 129049772 bytes
DNP IP Associations:
Limit of 100 associations
ASSOCIATION TYPES
Local Associations
Local Associations are associations between two nodes where one of the nodes is the local RTU. If the
DNP3 Technical 79
RTU has multi-master functionality enabled and configured, then the 'local' RTU is any of the configured
DNP3 slaves.
The Protocol Stack communications and connection management configuration for Local Associations
is shown in the figure, below:
Local Associations
Local | Remote| Remote IP | TCP/ | Sock/ | Time | State |
DNP | DNP | address | UDP | Port | since | |
addr | addr | | Type | Num | last msg | |
-------------------------------------------------------------------------
20<->32111 | 172. 20. 1.165 | TCP | -1 | 0:52:16 | INACTIVE |
20<->2000 | 172. 20. 1.165 | TCP | 146 | 0:09:46 | ACTIVE |
80 SCADAPack E DNP3 Technical Reference
Paired Routing Associations are routing associations between two other nodes, neither of which are the
local RTU. The local RTU performs DNP3 routing on behalf of the other RTUs. There are two
associations; one for each transmission direction between the other two RTUs.
The Protocol Stack communications and connection management configuration for Paired Routing
Associations is shown in the figure, below:
Solitary Routing
Solitary Routing Associations are similar to Paired Routing Associations. Solitary Routing Associations
apply to a single pair of nodes that are not the local RTU; one node in the pair is connected serially, and
the other node is connected over IP. The Solitary Routing Association stores the information that is
DNP3 Technical 81
required to communicate with the RTU connected over IP. Association for the serially connected node is
not necessary; the required information is currently stored in the DNP3 Route table.
The Protocol Stack communications and connection management configuration for Solitary Routing
Associations is shown in the figure, below:
Security:
DNP3 Secure Authentication: Not configured
AGA12 Encryption for DNP3: Not configured
Master Key: Not set
C:\>
82 SCADAPack E DNP3 Technical Reference
Related Topics
ASSOCIATION STATES 82
There are a number of Association States that apply to these Association Types:
Local Associations
Paired Routing Associations
Association States
The Association States are listed below:
Active
Pair Pending
This state is valid for paired routing associations, only. The first association of a pair of routing
associations is set to Pair Pending when the second association has not been set up correctly. After
the second association has been set up correctly, the pair pending association changes to an "active"
state.
Inactive
The association has become inactive; typically as a result of the socket being closed. New outgoing
traffic requiring this association, can usually trigger the negotiation of a new socket. This action moves
the association to the "no socket state". Incoming traffic must establish a new socket before being
received and this moves the association to the "active" state.
No Socket
The association has been set up, but is waiting for the TCP/IP stack to successfully negotiate with the
other device to establish a socket. After the socket has been established, the socket moves to the
"active" state.
DNP3 associations are applicable to both Ethernet and PPP connections. During variable connection
states, that is, when a connection is active/inactive over a keep-alive time interval, DNP3 TCP keep-alive
messages are sent only when a TCP connection over IP or PPP is involved.
The DNP3 TCP keep-alive messages are issued on active DNP3 channels according to the configured
keep-alive interval. Typically, there is a one-to-one correspondence between a DNP3 channel and a
DNP3 association.
Under certain circumstances, in addition to these regular keep-alive messages, an association that is
experiencing communication difficulties also triggers the transmission of a DNP3 keep-alive message.
When a DNP3 keep-alive message fails, it triggers the closure of an RTU DNP3 channel and this in turn
DNP3 Technical 83
Related Topics
STATUS ASSOCIATION 78
01 Pulse On
02 Pulse Off
03 Latch On
04 Latch Off
41 Trip (Pulse On)} Trip & Close is used with different DNP point numbers
81 Close (Pulse } as per DNP Control Relay Output Block Minimum Implementation
On)
2 Request not accepted as no previous matching Select was Received to this Operate
3 Request not accepted as there were formatting errors in control request
4 Control operation not supported for this point
5 Request not accepted, as point is already active (e.g. attempting to control output point
when an ISaGRAF application has control of the point)
6 Request not accepted because of control hardware