IntesisBox
®
BACnet/IP Server - Modbus TCP Master
User’s Manual r1 eng
© Intesis Software S.L. - All rights reserved
This information is subject to change without notice
IntesisBox
®
is a registered trademark of Intesis Software SL
URL
Email
tel
http://www.intesis.com
[email protected]
+34 938047134
23 / 27
5.1.3 How to configure read/write points
First of all is important to take into account that different names for Modbus TCP function
codes, are used in technical literature depending on the manufacturer of the Modbus TCP
device. The following table shows the equivalence between nomenclature for function codes,
used by Intesis Software in IntesisBox and the used in Modbus TCP protocol specification.
Function code
IntesisBox
Modbus TCP protocol specification
01
Read digital outputs
Read Coils
02
Read digital inputs
Read Discrete Inputs
03
Read analog registers
Read Holding Registers
04
Read analog inputs
Read Input Registers
05
Write 1 digital output
Write Single Coil
06
Write 1 analog register
Write Single Register
15
Write multiple digital outputs
Write Multiple Coils
16
Write multiple analog registers
Write Multiple Registers
Given a point in a Modbus TCP slave device, if this point allows to be read and written,
different Modbus TCP function codes must be used for read and for write actions (consult
the slave documentation for details of what function codes must be used for read and for
write). Use the following criteria for configuration of this kind of points in IntesisBox:
1.
If the Modbus TCP function code to use for read is
03
and the function code to use for
write is
06
(which is very common), then select the function code
3-Read analog
registers
in column Modbus TCP
Code
and select a BACnet Type
Output
or
Value
for the
point (i.e. AO, AV, BO, BV, MO, MV). With this, IntesisBox will use function code 03 for
read the point in every polling cycle, and whenever a new value for the point is received
from BACnet, the new value will be written in the Modbus TCP slave device using
function code 06.
2.
If the Modbus TCP function code to use for read is
01
and the function code to use for
write is
05
(which is also very common), then select the function code
1-Read digital
outputs
in column Modbus TCP
Code
and select a BACnet Type
Output
or
Value
for the
point (i.e. AO, AV, BO, BV, MO, MV). With this, IntesisBox will use function code 01 for
read the point in every polling cycle, and whenever a new value for the point is received
from BACnet, the new value will be written in the Modbus TCP slave device using
function code 05.
3.
If the Modbus TCP function code to use for read and the function code to use for write
are different than 01-05 or 03-06 (sometimes found with specific devices), then you
have to declare two points in IntesisBox to perform the read and the write separately.
The way to configure this is better explained using an example.
Imagine you have a device, in which a given analog point (register address 100 for
example) of type read/write must be read using function code 03, and must be write
using function code 16.
To be able to read and write this Modbus TCP point from BACnet, you must define two
separate points into IntesisBox, one for read and one for write like the following:
Nb
Dev
Modbus Code
Format
Add. Bit Frac
Bac.Name
Bac.Type
Bac.ID
Active
1
1
3-Read analog registers
4 - 16 bits sig C2
100
0
AI - example of Read Modbus point
0 -AI
0
1-Yes
2
1
16-Write multiple analog registers 4 - 16 bits sig C2
100
0
AO - example of Write Modbus point
1-AO
0
1-Yes
The important configuration parameters to obtain the desired functionality are highlighted in green
colour, the rest of configuration parameters are irrelevant in this example. Note that both points must
have the same Modbus TCP
Address and the same Modbus TCP
Format.