RevPiLib in CODESYS einbinden

CODESYS ist eine Entwicklungsumgebung für speicherprogrammierbare Steuerungen (SPS).  Damit Du diese auch in Deinen RevPi Projekten einsetzen kannst, haben wir eine Bibliothek für CODESYS erstellt.

In diesem Tutorial haben wir ein Beispielprojekt vorbereitet, in dem Du die ersten Schritte lernst und erfährst, wie Du RevPiLib in CODESYS einbinden kannst.

Mit dem Download bestätigst Du diese Bedingungen:

Die RevPiLib Codesys Library ist experimentell und nur für Testzwecke gedacht,
weil es sich hierbei nicht um ein fertiges Produkt handelt.
Daher beachte, dass wir Dir keinen Support für die RevPiLib Codesys Library anbieten können.
Wenn Du die RevPiLib Codesys Library benutzt, geschieht dies auf Deine eigene Gefahr.

http://media.kunbus.de/media/support/RevPi.Codesys.Lib.zip

Das“CODESYS Development System“ ist kostenfrei. Du kannst damit Dein Projekt einrichten.

„CODESYS Control for Rapberry Pi SL“ ist ein Laufzeitsystem. Der Einsatz ist kostenpflichtig. Genauere Informationen dazu findest Du auf der Webseite von CODESYS.

Voraussetzungen:

  • Windows-PC
    • Der PC befindet sich in Deinem Netzwerk
    • Du hast darauf CODESYS Development System V3 installiert.
    • Du hast „CODESYS Control for Raspberry Pi SL“ heruntergeladen.
  • RevPi Core/Connect
    • Befindet sich in Deinem Netzwerk
    • Die IP-Adresse ist bekannt

Ein neues Projekt anlegen

Öffne CODESYS Development System.

  • Klicke auf „Datei“.
  • Klicke auf „Neues Projekt“.

Folgendes Fenster öffnet sich:

  • Wähle aus den Vorlagen ein „Leeres Projekt“.
  • Gib einen Dateinamen  ein.
  • Wähle einen Speicherort aus.

CODESYS Control Laufzeitsystems auf dem RevPi installieren

  • Kicke auf „Tools“.
  • Klicke  auf „Package Manager“.

  • Klicke auf „Installieren“
  • Wähle „CODESYS Control for Raspberry Pi SL“ aus. Du hast dieses Paket ja bereits in den Vorbereitungen heruntergeladen.
  • Klicke Auf „Öffnen“
  • Ein Installations-Dialog öffnet sich.
  • Befolge die Installations-Schritte.

Wenn das Paket erfolgreich installiert wurde, taucht es im Package Manager unter „Bereits installierte Packages“ auf:

  • Jetzt kannst Du das Laufzeitsystem auf den RevPi übertragen.
  • Klicke auf „Tools“.
  • Klicke auf „Update Raspberry Pi“.

Folgendes Fenster öffnet sich:

  • Gib Deine Anmeldedaten und die IP-Adresse Deines RevPi-Moduls an.
  • Wähle die gewünschte Paketversion aus.

  • Klicke auf installieren.

Steuerungsart auswählen

  • Klicke mit der rechten Maustaste auf Dein Projekt. Du findest es im Fenster „Geräte“.
  • Klicke auf „Gerät anhängen“

  • Wähle „CODESYS Control for Raspberry Pi“ mit einem Doppelklick  aus.

  • In Dein Projekt wurden jetzt verschiedene Komponenten importiert:

RevPiLib installieren

    • Klicke auf „Tools“.
    • Klicke auf „Package Manager“.

 

      • Klicke auf „Installieren“.
      • Wähle „RevPiLib.package“.
      • Wenn die Installation abgeschlossen ist, steht die Bibliothek unter „Target -> RevPi“ zur Verfügung. Damit Du sie auch verwenden kannst, musst Du sie dem Projekt hinzufügen.

  • Öffne den Bibliotheksverwalter mit einem Doppelklick.
  • Klicke auf den Reiter „Bibliothek hinzufügen“.

  • Klicke auf „Erweitert“
  • Klicke auf „Target“
  • Klicke auf „Sonstige“.
  • Klicke auf  „RevPi“.
  • Wähle „Revolution Pi IO Module Interface“ aus.
  • Klicke auf „Ok“.

Die Bibliothek befindet sich jetzt in Deinem Projekt. Du kannst sie jetzt verwenden. Im folgenden Abschnitt erklären wir Dir anhand eines Beispiels wie das geht.

RevPiLib im Projekt verwenden

  • Klicke mit der rechten Maustaste auf „Application“.
  • Klicke auf „Objekt hinzufügen“.
  • Klicke auf POU (Programm-Organisationseinheit)
  • Folgendes Fenster öffnet sich:

Für dieses Beispiel verwenden wir die Implementierungssprache „Continuous Function Chart“ (CFC).

  • Klicke auf „Hinzufügen“.

