---
title: "Arduino atmega644 / 1284 Klon + Ethernet Schild + advancedHMI + VB NET + MODBUS TCP"
url: "https://maker.wiznet.io/george/projects/Arduino-atmega644-1284-Klon-Ethernet-Schild-advancedHMI-VB-NET-MODBUS-TCP/"
markdown_url: "https://maker.wiznet.io/george/projects/Arduino-atmega644-1284-Klon-Ethernet-Schild-advancedHMI-VB-NET-MODBUS-TCP/md"
type: "UCC: User Created Content"
author: "george"
author_url: "https://maker.wiznet.io/george/"
original_author: "george"
original_url: "https://www.instructables.com/Arduino-atmega6441284-cloneethernet-shieldadvanced/"
published: "2019-04-02"
language: "en"
hardware: ["Arduino atmega644", "1284 clone", "ethernet shield", "advancedHMI", "VB NET", "MODBUS TCP"]
likes: 0
views: 920
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# Arduino atmega644 / 1284 Klon + Ethernet Schild + advancedHMI + VB NET + MODBUS TCP

> Arduino atmega644 / 1284 Klon + Ethernet Schild + advancedHMI + VB NET + MODBUS TCP

Original author: george (source: https://www.instructables.com/Arduino-atmega6441284-cloneethernet-shieldadvanced/)

## Components

- **Arduino atmega644** x 1
- **1284 clone** x 1
- **ethernet shield** x 1
- **advancedHMI** x 1
- **VB NET** x 1
- **MODBUS TCP** x 1
- Software: **Arduino IDE** ([docs](https://www.arduino.cc/en/software))

## Documents and links

- [Das Programm de l'arduino atmega644 / 1284 Klon](http://img.gunook.com/upload/1/53/153f963eeee655b68497983e824facdf.jpg) (code)

## Article

Dieses Projekt ist ein Weg, um ein Arduino oder mein Arduino ATmega644 / 1284 Klon uber einen PC oder eine Mensch-Maschine-Schnittstelle mit dem Arduino Ethernet Shield verbunden zu steuern. Sie werden ein SCADA-System erstellen, um Ihr System aus der Ferne zu steuern. Warum habe ich diesen Klon von arduino? Nur um mehr Ein- / Ausgange zu haben, um kompliziertere Systeme zu steuern. Dies sind die Korrelation zwischen arduino uno Pins und meine Atmega644 / 1284 Klon Pins: D2 - Ethernet-Interrupt (optional mit Lotbrucke "INT") (Klonstift D10) D4 - SD SPI CS (Klonstift D0) D10 - Ethernet SPI CS (Klonstift D4) D11 - nicht angeschlossen (aber SPI MOSI) (Klonstift D5) D12 - Nicht angeschlossen (aber SPI MISO) (Klonstift D6) D13 - SPI SCK (Klonstift D7) A0 - SD Schreibschutz (Klonstift A0) A1 - SD-Erkennung (Klonstift A1) Diese Pins werden fur die Kommunikation zwischen dem Klon und dem Ethernet verwendet, so dass Sie es nicht fur etwas anderes verwenden mussen. Warum mit MODBUS TCP-Kommunikation? Weil es eine einfache und gesicherte Art ist, mit entfernten Systemen zu kommunizieren. Die Open-Source-und Free-Projekt AdvancedHmi hat einen Treiber, die diese Kommunikation und arduino Bibliothek zu verwenden ist die "Mudbus-Bibliothek" nur. Die anderen funktioniert nicht, weil AdvancedHMI eine TCP MODBUS liefern keine MODBUS RTU uber TCP noch ein MODBUS RTU (seriell com, aber jetzt mit der neuen Version von advancedHMI, hier nicht getestet). Fur weitere Informationen uber MODBUS auf gehen?<http://www.simplymodbus.ca/TCP.htm.> Die Seite fur die Mudbus-Bibliothek: [https://code.google.com/p/mudbus/](https://translate.googleusercontent.com/translate_c?depth=1&langpair=en%7Cde&rurl=translate.google.com&u=https://code.google.com/p/mudbus/&usg=ALkJrhiYYJMNsPHpHnSHhcZhj2lUJCBrkA) Die Website fur AdvancedHMI, ein sehr eingangiges HMI: [http://www.advancedhmi.com](http://www.advancedhmi.com/) (Sie mussen Visual Basic Express 2010 oder hoher installieren, bevor Sie AdvancedHMI ausfuhren) Ce projet va permettre de piloter un Arduino Uno ou l'Arduino ATmega644 / 1284 Klon que j'ai Fabrique dans un HMI precedent Artikel a l'aide d'une Schnittstelle PC ou uber un Ethernet Shield sous le protocole MODBUS TCP. Cela permettra de realiser un systeme de Aufsicht oder SCADA. Pourquoi le faire sur ce Klon? Le Board Arduino Uno possede un bestimmte nombre d'Entrees / Einsatze mais le fait de rajouter l'Ethernet-Schild mobilisieren Zugabe des Bornes qui sont du Coup inutilisables gießen d'autres Anwendungen. Ces bornes sont l'Arduino UNO (correspondance de l'Arduino ATmega644 / 1284 Klon entre parenthese) gießen: D2 - Ethernet-Interrupt (optional mit Lotbrucke "INT") (D10 du clone) D4 - SD SPI CS (D0 du Klon) D10 - Ethernet SPI CS (D4 du Klon) D11 - nicht angeschlossen (sollte aber SPI MOSI sein) (D5 du clone) D12 - nicht angeschlossen (sollte aber SPI MISO sein) (D6 du clone) D13 - SPI SCK (D7 du Klon) A0 - SD Schreibschutz (A0 du clone) A1 - SD Erkennung (A1 du clone) L'arduino clone avec ethernet Abschirmung ich permettra de beneficier de plus d'entrees / sorties. Ces geboren ne pourront etre utilisees pour autres choses. Pourquoi verwenden Sie modbus TCP? C'est un protocole de kommunikation facile a mettre en oeuvre, robuste und tres repandu dans l'industrie. L'Schnittstelle du projet advancedHMI possede un Fahrer qui Gere ce Protocole, de son cote l'Arduino reconnait les Trames grace a la Librairie "mudbus" a telecharger. Achtung: ce n'est pas du Modbus RTU uber TCP (Consulter la Dokumentation suivante:?<http://www.simplymodbus.ca/TCP.htm>?). Die Ortschaft de la librairie mudbus pour arduino 1.0.5: [https://code.google.com/p/mudbus/](https://translate.googleusercontent.com/translate_c?depth=1&langpair=en%7Cde&rurl=translate.google.com&u=https://code.google.com/p/mudbus/&usg=ALkJrhiYYJMNsPHpHnSHhcZhj2lUJCBrkA) Le site AdvancedHMI (vous devez installer au prealable le logiciel kostenlos Visual Basic Express 2010): <http://www.advancedhmi.com/>

### Schritt 1: Das Programm de l'arduino atmega644 / 1284 Klon

Die Modbus-TCP-Kommunikation wird jeweils durch Leseregister und geschrieben Register von 16 Bit durchgefuhrt, die Sie haben unter der mudbus Bibliothek im Arduino Programm wie folgt zu erstellen: Mb.R [0] bis Mb.R [255] zum Beispiel (fur 16-Bit-Register) Mb.C [0] bis Mb.C [255] zum Beispiel (fur 1-Bit-Register) Sie konnen das Register Mb.R [i] oder Mb.C [i] verwenden. Sie konnen nicht direkt den Eingangs- oder Ausgangsstift des Klons erreichen, so dass Sie diese Register verwenden mussen. In der Progromed fur den Klon geliefert, mussen Sie wissen, gibt es einen anderen Pin adressing beetween der arduino uno und der Klon: Exemple: Arduino Uno Pin D8: connexion Stift 20 des ATmega644 / 1284 Klon: so Adresse 14 (D14) (siehe vorhergehende Tabelle in meinem Arduino Klon-Projekt). In meinem einfachen Programm haben Sie die Moglichkeit, diese Register mit Ein- und Ausgangen zu nutzen. Mit dem Ethernet, remenber, dass Sie eine IP-Adresse an den Schild geben mussen. In meinem Beispiel: Uint8_t ip [] = {192, 168, 1, 244}; Uint8_t Gateway [] = {192, 168, 1, 1}; Uint8_t subnet [] = {255, 255, 255, 0}; Siehe das mitgelieferte Beispiel. Als nachstes wird die Verbindung zwischen Arduino-Klon-Registern und AdvancedHMI-Widgets. Die Kommunikation Modbus TCP se fera par l'intermediaire de Vorlesung ou d'ecriture de registre 16 Bits Crees par la librairie Mudbus de l'Arduino und Portant les noms de: Mb.R [0] a Mb.R [255] beispielhaft Mb.C [0] a Mb.C [255] On peut utiliser indifferemment l'un ou l'autre de ces registriert. Les entrees / sorties de l'arduino, ne peuvent pas etre directement pilotable ou supervisees. Il faut obligatoirement passer par ces registriert. Dans le programmierung fourni pour l'arduino Klon penser a prendre en compte le Anderung de: Arduino Uno Stift D8: Verbindungsstift 20 atmega644 / 1284: d'ou adresse 14 (D14). Es handelt sich hierbei um ein vereinfachtes Verfahren. Gießen Sie parametrer l'ethernet Schild, vous n'avez qu'a modifier les rubriques suivantes und fonction de votre reseau: Uint8_t ip [] = {192, 168, 1, 244}; Uint8_t Gateway [] = {192, 168, 1, 1}; Uint8_t subnet [] = {255, 255, 255, 0}; Ich schließe mich an.

### Schritt 2: Aspect de l'interface advancedHMI

In diesem Prototyp HMI oder SCADA, habe ich gerade verwendet: -a Schalterknopf, zum des Stiftes D8 arduino uno (oder Stift D14 atmega644 / 1284 Klon) zu steuern. Dieser Ausgang wird uber das Register Mb.R [8] gesteuert und die Verbindung zum AdvancedHMI-Widget ist die Adresse 40009 (fur arduino uno) oder 40015 (fur Atmega644 / 1284-Klon). - eine 4-stellige Anzeige mit Anzeige des Wertes der Mb.R [5] im arduino Programm und der Link zum AdvancedHMI-Widget die Adresse 40006 (fur arduino uno oder fur atmega644 / 1284 Klon). In AdvancedHMI muss man dem ModbusTcpCom1 Treiber die IP-Adresse des Arduino-Ethernet-Schildes geben, also 192.168.1.244 in meinem Beispiel. Je me suis contente seulement: -un afficheur 4 Stellen affichant la valeur du registre Mb.R [5] (choisi arbitrairement) cote arduino et dont la Ubereinstimmung est l'adresse 40006 vue par la HMI. Penser a parametrer le Fahrer ModbusTcpCom1 avec l'adresse de votre Schild (fixee par votre Programm sous arduino 1.0.5).

### Schritt 3: Modifikationen von Mudbus pour atmega 644p und 1284p

ACHTUNG: die mudbus Bibliothek mit dem ATmega644 / 1284 Klon anzupassen , mussen Sie die Datei?**Arduino / Bibliotheken / Ethernet / Dienstprogramm / w5100.h**?und fugen Sie diese Zeile zu andern: aufrechtzuerhalten Definiert (__ AVR_ATmega1284P__) || Definiert (__AVR_ATmega644P__) Jetzt ist es an Ihnen. ACHTUNG: si vous Utilisez la Librairie mudbus pour l'Arduino ATmega644 / 1284 Klon vous devez imperativement Modifier le fichier?**Arduino / Bibliotheken / Ethernet / Utility / w5100.h**?sinon rien ne fonctionne. Il suffit d'ajouter les lignes Fur eine grossere Darstellung klicken Sie auf das Bild. aufrechtzuerhalten Definiert (__ AVR_ATmega1284P__) || Definiert (__AVR_ATmega644P__) Maintenant vous pouvez Essayer.

### Schritt 4: Remerciements et perspectives:

Ein sehr kleiner Dank an Arlindo Astyzem, der dies vor mir lief und nie auf meine E-Mails antwortete und mir nie eine Erklarung gab: Sehr große thanx und Kusse zu: [Http: //forum.arduino.cc/index.php? PHPSESSID = tm5f16 ...](http://forum.arduino.cc/index.php%3FPHPSESSID%3Dtm5f16dcvq0q8it99qno4mtl44%26topic%3D192115.msg1419867#msg1419867) Ich habe nicht die SD-Karte mit fur den Augenblick getestet. Ich habe ein anderes HMI namens UNIGO kostenlose Version unter Android-Tab oder Telefon getestet und es lauft sehr gut auf meinem SCADA-kontrollierten Systemen meiner Firma. Gute instructables jeder !!! Un petit remerciement fur Arlindo Astyzem qui a mis in place avant moi cette communication mais a toujours donnes des informations tres lacunaires (il n'a jamais repondu a mes mails): [http://www.youtube.com/watch?v=LYPmNPIY4IY](http://www.youtube.com/watch%3Fv%3DLYPmNPIY4IY) Un super remerciement avec gross ceinufdes au Forum suivant: [http://forum.arduino.cc/index.php?PHPSESSID=tm5f16dcvq0q8it99qno4mtl44&topic=192115.msg1419867#msg1419867](http://forum.arduino.cc/index.php%3FPHPSESSID%3Dtm5f16dcvq0q8it99qno4mtl44%26topic%3D192115.msg1419867#msg1419867) Je n'ai pas teste l'Auslastung de la carte SD. J'ai teste la librairie MODBUSslave pour arduino en tentant d'avoir la Kommunikation entre advancedHMI und l'arduino uber unmodul TCP / seriell RS232 mais c'est du modbus RTU und cela ne fonctionne pas. Cela m'aurait affranchi du shield Ethernet. En revanche cette Kommunikation ein Tres bien fonctionne avec l'Anwendung UNIGO Pour android qui elle, schlagen MODBUS TCP ou MODBUS RTU uber TCP. J'attends avec ungeduldig la nouvelle Version du projet advancedHMI qui je l'espere integrera cette fonctionnalite. Pour l'sofort mon plancher en chene est toujours aussi einwandfrei.

---

Source: https://maker.wiznet.io/george/projects/Arduino-atmega644-1284-Klon-Ethernet-Schild-advancedHMI-VB-NET-MODBUS-TCP/
