14
ICC
how many bytes are allocated for the value in the database and whether or not to
interpret the number as signed or unsigned upon retrieval from the database.
A typical use of the multiplier feature is to preserve the fractional components of
a network value for insertion into the database. For example, if the floating-point
value “3.19” is read by the gateway from a remote BACnet device, then we could
use a multiplier value of 0.01 to preserve all of the significant digits of this value:
the network representation (3.19) will be divided by the multiplier value (0.01) to
obtain a resultant value of 319, which will then be inserted into the database.
Similarly, when a value in the database corresponding to a specific service object
is changed (which therefore requires that this updated value be written to the
associated remote device on the network), the service object’s multiplier value
will first be multiplied by the database value in order to obtain the resultant
network value. For example, if 3000 is written to the database at a location
corresponding to a certain service object on the other port, and that service
object’s multiplier value is 0.1, then the database value (3000) will be multiplied
by the multiplier value (0.1) to obtain the resultant network value of 300.0, which
will then be written to the network as a native floating point value.
An appropriate data type should be selected based on the range of the network
data values. For example, if the value of an Analog Output on a remote BACnet
device can vary from –500 to 500, a 16-bit signed data type should be used. If
the value can only vary from 0 to 150, for example, an 8-bit unsigned data type
may be used. Care must be taken so that a signed data type is selected if
network data values can be negative. For example, if 0xFF is written to the
database at a location corresponding to a service object with an 8-bit unsigned
data type, the resultant network value will be 255
10
(assuming a multiplier of 1).
However, if 0xFF is written to the database at a location corresponding to a
service object with an 8-bit signed data type, the resultant network value will be
−
1
10
(again, assuming a multiplier of 1). It is also important to select a data type
large enough to represent the network data values. For example, if a value of 257
is read by the gateway from a remote device and the data type corresponding to
that service object is 8-bit unsigned, the value that actually will be stored is 1
(assuming a multiplier of 1). This is because the maximum value that can be
stored in 8-bits is 255. Any value higher than this therefore results in overflow.
The Millennium Series gateways also provide a powerful data-monitoring feature
that allows the user to view and edit the database in real time, as well as view the
status of service objects via the ICC Gateway Configuration Utility’s Monitor tab
when connected via USB to a PC. The ability to interact with the database is also
available via the embedded web server.
When properly configured, the gateway will become essentially “transparent” on
the networks, and the various network devices can engage in seamless dialogs
with each other.