GE Intelligent Platforms > Support >  Drivers - General > DG309
DNP Distributed Network Protocol 3.0 v7.xx
Type File Name Date Posted Size Description

There are files attached to this record that may require you to login.

 


Description

ProductVersionModule
HMI/SCADA - iFIX All All

Code : DNP
Vendor : GE Intelligent Platforms
Hardware Manufacturer : Various
Notes : Available for use with iFIX 4.5, iFIX 5.0, iFIX 5.1, iFIX 5.5, or iFIX 5.8.

Latest Version

7.20L

Supported Operating Systems

Windows Vista Business Edition (with Super Admin Privileges)
Windows 7 (32-bit and WoW64)
Windows Server 2003, 2008, or 2012
Windows 8.1 Professional (32 and 64-bit)

Supported Devices

Any RTU compliant with the DNP 3.0 protocol

General Features

Up to 200 channels and 1000 devices
Supports DNP 3.0 to level 3 for both Requests and Responses
Sequence of Events (DNP Level 3 only)
Report by exception (DNP Level 3 only)
Slave supported DNP Levels 1, 2, and 3
Internet Protocol – both UDP and TCP
Serial (600 – 115200 baud)
Radio support includes Flow control; Push to Talk control; Pre and Post-transmission delay setting; configurable retries and timeouts
DCOM is not currently supported – the driver must run locally to the hardware

Devices and Channels

Separate configuration of devices and channels
Each device can be connected to one or more channels
Each channel can be connected to one or more devices
Prioritization and automatic fail over when multiple channels are available

Sequence of Events

SOE Level 3 time mode, supporting Local and UTC time
Each and every SOE detected and written to the SOE log file, time stamped to 1msec using time captured by the I/O device
Includes time synchronization
Full support for SOE event display in iPower SCADA

Momentary Change Detect

Momentary changes (e.g. closed>open>closed) can be captured and passed on to the SCADA system regardless of master polling cycle speed.
Each momentary change is time stamped as it was captured by the I/O device providing an accurate record of the change.

Configuration

“On the fly” configuration without requiring system restart

Logging

Communication monitoring in configuration window and to file
Logging of raw binary data (data link) and decrypted data (application layer)
Comprehensive statistics for both devices and channels
Separate SOE log file
All statistics are available in iFIX

Training Videos

To download the training videos:
Visit the Catapult web site: www.catapultsoftware.com
Register and/or log in
Navigate to Products / DNP3 / Downloads

Revision History

Reason for 7.20 Service Pack release on 12/18/2008:
* Initial release of the driver.

Reason for 7.20a Service Pack release on 09/09/2009:
* Correct parsing if class 1/2/3 and class 0 polls return different obj/vars.
* Correct installation issues on non-English operating systems when setting DCOM permissions..
* Signal conditioning support for negative linear values.
* Correct status display on points viewer status when comms offline.
* Correct softkey license sizes.
* Clear control queue if device disabled.
* Change default secondary poll rates.
* Send integrity poll when device goes (i) online, or (ii) enabled.
* Handle communications with mutli-dropped devices on single serial port.
* Suspend class polling if device offline.
* Change millisecond (ms) configuration display settings to second (s).
* Correct timestamps on received objects.
* Option for non-standard control syntax (ACS).
* Support for CLOSE/TRIP control syntax.
* Support for secondary poll rates.
* Points tool interface rewritten extensively to provide dynamic display of all monitored points.
* Change keep alive to utilize link status, resetting timeout on any outgoing message.
* Correct service registration error on non-English operating systems.
* Correct sequence number handling.
* Handle multiframe messages (MTU 1500).
* New right-click menu option for sending class polls on devices.
* Correct sequence number on confirmation messages.
* Correct IP startup for multiple IP devices.

Reason for 7.20b Service Pack release on 09/18/2009:
* Resolve issue where digital/analog input values can be overwritten by output values returned by a class 0 poll.
* Include remote port number when checking for duplicate IP addresses.
* Align class poll sync times to midnight.

