Six Ways to Reduce OPC Development Time & Cost from Software Toolbox

The OPC standards have made a significant impact to industrial software interoperability over the last 23 years, and the adoption of OPC UA continues to accelerate. As users, integrators, and OEMs continue to add OPC functionality to their product offerings, they seek to insure a wide range of interoperability with other OPC products by supporting the relevant OPC standards. The convergence of IT and OT and younger developers means developers don’t have time to become experts in the specifications. They have a job to do and short time to do it.

To address these growing needs, the latest version of the OPC Data Client development toolkit for OPC clients focuses on the productivity and application time to market for any active developer of custom OPC Client software applications.

With increasing interest in the benefits of OPC UA technology, the primary focus is OPC UA improvements and developer productivity. The goal of the OPC Data Client toolkit is to help developers build applications quickly without having to be an expert on OPC UA, DA, A&E, or XML standards. New developers use the Live Binding feature to connect OPC Data points to visual elements of their application without even writing code for fast user interface construction.

The following six sections detail each key feature or functionality update you will want to take advantage of as you develop your own OPC client applications.

1. Expanded OPC Client Visual Studio.NET Support & Developer productivity

OPC Data Client from Software Toolbox now supports Visual Studio 2012 through Visual Studio 2017, which enables developers to leverage the latest Microsoft technologies. In Visual Studio 2017, Microsoft delivered a faster, more responsive, and more productive development environment. OPC Data Client already supported .NET Framework 4.5.2 through 4.7, so as a developer, you can use the latest technologies in your OPC clients.

And, in keeping with the theme of productivity, all relevant public properties now have consistent [DisplayName] attributes applied, making working with property grids such as Visual Studio designer – and our own Live Binding user interface and Connectivity Explorer – easier.

When using the Live Binding feature that allows users to bind code to text boxes, labels, etc. to OPC items, the programmatic name is now displayed in brackets to help the developer correlate the property or event with the actual member in their code. Sometimes they aren’t the same (as shown here), and the added feature helps developers more smoothly transition from drag/drop live data binding to accessing data via code.

2. OPC UA Security & User Experience Improvements

As mentioned earlier, with the growing adoption of OPC UA, a lot of effort has gone into providing OPC client developers more security choices and development functionality to support incorporation of OPC UA security into custom OPC Client applications.


  • Support for Basic256Sha256 SSL security policy. This policy uses higher encryption levels, empowering developers to offer users higher OPC client to OPC Server connection security.
  • Support for the latest OPC Foundation stack version 1.03.342. (Keeping up with the OPC Foundation’s work is important for interoperability, performance, and security.)
  • Multiple improvements to the handling of OPC UA SSL certificates to make it easier for developers to manage this process, especially if they’re using the HTTPS or SOAP/XML bindings instead of the binary OPC.tcp bindings. The ability to define policy set rules for how SSL certificates are to be handled assists with all communication-binding types.
  • The new TrustedIssuersCertificateStore allows developers to optionally accept and trust SSL certificates that are signed by a public Certification Authority (CA) and have a valid trust chain on the computer where the OPC server and application is running.
  • Events are added that allow you to provide proper notifications to your users when certificate validation fails.
  • Pre-defined properties for OPC UA connections made using the Live Binding feature of OPC Data Client to allow developers seeking rapid development results to specify how fast they want data to update with one setting, with the OPC Data Client handling all the required settings such as sampling interval, group update rate, and more automatically.
  • Improved troubleshooting tools for troubleshooting OPC UA session management issues.
  • Improved error logging for troubleshooting OPC UA subscriptions and directory-based SSL certificate store usage and certificate validation errors, all designed to reduce troubleshooting time for these types of problems.

3. Improvements to OPC DA, UA, XML, A&E Connectivity Explorer

The Connectivity Explorer, which is included with the optional OPC Data Client Excel Add-In component for OPC Data Client, is an application designed to serve as the source of real-time tag data for Excel. However, the Connectivity Explorer can also function as a useful troubleshooting tool.

The Connectivity Explorer allows users to connect to OPC Servers and choose the data they’d like to expose to Excel via the Microsoft RTD (real-time data) interface and have that data update in the Excel sheet in real time.

The tool is also a powerful way to troubleshoot your custom applications. If you’re having problems with the results you see in your application, you can use Connectivity Explorer to connect to the OPC server, view data, and even now view key events occurring between the OPC Data Client components and your OPC server to help you determine where to look to find the problem.

