7 Standard VariableTypes

7.1 General

Typically, the components of a complex VariableType are fixed and can be extended by subtyping. However, because each Variable of a VariableType can be extended with additional components this standard allows the extension of the standard VariableTypes defined in this document with additional components. This allows the expression of additional information in the type definition that would be contained in each Variable anyway. However, it is not allowed to restrict the components of the standard VariableTypes defined in this International Standard. An example of extending VariableTypes would be putting the standard Property NodeVersion, defined in OPC 10000-3, into the BaseDataVariableType, stating that each DataVariable of the Server will provide a NodeVersion.

7.2 BaseVariableType

The BaseVariableType is the abstract base type for all other VariableTypes. However, only the PropertyType and the BaseDataVariableType directly inherit from this type.

There are no References specified for this VariableType. It is formally defined in Table 72.

Table 72 – BaseVariableType definition
Attribute Value
BrowseNameBaseVariableType
IsAbstractTrue
ValueRank−2 (−2 = Any)
DataTypeBaseDataType
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Conformance Units
Base Info Base Types

7.3 PropertyType

The PropertyType is a subtype of the BaseVariableType. It is used as the type definition for all Properties. Properties are defined by their BrowseName and therefore they do not need a specialised type definition. It is not allowed to subtype this VariableType.

There are no References specified for this VariableType. It is formally defined in Table 73.

Table 73 – PropertyType definition
Attribute Value
BrowseNamePropertyType
IsAbstractFalse
ValueRank−2 (−2 = Any)
DataTypeBaseDataType
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of the BaseVariableType defined in 7.2.
Conformance Units
Base Info Base Types

7.4 BaseDataVariableType

The BaseDataVariableType is a subtype of the BaseVariableType. It is used as the type definition whenever there is a DataVariable having no more concrete type definition available. This VariableType is the base VariableType for VariableTypes of DataVariables, and all other VariableTypes of DataVariables shall either directly or indirectly inherit from it.

There are no References specified for this VariableType. It is formally defined in Table 74.

Table 74 – BaseDataVariableType definition
Attribute Value
BrowseNameBaseDataVariableType
IsAbstractFalse
ValueRank−2 (−2 = Any)
DataTypeBaseDataType
References NodeClass BrowseName Comment
Subtype of the BaseVariableType defined in 7.2.
Conformance Units
Base Info Base Types

7.5 ServerVendorCapabilityType

This VariableType is an abstract type whose subtypes define capabilities of the Server. Vendors may define subtypes of this type. This VariableType is formally defined in Table 75.

Table 75 – ServerVendorCapabilityType definition
Attribute Value
BrowseNameServerVendorCapabilityType
IsAbstractTrue
ValueRank−1 (−1 = Scalar)
DataTypeBaseDataType
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of the BaseDataVariableType defined in 7.4.
Conformance Units
Base Info ServerType

7.6 ServerStatusType

This complex VariableType is used for information about the Server status. Its DataVariables reflect its DataType having the same semantic defined in 12.10. The VariableType is formally defined in Table 76.

Table 76 – ServerStatusType definition
Attribute Value
BrowseNameServerStatusType
IsAbstractFalse
ValueRank−1 (−1 = Scalar)
DataTypeServerStatusDataType
References NodeClass BrowseName DataType TypeDefinition Modelling
Rule
Subtype of the BaseDataVariableType defined in 7.4.
HasComponentVariableStartTimeUtcTimeBaseDataVariableTypeMandatory
HasComponentVariableCurrentTime UtcTimeBaseDataVariableTypeMandatory
HasComponentVariableStateServerStateBaseDataVariableTypeMandatory
HasComponentVariableBuildInfoBuildInfoBuildInfoTypeMandatory
HasComponentVariableSecondsTillShutdownUInt32BaseDataVariableTypeMandatory
HasComponentVariableShutdownReasonLocalizedTextBaseDataVariableTypeMandatory
NOTE Containing Objects and Variables of these Objects and Variables are defined by their BrowseName defined in the corresponding TypeDefinitionNode. The NodeId is defined by the composed symbolic name described in 4.1.
Conformance Units
Base Info ServerType

