What's new in QuickOPC 2018.2

From OPC Labs Knowledge Base
Jump to navigation Jump to search


See also: Versions; Previous version: What's new in QuickOPC 2018.1

Internal version number: 5.53

Key changes:

  • (tbd)


Targeting

  • Added official support for .NET Framework 4.7.1.
  • Added support for Windows Server version 1709 (x64) and Windows Server 2016 Core (x64), with limitations. Only runtime (no development) is supported under Server Core systems, and some minor features in the GUI (such as launching a browser from the controls or dialogs) do not work. For details, consult the documentation.
  • Development tools: Visual Studio 2017 Community added to the list of primary development tools.

Licensing

  • The OpcLabs.BaseLibForms assembly now uses Krypton software library, and if you redistribute this assembly, you need to comply with its license terms (permissive license that, in principle, only requires a proper attribution). Krypton software license terms are included in the documentation.
  • The (GUI-based) License Manager utility and the (console-based) LMConsole utility now (in addition to .BIN files) also accept license key files with .TXT extension (in Base64 format).

Installation and Uninstallation

  • Significantly reduced the size of the full installer by moving the documentation file for Visual Studio integration to a Web location instead. The installer downloads this file automatically when needed.
  • The Full Installer gives a warning when run on Server Core system (such as Windows Server version 1709), suggesting that the user should use the Production Installer instead.

Component Improvements

  • Added a boolean DiscardOldest property to UAMonitoringParameters. The value specifies whether to discard the oldest notification when a new notification is to be queued into a full queue. Default is 'true' (i.e. gives the same behavior as in previous versions).
  • Added UACallArguments constructor overloads that accept an array of TypeCode as an argument (previously, just array of Type was supported).
  • Performance improvements in OPC UA when large number of elements is involved in Read, Write, CallMethod or Subscribe.

OPC UA Discovery

  • Added DiscoveryUriStrings collection to the UAApplicationElement class. Contains possibly multiple discovery URLs for an application. The existing DiscoveryUriString property is now derived from this collection, and contains a non-empty string if the collection contains precisely one discovery URL.
  • Added a boolean Flatten property to the UAApplicationDiscoveryQuery and UALocalDiscoveryQuery classes, and overloads with a boolean flatten argument to the DiscoverApplications, DiscoverServers and FindApplications methods. This property or parameter determines whether one element will be returned for each discovery URL.

OPC UA Endpoint Selection

  • When the effective endpoint selection policy specifies that no OPC UA security is to be used, the component now (by default) connects to the server without a call to the discovery (GetEndpoints service). This makes the connection process faster, and allows (insecure) connections to servers that do not support the GetEndpoints service.
  • Added a TransportProfileUriString property to the UAEndpointSelectionPolicy class. When not an empty string, specifies the required transport profile string of the endpoint.
  • Added a TransportProfileDisplayName property to the UAEndpointSelectionPolicy class. When not an empty string, specifies the display name of the required transport profile of the endpoint.
  • Added a DataEncodingName property to the UAEndpointSelectionPolicy class. Specifies the name of the data encoding of the endpoint (Binary, XML, or an empty string for both).
  • Added a ProtocolName property to the UAEndpointSelectionPolicy class. Specifies the name of the protocol of the endpoint (HTTP, HTTPS, TCP, or an empty string for any of them).
  • Added a RequireAuthentication property to the UAEndpointSelectionPolicy class. Specifies whether authentication of the communication parties is required.
  • Added a RequireConfidentiality property to the UAEndpointSelectionPolicy class. Specifies whether communication confidentiality is required (usually provided by encryption).
  • Added a RequireIntegrity property to the UAEndpointSelectionPolicy class. Specifies whether communication integrity is required (usually provided by signing).
  • Added a RejectObsoleteSecurityPolicies property to the UAEndpointSelectionPolicy class. Specifies whether endpoints with obsolete security policies will be rejected.
  • Added an EndpointSelectionPolicy property to the UAEndpointDescriptor class. When set to non-null, it overrides the endpoint selection policy specified in the session parameters, and allows to specify the policy just for this endpoint.
  • Added a SecurityPolicyDisplayName property to the UAEndpointSelectionPolicy. When not an empty string, specifies the display name of the required security policy of the endpoint.
  • Added static NoMessageSecurity property to the UAEndpointSelectionPolicy class. Contains and endpoint selection policy that only allows connections with no message security.
  • Added static GuaranteedIntegrity property to the UAEndpointSelectionPolicy class. Contains and endpoint selection policy that guarantees communication integrity.
  • Added static GuaranteedIntegrityExcludingObsolete property to the UAEndpointSelectionPolicy class. Contains and endpoint selection policy that guarantees communication integrity, excluding obsolete security policies.
  • Added static GuaranteedIntegrityAndConfidentiality property to the UAEndpointSelectionPolicy class. Contains and endpoint selection policy that guarantees integrity and confidentiality, excluding obsolete security policies.
  • For easier usage, added various constructor overloads to the UAEndpointSelectionPolicy class.
  • Added SecurityPolicyUri and TransportProfileUri properties to the UAEndpointSelectionPolicy. They correspond to the SecurityPolicyUriString and TransportProfileUriString properties, but allow to work with values typed as System.Uri (and not a string).
  • Added a read-only IsPrecise property to the UAEndpointSelectionPolicy. Determines whether the endpoint selection policy specifies (together with a URL) a precise endpoint.
  • Added static class UATransportProfileUriStrings, with list of OPC UA transport profile URI strings.

