9.1.11 PubSub Diagnostics Objects

9.1.11.1 General

The following types are used to expose diagnostics information in the PubSub information model. Each level of the PubSub hierarchy shall contain its own diagnostics element in a standardized format. An overview over the proposed diagnostics architecture is given in Figure 51.

Figure 51 – PubSub Diagnostics overview

Figure 52 shows the structure of a Variable which holds a diagnostics counter with defined Properties. The PubSubDiagnosticsCounterType is formally defined in 9.1.11.5.

Figure 52 – PubSubDiagnosticsCounterType
9.1.11.2 PubSubDiagnosticsType

The PubSubDiagnosticsType is the base type for the diagnostics objects and is formally defined in Table 310.

Table 310 – PubSubDiagnosticsType
Attribute Value
BrowseNamePubSubDiagnosticsType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in OPC 10000-5.
HasComponentVariableDiagnosticsLevelDiagnosticsLevelBaseDataVariableTypeMandatory
HasComponentVariableTotalInformationUInt32PubSubDiagnosticsCounterTypeMandatory
HasComponentVariableTotalErrorUInt32PubSubDiagnosticsCounterTypeMandatory
HasComponentMethodResetDefined in 9.1.11.3.Mandatory
HasComponentVariableSubErrorBooleanBaseDataVariableTypeMandatory
HasComponentObjectCountersBaseObjectTypeMandatory
HasComponentObjectLiveValuesBaseObjectTypeMandatory
Conformance Units
PubSub Model Diagnostics

The DiagnosticsLevel Variable configures the current diagnostics level used for the Object. The DiagnosticsLevel DataType is defined in 9.1.11.4.

The TotalInformation Variable provides the sum of all diagnostics counters with classification Information.

The TotalError Variable provides the sum of all diagnostics counters with classification Error.

The SubError Variable indicates if any statistics Object of the next PubSub layer Objects shows a value > 0 in TotalError.

The Object Counters contains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterType defined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsType are defined in Table 311.

Table 311 – Counters for PubSubDiagnosticsType
BrowseName Modelling Rule

Diagnostics

Level

Class Description
StateErrorMandatoryBasicErrorPubSubState state machine defined in 6.2.1 changed to Error state
StateOperationalByMethodMandatoryBasicInformationState changed to Operational state triggered by Enable Method call.
StateOperationalByParentMandatoryBasicInformationState changed to Operational state triggered by an operational parent
StateOperationalFromErrorMandatoryBasicInformationState changed from Error to Operational.
StatePausedByParentMandatoryBasicInformationState changed to Paused state triggered by a paused or disabled parent.
StateDisabledByMethodMandatoryBasicInformationState changed to Disabled state triggered by Disable Method call.

The Object LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType.

The nodes in the Objects Counters and LiveValues may be activated/deactivated by the parameter DiagnosticsLevel in the PubSubDiagnosticsType.

The value of a node in the Object Counters shall be set to 0 whenever the counter changes from inactive to active.

The Server should dynamically remove inactive nodes from the Address Space in order to avoid confusion of the user by long lists of counters where only a few of them might be active. In case inactive nodes cannot be removed from the Address Space the Server shall set the StatusCode of the Variable Value to Bad_OutOfService.

9.1.11.3 Reset Method

This Method is used to set all counters in the Object diagnostics counters to the initial value.

The Client shall be authorized to modify the configuration for the PubSub functionality when invoking this Method on the Server.

Signature

	Reset ();

Method Result Codes

ResultCode Description
Bad_UserAccessDeniedThe Session user is not allowed to configure the Object.

Table 312 specifies the AddressSpace representation for the Reset Method.

Table 312 – Reset Method AddressSpace definition
Attribute Value
BrowseNameReset
ConformanceUnits
PubSub Model Diagnostics
9.1.11.4 DiagnosticsLevel

PubSub diagnostics are intended to assure users about the correct operation of a PubSub system and to help in the discovery of potential faults. Depending on the situation, not all diagnostic Objects might be needed, and on the other hand providing them requires resources. As a result, diagnostic objects are assigned to different diagnostic levels. Only diagnostic Objects belonging to the currently set diagnostic level or a more severe level shall be provided. This mechanism provides the user with the ability to select a suitable diagnostic configuration depending on the application.

