Ethernet Shields V2.0 and Modbus TCP Communication

Introduction: Ethernet Shields V2.0 and Modbus TCP Communication


About using bidirectionnal Modbus TCP communication with the latest Etehernet Shields V2.

Step 1: Comparisons and Settings

It's been many years I use the famous and unexpensive Ethernet shield for Arduino based on W5100. It works fine but the latest shields are faster and low energy consumers. I recently bought 2 type of Ethernet Shield V2:

-the SEEEDUINO (25 EUROS) based on the W5200 and runnig with Ethernet_Shield_W5200 library

-the official Arduino Ethernet Shield V2.0 (30 EUROS) based on the W5500 and running with Ethernet2-1.0.4 library

To establish a good Modbus TCP communication, you need to use the famous "mudbus" library and modify it easily as indicated in the tutorial.

Then the sketch are a little different between these 2 shields but it works fine.

AdvancedHMI can check the communication.

nota: I have got some definition problems with the pdf tutorial and I don't know why. Now it's solved. I give you an Office file.

Step 2: Conclusion

Thanx to all website advised in my tutorial.

Happy instructables.

Be the First to Share


    • One Board Contest

      One Board Contest
    • Photography Challenge

      Photography Challenge
    • Jewelry Challenge

      Jewelry Challenge



    Question 1 year ago on Step 2

    Using Codesys on a Raspberry PI, I am able to read the Mb.R[10] = 6666. When I try to write a single bit to (7, Mb.R[9]), any bit 1-8 will mak ethe LED come on. Bits 9-16 will not turn on the LED. There is a project by Juan Reyes on GitHub that assigns array of i/o to modbus registers but he uses a W5100 shield library and I cannot seem to get it to work with a w5200 shield. Could you assist in merging to two projects? My end goal is to have a Arduino Mega as my remote i/o and the Raspberry Pi as the Controller.
    Nice work on the above!!


    Answer 1 year ago

    Hello pwtken1,
    You don't have print the begining of your mega sketch, and if there are some communication problems, I think it comes from the library you use and the running order of the instruction of your sketch. I made recently an instructables with a comparative matrix between various shields vs various boards. Have a look on the sketch between the mega board and the seeduino W5200. You must use the same modified-myself libraries I gave and I think it will work fine with the "mudbus" library (i never try to test others for the moment). Don' forget in the communication: the master (the PY here) read/write to the modbus registers (16 bits) of the slave (mega2560) with an offset of +1: mb9 of the slave is mb10 of the master. Let me know.
    Best regards. Manu