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 3

    I'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 button

    root@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


  • administrators

    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...



  • @tomas_hora

    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?


  • administrators

    @mauri Correct