The GE-EGD (Ethernet Global Data) driver allows the FieldServer to transfer data to and from
devices over Ethernet using GE-EGD (Ethernet Global Data) protocol. There are two Ethernet
ports standard on the FieldServer. The FieldServer can emulate either a Server or Client.
GE Fanuc Automation and GE Drive Systems developed an Ethernet Global Data, or EGD,
exchange for PLC and computer data in 1998. EGD uses UDP or datagram messages for fast
transfer of up to 1400 bytes of data from a producer to one or more consumers. UDP
messages have much less overhead than the streaming TCP connection used for programming
or CommReq’s over SRTP Ethernet. Like Genius® broadcast input or directed control
messages, UDP messages are not acknowledged. They can be sent at short intervals.
Chances of one or more messages being dropped are small on a local area network.
As a client the FieldServer acts as an EGD consumer. As a master the FieldServer acts as an
EGD producer.
The IC697CMM742 Ethernet module supports both GE SRTP and GE EGD.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
The FieldServer is connected to the Site Ethernet as shown below.
Configure and connect the "GE TCP/IP Ethernet Interface Type 2" according to manufacturer’s
instructions.
N7
Site Ethernet
FIELDSERVER
CONNECTION DIAGRAM
BASE NAME:
FILE NAME:
GE-EGD
(408)-262-2299
DATE: 2/4/04
BY: MF
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
Historically, one uses the client-server model to describe the operation of most protocols.
Recently producer-consumer model protocols have started to become more numerous. The
GE-EGD (Ethernet Global Data) is a producer-consumer model protocol. In equating the two
models it is important to regard the consumer as a passive (FieldServer) client. Other clients
typically are active and poll for new data. The consumer is a passive client in that waits to
digest new data generated by a producer.
For a detailed discussion on FieldServer configuration, please refer to the instruction manual for
the FieldServer. The information that follows describes how to expand upon the factory defaults
provided in the configuration files included with the FieldServer (See “.csv” files provided with
the FieldServer).
This section documents and describes the parameters necessary for configuring the FieldServer
to communicate with a GE-EGD Producer.
The configuration file tells the FieldServer about its interfaces, and the routing of data required.
In order to enable the FieldServer for GE-EGD communications, the driver independent
FieldServer buffers need to be declared in the “Data Arrays” section, the destination device
addresses need to be declared in the “Client Side Nodes” section, and the data required from
the servers needs to be mapped in the “Client Side Map Descriptors” section. Details on how to
do this can be found below.
Note that in the tables, * indicates an optional parameter, with the bold legal value being the
default.
4.1. Data Arrays
Section Title
Data_Arrays
Column Title Function Legal Values
Data_Array_Name Provide name for Data Array
Data_Format
Data_Array_Length
Provide data format. Each Data Array
can only take on one format.
Number of Data Objects. Must be
larger than the data storage area
required for the data being placed in
this array.
Up to 15 alphanumeric
characters
FLOAT, BIT, UInt16,
SInt16, Packed_Bit, Byte,
Packed_Byte,
Swapped_Byte
1-10,000
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
The following keywords apply only to the GE-EGD protocol.
This identifies the GE device producing the
EGD data. Although in decimal dot format, it
is not an IP address and does not necessarily
correspond to the IP address of the GEEthernet port producing the message. It
corresponds to the producer ID configured for
ge_producerId
the CPU producing the data.
The default value is typically the same as the
IP address of the producer but the value can
be changed and it is possible for one device
Nnn.nnn.nnn.nnn
Where nnn are in the
range 0-255.
to have multiple Ethernet interfaces and
hence multiple IP addresses.
Any change to the producerID must be
matched by a similar change in the
consumer's configuration.
Used with the the producerID, to uniquely
identify a packet of EGD data. Thus, this
ge_exchangeId
driver uses these two parameters to match a
Integer values >= 1
produced data packet with one or more
passive Map Descriptors.
ge_data_type
Each produced data packet contains raw
packed data. Nothing in the message
identifies the structure or type of the incoming
data. The Driver therefore cannot
differentiate between byte, integer, real ...
numbers and requires the specification of this
keyword to unpack the data buffer.
Byte, Bit, Word,
Dword, Int , Long
Float (4 byte IEEE real
number) or Double (8
byte IEEE real
number).
If the producer has been configured to
produce data of multiple types in one data
packet then you will need multiple Map
ge_offset
Descriptors to decode them. The ge_offset is
used to point to the first byte in the data
packet to be processed by the Map
Zero, Any positive
integer
Descriptor. Typically the Map Descriptor for
the 2nd, 3rd ... Map Descriptors associated
with one data packet will be non-zero.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
This is the dot format ID of the
producer. It is not the IP address of the
producer's Ethernet node.
This value identifies the producing
processor.
This and the exchangeID uniquely
identif
a produced data packet.
This is a numeric value
assigned by the PLC
programmer to identify a
specific data exchange to be
received by the consuming
device (the FieldServer in this
case). It must match the ID
specified in the producer.
The data in the data packet will be treated as
16 bit (two byte) signed integers. As the
length=20 a total of 40 bytes will be processed.
The type of the Data Array should be capable
of storing signed integers in this example.
If you do not use this keyword then the driver
will process the data as bytes.
The data type is more completely explained in
section Appendix A.1
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
In this example we assume that one produced data packet (produced by 0.0.0.1 and identified as exchange 1) contains different
types of data elements making up the single exchange. This is configured when configuring EGD for the producer. The
arrangement of data must correspond exactly with the configuration of the Map Descriptors used to consume the data. The following
two Map Descriptors imply that the exchange contains at least 180 bytes of data and that the first 40 bytes contain 20 word values
and that bytes 100 to 179 contain bit values. We cannot deduce what bytes 40-99 contain. Perhaps we have no interest in this
produced data.
exchangeID for
both these Map
Descriptors are
identical.
Therefore they will
both be applied to
the same
incoming data
packet.
The data types are different.
The one Map Descriptor will
be used to interpret
incoming data as integers
and the other will interpret
data as bits. These data
types must correspond to
the way the producer is
configured.
The 2nd Map
Descriptor will
process data
bytes starting at
byte 100. As the
first byte is
identified as byte
zero, byte 100 is
actually the 101st
byte in the data
part of the
message.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
5.3.1. FieldServer Specific Map Descriptor Parameters
Column Title Function Legal Values
Up to 32 alphanumeric characters.
The Map Descriptor name can be any
name that has meaning to you and in
fact duplicate name will not produce an
Map_Descriptor_Name
Data_Array_Name
Data_Array_Location
Function
Name of this Map
Descriptor
Name of Data Array
where data is to be
stored in the
FieldServer
Starting location in
Data Array
Function of Client
Map Descriptor
error.
This driver recognizes a special Map
Descriptor name; "EGD-ii". It stands for
EGD Internal Indications. Its use is
more fully explained in section 6 of this
manual.
One of the Data Array names from
“Data Array” section above
0 to maximum specified in “Data Array”
section above
WRBC
5.3.2. Driver Specific Map Descriptor Parameters
Column Title Function Legal Values
One of the node
Node_Name Name of Node to fetch data from
Length Length of Map Descriptor 1 - 1000
Only one Map Descriptor may be
The following
keywords apply
only to the GEEGD protocol.
configured for each exchangeID. Each
produced exchange is thus limited to one
data type and to data from one Data
Array. This is different from the
configuration of consumer Map
Descriptors.
names specified in
“Producer Node
Descriptor” above
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
This identifies the GE device producing
the EGD data. Although in decimal dot
format, it is not an IP address and does
not necessarily correspond to the IP
address of the GE-Ethernet port
producing the message. It corresponds
to the producer ID configured for the
ge_producerId
CPU producing the data.
The default value is typically the same as
the IP address of the producer but the
value can be changed and it is possible
Nnn.nnn.nnn.nnn
Where nnn are in the
range 0-255.
for one device to have multiple Ethernet
interfaces and hence multiple IP
addresses.
Any change to the producerID must be
matched by a similar change in the
consumer's configuration.
This and the producerID uniquely identify
a packet of EGD data. Thus, the
ge_exchangeId
consumer uses these two parameters to
update. Any change to the exchangeID
Integer values >= 1
must be matched by a similar change in
the consumer's configuration.
Each produced data packet contains raw
packed data.
Byte, Bit, Word,
Dword, Int , Long
Float (4 byte IEEE real
number) or Double (8
byte IEEE real
number).
See section Appendix
A.1 for a full list.
ge_data_type
This keyword is used to tell the driver
how to pack the data into the message.
Thus you can read from a BIT array in
the FieldServer but send the data as
words for storage in %R (register
memory) in the GE-PLC.
Any change to the data type must be
matched by a similar change in the
consumer's configuration.
ge_offset
Not required for producer Map
Descriptors.
5.3.3. Timing Parameters
Column Title Function
Scan_Interval
Rate at which data is produced. This is the equivalent of
the producer interval.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
Only a wrbc can be
used to produce data.
The other write
functions are not
periodic.
Consider this as
the producer
interval.
must be
configured to have
the same
producerID and
exchangeID.
These two fields
are the only way it
has of
differentiating one
set of produced
data from another.
Defines how data is
packed into the data part
of the message.
In this example data will
be packed words
(unsigned 16 bit integers)
suitable for storage in
register memory in the GE
PLC's.
Section Appendix A.1
contains a full list.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
Appendix A.1. Enable the FieldServer to read data from a 90-xx PLC.
Appendix A.1.1. Use Versapro to configure/look at the EGD
configuration.
Produced data must be produced for a specific consumer. Thus you must create a new
exchange in the PLC that will produce data for the FieldServer. (Specific consumer
means specific IP address).
Since the EGD data packet is not structured, the FieldServer cannot decode the data
ranges without the Map Descriptors. It is therefore important that the data ranges in the
produced exchange correspond to the Map Descriptors in the CSV file.
This is the IP address of the producing port. You can
obtain this by using the Versapro HWC program and
double clicking on the Module with the adapter shown in
the EGD configuration. (Fred, in this example) Now look
for the Ethernet port address.
Read the section on data types to
see how many items are being
transmitted. Note that the %Q, %I
references are actually byte
references and not bit references as
they are always produced in
multiples of 8 and are always byte
aligned.
Must correspond to
the ‘Local Producer’ in
the EGD configuration.
Is not necessarily the
IP address of the
producer port.
These offsets must
correspond to the offsets
in the EGD configuration.
These data types must
correspond to the
references in the EGD
range configuration.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
Each produced data packet contains up to 1400 bytes of unstructured data. The
specification of the ge_data_type in the Map Descriptor tells the driver how to interpret these
raw data bytes.
The minimum data unit processed is a byte. This is the case even when the data type is
specified as bit. This is because EGD producers cannot produce a single bit. When bits are
produced the producer determines the closes byte boundary and sends a minimum of 8 bits.
The following data types are recognized by the driver
Byte
Bit (translated as 8bits aligned with a byte boundary)
Word (unsigned 16bit integer)
Dword (unsigned 32bit integer)
Int (signed 16bit integer)
Long (signed 32bit integer)
Float (translated as an IEEE 4 byte real number)
Double (translated as an IEEE 8 byte real number)
The following GE Specific data types are also recognized.
Type Description P-ProducerC-Consumer
%R Register memory in word mode P/C
%AI Analog input memory in word mode P/C
%AQ Analog output memory in word mode P/C
%I Discrete input memory in byte mode P/C
%Q Discrete output memory in byte mode P/C
%T Discrete temporary memory in byte mode P/C
%M Discrete momentary memory in byte mode P/C
%SA Discrete system memory group A in byte mode P/C
%SB Discrete system memory group B in byte mode P/C
%SC Discrete system me mory group C in byte mode P/C
%S Discrete system memory in byte mode P
%G Discrete global data table in byte mode P/C
If you use the RUI editor and view the Map Descriptors online it may appear that the driver
changed the data type but in fact all that it has done is changed the display to a synonym.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
Multiple protocol drivers may exist on a FieldServer. Each driver may produce its own error
messages and the FieldServer itself may produce error messages.
Message Action
EGD:#1 Error. Can’t init UDP.
EGD:#2 Error. Can’t get a
socket.
EGD:#3 Error. Protocol does
not support active polling.
Change function for
mapDesc=<%s>
EGD:#4 Error. Producer ID
required for mapDesc=<%s>
EGD:#5 Error. Exchange ID
required for mapDesc=<%s>
EGD:#6 FYI. No data type
specified. Defaulted to <Byte>
EGD:#7 FYI. Data type not
recognized. Defaulted to
<Byte> for mapDesc=<%s>
EGD:#8 Error. Don't know GE
Data Type(%d) for
mapDesc=<%s>
EGD:#9 Error. Incoming data
from ip=<%s>
producerID=<%s>
exchangeID=(%d) is being
abandoned.
EGD:#10 Error. Don't know GE
Data Type (%d) for
mapDesc=<%s>
EGD:#11 FYI. You could have
used a mapDesc called <egdii> to expose diagnostic info.
EGD:#12 Invalid IP. Too many
characters.
EGD:#13 Invalid IP <%s> Insufficient points in the IP address. 1
EGD:#14 Error. The mapDesc
called <egd-stats> is too short
EGD:#15 FYI. You could have
used a mapDesc called <egdstats> to expose diagnostic
info.
This is a fatal error. The FieldServer needs to be re-initialized
or you need technical support from FieldServer Technologies.
The rdbc/rdb/rdbx functions are not supported by this protocol.
The device you wish to poll must be configured to 'produce' its
data and this driver will 'consume' the data using passive Map
Descriptors.
Each Map Descriptor requires a producerID.
Each Map Descriptor requires an exchangeID.
This is a warning only. You can eliminate the warning by
editing the CSV file.
An illegal data type has been used.
1
1
1
1
1
An EGD producer has sent a data packet to the FieldServer
but the driver cannot find a passive Map Descriptor to use to
process and store the incoming data. It’s possible that the
producer has been incorrectly configured and that the packet
was not intended for the FieldServer. Alternatively, make a
new Map Descriptor which will handle this data.
1
An illegal data type has been used.
This message requires no action, but refer to Appendix B.1 of
this manual to see whether you will benefit from exposing
some driver internal diagnostic data.
1
IP address is more than 15 characters in length.
Increase the data length parameter for this Map Descriptor
Make sure the Data Array is long enough too.
Refer to Appendix B.10 \r \h |Appendix B.1} for more
information.
1
Edit the CSV file, download to the FieldServer and restart the FieldServer for the changes to take effect.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
This driver can expose data from the most recently consumed message and some
additional diagnostic information.
A special Map Descriptor is required. The driver recognizes the Map Descriptor by its name
which must be "EGD-ii" which stands for EGD Internal Indications.
The following example shows how this special Map Descriptor can be configured.
When the driver sees this Map Descriptor it uses the Data Array EGD_DIAG to store driver
specific data. Only one of these Map Descriptors may be specified per FieldServer.
EGD producers produce data messages for slave devices to consume. The type and
frequency of the messages depends on the producer configuration.
The driver counts all incoming messages of interest as the PLC_READ_MSG_RECD
statistic. Other legal messages which do not contain the data this driver is interested in are
discarded and are counted as the MSG_IGNORED statistic.
The PLC_READ_MSG_RECD statistic is incremented once by each Map Descriptor which
extracts data from an incoming message. Thus, one incoming message and three
associated Map Descriptors would cause the statistic to increase by three (when viewed
from the connection's point of view.)
This driver can expose some driver statistics by writing data to a Data Array. A special Map
Descriptor is required. The driver recognizes the Map Descriptor by its name which must be
"EGD-stats”.
The following example shows how this special Map Descriptor can be configured.
When the driver sees this Map Descriptor it uses the Data Array EGD_STATS (in this
example) to store driver specific statistics. Only one of these Map Descriptors may be
specified per FieldServer.
The driver stores the following data.
Array Element Contents
0 Messages Produced
1 Bytes Produces
2 Messages Received
3 Bytes Received
4 Messages Consumed
5 Messages Ignored
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com
Appendix C.1. ProducerID with FieldServer device as Producer
During testing it has been observed that a 90-30 PLC required that the ge_ProducerID
parameter was set to the same value as the IP Address of the FieldServer.
Appendix C.2. Produced Time Stamp
The GE-EGD (Ethernet Global Data) driver always set the timestamp of produced data to
the time of the Field Server Device. The nanoseconds portion of the time stamp is always
set to zero.
Appendix C.3. Status Values
The status of the EGD Exchange may be monitored in the GE PLC. The status value is well
documented in GFK-1541 Chapter 4.4. During testing, using the Field Server device as a
producer and the GE Device as a consumer the following status values were observed.
0 -> The exchange had never been consumed
1 -> Normal
4 -> Length of produced and consumed exchange not equal - Different messages with the
same exchange ID.
6. -> Timeout.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web:www.fieldserver.com