What's New - OPC Data Client 2018.2 (5.53)
Key changes: - Miscellaneous improvements
Download the latest version here
Targeting
- Added official support for .NET Framework 4.7.1.
- Added official support for .NET Framework 4.7.2.
- 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, or browsing for computers directly) may not not work. For details, consult the documentation.
- Development tools: Visual Studio 2017 Community added to the list of primary development tools.
- Removed Windows 8.1 from the list of supported operating systems
- Removed .NET Framework 4.6.1 (but not 4.6 or 4.5.2) from the list of supported .NET runtimes.
Technology
- Updated to newer BoxedApp SDK: 2018.2.
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
ServerCertificateByteArrayandServerCertificateproperties to theUAEndpointDescriptorclass. This allows the developer to specify the server certificate needed for secure channel communication (specifying the server certificate is normally not needed, unless you want to improve the time needed for connection or the server does not support the GetEndpoints service). - With precisely specified effective endpoint selection policy, when no OPC UA security is to be used, or when the server certificate is presented in the endpoint descriptor, 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 boolean
DiscardOldestproperty toUAMonitoringParameters. 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
UACallArgumentsconstructor overloads that accept an array ofTypeCodeas an argument (previously, just array ofTypewas supported). - Performance improvements in OPC UA when large number of elements is involved in Read, Write, CallMethod or Subscribe.
OPC UA Discovery
- Added
UALocalEndpointDiscoveryQueryclass as a type of discovery query, and a correspondingDiscoverLocalEndpointsmethod. Allows performing a query using the GetEndpoints OPC UA service on the specified discovery endpoint, and returns the endpoints discovered. - Added
DiscoveryUriStringscollection to theUADiscoveryElementclass. Contains possibly multiple discovery URLs for an application. The existingDiscoveryUriStringproperty is now derived from this collection, and contains a non-empty string if the collection contains precisely one discovery URL. - Added
EndpointSelectionPolicy,EndpointUriString,ServerCertificateandServerCertificateByteArrayproperties to theUADiscoveryElementclass. In addition, when information contained in these properties is provided as a result from discovery, the methods and operators that convertUADiscoveryElementtoUAEndpointDescriptorwill copy it over to the endpoint descriptor, assuring that the endpoint with the same properties will be used. - Added a boolean
Flatproperty to theUALocalApplicationDiscoveryQueryclass, and overloads with a booleanflatargument to theDiscoverLocalApplications,DiscoverLocalServersandFindLocalApplicationsmethods. This property or parameter determines whether one element will be returned for each discovery URL.
OPC UA Endpoint Selection
- Added a
TransportProfileUriStringproperty to theUAEndpointSelectionPolicyclass. When not an empty string, specifies the required transport profile string of the endpoint. - Added a
TransportProfileDisplayNameproperty to theUAEndpointSelectionPolicyclass. When not an empty string, specifies the display name of the required transport profile of the endpoint. - Added a
DataEncodingNameproperty to theUAEndpointSelectionPolicyclass. Specifies the name of the data encoding of the endpoint (Binary, XML, or an empty string for both). - Added a
ProtocolNameproperty to theUAEndpointSelectionPolicyclass. Specifies the name of the protocol of the endpoint (HTTP, HTTPS, TCP, or an empty string for any of them). - Added a
RequireAuthenticationproperty to theUAEndpointSelectionPolicyclass. Specifies whether authentication of the communication parties is required. - Added a
RequireConfidentialityproperty to theUAEndpointSelectionPolicyclass. Specifies whether communication confidentiality is required (usually provided by encryption). - Added a
RequireIntegrityproperty to theUAEndpointSelectionPolicyclass. Specifies whether communication integrity is required (usually provided by signing). - Added a
RejectObsoleteSecurityPoliciesproperty to theUAEndpointSelectionPolicyclass. Specifies whether endpoints with obsolete security policies will be rejected. - Added an
EndpointSelectionPolicyproperty to theUAEndpointDescriptorclass. 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
SecurityPolicyDisplayNameproperty to theUAEndpointSelectionPolicy. When not an empty string, specifies the display name of the required security policy of the endpoint. - Added static
NoMessageSecurityproperty to theUAEndpointSelectionPolicyclass. Contains and endpoint selection policy that only allows connections with no message security. - Added static
GuaranteedIntegrityproperty to theUAEndpointSelectionPolicyclass. Contains and endpoint selection policy that guarantees communication integrity. - Added static
GuaranteedIntegrityExcludingObsoleteproperty to theUAEndpointSelectionPolicyclass. Contains and endpoint selection policy that guarantees communication integrity, excluding obsolete security policies. - Added static
GuaranteedIntegrityAndConfidentialityproperty to theUAEndpointSelectionPolicyclass. Contains and endpoint selection policy that guarantees integrity and confidentiality, excluding obsolete security policies. - For easier usage, added various constructor overloads to the
UAEndpointSelectionPolicyclass. - Added
SecurityPolicyUriandTransportProfileUriproperties to theUAEndpointSelectionPolicy. They correspond to theSecurityPolicyUriStringandTransportProfileUriStringproperties, but allow to work with values typed asSystem.Uri(and not a string). - Added a read-only
IsPreciseproperty to theUAEndpointSelectionPolicy. 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
OPC UA Discovery
- The
UADiscoveryElementCollectionis no longer keyed by the discovery URL of the discovery element, and has been turned into a regular collection. - Renamed various types, according to following table.
| Old name | New name |
|---|---|
UAApplicationElement |
UADiscoveryElement |
UAApplicationElementCollection |
UADiscoveryElementCollection |
UAEndpointDiscoveryQuery |
UALocalApplicationDiscoveryQuery |
UAGlobalDiscoveryQuery |
UAGlobalApplicationDiscoveryQuery |
UALocalDiscoveryQuery |
UALocalApplicationDiscoveryQuery |
UANetworkDiscoveryQuery |
UANetworkServerDiscoveryQuery |
UAQueryServersFilter |
UAQueryApplicationsFilter |
- Renamed some properties, according to following table.
| Old name | New name |
|---|---|
UAEndpointDialog.ApplicationElement |
UAEndpointDialog.DiscoveryElement |
UAHostAndEndpointDialog.ApplicationElement |
UAHostAndEndpointDialog.DiscoveryElement |
- Renamed various methods on
IEasyUAClient,_EasyUAClient,EasyUAClient,IEasyUAClientExtension, according to following table.
| Old name | New name |
|---|---|
DiscoverApplications(UADiscoveryQuery) |
Discover |
DiscoverApplications - other overloads |
DiscoverLocalApplications |
DiscoverServers |
DiscoverLocalServers |
DiscoverServersOnNetwork |
DiscoverNetworkServers |
FindApplications |
FindLocalApplications |
QueryServers |
DiscoverGlobalServers |
User Interface
OPC UA Endpoint Browsing
- In Connectivity Explorer and in Live Binding configuration, new nodes appear in browsing that allow OPC UA network discovery using LDS-ME (Local Discovery Server with Multicast Extensions).
- 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.
- Browsing for OPC UA endpoints now shows the discovery endpoints in two levels, instead in a flat level. The first level are the OPC UA applications (servers), and on the second level, the actual discovery endpoints for each server are listed.
- Browsing for OPC UA endpoints: On the context menu for OPC UA Host nodes, there are now radio buttons that allow the user to choose how the sub-nodes will be shown: Either organized by OPC UA applications, or a flat list of discovery URIs.
- Browsing for OPC UA endpoints: It is now possible to browse the session endpoints (with their security policy, transport profile etc.). The user can switch to the them using the context or Tools menu on the level of application (server) nodes, or discovery endpoints.
- Added context menu entries that allow the user to choose how the discovery endpoints or session endpoints will be displayed. For discovery endpoints, the options (depending on context) are URL/URL, Application Name/Scheme. For session endpoints, the options are URL, Policy Specifier/Scheme, Policy Specifier/Policy, Mode, Profile.
- The URLs in the endpoint browsing UI are shortened (by replacing the host name by "...") whenever the host name is evident from the ancestor node, making it easier to read, and fit into the view.
- 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
UAQualifiedNameis presented in Visual Studio property grid, it is possible to enter its string representation directly into the property grid row. - When
UAMonitoringParameters.EncodingNameis 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 synthesized (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.
- Added a Solution Navigator bar (initially docked at the left edge of the application window) to switch between main functionalities of the program.
- Added new windows, Address Space browse and Address Space Graph, and ability to navigate to them from the nodes in Point Editor. The new windows allow visualizing the address space of OPC Classic and OPC UA server in different ways.
- 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.
- The Event Records window now has icons next to connectivity log entries, corresponding to the entry type (Error, Warning, Information, Success Audit or Failure Audit).
- The "View entry" button in Event Records window, when used on Connectivity log entries, now leads to a viewer where the log entry is displayed in a user-friendly manner.
- 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).