Topic RSS8:40, EEST
Moderators
February 11, 2020
OfflineHello,
You can use Wireshark to see the PublishResponses sent by Simulation Server containing the Events as lists of Event fields. You can find instruction on how to use Wireshark with OPC UA applications at https://www.prosysopc.com/blog…..wireshark/. If you’re running UaExpert and Simulation Server on the same host, remember to select “Support loopback traffic” option when installing Wireshark.
Below is an example of such Event field list captured with Wireshark.
EventFields: Array of Variant
ArraySize: 19
[0]: Variant
Variant Type: ByteString (0x0f)
ByteString: 0000000000000d580000000000000d55
[1]: Variant
Variant Type: UInt16 (0x05)
UInt16: 500
[2]: Variant
Variant Type: DateTime (0x0d)
DateTime: May 3, 2022 07:54:14.228000000 FLE Daylight Time
[3]: Variant
Variant Type: LocalizedText (0x15)
Value: LocalizedText
EncodingMask: 0x03, has locale information, has text
.... ...1 = has locale information: True
.... ..1. = has text: True
Locale: [OpcUa Empty String]
Text: Level exceeded
[4]: Variant
Variant Type: NodeId (0x11)
Value: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 9482
[5]: Variant
Variant Type: String (0x0c)
String: MyLevel
[6]: Variant
Variant Type: Null (0x00)
[7]: Variant
Variant Type: Null (0x00)
[8]: Variant
Variant Type: Null (0x00)
[9]: Variant
Variant Type: Null (0x00)
[10]: Variant
Variant Type: LocalizedText (0x15)
Value: LocalizedText
EncodingMask: 0x03, has locale information, has text
.... ...1 = has locale information: True
.... ..1. = has text: True
Locale: [OpcUa Empty String]
Text: Active
[11]: Variant
Variant Type: Boolean (0x01)
Boolean: True
[12]: Variant
Variant Type: Null (0x00)
[13]: Variant
Variant Type: Boolean (0x01)
Boolean: False
[14]: Variant
Variant Type: Null (0x00)
[15]: Variant
Variant Type: Boolean (0x01)
Boolean: True
[16]: Variant
Variant Type: Null (0x00)
[17]: Variant
Variant Type: Null (0x00)
[18]: Variant
Variant Type: NodeId (0x11)
Value: NodeId
.... 0011 = EncodingMask: String (0x3)
Namespace Index: 6
Identifier String: MyLevel.Alarm
I’m not sure if this is what you mean with “raw Event Message data”, though. The way OPC UA handles subscribing to Events is by the Client specifying an Object that generates Events and a list of Event fields (and also EventFilter but we’ll leave that aside for now) in a CreateMonitoredItemsRequest to the Server which will then send PublishResponses to Client containing the values of the selected Event fields of Events generated by the selected Object. Some of these fields might not be relevant to all types of Events generated by the selected Object and thus their values are null in the PublishResponses.
In short, there is no way in OPC UA for Clients to ask the Server to send entire Events as “raw data”. You will always have specify the Event fields you’re interested in and you shall then receive the Events as lists of values of the selected fields.
8:50, EEST
Moderators
February 11, 2020
OfflineAnd here is the SelectClauses for CreateMonitoredItemsRequest that specifies which Event fields were selected:
SelectClauses: Array of SimpleAttributeOperand
ArraySize: 19
[0]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: EventId
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[1]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: Severity
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[2]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: Time
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[3]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: Message
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[4]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: EventType
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[5]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: SourceName
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[6]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 2
[0]: QualifiedName
Id: 0
Name: DialogState
[1]: QualifiedName
Id: 0
Name: Id
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[7]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: ResponseOptionSet
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[8]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: Prompt
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[9]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: DefaultResponse
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[10]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: ActiveState
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[11]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 2
[0]: QualifiedName
Id: 0
Name: ActiveState
[1]: QualifiedName
Id: 0
Name: Id
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[12]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 2
[0]: QualifiedName
Id: 0
Name: ActiveState
[1]: QualifiedName
Id: 0
Name: EffectiveDisplayName
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[13]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 2
[0]: QualifiedName
Id: 0
Name: AckedState
[1]: QualifiedName
Id: 0
Name: Id
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[14]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 2
[0]: QualifiedName
Id: 0
Name: ConfirmedState
[1]: QualifiedName
Id: 0
Name: Id
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[15]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: Retain
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[16]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: BranchId
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[17]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2041
BrowsePath: Array of QualifiedName
ArraySize: 1
[0]: QualifiedName
Id: 0
Name: ConditionName
AttributeId: Value (0x0000000d)
IndexRange: [OpcUa Null String]
[18]: SimpleAttributeOperand
TypeDefinitionId: NodeId
.... 0001 = EncodingMask: Four byte encoded Numeric (0x1)
Namespace Index: 0
Identifier Numeric: 2782
BrowsePath: Array of QualifiedName
ArraySize: 0
AttributeId: NodeId (0x00000001)
IndexRange: [OpcUa Null String]
1 Guest(s)

Log In
Register