With the recently released 2020.3 (5.59) version of the OPC Data Client Toolkit, developers of OPC Classic client applications can now use .NET Core and have more flexibility in managing optimizations in their applications. Developers using OPC UA PubSub have more methods and options to aid in their development. More example programs will help new users get started faster or existing developers leverage other functionality in their applications.
In this technically hot blog post, we will cover the release highlights with links to documentation, and, as always, the full detailed release notes are available in our knowledge base.
Before we dive into what's new in the latest release of the OPC Data Client, I'd also like to encourage you to visit the OPC Data Client website, if you haven't done so recently, as we continue to add more content and improve the site to help you.
OPC Classic Improvements
All the news you hear in the industry is around OPC UA; however, there are hundreds of thousands of OPC Classic server applications installed and in use. The acceleration of digital transformation initiatives driven by the global crisis of 2020 made it clear that automation engineers are being asked to tap those data sources more and more.
A sampling of the improvements made to support those efforts includes:
- OPC Classic developers can now build applications that target .NET Core on Windows where before they could only target .NET Framework or COM - more info.
- Large OPC DA requests are now "chunked" or broken into smaller requests and performed sequentially to allow results to come back from some OPC Servers faster. Developers can configure and tune this behavior using the new OPC DA-Optimizer plug-in functionality.
- OPC DA-Optimizer Plug-In - this new feature brings together a variety of existing optimizations for parameter restricting & bucketing, subscription blending, item caching, auto-subscribing, plus the new request chunking and merging optimizations into a single plug-in.
- The Optimizer is implemented as a configurable plug-in on each EasyDAClient object instance. The plug-in is included and enabled by default so that you do not have to write any additional code in order to make use of its functionality. Learn More
- The Optimizer is implemented as a configurable plug-in on each EasyDAClient object instance. The plug-in is included and enabled by default so that you do not have to write any additional code in order to make use of its functionality. Learn More
- Improved error handling messages if a developer accidentally passes a sequence into a method with a null element where it is not allowed.
- More flexibility in subscription handling that allows a developer to obtain the arguments used to make an existing subscription, which they could use through their implementation, to offer their users a means to make adjustments if desired.
- ReadMultipleItemValues and ReadItemValue methods now work in the same way as their OPC UA counterparts in that they no longer wait until a "non-bad" value becomes available. Instead, they simply perform a read and an error is returned if the data does not contain a valid value. This should provide for more responsive applications.
- New WaitForMultipleItemValues and WaitForItemValue extension methods are available for those who want the older behavior.
- Developers should review these changes and the new extension methods before incorporating this update into their application if they use these methods.
- New IEasyDAClient.SupportsTechnology and IEasyAEClient.SupportsTechnology extension methods allow developers to determine if a target server supports a given OPC technology(ies).
OPC UA PubSub Added Functionality
Part 14 of the OPC Unified Architecture adds the ability to deliver data sets using message-oriented middleware in a publish-subscribe communications model. This important new OPC UA specification expands the use cases for OPC UA in cloud applications and to lower power, low latency devices. PubSub allows OPC UA clients to publish and subscribe to data in OPC UA PubSub middleware and then every client subscribed can receive updates. This effectively enables a one-to-many configuration between a data source and consumers.
OPC Data Client added support for OPC UA PubSub in Version 2019.2 and all releases since then have continued to add to the capabilities, including this one. Updates include:
- New TestConnection and TestConnectionAsync methods to check if a UA PubSub Connection can be successfully established before moving on
- Similar TestSubscription and TestSubscriptionAsync methods to check if a Subscription can be established
- Updates relevant to OPC UA Specification Errata 1.04
- New specialized Windows Form controls for OPC UA PubSub Objects
OS Support, User Interface Components & Other Improvements
- Windows 10 Versions 1803 to 20H2 are supported in addition to other OS's shown in the system requirements.
- For .NET Standard, the OPC Foundation UA libraries were updated to 1.4.363.107.
- Visual Studio 2019 is now our primary targeted/testing platform for Windows development. Although Visual Studio 2017 should continue to work, we are no longer testing on that platform. More details on development platforms
- Improved licensing error messages to aid developers in knowing the cause of the most common errors we hear about in support, to aid in self-resolution. Developers are encouraged to remain on a support & maintenance agreement so they can access current versions and our expert support.
- In AEAreaOrSouceDialog, DAItemDialog, OpcBrowseDialog, UABrowseDialog and UADataDialog, double-clicking on a list node that is now a branch and a leaf closes the dialog as if "OK" was pressed with focus on that node
- Added an AutomaticValueControl control pages for various object types
More Examples!
Every developer loves examples and sample code. We couldn’t let this release go by without adding more and providing some updates, including:
- VBA Example in Excel
- Xojo Example for OPC DA
- More C# examples for OPC Classic such as how to browse access paths, browse branches, browse leaves, browse properties, browse servers, read item value with specifying server's CLSID, read multiple items "from device", do many reads repeatedly, perform synchronous OPC read, read multiple item values, unsubscribe all or multiple items, write an item (including timestamp and quality), list OPC categories that the server implements, and more
- WPF based OPC UA Demo Application
- Windows Forms OPC UA PubSub demo application
- More C# OPC UA applications
Examples are available during install and are covered in the online product documentation
Learn More, Upgrade, or Try the OPC Data Client
There’s lots more in this release you can read about in the release notes in our knowledge base.
Because of the extensive OPC Classic changes, developers are strongly encouraged to follow generally accepted development change management best practices (example) before incorporating this toolkit update in applications using OPC Classic and rolling out updated compiled applications to their users. This includes, but is not limited to, having good source code management to allow roll-back if required and good testing plans and practices.
Existing OPC Data Client License Owners
If you already own a license of the OPC Data Client and are on an active support agreement, you can download the software from the trial version request page and upgrade for free by following the licensed user upgrade instructions.
If you have an older license and aren’t on an active support agreement, you can still get the latest version with an upgrade fee. Contact us for upgrade options.