OPC UA Serverscan support several different functionalities and capabilities.The following standard Objectsare used to expose these capabilities in a common fashion, and there are several standard defined concepts that can be extended by vendors.
The AggregateConfigurationType defines the general characteristics of a Nodethat defines the Aggregateconfiguration of any Variableor Property.AggregateConfiguration Objectrepresents the browse entry point for information on how the Servertreats Aggregatespecific functionality such as handling Uncertain data. It is formally defined in Table 2.
Table 2– AggregateConfigurationType Definition
Attribute 
Value 

BrowseName 
AggregateConfigurationType 

IsAbstract 
False 

References 
NodeClass 
BrowseName 
DataType 
TypeDefinition 
ModellingRule 
Subtype of the BaseObjectTypedefined in OPC 100005 

HasProperty 
Variable 
TreatUncertainAsBad 
Boolean 
PropertyType 
Mandatory 
HasProperty 
Variable 
PercentDataBad 
Byte 
PropertyType 
Mandatory 
HasProperty 
Variable 
PercentDataGood 
Byte 
PropertyType 
Mandatory 
HasProperty 
Variable 
UseSlopedExtrapolation 
Boolean 
PropertyType 
Mandatory 
The TreatUncertainAsBad Variableindicates how the Servertreats data returned with a StatusCodeseverity Uncertain with respect to Aggregatecalculations.A value of True indicates the Serverconsiders the severity equivalent to Bad, a value of False indicates the Serverconsiders the severity equivalent to Good, unless the Aggregatedefinition says otherwise. The default value is True. Note that the value is still treated as Uncertain when the StatusCodefor the result is calculated.
The PercentDataBad Variableindicates the minimum percentage of Bad data in a given interval required for the StatusCode for the given interval for processed data requestto be set to Bad. (Uncertain is treated as defined above.)Refer to 5.4.3for details on using this Variablewhen assigning StatusCodes. For details on which Aggregatesuse the PercentDataBad Variable, see the definition of each Aggregate. The default value is 100.
The PercentDataGood Variableindicates the minimum percentage of Gooddata in a given interval required for the StatusCode for the given interval for the processed data requeststo be set to Good. Refer to 5.4.3for details on using this Variablewhen assigning StatusCodes. For details on which Aggregatesuse the PercentDataGood Variable, see the definition of each Aggregate. The default value is 100.
The PercentDataGoodand PercentDataBadshall follow the following relationship PercentDataGood≥ (100 – PercentDataBad). If they are equal the result of the PercentDataGood calculation is used. If the values entered for PercentDataGoodand PercentDataBaddo not result in a valid calculation (e.g. Bad = 80; Good = 0) the result will have a StatusCode of Bad_AggregateInvalidInputs The StatusCode Bad_AggregateInvalidInputs will be returned if the value of PercentDataGoodor PercentDataBad exceed 100.
The UseSlopedExtrapolation Variableindicates how the Serverinterpolates data when no boundary value exists (i.e. extrapolating into the future from the last known value).A value of False indicates that the Serverwill use a SteppedExtrapolationformat, and hold the last known value constant.A value of True indicates the Serverwill project the value using UseSlopedExtrapolationmode.The default value is False.For SimpleBounds this value is ignored.
This Objectis used as the browse entry point for information about the Aggregates supported by a Server. The content of this Objectis already defined by its type definition. All Instancesof the FolderTypeuse the standard BrowseNameof ‘AggregateFunctions’. The HasComponent Referenceis used to relate a ServerCapabilities Objectand/or any HistoricalServerCapabilities Objectto an AggregateFunction Object. AggregateFunctions is formally defined in Table 3.
Table 3– Aggregate Functions Definition
Attribute 
Value 

BrowseName 
AggregateFunctions 

References 
Node Class 
BrowseName 
DataType 
TypeDefinition 
ModellingRule 

HasTypeDefinition 
Object Type 
Defined in OPC 100005 
Each ServerCapabilitiesand HistoricalServerCapabilities Objectshall reference an AggregateFunction Object. In addition, each HistoricalConfiguration Objectbelonging to a HistoricalDataNodemay reference an AggregateFunction Objectusing the HasComponent Reference.
This ObjectTypedefines an Aggregatesupported by a UA Server. This Objectis formally defined in Table 4.
Table 4– AggregateFunctionType Definition
Attribute 
Value 

