CODESYS-Beispiel: BlinkingLight
Dieses Tutorial erklärt, wie eine einfache blinkende Lampe mit CODESYS auf dem Revolution Pi-System erstellt wird. Es enthält Schritt-für-Schritt-Anleitungen und visuelle Hilfsmittel für ein besseres Verständnis.
Zielsetzung
Eine LED-Lampe soll mithilfe des RevPi-Systems und CODESYS jede Sekunde blinken.
Voraussetzungen
Hardware
✓ RevPi Core 3
✓ RevPi DIO
✓ LED
Software
✓ CODESYS Development System installiert auf Ihrem PC
Systemeinrichtung
Hardware-Einrichtung:
▷ Schließen Sie die LED an einen beliebigen Ausgangskanal des RevPi DIO-Moduls an.
▷ Verbinden Sie RevPi Core und RevPi DIO über die PiBridge.
▷ Stellen Sie sicher, dass die Stromversorgung ordnungsgemäß angeschlossen ist.
▷ Betreiben Sie Ihren RevPi entweder im Headless-Modus oder schließen Sie Monitor, Maus und Tastatur daran an.
Ausführliche Anleitungen zur Einrichtung Ihres Systems finden Sie im Getting Started Guide.
Software-Einrichtung:
Um ein kompatibles System mit geeigneter Software sicherzustellen, beachte die CODESYS Systemanforderungen.
Schritt 1: Erstellen eines neuen Projekts in CODESYS
▷ Öffnen Sie CODESYS auf Ihrem PC.
▷ Erstellen Sie ein neues Standardprojekt.
▷ Wählen Sie CODESYS Control for Linux ARM oder ARM64, je nach Ihrer Image-Version.
▷ Wählen Sie eine der EN 61131-3 Programmiersprachen für SPS. In diesem Beispiel verwenden wir Ladder Logic Diagram (LD).
➜ Dadurch wird das Gerätefenster im CODESYS-Editor wie unten gezeigt aktualisiert.
Schritt 2: Konfigurieren des Gerätestamms
Eine Standard-POU (Program Organization Unit) PLC_PRG wird erstellt, in der der RevPi-Controller in LD programmiert werden kann. PLC_PRG ist bereits so konfiguriert, dass es in der MainTask aufgerufen wird. Es sind keine weiteren Schritte in der Task-Konfiguration erforderlich.
▷ Klicken Sie mit der rechten Maustaste auf das Stammgerät im Gerätefenster.
▷ Wählen Sie "Gerät hinzufügen" aus.
➜ Unter "Miscellaneous" mit dem Herstellerfilter KUNBUS GmbH werden die KUNBUS-basierten unterstützten CODESYS-Controller angezeigt.
▷ Wählen Sie RevPi Core3.
▷ Klicken Sie auf "Gerät hinzufügen".
➜ Dies fügt RevPi Core3 im Gerätebaum hinzu.
▷ Klicken Sie mit der rechten Maustaste auf RevPi_Core_3_3_S.
▷ Klicken Sie mit der rechten Maustaste auf piBridgeLeft.
Hinweis: Wenn Sie einen RevPi Connect verwenden, müssen Sie piBridgeLeft auswählen, da ein DIO/DO-Modul nur auf der linken Seite des RevPi Connect verwendet werden darf.
▷ Klicken Sie erneut auf "Gerät hinzufügen".
▷ Navigieren Sie zu den unter "Miscellaneous" aufgeführten Geräten. ➜ Alle Module, die auf der rechten Seite des RevPi Core 3 angeschlossen werden können, werden hier angezeigt. ▷ Wählen Sie RevPi_DIO aus.
▷ Klicken Sie auf "Gerät hinzufügen".
➜ Das RevPi_DIO-Modul wird dem Gerätebaum hinzugefügt.
Schritt 3: Variablen für das I/O-Modul zuweisen
▷ Doppelklicken Sie auf das RevPi_DIO im Gerätebaum.
▷ Navigieren Sie zur Registerkarte Revolution Pi DIO Module I/O Mapping. Die verwendeten I/O-Variablen der entsprechenden Module können hier benannt werden. Um auf sie zuzugreifen, müssen sie lediglich in einem Programm aufgerufen werden.
▷ Weisen Sie der digitalen Ausgabe mit dem Datentyp WORD den Variablennamen wDout zu. ➜ Lampe 1 ist an Kanal 1 der digitalen Ausgabe des DIO-Moduls angeschlossen und kann mit dem ersten Bit über den Punktoperator wDout.0 angesprochen werden. Um auf einzelne Bits in einer Variablen mit einem ganzzahligen Datentyp zuzugreifen, verwenden Sie folgende Syntax: "variablename"."bitnumber".
Schritt 4: Logik für die blinkende Lampe schreiben
▷ Doppelklicken Sie auf PLC_PRG im Gerätebaum. ➜ Dies öffnet das Programmfenster PLC_PRG, in dem die Logik (das Programm) für eine blinkende Lampe, die mit dem DIO-Modul verbunden ist, in KOP geschrieben werden soll.
▷ Klicken Sie mit der rechten Maustaste auf Sprosse 1.
▷ Wählen Sie "Negierten Kontakt einfügen" aus.
▷ Klicken Sie mit der rechten Maustaste auf das Ende des negierten Kontakts.
▷ Wählen Sie "Leere Box einfügen" aus.
▷ Wählen Sie TON im Timer-Funktionsblock aus der CODESYS Standardbibliothek aus.
▷ Drücken Sie Enter mit dem Standardnamen TON_0.
➜ Das Fenster "Auto Declare" öffnet sich. Hier können Sie die Variable TON als Standard deklarieren.
▷ Klicken Sie auf "OK" zur Ausführung.
▷ Fügen Sie dann eine Spule auf der rechten Seite von TON_0 ein.
▷ Klicken Sie mit der rechten Maustaste, um ein Netzwerk hinzuzufügen.
▷ Vervollständigen Sie die Logik wie unten gezeigt.
TON_0 und TON_1 sind zwei TON-Timer, die mit einer Periode von 1s konfiguriert sind. Lampe1 ist die Ausgabe am DIO-Modul, die wir blinken lassen möchten. Das ET-Feld der Timer kann leer gelassen werden, da es nicht verwendet wird. In Sprosse 1 soll TON_0 Lampe1 nach 1 Sekunde einschalten. Wenn TON_1.Q eingeschaltet (HIGH) ist, wird der NC-Kontakt TON_1.Q geöffnet, wodurch Sprosse 1 auf Logik 0 ausgewertet wird, weshalb Lampe1 für 1 Sekunde wieder ausgeschaltet wird. Die beiden Sprossen helfen also, die Ausgangsvariable Lampe1 periodisch zwischen HIGH (1) und LOW (0) Zuständen mit einer Periode von 1s umzuschalten.
Schritt 5: RevPi in CODESYS verbinden
▷ Doppelklicken Sie auf das Stammgerät im CODESYS-Gerätebaum.
▷ Klicken Sie auf die Registerkarte "Kommunikationseinstellungen".
▷ Klicken Sie auf "Netzwerk scannen", um den RevPi Core3 zu finden.
Dies funktioniert nur, wenn der RevPi Core3 physisch mit Ihrem Netzwerk verbunden ist und eine installierte CODESYS-Laufzeitumgebung aktiv ist.
▷ Wählen Sie "OK", um das erkannte Gerät hinzuzufügen.
RevPi-Gerät nicht gefunden
Wenn der vorherige Schritt nicht erfolgreich war, können Sie weitere Untersuchungen durchführen, indem Sie die Protokolldatei überprüfen. Hinweis: Um das RevPi-Gerät mit dem Scan zu finden, muss CODESYS Control laufen und die Netz-IP-Verbindungseinstellungen sowie die physische Verbindung gültig sein. ▷ Öffnen Sie die Registerkarte unter Tools/Update Linux Arm/Arm64.
▷ Geben Sie die gültigen Login-Informationen und die IP-Adresse Ihres RevPi Core 3 ein.
▷ Wählen Sie "Scannen", um die Geräte im Netzwerk zu finden.
▷ Klicken Sie auf die Registerkarte "System".
▷ Klicken Sie auf "Systeminfo".
➜ Hier finden Sie die Protokolldatei des CODESYS-Controllers unter dem Pfad /tmp/codesyscontrol.log.
➜ Hier finden Sie die Protokolldatei des CODESYS-Controllers unter dem Pfad /tmp/codesyscontrol.log.
Diese Datei kann auch angezeigt werden, indem eine SSH-Terminalverbindung mit dem RevPi-Gerät geöffnet wird. Sie können sie mit dem folgenden Linux-Befehl anzeigen: cat /tmp/codesyscontrol.log.
RevPi-Gerät gefunden
▷ Klicken Sie jetzt auf das Login-Symbol, um eine Verbindung zum RevPi-Controller herzustellen.
Wenn Sie die Anwendung zum ersten Mal herunterladen, wird folgendes Fenster angezeigt.
▷ Klicken Sie auf "Ja".
Schritt 6: Anwendung ausführen
▷ Klicken Sie auf die Start-Schaltfläche oder drücken Sie F5. Dadurch wird die Anwendung gestartet.
➜ Sie befinden sich nun im Online-Modus, in dem Sie die Anwendungslogik zyklisch im Taskzyklus ausgeführt sehen können.
➜ Die Lampe, die mit dem DIO-Modul verbunden ist, sollte jetzt jede Sekunde blinken.
Fehlerbehebung
- Wenn der RevPi nicht gefunden wird, prüfen Sie Folgendes:
- Protokolldatei: /tmp/codesyscontrol.log.
- Netzwerkverbindung und IP-Adresse.
- Wenn die LED nicht blinkt:
Überprüfen Sie, ob wDout.0 dem richtigen DIO-Kanal zugeordnet ist.
- Stellen Sie sicher, dass die Logik in PLC_PRG korrekt implementiert ist.