Modbus Sources
Novant supports native integration with Modbus devices, allowing you to read and write data points from building systems using the Modbus TCP protocol. This guide explains how to configure Modbus sources, define device connection parameters, and map register addresses for use in your projects.
Sources
Novant supports the following Modbus types:
- Modbus TCP devices
- Modus devices routed through a Modus IP gateway
The address format for Modus sources is:
<ip>:<port>/<unit_id>
Where:
ipis the IPv4 address of the Modbus device or gatewayportis the Modbus TCP port (typically502)unit_idis the Modbus Unit ID (slave address)
Examples:
10.0.0.5:502/1
10.0.0.6:5502/3
Points
The address format for Modbus points is:
<point_type> "." <register_type> "." <start_address> [ "." <data_type> ]
Examples:
bv.co.0
bv.di.5
ai.in.100.int32
av.hr.200.float64
Point Type
The point_type identifies the logical point behavior
(read-only, write-only, or read/write) and value type.
| Prefix | Point Type |
|---|---|
bi |
Read-only binary input |
bo |
Write-only Binary output |
bv |
Read/write binary value |
ai |
Read-only analog input |
ao |
Write-only analog output |
av |
Read/write analog value |
Register Type
The register_type specifies which Modbus register space
is accessed.
| Prefix | Register Type |
|---|---|
co |
Discrete binary output coils |
di |
Discrete binary input coils |
in |
Analog input registers |
hr |
Analog output holding registers |
Register Addressing
The start_address is a zero-based register index with no
padding.
Depending on the selected data_type, multiple contiguous
registers may be read starting at the specified address.
Data Types
For ai, ao, and av point
kinds, a data_type is required to define how raw Modbus
registers are interpreted.
| Type | Description |
|---|---|
int16 |
One register wide 16-bit signed integer |
int32 |
Two register wide 32-bit signed integer |
int64 |
Four register wide 64-bit signed integer |
uint16 |
One register wide 16-bit unsigned integer |
uint32 |
Two register wide 32-bit unsigned integer |
float32 |
Two register wide IEEE 754 32-bit float |
float64 |
Four register wide IEEE 754 64-bit float |