The DiagnosticsLevel is an enumeration that specifies the possible diagnostics levels. The possible enumeration values are described in Table 313.

Table 313 – DiagnosticsLevel values
ValueValueDescription
Basic0Diagnostic objects from this level cannot be disabled, and thus objects from this level are the minimum diagnostic feature set that can be expected on any device that supports PubSub diagnostics at all.
Advanced1Diagnostic objects related to exceptional behaviour are contained in the Advanced diagnostic level.
Info2The Info diagnostic level contains high-level diagnostic objects related to the normal operation of a PubSub system.
Log3Diagnostic objects for the detailed logging of the operation of a PubSub system are contained in the Log diagnostic level.
Debug4Diagnostic objects with debug information specific to a given implementation of PubSub are contained in the Debug diagnostic level. As this level is intended for implementation-specific diagnostics, no such objects are specified by the document.
9.1.11.5 PubSubDiagnosticsCounterType

The PubSubDiagnosticsCounterType is formally defined in Table 314.

Table 314 – PubSubDiagnosticsCounterType
Attribute Value
BrowseNamePubSubDiagnosticsCounterType
IsAbstractFalse
ValueRank-1 (-1 = ‘Scalar’)
DataTypeUInt32
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of BaseDataVariableType defined in OPC 10000-5.
HasPropertyVariableActiveBooleanPropertyTypeMandatory
HasPropertyVariableClassificationPubSubDiagnostics‌Counter‌ClassificationPropertyTypeMandatory
HasPropertyVariableDiagnosticsLevelDiagnosticsLevelPropertyTypeMandatory
HasPropertyVariableTimeFirstChangeDateTimePropertyTypeOptional
Conformance Units
PubSub Model Diagnostics

The Value shall be reset to 0 when the Method Reset of the parent PubSubDiagnosticsType Object is called.

The Value shall be incremented by 1 for each corresponding event.

The Value shall not be incremented anymore when the maximum is reached (0xFFFFFFFF).

If the maximum is reached and a new event occurs, the SourceTimestamp of the Value shall be updated, even if the Value does not change. The Property Active indicates if the counter is active.

The Property Classification indicates whether this counter counts errors or other events according to PubSubDiagnosticsCounterClassification defined in 9.1.11.6.

The Property DiagnosticsLevel indicates the diagnostics level the counter belongs to. The DiagnosticsLevel is defined in 9.1.11.4.

The Property TimeFirstChange contains the Server time when the counter value changed from 0 to 1. If the counter value is 0 the Value is null.

9.1.11.6 PubSubDiagnosticsCounterClassification

The PubSubDiagnosticsCounterClassification is an enumeration that specifies the possible diagnostics counter classifications. The possible enumeration values are described in Table 315.

Table 315 – PubSubDiagnosticsCounterClassification values
NameValueDescription
Information0The semantic of this diagnostics counter indicates expected events, which are not considered as errors.
Error1The semantic of this diagnostics counter indicates errors.
9.1.11.7 PubSubDiagnosticsRootType

The PubSubDiagnosticsRootType defines the diagnostic information for the PublishSubscribe Object and is formally defined in Table 316.

Table 316 – PubSubDiagnosticsRootType
Attribute Value
BrowseNamePubSubDiagnosticsRootType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of PubSubDiagnosticsType defined in 9.1.11.2.
HasComponentObjectLiveValuesBaseObjectTypeMandatory
Conformance Units
PubSub Model Diagnostics

The Object LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType. The live values Variables of the PubSubDiagnosticsRootType are defined in Table 317.

Table 317 – LiveValues for PubSubDiagnosticsRootType
BrowseName Modelling Rule

Diagnostics

Level

