Modbus RTU maximum channel number
Modbus RTU maximum channel number
Hello. I need to configure the RevPI to acquire about 100 channels (more or less) read from 50-60 different sensors. Is it possible using a RevPI compact?
If yes, shall I have any limitation on configured polling time or any other drawback?
At the moment, I'm successfully using RevPI compact to acquire 10 modbus signals, but I saw that I can configure maximum 32 channels.
Thank you in advance
If yes, shall I have any limitation on configured polling time or any other drawback?
At the moment, I'm successfully using RevPI compact to acquire 10 modbus signals, but I saw that I can configure maximum 32 channels.
Thank you in advance
Re: Modbus RTU maximum channel number
Hello my friend, this is certainly difficult to answer without a test setup. I don't think it's possible with the on-board tools we provide. It is a simple Modbus interface. Of course, there are ways around restrictions here and there, these are the following:
1. Use the Modbus RTU Master 150 module in PiCtory - now you have 150 registers 2. deactivate the limitations and validity checks - now you are somewhat in off-road mode Good luck!
1. Use the Modbus RTU Master 150 module in PiCtory - now you have 150 registers 2. deactivate the limitations and validity checks - now you are somewhat in off-road mode Good luck!
Re: Modbus RTU maximum channel number
Thank you Dirk.
When I configure for maximum 150 channels, the polling time adopted by RevPi for each channel is computed using the same logic used when I configure the standard master RTU?
Then when you say "I don't think it's possible with the on-board tools we provide", you refer to my question if there can be limitations or any drawback in the managing of an high number of channels as in my use case?
Thank you again.
Fabrizio
When I configure for maximum 150 channels, the polling time adopted by RevPi for each channel is computed using the same logic used when I configure the standard master RTU?
Then when you say "I don't think it's possible with the on-board tools we provide", you refer to my question if there can be limitations or any drawback in the managing of an high number of channels as in my use case?
Thank you again.
Fabrizio
Re: Modbus RTU maximum channel number
Hi Fabrizio,
https://gitlab.com/revolutionpi/revpi-modbus
viewtopic.php?p=15737#p15737
Here is another interesting discussion from user Nils on the feasibility of single writes via Modbus and alternatives to the process image.
viewtopic.php?p=11676#p11676
User ostermann has also examined some things here with the help of an oscilloscope and done a good job. However, the discussion was a little longer ago:
viewtopic.php?t=3271
I hope that these explanations will help you to decide how you can implement your application here.
Well the code is online thus the logic, see here:Thank you Dirk.When I configure for maximum 150 channels, the polling time adopted by RevPi for each channel is computed using the same logic used when I configure the standard master RTU?
https://gitlab.com/revolutionpi/revpi-modbus
Yes, the easiest but only way to prove is to do the setup. For example, user jejmule mentioned that for example there should be a configurable delay between the requests so that responses can be received properly, etc.Then when you say "I don't think it's possible with the on-board tools we provide", you refer to my question if there can be limitations or any drawback in the managing of an high number of channels as in my use case?
viewtopic.php?p=15737#p15737
Here is another interesting discussion from user Nils on the feasibility of single writes via Modbus and alternatives to the process image.
viewtopic.php?p=11676#p11676
User ostermann has also examined some things here with the help of an oscilloscope and done a good job. However, the discussion was a little longer ago:
viewtopic.php?t=3271
I hope that these explanations will help you to decide how you can implement your application here.
Re: Modbus RTU maximum channel number
Thank you very much Dirk, for the useful information.
I can also evaluate the use of another RevPi module, different from the Compact version I already used.
The purpose is to have more than one Modbus RTU Master bus, so I can distribute all the sensors I have to manage on 2 buses.
Could you suggest me the best way to obtain this?
I saw that a way can be the use of a USB-RS485 converter to be attached to RevPI USB, and configure it as a second Modbus channel (in this case, could you suggest me a converter you already used for this?).
Are there any other method? (I didn't find any Modbus RTU expansion modules...)
Or use Modbus TCP Master coupled with a Modbus TCP-RTU converter?
Thank you,
Fabrizio
I can also evaluate the use of another RevPi module, different from the Compact version I already used.
The purpose is to have more than one Modbus RTU Master bus, so I can distribute all the sensors I have to manage on 2 buses.
Could you suggest me the best way to obtain this?
I saw that a way can be the use of a USB-RS485 converter to be attached to RevPI USB, and configure it as a second Modbus channel (in this case, could you suggest me a converter you already used for this?).
Are there any other method? (I didn't find any Modbus RTU expansion modules...)
Or use Modbus TCP Master coupled with a Modbus TCP-RTU converter?
Thank you,
Fabrizio
Re: Modbus RTU maximum channel number
Hello Dirk.
I find that the RevPI Flat has 2 different RS485 channels (I didn't found it previously!). So I suppose it can be used to manage my previous request (have 2 Modbus RTU Master channels).
Are they completely independent and configurable with different communication settings?
Thank you.
Fabrizio
I find that the RevPI Flat has 2 different RS485 channels (I didn't found it previously!). So I suppose it can be used to manage my previous request (have 2 Modbus RTU Master channels).
Are they completely independent and configurable with different communication settings?
Thank you.
Fabrizio
Re: Modbus RTU maximum channel number
Hi Fabrizio, yes good point, the RevPi Flat S modules have
https://revolutionpi.com/en/tutorials/revpi-flat-s
And here
https://revolutionpi.com/en/tutorials/o ... essen-flat
Good idea.
- RS485-1
- RS485-0
https://revolutionpi.com/en/tutorials/revpi-flat-s
And here
https://revolutionpi.com/en/tutorials/o ... essen-flat
Good idea.
Re: Modbus RTU maximum channel number
Thank you Dirk.
I'll proceed with RevPi Flat.
Regards,
Fabrizio
I'll proceed with RevPi Flat.
Regards,
Fabrizio
Re: Modbus RTU maximum channel number
Hello Dirk.
I'm trying to communicate with more than 32 slave registers (I configured a Modbus RTU Master 150 to allow this configuration on Pictory), but it seems that no more than 32 actions can be performed by RevPi.
I'll try to better explain my tests.
I configured 48 actions on Pictory to acquire data from 16 sensors (3 different measures for each one).
So I obtains with Pictory the assigning of the variables Input_Word_1, ..., Input_Word_48.
As a test to check the acquisition I use the tool "piTest" and it returns valid values til Input_Word_32.
I verified that this is not a problem of the slaves, because moving on Pictory the configuration of the slaves, exchanging the first 32 actions ones with the others, I'm always able to read the ones associated to the first 32 actions.
This means that RevPi is not able to manage more than 32 actions for every modbus channel?
If this is the case, why I can configure more than 32 actions (using Modbus RTU Master 150)? Is there another manner to interact with the registers exceeding the first 32?
Thank you,
Fabrizio
I'm trying to communicate with more than 32 slave registers (I configured a Modbus RTU Master 150 to allow this configuration on Pictory), but it seems that no more than 32 actions can be performed by RevPi.
I'll try to better explain my tests.
I configured 48 actions on Pictory to acquire data from 16 sensors (3 different measures for each one).
So I obtains with Pictory the assigning of the variables Input_Word_1, ..., Input_Word_48.
As a test to check the acquisition I use the tool "piTest" and it returns valid values til Input_Word_32.
I verified that this is not a problem of the slaves, because moving on Pictory the configuration of the slaves, exchanging the first 32 actions ones with the others, I'm always able to read the ones associated to the first 32 actions.
This means that RevPi is not able to manage more than 32 actions for every modbus channel?
If this is the case, why I can configure more than 32 actions (using Modbus RTU Master 150)? Is there another manner to interact with the registers exceeding the first 32?
Thank you,
Fabrizio
Re: Modbus RTU maximum channel number
Fabrizio, thank you very much for the error report. As I have already said, you are in "off-road mode".
The Modbus interface that the RevPi offers is simply not designed and tested for such a load.
Have you ever thought about designing your application differently?
For example, it is also possible to use the RS485 interface directly. Why don't you do a test with a Python code example for Modbus RTU. If this works, you can either take advantage of the process image and use a virtual module to store the received values there. This has the advantage that you can access these values atomically. A second process can then read this data from the process image and do something with it.
The Modbus interface that the RevPi offers is simply not designed and tested for such a load.
Have you ever thought about designing your application differently?
For example, it is also possible to use the RS485 interface directly. Why don't you do a test with a Python code example for Modbus RTU. If this works, you can either take advantage of the process image and use a virtual module to store the received values there. This has the advantage that you can access these values atomically. A second process can then read this data from the process image and do something with it.