16:44, EEST
February 14, 2020
8:40, EEST
Moderators
February 11, 2020
Hello,
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/opc-ua-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
And 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]
Most Users Ever Online: 1919
Currently Online:
12 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Heikki Tahvanainen: 402
hbrackel: 144
rocket science: 88
pramanj: 86
Francesco Zambon: 83
Ibrahim: 78
Sabari: 62
kapsl: 57
gjevremovic: 49
Xavier: 43
Member Stats:
Guest Posters: 0
Members: 737
Moderators: 7
Admins: 1
Forum Stats:
Groups: 3
Forums: 15
Topics: 1524
Posts: 6451
Newest Members:
jonathonmcintyre, fannielima, kristiewinkle8, rust, christamcdowall, redaahern07571, nigelbdhmp, travistimmons, AnnelCib, dalenegettingerModerators: Jouni Aro: 1026, Pyry: 1, Petri: 0, Bjarne Boström: 1026, Jimmy Ni: 26, Matti Siponen: 346, Lusetti: 0
Administrators: admin: 1