Inhaltsverzeichnis:

Arduino PLC 32 I/O+State Machine+SCADA oder HMI - Gunook
Arduino PLC 32 I/O+State Machine+SCADA oder HMI - Gunook

Video: Arduino PLC 32 I/O+State Machine+SCADA oder HMI - Gunook

Video: Arduino PLC 32 I/O+State Machine+SCADA oder HMI - Gunook
Video: Обзор модуля ввода/вывода EBYTE Modbus RTU 2024, Juli
Anonim
Arduino PLC 32 I/O+State Machine+SCADA oder HMI
Arduino PLC 32 I/O+State Machine+SCADA oder HMI

Viele Möglichkeiten, ein industrielles System mit Arduino zu programmieren, zu steuern und zu überwachen.

Schritt 1: Einführung

Einführung
Einführung

In diesem instructable werde ich behandeln:

2 Methoden zum Programmieren eines Arduino, das mit einer Art Maschine verbunden ist, einschließlich Drucktasten, Schalter und LEDs

1- Die erste Methode mit der arduino 1.6.x IDE unter Verwendung der SM-Bibliothek (State Machine)

2-Die zweite Methode mit Yakindu, einem State-Digram-Editor-Projekt, das mit einer Eclipse-Umgebung erstellt wurde: Sie zeichnen Ihre Zustandsmaschine und sie generiert den Code zur Übertragung auf das Arduino-Board.

In Verbindung mit

2 Möglichkeiten, die Maschine mit einem laufenden SCADA oder virtuellen HMI zu überwachen:

1- unter Android 4.4: Unigo Evolution, eine kostenlose App ohne Code, nur Elemente zum Platzieren auf einem Bildschirm und Modbus TCP

2-unter Windows 8: ein kostenloses Projekt AdvancedHMI, das Visual Studio 2013 benötigt, keinen Code und keine Elemente zum Platzieren auf einem Bildschirm und Modbus TCP

Sie zeichnen also Ihre Funktionsabläufe mit einem SFC (in der Automatisierung: Sequential Function Chart), übersetzen sie in ein Zustandsdiagramm (ganz näher), programmieren sie (Yakindu oder Arduino SM lib) und überwachen sie dann mit einem SCADA (Unigo Android oder AdvancedHMI Windows).

Schritt 2: Beschreibung des Real Boards:

Beschreibung des Real-Boards
Beschreibung des Real-Boards
Beschreibung des Real-Boards
Beschreibung des Real-Boards

Der Schaltplan:

Ich habe ein Arduino UNO-Board verwendet, keinen Klon, da Yakindu kein Programm an einen Klon senden kann, nur an UNO und Mega-Board.

Ich könnte 32 digitale E/A mit 2 SPI-Expander wie MCP23S17 (2x16 E/A) und 2 weitere analoge 12-Bit-Ausgänge (real analog, nicht PWM-gefiltert) mit 2 SPI-DAC wie MCP4921 haben.

Ich habe das Ethernet-Shield nicht gezeichnet, aber Sie brauchen es, um Ihr System zu überwachen: also dürfen die Pins 4, 10, 11, 12 und 13 für nichts anderes verwendet werden und Pin 0 und 1 natürlich nur für RX TX.

Die echten Board-Bilder:

8 Taster sind notwendig:

  • 4 für den manuellen Modus: eine für das Licht an jeder LED
  • 1 für Not-Aus: wenn gedrückt, befinden Sie sich im Normalmodus, loslassen: Notfall
  • 1 für den automatischen Modus, der das sequentielle Ein- und Ausschalten jeder LED auslöst, wenn losgelassen: manueller Modus, um jede LED ohne Sequenz zu steuern
  • 1 für RUN im Automatikbetrieb
  • 1 für STOP im Automatikbetrieb

4 führte, um zu simulieren, was Sie wollen (Relais, Ventil…)

Ich gebe den Namen aller Tasten und LEDs an, die ich in den Programmen verwendet habe.

Schritt 3: Welche Sequenz soll programmiert werden? SFC und Zustandsdiagramm

Welche Sequenz soll programmiert werden? SFC und Zustandsdiagramm
Welche Sequenz soll programmiert werden? SFC und Zustandsdiagramm
Welche Sequenz soll programmiert werden? SFC und Zustandsdiagramm
Welche Sequenz soll programmiert werden? SFC und Zustandsdiagramm

Ich habe einen sehr einfachen SFC erstellt, um zu beschreiben, was das System tun soll.

3 SFC werden benötigt:

  • SFCsecu, um den Notfallmodus ein- oder auszuschalten, es ist der Master-SFC, der die anderen startet
  • SFC Auto manuell gestartet von SFCsecu, Sie können den automatischen Modus oder den manuellen Modus erreichen
  • SFC-Laufstopp, Abfragen und Speichern, wenn jemand DCY (RUN) oder FCY (STOP) gedrückt hat