Reason for 7.20c Service Pack release on 06/21/2010:
* Fixed selection of active channel based on priority and status.
* Implemented intermittent check for active channel when using multiple channels per device.
* Installation updates including removing driver shortcuts when uninstalled.
* Fixed handling of g51v1 messages.
* Fixed initialization of control queue size.
* Fixed initialization and configuration of channel buffers.
* Implemented configuration of SEND and RECEIVE buffer sizes for serial channels.
* Implemented support for analog & counter SOEs.
* Support for g50v1 time sync requests.
* Definition of SEND and RECEIVE buffer sizes for IP connections.
* Send Time Sync and Integrity Poll messages on startup, by default.
* Implemented frozen analogs and counters.
* Implemented exception processing.
* Improvements on socket reconnection.
* Fixed installation issues.
* Updated installation to include multimedia training.
* Fixed sync time drift.
* Fixed handling of signed integers for LIN signal conditioning.
* Fixed excessive CPU usage.

Reason for 7.20d (7.2.0.49) Service Pack release on 12/12/2011:

v49 -
* Renamed serial and TCP libs to avoid potential conflicts with v7 drivers
* Correct problem when issuing channel statistics reset

v48 -
* Changed default startup option for new devices to Integrity Polls only (removed Time Sync startup option)
* Added 300 and 600 bps in available baud rates for serial and modem ports
* Removed references to FIXIOUser system account
* Added ‘Start-up Sequence’ as an option for the ‘Confirm Connect Using’ setting
* Implemented a separate sync time parameter for the start-up state of a device
* Fixed issue with polling from database points (60.1.0.RD)
* Fixed issue with DNPDIAG "ENABLED" control
* Fixed time stamps for SOE messages (both UTC and LOCAL)
* Fixed issue with driver not exiting after SCADA or OPC shutdown
* Fixed issue with driver crash on SCADA exit
* Modified installation procedure to allow use of default options
* Improved documentation, added a 'Getting Started' page

v47 -
* Fixed handling of SOE time stamps when device time mode is UTC
* Fixed handling of g50v1 objects and PC time
* Fixed handling of remote control thread exit
* Fixed reset of confirm state flag on message timeout

v46 -
* Fixed sending of RESET_LINK_STATES message after device start-up or recovery from failure
* Channels now fail over after the given disconnect timeout has elapsed
* Default Confirm Mode is now NEVER to make it consistent with the default behavior of the DNP driver
* Changed definition of DnpDiag Device Status point - A Start-Up/Confirm state is now considered as Offline
* Fixed driver termination when running as a service
* Setup utility now checks if the driver has already been installed prior to running the Microsoft redistributables

v45 -
* Implemented a number of improvements to the opening and handling of serial ports in order to make it more standard;
* Fixed issue with NIO abnormal termination when handling variant objects;
* Mini-dump files are now generated to the specified log folder by default;
* Fixed processing of object 11 messages;
* Fixed processing of unsupported objects to correctly handle multi-frame messages;
* Fixed processing of CONFIRM option (ALWAYS) to properly handle data link frame flags
 
v44 -
* Implemented 2 new flow control options: CTS & DCD collision avoidance;
* Fixed RTS/DTR option for serial port PTT controls;
* Implemented new connection option: Disconnect Timeout;
* Fixed reset of point quality for offline devices;
* Fixed class poll stacking issue;
* Fixed memory leak when receiving unsolicited messages;
* Improved log messages for serial port connection process;
 
v43 -
* Fixed issue with unsent DataLink Layer CONFIRM messages;
* Simplified processing of DNP frames; Fixed DNPDIAG stat items to use new address formats;
* Changed default AppLink timeout to 30s, DataLink timeout to 10s;
* Fixed issue with processing multi-fragment applink messages;
* Fixed driver stoppage with a timing issue where messages can be sent to a NULL link.

v42 -
* Implemented new address format for PULSE controls;
* Fixed handling of block controls;
* Disable PTT delay fields when no PTT option is defined;
* Improved object pointer handling by Implementing queue objects as dynamic objects;
* Improved log files, adding in decimal translations for displayed hex numbers;
* Removed OnDemand and PollOnce options for DNPCIM

v41 -
* Improved the start-up process by (a) sending confirmation messages, (b) fixing interlock issues, (c) allowing the start-up process to continue on an EVENT_BUFFER_OVERFLOW error;
* AppLink layer messages are now sent only if a device has a connected channel;
* Fixed interlocks on START/STOP commands;
* Fixed the handling of incomplete frames;
* Implemented correct processing of FIR/FIN flags for the AppLink layer;
* Driver now reconnects immediately on receipt of unsolicited messages;
* Driver now allows manual class polls during startup