Du hast jetzt eine Programm-Organisationseinheit angelegt. In dieser steht der Quellcode Deines Programms.

  • Klicke mit der rechten Maustaste auf „Application“.
  • Klicke auf „Objekt hinzufügen“.
  • Klicke auf GVL (Globale Variablenliste).
  • Gib einen Objektnamen ein.
  • Klicke auf „Hinzufügen“.

Die benötigten Inhalte für die Variablenliste generieren wir aus PiCtory.

  • Öffne PiCtory

Stelle auf dem Configuration Board folgende Geräte zusammen:

      • RevPi Core oder Connect
      • RevPi DIO

  • Klicke auf „File“.
  • Klicke auf „Export“.

Folgendes Fenster öffnet sich:

Wähle den Exporttyp  e04.json . Dieser Export enthält ST konforme Definition von globalen Variablen mit Initialwerten.

  • Klicke auf „Show Only“
  • Klicke auf „Ok“

  • Folgendes Fenster öffnet sich:

  • Kopiere die Variablen.
  • Ab jetzt geht’s wieder in CODESYS weiter:
  • Schalte die Ansicht der GVL auf die „Textuelle Ansicht um“

  • Füge die Variablen aus PiCtory hier ein.

Hinweis!

Sobald die Konfiguration in PiCtory geändert wird, muss die Konfiguration erneut exportiert und in die Globale Variablenliste kopiert werden.

Da jetzt alle Daten vorhanden sind, die wir zum Arbeiten benötigen, können wir das POU-Objekt mit Funktionsblöcken befüllen.

  • Öffne das POU.
  • Der Arbeitsbereich unterteilt sich hier in folgende Fenster:

      1. Werkzeuge
      2. Variablen-Deklaration
      3. Routing
  • Ziehe den Funktionsblock „Baustein“ aus dem Fenster „Werkzeuge“ in das Fenster „Routing“
  • Klicke auf die Fragezeichen über dem Baustein.

  • Wähle aus der RevPiLib den Baustein REVPI_CPI_IN FB aus.

  • Gib einen Namen für den Funktionsbaustein ein.

  • Lege auf diese Weise noch diese Funktionsbausteine an:
      • REVPI_PIDI
      • REVPI_PIDO
      • RPI.REVPI_CPI_OUT
  • Stelle die korrekte Ausführungsreihenfolge ein. Die aktuelle Reihenfolge siehst Du in der rechten, oberen Ecke des Funktionsbausteins. Durch einen Rechtsklick auf den Funktionsbaustein kannst Du die Reihenfolge ändern.

Die Funktionsbausteine REVPI_PIDI und REVPI_PIDO  brauchen ein Offset. Diesen haben wir über den Export in PiCtory erzeugt und in die Globale Variablenliste kopiert.

  • Ziehe den Funktionsblock „Eingang“ aus dem Fenster „Werkzeuge“ in das Fenster „Routing“.
  • Wähle für diesen Baustein die globale Variable aus.

  • Verbinde mit der Maus die Eingangsbausteine mit den Offset-Pins.
  • Verbinde mit der Maus den Eingang In_01 des  Funktionsbausteins DI  mit dem Ausgang Out_01 des Funktionsbausteins DO.

So sollte Dein Ergebnis aussehen:

Eine Task erstellen

Um das Programm POU ausführen zu können benötigen wir noch das Objekt „Task“ In diesem Objekt kannst Du Bedingungen für den Start der Task und die Aufrufe der Task festlegen.

  • Klicke mit der rechten Maustaste auf „Application“.
  • Klicke auf „Objekt hinzufügen“.
  • Klicke auf „Taskkonfiguration“.
  • Doppelklick auf die Task.
  • Klicke auf „Aufruf hinzufügen“.

  • Wähle die erstellte POU aus.

Das Programm wird jetzt zyklisch abgerufen.

Projekt auf den RevPi aufspielen

  • Klicke auf „Erstellen“.
  • Klicke auf „Übersetzen“.

  • Wähle „CODESYS_Control_forRaspberry_Pi“ im Projektbaum mit einem Doppelklick aus. Dadurch wird das RevPi-Gerät ausgewählt, auf das wir das Projekt laden möchten.

  • Klicke auf „Netzwerk durchsuchen“.

Dein RevPi wird jetzt angezeigt.

  • Wähle den RevPi aus und klicke auf „OK“.

  • Klicke auf „Online“.
  • Klicke auf „Einloggen“.

  • Das Projekt wird jetzt auf den RevPi geladen.

Es ist möglich, dass nicht alle Übersetzungsinformationen vorliegen. In diesem Fall erhältst Du folgende Fehlermeldung:

  • Bestätige mit „Ja“.

Sollte sich Deine Steuerung im Modus „Stop“ befinden, kannst Du sie mit der Schaltfläche „Start“ oder der Taste F5 in den Modus „Run“ versetzen.

Unser kleines Beispielprogramm läuft jetzt auf dem RevPi Modul. Wenn Du jetzt am Input 1 des DIOs 24 V anlegst, wird der Zustand des Eingangs auf den Ausgang kopiert und der Output 1 wird auf „High“ geschaltet.