7.7 BuildInfoType

This complex VariableType is used for information about the Server status. Its DataVariables reflect its DataType having the same semantic defined in 12.3.15.1. The VariableType is formally defined in Table 77.

Table 77 – BuildInfoType definition
Attribute Value
BrowseNameBuildInfoType
IsAbstractFalse
ValueRank−1 (−1 = Scalar)
DataTypeBuildInfo
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of the BaseDataVariableType defined in 7.4.
HasComponentVariableProductUriStringBaseDataVariableTypeMandatory
HasComponentVariableManufacturerNameStringBaseDataVariableTypeMandatory
HasComponentVariableProductNameStringBaseDataVariableTypeMandatory
HasComponentVariableSoftwareVersionStringBaseDataVariableTypeMandatory
HasComponentVariableBuildNumberStringBaseDataVariableTypeMandatory
HasComponentVariableBuildDateUtcTimeBaseDataVariableTypeMandatory
Conformance Units
Base Info ServerType

7.8 ServerDiagnosticsSummaryType

This complex VariableType is used for diagnostic information. Its DataVariables reflect its DataType having the same semantic defined in 12.9. The VariableType is formally defined in Table 78.

Table 78 – ServerDiagnosticsSummaryType definition
Attribute Value
BrowseNameServerDiagnosticsSummaryType
IsAbstractFalse
ValueRank−1 (−1 = Scalar)
DataTypeServerDiagnosticsSummaryDataType
References NodeClass BrowseName DataType TypeDefinition Modelling
Rule
Subtype of the BaseDataVariableType defined in 7.4.
HasComponentVariableServerViewCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableCurrentSessionCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableCumulatedSessionCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableSecurityRejectedSessionCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableRejectedSessionCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableSessionTimeoutCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableSessionAbortCountUInt32BaseDataVariableTypeMandatory
HasComponentVariablePublishingIntervalCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableCurrentSubscriptionCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableCumulatedSubscriptionCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableSecurityRejectedRequestsCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableRejectedRequestsCountUInt32BaseDataVariableTypeMandatory
Conformance Units
Base Info ServerType

7.9 SamplingIntervalDiagnosticsArrayType

This complex VariableType is used for diagnostic information. For each entry of the array, instances of this type will provide a Variable of the SamplingIntervalDiagnosticsType VariableType having the sampling rate as BrowseName. The VariableType is formally defined in Table 79.

Table 79 – SamplingIntervalDiagnosticsArrayType definition
Attribute Value
BrowseNameSamplingIntervalDiagnosticsArrayType
IsAbstractFalse
ValueRank1 (1 = OneDimension)
ArrayDimensions{0} (0 = UnknownSize)
DataTypeSamplingIntervalDiagnosticsDataType
References NodeClass BrowseName

DataType

TypeDefinition

Modelling
Rule
Subtype of the BaseDataVariableType defined in 7.4.
HasComponentVariableSamplingIntervalDiagnostics

SamplingIntervalDiagnosticsDataType

SamplingIntervalDiagnosticsType

ExposesItsArray
Conformance Units
Base Info ServerType

7.10 SamplingIntervalDiagnosticsType

This complex VariableType is used for diagnostic information. Its DataVariables reflect its DataType, having the same semantic defined in 12.8. The VariableType is formally defined in Table 80.

Table 80 – SamplingIntervalDiagnosticsType definition
Attribute Value
BrowseNameSamplingIntervalDiagnosticsType
IsAbstractFalse
ValueRank−1 (−1 = Scalar)
DataTypeSamplingIntervalDiagnosticsDataType
References Node
Class
BrowseName Data
Type
TypeDefinition Modelling
Rule
Subtype of the BaseDataVariableType defined in 7.4.
HasComponentVariableSamplingIntervalDurationBaseDataVariableTypeMandatory
HasComponentVariableSampledMonitoredItemsCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableMaxSampledMonitoredItemsCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableDisabledMonitoredItemsSamplingCountUInt32BaseDataVariableTypeMandatory
Conformance Units
Base Info ServerType

