If this sounds to you like a solution, to use a small ARM based board, such as Cubieboard, RPi, Beagle so forth, then I can help you out. On my Cubieboard II, I use the libmodbus-3.1.1 library, which can do TCP as well as RTU modes.Ĭurrently I am developing an application that uses this library that talks Modbus TCP to any number of devices, such as PLC's, solar controlling equipment and Arduino.
#Modbus poll alternative serial
I have used the serial library, SimpleModbusSlave that works over async serial comms such as USB/TTL/RS-485/RS-232 and it does work well, but as you say, you can not make use of that in this case.īut, like you found, there is no working TCP library for Modbus master for Arduino, not one that is well supported and used. I'm not sure what your needs are and if you are wanting to use or need to use an Arduino for your application and what you then do with the data once you have it from the Modbus slave, but maybe going to such a platfrom as a small ARM or GNU/Linux might provide a way for you as it did me. I ended up re-thinking my whole project what I wanted to do, and decided to move to using a small ARM based board, Cubieboard II which I installed GNU/Linux Debian so I could use a TCP master library available for use with Linux/BSD. I too looked a few months ago and found nothing of note that could be used. I can understand your situation, unfortunately, there doesn't appear to be a functional Modbus master for TCP for the Arduino. Slave configuration.: address = 1, start reference = 1, count = 9Ĭommunication.: 10.20.10.62, port 502, t/o 1.00 s, poll rate 1000 msĭata type.: 16-bit register, input register table
#Modbus poll alternative simulator
Modpoll 3.4 - FieldTalk(tm) Modbus(R) Master Simulator I've successfully completed many other arduino projects, so I think that this is doable, but just needs a programmer more versed in tcp/modbus than I am.įYI, this is the modpoll response: C:\>modpoll -1 -t 3 -c 9 -r 1 -m tcp 10.20.10.62 I've tried using the ethernet library to send a client.println of the TCP modbus request string to port 502, but I get gibberish ascii in response after connecting.
#Modbus poll alternative how to
Modpoll works correctly in command prompt on windows, so I know I can do it, but I have no idea how to code it with the ethernet shield. I don't even need a library, I just need to poll the first 9 16-bit input registers (modbus function 4) from a single modbus TCP slave (data recorder box). The only other modbus master library is for RS485, and the one working modbus TCP library (mudbus) is slave-only. However, there is only 1 modbus TCP master library ( ), and it has zero documentation, and also doesn't work (does nothing at all, no serial feedback, no menu, using the provided example code). I have a data recorder that uses modbus TCP (no RS485), and I want the Arduino to poll and store 9 input registers from that data recorder (located in another room) via modbus tcp. I have an Arduino Uno with an Ethernet shield. Hello, after a lot of searching, I'm here to ask for some help.