question

gino avatar image
gino asked

Multiplus II GX remote management/monitoring

We have a number of MultiPlus II GX units installed on a closed Network. Is there a program or software package that can be used in a closed (Not connected to Internet) network that can monitor and manage these MultiPlus II GX units over IP connection. We do utilise Network Management tools like Nagios which can collect SNMP information.

Can it be achieved using a Modbus connection?

Looking for a solution.

remote console
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

3 Answers
markus avatar image
markus answered ·
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Marvel Fuentes avatar image
Marvel Fuentes answered ·

We are trying to use the following Nagios plugin to read status information: https://github.com/AndreySV/check_modbus

We are able to connect to the Modbus TCP port(which is enabled) but we are not able to read the values properly. Could you please point us in the right direction?

Tried the following:

$ check_modbus -p 502 --ip=192.168.1.101 -d 1 -a 822 -f3
check_modbus.c:129:print_error(): Read failed: Gateway path unavailable

$ check_modbus -p 502 --ip=192.168.1.101 -d 1 -a 822 -f2
check_modbus.c:129:print_error(): Read failed: Illegal function

$ check_modbus -p 502 --ip=192.168.1.101 -d 1 -a 3 -f1
check_modbus.c:129:print_error(): Read failed: Illegal function




# check_modbus --help
Check ModBus version 0.47
Build date: 26.02.2024

--version Print version information
-v --verbose Print additional (debug) information (settings, modbus debug etc).
Specify multiple times to increase verbosity level.
-h --help Print this help
-H --ip= IP address or hostname
-p --port= [ TCP Port number. Default 502 ]
-S --serial= Serial port to use
-b --serial_bps= [ Serial port speed. Default 9600 ]
--serial_mode= [ RS mode of serial port. Default 0 ]
0 - RS232
1 - RS485
--serial_parity= [ Serial port parity settings. Default none ]
Allowed values: none/N, even/E, odd/O
--serial_data_bits= [ Serial port number of data bits. Default 8 ]
Allowed values: 5, 6, 7, 8
--serial_stop_bits= [ Serial port number of stop bits. Default 1 ]
Allowed values: 1, 2
--file= use binary dump file as input source
-d --device= [ Device modbus number. Default 1 ]
-a --address= [ Register/bit address reference. Default 1 ]
-t --try= [ Number of tries. Default 1 ]
-F --format= [ Data format. Default 1 ]
1 - int16_t
2 - uint16_t
3 - int32_t
4 - uint32_t
5 - int64_t
6 - uint64_t
7 - float
8 - double
-s --swapbytes [ Swap bytes in each incomming word ]
-i --inverse [ Use inversed words order ]
-f --function= Number of functions
1 - Read coils
2 - Read input discretes
3 - Read multiple registers
4 - Read input registers
-w --warning= [ Warning range ]
-c --critical= [ Critical range ]
-n --null [ If the query will get zero, return the critical signal ]
-N --not_null [ If the query will get no zero, return the critical signal ]
-u --unit= [ Unit label for output data (e.g., '°C')]

-m --perf_min= [ Minimum value for performance data]
-M --perf_max= [ Maximum value for performance data]
-P --perf_data [ Enable to show performance data. By default performance data is disabled]
-L --perf_label= [ Label for performance data]

--gain= [ Gain value. The read value can be adjusted
using expression gain*value+offset. Default 1.0 ]
--offset= [ Offset value. Default 0.0 ]

--dump [ Dump register and bits values instead of analize their values ]
--dump_size= [ Number of registers/bits in output dump ]
--dump_format= [ Format of dump output. Default 1]
1 - binary
2 - hex
3 - decimal
--dump_file= [ Output dump file ]

--lock_file_in = [ Lock file for input operation (access to dump file or serial device ]
--lock_file_out = [ Lock file for output operations (for example to access dump file) ]

Examples:
./check_modbus --ip=192.168.1.123 -d 1 -a 13 -f 4 -w 123.4 -c 234.5
./check_modbus --ip=192.168.1.123 -d 1 -a 15 -f 4 -w 2345 -c 1234
./check_modbus --ip=plc01 --try=5 -d 2 -a 20 -f 2 -n
./check_modbus --ip=plc01 --try=5 -d 2 -a 1 -f 4 --dump --dump_format 1 --dump_size 20
./check_modbus --file=file.dump -F 7 -f 4 -a 20 -w 100
./check_modbus --serial=/dev/ttyS0 -d 2 -a 7 -f 4 -n

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Alex Pescaru avatar image Alex Pescaru commented ·

The device addresses for sure are not 1 (-d switch)...

If you have a Cerbo, find them on Settings - Services - Modbus TCP - Available services.

Try for checking SoC of the battery:

check_modbus -p 502 --ip=192.168.1.101 -d 100 -a 843 -f3

0 Likes 0 ·
Fideri avatar image
Fideri answered ·

@Gino

Also see this thread and many others that suggest using Grafana.

https://community.victronenergy.com/questions/256574/victron-ecosystem-vulnerable-to-hackers.html

F.

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.