DNP Slave Options Module

The DNP Slave Options Module allows you to specify options for supporting the DNP protocol on ION meters. It also provides information about the availability of event buffer space.

Module icon

Overview

Each DNP Slave Options Module’s settings apply to one session. A session consists of all incoming and outgoing DNP Master/Slave traffic on one of the meter’s communications ports. Each ION device can have a maximum of three concurrent sessions; one for each serial port, up to three using Ethernet, or a combination of both. Combinations available will depend on the meter’s communications options.

The Distributed Network Protocol Version 3.0 (DNP 3.0) is an open protocol used in the electric utility industry for communications and inter operability among substation computers, RTUs, IEDs, and Master Stations.

An ION meter can be integrated into a DNP network through the ION DNP Slave Import, Export and Options modules.

Complete documentation of the DNP protocol is available through the DNP User’s Group (on the web at www.dnp.org). This documentation includes the Data Link Layer Protocol Description, Transport Functions, Application Layer Protocol Description, and Data Object Library, and DNP 3.0 Subset Definitions.

NOTE: The registers and settings available in this module depend on the device or node you are configuring, as well as its firmware and template versions. Not all registers or settings are available on all devices or the Virtual Processor, and labels may vary.

Inputs

The DNP Slave Options Module has no inputs.

Setup registers

The setup registers of this module define settings that apply to all DNP Slave Import and DNP Slave Export Modules for a session. The available setup registers vary between ION products; refer to your product documentation for available setup registers, register bounds, and factory default information. Each of the setup registers described below are listed by DNP group.

Binary Inputs

BinInStatic (binary input static)

This register defines the variant that is returned in a class 0 poll for all Binary Input Static objects for a session. (These objects are created using DNP Slave Export Modules.)

BinInEvents (binary input events)

This register defines the variant that is returned in a class 1-3 poll for all Binary Input Event objects for a session. (These objects are enabled by configuring DNP Slave Export Modules.)

BinInEvDepth (binary input event depth)

This read-only register defines the maximum number of Binary Input events that can be stored for a session. When this buffer fills up, new events overwrite the oldest events.

Binary Counters

BinCntStatic (binary counter static)

This register defines the variant that is returned in a class 0 poll for all Binary Counter Static objects for this session. (These objects are created using DNP Slave Export Modules.)

FrzCntStatic (frozen counter static)

This register defines the variant that is returned in a class 0 poll for all Frozen Counter Static objects for a session. (These objects are created using DNP Slave Export Modules.)

FrzCntEvents (frozen counter events)

This register defines the variant that is returned in a class 1-3 poll for all Frozen Counter Event objects for a session. (These objects are enabled using DNP Slave Export modules.)

FrzCntEvDepth (frozen counter event depth)

This read-only register defines the maximum number of Frozen Counter events that can be stored for a session. When this buffer fills up, new events overwrite the oldest events.

CntChangeEvents (counter change events)

This register defines the variant that is returned in a class 1-3 poll for all Counter Change Event objects for a session. (These objects are enabled using DNP Slave Export Modules.)

CntChangeEvDepth (counter change event depth)

This read-only register defines the maximum number of Counter Change events that can be stored for a session. When this buffer fills up, new events overwrite the oldest events.

Analog Inputs

AIStatic (analog input static)

This register defines the variant that is returned in a class 0 poll for all Analog Input Static objects for a session. (These objects are created using DNP Slave Export modules.)

FrzAIStatic (frozen analog input static)

This register defines the variant that is returned in a class 0 poll for all Frozen Analog Input Static objects for a session. (These objects are created using DNP Slave Export Modules.)

FrzAIEvents (frozen analog input events)

This register defines the variant that is returned in a class 1-3 poll for all Frozen Analog Input Event objects for a session. (These objects are enabled using DNP Slave Export Modules.)

FrzAIEvDepth (frozen analog input event depth)

This read-only register defines the maximum number of Frozen Analog Input events that can be stored for a session. When this buffer fills up, new events overwrite the oldest events.

AIChangeEvents ( analog input change events)

This register defines the variant that is returned in a class 1-3 poll for all Analog Input Change Event objects for a session. (These objects are enabled using DNP Slave Export Modules.)

AIChangeEvDepth (analog input change event depth)

This register defines the variant that is returned in a class 1-3 poll for all Analog Input Change Event objects for a session. (These objects are enabled using DNP Slave Export Modules.)

Analog Outputs

AOStatic (analog output static)

This register defines the variant that is returned in a class 0 poll for all Analog Output Block objects for a session. (These objects are created using DNP Slave Import modules.)

Control Options

SelectTimeout

The SelectTimeout setup register specifies the Select Before Operate time-out period in seconds, for a session.

Communication Options

TimeSyncPeriod

This register defines the number of seconds between device requests for time syncs. It allows the device to control when it is time synched by the Master.

NOTE: The Clock module’s TimeSyncSource register determines the source for meter time syncs. When the source for time synchronization (i.e. COM1) matches a communication port with a DNP Slave Options module attached, the meter will use any time sync messages received to time sync the meter. If the source for time sync is not for the current port, the meter will still request a time sync but will ignore the time sync message. For more information on time synchronization see the Clock Module section.

ALFragSize (application layer fragment size)

