beautypg.com

5 function code 03- read holding (data) registers – Honeywell HC900 User Manual

Page 38

background image

30

HC900 Hybrid Controller Communications User Guide

Revision 10

12/07

4.5 Function Code 03- Read Holding (Data) Registers

Description

Function code 03 (also referred to as 4X decimal references) is used to read 32-bit floating point, 32-bit
unsigned/signed integer and 16 bit integer data in the controller as described in Section 6. Registers are
consecutive.

In pre-4.0 configurations only it is also used to Read certain analog input modules for commonality of
UMC800 controller addresses. This applies to analog input modules positioned ONLY in the first 8 Slots
of Rack #1, providing support ONLY for the first 64 channels. Use Function Code 04 to address all
analog inputs in the HC900 controller.

Table 4-8 HC900 AI Address Mapping supported by Function Code 03

Rack

Channel

Register Range

Hex

Address Range

1

1 - 64



65 - 128

1 - 127



65 - 255

0 -7F

(uses register

addressing 1800 -

187Fh)

Not Supported

If a request is made to an address that does not exist in the map in Section 6 , the controller will honor that
request and return zeros for that address. This behavior will greatly enhance the bandwidth on the link vs.
making several different requests for non-contiguous data elements. (i.e. Consider a controller that is
configured for AI #1 and AI #3 and for some reason AI #2 is an invalid request.) The contiguous method
would allow the read of AI #1 through AI #3 and the data location for AI #2 would be zeros.

Broadcast is not supported.

Query

The query message specifies the starting register and quantity of registers to be read. Registers are
addressed starting at zero: registers 1-16 are addressed as 0-15.

Example: Read PV, Remote SP, Working SP, and Output as floating point values for Loop #1 in the
controller at slave address 1.

Query message format for function code 03

Slave

Address

(00 for TCP)

Function

Code

Starting

Address

High

Starting

Address

Low

Number

Addresses

High

Number

Addresses

Low

CRC

(RTU)

CRC

(RTU)

TCP

Example

00 03 00 40 00 08

RTU

Example

01 03 00 40 00 08

CRC

CRC

Response

The register data in the response message is packed as two bytes per register. For each register, the first
byte contains the high order bits and the second contains the low order bits.

The floating point values require two consecutive registers. The byte order of the floating point number is
determined by the setting of the byte swap configuration value. In this example, and the examples that
follow, the byte swap order is FP B. Refer to page 10. The first 16 bits of the response contain the IEEE
MSB of the float value. The second 16 bits of the response contain the IEEE LSB of the float value. If the