Ziel: mit CODESYS einen Ausgang an einem Revolution Pi System steuern. Die Anwendung soll eine externe Signallampe im Sekundentakt blinken lassen.

Zwei bereits programmierte Beispielprojekte für Blinking Light stehen dir im GitLab Repository zur Verfügung.

Wenn du direkt ein fertiges Beispielprojekt verwendest, kannst du zu Mit RevPi verbinden springen.

Voraussetzungen #

Geräte #

Basismodul der RevPi Connect Serie oder der RevPi Core Serie

✓ Erweiterungsmodul RevPi DIO oder RevPi DO

✓ Externe LED-Signallampe

Hardware-Installation #

✓ Externe Signallampe ist an den ersten Ausgangskanal des RevPi Erweiterungsmoduls angeschlossen.

✓ RevPi Basis- und Erweiterungsmodul sind über die PiBridge verbunden.

✓ RevPi Basismodul ist mit dem Netzwerk verbunden.

✓ RevPi Basismodul ist an die Spannungsversorgung angeschlossen.

✓ RevPi Erweiterungsmodul ist an die Spannungsversorgung angeschlossen.

Siehe auch Getting Started.

Software-Installation #

✓ CODESYS Development System (CODESYS) ist auf deinem PC installiert.

✓ CODESYS Runtime ist im CODESYS Development System installiert.

✓ RevPi I/O-Treiber ist im CODESYS Development System installiert.

✓ CODESYS ist mit dem RevPi verbunden.

✓ CODESYS Runtime ist auf dem RevPi installiert.

Siehe CODESYS-Dokumentation zu System einrichten.

1. Projekt in CODESYS anlegen #

▷ Öffne CODESYS auf deinem PC.

▷ Erstelle ein neues Standardprojekt mit CODESYS Control for Linux ARM/ARM64 und der gewünschten Programmiersprache.

In den Beispielprojekten wird Ladder Logic Diagram (LD) verwendet, eine grafische Programmiersprache, die für einfache Start-Stopp-Steuerungen geeignet ist.

01_project

❯ Im Fenster Devices wird ein Gerätebaum erstellt.

▷ Öffne das Kontextmenü auf dem Stammgerät im Gerätebaum.

▷ Wähle Add device.

❯ Unter Miscellaneous mit dem Herstellerfilter KUNBUS GmbH wird eine Liste aller RevPi Geräte angezeigt.

Add Base Module

▷ Wähle das zutreffende RevPi Gerät.

▷ Wähle Add device.

❯ Das RevPi Gerät wird dem Gerätebaum hinzugefügt.

▷ Öffne das Kontextmenü des Objekts piBridgeLeft oder piBridgeRight des RevPi Basismoduls im Gerätebaum.

Note

An die RevPi Basismodule der RevPi Connect und RevPi Core Serie können auf der jeweils rechten und linken Seite nur bestimmte RevPi Erweiterungsmodule angeschlossen werden.

▷ Wähle Add device.

❯ Eine Liste der RevPi Erweiterungsmodule wird angezeigt.

▷ Wähle das zutreffende RevPi Erweiterungsmodul.

▷ Wähle Add device.

❯ Das RevPi Erweiterungsmodul wird dem Gerätebaum hinzugefügt.

Siehe auch Dokumentation zu Projekt mit RevPi Geräten anlegen.

2. Dem Ausgang eine Variable zuweisen #

▷ Öffne das RevPi Erweiterungsmodul im Gerätebaum.

▷ Navigiere zur Registerkarte Mapping.

▷ Weise dem digitalen Ausgang DO_CH1 (Typ Bool), der für die Signallampe verwendet wird, einen benutzerdefinierten Variablennamen zu.

❯ Der Ausgang wird über die CODESYS-Bitzuweisung angesprochen.

Beispiel am RevPi DIO:

Q_Lamp

Im Beispiel ist der Signallampe an Kanal 1 des Digitalausgangs des RevPi DIO die Boole’sche Variable Q_Lamp zugewiesen. Sie kann im Programm direkt gesteuert werden, indem Q_Lamp auf TRUE oder FALSE gesetzt wird.

3. Programm schreiben #

▷ Schreibe ein Programm in der gewünschten Programmiersprache und verwende dabei die zugewiesene Variable.

Im Beispielprojekt lautet das Programm in Ladder Logic Diagram:

Indicator Lamp Program

Funktionsweise des Beispielprogramms Blinking Light

Bausteine:

  • TON_0 und TON_1 sind Timer mit Einschaltverzögerung (TON = Timer On-Delay), die mit einer Periode von 1 s konfiguriert sind.

  • Q_Lamp ist die Bool’sche Variable, die mit dem digitalen Ausgang für die Signallampe am RevPi DIO verknüpft ist.

  • NC-Kontakt TON_1.Q ist der Öffner-Kontakt (leitet nur, wenn TON_1 noch nicht abgelaufen ist).

Ablauf:

  1. TON_0 startet, nach 1 s wird TON_0.Q TRUE und Q_Lamp EIN.

  2. TON_1 startet, nach 1 s wird TON_1.Q True, Öffner-Kontakt öffnet und Q_Lamp geht AUS.

  3. TON_1 TRUE sperrt den Öffner-Kontakt in Zeile 1.

  4. TON_0 wird zurückgesetzt und der Zyklus beginnt von vorn.

Ergebnis: Die beiden Timer wechseln sich gegenseitig ab, sodass die Signallampe im Sekundentakt blinkt (1 s an, 1 s aus).

Das ET-Feld (Elapsed Time = verstrichene Zeit) der Timer wird hier nicht benötigt und kann leer bleiben.

4. Mit RevPi verbinden #

Note

Um sich über CODESYS mit dem RevPi Gerät verbinden zu können, muss es physisch mit deinem Netzwerk verbunden und die CODESYS-Runtime auf dem Gerät installiert sein.
Siehe Voraussetzungen.

▷ Wähle in der Menüleiste Generate Code (F11), um das Programm zu kompilieren.

▷ Öffne das Stammgerät.

▷ Wähle in den Communication Settings Scan Network.

▷ Wähle den RevPi und stelle mit OK die Verbindung zum Gerät her.

01_project

▷ Wähle in der Menüleiste Login (Alt+F8), um dich auf dem RevPi anzumelden.

▷ Lege bei der ersten Anmeldung einen Benutzer an, indem du dem Assistenten folgst und Anmeldedaten festlegst.

▷ Melde dich im Fenster Device User Logon auf dem RevPi an.

▷ Bestätige beim ersten Mal das Herunterladen der Anwendung auf den RevPi mit Yes.

❯ Die Anwendung wird auf den RevPi übertragen und ist startbereit.

5. Anwendung ausführen #

▷ Wähle in der Menüleiste ⯈ (F5), um die Anwendung zu starten.

❯ Du befindest dich nun im Online-Modus, in dem du die Anwendungslogik zyklisch im Taskzyklus ausgeführt sehen kannst.

❯❯ Die an das RevPi Erweiterungsmodul angeschlossene Signallampe sollte nun jede Sekunde blinken.

Fehlerbehebung #

Fehler können in CODESYS im Protokoll des CODESYS Controllers festgestellt werden.

▷ Wähle Tools  CODESYS Control for Linux ARM64 SL  Logger

Die Protokolldatei kann auch über eine SSH-Terminalverbindung zum RevPi Gerät in Echtzeit aufgerufen werden:

sudo tail -f /var/opt/codesys/codesyscontrol.log

Weitere Ressourcen #