What's new in QuickOPC 2022.2
From OPC Labs Knowledge Base
See also: Versions; Previous version: What's new in QuickOPC 2022.1
Internal version number: 5.70
Key changes:
- Changes in packaging
Targeting
- Minimum supported .NET Framework version is now 4.7.2 (was 4.7).
- .NET 5.0 is no longer supported.
- The primary development tool is now Visual Studio 2022.
Technology
- In both the .NET Framework and .NET Standard targetings, the OPC UA code is now based on OPC Foundation .NET Stack and SDK version 1.4.368.53. The "legacy" OPC Foundation .NET stack is no longer used.
Licensing
- When validity check fails (LicenseException), the component now writes a warning entry into the Windows event log, with details about the failure. This helps troubleshoot licensing problems in case the application itself does not provide good enough means to observe the error message.
Packaging
Component Improvements
OPC UA Client-Server
- The component now keeps data related to a session in memory for some time after the session has been closed ("dormant session"). This allows faster reconnection later. The period for which the session data is kept in memory after the session is closed is configurable by the UASmartSessionParameters.DormancyPeriod property. The maximum count of sessions that can be kept in the dormant state is configurable in the UASmartEngineParameters.MaximumDormantSessions property.
- The preselected endpoint data are kept for some period in memory and reused, resulting in faster reconnections, because the OPC UA GetEndpoint service call is not repeated. The period defaults to 1 minute and is configurable in the UAClientSessionParameters.PreselectedEndpointValidityPeriod property.
- Made the connection process quicker by delaying the creation of status subscription (used for monitoring the server status).
- Optimized the number of Read service calls needed upon a connection to an OPC UA server.
OPC UA PubSub
- With MQTT transport protocol mapping, it is no longer necessary to specify whether UADP or JSON will be used as message mapping. QuickOPC will automatically recognize the message mapping, and is able to receive both UADP and JSON messages on the same connection. For more information, see OPC UA PubSub Automatic Message Mapping Recognition and OPC UA PubSub Transport Profiles.
- The JSON message mapping now also accepts transport messages that are (incorrectly) formatted as an array of network messages, in order to better cope with non-standard publishers like Azure Industrial IoT Platform.
- Added a boolean Retain property to the UADataSetHeader class. Determines whether the dataset message is retained by the server (MQTT).
- Retained messages (MQTT) are now automatically "replayed" on new subscriptions, even if the MQTT subscription to a particular topic is shared among multiple readers.
- Added OriginPattern property to the UASubscribeDataSetFilter class. It allows to specify a filtering pattern for the origin of the dataset message. The origin is e.g. a MAC address in the Ethernet transport, the IP address in the UDP transport, or the topic name in the MQTT transport.
- Added MessageMappingName property to the UADataSetHeader class. Contains the name of the message mapping ("Json" or "Uadp"), if known.
- The UAPublisherId and UADataSetHeader classes now implement the IComparable<> interface.
- It is now possible to subscribe to an MQTT broker, while storing a copy of the received message into a file system at the same time, e.g. for troubleshooting. For more information, see File-based MQTT emulation - Implicit Usage in MQTT Transport and File-based MQTT emulation - Examples.
- When specifying custom properties on PubSub objects, it is possible to shorten the commonly used namespace http://opclabs.com/OpcUA/PubSub to {OpcLabs}, using a pre-defined replacement variable.
Performance
- The EasyDAClient and EasyUAClient components perform a hidden internal "warm-up" operation upon their first instantiation, improving performance of a subsequent user-initiated operation in some cases.
Tools and Online Services
Connectivity Explorer
- The Connectivity Explorer is now able to collect anonymous usage data that we use to improve the product. On the first run, the user is asked for consent with data collection. The consent can also be withdrawn at any time.
Demo Servers and Publishers
- In UADemoPublisher, specifying a "file:" scheme with MQTT transport automatically selects the File-based MQTT emulation, i.e. the generated messages will be stored in form of files in directories of the physical file system.
- In UADemoPublisher, it is possible to publish to a "real" MQTT broker, while storing a copy of the generated message into a file system at the same time. For more information, see File-based MQTT emulation - Implicit Usage in MQTT Transport and File-based MQTT emulation - Examples.
OpcCmd Utility
- Using a "[]" after the type code, and with element list in '{' and '}', it is now possible specify array values (e.g. for writing).
- The table of dataset header counts, displayed at the end of uaSubscriber subscribeDataSet command execution, is now ordered by publisher Id, writer group dataset writer Id&name, dataset class Id, and origin.
- Added --DistinctHeadersOnly (-dho) option to the uaSubscriber subscribeDataSet command. The options changes the command output so that only dataset header information is displayed, and only when a dataset with a new, distinct header is received. With this option, you can easily collect information about "who is publishing" over a period of time.
- Added --OriginPattern (-op) option to the uaSubscriber subscribeDataSet command. It allows to specify a filtering pattern for the origin of the dataset message. The origin is e.g. a MAC address in the Ethernet transport, the IP address in the UDP transport, or the topic name in the MQTT transport.
- It is now possible to subscribe to an MQTT broker, while storing a copy of the received message into a file system at the same time, e.g. for troubleshooting. For more information, see File-based MQTT emulation - Implicit Usage in MQTT Transport and File-based MQTT emulation - Examples.
- The OpcCmd Utility is now able to collect anonymous usage data that we use to improve the product. On the first run, the user is asked for consent with data collection. The consent can also be withdrawn at any time.
Examples
OPC UA Client-Server
- Added C# and VB.NET examples showing how to write a value that is an array.
- Added VBScript example showing how to lock and unlock a connection to an OPC UA server.
Excel Option
- The demo worksheet for the Excel Option now contains "error cells". In case of an error, they show the associated error message - one for each OPC specification supported.