Microsoft Message Queue (MSMQ) Server
Message body XML structure and description
This article describes the XML structured bodies of the Message Queue messages generated by the WEBfactory 2010 Server.
To learn how to enable Message Queues, follow the Using the Microsoft Message Queue (MSMQ) Server tutorial and read the WEBfactory 2010Studio Alarming Settings documentation.
The following messages are generated in the Message Queues by the WEBfactory 2010 components:
Server Messages
WEBfactory 2010 Messages
Server Message
The Server Messages are messages related to alarm events. The XML structure of the message body is constant for all alarm events, but contains additional data (XML nodes) for the alarm acknowledgment events.
Alarm on and alarm off events
Message body example:
<Message> <TimeStamp>2014-06-19 12:46:00.294</TimeStamp> <WFServer> <ID>{39F990E2-FCC4-442A-9374-23974491663F}</ID> <Name>VM_Test-PC</Name> <Alarm> <ID>{274467AC-DC8D-41C7-B621-5A61C632E831}</ID> <Tag>KR 203 - Error Servomotor 3</Tag> <Priority>1</Priority> <Type> <ID>{9D19120C-3277-4197-B960-0C6476C6E10A}</ID> <Name>Error.Critical</Name> </Type> <Group> <ID>{9E307C3D-9CC9-4732-AC8E-5D0CE13F6C90}</ID> <Name>Production.KR.203</Name> </Group> <Text>Warning servomotor 3: input power is too high (##1##)</Text> <Signal> <ID>{065F4C10-20B4-40D7-B482-E7122291C92C}</ID> <Name>Local Second</Name> <OPCName>Local Second</OPCName> <Description /> </Signal> <Event> <Type>1</Type> <Incident> <ID>{E69C45AF-1386-4A37-8AA8-F86B92385512}</ID> <TimeStamp>2014-06-19 12:37:11.017</TimeStamp> </Incident> </Event> </Alarm> </WFServer> </Message>
Node | Description |
---|---|
Message/TimeStamp | The date and time of the message |
Message/WFServer/ID | The unique ID of the server |
Message/WFServer/Name | The server machine name |
Message/WFServer/Alarm/ID | The unique ID of the alarm |
Message/WFServer/Alarm/Tag | The alarm name (tag) |
Message/WFServer/Alarm/Priority | The alarm priority |
Message/WFServer/Alarm/Type/ID | The unique ID of the alarm type |
Message/WFServer/Alarm/Type/Name | The name of the alarm type |
Message/WFServer/Alarm/Group/ID | The unique ID of the alarm group |
Message/WFServer/Alarm/Group/Name | The name of the alarm group |
Message/WFServer/Alarm/Text | The alarm text. The alarm text can include replacement signal values. |
Message/WFServer/Alarm/Signal/ID | The unique ID of the signal that triggers the alarm |
Message/WFServer/Alarm/Signal/Name | The name (friendly name) of the signal |
Message/WFServer/Alarm/Signal/OPCName | The name (real name) of the signal in the OPC server |
Message/WFServer/Alarm/Signal/Description | The description of the signal |
Message/WFServer/Alarm/Event/Type | The type of the event. Can be:
|
Message/WFServer/Alarm/Event/Incident/ID | The unique ID of the event occurrence |
Message/WFServer/Alarm/Event/Incident/TimeStamp | The date and time when the event occurred |
Alarm acknowledgment events
Message body example:
<Message>
<TimeStamp>2014-06-19 12:41:29.112</TimeStamp>
<WFServer>
<ID>{39F990E2-FCC4-442A-9374-23974491663F}</ID>
<Name>VM_Test-PC</Name>
<Alarm>
<ID>{274467AC-DC8D-41C7-B621-5A61C632E831}</ID>
<Tag>KR 203 - Error Servomotor 3</Tag>
<Priority>1</Priority>
<Type>
<ID>{9D19120C-3277-4197-B960-0C6476C6E10A}</ID>
<Name>Error.Critical</Name>
</Type>
<Group>
<ID>{9E307C3D-9CC9-4732-AC8E-5D0CE13F6C90}</ID>
<Name>Production.KR.203</Name>
</Group>
<Text>Warning servomotor 3: input power is too high (16.9283333333333)</Text>
<Signal>
<ID>{065F4C10-20B4-40D7-B482-E7122291C92C}</ID>
<Name>Local Second</Name>
<OPCName>Local Second</OPCName>
<Description />
</Signal>
<Event>
<Type>2</Type>
<Incident>
<ID>{E69C45AF-1386-4A37-8AA8-F86B92385512}</ID>
<TimeStamp>2014-06-19 12:37:11.017</TimeStamp>
</Incident>
<Acknowledgement>
<Session>366c04d7-f7f3-4f48-94c5-d32df79841ed</Session>
<Client>VM_TEST-PC</Client>
<IPAddresses>192.168.20.217</IPAddresses>
<Result>0</Result>
<User>
<ID>{CF2C1762-071D-41F5-ACF6-1BA173217070}</ID>
<Name />
</User>
<Text />
</Acknowledgement>
</Event>
</Alarm>
</WFServer>
</Message>
The highlighted XML nodes represent the specific data added by the acknowledgment event. The rest of the XML structure is the same as for the alarm on and alarm off events.
NOTE
In the above example, the Event/Type node data, representing the type of event, reflects the current event type.
The additional XML nodes for the acknowledgment event are:
Node | Description |
---|---|
Message/WFServer/Alarm/Event/Acknowledgment/Session | The unique ID of the session in which the alarm event was acknowledged |
Message/WFServer/Alarm/Event/Acknowledgment/Client | The name of the machine on which the event acknowledgment has been made |
Message/WFServer/Alarm/Event/Acknowledgment/IPAddresses | The IP address of the machine on which the event acknowledgment has been made |
Message/WFServer/Alarm/Event/Acknowledgment/Result | The result of the acknowledgment event. The resulted codes can be:
|
Message/WFServer/Alarm/Event/Acknowledgment/User/ID | The unique ID of the user that made the event acknowledgment |
Message/WFServer/Alarm/Event/Acknowledgment/User/Name | The name of the user that made the event acknowledgment |
Message/WFServer/Alarm/Event/Acknowledgment/Text | The acknowledgment text |
WEBfactory 2010 Message
The WEBfactory 2010 Messages are general messages related to Server Status, Signal Status, User Login and User Write. All these message types have the same label: WEBfactory 2010 Message.
Server Status messages
The Server Status WEBfactory 2010 Messages are generated when the status of the WEBfactory 2010 Server changes (running/stopped). For example, when starting or stopping the Server.
Message body example:
<Message> <TimeStamp>2014-06-20 09:37:20.567</TimeStamp> <WFServer> <ID>{39F990E2-FCC4-442A-9374-23974491663F}</ID> <Name>VM_Test-PC</Name> <Status>1</Status> </WFServer> </Message>
Node | Description |
---|---|
Message/TimeStamp | The date and time of the message |
Message/WFServer/ID | The unique ID of the server |
Message/WFServer/Name | The server machine name |
Message/WFServer/Status | The status of the server. Can be:
|
Signal Status messages
The Signal Status WEBfactory 2010 Messages are generated when the status or quality of the signal changes. The signal must have the Log user activity option enabled.
Message body example:
<Message> <TimeStamp>2014-06-20 13:26:37.474</TimeStamp> <WFServer> <ID>{39F990E2-FCC4-442A-9374-23974491663F}</ID> <Name>VM_Test-PC</Name> <SignalStatus> <Session>db0172e0-3159-4ae9-8b16-f7a2f451e394</Session> <Client>VM_TEST-PC</Client> <IPAddresses>192.168.20.217</IPAddresses> <Status>0</Status> <Result>0</Result> <User> <ID>{CF2C1762-071D-41F5-ACF6-1BA173217070}</ID> <Name>admin</Name> </User> <Signal> <ID>{8088E834-255C-4B19-94EE-BFFF48137A82}</ID> <Name>Setpoint 2</Name> <OPCName>Buffer 2</OPCName> <Description /> </Signal> <CurrentValue> 45</CurrentValue> <OfflineValue> 0</OfflineValue> </SignalStatus> </WFServer> </Message>
Node | Description |
---|---|
Message/TimeStamp | The date and time of the message |
Message/WFServer/ID | The unique ID of the server |
Message/WFServer/Name | The server machine name |
Message/WFServer/SignalStatus/Session | The ID of the session in which the status/quality of the signal has changed |
Message/WFServer/SignalStatus/Client | The name of the machine on which the status/quality of the signal has been changed |
Message/WFServer/SignalStatus/IPAddresses | The IP address of the machine on which the status/quality of the signal has been changed |
Message/WFServer/SignalStatus/Status | The current status of the signal. Can be:
|
Message/WFServer/SignalStatus/Result | The result of the status change event. The resulted codes can be:
|
Message/WFServer/SignalStatus/User/ID | The unique ID of the user that made the signal status change |
Message/WFServer/SignalStatus/User/Name | The name of the user that made the signal status change |
Message/WFServer/SignalStatus/Signal/ID | The unique ID of the signal for which the status has change |
Message/WFServer/SignalStatus/Signal/Name | The name of the signal for which the status has change |
Message/WFServer/SignalStatus/Signal/OPCName | The OPC name of the signal for which the status has change |
Message/WFServer/SignalStatus/Signal/Description | The description of the signal for which the status has change |
Message/WFServer/SignalStatus/CurrentValue | The current value of the signal. If the signal is unavailable, this value will be the value that the signal will have when active again, until the next update. |
Message/WFServer/SignalStatus/OfflineValue | The last value of the signal before becoming unavailable. |
User Login messages
The User Login WEBfactory 2010 Messages are generated when a user performs a login or logout. The user must have the Log activities option enabled and the user session must be valid.
Message body example:
<Message> <TimeStamp>2014-06-20 13:01:52.476</TimeStamp> <WFServer> <ID>{39F990E2-FCC4-442A-9374-23974491663F}</ID> <Name>VM_Test-PC</Name> <UserLogin> <Session>300e2fd5-b8de-4043-90e3-b70fbfa8743a\DefaultProject</Session> <Client>VM_TEST-PC</Client> <IPAddresses>192.168.20.217</IPAddresses> <OPCode>0</OPCode> <Result>0</Result> <User> <ID>{CF2C1762-071D-41F5-ACF6-1BA173217070}</ID> <Name>admin</Name> </User> </UserLogin> </WFServer> </Message>
Node | Description |
---|---|
Message/TimeStamp | The date and time of the message |
Message/WFServer/ID | The unique ID of the server |
Message/WFServer/Name | The server machine name |
Message/WFServer/UserLogin/Session | The ID of the session in which the user performed the login or logout operation |
Message/WFServer/UserLogin/Client | The name of the machine from which the user performed the login or logout operation |
Message/WFServer/UserLogin/IPAddresses | The IP address of the machine from which the user performed the login or logout operation |
Message/WFServer/UserLogin/OPCode | The user operation code. Can be:
|
Message/WFServer/UserLogin/Result | The result of the user login or logout operation. The resulted codes can be:
|
Message/WFServer/UserLogin/User/ID | The unique ID of the user that executed the operation |
Message/WFServer/UserLogin/User/Name | The name of the user that executed the operation |
User Write messages
The User Write WEBfactory 2010 Messages are generated when the user writes the value of a signal. The user must have the Log user activity option enabled.
Message body example:
<Message> <TimeStamp>2014-06-20 13:02:56.862</TimeStamp> <WFServer> <ID>{39F990E2-FCC4-442A-9374-23974491663F}</ID> <Name>VM_Test-PC</Name> <UserWrite> <Session>2507d567-15be-4b31-8a00-7ac2c3aaa262</Session> <Client>VM_TEST-PC</Client> <IPAddresses>192.168.20.217</IPAddresses> <Result>0</Result> <User> <ID>{CF2C1762-071D-41F5-ACF6-1BA173217070}</ID> <Name>admin</Name> </User> <Signal> <ID>{8088E834-255C-4B19-94EE-BFFF48137A82}</ID> <Name>Setpoint 2</Name> <OPCName>Buffer 2</OPCName> <Description /> </Signal> <OldValue> 55</OldValue> <NewValue> 45</NewValue> </UserWrite> </WFServer> </Message>
Node | Description |
---|---|
Message/TimeStamp | The date and time of the message |
Message/WFServer/ID | The unique ID of the server |
Message/WFServer/Name | The server machine name |
Message/WFServer/UserWrite/Session | The ID of the session in which the user performed the write operation |
Message/WFServer/UserWrite/Client | The name of the machine from which the user performed the write operation |
Message/WFServer/UserWrite/IPAddresses | The IP address of the machine from which the user performed the write operation |
Message/WFServer/UserWrite/Result | The result of the user write operation . The resulted codes can be:
|
Message/WFServer/UserWrite/User/ID | The unique ID of the user that executed the operation |
Message/WFServer/UserWrite/User/Name | The name of the user that executed the operation |
Message/WFServer/UserWrite/Signal/ID | The unique ID of the signal for which the value has been written |
Message/WFServer/UserWrite/Signal/Name | The name of the signal for which the value has been written |
Message/WFServer/UserWrite/Signal/OPCName | The OPC name of the signal for which the value has been written |
Message/WFServer/UserWrite/Signal/Description | The description of the signal for which the value has been written |
Message/WFServer/UserWrite/OldValue | The value of the signal before the user write operation |
Message/WFServer/UserWrite/NewValue | The new value written by the user. |