<< Click to Display Table of Contents >> Navigation: Web Interface > Reports > Creating a Modbus Slave Report |
Any report can be exposed over Modbus by assigning a Slave Address in the report configuration.
Modbus Slave Report
Once a slave address has been set, the report’s channels will be mapped to registers on the Modbus slave.
Report Interval and Start Offset
When the registers are queried, the Modbus slave will return the report’s most recent value, which will get updated at the same time new records are written to disk.
If data logging is disabled for a report, it becomes possible to set the report interval to zero (“00:00:00”). In this state, the Modbus values are updated in real-time.
Set the interval to zero if you wish to obtain instantaneous values over Modbus.
Report Channels
Add the desired channels to the report. Each channel can be given a Modbus address.
Each channel on a Modbus report uses 2 address spaces. This means each Modbus address MUST be 2 or greater apart from one another.
E.g. Sequential Modbus addresses must be numbered: 1, 3, 5, 7 OR 2, 4, 6, 8. |
The simplest way to see the report channel ordering is using the ‘GETCONFIG’ command over telnet:
GETCONFIG Command
The right-hand column also provides sequential numbering which can be used to determine Modbus register addresses.
For the above example, this is how the Modbus registers would be assigned:
Ordinal |
Report Channel |
Modbus Data Address |
Coil |
Bad Status |
Calibration Status |
Input Register |
Holding Register |
0000 |
C1.Min |
0x0000 – 0x0001 |
01 |
10001 |
10002 |
30001 |
40001 – 40002 |
0001 |
C1.Max |
0x0002 – 0x0003 |
03 |
10003 |
10004 |
30003 |
40003 – 40004 |
0002 |
C1 |
0x0004 – 0x0005 |
05 |
10005 |
10006 |
30005 |
40005 - 40006 |
0003 |
C6.Latest |
0x0006 – 0x0007 |
07 |
10007 |
10008 |
30007 |
40007 – 40008 |
0004 |
C7 |
0x0008 – 0x0009 |
09 |
10009 |
10010 |
30009 |
40009 – 40010 |