What's new in QuickOPC 2022.1

From OPC Labs Knowledge Base
Revision as of 11:07, 30 January 2022 by User (talk | contribs)
Jump to navigation Jump to search
See also: Versions; Previous version: What's new in QuickOPC 2021.3

Internal version number: 5.63

Key changes:

  • Initial support for .NET 6.0


Targeting

  • .NET 6.0 is now a supported .NET runtime. Note: When you develop for .NET 6, use .NET Standard 2.1 as target framework. Windows-specific technologies (Windows Forms, WPF) and features that depend on them (Live Binding, Browse Dialogs and Browse Controls, ...) are not yet supported.

Component Improvements

OPC Classic

  • Added ComSecurityParameters.EnsureDataIntegrity property (defaults to false). You can set this property in ComManagement.Instance.Configuration.SecurityParameters. When true (and ComSecurityParameters.UseCustomSecurity is also true, which is the default), it sets the security so that COM verifies that none of the data transferred between client and server has been modified, by specifying RPC_C_AUTHN_LEVEL_PKT_INTEGRITY for the authentication level. Using this authentication level might be necessary on systems with hardening changes for CVE-2021-26414 vulnerability.
  • Added ComSecurityParameters.AllowImpersonateClient property (defaults to false). Controls whether the the server is allowed to impersonate the client.
  • Added HasBrowsePath and HasNodeId properties to the DANodeDescriptor and AENodeDescriptor classes.

OPC UA PubSub

  • Added ability to load and resolve PubSub configurations from Web resources, using FTP, HTTP or HTTPS.
  • Added UADataSetData.FieldDataDictionaryById property. When metadata is available, this property contains field data for each field in the dataset, keyed by the dataset field Id (a GUID).
  • Replaced the EasyUASubscribeDataSetFieldArguments.FieldName property by a DataSetFieldDescriptor property, which can contain either a field name, or a dataset field Id (a GUID). Also, the various overloads of the IEasyUASubscriberExtension.SubscribeDataSetField method now take the UADataSetFieldDescriptor object as an input, instead of just the field name. Implicit conversions exist from a string (representing the field name) or a GUID (representing the dataset field Id) to the UADataSetFieldDescriptor.
  • In JSON message mapping, added support for DataSetWriterName and ReversibleFieldEncoding flags, introduced in OPC UA specification 1.05.01.

COM Components

  • Updated QuickOpc.h include file (Microsoft C++) for use with ISO C++ 20 Standard.

Services

  • Added the IEasyUAClientConnectionControl service on the EasyUAClient component (Professional Edition and higher). It provides methods to control the OPC UA client connections to the server, and contains methods like LockConnection and UnlockConnection. When the connection is locked, the component will attempt to open it and keep open, and will not automatically disconnect from the server after the connection is unused for certain time. The service is also available via COM, as _EasyUAClientConnectionControl interface. In .NET, it is also possible to use the DisposableLockConnection extension method, which works nicely with "using" statements in C# and VB.NET.
  • Added the IEasyUAClientNodeRegistration service on the EasyUAClient component (Professional Edition and higher). It provides methods to register and unregister nodes, using the corresponding OPC UA services. Node registration (with OPC UA servers that support it) can improve performance with repeatedly accessed nodes. The service is also available via COM, as _EasyUAClientNodeRegistration interface.

Component Refactorings

OPC Classic

  • Properties ExecutionContext and TurnOffActivationSecurity have from EasyMachineParameters (for OPCEnum operations) and EasyClientParameters (for target OPC server operation) have been moved into a new class, ComInstantiationParameters, and a corresponding ComInstantiationParameters property has been added to the EasyMachineParameters and EasyClientParameters classes.
  • The effective COM instantiation parameters are now determined by taking the value from ComManagement.Instance.Configuration.InstantiationParameters, and possibly overriding them by values from EasyXXClient.SharedParameters.ClientParameters.ComInstantiationParameters, or EasyXXClient.SharedParameters.MachineParameters.ComInstantiationParameters.
  • Properties UseCustomSecurity and TurnOffCallSecurity have been moved from EasyMachineParameters (for OPCEnum operations) and EasyClientParameters (for target OPC server operation) and merged into a single set of properties in a new class, ComSecurityParameters, available in the ComManagement.SecurityParameters property.

OPC UA

  • The ServerConditionChanged event, previously available on the IEasyUAClient interface, has been moved to a new service, IEasyUAClientConnectionMonitoring, available from the EasyUAClient component. The service is also available via COM, as _EasyUAClientConnectionMonitoring interface.

OPC UA PubSub

  • The ResolverDescriptor property has been moved from the UASubscribedataSetArguments class to the UADataSetSubscriptionDescriptor class.

User Interface

  • In OPC UA browse controls and dialogs, when an endpoint configuration has been changed from its initial state (e.g. when the user has modified the user identity, or the endpoint selection policy), the OPC UA endpoint icon now indicates that by showing an additional overlay in the upper left corner.
  • Object editor dialogs now contain a ">>> More" checkbox in the tab header area. When checked, an additional Serialization tab is shown. The Serialization tab shows how to create currently the edited object, including all its configured content, in C# and VB.NET.

Tools and Online Services

Connectivity Explorer

  • The Connectivity Explorer now has a node for OPC UA PubSub, and it allows the user to browse the relevant parts of the Publish/Subscribe model in the servers, selected dataset fields form published datasets, and display their values in the Live Point Data view.
  • In various property grids, the property name in the description area is now clickable (underlined), and shows a contextual online help associated with that property. Also, a Help command has been added to the context menu on the property grids.
  • Added Lock Connection action on OPC UA endpoints. It allows the user to lock or unlock the connection to the specified endpoint, assuring that the component will attempt to keep the connection open until unlocked.

Demo Servers and Publishers

OpcCmd Utility

  • Using the new --!inputFile|--!if <fileName> command option, it is now possible to switch the tool input to the specified file.
  • The .opccmd file extension is now associated with executing the file using the OpcCmd utility.
  • Added uaClient getService uaClientConnectivityControl command, with lockConnection and unlockConnection subcommands.
  • Added uaClient getService uaClientNodeRegistration command, with registerNode and unregisterNode subcommands.
  • Added --OutputFieldsById|-ofbi option to the uaSubscriber subscribeDataSet command. When used, the fields in the dataset messages are outputted with their dataset field Ids, instead of field names.
  • Added --DataSetFieldId|-dsfi <guid> option to the uaSubscriber subscribeDataSetField command. The option allows to specify the dataset field Id (a GUID) of the field to be subscribed to (as an alternative to specifying the field name), when metadata is available.
  • More dense output of trace entries, by shortening the trace event type column to a 3-letter symbol.

Examples

OPC UA Client-Server

  • Added a C# example showing how to lock and unlock connections to an OPC UA server, using the new IEasyUAClientConnectionControl service.
  • Added a C# example showing how to register an unregister nodes in an OPC UA server, using the new IEasyUAClientNodeRegistration service.
  • Added a VBScript example showing how to connections to and disconnections from the OPC UA server, using the IEasyUAClientConnectionMonitoring service and the event pull mechanism.