Modbus RTU vs Modbus TCP
-
Hello
i'm tring to access multiple Neuron Extensions and the Neuron S103
xS10 on Adress 1
xS30 on Adress 2
xS30 on Adress 3I'm using the Open-Source Image "UniPian-Neuron-OS-2017-08-30.zip" and the Tool "mbpoll" from https://github.com/epsilonrt/mbpoll
if i access to the Modbus thru RTU i see only the Extentions but not the Neuron S103
root@unipi:~# mbpoll /dev/extcomm/1/0 -a 1:3 -1 mbpoll 0.1-23 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2015 epsilonRT, All rights reserved. This software is governed by the CeCILL license <http://www.cecill.info> Protocol configuration: Modbus RTU Slave configuration...: address = [1,2,3] start reference = 1, count = 1 Communication.........: /dev/extcomm/1/0, 19200-8E1 t/o 1.00 s, poll rate 1000 ms Data type.............: 16-bit register, output (holding) register table -- Polling slave 1... [1]: 0 -- Polling slave 2... [1]: 0 -- Polling slave 3... [1]: 0
if i access the Modbus thru TPC i see only the S103, but the Extensions. At least i don't now how to access them.
Slave 0 and 1 are the same.root@unipi:~# mbpoll 127.0.0.1 -a 0:4 -r 1 -c2 -l 1000 mbpoll 0.1-23 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2015 epsilonRT, All rights reserved. This software is governed by the CeCILL license <http://www.cecill.info> Protocol configuration: Modbus TCP Slave configuration...: address = [0,1,2,3,4] start reference = 1, count = 2 Communication.........: 127.0.0.1, port 502, t/o 1.00 s, poll rate 1000 ms Data type.............: 16-bit register, output (holding) register table -- Polling slave 0... Ctrl-C to stop) [1]: 1 [2]: 0 -- Polling slave 1... Ctrl-C to stop) [1]: 1 [2]: 0 -- Polling slave 2... Ctrl-C to stop) Read output (holding) register failed: Illegal data address -- Polling slave 3... Ctrl-C to stop) Read output (holding) register failed: Illegal data address -- Polling slave 4... Ctrl-C to stop) Read output (holding) register failed: Illegal data address
i also tried to set the '-r' option to 100/200/1000...
there i see a value but doesn't change if i trigger the buttonroot@unipi:~# mbpoll 127.0.0.1 -a 0 -r 100 -c2 -l 1000 mbpoll 0.1-23 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2015 epsilonRT, All rights reserved. This software is governed by the CeCILL license <http://www.cecill.info> Protocol configuration: Modbus TCP Slave configuration...: address = [0] start reference = 100, count = 2 Communication.........: 127.0.0.1, port 502, t/o 1.00 s, poll rate 1000 ms Data type.............: 16-bit register, output (holding) register table -- Polling slave 0... Ctrl-C to stop) [100]: 0 [101]: 0
How access to the S103 registers thru Modbus RTU?
Now access to the Neuron Extension thru Modbus TCP?thanks for your help
mauri -
Hello @mauri
Regarding the S103 to access it via TCP - the Unit(address) 0 provides access to the all groups of Neuron (in your case the S103 has only 1 group, but eg L513 has 3 groups). This can be observed in the Modbus table that there are two columns with the register number.
Extensions - I would start with just one extension connected and make sure, that the extensions are configured properly because there are two ways of addressing/configuring them.
- HW configuration: Whatever you set using the dip switches, it is used after the power cycle of the extension.
- SW configuration: If you set the HW configuration using dipswitches to address 0(configuration of parity and baud rate is irrelevant) than the SW configuration is used after power cycle. By default, the SW configuration is: Unit(address)15, baudrate 19200, NO parity.
So start with only 1 extension, configure it using the DIP switches to eg: 19200bps, no parity, address(unit) (do not forget to call the mbpoll to use these parameters as well). Then start connecting the others Unit 2 with the same baurdate and parity and so on...
-
so as i understand:
the UniPi can only Accessed by Modbus TCP
the Extension only by Modbus RTC (thru /dev/extcomm/0/0)is that right?
-
@mauri Correct