Difference between revisions of "What's new in QuickOPC 2020.3"

From OPC Labs Knowledge Base
Jump to navigation Jump to search
(One intermediate revision by the same user not shown)
Line 29: Line 29:
 
== Component Improvements ==
 
== Component Improvements ==
 
* Added {{Style=Identifier|HasServerTimestamp}} and {{Style=Identifier|HasSourceTimestamp}} properties to the {{Style=Identifier|UADataValue}} class (and therefore, also to the derived {{Style=Identifier|UAAttributeData}} and {{Style=Identifier|UADataSetFieldData}} classes). These properties determine whether there is a (non-default) server or source timestamp in the data value.
 
* Added {{Style=Identifier|HasServerTimestamp}} and {{Style=Identifier|HasSourceTimestamp}} properties to the {{Style=Identifier|UADataValue}} class (and therefore, also to the derived {{Style=Identifier|UAAttributeData}} and {{Style=Identifier|UADataSetFieldData}} classes). These properties determine whether there is a (non-default) server or source timestamp in the data value.
 +
=== OPC UA Client-Server ===
 +
* Added {{Style=Identifier|TestEndpoint}} extension method on {{Style=Identifier|IEasyUAClient}}. The method tests whether an operational connection can be established to the specified endpoint of an OPC UA server.
 +
* For consistency, renamed the {{Style=Identifier|Uri}} property in the {{Style=Identifier|ResourceDescriptor}} class to {{Style=Identifier|Url}} (in line with its {{Style=Identifier|UrlString}} property). All derived classes are of course also affected - including {{Style=Identifier|ServerDescriptor}} and {{Style=Identifier|UAEndpointDescriptor}}.
 +
=== OPC UA PubSub ===
 +
* Added {{Style=Identifier|TestConnection}} and {{Style=Identifier|TestConnectionAsync}} methods on {{Style=Identifier|IEasyUASubscriber}}. The methods test whether an OPC UA PubSub connection can be successfully established.
 +
* Added {{Style=Identifier|TestSubscription}} and {{Style=Identifier|TestSubscriptionAsync}} methods on {{Style=Identifier|IEasyUASubscriber}}. The methods test whether an OPC UA PubSub subscription can be successfully established.
 
* Factored out base {{Style=Identifier|UADataSetHeader}} class from the {{Style=Identifier|UADataSetData}} class. The {{Style=Identifier|UADataSetHeader}} can be used e.g. to distinguish dataset data that represent different datasets.
 
* Factored out base {{Style=Identifier|UADataSetHeader}} class from the {{Style=Identifier|UADataSetData}} class. The {{Style=Identifier|UADataSetHeader}} can be used e.g. to distinguish dataset data that represent different datasets.
 
* Added {{Style=Identifier|HasConfigurationVersion}} and {{Style=Identifier|HasTimestamp}} properties to the {{Style=Identifier|UADataSetHeader}} class.  
 
* Added {{Style=Identifier|HasConfigurationVersion}} and {{Style=Identifier|HasTimestamp}} properties to the {{Style=Identifier|UADataSetHeader}} class.  
 
* Added {{Style=Identifier|MajorVersionDateTimeLocal}} and {{Style=Identifier|MinorVersionDateTimeLocal}} properties to the {{Style=Identifier|UAConfigurationVersion}} class.
 
* Added {{Style=Identifier|MajorVersionDateTimeLocal}} and {{Style=Identifier|MinorVersionDateTimeLocal}} properties to the {{Style=Identifier|UAConfigurationVersion}} class.
 
* Accompanied each string-typed {{Style=Identifier|''XXXX''UriString}} or {{Style=Identifier|''XXXX''UrlString}} property by a corresponding {{Style=Identifier|Uri}}-typed {{Style=Identifier|''XXXX''Uri}} or {{Style=Identifier|''XXXX''Url property}} (only in .NET, because the Uri class is not COM-visible).
 