This register defines the maximum application layer fragment size, in bytes, that the device can send to the Master for this session. This register is useful for minimizing data errors on noisy lines. It does not affect the total size of the device’s response message.

DLAck (data link acknowledge)

This register determines when the device will request data link layer acknowledgements from the Master for this session. If set to always, the device will always request data link layer acknowledgements. If set to multipacket only, the device will only request acknowledgment messages when sending multipacket responses. If set to never, the device will never request data link layer acknowledgments for this session.

NOTE: In DNP TB1998-04002, “DNP Confirmation and Retry Guidelines”, it is recommended that DNP Acknowledgment NOT be used; use App Layer Confirmations instead.

DLTimeout (data link time-out)

This register determines how long the data link layer waits for an acknowledgment message from the Master for this session.

DLNumRetries (data link number of retries)

This register specifies how many times the device tries to re-send a data link layer packet after failing to receive a data link layer acknowledgment from the Master for this session.

CommPort (communications port)

This register defines which communication port this DNP Slave Options module’s settings will be applied to.

NOTE: Only one DNP Slave Options module can be assigned to each serial communication port.

ApplCnfrm (application layer confirmation)

This register determines if the device will request that the application layer response be confirmed or not for this session. The default is to confirm only event data responses. The other option is to confirm all application layer responses.

MasterIPAddr (master IP address)

This register defines the IP address of the DNP Master that will be allowed to connect to the session. This allows different configurations to be used for different Masters over TCP/IP. Allowed values are a valid IPv4 or IPv6 address, none or an empty string. none and an empty string indicates that any IP address can connect to this session. The default is none.

NOTE: If the MasterIPAddr register is set to none or blank (allowing any Master to connect to this session), then it is not guaranteed what state any outstanding events will be in. To be certain of a consistent state, set this register to the IP address of the SCADA meter.

DLAddrForEthernet

This register defines the DNP Data Link address for Ethernet connections. The range is 1–65519.

InactivityTimeout

This register defines how long the meter waits before timing out after no DNP traffic on the port. The range is 0-86,400 seconds. Zero (0) disables the timeout. This timeout only applies if CommPort (communications port) is set to ethernet.

Unsolicited Response Options

All unsolicited response registers are inactive unless the UnsolEnable register is enabled.

UnsolEnable (unsolicited response enable)

Enables or disables unsolicited responses for this session. Currently, the only option is disabled.

UnsolClassMask (unsolicited class mask)

This register defines which event classes can trigger an unsolicited response for this session. The default is all classes.

UnsolMaxRetries (unsolicited response maximum retries)

This register defines the number of unsolicited response retries for this session before the device stops trying. The range is 0-100 attempts; default is 1. The value of zero indicates infinite retries.

NOTE: In order to minimize data collision and communication conflict, each session picks a random wait period between 1 and 10 seconds. This value determines how long the meter waits after an event is created before the first unsolicited response is attempted. This helps prevent multiple devices from responding simultaneously if any system-wide event occurs.

UnsolRetryPeriod (unsolicited response retry period)

This register defines the time period between retry attempts for this session. The range is 1-864,000 seconds (10 days); default is 60.

UnsolDestAddress (unsolicited response destination address)

This register defines the DNP Master unit ID address that the unsolicited response will be sent to for this session. The range is 1-65,519; default is 3.

Output registers

When a DNP Master successfully reads any DNP Event object from the device, the Event object will be cleared from its associated buffer and the capacity of that buffer will increase.

BinInEv (binary input event)

This register indicates the current capacity of the Binary Input Event Object buffer for this session. It specifies how many DNP Event objects can be stored before overflow occurs. When the buffer is full, this register will run into negative numbers to indicate how many DNP Event objects have been overwritten.

FrzCntEv (frozen counter event)

This register indicates the current capacity of the Frozen Counter Event Object buffer for this session. It specifies how many DNP Event objects can be stored before overflow occurs. When the buffer is full, this register will run into negative numbers to indicate how many DNP Event objects have been overwritten.

CntChangeEv (counter change event)

This register indicates the current capacity of the Counter Change Event Object buffer for this session. It specifies how many DNP Event objects can be stored before overflow occurs. When the buffer is full, this register will run into negative numbers to indicate how many DNP Event objects have been overwritten.

FrzAIEv (frozen analog input event)

This register indicates the current capacity of the Frozen Analog Input Event Object buffer for this session. It specifies how many DNP Event objects can be stored before overflow occurs. When the buffer is full, this register will run into negative numbers to indicate how many DNP Event objects have been overwritten.

AIChangeEv (analog input change event)

This register indicates the current capacity of the Analog Input Change Event Object buffer for this session. It specifies how many DNP Event objects can be stored before overflow occurs. When the buffer is full, this register will run into negative numbers to indicate how many DNP Event objects have been overwritten.

Event

ION events for this session are recorded in this output register. Possible ION events include changes to setup registers or labels (both which have a priority of 10).

NOTE: This ION Event output register should not be confused with DNP event objects.

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.

Responses to special conditions

The following table summarizes how the DNP Slave Options Module behaves under different conditions:

ConditionResponses
Module goes online.All DNP Event buffers and Frozen Static objects are cleared, depths reset to defaults.
Event buffer is full.Oldest events are overwritten by new events.
When the device is started or powered-up (either the first time, or after a shut-down).All DNP Event buffers and Frozen Static objects are cleared, depths reset to defaults.