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

Dieses Projekt ist ein Weg, um ein Arduino oder mein Arduino ATmega644 / 1284 Klon über 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.
ORIGINAL POST
By noname
components
Hardware 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 Apps and online services
Arduino IDE
details

53b13a2a68b7d7ffeb85af0d3af04bcf_thumb.jpg

Dieses Projekt ist ein Weg, um ein Arduino oder mein Arduino ATmega644 / 1284 Klon über 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- / Ausgänge 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 Lötbrücke “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 für die Kommunikation zwischen dem Klon und dem Ethernet verwendet, so dass Sie es nicht für etwas anderes verwenden müssen.

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 über TCP noch ein MODBUS RTU (seriell com, aber jetzt mit der neuen Version von advancedHMI, hier nicht getestet). Für weitere Informationen über MODBUS auf gehen http://www.simplymodbus.ca/TCP.htm.

Die Seite für die Mudbus-Bibliothek:

https://code.google.com/p/mudbus/

Die Website für AdvancedHMI, ein sehr eingängiges HMI:

http://www.advancedhmi.com

(Sie müssen Visual Basic Express 2010 oder höher installieren, bevor Sie AdvancedHMI ausführen)

Ce projet va permettre de piloter un Arduino Uno ou l’Arduino ATmega644 / 1284 Klon que j’ai Fabriqué dans un HMI précédent Artikel à l’aide d’une Schnittstelle PC ou über un Ethernet Shield sous le protocole MODBUS TCP. Cela permettra de réaliser un système de Aufsicht oder SCADA.

Pourquoi le faire sur ce Klon? Le Board Arduino Uno possede un bestimmte nombre d’Entrées / Einsätze 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 parenthèse) gießen:

D2 – Ethernet-Interrupt (optional mit Lötbrücke “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 bénéficier de plus d’entrées / sorties. Ces geboren ne pourront être utilisées pour autres choses.

Pourquoi verwenden Sie modbus TCP? C’est un protocole de kommunikation facile à mettre en oeuvre, robuste und très répandu dans l’industrie. L’Schnittstelle du projet advancedHMI possede un Fahrer qui Gère ce Protocole, de son côté l’Arduino reconnait les Trames grâce à la Librairie “mudbus” à télécharger. Achtung: ce n’est pas du Modbus RTU über 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/

Le site AdvancedHMI (vous devez installer au préalable le logiciel kostenlos Visual Basic Express 2010):

http://www.advancedhmi.com/

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

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

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

Die Modbus-TCP-Kommunikation wird jeweils durch Leseregister und geschrieben Register von 16 Bit durchgeführt, die Sie haben unter der mudbus Bibliothek im Arduino Programm wie folgt zu erstellen:

Mb.R [0] bis Mb.R [255] zum Beispiel (für 16-Bit-Register)
Mb.C [0] bis Mb.C [255] zum Beispiel (für 1-Bit-Register)

Sie können das Register Mb.R [i] oder Mb.C [i] verwenden.

Sie können nicht direkt den Eingangs- oder Ausgangsstift des Klons erreichen, so dass Sie diese Register verwenden müssen.

In der Progromed für den Klon geliefert, müssen 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 Möglichkeit, diese Register mit Ein- und Ausgängen zu nutzen.

Mit dem Ethernet, remenber, dass Sie eine IP-Adresse an den Schild geben müssen. 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 nächstes wird die Verbindung zwischen Arduino-Klon-Registern und AdvancedHMI-Widgets.

Die Kommunikation Modbus TCP se fera par l’intermédiaire de Vorlesung ou d’écriture de registre 16 Bits Créés par la librairie Mudbus de l’Arduino und Portant les noms de:

Mb.R [0] à Mb.R [255] beispielhaft

Mb.C [0] à Mb.C [255]

On peut utiliser indifféremment l’un ou l’autre de ces registriert.

Les entrées / sorties de l’arduino, ne peuvent pas être directement pilotable ou supervisées. Il faut obligatoirement passer par ces registriert.

Dans le programmierung fourni pour l’arduino Klon penser à prendre en compte le Änderung de:

Arduino Uno Stift D8: Verbindungsstift 20 atmega644 / 1284: d’où adresse 14 (D14).

Es handelt sich hierbei um ein vereinfachtes Verfahren.

Gießen Sie paramétrer l’ethernet Schild, vous n’avez qu’à modifier les rubriques suivantes und fonction de votre réseau:

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

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

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

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

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

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 über das Register Mb.R [8] gesteuert und die Verbindung zum AdvancedHMI-Widget ist die Adresse 40009 (für arduino uno) oder 40015 (für 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 (für arduino uno oder für 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 contenté seulement:

-un afficheur 4 Stellen affichant la valeur du registre Mb.R [5] (choisi arbitrairement) côté arduino et dont la Übereinstimmung est l’adresse 40006 vue par la HMI.

Penser à paramétrer le Fahrer ModbusTcpCom1 avec l’adresse de votre Schild (fixée par votre Programm sous arduino 1.0.5).

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

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

ACHTUNG: die mudbus Bibliothek mit dem ATmega644 / 1284 Klon anzupassen , müssen Sie die Datei Arduino / Bibliotheken / Ethernet / Dienstprogramm / w5100.h und fügen Sie diese Zeile zu ändern:

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 impérativement Modifier le fichier Arduino / Bibliotheken / Ethernet / Utility / w5100.h sinon rien ne fonctionne.

Il suffit d’ajouter les lignes Für eine grössere 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 Erklärung gab:

Sehr große thanx und Küsse zu:

Http: //forum.arduino.cc/index.php? PHPSESSID = tm5f16 …

Ich habe nicht die SD-Karte mit für den Augenblick getestet. Ich habe ein anderes HMI namens UNIGO kostenlose Version unter Android-Tab oder Telefon getestet und es läuft sehr gut auf meinem SCADA-kontrollierten Systemen meiner Firma.

Gute instructables jeder !!!

Un petit remerciement für Arlindo Astyzem qui a mis in place avant moi cette communication mais a toujours donnés des informations très lacunaires (il n’a jamais répondu à mes mails):

http://www.youtube.com/watch?v=LYPmNPIY4IY

Un super remerciement avec gross ceinufdes au Forum suivant:

http://forum.arduino.cc/index.php?PHPSESSID=tm5f16dcvq0q8it99qno4mtl44&topic=192115.msg1419867#msg1419867

Je n’ai pas testé l’Auslastung de la carte SD.

J’ai testé la librairie MODBUSslave pour arduino en tentant d’avoir la Kommunikation entre advancedHMI und l’arduino über 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 Très bien fonctionné avec l’Anwendung UNIGO Pour android qui elle, schlagen MODBUS TCP ou MODBUS RTU über TCP. J’attends avec ungeduldig la nouvelle Version du projet advancedHMI qui je l’espère intègrera cette fonctionnalité. Pour l’sofort mon plancher en chêne est toujours aussi einwandfrei.

documents
Code
Das Programm de l'arduino atmega644 / 1284 Klon

COMMENTS

Please Login to comment
  Subscribe  
Notify of