* Accompanied each string-typed {{Style=Identifier|''XXXX''UriString}} or {{Style=Identifier|''XXXX''UrlString}} property by a corresponding {{Style=Identifier|Uri}}-typed {{Style=Identifier|''XXXX''Uri}} or {{Style=Identifier|''XXXX''Url property}} (only in .NET, because the Uri class is not COM-visible).
* For consistency, renamed the {{Style=Identifier|Uri}} property in the {{Style=Identifier|ResourceDescriptor}} class to {{Style=Identifier|Url}} (in line with its {{Style=Identifier|UrlString}} property). All derived classes are of course also affected - including {{Style=Identifier|ServerDescriptor}} and {{Style=Identifier|UAEndpointDescriptor}}.
+
* Based on UA Specification Errata 1.04, the {{Style=Identifier|UAPublisherId}} class no longer allows zero numeric identifiers, or empty string identifiers.
 
=== COM Components ===
 
=== COM Components ===
 
* Added {{Style=Identifier|AddRange}} method to {{Style=Identifier|ElasticVector}}. Among other uses, it can be used in Xojo to convert a keyed collection to an elastic vector, and index its elements by integers, as a workaround for Xojo inability to enumerate the collections using COM interface method {{Style=Identifier|GetEnumerator}}.
 
* Added {{Style=Identifier|AddRange}} method to {{Style=Identifier|ElasticVector}}. Among other uses, it can be used in Xojo to convert a keyed collection to an elastic vector, and index its elements by integers, as a workaround for Xojo inability to enumerate the collections using COM interface method {{Style=Identifier|GetEnumerator}}.
Line 40: Line 46:
 
* Added {{Style=Identifier|As''XXXX''DataType}} methods to the {{Style=Identifier|_DataType}} COM interface, allowing the data type downcasting for tools like PHP.
 
* Added {{Style=Identifier|As''XXXX''DataType}} methods to the {{Style=Identifier|_DataType}} COM interface, allowing the data type downcasting for tools like PHP.
 
* In order to allow passing 'null' to nullable array arguments from VBScript, consistently changed corresponding argument types in COM interfaces from "''Type''[]" to "object".
 
* In order to allow passing 'null' to nullable array arguments from VBScript, consistently changed corresponding argument types in COM interfaces from "''Type''[]" to "object".
* Based on UA Specification Errata 1.04, the {{Style=Identifier|UAPublisherId}} class no longer allows zero numeric identifiers, or empty string identifiers.
 
 
<!--
 
<!--
 
=== COM ===
 
=== COM ===

Revision as of 06:39, 2 June 2020


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

Internal version number: 5.59

Key changes:

  • Usability improvements


Licensing

  • Improved the licensing error messages. Besides more precise wording, the typical messages now contain the list of (serial numbers of) licenses that were considered but dropped, together with their "release date covered" field, which is frequently the cause for the license not being recognized.
  • Added text to License Manager dialog, explaining that licenses with Active status are not necessarily valid, depending on the particular combination of the component and environment status, and that the capabilities of the component itself should be used to check the license validity.

Packaging

  • Added a new assembly OpcLabs.DotProlog to the product. It is needed whenever you use OpcLabs.BaseLibForms or OpcLabs.EasyOpcForms assemblies, but it does not need to be referenced in your project.

Installation and Uninstallation

  • The setup log file now includes product version and build number information.

Component Improvements

  • Added HasServerTimestamp and HasSourceTimestamp properties to the UADataValue class (and therefore, also to the derived UAAttributeData and UADataSetFieldData classes). These properties determine whether there is a (non-default) server or source timestamp in the data value.

OPC UA Client-Server

  • Added TestEndpoint extension method on IEasyUAClient. The method tests whether an operational connection can be established to the specified endpoint of an OPC UA server.
  • For consistency, renamed the Uri property in the ResourceDescriptor class to Url (in line with its UrlString property). All derived classes are of course also affected - including ServerDescriptor and UAEndpointDescriptor.