7.11 SubscriptionDiagnosticsArrayType

This complex VariableType is used for diagnostic information. For each entry of the array, instances of this type will provide a Variable of the SubscriptionDiagnosticsType VariableType having the SubscriptionId as BrowseName. The VariableType is formally defined in Table 81.

Table 81 – SubscriptionDiagnosticsArrayType definition
Attribute Value
BrowseNameSubscriptionDiagnosticsArrayType
IsAbstractFalse
ValueRank1 (1 = OneDimension)
ArrayDimensions{0} (0 = UnknownSize)
DataTypeSubscriptionDiagnosticsDataType
References NodeClass BrowseName

DataType

TypeDefinition

ModellingRule
Subtype of the BaseDataVariableType defined in 7.4.
HasComponentVariableSubscriptionDiagnosticsSubscriptionDiagnosticsDataType SubscriptionDiagnosticsType ExposesItsArray
Conformance Units
Base Info ServerType

7.12 SubscriptionDiagnosticsType

This complex VariableType is used for diagnostic information. Its DataVariables reflect its DataType, having the same semantic defined in 12.15. The VariableType is formally defined in Table 82.

Table 82 – SubscriptionDiagnosticsType definition
Attribute Value
BrowseNameSubscriptionDiagnosticsType
IsAbstractFalse
ValueRank−1 (−1 = Scalar)
DataTypeSubscriptionDiagnosticsDataType
References Node
Class
BrowseName DataType TypeDefinition Modelling
Rule
Subtype of the BaseDataVariableType defined in 7.4.
HasComponentVariableSessionIdNodeIdBaseDataVariableTypeMandatory
HasComponentVariableSubscriptionIdUInt32BaseDataVariableTypeMandatory
HasComponentVariablePriorityByteBaseDataVariableTypeMandatory
HasComponentVariablePublishingIntervalDurationBaseDataVariableTypeMandatory
HasComponentVariableMaxKeepAliveCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableMaxLifetimeCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableMaxNotificationsPerPublishUInt32BaseDataVariableTypeMandatory
HasComponentVariablePublishingEnabledBooleanBaseDataVariableTypeMandatory
HasComponentVariableModifyCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableEnableCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableDisableCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableRepublishRequestCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableRepublishMessageRequestCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableRepublishMessageCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableTransferRequestCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableTransferredToAltClientCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableTransferredToSameClientCountUInt32BaseDataVariableTypeMandatory
HasComponentVariablePublishRequestCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableDataChangeNotificationsCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableEventNotificationsCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableNotificationsCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableLatePublishRequestCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableCurrentKeepAliveCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableCurrentLifetimeCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableUnacknowledgedMessageCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableDiscardedMessageCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableMonitoredItemCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableDisabledMonitoredItemCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableMonitoringQueueOverflowCountUInt32BaseDataVariableTypeMandatory
HasComponentVariableNextSequenceNumberUInt32BaseDataVariableTypeMandatory
HasComponentVariableEventQueueOverflowCountUInt32BaseDataVariableTypeMandatory
Conformance Units
Base Info ServerType

7.13 SessionDiagnosticsArrayType

This complex VariableType is used for diagnostic information. For each entry of the array instances of this type will provide a Variable of the SessionDiagnosticsVariableType VariableType, having the SessionDiagnostics as BrowseName. Those Variables will also be referenced by the SessionDiagnostics Objects defined by their type in 6.3.5. The VariableType is formally defined in Table 83.

Table 83 – SessionDiagnosticsArrayType definition
Attribute Value
BrowseNameSessionDiagnosticsArrayType
IsAbstractFalse
ValueRank1 (1 = OneDimension)
ArrayDimensions{0} (0 = UnknownSize)
DataTypeSessionDiagnosticsDataType
References NodeClass BrowseName

DataType

TypeDefinition

ModellingRule
Subtype of the BaseDataVariableType defined in 7.4.
HasComponentVariableSessionDiagnostics

SessionDiagnosticsDataType

SessionDiagnosticsVariableType

ExposesItsArray
Conformance Units
Base Info ServerType

