OPC UA Servers can support several different functionalities and capabilities. The following standard Objects are used to expose these capabilities in a common fashion, and there are several standard defined concepts that can be extended by vendors. The Objects are outlined in OPC 10000-1.
Figure 7 – Server and HistoryServer Capabilities
The ServerCapabilitiesType Objects for any OPC UA Server supporting Historical Access shall contain a Reference to a HistoryServerCapabilitiesType Object.
The content of this BaseObjectType is already defined by its type definition in OPC 10000-5. The Object extensions are formally defined in Table 13.
These properties are intended to inform a Client of the general capabilities of the Server. They do not guarantee that all capabilities will be available for all Nodes. For example, not all Nodes will support Events, or in the case of an aggregating Server where underlying Servers may not support Insert or a particular Aggregate. In such cases the HistoryServerCapabilities Property would indicate the capability is supported, and the Server would return appropriate StatusCodes for situations where the capability does not apply.
Table 13 – HistoryServerCapabilitiesType Definition
Attribute |
Value |
||||
BrowseName |
HistoryServerCapabilitiesType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
Browse Name |
Data Type |
Type Definition |
Modelling Rule |
HasProperty |
Variable |
AccessHistoryDataCapability |
Boolean |
PropertyType |
Mandatory |
HasProperty |
Variable |
AccessHistoryEventsCapability |
Boolean |
PropertyType |
Mandatory |
HasProperty |
Variable |
MaxReturnDataValues |
UInt32 |
PropertyType |
Mandatory |
HasProperty |
Variable |
MaxReturnEventValues |
UInt32 |
PropertyType |
Mandatory |
HasProperty |
Variable |
InsertDataCapability |
Boolean |
PropertyType |
Mandatory |
HasProperty |
Variable |
ReplaceDataCapability |
Boolean |
PropertyType |
Mandatory |
HasProperty |
Variable |
UpdateDataCapability |
Boolean |
PropertyType |
Mandatory |
HasProperty |
Variable |
DeleteRawCapability |
Boolean |
PropertyType |
Mandatory |
HasProperty |
Variable |
DeleteAtTimeCapability |
Boolean |
PropertyType |
Mandatory |
HasProperty |
Variable |
InsertEventCapability |
Boolean |
PropertyType |
Mandatory |
HasProperty |
Variable |
ReplaceEventCapability |
Boolean |
PropertyType |
Mandatory |
HasProperty |
Variable |
UpdateEventCapability |
Boolean |
PropertyType |
Mandatory |
HasProperty |
Variable |
DeleteEventCapability |
Boolean |
PropertyType |
Mandatory |
HasProperty |
Variable |
InsertAnnotationCapability |
Boolean |
PropertyType |
Mandatory |
HasComponent |
Object |
AggregateFunctions |
-- |
FolderType |
Mandatory |
HasProperty |
Variable |
Boolean |
PropertyType |
Optional |
|
ConformanceUnits |
|||||
All UA Servers that support Historical Access shall include an instance of HistoryServerCapabilitiesType as part of its ServerCapabilities.
The AccessHistoryDataCapability Variable defines if the Server supports access to historical data values. A value of True indicates the Server supports access to the history for HistoricalDataNodes, a value of False indicates the Server does not support access to the history for HistoricalDataNodes. The default value is False. At least one of AccessHistoryDataCapability or AccessHistoryEventsCapability shall have a value of True for the Server to be a valid OPC UA Server supporting Historical Access.
The AccessHistoryEventsCapability Variable defines if the server supports access to historical Events. A value of True indicates the server supports access to the history of Events, a value of False indicates the Server does not support access to the history of Events. The default value is False. At least one of AccessHistoryDataCapability or AccessHistoryEventsCapability shall have a value of True for the Server to be a valid OPC UA Server supporting Historical Access.
The MaxReturnDataValues Variable defines the maximum number of values that can be returned by the Server for each HistoricalDataNode accessed during a request. A value of 0 indicates that the Server forces no limit on the number of values it can return. It is valid for a Server to limit the number of returned values and return a continuation point even if MaxReturnDataValues = 0. For example, it is possible that although the Server does not impose any restrictions, the underlying system may impose a limit that the Server is not aware of. The default value is 0.
Similarly, the MaxReturnEventValues specifies the maximum number of Events that a Server can return for a HistoricalEventNode.
The InsertDataCapability Variable indicates support for the Insert capability. A value of True indicates the Server supports the capability to insert new data values in history, but not overwrite existing values. The default value is False.
The ReplaceDataCapability Variable indicates support for the Replace capability. A value of True indicates the Server supports the capability to replace existing data values in history, but will not insert new values. The default value is False.
The UpdateDataCapability Variable indicates support for the Update capability. A value of True indicates the Server supports the capability to insert new data values into history if none exists, and replace values that currently exist. The default value is False.
The DeleteRawCapability Variable indicates support for the delete raw values capability. A value of True indicates the Server supports the capability to delete RawData values in history. The default value is False.
The DeleteAtTimeCapability Variable indicates support for the delete at time capability. A value of True indicates the Server supports the capability to delete a data value at a specified time. The default value is False.
The InsertEventCapability Variable indicates support for the Insert capability. A value of True indicates the Server supports the capability to insert new Events in history. An insert is not a replace. The default value is False.
The ReplaceEventCapability Variable indicates support for the Replace capability. A value of True indicates the Server supports the capability to replace existing Events in history. A replace is not an insert. The default value is False.
The UpdateEventCapability Variable indicates support for the Update capability. A value of True indicates the Server supports the capability to insert new Events into history if none exists, and replace values that currently exist. The default value is False.
The DeleteEventCapability Variable indicates support for the deletion of Events capability. A value of True indicates the Server supports the capability to delete Events in history. The default value is False.
The InsertAnnotationCapability Variable indicates support for Annotations. A value of True indicates the Server supports the capability to insert Annotations. Some Servers that support Inserting of Annotations will also support editing and deleting of Annotations. The default value is False.
AggregateFunctions is an entry point to browse to all Aggregate capabilities supported by the Server for Historical Access. All HistoryAggregates supported by the Server should be able to be browsed starting from this Object. Aggregates are defined in OPC 10000-13. If the Server does not support Aggregates the Folder is left empty.
The ServerTimestampSupported indicates the Server supports the storage of ServerTimestamps. If this Variable is not present, the Server does not support storage of ServerTimestamps.
This specification defines a manner of exposing the configuration associated with a HistoricalNode (both HistoricalDataNode and HistoricalEventNode), but this configuration is not required for all nodes. If the configuration of individual nodes is not provided for all nodes, the Historian shall expose a default instance under the Server Object. If HistoricalDataNodes exist without a referenced configuration, an Object with a BrowseName of “DefaultHAConfiguration” shall be exposed. If HistoricalEventNodes exist without configuration, an object with a BrowseName of “DefaultHEConfiguration” shall be exposed. For any Node that does not have a referenced historical configuration but does support history, the default appropriate configuration shall be applied (DefaultHAConfiguration for Variables, DefaultHEConfiguration for Objects).
A Client shall assume the default configuration for any HistoricalNode that does not reference a historical configuration.
The DefaultHAConfiguration object is defined in Table 14.
Table 14 - DefaultHAConfiguration definition
Attribute |
Value |
|||
BrowseName |
DefaultHAConfiguration |
|||
|
|
|||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
OrganizedBy by the Server Object defined in OPC 10000-5 |
||||
HasTypeDefinition |
ObjectType |
HistoricalDataConfigurationType |
Defined in 5.2.2 |
|
ConformanceUnits |
||||
Historical Access Default HA Configuration |
The DefaultHEConfiguration object is defined inTable 15.
Table 15 - DefaultHEConfiguration definition
Attribute |
Value |
|||
BrowseName |
DefaultHEConfiguration |
|||
|
|
|||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
OrganizedBy by the Server Object defined in OPC 10000-5 |
||||
HasTypeDefinition |
ObjectType |
HistoricalEventConfigurationType |
Defined in 5.4.3 |
|
ConformanceUnits |
||||
Historical Access Default HE Configuration |