- Fixed an issue that could impact an integrity poll if the device indicated a buffer overflow.
- Improved handling of secure authentication requests.
- Fixed an issue that could result in a runtime crash.
- Improved data handling when a session is closed before the end of the frame is received..
- Fixed a possible memory leak during handling of select and operate or data set control objects if the data set was not in the database.
- Improved behavior when shutting down and closing sessions.
- Fixed an issue where tags that get stranded in the middle of a polling cycle would never get released and not poll again.
- Removed non-inclusive terms out of respect for users of our software.
- Renamed this driver (from DNP Master Ethernet) in compliance with updated terminology.
- Added new internal tags _DNPClientAddress and _DNPServerAddress that replace the deprecated _MasterAddress and _SlaveAddress tags respectively.
NOTE: These deprecated tags will be obsoleted in a future release as part of PTC’s product inclusivity initiative; plan accordingly in anticipation of these changes.
- Added a new operate command (OperateWithParams) that allows the user to specify all the CROB settings in a single tag write.
- Added new channel-level property for maximum Link Layer Status Request retries.
- The Update Key password property is obfuscated (not displayed in plain text).
- Fixed an issue with Event Playback that could cause tag quality to temporarily go “Bad” despite a successful unsolicited response.
- The driver no longer attempts communication with the device if a client is only referencing System (internal) tags, which do not require device communication.
- Added the ability to disable time synchronization messages.
- Corrected an issue where a disabled device on a virtual network could block other devices from communicating.
- Added support for 10 ms update rates to Event Class 1, 2, and 3 polling intervals.
- Fixed an issue where malformed packets could disrupt communications.
- Fixed an issue where an out-of-bound read vulnerability could exhaust resources and prevent the driver from working.
- Updated the maximum length of the XML schema Destination Host element to 255.
- Added Retry Attempts for the following requests: Integrity Poll, Event Poll, Disable Unsolicited, Data Set Exchange, Automatic Tag Generation, and Explicit Reads/Writes.
- Added the new "Max Timeouts" property (located in the Communications tab of Device Properties).
- Fixed an issue where a Disable Unsolicited Request would not be sent when only one or two of the classes are configured with Unsolicited Messages disabled and no class is configured with Unsolicited Messages enabled.
- Addressed a security vulnerability that could allow a master station to be sent into an infinite loop by sending a specially crafted TCP packet or through serial communications. A successful attack exploiting this vulnerability could allow an attacker to put the master station into an infinite loop, causing a denial-of-service condition. The master station (KEPServerEX runtime service) must be manually restarted to recover from the loop condition.
- Fixed an issue with g70v3 Open File requests, where the File Size and Time of Creation fields were not being initialized properly when the request was to open a file for writing on the slave.
- Corrected an issue introduced through a fix in server version 5.10 in which events would continue to play back when a device was in an error state. Errors other than Device Not Responding (DNR) were not being considered. When event play back is enabled and the event poll times out while communicating, the .Value and .Timestamp tags will receive BAD quality (which was the previous behavior).
- Fixed an issue introduced in server version 5.10 where integrity and/or event polls would not occur on schedule if channel serialization was in use with many .Explicit Tags.
- Corrected an issue where an "Initialization Completed" message would be posted when no communications had occurred with the device.
- Changed the Exchange Data Sets device property's default setting from True to False.
- Added support for legacy devices that use a local time zone adjusted with time reference instead of the UTC time base in events and during time synchronization.
- Converted the Communications device property page to a grid control.
- Fixed an issue where processing too many continuous internal/cache tags may have delayed the processing of device tags (especially when Channel Serialization was in use and devices were not communicating).
- Fixed an issue where a non-empty Activate Configuration Object string incorrectly triggered automatic tag generation when other device properties were modified.
- Fixed a rare issue where an erroneous file transfer failure message could be posted along with a file transfer completed successfully message when the file transfer was successful.
- Corrected an issue where event play back paused during TCP connection attempts.
- Corrected an issue where event play back paused while the device was demoted.
- Fixed an issue where the server could become unresponsive during automatic tag generation. This problem was introduced in the 5.10 release.
- Fixed an issue where the driver failed to report an Event Log error message if the socket bind failed. This message failure occurred for bind failures where the protocol selected was UDP and the optional source port was set to a non-zero value.
- Added an error message to be posted when a tag fails due to the DNP flags containing an exception condition. The error message will list the actual DNP flags byte in hexadecimal format as well as a comma delimited string listing the exceptions. An example of the message is as follows: Unable to read tag '1.0.0.Explicit' on device 'Channel1.Device1'. Device indicates one or more exception conditions (DNP flags byte='0x28' - 'Offline, Remote Force, Chatter Filter').
- Fixed an issue where on-the-fly changes to channel properties that affect the socket did not consistently force a socket reconnect.
- Fixed an issue where no 'Device Not Responding' message was logged and tags did not show Bad quality when the keep-alive request timed out and the project was configured with no event or integrity polling and no explicit read tags.
- Fixed an issue where tag quality was not updated after disabling the Enable Data Collection property.
- Changed the Data Link Layer Confirmation Timeout from 2 seconds to the configurable Channel Response Timeout.
- Fixed an issue where collected events did not continue to playback when the device was in an error state.
- Tag quality will be Bad if the device error state continues after playback completes.
- During device demotion, tags will have Bad Quality and no playback. After the device is promoted, tag quality will be Good and playback will continue.
- Fixed an issue where collected events were incorrectly deleted from the driver's cache after specific communication failures.
- Resolved an issue where the Auto-Demotion settings in device properties were not used on startup.
- Added the new internal tag "_TimeSyncStyle".
- Fixed an issue where the driver would fail to send confirmations to unsolicited responses. This occurred if the slave failed to respond to a Link Status Request, and instead sent its own Link Status Request.
Updated refresh logic to improve usability with projects that reference more than a hundred channels.
- DNP3 Enhancements for Phase-III support of WITS specification include File Control and Activate Configuration
- Added Device Property Page to allow configuring the DNP File Control object group 70 and the DNP Activate Configuration function code 31.
- Implemented new tag addresses to allow clients to manage file transfer and activate configuration functions:
- Converted the Advanced device property page to a grid control.
- On restart, Events received in the response to the initial integrity poll are no longer lost when the response did not complete within the response timeout.
- Added an event message to report when the session has completed startup.
- Added support for device auto-demotion.
- Added an event message to report when an Enable Unsolicited Messaging request fails, and when an item is demoted/promoted. Added the ability to post an informational message when certain IIN bits are set in a response. Improved tag cleanup.
- Added an event message to report when LAN Time Sync write to g50v3 is not supported.
- To correctly open 4x-based projects, modified the XML schema transform file to check for out of range values and/or to assign defaults for the following channel and device properties: Protocol, DestinationIP, ResponseTimeoutMilliseconds, RequestTimeoutMilliseconds, UnsolicitedModeClass1, OperateMode, and EnableFeedbackPollAfterWrite.
- Resolved an issue where items might not clean up properly when a client disconnected from the server if the items were in a bad quality state due to an non-responsive RTU.
• 70.<file index>.LocalFileName (on Master station)
• 70.<file index>.RemoteFileName (on RTU)
• 70.<file index>.Download
• 70.<file index>.Upload
- Added support for writing to Device Attributes (Object Group 0). This feature is required to meet the DNP WITS standard.
- Added support for writing to Data Sets (Object Group 87). This feature is required to meet the DNP WITS standard.
- The driver now supports the ability to play back Data Set snapshot data.
- New settings were added to the Device Properties page that allow for users to ignore forced flags when setting quality.
- Fixed issues with loading legacy server (.xml) project files.
- Fixed an issue where the first buffered event after startup was never displayed when the Playback Rate was shorter than the tag's Update Rate.
- A "Device Not Responding" message will no longer be reported in certain situations where the device was actually communicating.
- Added Event Log error messages for cases of incomplete or invalid responses or invalid authentication.
- Fixed an issue where the driver was reporting "Failed to initialize communication stack" in situations where serialization was enabled.
- Improved channel management when communication errors are encountered during startup.
- Fixed an issue where data set CTLS and CTLV element types were shown as having bad quality.
- Fixed an issue where Communication Serialization and Aggressive Mode Authentication were enabled.
- Added informational message to report the number of data set tags per data set added during auto tag generation.
- Added Keep-Alive Interval device property to the Communication page as well as an Event Log message to warn the user if loading an XML project discovers a Keep-Alive interval configured for a UDP channel.
- Enhancements for Phase I support of WITS specification include the following.
Device Attribute - Object Group 0:
• Standard Attributes at Index 0 (such as Vendor Name, Product Name, Site Name, Software Version, Hardware
Version, Configuration File Names, and Configuration File Version)• Version, Configuration File Names, and Configuration File Version)
• User Defined Attributes for Index 1 and above.
• Read Only.
Secure Authentication - Object Group 120:
• Challenge - Response.
• Pre-shared Update Keys.
• Aggressive Mode.
• Session Keys - bidirectional.
• Security Statistics.
Data Sets - Object Groups 85, 86, 87, and 88:
• Event and Static conditions.
• Outstation defined data sets.
• Read Only.
- Added an error message for the situation in which a device's Slave address is a duplicate of another device's Master or Slave address.
- Added an error message for the situation in which a device contains the same Master and Slave address.
- Added the following internal tags:
- Updated the driver to release items more quickly for unresponsive devices, following client disconnect.
- Initial release of DNP drivers in 5x.