Sterlco M2B+ Controller User Manual

Page 49

Advertising
background image

49 of 68

MODBUS Protocol
Every message sent from a MODBUS master to a slave on to the network contains a function
code that represents the action the slave device should take in response to the message. So
that a MODBUS master can read and write the controller parameters, setpoints, and status
values in an Athena Temperature controller, the Athena implementation of the MODBUS
protocol supports the following function codes:

function 03 ($03) This function is used to read to one or more contiguous “holding registers”
(database locations that are next to one another in the register map).

function 06 ($06) This function is used to write to a single holding register. A message
containing function 06 can be broadcast to all controllers on the network simultaneously by
sending the message to the controller ID of 0 (zero), instead of to the controller ID of a
specific device.

function 16 ($010) This function is used to write to a single register or to multiple contiguous
holding registers, that is, to two or more registers that are next to one another in the register
map. A message containing function 16 ($10) can be broadcast to all controllers on the
network simultaneously by sending the message to the controller ID of 0 (zero), instead of to
the controller ID of a specific device.

So that you can test communication over the MODBUS network, Athena also supports the
diagnostic function 08 ($08), subfunction 00 ($00) to perform a loopback test. When a
loopback test is performed, the MODBUS master sends a message to a controller and the
controller sends the same message back to the master. (No changes are made to the controller
database as a result of processing the command.) If the master does not receive a reply, it is
time to troubleshoot the network or the controller’s communication setup.

The controllers will not take any action, nor will they reply in response to any messages they
cannot interpret. This includes any messages that contain a function code other than 03, 06,
16 ($10), or 08 subfunction 00.

Modbus Register Addressing Regions. The regions (ranges) of register relative addresses
used for the various types of representations of controller values are shown in the table
below. Each register type used to transmit controller values was described in more detail
earlier in this section (see the cross-references in the table).

Figure 3: Modbus Address Regions

Register Address
Range

Region

Type of Value Used
by the Controller

How Data is
Transmitted in the
Register

0000 to 0999

Integer

Integer

16-bit Integer

1000 to 1999

10X mirror of 0000
to 0999 base region

Can include
fractional values

16-bit Integer

4000 to 4999

32-bit IEEE mirror
of 0000 to 0999 base
region

Can include
fractional values

32-bit IEEE floating
point

All others

Reserved

Reserved

Reserved

The Register Address field in the Message protocol should be offset (-1),
from the point number shown in Table 13

Advertising