OPC UA PubSub

  • Added TestConnection and TestConnectionAsync methods on IEasyUASubscriber. The methods test whether an OPC UA PubSub connection can be successfully established.
  • Added TestSubscription and TestSubscriptionAsync methods on IEasyUASubscriber. The methods test whether an OPC UA PubSub subscription can be successfully established.
  • Factored out base UADataSetHeader class from the UADataSetData class. The UADataSetHeader can be used e.g. to distinguish dataset data that represent different datasets.
  • Added HasConfigurationVersion and HasTimestamp properties to the UADataSetHeader class.
  • Added MajorVersionDateTimeLocal and MinorVersionDateTimeLocal properties to the UAConfigurationVersion class.
  • Accompanied each string-typed XXXXUriString or XXXXUrlString property by a corresponding Uri-typed XXXXUri or XXXXUrl property (only in .NET, because the Uri class is not COM-visible).
  • Based on UA Specification Errata 1.04, the UAPublisherId class no longer allows zero numeric identifiers, or empty string identifiers.

COM Components

  • Added AddRange method to ElasticVector. Among other uses, it can be used in Xojo to convert a keyed collection to an elastic vector, and index its elements by integers, as a workaround for Xojo inability to enumerate the collections using COM interface method GetEnumerator.
  • In COM-visible objects, consistently added SetXXXX methods to accompany each property setter whose argument is System.Object. This allows such properties be set from Visual Basic 6.0 with early binding.
  • For COM tools (such as PHP) that do not allow to navigate between COM interfaces of an object, or provide an "amalgamated" set of members from multiple interfaces, when a specific interface is returned by a property or method, added InteropHelper object with the AsObject method. By passing the object through this method, the consuming COM tool is forced to use late binding, allowing the intended members be accessed.
  • Added AsXXXXDataType methods to the _DataType COM interface, allowing the data type downcasting for tools like PHP.
  • In order to allow passing 'null' to nullable array arguments from VBScript, consistently changed corresponding argument types in COM interfaces from "Type[]" to "object".

User Interface

  • Added "Test Server Connection" command to context menu on OPC UA endpoint nodes in browsing controls and dialogs. The commands attempts to make a connection to the OPC UA server using the selected endpoint, and displays the outcome. This affects user interface displayed by tools (such as in Live Mapping, or in Connection Explorer), and also the interface to the end user, such as through UAHostAndEndpointDialog, or UABrowseControl components.

Examples

  • Retested the Xojo examples with Xojo 2019r3.1.

OPC Classic

  • Added larger number of C# examples, showing e.g. how to browse access paths, browse branches, browse leaves, browse properties, browse servers, read item value with specifying server's CLSID, read multiple items "from device", do many reads repeatedly, perform synchronous OPC read, read multiple item values, unsubscribe all or multiple items, write an item (including timestamp and quality), list OPC categories that the server implements, and more.
  • Added C# FormsDocExamples project, with examples for user interface (showing various browsing dialogs for OPC Classic), and added these C# examples to conceptual&reference documentation.

OPC UA

  • Added pair of examples UAWcfService1 and UAWcfClient1 (C#): A simple Web service using WCF technology. Provides a GetData method to read a value of an OPC UA variable. Accompanied by a console-based client code.
  • Added example UAWindowsService1 (C#): A Windows Service that subscribes to variables from the OPC UA sample server, and logs their changes into a file.
  • Added C# example that shows how to read value of server's NamespaceArray, and display the namespace URIs in it.
  • Added C# example that shows how to write an ever-incrementing value to an OPC UA variable.
  • Added C# UAFormsDocExamples project, with examples for user interface (showing various browsing dialogs for OPC UA), and added these C# examples to conceptual&reference documentation.

Documentation and Help

  • Made clear at multiple places that Product Option licenses (such as Excel Option or StreamInsight Option) require base product license first.
  • Improvements in the Best Practices section.

COM Components

  • Documentation for all COM objects now consistently contains "Object Creation" section, with syntax for object creation in following languages or tools: C++, Free Pascal, JScript, Object Pascal (Delphi), Perl, PHP, PowerScript, Python, REALbasic (Xojo), Visual Basic (VB 6.), Visual FoxPro, VBA, VBScript, Xbase++.
  • Added explanation of Xojo programming specific, explaining how to use the ElasticVector for enumeration of keyed collections.