BB2-7030 User Guide – Rev. 1.0
Page 68
20.
Modbus
Slave
Register
Mapping
20.1
Using the BB2-7030 as a Modbus TCP Slave
The Modbus registers are pre-defined and fixed unless using the Server Map to create a ‘virtual
device’. The BACnet objects found in the BB2-7030 are simply assigned Modbus addresses to
make their present value accessible to Modbus. You can assign register number ‘aliases’ in the
Server Map page, and also have the option of using Modicon notation. Unless you are using the
server map, all registers must be accessed as holding registers. When using the server map to
create a virtual device, you can also access BACnet objects as coils, discrete inputs, or input
registers (writing is supported only for coils and holding registers).
20.2
Modbus Registers Accessible with BB2-7030 as a Slave
Modbus register numbers for accessing data objects in the BB2-7030 are calculated. The register
number for binary and multi-state objects is R=T*1000+I where T is the BACnet Object Type,
and I is the instance (R is the resulting register number). The register number for analog objects,
because they must be read as a register pair, is R=T*1000+I*2-1 (R is the first register number in
the pair). Register numbers start at 1. To create a raw address, subtract 1 from the register
number.
Analog objects should be read as input registers or holding registers, and can only be written as
holding registers. Binary and multi-state objects can be read as any register type (coil, discrete,
input register, holding register), and can be written as coil or holding register. (Server Map must
be used to access registers as anything other than holding registers.)
Analog objects are always floating point data read as a register pair with most significant register
first unless the Swap box is checked on the Modbus Devices page. Attempting to read or write an
Analog object as a single register will produce an error.
Object types that may be used in Modbus register number calculation are:
0 – Analog Input
1 – Analog Output
2 – Analog Value
3 – Binary Input
4 – Binary Output
5 – Binary Value
13 – Multistate Input
14 – Multistate Output
19 – Multistate Value
It is not possible to access BACnet object reliability codes from Modbus. If you want to
configure a BACnet client map to provide a failure indication to Modbus, you should use the
default value upon read failure to indicate the failure to Modbus. Select a default value that