DataType Description
ConfiguredDataSetWritersMandatoryBasicUInt16Number of configured DataSetWriters on this Server
ConfiguredDataSetReadersMandatoryBasicUInt16Number of configured DataSetReaders on this Server
OperationalDataSetWritersMandatoryBasicUInt16Number of DataSetWriters with state Operational
OperationalDataSetReadersMandatoryBasicUInt16Number of DataSetReaders with state Operational
9.1.11.8 PubSubDiagnosticsConnectionType

The PubSubDiagnosticsConnectionType defines the diagnostic information for a PubSubConnectionType Object and is formally defined in Table 318.

Table 318 – PubSubDiagnosticsConnectionType
Attribute Value
BrowseNamePubSubDiagnosticsConnectionType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of PubSubDiagnosticsType defined in 9.1.11.2.
HasComponentObjectLiveValuesBaseObjectTypeMandatory
Conformance Units
PubSub Model Diagnostics

The Object LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType. The live values Variables of the PubSubDiagnosticsConnectionType are defined in Table 319.

Table 319 – LiveValues for PubSubDiagnosticsConnectionType
BrowseName Modelling Rule

Diagnostics

Level

DataType Description
ResolvedAddressMandatoryBasicStringResolved address of the connection (e.g. IP Address)
9.1.11.9 PubSubDiagnosticsWriterGroupType

The PubSubDiagnosticsWriterGroupType defines the diagnostic information for a WriterGroupType Object and is formally defined in Table 320.

Table 320 – PubSubDiagnosticsWriterGroupType
Attribute Value
BrowseNamePubSubDiagnosticsWriterGroupType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of PubSubDiagnosticsType defined in 9.1.11.2.
HasComponentObjectCountersBaseObjectTypeMandatory
HasComponentObjectLiveValuesBaseObjectTypeMandatory
Conformance Units
PubSub Model Diagnostics

The Object Counters contains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterType defined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsWriterGroupType are defined in Table 321.

Table 321 – Counters for PubSubDiagnosticsWriterGroupType
BrowseName Modelling Rule

Diagnostics

Level

Class Description
Inherited counters from PubSubDiagnosticsType
SentNetworkMessagesMandatoryBasicInformationSent NetworkMessages
FailedTransmissionsMandatoryBasicErrorError on NetworkMessage transmission
EncryptionErrorsOptionalAdvancedErrorError on signing or encrypting NetworkMessage

The Object LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType. The live values Variables of the PubSubDiagnosticsWriterGroupType are defined in Table 322.

Table 322 – LiveValues for PubSubDiagnosticsWriterGroupType
BrowseName Modelling Rule

Diagnostics

Level

DataType Description
ConfiguredDataSetWritersMandatoryBasicUInt16Number of configured DataSetWriters in this group
OperationalDataSetWritersMandatoryBasicUInt16Number of DataSetWriters with state Operational
SecurityTokenIDOptionalInfoUInt32Currently used SecurityTokenID
TimeToNextTokenIDOptionalInfoDurationTime until the next key change is expected
9.1.11.10 PubSubDiagnosticsReaderGroupType

The PubSubDiagnosticsReaderGroupType defines the diagnostic information for a ReaderGroupType Object and is formally defined in Table 323.

Table 323 – PubSubDiagnosticsReaderGroupType
Attribute Value
BrowseNamePubSubDiagnosticsReaderGroupType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of PubSubDiagnosticsType defined in 9.1.11.2.
HasComponentObjectCountersBaseObjectTypeMandatory
HasComponentObjectLiveValuesBaseObjectTypeMandatory
Conformance Units
PubSub Model Diagnostics

The Object Counters contains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterType defined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsReaderGroupType are defined in Table 324.

Table 324 – Counters for PubSubDiagnosticsReaderGroupType
BrowseName Modelling Rule

Diagnostics

Level

Class Description
Inherited counters from PubSubDiagnosticsType
ReceivedNetworkMessagesMandatoryBasicInformationReceived and processed NetworkMessages
ReceivedInvalidNetwork‌MessagesOptionalAdvancedErrorInvalid format of NetworkMessage Header
DecryptionErrorsOptionalAdvancedErrorDecryption or signature check errors