7.14 SessionDiagnosticsVariableType

This complex VariableType is used for diagnostic information. Its DataVariables reflect its DataType, having the same semantic defined in 12.11. The VariableType is formally defined in Table 84.

Table 84 – SessionDiagnosticsVariableType definition
Attribute Value
BrowseNameSessionDiagnosticsVariableType
IsAbstractFalse
ValueRank−1 (−1 = Scalar)
DataTypeSessionDiagnosticsDataType
References Node
Class
BrowseName

DataType

TypeDefinition

Modelling
Rule
Subtype of the BaseDataVariableType defined in 7.4.
HasComponentVariableSessionId

NodeId

BaseDataVariableType

Mandatory
HasComponentVariableSessionName

String

BaseDataVariableType

Mandatory
HasComponentVariableClientDescription

ApplicationDescription

BaseDataVariableType

Mandatory
HasComponentVariableServerUri

String

BaseDataVariableType

Mandatory
HasComponentVariableEndpointUrl

String

BaseDataVariableType

Mandatory
HasComponentVariableLocaleIds

LocaleId[]

BaseDataVariableType

Mandatory
HasComponentVariableMaxResponseMessageSize

UInt32

BaseDataVariableType

Mandatory
HasComponentVariableActualSessionTimeout

Duration

BaseDataVariableType

Mandatory
HasComponentVariableClientConnectionTime

UtcTime

BaseDataVariableType

Mandatory
HasComponentVariableClientLastContactTime

UtcTime

BaseDataVariableType

Mandatory
HasComponentVariableCurrentSubscriptionsCount

UInt32

BaseDataVariableType

Mandatory
HasComponentVariableCurrentMonitoredItemsCount

UInt32

BaseDataVariableType

Mandatory
HasComponentVariableCurrentPublishRequestsInQueue

UInt32

BaseDataVariableType

Mandatory
HasComponentVariableTotalRequestCountServiceCounterDataType BaseDataVariableTypeMandatory
HasComponentVariableUnauthorizedRequestCount

UInt32

BaseDataVariableType

Mandatory
HasComponentVariableReadCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableHistoryReadCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableWriteCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableHistoryUpdateCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableCallCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableCreateMonitoredItemsCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableModifyMonitoredItemsCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableSetMonitoringModeCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableSetTriggeringCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableDeleteMonitoredItemsCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableCreateSubscriptionCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableModifySubscriptionCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableSetPublishingModeCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariablePublishCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableRepublishCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableTransferSubscriptionsCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableDeleteSubscriptionsCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableAddNodesCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableAddReferencesCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableDeleteNodesCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableDeleteReferencesCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableBrowseCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableBrowseNextCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableTranslateBrowsePathsToNodeIdsCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableQueryFirstCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableQueryNextCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableRegisterNodesCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
HasComponentVariableUnregisterNodesCount

ServiceCounterDataType

BaseDataVariableType

Mandatory
Conformance Units
Base Info ServerType

7.15 SessionSecurityDiagnosticsArrayType

This complex VariableType is used for diagnostic information. For each entry of the array instances of this type will provide a Variable of the SessionSecurityDiagnosticsType VariableType, having the SessionSecurityDiagnostics as BrowseName. Those Variables will also be referenced by the SessionDiagnostics Objects defined by their type in 6.3.5. The VariableType is formally defined in Table 85. Since this information is security related, it should not be made accessible to all users, but only to authorised users.

Table 85 – SessionSecurityDiagnosticsArrayType definition
Attribute Value
BrowseNameSessionSecurityDiagnosticsArrayType
IsAbstractFalse
ValueRank1 (1 = OneDimension)
ArrayDimensions{0} (0 = UnknownSize)
DataTypeSessionSecurityDiagnosticsDataType
References Node
Class

Browse

Name

DataType

TypeDefinition

Modelling
Rule
Subtype of the BaseDataVariableType defined in 7.4.
HasComponentVariableSessionSecurityDiagnostics

SessionSecurityDiagnosticsDataType

SessionSecurityDiagnosticsType

