Accessing BACnet Objects as Any Modbus Register You Like
All types of BACnet objects in a BB2-7010 are accessed as Modbus holding registers when the gateway is a Modbus slave. The holding register numbers are documented in the user guide in section 8.2 for Modbus RTU or section 9.2 for Modbus TCP (register mapping is same for both RTU and TCP). However, you do have the option of assigning any Modbus register number you like and any Modbus register type you like to any BACnet object by using the Server Map.
We will look at three different ways to look at Binary Outputs in the following examples, but the same principle applies to all other object types. By default, without using the server map, Binary Outputs will show up at holding registers 4001, 4002, etc., as illustrated below.
Now let’s say we want to read the Binary Outputs as Modbus coils. To do that, we start by going to the Server Map. This page is found under Modbus TCP settings, but applies to Modbus RTU as well. To enable mapping using Modicon register numbering (required in order to access objects as coils), check both of the boxes illustrated at the bottom of this page. Then simply enter the Modicon address and assign the BACnet objects as illustrated below.
We are now reading the same Binary Output objects as Modbus coils, as illustrated below.
If we wanted to read the Binary Outputs as Modbus status inputs (discrete inputs) instead, we would enter the Modicon register numbers for status inputs instead, as illustrated below.
Although potentially not useful since you cannot write to a Modbus status input, we illustrate reading the same Binary Outputs as status inputs below.
You can mix any number of Modbus register types and register numbers using Modicon notation, and can assign the Modbus registers to any of the BACnet objects in the gateway. Be sure to read the Quick Help section at the bottom of the Server Map page for more information about setting up the various parameters for each Server Map entry.