New Release 1.5.1 of libiec61850

This is a new maintenance release for the 1.5 branch.

New features and improvements

  • added server side ReportControlBlock events and value access functions
  • added functions Timestamp_fromMmsValue and Quality_toMmsValue
  • made server report reservation compatible with Ed. 2.1 (LIB61850-293)
  • new functions MmsValue_getOctetStringOctet and MmsValue_setOctetStringOctet
  • IedConnection: added function IedConnection_getDataSetDirectoryAsync
  • IedConnection: added function IedConnection_createDataSetAsync
  • IedConnection: added new function IedConnection_deleteDataSetAsync
  • IedServer instance can be restarted
  • new function IedConnection_setTimeQuality – Added support to set time quality for client generated time stamps (LIB61850-280)
  • .NET API: added wrapper for IedConnection_setFile and IedConnection_setFilestoreBasepath (LIB61850-258)
  • IED server: improved accuracy of integrity report intervals
  • .NET API: GooseSubscriber – added GetGoId, GetGoCbRef, GetFataSet methods
  • IED server: add support for SMV control blocks (“SMVC”) in config file parser
  • .NET API: added support for server integrated GOOSE publisher
  • MacOS thread layer: replaced semaphore by mutex

Fixed bugs and vulnerabilities

  • fixed vulnerability of GOOSE subscriber to malformed messages (LIB61850-304)
  • fixed – Bug in presentation layer parser can cause infinite loop (LIB61850-302)
  • .NET API: fix problem with garbage collected delegates for async client functions (LIB61850-301)
  • fixed compilation problem with option CONFIG_MMS_THREADLESS_STACK
  • fixed – TPKT error when connection is interrupted during message reception (LIB61850-299)
  • handle presentation layer data messages with transfer-syntax-name
  • fixed – UBRB: library can’t work at the same time with URCB with preconfigured client and URCB without preconfigured client (LIB61850-292)(#355)
  • fix – server crashes when presentation message has no user data (LIB61850-291)(#368)
  • MMS server: query log service returns services error instead of reject message when log does not exist (LIB61850-290)
  • fixed – IED server: crash during invalid control access – FC=CO on invalid layer (LIB61850-282)
  • fixed – Server: ctlNum and origin(status) are not updated automatically by the server when APC command is received (LIB61850-277)
  • MMS server: fixed problem with continue-after in some get-name-list handling cases
  • fixed – IedConnection: outstanding call on IEC layer is not release under some circumstances (LIB61850-270, LIB61850-251)
  • fixed bug in IsoServer that caused memory violation when the server was restarted while a client was connected
  • IED client: send RptEna as first element when RCB is to be disabled
  • fixed problem with double free of TLS configuration structure (LIB61850-254)
  • .NET API: Fixed problem with AccessViolationException in GooseControlBlock.GetDstAddress
  • MMS server: fixed data race bug in transmitBuffer handling (#338)
  • IED server: fixed crash when IEDName+LDInst is too long
  • .NET API: fixed bug – server write access handler causes “CallbackOnCollectedDelegate” exception (LIB61850-236)
  • MMS server: fixed potential crash when client connection closed during file upload (LIB61850-2)
  • MMS client: fixed problem – doesn’t close file when the setFile (obtainFile) service is interrupted e.g. due to connection loss (LIB61850-230)
  • Ethernet Socket (Windows): fixed bug and added workaround for problem on Windows (most GOOSE/SV messages are not received when waiting with WaitForMultipleObjects – observed with winpcap 4.1.3 and Windows 10
  • fixed problem in BER integer decoder (problem with GOOSE fixed length message decoding)
  • .NET API: Fixed memory release problem in method ModelNode.GetObjectReference
  • IED server: fixed bug in GoCBEventHandler
  • fixed problem in BSD ethernet layer (#328)
  • fixed bug in cmake file for BSD
  • fixed compilation problem when compiling without GOOSE support (#325)
  • IED server: control handling – fixed problem in test flag handling
  • IED server: For SBOes check test flag match when accepting operate (sSBOes8)
  • IED server: Reject Cancel/SBOw in WaitForChange state – fixed problem with test case sCtl26

Release 1.5.0

The new release 1.5.0 includes a lot of small improvements and bug fixes to make it compatible with latest test descriptions. The most notable new feature is the server side support for service tracking . This release is mostly compatible with version 1.4. It can and should be used to update existing project using version 1.5.

IEC 60870-5-101/104 Test Client

The new version 1.2.0 of our IEC 60870-5-101/104 Test Client tool is available.

It is an easy to use GUI client tool with a lot of features useful for testing. The professional edition provides CS 104 TLS support, CS 101 balanced and unbalanced mode, telegram details view, file transfer in monitoring and control directions, message logging, filtering, and a lot of other features.

The freeware and professional editions are available here.

New version 1.4.0 of libiec61850

This new feature release contains a lot of new features and improvements for client and server side. The most important new feature is the new asynchronous client API. This allows the user to send multiple requests at the same time using a single thread. There are also new feature for the server side control model handling. Please be aware that the API signature for the server side control models slightly changes. Be sure to update your code when migrating to version 1.4.0.

TASE.2/ICCP protocol library version 2.0.4

MZ Automation released a new version (2.0.4) of the TASE.2/ICCP protocol library. This version comes with support for active and passive TCP endpoints with dual roles (both client and server roles using the same TCP connection). All library functions are available from the C, C#/.NET, and the new Java API. More information about the library can be found here.

New version 1.3.3 of libiec61850

This new version contains a lot of stability improvements, bug fixes, and improvements in the server side reporting module. Changes in the reporting module include support for segmented reports, improved ResvTms handling, support for pre-configured report subscriptions with ClientLN, and other changes to be compatible with the latest test procedure updates).

New version 2.1.0 of lib60870 (C library for IEC 60870-5-101/104)

This new version provides a lot of new features and bug fixes. The CS 104 slave/server now supports multiple redundancy groups and a non-threaded mode. There have also been some changes to make the memory allocation more suited for small embedded systems.

Some of the changes include:

  • CS104 slave: added support for multiple redundancy groups
  • added non-threaded moded for CS 104 slave
  • separated thread and semaphore support for CS 104 slave
  • CS101 unbalanced link layer (master): automatically send request UD 1 when ACD bit is set in received frame
  • added CS101_ASDU_getElementEx function to avoid dynamic memory allocation
  • added support for static ASDU object allocation
  • optionally compile library without HAL to simply using together with libiec61850

TASE.2/ICCP protocol library version 1.2

MZ Automation now offers a new version of its TASE.2/ICCP (IEC 60870-6) protocol library “libtase2”. This easy-to-use protocol library can be purchased as source code for C and C#/.NET and can be used to implement client and server applications for TASE.2/ICCP. The library is based on an extended version of the same MMS library that is also used by libiec61850. It provides full support for conformance blocks 1, 2, 4, and 5. It also supports secure communication with TLS. More information can be found here.