ExposesItsArray
Conformance Units
Base Info ServerType

7.16 SessionSecurityDiagnosticsType

This complex VariableType is used for diagnostic information. Its DataVariables reflect its DataType, having the same semantic defined in 12.12. The VariableType is formally defined in Table 86. Since this information is security-related, it shall be restricted to authorized users, such as users who have the SecurityAdmin role, defined in OPC 10000-18.

Table 86 – SessionSecurityDiagnosticsType definition
Attribute Value
BrowseNameSessionSecurityDiagnosticsType
IsAbstractFalse
ValueRank−1 (−1 = Scalar)
DataTypeSessionSecurityDiagnosticsDataType
References Node
Class
BrowseName

DataType

TypeDefinition

Modelling
Rule
Subtype of the BaseDataVariableType defined in 7.4
HasComponentVariableSessionId

NodeId

BaseDataVariableType

Mandatory
HasComponentVariableClientUserIdOfSession

String

BaseDataVariableType

Mandatory
HasComponentVariableClientUserIdHistory

String[]

BaseDataVariableType

Mandatory
HasComponentVariableAuthenticationMechanism

String

BaseDataVariableType

Mandatory
HasComponentVariableEncoding

String

BaseDataVariableType

Mandatory
HasComponentVariableTransportProtocol

String

BaseDataVariableType

Mandatory
HasComponentVariableSecurityMode

MessageSecurityMode

BaseDataVariableType

Mandatory
HasComponentVariableSecurityPolicyUri

String

BaseDataVariableType

Mandatory
HasComponentVariableClientCertificate

ByteString

BaseDataVariableType

Mandatory
Conformance Units
Base Info ServerType

7.17 OptionSetType

The OptionSetType VariableType is used to represent a bit mask. Each array element of the OptionSetValues Property contains either the human-readable representation for the corresponding bit used in the option set or an empty LocalizedText for a bit that has no specific meaning. The order of the bits of the bit mask maps to a position of the array, i.e. the first bit (least significant bit) maps to the first entry in the array, etc.

In addition to this VariableType, the DataType OptionSet can alternatively be used to represent a bit mask. As a guideline the DataType would be used when the bit mask is fixed and applies to several Variables. The VariableType would be used when the bit mask is specific for only that Variable.

The DataType of this VariableType shall be capable of representing a bit mask. It shall be either a numeric DataType representing a signed or unsigned integer, or a ByteString. For example, it can be the BitFieldMaskDataType.

The optional BitMask Property provides the bit mask in an array of Booleans. This allows subscribing to individual entries of the bit mask. The order of the bits of the bit mask points to a position of the array, i.e. the first bit points to the first entry in the array, etc. The VariableType is formally defined in Table 87.

Table 87 – OptionSetType definition
Attribute Value
BrowseNameOptionSetType
IsAbstractFalse
ValueRank−1 (−1 = Scalar)
DataTypeBaseDataType
References NodeClass

Browse

Name

DataType

TypeDefinition

Modelling
Rule
Subtype of the BaseDataVariableType defined in 7.4
HasPropertyVariableOptionSetValues

LocalizedText[]

PropertyType

Mandatory
HasPropertyVariableBitMask

Boolean[]

PropertyType

Optional
Conformance Units
Base Info OptionSet

7.18 SelectionListType

The SelectionListType VariableType is used for a Variable where the possible values are provided by a set of values.

The Selections Property contains an array of values which represent valid values for this VariableType’s value. The Selections Property may be dynamic, including changes in the length of the array. The Selections Property may also be empty indicating there are currently no valid values which can be written to the Variable. Clients should either subscribe to the Selections Property or read it just before use.

The DataType of the Selections Property array shall be of the same DataType as this VariableType. When the SelectionListType is subtyped, the DataType of the Selections Property array of the subtype shall be the same DataType as the subtype.
When the SelectionListType is instantiated, the DataType of the Selections Property array of the instance shall be the same as the DataType of the instance.

Each array element of the optional SelectionDescriptions Property contains a human-readable representation of the corresponding value in the Selections Property and shall be of the same array size as the Selections Property.

