Version: 2020-09-04
49
Copyright of the European Union is effective (Copyright EU) (c) 2019 GENEREX Systems GmbH, Hamburg, Germany, All rights reserved
TEL +49(40)22692910 - EMAIL generex@generex.de - WEB www.generex.de (This and all other product datasheets are available for download.)
Short tutorial: How MODBUS addressing works
When you take a look at the numbers you will notice that this number may tell you ultimately everything. The difficulty is to interprete the
number to identify a unique problem and without further explanation, this is a little bit difficult ...
Before you start...
Modbus slavles use a HEX value to send information to a modbus master. After receiving this HEX value, it will be converted into a
decimal number. Each HEX value or decimal value stands for a very specific UPS status, which can be interpreted accordingly if a
modbus list is available (That's why you need a "MODBUS LIST", you will find this lists in the appendix of this manual).
Example:
UPS_SB_OUTPUT_ACT = 0X0004 -> 4 = Inverter on = UPS OK
The query takes place by a pre configured time window configured at the master. As long as the slave gets a valid request, it will answer
accordingly- in this case 0X0004. This means, everything is fine with the UPS.
After some time, the master queries again and receives the following answer:
UPS_SB_BACKUP_MODE = 0x0008 -> 8 battery power
On request, the Modbus slave replies with this status: āThe UPS is currently running on batteries.ā
If the reason is an known error status, the CS141 will provide information about the reason, too:
UPS_SB_INVERTER_FAILURE = 0x0200 -> 512 Inverter Error
For the sake of simplicity and to shorten answers, the modbus slave adds the two HEX values and sends a single collective status
report.
As a consequence, the decimal system status jumps from 4 to 524: 4 [inverter on], 8 [system on battery] + 512 [inverter error] on
request. Since each status can only exist once a time, the a unique status report can be interpreted from the result: