12        Tool 'Data List' Page

12.1       Read All Object Data

Click ‘Read All’ to cause the tool to query all BACnet objects in the BB3-3101 device. A brief summary of the object’s mapping is displayed along with its Present Value, Reliability code, and Status Flags. Progress of the ‘Read All’ process will scroll through the log window at the top.

To manually change the values in any BACnet object in the gateway device, use the Read/Write page to access object properties.

Obj... (Object) The first "Obj..." column is the local object identification.
R/W The R/W column indicates the following: R means periodic read, W means periodic write, W+ means write on delta. RW+ means a combination of those.
Device The Device column will show what remote slave device this object is mapped to. ‘Modbus[N]’ means Modbus RTU device whose slave address is N. ‘MS/TP[N]’ means BACnet slave whose device instance is N.
Object The second Object column shows what object in the slave device is mapped to this local object. If the object refers to a Modbus register, the register number is shown, e.g. ‘HoldRegs[3]’ means holding register 3. If the object is a BACnet object, the object type and instance are shown, e.g. ‘AI[1]’ means Analog Input 1. In the case of a commandable object, you will see something like "AO[2] P=3" - this means Analog Output 2, and write priority is set to 3.
Type Type shows the remote object data format. If the remote device is Modbus, the data format will be a notation applicable to Modbus, such as Unsigned for 16-bit integer register. If the remote device is BACnet, the type will indicate property type, such as Present Value.
Present Value Present Value shows a representation of the present value of the BACnet object in the BB2-3010/3060.
Reliability Reliability code for the BACnet object in the BB2-3010/3060 is shown. These are listed below.
Status Flags Status Flags shows the status flags for the object. The standard flags are: IN_ALARM, FAULT, OVERRIDDEN, and OUT_OF_SERVICE respectively (i.e. last T/F is out of service flag). The flag is F to show false/0 and T to show true/1.

12.2       Error Codes

If the slave device being queried by the gateway returns an error code, or there is simply a problem in communicating with the slave, this will be indicated by the gateway object's reliability code. When reliability code is non-zero, the fault flag is also set. Therefore, the Status Flags indication will typically be "F,T,F,F" any time the reliability code is something other than zero (zero means no errors to report).

Error codes returned by a Modbus slave device or BACnet slave device are encoded into reliability codes presented by the respective object. Reliability codes (read via the Reliability property) are as follows:

      no response (64)
      crc error (65)
      exception, illegal function code (66)
      exception, illegal data address (67)
      exception, illegal data value (68)
      exception, TCP gateway path unavailable (check IP address) (75)
      exception, TCP gateway target device failed to respond (connection problem) (76)
      exception, other code returned by device, code+65, (69..79)
      configuration property fault (80)
      exception, code not recognized (81)
      BACnet client read/write timeout (82)
      BACnet client received error response from slave (83)

If the object’s reliability indicates code 83, meaning an error code was returned by a remote BACnet device, the actual code returned can be learned by reading the local object’s properties 830 (class) and 831 (code). If an error exists and a reliability code other than 83 is indicated, reading properties 830-831 can also return class 64 (proprietary) and the reliability code+200 (i.e. Modbus illegal function code exception would be class 64, code 266).

12.3       Multistate Value Offset

BACnet protocol dictates that a Multistate object may not have a value of zero. Modbus registers often have a value of zero. By default, the BB3-3101 will translate from Modbus to BACnet Multistate with an offset of one so that Modbus zero is indicated as state 1 in the Multistate object.

You have the option of disabling this offset by checking the Disable Multistate Offset box on the Modbus page. However, any values from Modbus will be bounded to legal Multistate values. Therefore, a Modbus value of zero will be forced to a value of one. At the same time, a value of one will remain a value of one. Therefore, without the offset, you cannot tell the difference between the Modbus values of zero and one.

The minimum value that a Multistate object can ever contain is one. The maximum value will be that maximum state value configured on the Device page. Values coming from Modbus that fall outside this range will be forced into bounds.

The bounding to legal values mentioned here only applies to Multistate objects.

The maximum state value is configurable on the Device page. The maximum value you will ever be able to set is 4096 since that is the maximum number of state strings available (based on memory capacity). The practical limit will be lower than that. If you attempt to set a limit that is out of range of available resources, you will get an "Invalid configuration" error message when attempting to reconfigure the gateway on the Device page. The pool of 4096 state strings is shared among all Binary and Multistate objects.