The value of this VariableType may be restricted to only the values defined in the Selections Property by setting the optional RestrictToList Property to a value of True. If the RestrictToList Property is not present or has a value of False then the value is not restricted to the set defined by the Selections Property.

The VariableType is formally defined in Table 88.

Table 88 – SelectionListType definition
Attribute Value
BrowseNameSelectionListType
IsAbstractFalse
ValueRank-1 (-1 – Scalar)
DataTypeBaseDataType
References NodeClass

Browse

Name

DataType

TypeDefinition

Modelling
Rule
Subtype of the BaseDataVariableType defined in 7.4
HasPropertyVariableSelections

BaseDataType[]

PropertyType

Mandatory
HasPropertyVariableSelectionDescriptions

LocalizedText[]

PropertyType

Optional
HasPropertyVariableRestrictToList

Boolean

PropertyType

Optional
Conformance Units
Base Info Selection List

7.19 AudioVariableType

The AudioVariableType VariableType defines a Multipurpose Internet Mail Extensions (MIME) media type of the AudibleSound Property. MIME types are defined by other standards such as IETF RFC 2045, IETF RFC 2046 and IETF RFC 2047. The AudioVariableType references the Content-Type that is defined as part of the MIME type and commonly used as a reference to a specific MIME. The top-level media type is used to declare the general type of data, while the subtype specifies a specific format for that type of data. Thus, a media type of "audio /xyz" is a sufficient description for a user agent to determine the data is an audio file, even if the user agent has no knowledge of the specific audio format "xyz".

The VariableType is formally defined in Table 89.

Table 89 – AudioVariableType definition
Attribute Value
BrowseNameAudioVariableType
IsAbstractFalse
ValueRank−1 (−1 = Scalar)
DataTypeAudioDataType
References NodeClass BrowseName DataType TypeDefinition Modelling
Rule
Subtype of the BaseDataVariableType defined in 7.4
HasPropertyVariableListIdStringPropertyTypeOptional
HasPropertyVariableAgencyIdStringPropertyTypeOptional
HasPropertyVariableVersionIdStringPropertyTypeOptional
Conformance Units
Base Info Audio Type

7.20 RationalNumberType

This complex VariableType is used for information which needs to be provided as a fraction number. It reflects the semantic of its DataType, defined in 12.22 and is formally defined in Table 90.

Table 90 – RationalNumberType Definition
Attribute Value
BrowseNameRationalNumberType
IsAbstractFalse
ValueRankScalar
DataTypeRationalNumber
References NodeClass BrowseName DataType TypeDefinition Modelling
Rule
Subtype of the BaseDataVariableType defined in 7.4
HasComponentVariableNumeratorInt32BaseDataVariableTypeMandatory
HasComponentVariableDenominatorUInt32BaseDataVariableTypeMandatory
Conformance Units
Base Info Rational Number

Numerator and Denominator reflect the DataType RationalNumber.

7.21 VectorType

This abstract VariableType is used as base to define multi-dimensional vectors. Subtypes need to define the concrete number of dimensions. It reflects the semantic of its DataType, defined in 12.23. Subtypes shall expose the structure of their structured DataTypes as Variables. Additionally, it can define a unit for each dimension of the vector (Property VectorUnit). The VariableType is formally defined in Table 91.

Table 91 – VectorType Definition
Attribute Value
BrowseNameVectorType
IsAbstractTrue
ValueRankScalar
DataTypeVector
References NodeClass BrowseName DataType TypeDefinition Modelling Rule
Subtype of the BaseDataVariableType defined in 7.4
HasPropertyVariableVectorUnitEUInformationPropertyTypeOptional
Conformance Units
Base Info Spatial Data

VectorUnit defines the unit of each dimension of the vector. The DataType EUInformation is defined in OPC 10000-8. Note that the Property EngineeringUnits is intentionally not used, as it would have to define the engineering unit of the full vector, not its individual dimensions.

7.22 3DVectorType

This complex VariableType is used to represent a vector in 3D space. It reflects the semantic of its DataType, defined in 12.24. The VariableType is formally defined in Table 92.