The Object LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType. The live values Variables of the PubSubDiagnosticsReaderGroupType are defined in Table 325.

Table 325 – LiveValues for PubSubDiagnosticsReaderGroupType
BrowseName Modelling Rule

Diagnostics

Level

DataType Description
ConfiguredDataSetReadersMandatoryBasicUInt16Number of configured DataSetReaders in this group
OperationalDataSetReadersMandatoryBasicUInt16Number of DataSetReaders with state Operational
9.1.11.11 PubSubDiagnosticsDataSetWriterType

The PubSubDiagnosticsDataSetWriterType defines the diagnostic information for a DataSetWriterType Object and is formally defined in Table 326.

Table 326 – PubSubDiagnosticsDataSetWriterType
Attribute Value
BrowseNamePubSubDiagnosticsDataSetWriterType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of PubSubDiagnosticsType defined in 9.1.11.2.
HasComponentObjectCountersBaseObjectTypeMandatory
HasComponentObjectLiveValuesBaseObjectTypeMandatory
Conformance Units
PubSub Model Diagnostics

The Object Counters contains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterType defined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsDataSetWriterType are defined in Table 327.

Table 327 – Counters for PubSubDiagnosticsDataSetWriterType
BrowseName Modelling Rule

Diagnostics

Level

Class Description
Inherited counters from PubSubDiagnosticsType
FailedDataSetMessagesMandatoryBasicErrorNumber of failed DataSetMessages

The Object LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType. The live values Variables of the PubSubDiagnosticsDataSetWriterType are defined in Table 328.

Table 328 – LiveValues for PubSubDiagnosticsDataSetWriterType
BrowseName Modelling Rule

Diagnostics

Level

DataType Description
MessageSequenceNumberOptionalInfoUInt16Sequence number of last DataSetMessage
StatusCodeOptionalInfoStatusCodeStatus of last DataSetMessage
MajorVersionOptionalInfoUInt32 MajorVersion used for DataSet
MinorVersionOptionalInfoUInt32 MinorVersion used for DataSet
9.1.11.12 PubSubDiagnosticsDataSetReaderType

The PubSubDiagnosticsDataSetReaderType defines the diagnostic information for a DataSetReaderType Object and is formally defined in Table 329.

Table 329 – PubSubDiagnosticsDataSetReaderType
Attribute Value
BrowseNamePubSubDiagnosticsDataSetReaderType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of PubSubDiagnosticsType defined in 9.1.11.2.
HasComponentObjectCountersBaseObjectTypeMandatory
HasComponentObjectLiveValuesBaseObjectTypeMandatory
Conformance Units
PubSub Model Diagnostics

The Object Counters contains all diagnostics counters for the diagnostics Object. The counters use the VariableType PubSubDiagnosticsCounterType defined in 9.1.11.5. The counter Variables of the PubSubDiagnosticsDataSetReaderType are defined in Table 330.

Table 330 – Counters for PubSubDiagnosticsDataSetReaderType
BrowseName Modelling Rule

Diagnostics

Level

Class Description
Inherited counters from PubSubDiagnosticsType
FailedDataSetMessagesMandatoryBasicErrore.g. because of unknown MajorVersion
DecryptionErrorsOptionalAdvancedError

The Object LiveValues contains all live values of the diagnostics Object. If not further specified, the live values Variables use the VariableType BaseDataVariableType. The live values Variables of the PubSubDiagnosticsDataSetReaderType are defined in Table 331.

Table 331 – LiveValues for PubSubDiagnosticsDataSetReaderType
BrowseName Modelling Rule

Diagnostics

Level

DataType Description
MessageSequenceNumberOptionalInfoUInt16SequenceNumber of last DataSetMessage
StatusCodeOptionalInfoStatusCodeStatus of last DataSetMessage
MajorVersionOptionalInfoUInt32 MajorVersion of available DataSetMetaData
MinorVersionOptionalInfoUInt32 MinorVersion of available DataSetMetaData
SecurityTokenIDOptionalInfoUInt32Currently used SecurityTokenID
TimeToNextTokenIDOptionalInfoDurationTime until the next key change is expected