v40 -
* Channel failure now updates device and point status properly;
* Implemented new serial port lock mechanism based on DataLink timeout;
* Startup messages now added as queue rather than stack messages;
* Port locks now preserved on unsolicited messages;
* Added new startup option 'Startup on Failure';
* CONFIRM messages no longer checked for control queue size;
* Modified DNP frame logs to use decimals for addresses, plus OK/FAIL indication for CRC

v39 -
* Fixed handling of User Access Control for Windows; Updated install package to include new modules

v38 -
* Correct handling of obj 51.
* Ensure immediate messages snet regardless of device state;
* Correct issues when deleting or renaming devices/channels/connections;
* Corrected issue with CIMP database points not updating;
* Tidy relationship between channel and device offline status;
* Fix memory leak in DNP client;

v37 -
* Correct stop/start operation;
* Implement data link timeout and change secondary poll rate mechanism;
* Purge application queue on device failure;
* Support for diagnostics through to CIMP;
* Correct UI problem with device level incorrectly changing;
* Implement new device state, especially startup handling;
* New connection settings including reconnection types;

v36 -
* Provide better options to handle disconnection of remote user;
* Provide connection information in DNP tray;
* Correct address initialization parsing (GE Ref #1-1029787041);
* CIMP devcom interface;
* Move global options to logical place in UI system tree;
* Utilize sub-menus in system tree right click menu.

v35 -
* Separate UI - TCP connection from DNPdrv.exe to DNPclient.exe;
* Handle loading new configuration files whilst running;
* Support for options to ignore automatic class poll replies;
* Separate server ports for TCP dual mode;
* Additional data link confirmation settings;
* Support for obj 51, 52 time sync objects;
* Support for obj 70 file id, obj 82 device profile, obj 90 app id;
* Extended class poll, device command user options;
* Global stop/start commands;
* Renamed device/connection settings to clarify usage;
* Updated statistics tab.

v34 -
* Improved socket connection speed on startup.

v33 -
* Fix memory leak;
* Properly handle unsolicited messages;
* Pass DNP quality bits through to OPC/NIO interface;
* Support for buffered SOEs (configurable queue size);
* Improved floating point support.

v32 -
* Properly process timesyncs from devices;
* Configurable queue sizes.

Reason for 7.20e (7.2.0.50) / 7.20f (7.2.0.51) Service Pack release on 03/27/2012:

v51 -
* Modified the CIMPLICITY interface to support a value of 8-15 for address offsets on Boolean points v50 -

v50 -
* Implemented support for setting/reading the class poll scan rates using database blocks
* Implemented a new interface to MOA to help identify when a point is added to CIMPLICITY after initialization
* Removed the timeout condition from the device STARTUP states to avoid unnecessary timeouts
* Simplified the message-processing algorithm by removing the ControlQueue
* Fixed issue with the correct recognition of .TRIP/.CLOSE digital controls
* Fixed an issue with a start-up message timing out even though it hasn't been sent through the channel yet
* Fixed the check for device link status on start-up, now checks only if the channels are enabled
* Fixed fault with DNP3 client termination when handling around 200 channels and 1000 devices
* Fixed an issue with licensing, where the actual number of licensed points is one less than the license count
* Implemented code to ignore $[GROUPNAME] prefix in DNP3 addressing (required for Cimplicity OPC operations)

Reason for 7.20g (7.2.0.52) Service Pack release on 05/24/2012:

v52 -
* Changed handling of RESET_LINK_STATES messages from TOP priority to NORMAL priority messages, which allows RESET_LINK_STATES to be handled by the half-duplex mechanism for serial ports, as well as allow it to be processed in a first-come, first-served basis
* Changed implementation of "Delay After Disconnect" option to use
* GetTickCount() rather than Sleep().
* Added "Enable on Start-up" options for Channel and Device settings
* Fixed issue with handling of dnp_soe.log file (dnp_soe.log is deleted if the maximum number of SOE logs was reached). 
* Fixed issue where controls to DNPDIAG ENABLED tag were not working
* Fixed issue where RESET_LINK_STATES message were timing out prematurely
* Fixed issue where NR messages were getting checked for timeouts
* Fixed issue with quality flag always returning GOOD in Cimplicity interface
* Fixed processing of RECV stats for READ and WRITE operations
* Fixed processing of TimeSync and Stat.Reset controls for DNP Diagnostic points

Reason for 7.20h (7.2.0.56) Service Pack release on 01/30/2013:

v56-
* Implemented support for CIMPLICITY persistence functionality
* Implemented support for native CIMPLICITY server redundancy functionality
* Improved efficiency of reporting updates to the SCADA by pushing updates from DNP to the NIO DLL (previously NIO had to do an additional poll of the DNP driver)
* Implemented new Application and Data Link layer message processing routines (using proper state tables defined in the DNP protocol documentation)
* Implemented support for more than one DNP port on CIMPLICITY (DNP driver now supports a maximum of 10 ports in a CIMPLICITY Project)
* Implemented new global UI options to enable/disable support for CIMPLICITY persistence and server redundancy functionality
* Implemented new UI option for connections: Data Link Retries, defined as the number of times a failed data link message is retried before discarding it
* Fixed issues with processing of analog input and output values (issues with variations used in reporting values)
* Fixed issue with processing of points that are defined dynamically
* Fixed issue with inconsistent display of quality flags on the Points Viewer and the received data
* Fixed issue with class 0 polls always getting sent after receiving an UNSOLICITED message
* Fixed issue with class poll settings are not put into effect until after the driver is restarted
* Modified the start-up settings for devices - a class 0 poll cannot be disabled unless persistence is enabled, and unsolicited messages are always sent if supported
* Modified the check for changed values in the message decoder functions; a value change must exceed a defined tolerance in order to be processed
* Added a new configuration file option for devices (ChangeTolerance) used in conjunction with the previous modification
* Changed the installer utility to allow integration of the Configuration Manager into the CIMPLICITY Workbench

v55-
* Implemented new device diagnostic tag "LastResponseTime" which returns the date and time of the last application layer message received
* Implemented support for variable pulse duration in the DNP addressing format
* The driver now retains the time stamp for current values after recovering from a device failure

v54-
* Improved efficiency of Message Log display in the Client Configuration window by only sending messages when the Messages Log window is displayed
* Correct race condition when attempting to reconnect to invalid IP address
* Modified initialization of tags to allow iFIX database manager to retain the I/O address for tags with non-existent devices
* Fixed processing of ONLINE quality flag for counters and analogs
* Fixed handling of time sync controls from the iFIX database

53-
* Fixed issue where device is unable to recover from start-up state when RESET_LINK_STATES message fails
* Modified "Confirm Connect Using" Start-Up option to remember what state it's in if it fails during confirmation

**04/09/2013 - reposted to update release notes. No functional changes

Reason for 7.20i (7.2.57.4) Service Pack release on 04/30/2013:

 v7.20.57.4-
*  Disabled FREEZE commands from device right-click menu (until fix is implemented)
* Fixed issue with freeze commands to specified index sending to all data points instead
* Fixed processing of Frozen analogs and counters in Cimplicity (were occupying the same space as Analogs and Counters)

 v7.20.57.3-
* Modified use of start-up sync time option for devices: delay is now applied before the first REQUEST_LINK_STATUS message
* Implemented new options to check for Internal Indications from outstation responses. Receiving a matching disabled flag in a response discards that response
* Implement new Advanced Device Setting to ignore NEED_TIME requests

 v7.20.57.2-
* Added check for FixIOUser account using GE-supplied tool (DSMT.exe) to the installation process

 v7.20.57.1-
* Fixed issue in Cimplicity where invalid points taken out of manual control were made valid
* Fixed issue in Cimplicity where two points with the same address retain good status even if the driver is stopped
  
 v7.20.57.0-
* Implemented new statistical and diagnostic tags for devices
* Implemented new options processing fatal internal indications in outstation responses
* Implemented handling of variation 0 addressing format
* Fixed issue with counters getting stored as analogs
* Fixed issue with processing of initial values when no device communications are present

Reason for 7.20j (7.2.58.1) Service Pack release on 06/05/2013:

v7.20.58.1-
 * Tidy points viewer reporting when number of licensed points exceeded

 v7.20.58.0-
* Fixed issue with address 60.x.0.RD causing the database interface to crash
*  Ignore messages from devices with non-matching master addresses.

Reason for 7.20k (7.2.60.3) Service Pack release on 10/01/2013:

v7.20.60.3-
* Fixed issue in Application Layer processing of invalid function codes
* Fixed issue introduced v7.20.59.2 handling merged control requests

v7.20.60.2-
* Fixed issue introduced v7.20.60.0 handling non-existent serial channels
  
v7.20.60.1-
* Implemented graceful shutdown of TCP/IP sockets

v7.20.60.0-
* Moved half-duplex option from serial channel to advanced channel configuration, so can now apply to all channel types 
  
v7.20.59.2-
* Check for valid APDU length before processing an AppLayer message
* Improved the search algorithm of the driver image table in the NIO dll
* Fixed handling of ACK responses for UNSOLICITED messages
* Convert values retrieved from a device to the expected type as given by the datablock address in SCADA
* Placed additional interlocks on handling of channel frame buffer to prevent data collision
* Fixed handling of keep alive timer
* Removed restrictions on start-up messages.  i.e. now allows enable/disable of Start-up Message options.
* Add two new options to Advanced Device Settings: Reset Quality of Tags on startup (if Enabled, point quality flags for a device are cleared when the device is enabled)
* Process Unsolicited on startup (Allows processing of unsolicited messages before the first class 0 poll)
* Improved the text on various log messages

v7.20.59.1-
* Removed restrictions on forced messages for start-up

Reason for 7.20L (7.2.62.7) Service Pack release on 08/18/2014:

v7.20.62.7-
* Fixed SELECT/OPERATE procedure to ensure these messages are sent in succession, without possible intervening messages
* Fixed issue with secondary channels for a device not sending keep-alive messages
  
v7.20.62.6-
*Fixed issue with channels remaining online on start-up even if channels are not connected
  
v7.20.62.4 / v7.20.62.5-
* Various improvements on diagnostic logging
  
v7.20.62.3-
* Fixed issue with controls not working on Cimplicity 9.0
  
v7.20.62.2-
* Fixed issue with driver showing valid data even if the device is offline
  
v7.20.62.1-
* Fixed memory leak caused by the driver in the iFIX Database Manager application
  
v7.20.62.0-
* Changed configuration file format from INI to CSV
* Implemented support for Cimplicity 9.0
* Implemented new diagnostic addresses to enable/disable all controls to a device
* Implemented new diagnostic addresses to enable/disable scheduled class polling
* Implemented new diagnostic addresses to support PLA functionality
* Implemented new configurable setting to control behaviour if a checkback point is offline
* Implemented support for TCP host names when defining IP addresses
* Returned support for iFIX signal conditioning functions
    
v7.20.61.8-
* Implemented new WARMSTART/COLDSTART diagnostic addresses to allow sending these controls directly from the SCADA display
* Fixed issue with driver binding to an unused port even if a specific port was given
  
v7.20.61.7-
* Fixed issue with DNP driver unable to start when unable to find a valid config file
  
v7.20.61.6-
* Fixed incorrect handling of values when copying from the driver to the NIO dll
* Fixed incorrect parsing of g32v7.20.6 messages which was giving invalid error messages
  
v7.20.61.5-
* Fixed issue where a frame length of 0 hangs the driver
* Fixed issue with race condition between sending a response and processing messages which can lock the driver
* Fixed issue with driver lock-up when the primary channel is inactive on start-up
* Fixed issue with client tool locking when channels or devices are rapidly changing state
* Fixed issue with client tool crash when creating a new device or channel, or when removing a connection
    
v7.20.61.4-
* Allowed use of 0 for port and IP addresses to allow automatic configuration
  
v7.20.61.3-
* Changed algorithm to apply Application Layer timeouts only after the message has been sent through the channel
* Fixed issue with client tool crash when copying a channel in the system tree  
  
v7.20.61.2-
* Fixed issue with driver crash when reloading the configuration file
* Changed algorithm to purge pending messages when a channel is either enabled or disabled
* Fixed issue with driver requesting confirmation on class polls when not configured
  
v7.20.61.1-
* Fixed issue with SCADA points not updating until restarted
* Fixed issue with using ON CHANGE update option for Cimplicity points
 
v7.20.61.0-
* Fixed performance issue when closing IP sockets

 

 



Details
ID: DG309
Category: I/O Drivers
Last Updated: 08/18/14
Date Created: 11/13/08
Status: Published
Attachments: Yes
Language: English
User Group: All


 


Overall Rating: 2.71 (14 responses)
Rate this content record (1=lowest, 5=highest)
5
4
3
2
1
Comment


Note:  If your firewall blocks ZIPS and EXEs, simply right-click and select SAVE TARGET AS and change the extension to something like "XIP".  Once downloaded change the extension back to its original one.

All drivers produced by vendors other than GE ("3rd Party Drivers") are provided by GE "as is" and without warranty of any kind unless the vendor extends a pass-through warranty to the end user.  Support for 3rd Party Drivers is provided by the driver's vendor.