BrowseName 
AggregateFunctionType 

IsAbstract 
False 

References 
Node Class 
BrowseName 
DataType 
TypeDefinition 
Mod.Rule 
Subtype of the BaseObjectTypedefined in OPC 100005 
For the AggregateFunctionType, the Description Attribute (inherited from the Base NodeClass), is mandatory.The Description Attributeprovides a localized description of the Aggregate.
Table 5specifies the BrowseNameand Description Attributesfor the standard Aggregate Objects. The description is the localized “en” text. For other locales it shall be translated.
Table 5– Standard AggregateType Nodes
BrowseName 
Description 

Interpolation Aggregate 
Interpolative 
At the beginning of each interval, retrieve the calculated value from the data points on either side of the requested timestamp. 
Average 
Retrieve the average value of the data over the interval. 
TimeAverage 
Retrieve the time weighted average data over the interval using Interpolated Bounding Values. 
TimeAverage2 
Retrieve the time weighted average data over the interval using Simple Bounding Values. 
Total 
Retrieve the total (time integral) of the data over the interval using Interpolated Bounding Values. 
Total2 
Retrieve the total (time integral) of the data over the interval using Simple Bounding Values. 
Minimum 
Retrieve the minimum raw value in the interval with the timestamp of the start of the interval. 
Maximum 
Retrieve the maximum raw value in the interval with the timestamp of the start of the interval. 
MinimumActualTime 
Retrieve the minimum value in the interval and the timestamp of the minimum value. 
MaximumActualTime 
Retrieve the maximum value in the interval and the timestamp of the maximum value. 
Range 
Retrieve the difference between the minimum and maximum value over the interval. 
Minimum2 
Retrieve the minimum value in the interval including the Simple Bounding Values. 
Maximum2 
Retrieve the maximum value in the interval including the Simple Bounding Values. 
MinimumActualTime2 
Retrieve the minimum value with the actual timestamp including the Simple Bounding Values. 
MaximumActualTime2 
Retrieve the maximum value with the actual timestamp including the Simple Bounding Values. 
Range2 
Retrieve the difference between the Minimum2 and Maximum2 value over the interval. 
Count 
Retrieve the number of raw values over the interval. 
DurationInStateZero 
Retrieve the time a Boolean or numeric was in a zero state using Simple Bounding Values. 
DurationInStateNonZero 
Retrieve the time a Boolean or numeric was in a nonzero state using Simple Bounding Values. 
NumberOfTransitions 
Retrieve the number of changes between zero and nonzero that a Boolean or numeric value experienced in the interval. 
Start 
Retrieve the value at the beginning of the interval. 
End 
Retrieve the value at the end of the interval. 
Delta 
Retrieve the difference between the Start and End value in the interval. 
StartBound 
Retrieve the value at the beginning of the interval using Simple Bounding Values. 
EndBound 
Retrieve the value at the end of the interval using Simple Bounding Values. 
DeltaBounds 
Retrieve the difference between the StartBound and EndBound value in the interval using Simple Bounding Values. 
DurationGood 
Retrieve the total duration of time in the interval during which the data is Good. 
DurationBad 
Retrieve the total duration of time in the interval during which the data is Bad. 
PercentGood 
Retrieve the percentage of data (0 to 100) in the interval which has Good StatusCode. 
PercentBad 
Retrieve the percentage of data (0 to 100) in the interval which has Bad StatusCode. 
WorstQuality 
Retrieve the worst StatusCodeof data in the interval. 
WorstQuality2 
Retrieve the worst StatusCodeof data in the interval including the Simple Bounding Values. 
AnnotationCount 
Retrieve the number of Annotations in the interval (applies to Historical Aggregatesonly). 
StandardDeviationSample 
Retrieve the standard deviation for the interval for a sample of the population (n1). 
VarianceSample 
Retrieve the variance for the interval as calculated by the StandardDeviationSample. 
StandardDeviation Population 
Retrieve the standard deviation for the interval for a complete population (n) which includes Simple Bounding Values. 
VariancePopulation 
Retrieve the variance for the interval as calculated by the StandardDeviationPopulation which includes Simple Bounding Values. 