This release offers several improvements to this powerful tool:

  • Automatically managed columns are now created for each point type and can be made visible through changing a property versus having to create and configure them manually. For example, Server Timestamp (UTC) and Source Timestamp (UTC) columns, which are important to many users, are now automatically created.
  • Index range list – Allows users to access array variables in an OPC Server, but instead of returning the entire array, the user can specify a subset of indexes from within the array (as shown below).

  • Overall management of columns, visibility, size of node information panes, and live data view column categorizations make it easier to find and modify the information needed.
  • Event records are automatically logged from the start, so when the Event Records window is made visible, events captured earlier are visible (as shown below).

Users interested in taking advantage of the powerful functionality of the Connectivity Explorer can add a license to any edition of the OPC Data Client for just an incremental licensing fee.

4. Assurance of OPC Interoperability

The OPC Data Client has passed its re-certification by the OPC Foundation Certification Testing Laboratory (occurring every 3 years).  Testing is performed using the Connectivity Explorer tool built into the product.

Having independent testing performed helps lower your risk of interoperability problems and assures successful applications.  Ultimately, the compatibility of your application is influenced by the way you write your code, and the OPC Data Client documentation provides guidance and advice on best practices to assure compliance.  We’ve done our part, so you can focus on doing your part well!

5. OPC UA Complex Data Support

You may be asking “Since when is complexity a good thing?”  Well, in the OPC UA specification, there is an allowance for Complex data types (also known as structures) to be passed as tags.  So instead of “MyTag26” holding, for instance, a floating-point value of 32.4, “MyTag26” might have a bunch of sub-members of different data types as shown below.

For another example, Siemens S7-1500 PLCs have a built-in OPC UA server available that can expose data in the PLC through the OPC UA Data Access profile with Complex Data support.  So, you can read structures out of the PLC using OPC UA where 1 tag contains many data types.  You can use the built-in structured data types in the PLC or configure your own types in the PLC.

If you think about the concept of a structure and passing that data, you realize that during transfer it’s just a binary blob of data.  How will your client application know how to split that data into the various data types included in that structure?

Well OPC UA provides a way for the OPC UA server to also pass a data type dictionary along to the OPC UA client that describes how the “blob” of data for a structure is to be split part.  Whether the OPC UA server is built into the PLC or is a standalone OPC server, if it supports OPC UA complex data and adheres to the OPC UA specifications, OPC UA client applications can benefit.

OPC Data Client now makes Complex Easy

Developers of Visual Studio .NET C#/VB OPC client applications can now consume this complex data directly through an added extension in the latest OPC Data Client toolkit release.  OPC UA complex data comes in as instances of a UAGenericObject class and the developer uses the same methods for reading, writing, or making subscriptions as they do for normal tags!

By consuming the OPC UA binary data type system dictionary provided by the UA server, the OPC Data Client will automatically know how to split the data apart and make it available to you.  You don’t have to worry about binary “blobs” – you consume data in a logical, meaningful structure.  New examples have been added to the OPC Data Client documentation under Extensions->Integrated Extensions->OPC UA Complex Data Extension.

6. Improved Resiliency & Browse Performance empower you to enhance your user’s experience

As you build larger and more complex applications with lots of data flying around, the code on your side of your application will be processing lots of callbacks as the OPC Data Client gives you the data it gets from your OPC Servers.  Working on a simple non-complex application?

You might not need this but, someday, you’ll probably be glad this next feature is there for your growth!

With the latest version, there are improvements giving you the option to queue callbacks to your code from our toolkit binaries that pass new data on their own dedicated thread.  This is controlled through the QueueCallbacks property.

There are also settings to control the capacity of the queue and the time between sending callbacks in the queue ( CallbackQueueCapacity and CallbackQueueIdleTimeToSleep). Using this feature and its related settings improves your overall custom application resiliency when there are errors in your code and, as a result, decreases the chance for deadlocks.  These features are available for OPC DA, UA, and A&E client interfaces.

To make browsing the namespace of OPC UA servers more efficient, a new BrowseMultiple method allows you to perform browsing with multiple starting nodes at once.  You pass in a new array of UABrowseArguments objects as input and get back an array of object results.  This feature empowers you as the developer to provide a better user experience when browsing large OPC UA namespaces.

So, if you’re developing a custom OPC UA or OPC UA client application, the latest version of OPC Data Client takes your productivity to the next level and allows you to deliver a solid customer experience in your applications.

Learn More, Upgrade, or Try the OPC Data Client

As always, there are lots of additional updates in the current version – you can read about the full details of all updates in the release notes in the Software Toolbox knowledge base.

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 through an upgrade fee. Contact us for upgrade options.

Ready to try the latest OPC Data Client Toolkit?  Click Here to Get Your Free Trial