DNP Slave Export Module
The Distributed Network Protocol Version 3.0 (DNP 3.0) is an open protocol used in the electric utility industry for communications and interoperability among substation computers, RTUs, IEDs, and Master Stations.
An ION device can be integrated into a DNP network through the DNP Slave Import, Export and Options modules. The DNP Slave Export module converts ION data to DNP format, responding to Master requests for DNP data objects and freeze operations. Each of the module’s Source inputs maps to a DNP point, with its associated DNP data objects.
The DNP Slave Export module supports four “categories” of DNP data objects: static, event, frozen static, and frozen event. A DNP static object is the real-time value of a data point, for example, phase A voltage. A DNP event object is generated when the static object exceeds a deadband threshold. A DNP frozen static object represents the value of the static object at the moment when a DNP Master issues a “freeze” command. Similarly, a DNP frozen event object is produced upon the Master issuing a “freeze” command.
The ION-to-DNP data flow created by the DNP Slave Export module is shown below.
There are three DNP groups available: Binary Input, Binary Counter, and Analog Input. You can choose one or more of the above categories within each DNP “group”. For example, you can decide to make static and frozen Binary Input objects available to the DNP Master through one DNP Slave Export module.
The DNP Slave Export module maps ION data to these DNP objects through its StaticObj, EventObj, FrozStaObj, and FrozEvtObj setup registers.
The DNP Slave Export module reads the values on all 4 inputs and makes them available as 4 DNP Static objects. These objects are then available to requests from the DNP Master. Event, Frozen Static, and Frozen Event objects can also be derived from the Static objects, as defined by the module’s setup registers. At least 1 of the 4 inputs must be linked for the module to operate. DNP objects will only be created for linked inputs.
The Freeze input acts internally as though a DNP freeze command were executed on the communications port. The input freezes all objects that are allowed to be frozen according to the module setup.
The BasePoint maps the module’s Source 1 input to a DNP point number. The DNP Master can then read the Static, Frozen, and Event objects associated with this DNP point (Frozen and Event objects inherit their point numbers from the Static objects from which they are derived). Each subsequent Source input, and its related DNP point, is addressable by the appropriate offset from this BasePoint.
DNP does not allow any overlaps in the DNP point numbers within a DNP group (Binary Input/Output, Counter, or Analog Input/Output). If you have already configured other DNP Slave Export modules with the same StaticObj, FrozenObj, and EventObj register settings, you must refer to the previous module’s BasePoint register to extrapolate the appropriate BasePoint number for this new module. If this is your first DNP Slave Export module, use zero for the BasePoint.
This register defines the DNP Static objects’ group to which all the module’s Source inputs are converted. The module provides these Static objects to the DNP Master in a Class 0 poll.
This register defines, for all Source inputs, whether or not a DNP Event object can be created for the Static object chosen above. A DNP Event object is generated when the Static object exceeds a deadband threshold, which is specified in the Deadband setup register. The DNP Master can retrieve these Event objects in a Class 1, 2, or 3 poll.
This register is the absolute value by which a DNP Static object can change before a DNP Event object is created. Full scale is defined by the DNPZero and DNPFull setup registers. Note that this register is only applicable if Event objects are enabled.
This register defines, for each Source input, whether or not a DNP Frozen Static object is generated when the DNP Master issues a “freeze” command. (The Master can obtain these Frozen Static objects in a Class 0 poll.)
You can only choose a Frozen object if you have chosen the Counter or Analog Input object for the StaticObj register (a “Frozen Binary input” is not defined in DNP).
This register defines, for each Source input whether or not a DNP Frozen Event object is generated when the DNP Master issues a “freeze” command. (The Master can obtain these Frozen Event objects in a Class 1, 2, or 3 poll).
This register specifies which Class the Master must poll to retrieve the DNP Event objects and DNP Frozen Event objects from this module. Your options are: Class 1, 2, or 3.
The Scaling register determines whether or not the DNP Slave Export module scales its data for the DNP Master. If Scaling is set to on, the ION Zero, IONFull, DNPZero, and DNPFull setup registers are used to scale the data; if Scaling is set to off, no scaling is performed, and the values in the IONZero, IONFull, DNPZero, and DNPFull registers are ignored.
These registers specify the input range for all Source inputs. Any value less than the IONZero setting will be treated as an ION Zero value, and any values exceeding the IONFull value will be treated as an ION Full value.
These registers specify the output range of the data for the DNP Master. This ensures that the Master will receive valid data even if, for example, the values at the Source inputs are 32-bit, and the Master can only handle 16-bit values. The values for the DNP Master are linearly interpolated from the input range specified in the IONZero and IONFull registers.
This output pulses after the freeze input has pulsed and the freeze has completed internally. A typical use case is to connect this output to a feedback module and use the feedback module to reset a data source once that data has been frozen.
ION events are recorded in this Event output register, including setup register changes. Possible ION events include changes to input links, setup registers or labels (all with a priority of 10).
The Event output register stores the following information for each ION event: time stamp, event priority, event’s cause, event’s effect, and conditions associated with the event’s cause and effect.
This Event output register should not be confused with DNP event objects.
Responses to special conditions
The following table summarizes how the DNP Slave module behaves under different conditions.
|Condition||Response of DNP Object|
|If the Source input is not available||The static value will be zero.|
|After the module is re-linked or its setup registers are changed||All DNP event object buffers are cleared and Frozen Static objects are set to 0.|
|Module is deleted||All DNP event object buffers are cleared and Frozen Static objects are set to 0.|
|When the device is powered-up||All DNP event object buffers are cleared and Frozen Static objects are set to 0.|
Detailed module operation
The table below is a summary of the DNP functions supported by the DNP Slave Export module.
|DNP Slave Response Functions|
|Confirm||Message fragment confirmation used in IED responses. No response to this message is required.|
|Response||IED responds to a Master request message.|
|DNP Master Transfer Functions|
|Confirm||Message fragment confirmation used in Master requests. No response to this message is required.|
|Read||Master requests particular objects from IED; IED responds with requested objects that are available.|
|DNP Master Freeze Functions|
|Immediate Freeze||IED copies the specified objects to a freeze buffer and responds with status of the operation.|
|Immediate Freeze -No Acknowledge||IED copies the specified objects to a freeze buffer, but does not respond with a status message.|
|Freeze and Clear||IED copies the specified objects to a freeze buffer, then clears the objects and responds with status of the operation.|
|Freeze and Clear -No Acknowledge||IED copies the specified objects to a freeze buffer, then clears the objects but does not respond with a status message.|
|DNP Master Time Synchronization Functions|
|Delay Measurement||Master requests data from the IED in order to calculate the IED’s communication delay and use it for time synchronization. The IED responds with the Time Delay object.|
DNP Point Numbering
In DNP, you address data with “point” numbers. Each Source input corresponds to a DNP point number. DNP requires a contiguous address range, with no overlaps in the point numbers within a DNP group, so if you use more than one DNP Slave Export module with the same DNP object settings, you have to keep a record of the last point number you used in the previous DNP Slave Export module and enter that number plus 1 in the subsequent module’s BasePoint setup register.
Four setup registers (IONZero, IONFull, DNPZero, and DNPFull) may be used to scale an Source input range to an output range for the DNP Static Object. The following diagram shows how the scaling operation works.
Any Source input values below 5000 will be scaled to the DNP Static Object as a value of 50; any reading in excess of 200 000 will be scaled to 2000.