What's new in QuickOPC 2021.3

From OPC Labs Knowledge Base
See also: Versions; Previous version: What's new in QuickOPC 2021.1

Internal version number: 5.62

Key changes:


Targeting

  • Operating Systems: Added Windows Server 2022 (x64), to the list of supported systems.
  • .NET Runtimes: .NET Core 2.1 is no longer supported.

Component Improvements

  • The ILicenseInfoProvider.LicenseInfo property now returns (specially marked) elements for licenses that has been considered but dropped during the license verification and evaluation. With licensing errors that result in a trial license being used, this allows the user to diagnose licensing problems sooner - before the run-time limit associated with the trial license is reached.

OPC Data Access and OPC XML-DA

  • Added more IEasyDAClient.ReadItem, ReadItemValue, ReadMultipleItems and ReadMultipleItemValues extension method overloads with read parameters object (DAReadParameters). This allows shorter coding when e.g. a value age, or reading from the device needs to be specified.

OPC Alarms&Events

  • Added more overloads of the AENotificationObservable.Create method, allowing to pass less arguments.

OPC UA Client-Server

  • Added IEasyUAClient.ReadValue extension method overloads with index range list.
  • Added IEasyUAClient.Read and IEasyUAClient.ReadValue extension method overloads with read parameters object (UAReadParameters). This allows shorter coding when e.g. maximum value age, or reading from the device needs to be specified.
  • Added (extension) method IEasyUAClient.WaitForMultiple. Subscribes to the specified nodes&attributes, and monitors their data until the predicates specified for each item become true, an error occurs, or the alloted time elapses.
  • Added (extension) method IEasyUAClient.WaitForMultipleValues. Subscribes to the specified nodes&attributes, and monitors their data until they have at least the status severity specified for each item, an error occurs, or the alloted time elapses.
  • Added (extension) method IEasyUAClient.WaitForValue. Subscribes to the specified node&attribute, and monitors its data until it has "good" status severity, an error occurs, or the alloted time elapses.
  • Conversions from UAEUInformation and UARange objects to OPC UA structures are now supported, making it possible to write them into the OPC server.
  • Operation monitoring: The arguments of the IEasyUAClient.ServerConditionChanged event, i.e. the EasyUAServerConditionChangedEvenArgs, now contain a Statistics property. This property contains a ConnectedConditionStatistics object, with large amount of information about the connection to the server. There is a sequential connection attempt count, and an AutomatonStateStatistics object for each of the connection states (Disconnected, Connecting, Connected, and Disconnecting), and for an "Unconnected" state, which represents a state other than Connected. For each of these states, you can obtain information such as how many time it was entered, when it was first entered, when the last cycle started and how long it did last, what is the minimum, maximum, and accumulated duration of the state, and much more. For the current state, you can also obtain information such as when it was entered and how long it is active.
  • Added OperationTimeout property to UAClientSessionParameters class. This is the timeout used when sending requests (in milliseconds). Previously, this timeout had to be configured in SDK configuration (by providing a modified XML configuration file).

OPC UA PubSub

  • Delta frames in JSON message mapping are now supported.

Component Refactorings

  • Elements returned from ILicenseInfoProvider.LicenseInfo that represent date/time or a timespan are now returned as a DateTime or TimeSpan, respectively, instead of just "raw" UInt64 or UInt32. This helps to interpret the commonly needed elements such as ReleaseDateCovered.

OPC Classic

  • Improved error enhancement (details added to error texts in some common scenarios).

OPC UA

  • Improved error enhancement (details added to error texts in some common scenarios).
  • Errors from session connections and reconnections are now enhanced by connection attempt number, last connected time, and unconnected timespan.
  • In transitions to the Connecting state, the string form of the EasyUAServerConditionChangedEventArgs now includes the sequential connection attempt number, allowing the user to easily assess whether the connection is "down" for an extended period of time.

Tools and Online Services

Demo Servers and Publishers

  • The UADemoPublisher can now produce Delta frames in JSON message mapping (when KeyFrameCount >= 2).

OpcCmd Utility

  • The uaClient command now has a new --ServerConditionChanged (-scc) option, which enables event notifications related to server condition changes (connecting/connected/disconnecting/disconnected).
  • Added the --EndpointAnonymous|-ea <bool> option to various uaClient subcommands, allowing to explicitly enable/disable the use of anonymous user token.
  • Added the waitForItemValue subcommand under the daClient command.
  • Added the waitForValue subcommand under the uaClient command.

OPC UA PubSub Formatter

  • The OPC UA PubSub Formatter can now show the format of JSON Delta frames, Event messages, and Keep-Alive messages.

Examples

  • Added a C# example that shows how to display all fields of the available license(s).

Platform: COM

  • Added an OPC-UA demo application written in C++ (with use of MFC). Both the source code, and the executable are installed.
  • Added a VBA example in Microsoft Access. The example reads an OPC UA value and shows it on a form that opens automatically on database startup.
  • Added a Delphi example showing how to use OPC Data Access event pull with multiple subscribed items.

OPC Classic

  • Added a C# example showing how to read a single item, specifying that the read should be performed from the device.
  • Added a C# example showing how to use isolated client objects for separate connections to the target OPC DA server.
  • Added one more C# example of node browsing.
  • Added one more C# example for the GetMultiplePropertyValues method.
  • Added examples for the SubscribeMultipleItems method showing how to use integers and general objects for identification of the subscriptions.
  • Added a C# example for the ChangeMultipleItemSubscriptions method.
  • Added a C# example for the WriteMultipleItems method.
  • Added an example showing how to use reactive development model for OPC Alarms&Events.

OPC UA Client-Server

  • Added C# examples showing how to read a single node or multiple nodes, specifying that the read should be performed from the device (data source).
  • Added a C# example showing how to subscribe to a range of elements from an array.
  • Added a C# example showing how to set various OPC UA timeouts.
  • Added a C# example showing how to use isolated client objects for separate connections to the target OPC UA server.
  • Added a C# example showing how to browse all forward references from a given node.
  • Added a C# example showing how to unsubscribe from just some monitored items.
  • Added example for server condition monitoring (IEasyUAClient.ServerConditionChanged event).
  • Added a C# example showing how to configure OPC UA .NET SDK using an external file (UANetSdkConfiguration project).
  • Reactive Programming: Added an example showing how to observe a range of elements from an array.
  • Reactive Programming: Added an example showing how to observe OPC UA data with data change trigger.
  • Reactive Programming: Added an example that shows an OPC UA data change observable with specified timeouts.
  • All .NET examples now consistently use opc.tcp: endpoints of the sample servers, instead of http:.

Documentation and Help

  • Added documentation topic about OPC UA user authentication, with an example.
  • Enhanced documentation related to OPC DA read parameters (setting value age, choosing to read from the cache or from the device).
  • Enhanced documentation related to OPC UA read parameters (setting maximum age, choosing to read from the cache or from the data source, or setting the encoding name).
  • Enhanced documentation related to OPC UA timeouts (the parameters available, their meaning, and how to set them).
  • Examples that were in the DocExamples, UADocExamples and ReactiveDocExamples projects but were not in the User's Guide were added to the documentation.
  • Fix: Added missing remarks to enum members.
  • Fixed invalid links to enum members.