Diese SFC laufen im Pseudo-Multistaking.

Dann übersetze ich sie in ein Zustandsdiagramm:

  • eine Master-Maschine (Notfall), die 2 andere Slaves startet
  • ein Slave zum Scannen und Speichern von DCY und FCY
  • ein Slave, um den automatischen oder manuellen Modus zu erreichen

Eine andere Sache: Wenn Sie DCY drücken, können Sie den analogen Ausgang mit einem virtuellen Trimer auf einem Scada steuern, wenn Sie FCY drücken, fallen die analogen Ausgänge auf 0 V.

Das Zustandsdiagramm hilft Ihnen, das Arduino zu programmieren.

Schritt 4: Programmierung mit Arduino IDE 1.6. X

Programmierung mit Arduino IDE 1.6. X
Programmierung mit Arduino IDE 1.6. X
Programmierung mit Arduino IDE 1.6. X
Programmierung mit Arduino IDE 1.6. X

Ich gebe Ihnen den Code, um die vorherigen Diagramme zu übersetzen. Ich brauchte 3 zusätzliche Libs, die ich dir auch gebe.

Sie benötigen auch die Adresstabelle, um zu verstehen, welche Pins Sie wofür verwenden und der Modbus registriert die entsprechenden Adressen.

Schritt 5: Programmierung mit YAKINDU

Programmieren mit YAKINDU
Programmieren mit YAKINDU
Programmieren mit YAKINDU
Programmieren mit YAKINDU
Programmieren mit YAKINDU
Programmieren mit YAKINDU

Laden Sie zuerst die kostenlose Projektversion 2.9 (nicht pro) herunter auf:

www.itemis.com/en/yakindu/state-machine/

Folgen Sie dann dem mitgelieferten Tutorial: Es gibt einige Änderungen gegenüber dem letzten Download des Programms, nur um die Namen der verschiedenen Teile der Datei "xxxconnector.cpp" zu vervollständigen.

Die Bilder: die Zeichnung der Zustandsmaschine, die Ansicht des Ordners im Projekt und seiner importierten Bibliotheken von arduino, die Ansicht von "xxxconnector.cpp", um eine Verbindung zwischen den Übergängen / den Zuständen und den realen Ein- / Ausgängen herzustellen Board oder der SCADAs.

Ich gebe Ihnen das Projekt, das Sie nur in Ihren automatisch erstellten Arbeitsbereich importieren müssen.

Ebenfalls bereitgestellt: die benötigten Bibliotheken zum Importieren in Yakindu und einige Änderungen, die im Tutorial beschrieben werden.

Schritt 6: Überwachen Sie es mit AdvancedHMI

Überwachen Sie es mit AdvancedHMI
Überwachen Sie es mit AdvancedHMI

Laden Sie zuerst Visual Studio Express 2013 oder höher herunter unter:

www.microsoft.com/fr-fr/download/details.a…

Dann laden Sie das AdvancedHMI-Projekt herunter auf:

sourceforge.net/projects/advancedhmi/?SetF…

Ich gebe Ihnen die Bilder des von mir gezeichneten SCADA (mit den entsprechenden Modbus-Registeradressen) und ohne Code programmiert, das Projekt modifiziert und ein kurzes Tutorial.

Schritt 7: Überwachen Sie es mit Unigo Evolution

Überwachen Sie es mit Unigo Evolution
Überwachen Sie es mit Unigo Evolution

Sie benötigen ein Android-Gerät mit Android 4.4 (Kit Kat) und einen 7-Zoll-Bildschirm.

Ich gebe Ihnen die Bilder des von mir gezeichneten SCADAs (und die entsprechenden Modbus-Registeradressen) und eine kurze Anleitung zur Verwendung von Unigo, kein Code erforderlich, einen Ordner mit Bildern von Industrieleuchten und Tasten zum Einfügen in den auf Ihrem internen Ordner erstellten UniGOPictures-Ordner SD von der App und dem Projekt.

Schritt 8: Fazit

Es war eine riesige Aufgabe, 2 verschiedene Arten der Programmierung und 2 verschiedene Arten der Überwachung zusammenzustellen. Es ist am Anfang schwer, sich an die Fähigkeiten jeder Art zu gewöhnen. Aber jetzt funktioniert es und wenn Sie es einmal verstanden haben, können Sie jetzt kompliziertere Systeme steuern.

Vielen Dank an viele weltweite Tutorials, an Archie (AdvancedHMI), an RenéB2 (Yakindu) und an Mikael Andersson (Unigo Evolution) und an die Entwickler von Arduino-Bibliotheken, die es mir ermöglichen, ein solches "Technologie-Storming"-Projekt durchzuführen.

Sans eux j'aurais peut tre souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.

Fröhliche Anleitungen.