GEH-Mark VIe UCCA Serial Modbus
GEH-Mark VIe UCCA Serial Modbus
GEH-Mark VIe UCCA Serial Modbus
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 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 Proprietary and Internal (Class II) – This document contains proprietary information of GE and is intended for internal use only. It may not be used,
shown, reproduced, or disclosed outside of GE without the express written consent of GE.
Safety Symbol Legend
Warning
Attention
• Black Box LD485A-MP converter is used when a long distance (>15 m, 50 ft)
full-duplex interface is required.
• GE Multilin F485-120 converter is used when a half-duplex interface is required.
RS-232C specifies 25 signal lines: 20 lines for routine operation, 2 lines for modem
testing, and 3 unassigned lines. Nine of the signal pins are used in a nominal RS- 232C
communication system.
A DTE device is identified as a Each RS-232C signal uses a single wire. The RS-232C standard specifies the conventions
device that transmits serial used to send sequential data as a sequence of voltage changes that signify the state of each
data on pin 3 (TD) of a 9-pin signal. Depending on which signal group, a negative voltage (less than -3 V) represents a
RS-232C cable. binary one data bit, a signal mark, or a control off condition. A positive voltage (greater
than +3 V) represents either a binary zero data bit, a signal space, or a control on
condition. Because of voltage limitations, an RS- 232C cable cannot be longer than 15 m
(50 ft).
A DCE device is identified as a Using this definition, the Mark VIe UCCA Modbus Slave is a DTE device because it
device that transmits serial transmits serial data on pin 3 (TD) of the 9-pin RS-232C cable. If the Modbus Master
data on pin 2 (RD) of a 9-pin device is also a DTE device, connecting the Master and Slave devices together requires an
RS-232C cable. RS-232C null modem cable. Pin definitions for 9-pin RS-232C straight through and null
modem cables are displayed in the following figure.
Note Terms describing the various signals used in the sending or receiving of data are
expressed as from the DTE device. For example, the signal transmit data (TD) represents
the transmission of data coming from the DTE device to the DCE device.
Data signal wires send and receive serial data. Pin 2 (RD) and pin 3 (TD) transmit data
signals. A positive voltage (> +3 V) on either pin signifies a logic 0 data bit or space data
signal. A negative voltage (< -3 V) on either pin signifies a logic 1 data bit or mark signal.
Control signals coordinate and control the flow of data over the RS-232C cable. Pins 1
(DCD), 4 (DTR), 6 (DSR), 7 (RTS), and 8 (CTS) are control signals. A positive voltage
(> +3 V) indicates a control on signal; a negative voltage (< -3 V) signifies a control off
signal. When a device is configured for hardware handshaking, these signals control the
communications.
Timing signals are not used in an asynchronous 9-wire cable. These signals, commonly
called clock signals, are used in synchronous communication systems to synchronize the
data rate between transmitting and receiving devices. The logic signal definitions used for
timing are identical to those used for control signals.
Ground signals (signal and frame ground) on both ends of an RS-232C cable must be
connected. Pin 7 (GND) of a 9-pin connector is the signal ground. Frame ground is
sometimes used in 25-pin RS-232C cables as a protective ground.
The transmission baud rate is the bit transmission speed measured in bits per second.
Parity adds an extra bit that detects corrupted serial data characters. Stop bits are normally
set to one, but can be set to two for compatibility with older systems.
The Modbus Slave device supports only full-duplex data transmission. Its RS-232C serial
port configuration is specified on the Component Editor, Modbus Slave tab, Property
Editor.
Port is the physical RS-232C communications port. The Modbus Slave device uses
com2.
Baud is the serial data transmission rate of the Modbus device measured in bits per
second. The Modbus Slave device supports standard baud rates from 2400 to 57600.
ICT is the Inter-character timeout, with a value between 35 and 1000. ICT specifies the
timeout period, expressed as character time times ten. Therefore, an ICT of 35 represents
3.5 character times. On a system configured for 9600 baud, 1 start bit, 8 data bits, no
parity, and 1 stop bit, 3.5 character times is equivalent to 3.5 * (10 bits) ÷ (9600 bits/sec)
= 3.646 milliseconds. The Modbus specification states that serial ICT is 3.5 character
times, but the Mark VIe Modbus Slave configuration allows for longer timeouts when
relaxed standards are used by communicating systems.
Response Delay is an additional delay time, in milliseconds, before the Modbus Slave
responds to a Master request. This is normally zero, but can be used in systems that
cannot handle a rapid reply to the Master after its request.
• 1 start bit
• 8 data bits (least significant bit is sent first)
• 1 bit for even or odd parity (no bit for no parity)
• 1 stop bit if parity is used (2 stop bits for no parity)
Serial Data Bit Sequencing, with Parity Checking
Start Bit Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Parity Bit Stop Bit
Note Bit 1 is the least significant bit, and Bit 8 is the most significant bit.
Parity provides a mechanism to check individual serial 8-bit data bytes for errors. The
Modbus Slave device supports none, even, and odd parity. The default parity is none.
Data bits is the number of data bits in each serial character. The Modbus Slave device
only supports 8-bit data.
Station ID specifies the Slave station ID on systems configured for serial operation as a
number between 1 and 255.
A multi-point Modbus installation links one or more UCCA slaves to the single Modbus
Master, as displayed in the following figure. Using Black Box LD485A-MP line drivers,
the Master and individual slaves use their own line driver to communicate over a single
RS-485 based network. As many as 64 devices can be linked using a twisted-pair 4-wire
cable.
Multi-point Modbus
The Master and Slave devices are set up as DTE devices. Both devices are connected to
the Black Box LD485A-MP with a straight through 9-wire cable. The two Black Box
LD485A-MPs are connected using a 4-wire twisted-pair cable as follows:
Note A Belden® low capacitance, 2-twisted-pair, 24-gauge cable (catalog number 9842)
is suggested for connecting the LD485A-MPs.
W9 5 ms On CTS delay
Note Jumper W9 is the only jumper different between the Master and Slave
LD485A-MPs.
2 2 RD (receive data)
3 3 TD (transmit data)
9 22 RI (ring indicator)
• Power
• RS-232C RX
• RS-232C TX
• RS-485 RX
• RS-485 TX
Caution
• RS-232C 9-pin receptacle that accepts a standard DB-9 connector (9-pin to 9- pin
and 9-pin to 25-pin interface cables are provided)
• RS-485 terminals that accept a standard shielded twisted-pair and provide
connections for positive, negative, and shield. (The terminating network is internal,
and no external terminating network is required.)
• Power jack to connect the supplied 120 V ac to 9 V ac adapter (if used)
• Power terminals that accept 9 V ac or 9 V dc power instead of using the supplied
adapter
Note Shield should be grounded at one place only. A terminating network should be
attached to the last device in the link. The converter has a built-in terminator at the
beginning of the link.
The GE Multilin F485-120 converter is configured through two internal DIP-switch banks
that are accessible by removing the box cover, as displayed in the following figure.
Switches A1 – A8 set the baud rate for RS-485 communication and determine whether
the converter is DTE (RS-232C direct) or DCE (RS-232C modem). Switches B1 – B6
select the interface type. The designation for each switch is marked on the printed circuit
board.
DIP-switch Access
Caution
DIP-switch A Baud Rate Position Settings
Baud Rate A1 A2 A3 A4 A5 A6 A7
1200 On Off Off Off Off Off Off
2400 Off On Off Off Off Off Off
4800 Off Off On Off Off Off Off
9600 Off Off Off On Off Off Off
19200 (default) Off Off Off Off On Off Off
Configuration B1 B2 B3 B4 B5 B6
RS-232C to RS-485 Off On Off On Off Off
RS-232C to fiber optic* Off Off Off Off On On
2. From the Property Editor, modify any of the following items as needed:
Command Limit limits the number of commands processed per second. The command
limit is based on commands that have changed, not commands that are identical to
previously received commands. The user can specify between 0 and 25 commands per
second as the maximum command rate (default: 10).
Data Swapped changes the transmission order of each 16-bit word when set to True.
For example:
Mode is binary.
ICT specifies Inter-Character Timeout, the timeout period expressed as character time
times ten. Therefore, 35 represents 3.5 character times, or 0.0036 seconds at 9600 baud, 1
start bit, no parity, 1 stop bit (range 35 − 1000).
Parity specifies check character (choices: None, Even, Odd, Mark, Space).
Station specifies the Slave address associated with the serial port (range: 1− 255).
Connected Variable is the variable that is read or written from the UCCA or the
referenced I/O device. A variable must be on an EGD page before it can be added to a
Modbus Slave page. A Connected Variable must be specified before other columns
become active.
Refer to section, Data Format. Modbus Data Type determines the data type of the variable and the registers used to
transmit the variable data over a Modbus connection. The following data types may be
selected:
• Boolean (BOOL) is one bit of a 16-bit word (this is the only option if the Connected
Variable is a BOOL).
• Integer (INT) is a signed 16-bit word and takes one register.
• Unsigned Integer (UINT) is an unsigned 16-bit word and takes one register.
• Double Integer (DINT) is a signed 32-bit word and takes two registers.
• Unsigned Double Integer (UDINT) is an unsigned 32-bit word and takes two
registers.
• Real (REAL) is a signed 32-bit float and takes two registers.
• Long Real (LREAL) is a signed 64-bit float and takes four registers.
Address specifies the address of the register. When a variable is created, Address is
automatically set to a value adjacent to the highest variable address previously on the
page, but the automatic value may be modified. Any data types that are 32 bits or more
(such as DINT, UDINT, REAL, and LREAL) should be placed on odd register addresses.
The valid range for Address is 1 to 65534. When specifying a variable address for a
BOOL variable, the bit 0-15 within the 16-bit word is represented by a decimal. For
example, 1.00 selects bit 0 of register address 1, while 10423.7 selects bit 7 of register
address 10423.
Raw Min, Raw Max, Eng Min and Eng Max are columns that convert Modbus Slave
variable raw data into engineering units. The Raw Min and Raw Max columns control the
minimum and maximum engineering units for the raw data. The Eng Min and Eng Max
columns control the minimum and maximum engineering units to which the raw data will
be scaled. (The BOOL data type cannot be scaled.)
Name is a read-only identifier that is automatically generated from the register page
name, the variable address and, if necessary, an added unique number.
Float values are rounded prior to being stored in short or long registers. Short and long
registers are clamped to their minimum and maximum limit if the conversion exceeds
their specified range.
Available Data Type Conversions
Modbus Data Type Coil Register Bit 1 Register 2 Registers 4 Registers
BOOL BOOL INT UINT DINT UDINT REAL REAL
UCCA Signal BOOL Yes Yes N/A N/A N/A N/A N/A N/A
Data INT N/A N/A Yes Yes Yes Yes Yes Yes
UINT N/A N/A Yes Yes Yes Yes Yes Yes
DINT N/A N/A Yes Yes Yes Yes Yes Yes
UDINT N/A N/A Yes Yes Yes Yes Yes Yes
REAL N/A N/A Yes Yes Yes Yes Yes Yes
LREAL N/A N/A Yes Yes Yes Yes Yes Yes
The formula to convert the Modbus variable to a Slave device signal is:
Slave device signal = Modbus variable x Gain + Offset
Slave device signal = Modbus variable x 0.05 + (-40)
Slave device signal = Modbus variable x 0.05 - 40
INT variable is a signed 16-bit number. In this mode, the most significant bit is treated as
a sign bit where a one is used for negative values. Slave device signals are converted into
INT Modbus variables by applying the scaling information, rounding the values to the
nearest integer value, and then clamping the result in the range of −32768 to +32767.
UINT variable is an unsigned 16-bit number. Slave device signals are converted into
UINT Modbus variables by applying the scaling information, rounding the values to the
To ensure data coherency, nearest integer value, and then clamping the result in the range of 0 to +65535.
LONG Modbus variables
should always start on an odd DINT variable is a signed 32-bit number. The value is transmitted on Modbus as two
register number, and the consecutive 16-bit integers with the least significant word in Register N and the most
Master should send both significant word in Register N+1. In this mode, the most significant bit is treated as a sign
registers to the Slave device in bit where a one is used for negative values. Slave device signals are converted into DINT
the same Modbus transaction. Modbus variables by applying the scaling information, rounding the values to the nearest
integer value, and then clamping the result in the range of –2147483648 to +2147482647.
UDINT variable is an unsigned 32-bit number. The value is transmitted on Modbus as
two consecutive 16-bit integers with the least significant word in Register N and the most
significant word in Register N+1. Slave device signals are converted into DINT Modbus
variables by applying the scaling information, rounding the values to the nearest integer
To ensure data coherency, value, and then clamping the result in the range of 0 to +4294967295.
FLOAT Modbus variables
should always start on an odd REAL variable is a signed 32-bit IEEE® 754 standard number. The value is transmitted
register number, and the on Modbus as two consecutive 16-bit integers with the least significant word in register N
Master should send both and the most significant word in register N+1. In this mode, the most significant bit is
registers to the Slave device in treated as a sign bit and the next eight bits are a biased exponent followed by a 23-bit
the same Modbus transaction. significant. Slave device signals are converted into FLOAT Modbus variables by applying
the scaling information.
Station ID (follower address) is a number from 1 to 255 that specifies the unit with
which to communicate.
Function code specifies the purpose and format of the remaining message portion.
CRC-16 are two bytes that complete every serial Modbus message. These bytes check
errors, and are calculated to ensure that no transmission error occurred while the message
was in transit. The method for calculating the CRC-16 is a public protocol. Refer to the
Gould Modicon Modbus Protocol Reference Guide for information on calculating a
correct Cycle Redundancy Check (CRC).
Length is the byte count of the remaining part of the message, and is used by the
Modbus Master to receive the rest of the message, which is exactly what is sent and
received over the serial connections.
Station ID (follower address) is a number from 1 to 255 that specifies the unit with
which to communicate.
Function code specifies the purpose and format of the remaining message portion.
Any time a message receipt is being sent over a serial connection and an interval of time
corresponding to 3.5 character times (based on the baud rate) occurs without receipt of a
character, the message receipt in progress is aborted and ignored. Other message failures
are responded to with an exception response if no reception error has occurred, and if the
message was not a broadcast (follower address was zero). The following table displays
the exception code responses that are supported when a normal response is impossible.
Exception Code Responses
02 Illegal data address address referenced in the data field is not in a permissible range
06 Device busy Too many writes to the UCCA – commands per second limit
exceeded
Function code is always equal to the Master’s function code with the MSB set.
Therefore, an exception response received by a Master that sent a message with function
code 02 hex, would have a function code of 82 hex (or 130 decimal) in the exception
reply.
Exception codes are as described in the table, Exception Code Responses. Only codes
01 through 03 and 06 are supported.
Code Description
01 Read output coils
Starting output coil number is two-bytes long and can be any value less than the
highest output coil number available in the output coil table. The starting output coil
number is equal to a number one less than the first output coil returned in the normal
response. For example, to get the first output coil, enter 0 for the starting output coil
number. The high order byte of the starting output coil number field is sent as the first
byte. The low order byte is sent next.
Number of output coils to return is two-bytes long and must be from 1 to 2000,
inclusive. It specifies the number of output coils returned in the normal response. The
sum of the starting output coil value and the number of output coils must be less than or
equal to the highest output coil number available in the output coil table. The high order
byte of the number of output coils field is sent as the first byte. The low order byte is sent
next.
The normal message reply from the Slave device is formatted as follows:
Byte count is a binary number from 1 to 250. The specified number of data bytes
follow.
Starting discrete input number is two-bytes long and can be any value less than the
highest discrete input available in the discrete input table. The starting discrete input
number is equal to one less than the number of the first discrete input returned in the
normal response. For example, to get the first discrete input, enter zero for the starting
discrete input number. The high order byte of the starting discrete input field is sent as the
first byte. The low order byte is sent next.
Number of discrete inputs to return is two-bytes long and must be from 1 to 2000,
inclusive. It specifies the number of discrete inputs returned in the normal response. The
sum of the starting discrete input value and the number of discrete inputs must be less
than or equal to the highest discrete input available in the discrete input table. The high
order byte of the number of discrete inputs field is sent as the first byte. The low order
byte is sent next.
The normal message reply from the Slave device is formatted as follows:
Byte count is a binary number from 1 to 250. The specified number of data bytes
follow.
Data bytes (data field) are the packed discrete input status data. Each byte contains
eight discrete input values. The LSB of the first byte contains the value of the discrete
input whose number is equal to the starting discrete input plus one. The value of the
inputs are ordered by number, starting with the LSB of the first byte and ending with the
MSB of the last byte. If the number of discrete inputs is not a multiple of eight, then the
last data byte contains zeros in one to seven of its highest order bits.
Function Code Start Register Start Register Number of Registers Number of Registers
(03) (MSB) (LSB) (MSB) (LSB)
Starting holding register number is two-bytes long and can be any value less than
the highest holding register number available in the holding register table. The starting
holding register number is equal to one less than the number of the first holding register
returned in the normal response. For example, to get the first holding register number
(holding register number one) enter zero for the starting holding register number. The
high order byte of the starting holding register number field is sent as the first byte. The
low order byte is sent next.
Number of holding registers value is two-bytes long and must be from 1 to 128,
inclusive. It specifies the number of holding registers returned in the normal response.
The sum of the starting holding register value and the number of holding registers must be
less than or equal to the highest holding register number available in the holding register
table. The high order byte of the number of holding registers field is sent as the first byte.
The low order byte is sent next.
The normal message reply from the Slave device is formatted as follows:
Function Code Byte Count First Register First Register Data Registers Last Register
(03) (MSB) (LSB) Requested (LSB)
Byte count is an even binary number from 2 to 254, or 0. If the byte count is 0, then the
Master assumes 256 data bytes follow. Otherwise, the specified number of data bytes
follow, not including the two CRC-16 bytes (serial mode).
Holding registers are returned in the data field in numerical order, with the lowest
number holding register in the first two bytes and the highest number holding register in
the last two bytes. The number of the first holding register is equal to the starting holding
register number plus one. The high order byte is sent before the low order byte of each
holding register.
Function Code Start Register Start Register Number of Number of Registers (LSB)
(04) (MSB) (LSB) Registers (MSB)
Number of input registers value is two-bytes long and must be from 1 to 128,
inclusive. It specifies the number of input registers returned in the normal response. The
sum of the starting input register value and the number of input registers must be less than
or equal to the highest input register number available in the input register table. The high
order byte of the number of input registers field is sent as the first byte. The low order
byte is sent next.
The normal message reply from the Slave device is formatted as follows:
Function Code Byte First Register First Register Data Registers Last Register
(04) Count (MSB) (LSB) Requested (LSB)
Byte count is an even binary number from 2 to 254, or 0. If the byte count is 0, then the
Master assumes 256 data bytes follow. Otherwise, the specified number of data bytes
follow, not including the two CRC-16 bytes (serial mode).
Input registers are returned in the data field in numerical order, with the lowest number
input register in the first two bytes and the highest number input register in the last two
bytes of the data field. The number of the first input register in the data field is equal to
the starting input register number plus one. The high order byte is sent before the low
order byte.
Function code 05 is used to force (or write) a single output coil in the output coil table.
The message sent from the Master is formatted as follows:
Output coil number is two-bytes long and can be any value less than the highest output
coil number available in the output coil table. The output coil number is equal to one less
than the number of the output coil forced. For example, to change the first output coil
enter 0 for the output coil number. The high order byte of the starting output coil number
field is sent as the first byte. The low order byte is sent next.
State byte is sent by the Master with only two possible values. A zero (00h) is sent to
turn the specified output coil off (set false). A value of 255 (FFh) is sent to turn the
specified output coil on (set true). The state byte is always followed by a single byte with
value 0.
The format of the normal message reply from the Slave device is identical to the received
message.
Function Code Holding Register Holding Register Register Data (MSB) Register Data (LSB)
(06) (MSB) (LSB)
Holding register number is two-bytes long and can be any value less than the highest
holding register number available in the holding register table. The holding register
number is equal to one less than the number of the changed holding register. For example,
to change the first holding register enter 0 for the holding register number. The high order
byte of the starting holding register number field is sent as the first byte. The low order
byte is sent next.
Holding register data field is two bytes long and contains the value to which the
holding register specified by the holding register number field is preset. The first byte in
the data field contains the high order byte of the preset value. The second byte in the data
field contains the low order byte.
The format of the normal message reply from the Slave device is identical to the received
message.
The normal message reply from the Slave device is formatted as follows:
Data bytes (data field) are the packed output coil status data. The data byte contains
eight output coil values. The LSB of the byte contains the value of output coil number
one. The MSB contains the value of output coil number eight.
Function Code Starting Coil Starting Coil Coil Count Coil Count Data Data
(15) (MSB) (LSB) (MSB) (LSB) Bytes
Starting coil number is two-bytes long and can be any value less than the highest
output coil number available in the output coil table. The output coil number is equal to
one less than the number of the forced output coil. For example, to change the first output
coil, enter zero for the output coil number. The high order byte of the starting output coil
number field is sent as the first byte. The low order byte is sent next.
Coil count is two-bytes long. It specifies the number of output coils to set. The sum of
the starting output coil value and the number of output coils must be less than or equal to
the highest output coil number in the output coil table. The high order byte of the number
of output coils field is sent as the first byte. The low order byte is sent next.
Data bytes (data field) are the packed output coil data. Each byte contains eight output
coil values. The LSB of the first byte contains the value of the output coil whose number
is equal to the starting output coil number plus one. The value of the output coils are
ordered by number, starting with the LSB of the first byte and ending with the MSB of the
last byte. If the number of the holding coils is not a multiple of eight, then the last data
byte contains unused data in its highest order bits.
The normal message reply from the Slave device is formatted as follows:
Function Code Starting Coil Starting Coil Coil Count (MSB) Coil Count (LSB)
(15) (MSB) (LSB)
Start register number is two-bytes long and can be any value less than the highest
holding register number available in the holding register table. The holding register
number is equal to one less than the number of the changed holding register. For example,
to change the first holding register enter 0 for the holding register number. The high order
byte of the starting holding register number field is sent as the first byte. The low order
byte is sent next.
Register data field is two-bytes for each holding register to set. The first byte in the
data field contains the high order byte of each preset value. The next byte contains the
low order byte.
The normal message reply from the Slave device is formatted as follows:
Function Code (16) Starting Register Starting Register Register Count (MSB) Register Count (LSB)
(MSB) (LSB)
Modbus Slave Clients report displays the currently established Modbus Master
connections.
Modbus Slave Command Summary report displays counters for Modbus write
information. Function codes 5, 6, 15, and 16 are the only codes that perform a write.
Message Format Summary displays the message formats used in Modbus messages
to and from the Modbus Slave. Error codes are also displayed.
1501 Roanoke Blvd. GE Proprietary and Internal (Class II) – This document contains proprietary information of GE and
Salem, VA 24153 USA is intended for internal use only. It may not be used, shown, reproduced, or disclosed outside of GE
without the express written consent of GE.