Table 92 – 3DVectorType Definition
Attribute Value
BrowseName3DVectorType
IsAbstractFalse
ValueRankScalar
DataType3DVector
References NodeClass BrowseName DataType TypeDefinition Modelling Rule
Subtype of the VectorType defined in 7.21
HasComponentVariableXDoubleBaseDataVariableTypeMandatory
HasComponentVariableYDoubleBaseDataVariableTypeMandatory
HasComponentVariableZDoubleBaseDataVariableTypeMandatory
Conformance Units
Base Info Spatial Data

X, Y and Z reflect the DataType 3DVector.

7.23 CartesianCoordinatesType

This abstract VariableType is used as base to define multi-dimensional coordinates. Subtypes need to define the concrete number of dimensions. It reflects the semantic of its DataType, defined in 12.25. Subtypes shall expose the structure of their structured DataTypes as Variables. Additionally, it can define a unit for the coordinates (Property LengthUnit). The VariableType is formally defined in Table 93.

Table 93 – CartesianCoordinatesType Definition
Attribute Value
BrowseNameCartesianCoordinatesType
IsAbstractTrue
ValueRankScalar
DataTypeCartesianCoordinates
References NodeClass BrowseName DataType TypeDefinition Modelling Rule
Subtype of the BaseDataVariableType defined in 7.4
HasPropertyVariableLengthUnit EUInformationPropertyTypeOptional
Conformance Units
Base Info Spatial Data

LengthUnit defines the unit of each dimension of the cartesian coordinates. The DataType EUInformation is defined in OPC 10000-8. Note that the Property EngineeringUnits is intentionally not used, as it would have to define the engineering unit of the full cartesian coordinates, not its individual dimensions.

7.24 3DCartesianCoordinatesType

This complex VariableType is used for information about positions in 3D space. It reflects the semantic of its DataType, defined in 12.26. The VariableType is formally defined in Table 94.

Table 94 – 3DCartesianCoordinatesType Definition
Attribute Value
BrowseName3DCartesianCoordinatesType
IsAbstractFalse
ValueRankScalar
DataType3DCartesianCoordinates
References NodeClass BrowseName DataType TypeDefinition Modelling Rule
Subtype of the CartesianCoordinatesType defined in 7.23
HasComponentVariableXDoubleBaseDataVariableTypeMandatory
HasComponentVariableYDoubleBaseDataVariableTypeMandatory
HasComponentVariableZDoubleBaseDataVariableTypeMandatory
Conformance Units
Base Info Spatial Data

X, Y and Z reflect the DataType CartesianCoordinates.

7.25 OrientationType

This abstract VariableType is used as base to define multi-dimensional orientations. Subtypes need to define the concrete number of dimensions. It reflects the semantic of its DataType, defined in 12.27. Subtypes shall expose the structure of their structured DataTypes as Variables. Additionally, it can define a unit for the orientation angles (Property AngleUnit). The VariableType is formally defined in Table 95.

Table 95 – OrientationType Definition
Attribute Value
BrowseNameOrientationType
IsAbstractTrue
ValueRankScalar
DataTypeOrientation
References NodeClass BrowseName DataType TypeDefinition Modelling Rule
Subtype of the BaseDataVariableType defined in 7.4.
HasPropertyVariableAngleUnitEUInformationPropertyTypeOptional
Conformance Units
Base Info Spatial Data

AngleUnit defines the unit of each dimension of the orientation. The DataType EUInformation is defined in OPC 10000-8. Note that the Property EngineeringUnits is intentionally not used, as it would have to define the engineering unit of the full cartesian coordinates, not its individual dimensions

7.26 3DOrientationType

This complex VariableType was incorrectly defined. It will be deprecated in the future and therefore should not be used. The OrientationType, defined in 7.25, is intended to be subtyped to create Types which represent any multi-dimensional orientations including 3D spaces.

The VariableType is formally defined in Table 96.