Component Refactorings

  • The UAApplicationElementCollection is no longer keyed by the discovery URL of the application element, and has been turned into a regular collection.
  • Renamed UAEndpointDiscoveryQuery class to UAApplicationDiscoveryQuery.

User Interface

  • The context menu on OPC UA endpoint nodes now contains an additional "Endpoint Selection Policy..." command, allowing the user to influence the endpoint selection on specific node only.
  • The context menu on OPC UA endpoint nodes now contains an additional "Certificate Acceptance Policy..." command, allowing the user to influence how the certificates are accepted on that specific endpoint only.
  • The User Identity dialog (available through context menu on OPC UA endpoint nodes) now contains an an additional Properties tab with detailed settings organized in a property grid.
  • The User Identity command, and other context menu commands son the OPC UA endpoint nodes that modify some endpoint parameters, now have a visual distinction when the corresponding parameters differ from the default. The non-default value is indicated by a blue square border around the icon associated with the command.

OPC UA Endpoint Selection Policy Editor

  • Introduced "OPC UA Endpoint Selection Policy" editor, with lots of options to influence the policy.
  • The user can specify the policy using individual controls for policy aspects such as message security mode, security policy name, data encoding etc. Alternatively, a policy from a set of pre-defined policies can be easily chosen, ranging from no message security up to a fully secured policy.
  • The editor includes policy security ranking algorithm which immediately shows whether and when the policy provides communication authentication, confidentiality and/or integrity. In addition, the user can check a box next to each of these security objectives, and require the policy to fulfill the associated objective.
  • The editor includes a policy analyzer which immediately show errors, warning and informational messages associated with the current policy settings.
  • The Advanced and Properties tabs of the editor allow the user to influence every detailed aspect of the policy.

Developer Tool Integration

  • When OPC UA client session parameters or OPC UA endpoint descriptor are presented in Visual Studio property grid, the developer can invoke the OPC UA Endpoint Selection Policy Editor to comfortably view and modify the policy options.
  • When a UAQualifiedName is presented in Visual Studio property grid, it is possible to enter its string representation directly into the property grid row.
  • When UAMonitoringParameters.EncodingName is presented in Visual Studio property grid, it is possible to use a drop-down to select from the two commonly used values ("Default Binary" or "Default XML").

Excel Option

  • Added a new documentation topic explaining the installation of the Excel Option (the choices to be made in the Setup program).

Instrumentation

  • Added warning log entry when OPC UA application name contains improper characters.
  • Added informational log entry when the effective endpoint selection policy has warnings.
  • Added informational log entry listing the parameters of the preselected (and normalized) OPC UA endpoint.
  • Added informational log entry listing the parameters of the endpoint when it has been synthetised (without preselection).

Tools

Connectivity Explorer

  • The main application windows (Point Editor, Parameters Editor, and Live Point Data) are now part of a docking workspace that allows you to arrange them in various ways (drag-and-drop to move between the cells, or dock, make floating or auto-hidden) or close.
  • The Event Records window (opens as floating window initially) can now be docked and/or manipulated in a similar way as the main application windows.
  • Added commands under the View menu to open or re-open the individual main application windows (Point Editor, Parameters Editor, and Live Point Data).
  • Added Window -> Reset Window Layout command, to restore the original structure of application windows.
  • Data change filter for OPC-UA Attribute Point can now be comfortably edited, without having to switch to Properties tab. This includes all trigger choices, deadband type choices, and the actual absolute or percentual deadband value (using a numerical up-down control, or a slider).
  • Percent deadband for OPC-DA Item Point can now be comfortably edited, using a numerical up-down control, or a slider, and without having to switch to Properties tab.
  • Drop-down combos for point type now include an icon that corresponds to the selected point type.
  • Enriched some menu commands by icons.

Documentation and Help

  • Improved navigation for examples.
  • As described above (Installation and Uninstallation), the Visual Studio help contents is now downloaded from a Web location.

Examples

  • Added C# examples where so far only COM-based examples existed.
  • Improved Delphi (Object Pascal) examples with proper use of automatic reference counting (ARC) and explicit object deallocation (prevent memory leaks).