Zum Hauptinhalt springen

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.

01_project

▷ 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).

01_project

➜ Dadurch wird das Gerätefenster im CODESYS-Editor wie unten gezeigt aktualisiert.

01_project

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.

01_project

▷ 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.

01_project

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".

01_project

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.

01_project

▷ Klicken Sie mit der rechten Maustaste auf das Ende des negierten Kontakts.

▷ Wählen Sie "Leere Box einfügen" aus.

01_project

▷ Wählen Sie TON im Timer-Funktionsblock aus der CODESYS Standardbibliothek aus.

01_project

▷ Drücken Sie Enter mit dem Standardnamen TON_0.

01_project

➜ Das Fenster "Auto Declare" öffnet sich. Hier können Sie die Variable TON als Standard deklarieren.

▷ Klicken Sie auf "OK" zur Ausführung.

01_project

▷ 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.

01_project

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.

01_project

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.

01_project

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.

01_project

Wenn Sie die Anwendung zum ersten Mal herunterladen, wird folgendes Fenster angezeigt.

▷ Klicken Sie auf "Ja".

01_project

Schritt 6: Anwendung ausführen

▷ Klicken Sie auf die Start-Schaltfläche oder drücken Sie F5. Dadurch wird die Anwendung gestartet.

01_project

➜ 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.

01_project

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.