Modbus TCP with Arduino as Master

Hi everyone,

For my summer internship, part of my project has been to create a unique identification system for stage equipment. Essentially, we would like a device that can sit on an invention (e.g. lifts, catapults, conveyor belts), and indicate to the drive powering the motors (where this device is located) what invention it is plugged in to. So on plug and power up of the invention we would like this drive to go "Hey, I am connected to Bob, let me load up his parameters from a database so I don't kill anyone". This idiot proofs the initial set up, as well as helps to guarantee the wrong type of drive is not connected to the wrong motor. The most important constraint is that these drives can be up to 300ft (~100m) away. After much research, I thought a nice solution would be to use an Arduino powered and networked through power-over-ethernet (PoE). This allows us to have just one cord, as well as meets the distance constraint. In order to communicate with the drive, the protocol required is Modbus, and since it is over ethernet Modbus TCP fits well. Additionally, the Arduino will need to be the master in this master/slave configuration.

The only library I have come across is this one , but it is not well documented. I understand what the script is doing, but I am having difficulty getting it to connect and send data to this dummy program. I am trained as a mechanical engineer (I am eventually designing and manufacturing the drive rack), but have been tasked with figuring out a plug protocol and identification system as well. As such, I am no expert in the network architecture, so any help would be immensely appreciated. Here are my questions:

  • Is there a more robust and documented library out there for Modbus TCP architecture on the Arduino? This one has not been updated in over a year.
  • Does there exist a better solution to this design prompt?
  • Has anyone ever worked with a similar architecture and be willing to hold my hand through a basic walkthrough or even just offer some advice?

Again, any help would be greatly appreciated!