Professional Documents
Culture Documents
Geh-6760 e
Geh-6760 e
GE Internal
These instructions do not purport to cover all details or variations in equipment, nor to provide for every possible
contingency to be met during installation, operation, and maintenance. The information is supplied for informational
purposes only, and GE makes no warranty as to the accuracy of the information included herein. Changes, modifications,
and/or improvements to equipment and specifications are made periodically and these changes may or may not be reflected
herein. It is understood that GE may make changes, modifications, or improvements to the equipment referenced herein or to
the document itself at any time. This document is intended for trained personnel familiar with the GE products referenced
herein.
GE may have patents or pending patent applications covering subject matter in this document. The furnishing of this
document does not provide any license whatsoever to any of these patents.
GE Internal – This document contains information that belongs to the General Electric Company and is furnished to its
customer solely to assist that customer in the installation, testing, operation, and/or maintenance of the equipment described.
This document or the information it contains shall not be reproduced in whole or in part or disclosed to any third party
without the express written consent of GE.
GE provides the following document and the information included therein as is and without warranty of any kind, expressed
or implied, including but not limited to any implied statutory warranty of merchantability or fitness for particular purpose.
For further assistance or technical information, contact the nearest GE Sales or Service Office, or an authorized GE Sales
Representative.
GE Internal
Document Updates
Location Description
The section, Summary The table, Parameter Identification Summary, added 4 new
of Messages Parameters
The section, Alarm The table, Alarm States, added Code (0x0D) and paragraphs
Data Messages regarding Boolean and Analog Alarms.
The table, Alarm Data Reason Codes, updated table for
Timed Shelved, One-shot-Shelved, and Alarm Severity or
Priority Changed.
Added information on Shelved states to the Shelved State
format discussion.
Added figures and discussion for Alarm State, Previous Alarm
State, Operator Comment, and Operator Comment in a
second language.
The section, Alarm The table, Alarm States, added Code (0x0D) and paragraphs
Dump Message regarding Boolean and Analog Alarms.
Structure The table, Alarm Data Reason Codes, updated table for
Timed Shelved, One-shot-Shelved, and Alarm Severity or
Priority Changed.
Added information on Shelved states to the Shelved State
format discussion.
Added figures and discussion for Alarm State, Previous Alarm
State, Operator Comment, and Operator Comment in a
second language.
The section, The table, 0x0300 Alarm Establish Request, 0x0700 Alarm
Breakdown of Command Request and 0x0701 Alarm Command Ack/Nak
Differences Between Response, added Bits 21 and 22
GSM1/GSM2 and The table, 0x0302 Alarm Data Message and 0x0702 Alarm
GSM3 Dump Message, added 0x0D, 0x13, 0x14, 0x115, 0x116,
0x117, and 0x118
The table, 0x0402 Digital Input Data Message and 0x0502
Software Event Data Message, added 0x110E
Attention
GE Internal
Contents
1 Overview ............................................................................................................................................. 7
1.1 GSM Message Types ...............................................................................................................................8
1.2 Notation.................................................................................................................................................9
1.2.1 Time Tag Considerations .................................................................................................................. 11
1.3 Summary of Messages ............................................................................................................................ 12
2 Administrative Requests .............................................................................................................. 15
2.1 Supported Controller Request .................................................................................................................. 15
2.1.1 Supported Controller Response.......................................................................................................... 15
2.2 Heartbeat Message ................................................................................................................................. 17
2.3 Connection Options Request .................................................................................................................... 18
2.4 Connection Options Response .................................................................................................................. 19
3 Event Driven Requests ................................................................................................................. 21
3.1 Alarm Record Establish Request............................................................................................................... 21
3.1.1 Alarm Record Establish ACK/NAK Response ...................................................................................... 23
3.2 Alarm Data Messages ............................................................................................................................. 24
3.2.1 Digital Input Record Establish Request ............................................................................................... 35
3.2.2 Digital Input Record Establish ACK/NAK Response ............................................................................. 36
3.2.3 Digital Input Data Messages.............................................................................................................. 37
3.2.4 Software Event Record Establish Request ............................................................................................ 42
3.2.5 Software Event Data Messages .......................................................................................................... 44
4 Periodic Data Messages ............................................................................................................... 49
4.1 Periodic Data Request ............................................................................................................................ 49
4.1.1 Periodic Data ACK/NAK Response.................................................................................................... 51
4.2 Periodic Data Message............................................................................................................................ 52
4.3 High-speed Periodic Data Messages .......................................................................................................... 54
4.3.1 High-speed Periodic Data Request...................................................................................................... 54
4.4 Sources of Periodic Data ......................................................................................................................... 56
5 Periodic Write Messages .............................................................................................................. 59
5.1 Periodic Write Request ........................................................................................................................... 59
5.1.1 Periodic Write Definition.................................................................................................................. 60
5.1.2 Periodic Write Definition Response .................................................................................................... 62
5.1.3 Periodic Write Message.................................................................................................................... 64
5.1.4 Periodic Write Message Response ...................................................................................................... 66
5.2 GSM3 Redundancy ................................................................................................................................ 68
6 Command Messages ..................................................................................................................... 69
6.1 Alarm Command Request ....................................................................................................................... 69
6.1.1 Alarm Command ACK/NAK Response............................................................................................... 72
6.2 Alarm Dump Messages........................................................................................................................... 73
6.2.1 Alarm Dump Message Structure ........................................................................................................ 73
6.3 Process Control Command Requests.......................................................................................................... 84
6.3.1 Process Control Command ACK/NAK Response .................................................................................. 86
7 Changes From GSM1/GSM2 ........................................................................................................ 87
7.1 Differences between GSM1/GSM2 versus GSM3 ........................................................................................ 87
• Administrative
• Event-driven data
• Periodic data
• Command
Administrative requests are not associated with a single process controller. These requests
are messages from the DCS to the gateway, mainly to interrogate the capability of the
gateway.
Sequence of events (SOE) data Event-driven data messages are spontaneously sent messages, sent as a result of a change
and alarms are available. in state. There are several classes of event driven data including the following:
Many messages have Name fields within them. The format of a Name field is in all cases,
except parameter list entries (see below), a counted-UTF8 Encoded string, where the first
byte transmitted is treated as an unsigned number n followed by the name itself. The
count n is the number of BYTES it takes to represent the UTF8 Encoded string, not the
number of characters. The first byte following n is the leftmost character in the name. For
notational illustration, Name fields are displayed generically as follows:
The number n may be zero.
Similar to Name fields, many messages have records defined. In these instances, each
record is identified by a Record Identifier or Record Type, followed by the record size,
followed by the record specific information. For notational illustration, records are
displayed generically as follows:
n, the record size, may be zero.
Most records within GSM messages are made up of groups of sub-records, which are
implemented as parameter lists. Each item in a parameter list consists of at least two
16-bit words. The first word identifies the parameter. The second word identifies the
number of bytes to follow which qualify the parameter. These two words are then
followed by zero or more bytes (as defined by the second word). Software may use the
parameter size to skip unknown parameters.
A special item code with a value of 0x0000 is the End-of-list item code. Even if the total
record size indicates space for more item list entries, no interpretation of data beyond
End-of-list should be attempted. Software that scans item lists must simply bypass
unknown or previously undefined item code entries
Item Codes and Record Types have unique values. No item code has the same value as a
defined record type.
Time tag accuracy depends on Most data messages have time tagged data points within them. All time tags are
the controller scan, and is less represented using a structure consisting of two unsigned longwords (32-bits each). The
than the time tag resolution. first longword is the number of seconds since 1-JAN-1970 00:00:00.000000 GMT
(Greenwich Mean Time). The second longword is the number of microseconds within the
second, having a decimal range of 0-999,999. The latest date and time that can be stored
is 07-FEB-2106 06:28:15.999999 GMT.
The layout of a time tag is as follows:
Many of the message formats have RESERVED fields. These fields are for use in future
versions of the GSM specification. To preserve backward/forward compatibility, software
that generates GSM messages must insert zeros in these fields. Software that receives
GSM messages must ignore these fields.
• A 16-bit message code that identifies the requested function, for example data
acquisition, or command.
• A 16-bit sequence number which is an arbitrary number generated by the
data/command requester to uniquely identify a given request; all responses to a given
request message have this sequence number echoed back allowing stale data to be
thrown away.
• A UTF8 Encoded process controller name that defines the controller within a
multi-controller site to which the request is directed.
A GSM message has a generic form as follows:
0x1105 Alarm Quality (embedded bits that follow OPC DA 3.0 Quality Flags)
The number of communication links that are currently active between the gateway and the
controller is defined as follows:
Message
Offset
Notes
0x0A00 0 Message Code
Sequence Number 2
/../
Controller Name (UTF8) <n> 4 Controller Name
-
.
/../
0x1001 5 +n ParamID=MaxMessageSize
<Size x> 7 + n Number of bytes
Max Message Size 9 + n Max Message Size
0x1003 11+ n ParamID=MeasurementSys
<Size y> 13 + n Number of bytes
-
Measurement System 15 + n Measurement System
...//
0x1002 15+n+y ParamID=Connectn Opt
<Size z> 17+n+y Number of bytes
-
Connection Options 19+n+y Connection Options
...//
=
The three parameters displayed above are all optional. Any one Connection Options
Request message can include one, two, or all three of the parameters. (While it is not
useful, the GSM Server will accept a message with no parameters.)
The Controller Name is included in this message just to keep the beginning format of all
GSM messages the same. The contents of the Controller Name field are not used by the
GSM Server.
The Maximum Message Size defines the maximum number of bytes for any GSM
message to be sent or received over this connection. If the Connection Configuration
Request is never sent, then this maximum is defaulted to 4096 to be backwards
compatible with GSM1/GSM2. If the gateway receives a message whose first two bytes
are larger than this maximum, the gateway will assume that somehow it is in the middle
of a message frame, log the error, and break the connection. (All GSM messages must be
preceded by a two-byte integer indicating the size of the message.) If a message would
exceed the maximum message size, then it must be broken into multiple messages. For
instance, if a periodic data request would exceed the maximum message size, then the
DCS would need to break this request into two (or more) separate requests/lists. Likewise,
if an alarm dump would exceed the maximum message size then the gateway would need
to split up the alarms into two (or more) separate messages.
The Measurement System is a string that should match (case insensitive) one of the
Measurement Systems that was configured in the System. (For example, US or Metric)
Once this is set for a given connection, then all values read and written over this
connection will use the scaling associated with this Measurement System.
If the Measurement System parameter isn’t included in the message at all, then this
connection uses whichever Measurement System was configured as the GSM default in
the ToolboxST* configuration.
Connection Options define any options that might be specific to this connection. If the
Connection Options parameter is not included in the message at all, then the GSM3
Server default to this connection using GSM1/GSM2 protocol.
Bit 0 = 1 Use GSM3 Protocol.
Bits 2 to (8z-1) are reserved and must be zero.
Code Description
0 Success
+1 Reserved
-1 Reserved
-2 Reserved
-3 Invalid Command
-4 Malformed Request
-5 Reserved
-6 Reserved
-7 Reserved
-8 Reserved
-9 Unknown Measurement System
• 0x0000 requests that the DCS be added to the alarm distribution list for the specified
controller.
• 0xFFFF requests that the DCS be removed from the alarm distribution list.
All other values are reserved.
The Sequence Number, Controller Name, and Establish Function are echoed from the
alarm establish request. The establish code is 0x0300 for an alarm ACK/NAK response.
Alarm Record Establish ACK/NAK Response Codes
Code Description
0 Success
+1 DCS is on the gateway's distribution list. Communication with the
process controller is not currently possible
-6 Reserved
-7 Reserved
These messages contain a list of parameter lists (denoted by *1), and identified by a
record type value of 0x8000. Each parameter list corresponds to a single alarm, which has
changed state. The possible parameters are defined here.
The Point Name parameter is as follows:
Alarm States
Code Description
0x00 Normal
0x01 Alarmed
0x02 High-High-High
0x03 Low-Low-Low
0x04 High-High
0x05 Low-Low
0x06 High
0x07 Low
0x08 Rate
0x09 Deviation
0x0A Reserved
0x0B Reserved
0x0C Bad Quality
0x04 Reserved
0x05 Reserved in GSM3 (In GSM1/GSM2 was Alarm just re-triggered.
Reset time tag in the alarm queue)
0x06 Reserved
0x07 Alarm just acknowledged
This information is not sent if it is not requested in the alarm establish message. The text
size is zero if the gateway cannot provide the associated text.
This information is not sent if it is not requested in the alarm establish message. The text
size is zero if the gateway cannot provide the associated text.
The alarm record sequence number format is as follows:
Refer to Chapter 6 for the Each GSM3 Server keeps an alarm message sequence number for each device from which
alarm dump message. it forwards alarm messages. Each time an alarm message (that is not a dump) is
forwarded to the DCS client the sequence number is incremented. The alarm sequence
number is provided for remote alarm queue management. If the remote alarm queue
sequence number (plus 1) does not equal this sequence number, then the remote alarm
queue has missed an alarm message. In this event, the DCS should request an alarm dump
to re-synchronize. This value is a two-byte unsigned integer and will rollover after
0xFFFF.
The alarm ACK state parameter is as follows:
This information is not sent if it is not requested in the alarm establish message.
The alarm severity parameter is as follows:
This information is not sent if it is not requested in the alarm establish message.
The alarm quality is bit-encoded, following the OPC DA 3.0 Specification for OPC
Quality Flags. This information is not sent if it is not requested in the alarm establish
message.
Note See the OPC DA 3.0 Specification for information on how to decode the values in
this parameter.
The alarm class is a string used in filtering alarms. This information is not sent if it is not
requested in the alarm establish message.
The alarm value on transition format is as follows:
This is the value of the alarm variable at the point in time that an Alarm State transition
was detected. For analog alarms, this is when it crossed over the set point indicated in the
Alarm State. (For example, High Set point.) If the client requested data in a different
measurement system than what is native to the controller, the value will be converted to
the requested measurement system and its precision applied. The value is returned as a
string. This information is not sent if it is not requested in the alarm establish message.
Note If the user chose to override the precision from the format spec with precision
declared directly on the point, that precision is not used, and is not used on the GE Alarm
Viewer either.
Note If the user chose to override the units from the format spec with units declared
directly on the point, those units are not returned, and will not display up on the GE
Alarm Viewer either.
The Alarm plant area is a string used in filtering alarms. This information is not sent if it
is not requested in the alarm establish message.
The alarm actor ID format is as follows:
The Alarm actor ID is a string used in filtering alarms. This information is not sent if it is
not requested in the alarm establish message.
The alarm sound reference format is as follows:
The Alarm Sound Reference is a string that represents what sound should be played when
this alarm occurs. (For example, this could point to a Wave file.) This information is not
sent if it is not requested in the alarm establish message.
The alias is an attribute on a Pointname. It can be used in some end systems like the
Alarm Viewer as an alternative to the Pointname. In some requisitions, the pointname
may be the GE name and the alias the customer name, and in other requisitions the
reverse may be true. The value is a string. This information is not sent if it is not
requested in the alarm establish message.
The Out of Service State is an indication of whether the alarm is currently Out of Service.
The Out of Service State format is as follows:
This information is not sent if it is not requested in the alarm establish message.
This information is not sent if it is not requested in the alarm establish message.
The Alarm Shelving Duration parameter is the number of seconds that the alarm is
shelved. Add this to the Shelved Time parameter to determine when the alarm will
automatically unshelved.
The Alarm Shelving Duration format is as follows:
This information is not sent if it is not requested in the alarm establish message.
The ACK Time parameter is the time of the last Acknowledgement.
This information is not sent if it is not requested in the alarm establish message.
The alarm state text format is as follows:
0x1115 Param ID = Alarm State Text
<Size n> Size of Alarm State Text.
"
Alarm State Text
...// $
The alarm state text parameter is only sent when the Alarm State parameter (0x1060) is
set to “External” (0x0D). As part of the OPC UA Alarm Specification, it is possible for
the specific Alarm State to be passed as a string to the Alarm Server, instead of using a
pre-defined Alarm State. When this occurs, the Alarm State will be sent as “External”,
and this associated “Alarm State Text” string should be used to show to the Alarm State
to the operator.
The previous alarm state text format is as follows:
0x1116 Param ID = Previous Alarm State Text
<Size n> Size of Previous Alarm State Text.
%
Previous Alarm State Text
...// '
The previous alarm state text parameter is only sent when the Alarm Previous State
parameter (0x1107) is set to “External” (0x0D). As part of the OPC UA Alarm
Specification, it is possible for the specific Alarm State to be passed as a string to the
Alarm Server, instead of using a pre-defined Alarm State. When this occurs, the Alarm
Previous State will be sent as “External”, and this associated “Previous Alarm State Text”
string should be used to show to the Previous Alarm State to the operator.
The operator comment format is as follows:
0x1117 Param ID = Operator Comment
<Size n> Size of Operator Comment.
"
Operator Comment
...// $
• 0x0000 requests that the DCS be added to the digital input distribution list for the
specified controller.
• 0xFFFF requests that the DCS be removed from the distribution list.
Attention
Alarm Options are defined as:
Bit 0 = 1 Include Description in digital input messages.
Bits 1-15 are reserved and must be zero.
Alarm Attribute Options define which of the new attributes the DCS wants sent to them
with a digital input. If the new Alarm Attribute Options is not included in the message at
all then the GSM3 Server will default all values to zero, resulting in none of the new
attributes being included in data messages.
Bit 0 = Reserved and must be zero.
Bit 1 = Reserved
Bit 2 = Reserved
Bit 3 = 1 Include Priority
Bit 4 = 1 Include Severity
Bit 5 = 1 Include Quality
Bit 6 = 1 Include Class
Bit 7 = Reserved
Bit 8 = Reserved
Bit 9 = Reserved
Bit 10 = 1 Include Description in the second language.
Bit 11 = 1 Include Plant Area
Bit 12 = Reserved
Bit 13 = 1 Include Sound Reference
Bit 14 = 1 Include Alias for Pointname associated with this digital input
Bits 15 to (8x-1) are reserved and must be zero.
Code Description
0 Success
+1 DCS is on the gateway's distribution list. Communication with the
process controller is not currently possible
-6 Reserved
-7 Reserved
The above information is not sent if it was not requested in the digital input establish
message. Text size will be zero if the gateway cannot provide the associated text.
The description in a second language associated with the digital input is as follows:
This information is not sent if it is not requested in the digital input establish message.
The text size is zero if the gateway cannot provide the associated text
The digital input priority parameter is as follows:
This information is not sent if it is not requested in the digital input establish message.
This information is not sent if it is not requested in the digital input establish message.
The digital input quality parameter is as follows:
The quality is bit-encoded, following the OPC DA 3.0 Specification for OPC Quality
Flags. This information is not sent if it is not requested in the digital input establish
message.
The alarm class format is as follows:
The alarm class is a string used in filtering alarms. This information is not sent if it is not
requested in the digital input establish message.
The plant area format is as follows:
The plant area is a string used in filtering alarms. This information is not sent if it is not
requested in the digital input establish message.
The sound reference is a string that represents what sound should be played when this
digital input occurs. (For example, this could point to a Wave file.) This information is
not sent if it is not requested in the digital input establish message.
The alias for point name format is as follows:
The Alias is an attribute on a Pointname. It can be used in some end systems like the
Alarm Viewer as an alternative to the Pointname. In some requistions, the pointname may
be the GE name and the alias the customer name, and in other requisitions the reverse
may be true. The value is a string. This information is not sent if it is not requested in the
digital input establish message.
The last parameter in the list is as follows:
• 0x0000 requests that the DCS be added to the event message distribution list for the
specified controller.
• 0xFFFF requests that the DCS be removed from the distribution list.
All other values are reserved.
Alarm Options are defined as:
Bit 0 = 1 Include Description in event messages.
Bits 1-15 are reserved and must be zero.
Alarm Attribute Options define which of the new attributes the DCS wants sent to them
with an event. If the new Alarm Attribute Options isn’t included in the message at all then
the GSM3 Server will default all values to zero, resulting in none of the new attributes
being included in data messages.
The Sequence Number, Controller Name, and Establish Function are echoed from the
event establish request. The establish code is 0x0500 for an event ACK/NAK response.
Software Event Record Establish ACK/NAK Codes
Code Description
0 Success
+1 DCS is on the gateway's distribution list. Communication with the
process controller is not currently possible.
-6 Reserved
-7 Reserved
These messages contain a list of parameter lists (denoted by *1), and identified by a
record type value of 0x8000. Each parameter list corresponds to a single logic value,
which has changed state. Possible parameters are displayed below.
The point name parameter is as follows:
Bit 0 below defines the current state of the logic variable. All other bits are reserved.
The description associated with the event is as follows:
The above information is not sent if it was not requested in the event establish message.
Text size will be zero if the gateway cannot provide the associated text.
The description in a second language associated with the event is as follows:
This information is not sent if it is not requested in the event establish message. The text
size is zero if the gateway cannot provide the associated text.
The event priority parameter is as follows:
This information is not sent if it is not requested in the event establish message.
This information is not sent if it is not requested in the event establish message.
The event quality parameter is as follows:
The quality is bit-encoded, following the OPC DA 3.0 Specification for OPC Quality
Flags. This information is not sent if it is not requested in the digital input establish
message.
The alarm class format is as follows:
The alarm class is a string used in filtering alarms. This information is not sent if it is not
requested in the event establish message.
The plant area format is as follows:
The plant area is a string used in filtering alarms. This information is not sent if it is not
requested in the event establish message.
The sound reference is a string that represents what sound should be played when this
event occurs. (For example, this could point to a Wave file). This information is not sent
if it is not requested in the event establish message.
The alias for point name format is as follows:
The alias is an attribute on a pointname. It can be used in some end systems like the
Alarm Viewer as an alternative to the pointname. In some requistions, the pointname may
be the GE name and the alias the customer name, and in other requisitions the reverse
may be true. The value is a string. This information is not sent if it is not requested in the
event establish message.
The last parameter in the list is as follows:
As this implies, the variable values are read into the WorkstationST computer running
GSM and then sent to the DCS. The values may have been read into the WorkstationST
computer either off of EGD or through SDI. (For more information on how data is
gathered, refer to the section Sources of Periodic Data later in this chapter.) Any given
list can actually contain points from more than one controller. The Point Name should be
fully qualified, indicating the controller from which this signal originated. (For example,
G1.TNH).
List Number defines a unique set of data points to be returned to this client. Each client
has their own set of list definitions, the same List Number can be used independently by
different clients. If the request contains a List Number that is identical to a previously
defined set, the new request supersedes the previous definition. List Number may be any
value.
Establish Function has two defined values.
• 0x0000 requests that the data points specified in the request be returned to the DCS
according to the Period Code.
• 0xFFFF-requests cancellation of any previously defined list corresponding to the List
Name or Controller Name.
Period Code defines the number of seconds between data transmissions. It is ignored on
list cancellation requests. A Period Code with a value of zero requests the data to be
transmitted only once.
The Point Name parameter list is ignored on list cancellations resulting from the Establish
Function. The Point Name parameter is a UTF8 Encoded string and must match the point
name as it is accessed from the WorkstationST OPC DA server process. (For example,
G1.TNH)
The Sequence Number, Controller Name, List Number, and Establish Function are
echoed from the event establish request. The establish code is 0x0600 for a periodic data
ACK/NAK response.
Periodic Data ACK/NAK Codes
Codes Description
0 Success
+1 DCS on gateway's distribution list. Communication with the process
controller is not currently possible
-7 Reserved
*1 – The List Number determines which set of data values are being returned if the DCS
has defined multiple lists.
• 0x0000 requests that the data points specified in the request be returned to the DCS
according to the Period Code.
• 0xFFFF-requests cancellation of any previously defined list corresponding to the List
Name/Controller Name.
Period Code defines the number of milliseconds between data transmissions. It is ignored
on list cancellation requests. A Period Code with a value of zero requests the data to be
transmitted only once. The minimum period allowed depends upon how fast the GSM
Server is running its message scheduler – which is currently at 20 milliseconds. Attempts
to collect data faster than the GSM scheduler is running will result in messages being sent
at the GSM scheduler rate.
The Point Name parameter list is ignored on list cancellations resulting from the Establish
Function. The Point Name parameter is a UTF8 encoded string and must match the point
name defined in the controller configuration for the subsystem used for high speed data
collection.
The reply to a High-speed Periodic Data Request message is the same as the reply to a
normal Periodic Data Request message. A Periodic Data ACK/NAK Response message
(message code 0x0601) is returned.
The high-speed periodic data is sent using the same message type as normal periodic data
- the data is returned in a Periodic Data Message (message code 0x0602). If a point value
is not currently available the length of the data for that point will be reported as zero (0)
bytes.
EGD If a process controller’s variable is mapped to EGD then the OPC DA server will
read this value off of the process controller’s EGD page. This means that regardless of
how often the DCS asked for periodic updates, the values of those variables will only
change when a new EGD transmission is received. For example, a DCS requests variables
every 200 milliseconds, but the EGD page on which the variables reside is only sent out
every 400 milliseconds. The DCS receives a periodic data message every 200
milliseconds, but the values within those messages will only change in every other
message (every 400 milliseconds). When the system is architected, EGD page
transmission rates should be set up to correspond to required data rates of the DCS.
SDI SDI If a process controller’s variable is not mapped to EGD and SDI Data
Enabled is set to true, then the OPC DA server will get the variable value through an SDI
list to the process controller. (Set SDI Data Enabled in the WorkstationST component, on
the OPC DA server tab, under General properties.)
Note This adds a load to the controller and is not recommended for normal periodic data
collection.
Controller Name All periodic data requests should use the Controller Name WKS.
This is to differentiate GSM3 periodic data collection from the myriad of ways data was
collected in GSM1 and GSM2.
Point Name All variables, whether they are read through EGD or SDI, should be
referenced by their fully qualified name. For example, G1.TNH, where G1 is the name of
the process controller in the system.
Time Tag The time tag for the list represents the time tag of the first bound and
healthy point in the list. This time tag is from the EGD exchange header for EGD or from
the SDI server in the process controller for SDI.
Limitations The only architectural limit on the number of variables per periodic data
list is fitting all the variable names into the Periodic Data Request without exceeding the
Maximum Message Size. The Maximum Message Size defaults to 4096 bytes, but can be
changed with a Connection Options Request Message. Otherwise, the only limit will be
the WorkstationST computer capability.
Data Types All variable values are returned using the WorkstationST Native Data
Types. The values are typically returned already converted into engineering units.
Type Description
BOOL Bit packed
BYTE 1 byte
WORD 2 bytes
DWORD 4 bytes
Note The Periodic Write messages are not used to send operator initiated push-button or
setpoint commands – the Process Command message is used for those.
The DCS interface requires The DCS defines one or more lists of signals that it desires to send. It gets back an
sending data on a regular acknowledgement that indicates whether the points were found or not, and if the point
basis (periodic data). was found it indicates how many bytes of data should be written for that point. The DCS
then periodically sends a Periodic Write Message that contains data for one or more
points in the data list. The DCS is sent an acknowledgement that the write message was
processed, including any reports of mismatches in data lengths.
The sequence number is for the client’s use, the server will return the sequence number
from the Periodic Write Definition message in the response to the message.
The Controller Name should always be WKS.
By specifying the Controller Name with the generic WKS designation, it facilitates
redundant GSM3 Servers. (For more information on this, see the section GSM3
Redundancy later in this chapter.)
• 0x0000 requests that this list be defined for use with Periodic Data Write messages.
• 0xFFFF requests that this list be deleted
The List Number defines a unique set of data points for this client to write. Each client
has their own set of list definitions, the same List Number can be used independently by
different clients. If the request contains a List Number that the client has already defined
then the new definition will replace the previous definition of the list. List Number may
be any value.
The List Numbers used for the Periodic Write are separate from the List Numbers used
for the Periodic Read. A GSM Client can have a Periodic Read List and a Periodic Write
List defined with the same List Number, but these are two separate lists that can have
different contents. Defining a Periodic Read or a Periodic Write list with a particular List
Number does not define that List Number for the other function. Likewise deleting a
Periodic Read List Number or a Periodic Write List Number does not delete the other
type of list.
The Sequence Number, Controller Name, List Number, and Establish Function are all
echoed from the request. The Establish Code is always 0x0900 for the periodic write
definition response.
The Establish Status indicates problems with the overall definition (as opposed to the
individual signals). If the value returned is not zero (0) the message will not contain a list
of the individual point command status codes.
-7 Reserved
The Point Status List returns information about each signal requested to be included in the
list. The list will have the same number of entries as there were point name parameters in
the request. The first status will be for the first point name supplied, the second for the
second, and so on.
The <Point Status> values indicate whether the signal requested was found in the
controller, whether the signal was writeable or not, and how many bytes are expected for
the data value. The values returned for this field are:
Periodic Write Point Status Values
Point Status Description
<n> The signal was found and is writeable. The client must send this
many bytes when writing the data value. (n = 1, 2, 3, 4, 8)
The Sequence Number, Controller Name, and List Number are echoed from the Periodic
Write message.
The Write Status value indicated whether any errors were found in the server processing
the client’s request.
-1 Reserved
-2 Reserved
-3 Undefined List Number
-4 Reserved
-5 Internal gateway error
-6 Error trying to Write One or More Variables. Would occur if variable was
unbound, read only, or there was an OPC server Write Error.
If the Write Status is a one (1) then some cells in the message were skipped (ignored)
because of a mismatch between the data length in the GE system and the data length
coming in the Periodic Data Message. (This mismatch indication will not be triggered by
an actual length of zero, since that implies the value was omitted on purpose.) When the
Write Status is a one (1) the message will also include a Point Status Report. This Point
Status Report will list for each cell in the message both the expected and the actual
number of data bytes received. This allows the client to determine which fields were
skipped as being invalid. Cells where the expected and actual number of bytes matched
were processed and the data was updated.
Note The point name format for alarms is the same as it was for GSM1 and GSM2.
This short format is different from how Point Name’s are specified in Periodic Data Read,
Periodic Writes, and Command Requests.
The Sequence Number, Controller Name, Alarm Command, Alarm Options and Point
Name are echoed from the alarm command request.
Alarm Command ACK/NAK Codes
Codes Description
0 Success. The alarm command sent to process controller
-7 Reserved
-8 Unknown Point Name
These messages contain a list of parameter lists (denoted by *1) identified by a record
type value of 0x8000. Except for the first and last parameter lists, each parameter list
corresponds to a single alarm, which is in the alarm queue. If the alarm queue is empty,
there will be one parameter list containing only the End-Of-List parameter.
The format of the time tag associated with the alarm record is as follows:
Alarm States
Code Description
0x00 Normal
0x01 Alarmed
0x02 High-High-High
0x03 Low-Low-Low
0x04 High-High
0x05 Low-Low
0x06 High
0x07 Low
0x08 Rate
0x09 Deviation
0x0A Reserved
0x0B Reserved
0x0C Bad Quality
0x0D External; Read the “Alarm State text” parameter (0x1115) to get
the current Alarm State.
0x04 Reserved
0x05 Reserved in GSM3 (In GSM1 and GSM2 was Alarm just
re-triggered. Reset time tag in the alarm queue)
0x06 Reserved
0x07 Alarm just acknowledged
This information is not sent if it is not requested in the alarm dump request message. The
text size is zero if the gateway cannot provide the associated text.
This information is not sent if it is not requested in the alarm dump request message. The
text size is zero if the gateway cannot provide the associated text.
The alarm record sequence number format is as follows:
Each GSM3 Server keeps an alarm message sequence number for each device from which
it forwards alarm messages. Each time an alarm message (that is not a dump) is
forwarded to the DCS client then the sequence number is incremented. The alarm
sequence number is provided for remote alarm queue management. If the remote alarm
queue sequence number (plus 1) does not equal this sequence number, then the remote
alarm queue has missed an alarm message. In this event, the DCS requests an alarm dump
to re-synchronize. This value is a two-byte unsigned integer and will rollover after
0xFFFF.
The alarm ACK state parameter is as follows:
This information is not sent if it is not requested in the alarm dump request message.
The alarm severity parameter is as follows:
This information is not sent if it is not requested in the alarm dump request message.
The alarm quality is bit-encoded, following the OPC DA 3.0 Specification for OPC
Quality Flags. This information is not sent if it is not requested in the alarm dump request
message.
The alarm class format is as follows:
The Alarm class is a string used in filtering alarms. This information is not sent if it is not
requested in the alarm dump request message.
The alarm value on transition format is as follows:
This is the value of the alarm variable at the point in time that it was detected that there
was an Alarm State transition. For analog alarms, this is when it crossed over the set point
indicated in the Alarm State. (For example, High Set point.) If the client requested data in
a different measurement system than what is native to the controller, then the value is
converted to the requested measurement system and its precision applied. The value is
returned as a string. This information is not sent if it is not requested in the alarm
establish message.
Note If you choose to override the precision from the format spec with precision
declared directly on the point, that precision is not used, and is not used on the GE Alarm
Viewer either.
Note If you choose to override the units from the format spec with units declared directly
on the point, those units are not returned, and are not displayed on the GE Alarm Viewer
either.
The alarm plant area is a string used in filtering alarms. This information is not sent if it is
not requested in the alarm dump request message.
The alarm actor ID format is as follows:
The alarm actor ID is a string used in filtering alarms. This information is not sent if it is
not requested in the alarm dump request message.
The alarm sound reference format is as follows:
The alarm sound reference is a string that represents what sound should be played when
this alarm occurs. (For example, this could point to a WaveFile). This information is not
sent if it is not requested in the alarm dump request message.
The alias for point name format is as follows:
This information is not sent if it is not requested in the alarm establish message.
The Shelved State is an indication of whether the alarm is currently Shelved.
The Shelved State format is as follows:
This information is not sent if it is not requested in the alarm establish message.
The Alarm Shelving Duration parameter is the number of seconds that the alarm is
shelved. Add this to the Shelved Time parameter to determine when the alarm will
automatically unshelved.
The Alarm Shelving Duration format is as follows:
This information is not sent if it is not requested in the alarm establish message.
The ACK Time parameter is the time of the last Acknowledgement.
The ACK State format is as follows:
This information is not sent if it is not requested in the alarm establish message.
The alarm state text format is as follows:
0x1115 Param ID = Alarm State Text
<Size n> Size of Alarm State Text.
"
Alarm State Text
...// $
The alarm state text parameter is only sent when the Alarm State parameter (0x1060) is
set to “External” (0x0D). As part of the OPC UA Alarm Specification, it is possible for
the specific Alarm State to be passed as a string to the Alarm Server, instead of using a
pre-defined Alarm State. When this occurs, the Alarm State will be sent as “External”,
and this associated “Alarm State Text” string should be used to show to the Alarm State
to the operator.
0x1116 Param ID = Previous Alarm State Text
<Size n> Size of Previous Alarm State Text.
%
Previous Alarm State Text
...// '
The previous alarm state text parameter is only sent when the Alarm Previous State
parameter (0x1107) is set to “External” (0x0D). As part of the OPC UA Alarm
Specification, it is possible for the specific Alarm State to be passed as a string to the
Alarm Server, instead of using a pre-defined Alarm State. When this occurs, the Alarm
Previous State will be sent as “External”, and this associated “Previous Alarm State Text”
string should be used to show to the Previous Alarm State to the operator.
The last parameter in the list is as follows:
The operator comment format is as follows:
0x1117 Param ID = Operator Comment
<Size n> Size of Operator Comment.
"
Operator Comment
...// $
0x1118 Param ID = Operator Comment in 2nd language
<Size n> Size of Operator Comment in 2nd language.
'
Operator Comment in 2nd language
...// )
The controller name is used to check Control Hierarchy. The Process Command Name
should be the fully qualified signal name. For example, this might be G1.BTKALM1. The
Process Command Name is the name of the variable to be changed.
The push-button command parameter is as follows:
The Sequence Number, Controller Name, and Process Command Name are echoed from
the process control command request.
Process Control Command ACK/NAK Codes
Code Description
0 Success. Requested command sent to the process controller
-1 Reserved
-2 Reserved
-3 Reserved
-4 Reserved
-5 Internal gateway error
-7 Read Only
Note No more than 10 individual process control command requests per second should
be sent to any one controller.
X == Difference Applies
- == Difference Does not Apply
Common Differences
GSM/GSM 2 GSM 3
1. Encoding of Controller Name, Point ASCIIC UTF-81
Name and Long Name (Alarm
Description)
2. Point Name length Refer to the table Detail Reference Alarms, Digital Inputs and Events only
Information use the Point Name. (Ex. TNH) Periodic
Data Reads, Periodic Writes and
Command Requests use the fully
qualified point name. (Ex. G1.TNH)
3. Alarm Drop Number Included and is key Not included, Point Name is key
4. Max Points per List Refer to the table Detail Reference None2
Information
5. Max Number of Lists Refer to the table Detail Reference None2
Information
6. Numerical Data Formats Refer to the table Detail Reference Workstation Native (See chart in
Information Sources of Periodic Data section.)
7. Boolean Data Formats Refer to the table Detail Reference 1-byte Boolean without forced bit
Information
8. Controller Name used in Data CIM, EGD, T1, RFM3, and so forth WKS for Periodic Data Reads and
Messages Periodic Writes.
9. Changes in ACK/NAK Codes See applicable protocol document for See specific Message protocol sections
possible values. for possible values. No values were
reassigned. If older codes no longer
apply, they are listed as Reserved. If a
new code is added, it uses a new value.
10. Refer to the section Breakdown of
Differences for further details.
1. Any new text fields that are added, as indicated in protocol differences below, also
are UTF-8.
2. Still limited by computer CPU capability.
3. Reflective Memory is not supported.
EGD Short name, ex 300 none EGD Data Types 1-byte Boolean
TNH WITHOUT forced
bit
X == Supports
- == Does not support
0x0300 Alarm Establish Request, 0x0700 Alarm Command Request and 0x0701 Alarm Command Ack/Nak Response
For 0x0700 Alarm Command Request 2 = Lock Single Alarm 2 = Lock Single Alarm
and 0x0701 Alarm Command Ack/Nak 3 = UnLock Single Alarm 3 = Unlock Single Alarm
Response only: 4 = Acknowledge All Alarms 4 = Acknowledge All Alarms
5 = Reserved 5 = Unacknowledge Single Alarm
6 = Reset All Alarms 6 = Reset All Alarms
Alarm Command 7 = Acknowledge Single Alarm 7 = Acknowledge Single Alarm
8 = Reset Single Alarm 8 = Reset Single Alarm
9 = Reserved 9 = Silence All Alarms
10 = Alarm Horn Silence 10 = Alarm Horn Silence
11 = Reserved 11 = Silence Single Alarm
12 = Reserved 12 = Unsilence Single Alarm
13 = Reserved 13 = Override Single Alarm
14 = Reserved 14 = Remove Override Single Alarm
255 = Request Alarm Dump 255 = Request Alarm Dump
Alarm Options Bit 0 = 1 Include Alarm Description Bit 0 = 1 Include Alarm Description
Bits 1-15 Reserved Bit 1 = 1 Include Analog Alarms
- OR - Bits 2-15 Reserved
When 0x0700 Alarm Command Request
is a command function that applies only
to a single alarm, this is the Alarm Drop
Number.
Alarm Attribute Options Did not exist. Bit 0 = Reserved and must be zero
Bit 1 = 1 Include Alarm Silence State
Bit 2 = 1 Include Alarm Override State
Bit 3 = 1 Include Alarm Priority
Bit 4 = 1 Include Alarm Severity
Bit 5 = 1 Include Alarm Quality
Bit 6 = 1 Include Alarm Class
Bit 7 = 1 Include Alarm Previous State
Bit 8 = 1 Include Alarm Value on
Transition
Bit 9 = 1 Include Engineering Units for
Alarm Value on Transition
Bit 10 = 1 Include Alarm Description in
the second language
Bit 11= 1 Include Alarm Plant Area
Bit 12 = 1 Include Alarm Actor ID
Bit 13 = 1 Include Alarm Sound
Reference
Bit 14 = 1 Include Alias for Pointname
associated with this alarm
Bit 15 = 1 Include Out of Service State
Bit 16 = 1 Include Out of Service Time
Bit 17 = 1 Include Alarm Shelved State
Bit 18 = 1 Include Alarm Shelved Time
Bit 19 =1 Include Alarm Shelving
Duration
Bit 20 = 1 Include Alarm ACK Time
Bit 21 = 1 Include Operator Comment
Bit 22 = 1 Include Operator Comment in
2nd language
Bit 23 to (8x -1) are reserved and must
be zero.
0x0400 Digital Input Record Establish Request and 0x0500 Software Event Record Establish Request
0x0402 Digital Input Data Message and 0x0502 Software Event Data Message
8.1 Networking
Note The GSM3 server defaults to using TCP port 768 on all configured network
interfaces on the gateway. A different TCP port number can be specified by using
ToolboxST. Open the WorkstationST component configuration and go to the GSM tab.
Each GSM message must be preceded by a two-byte integer indicating the size of the
message. The recipient can use this size as an indication of how many bytes to read from
the network. The default GSM message size that the gateway sends or receives is 4096
bytes. This makes it backwards compatible with older versions of GSM. However, the
Connection Options Request can be used to change this size.
Alarm dump The alarm dump message requests a list of all the active alarms.
ASCII American Standard Code for Information Interchange is an 8-bit code used for
data.
Bind The term is most often used with reference to associating a symbol (such as the
name of a variable) with some descriptive information (such as a memory address, a data
type, or an actual value).
CMP Command Message Protocol is used with EGD based controllers to issue process
commands. It sends commands by writing individual signals or blocks of signals into the
writeable signals in a controller’s EGD page.
DCS Distributed Control System is a digital process control system used for plant
process control applications, including power plant control.
EGD Ethernet Global Data is a protocol used to transmit a block of data from one
device to another. Each block of data is called an EGD exchange. The blocks of data can
be broadcast so that multiple devices can receive the data.
EGD Page An EGD Page can contain one or more EGD Exchanges.
gateway The gateway is the software in the WorkstationST computer that controls
communication between the DCS and controllers.
heartbeat A message from the DCS to the gateway indicating that the DCS is
functioning.
little endian The byte order used by many microprocessors. For multi-byte data, the
least significant byte is transmitted first while the most significant byte is transmitted last.