pe1chy site logo
-

Modbus: Hardware

Deze pagina beschrijft een minimum Arduino Modbus systeem met 1 master en 1 slave. Het laat zien hoe data vanuit de master naar de slave gestuurd kan worden en daar schakelacties uitvoert. Ook laat het zien hoe data vanuit de slave bij de master kan worden uitgelezen en gebruikt. Het doel is om een idee te krijgen van de werkwijze en de mogelijkheden van Modbus.

Er wordt uitgegaan van enige basis ervaring met Arduino boards en programming met de Arduino IDE.

De master en de slave zijn beiden uitgevoerd met een Arduino Nano board. Dit is een van de meest eenvoudige Arduino boards, een nadeel is dat deze maar over een enkele Seriele poort beschikt. Het is daardoor niet mogelijk tegelijktijdig de Modbus verbinding en de serieele monitor te gebruiken. Met grotere boards zoals de Arduino Mega2560 kan dat wel.

Schema Master:

master circuit

IC 1 is de RS485 naar RS232 converter. Hiervoor zijn goedkope modulen verkrijgbaar, zie onderaan deze pagina. De weerstanden R8 en R9 zijn niet altijd aanwezig, ze dienen om de RS485 bus tijdens inactiviteit in een gedefinieerde positie te houden. M1 is de Arduino Nano, rechts daarvan vinden we de aansluiting voor een I2C karakter display. Verder is er nog een rotary encoder met druktoets aangesloten. De voedingsspanning hangt af van de gebruikte spanningsregelaar, met een 7812 moet er minimaal +15 Volt op de ingang staan. De maximum ingangsspanning van een 7812 is ca 30 Volt.

Schema slave:

slave circuit

De slave bevat ook een RS485 converter, identiek aan de master. Verder is een potentiometer RV1 aanwezig, die een analoge sensor simuleert. Hiervoor in de plaats kan een willekeurige sensor worden gedacht die een spanning afgeeft, proportioneel met de te meten grootheid. Rechts zijn acht LED's aanwezig, die schakeluitgangen voorstellen. In deze plaats kunnen relais, opto-couplers of andere schakelfuncties worden gedacht.

RS485 converter circuit RS485 converter circuit RS485 Converter Module


example citcuit

Modbus Master & Slave example with Arduino Nano boards