Table 96 – 3DOrientationType Definition
Attribute Value
BrowseName3DOrientationType
IsAbstractFalse
ValueRankScalar
DataType3DOrientation
References NodeClass BrowseName DataType TypeDefinition Modelling Rule
Subtype of the OrientationType defined in 7.25.
HasComponentVariableADoubleBaseDataVariableTypeMandatory
HasComponentVariableBDoubleBaseDataVariableTypeMandatory
HasComponentVariableCDoubleBaseDataVariableTypeMandatory
Conformance Units
Base Info Spatial Data

A, B and C reflect the DataType 3DOrientation.

7.27 FrameType

This abstract VariableType is used for information about multi-dimensional frames. It reflects the semantic of its DataType, defined in 12.29. Additionally, it provides information about the dynamic behaviour of the frame. The VariableType is formally defined in Table 97.

Table 97 – FrameType Definition
Attribute Value
BrowseNameFrameType
IsAbstractTrue
ValueRankScalar
DataTypeFrame
References NodeClass BrowseName DataType TypeDefinition Modelling Rule
Subtype of the BaseDataVariableType defined in 7.4.
HasComponentVariableCartesianCoordinatesCartesianCoordinatesCartesianCoordinatesTypeMandatory
HasComponentVariableOrientationOrientationOrientationTypeMandatory
HasPropertyVariableConstantBooleanPropertyTypeOptional
HasComponentVariableBaseFrameNodeIdBaseDataVariableTypeOptional
HasPropertyVariableFixedBaseBooleanPropertyTypeOptional
Conformance Units
Base Info Spatial Data

CartesianCoordinates and Orientation reflect the DataType Frame. Note that the abstract DataType Frame does not define the fields itself, but subtypes shall create those fields.

Constant is True when the Value of the frame never changes. If the Value may change it is False.

BaseFrame is the NodeId of the frame’s base frame.

FixedBase is True when this frame is always based on the same base frame, i.e. BaseFrame never changes.

7.28 3DFrameType

This complex VariableType is used for information about frames in 3D space. It reflects the semantic of its DataType, defined in 12.30. It refines the DataTypes and VariableTypes of the CartesianCoordinates and Orientation to the corresponding 3D types. The VariableType is formally defined in Table 98.

Table 98 – 3DFrameType Definition
Attribute Value
BrowseName3DFrameType
IsAbstractFalse
ValueRankScalar
DataType3DFrame
References NodeClass BrowseName DataType TypeDefinition Modelling Rule
Subtype of the FrameType defined in 7.27.
HasComponentVariableCartesianCoordinates3DCartesianCoordinates3DCartesianCoordinatesTypeMandatory
HasComponentVariableOrientation3DOrientation3DOrientationTypeMandatory
Conformance Units
Base Info Spatial Data

7.29 BitFieldType

This complex VariableType is used to represent a Variable which contains one or more fields where each field is composed of one or more bits.

Subtypes of this VariableType shall have a DataType of UInteger or one of its subtypes. Its ValueRank shall be either Scalar (-1) or a single dimensional Array (1).

Each bit field defined by the BitFieldDefinitions shall also be exposed as a child DataVariable. The BrowseName of the DataVariable shall be the same as the BitFieldDefinition name field and the NamespaceIndex of the BrowseName shall be the same as the BitFieldDefinition name field’s NamespaceIndex.

Optional bit fields may be defined by using the Optional Modeling Rule for the child DataVariable which represents the bit field. An application accessing a BitFieldType with an optional bit field should determine the presence of the optional bit field by checking the instance of that BitFieldType for the presence of the child DataVariable which represents the optional field.

The VariableType is defined in Table 99.

Table 99 – BitFieldType definition
Attribute Value
BrowseNameBitFieldType
IsAbstractTrue
ValueRankScalarOrOneDimension
DataTypeUInteger
References NodeClass BrowseName DataType TypeDefinition Modelling Rule
Subtype of the BaseDataVariableType defined in 7.4.
HasPropertyVariableBitFieldsDefinitionsBitFieldDefinition[]PropertyTypeMandatory
HasComponentVariable<FieldName>BaseDataTypeBaseVariableTypeMandatoryPlaceholder
HasComponentVariable<OptionalFieldName>BaseDataTypeBaseVariableTypeOptionalPlaceholder
Conformance Units