Test Harness

The Test Harness is a powerful tool for testing DNP3, IEC 60870-5, and Modbus devices.

Related Products

What's New

Current Release: v3.32
Release Date: April 2024

Newest Features in this Release

  • Added a channel diagnostic mask bit to control whether diagnostics messages are generated.
  • Improve the GUI to allow IEC 60870-5-104 Timer parameter to allow timer value larger than 65535ms.

Key Additions to Recent Releases


  • Replaced “slave” with “Server”, “Outstation” or “Controlled” depending on the protocol. “Server” may be used for all protocols in generic high level menus.
  • Added new Filter Checkbox “Octets” to control the display of the individual octets transmitted or received in the Protocol Analyzer Window.
  • Added DNP3 IED Certification Procedure Subset Levels 1, 2 and 3 Version 3.2.1 January—2023 Section 9 Network and Section 10 Output Control Events tests to DNP3 Outstation Conformance Tests.
  • Added MESA-DER DNP3 Outstation Conformance Tests.
  • Updated information about winpcap and npcap for TH Monitor Mode.
  • Added ClientSourceIpPort to TCP Channels to allow Clients to specify the IP Port to use for originating TCP Connections.
  • Added TCL>tmwchannel to get the connect state for a particular channel. Also added Connected state to existing TCL>tmwchannels command for all channels in the Test Harness.
  • Improved TCL>m102ccinx command and help. Also modify default S102 database to ignore seconds and milliseconds in comparison of a time or time range since they are NOT included in the request.
  • Improved behavior of S101/4 Data window related to MMENA, PMENA, and MBONA points.
  • Provided more help and examples for TCL>m103genericdata write and exec commands.
  • Improvements to tmwtest -runplugin xxx improvements with functionality and naming of error and output log files.


  • Add capability for TH to save protocol log file periodically.
  • Add drop down item to File menu “Open Wireshark Log” to allow Wireshark log file to be read into the Test Harness Protocol Analyzer Window for display.
  • Add functions that can be called from Test Plugin interface to save Test Results and Test Execution Results to specified files in addition to the GUI.
  • Implement updated DNP IED Certification Procedure Subset Levels 1, 2, and 3 Version 3.1 from April 2022 not including sections 9 Network and 10 Output Control Events.
  • Create DNP Plugin for simulating and testing Master and Outstation Dual End Point functionality including timer to disconnect after the specified idle time.
  • DNP cleaned up TCL sdnp/mdnp/dnprxcallback commands and help menu for consistency
  • Create SDNP DER Plugin for simulating MESA-DER Outstation.
  • SDNP Add associated point functionality AssocPoint property to Binary and Analog Output Points to cause the associated input point value to change when a control from Master changes the output value.
  • Improve 104 Monitor Mode functionality so it does not complain about CTSTA time stamp because it does not match time on Monitor Mode Test Harness.
  • S101/S104 Add associated control point functionality ControlIOA Property S101 and S104 Monitor Points. This allows more flexibility than ControlPointOffset which applies to the entire sector database. Points which do not have ControlIOA set still use the offset. This must be enabled per sector by setting ControlIOAEnabled to prevent unnecessary processing.


  • Implemented DNP IED Certification Procedure Subset Levels 1, 2, and 3 Version 3.0 from December 2020 including some revisions to the tests through March 2021. This involved additional tests and changes to the Test GUI to allow testing an SDNP device for Level 1, 2, or 3 compliance.
  • Add TCL command tmwserial channel x dtr 1|0 rts 1|0 to control DTR and RTS on COM ports.
  • Added TCL commands i101rxcallback, i102rxcallback, i103rxcallback, i104rxcallback, and mbrxcallback commands for layers link and phys.
  • Allow TCL command “s101db callback” with no specified callback function to unregister a previously registered TCL callback function. Do this for all s10xdb, m10xdb, mdnpdb, sdnpdb, mmbdb, and smbdb functions.
  • Implement a DNP Dual End Point Plugin to configure a Master and/or Outstation and a GUI for sending Enable Unsolicited, Read Command, Generate Event, and Disconnect for demonstration and testing purposes.
  • Increase Maximum supported TX and RX Fragment Sizes for DNP to 65535 for 64 bit Test Harness, remaining at 8K for 32 bit Test Harness install.
  • Provide more complete Monitor Mode diagnostics of DNP control requests even though the controlled DNP point index does not exist in the SDNP Monitor session database.
  • Add support in TCL command mdnpassignclass for sending a DNP request to remove an SDNP point from class 0 as directed by TB2021-001. This includes the ability to create combinations of requests for multiple Class Object Headers and Data Object Headers.
  • For MDNP Secure Authentication V5 show plain text and MAC in the protocol analyzer window when the TH MDNP acts as a DNP3 Authority and creates certification data when using a Symmetric Key Change Method as is done in other situations by the MDNP SCL code.
  • Add SDNP Session configuration counterSizeVarPerPoint, anlginSizeVarPerPoint, and anlgOutSizeVarPerPoint to optionally switch variation in a response to indicate precision on a per point basis even though a specific (ie. non-zero) variation is defaulted or requested.
  • Enhance 103 General Command support for S103 DPI points. Previously only the default points indicated in the IEC-60870-5-103 specification as supporting General Commands had that capability. Added a Property bool GnrlCmdSupported on each S103 DPI point that can be set and viewed in either the TH Data Window or by the TCL command “s103dpi add/set/get gnrlCmd”. This property will also be saved and restored from Test Harness workspaces.
  • More completely implement parsing of responses into TCL arrays for M101 and M104 when datavariable is specified in a command.


  • Implemented IED Certification Procedure Subset Levels 1 and 2 Version 2.8
    changes. This included wording and step numbering changes as well as additional
    steps in some of the tests.
  • Add M101/4 File Transfer GUI User Plugin.


  • Allow “::” in addition to “*.*.*.*” for the IPV6 Ip Address to indicate that ANY device
    may connect to this channel.


  • Added Forms based example User Plugin and documented how to modify this to
    implement a custom plugin in the Test Harness User Manual
  • Updated the SDNP Conformance Test to be tolerant of an event class not
    supported by the device under test.


  • Added DNP SA Attributes AuthCriticalResponse & AuthCriticalUnsolicited which allow the configuration of all responses or unsolicited responses are critical such that they will be challenged.
  • Support for DNP FC 11 and 12 with obj50v2 has been implemented in the library and test harness.  The device profile has been updated to show support for Object Group 50, Variation 2. 
  • Allow diagnosticMask to be set in TCL open and modify channel/session/sector commands.
  • Allow write value for Device Attribute test to be configured in SDNP CTS
  • The 64-bit Test Harness no longer presents the option to configure Modbus plus.
  • Changed the DNP default file transfer directory to the public directory, 
    C:/Users/Public/Documents/Triangle MicroWorks/Protocol Test 
  • Updated DNP SA User Key Change Method property so last method used is displayed in the GUI
  • mdnprecordtime added channel as parameter to support broadcast.  Also, mdnptimesync type lan will also support broadcast now.
  • Made improvements to the help and error messages for s103 commands related to reason, relTime and fault number. 
  • Added tmwloadworkpace command to allow ability to load workspace from TCL command window. 
  • The Test Harness has been updated to support both 32 and 64 bit installations.
    This includes updates to Iron Python, TCL library, Winpcap, and OPC Client.
  • Add IPV6 support to the DNP/Modbus Conformance Test Configuration GUIs.
  • Added support for TLS v1.2 in the Test Harness
  • Updated DNP3 Device Profile to Version 2.11 April 2016
  • Added support for x.509 certificates in DNP3 Secure Authentication g120v8 requests
  • Enhanced DNP3 Secure Authentication to "remove" expired users as directed by DNP3 Secure Authentication conformance tests
  • Added authuser set functionality to Secure Authentication for DNP3 and IEC 101/104
  • Enhanced DNP3 Conformance Test Scripts based on DNP Technical Bulletin TB 2017-001 and added new feature to allow forcing multi-fragment responses by way of multiple events or points
  • Enhanced DNP3 Conformance Tests to allow automating more tests, requiring less tester interaction 


  • Improved performance of Test Harness database and queue
  • Added LoopPeriod parameter to configure how often to check for data being received on a channel
  • Update to allow access to session keys for DNP3 and IEC 101/104 Secure Authentication from the TCL Command window
  • Enhanced Master Command GUI for DNP3 and IEC 101/104 Secure Authentication
  • Expanded Windows target layer support for resolving IP address from destination host name
  • Several additional fixes (see Test Harness What’s New Document for details)
  • Added support for Secure Authentication for IEC 60870-5 (-101 and -104) according to the IEC 60870-5-7 standard based on the cyber-security standard IEC 62351 (Parts 3, 5, and 8)
  • Enhanced the testing framework to support scripting to test DNP3 Secure Authentication
  • Enhanced TCL scripting capability
  • Improved support of UDP in DNP3 conformance testing
  • Added automatic Secure Authentication statistics for DNP3, IEC 60870-5 -101 and -104
  • Improved handling of TCP connection loss for IEC 60870-5-104
  • Added capability to configure use of Aggressive Mode for Secure Authentication critical functions launched from the “Auto Request Mask” for DNP3 Master 
  • Added capability for DNP3 channel to skip offline sessions for specified amount of time
  • Several improvements to DNP3 Secure Authentication
  • Improved DNP3 Dual End Point mode
  • Implemented several improvements to DNP Secure Authentication including all items suggested in TB2016-002, addressing some deficiencies in DNP3-SAv5
  • Updated sDNP TH database, added Binary and Analog output Command event classes as separate configured items in the database
  • Added support for Modbus function code 22 – Mask Write Register
  • Improved support for UDP
  • Improved TLS configuration with GUI auto-filled with default certificate files that are shipped with the Test Harness
  • Added TLS Handshake Timeout property to channels for all protocols in the Test Harness
  • Added DNP3 Device Attributes to data window in the Test Harness with up to 253 variations
  • Added ability to have DNP3 Conformance Test Plugins interfaces write output to Test Harness command window and protocol windows
  • Additional improvements to DNP3 Conformance Tests (find details in Test Harness What’s New Document)
  • Added the ability to read a DNP3 binary configuration file (created based on DNP3 device profile with the Triangle MicroWorks tool DNP Forge) and use that file to configure a DNP3 Master or Outstation in the Test Harness
  • Additional documentation and examples describing how to generate events and commands
  • Support for newer versions of WindowsTM that do not allow writing to program directory locations
  • Added documentation on how to use TCL help files in WindowsTM 8.1
  • Improved support of different language sets and screen resolutions in the session windows, channel open window, and splash screen
  • Improved DNP3 Conformance Test Scripts with enhancements for tolerance of timing issues and differently formatted responses (refer to DNP3 Slave Conformance Test Module What’s New document for details of changes) along with more informative error messages
  • Added support for multiple Omicron devices when using DNP3 Conformance Test Scripts
  • Updated licensing to SafeNet online licensing service
  • 24 hour access to an online licensing service to manage licenses
  • Virtual Machines can be licensed directly without needing a USB license
  • Network license option is available to share licenses across multiple users and computers
  • Learn more about the new licensing
  • Updated DNP3 device profiles for secure authentication changes
  • Added protection against invalid malicious messages for DNP3 and IEC 60870-5
  • Added a shortcut key to save XML Protocol Analyzer log
  • Added support for 62351-3, specifically for TLS
  • Updated sessions to expose UseUTC to the TCL command window
  • Modified to use the newer version 4.1.3 winpcap
  • Additional protocol specific updates to address customer issues
v3.16 - Added support for negative control point offset, improved input validation testing, and improved support of DNP3 SAv5 support
v3.15 - Added the ability to automatically generate data changes via plug-ins
v3.10 - Added support for TLS and SSL
v3.04 - Added the ability to automatically load a workspace on start-up





Quick Links  Contact Us:
About Us

Triangle MicroWorks, Inc.
Sales: +1 919.870.5101
Support: +1 919.781.1931
Fax: +1 919.870.6692

Follow us on YouTube Follow us on Facebook Visit us on LinkedIn Follow us on Twitter

Copyright © 2013-2024 Triangle MicroWorks, Inc. All Rights Reserved