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 #
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.
❯ 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.
▷ 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. Siehe auch Regeln für die Geräteanordnung. |
▷ 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:
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:
Funktionsweise des Beispielprogramms Blinking Light
Bausteine:
-
TON_0undTON_1sind Timer mit Einschaltverzögerung (TON = Timer On-Delay), die mit einer Periode von 1 s konfiguriert sind. -
Q_Lampist die Bool’sche Variable, die mit dem digitalen Ausgang für die Signallampe am RevPi DIO verknüpft ist. -
NC-Kontakt
TON_1.Qist der Öffner-Kontakt (leitet nur, wennTON_1noch nicht abgelaufen ist).
Ablauf:
-
TON_0startet, nach 1 s wirdTON_0.QTRUE undQ_LampEIN. -
TON_1startet, nach 1 s wirdTON_1.QTrue, Öffner-Kontakt öffnet undQ_Lampgeht AUS. -
TON_1TRUE sperrt den Öffner-Kontakt in Zeile 1. -
TON_0wird 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. |
▷ 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.
▷ 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
Die Protokolldatei kann auch über eine SSH-Terminalverbindung zum RevPi Gerät in Echtzeit aufgerufen werden:
sudo tail -f /var/opt/codesys/codesyscontrol.log