CODESYS Programme am Raspberry-PI

logo-codesysJetzt gibt es auch eine Bibliothek und ein Beispielprogramm für die vorgestellten SPS-Baugruppen, um diese mit der Programmierumgebung CODESYS von 3S-Smart Software Solutions GmbH ansprechen zu können.

 

1. Softwarepakete herunterladen

CODESYS Control for Raspberry Pi SL

Die aktuelle Raspberry Runtime kann im CODESYS-Store heruntergeladen werden.
Der Demo-Betrieb läuft zwei Stunden ohne Einschränkungen und schaltet sich danach ab.
Eine Runtime-Lizenz ohne Laufzeitbeschränkung gibt es für 35€ plus MWSt.
http://store.codesys.com/codesys-control-for-raspberry-pi-sl.html

CODESYS Development System

Zum Programmieren benötigt man das CODESYS Development System V3.
Dieses findet man ab jetzt auch im CODESYS-Store.
http://store.codesys.com/codesys.html

Horter & Kalb Package für I2C-Baugruppen

Über diese Bibliothek können die Baugruppen angesprochen werden.
Horter_Kalb_Raspi_Support_1.0.0.0 (2815 Downloads)

Wenn Sie die Version im CODESYS-Store herunterladen funktioniert auch das automatische Update aus der Entwicklungsumgebung heraus.
http://store.codesys.com/horter-kalb-i2c-support-for-raspberry-pi.html

 

2. Raspberry-PI installieren

Die Installation des Raspberry-Image erfolgt mit dem Programm „Win32 Disk Imager“

Das empfohlene Betriebssystem ‚Raspian‘ kann über folgende Links bezogen werden:
Allgemeine Downloadseite: https://www.raspberrypi.org/downloads/
Aktuelle Version: https://downloads.raspberrypi.org/raspbian_latest

Zum ersten Booten am Besten eine Tastatur und einen Monitor anschließen.

Ist der PI hochgefahren kann man sich anmelden.

  • Login: pi
  • Password: raspberry (raspberrz bei einer deutschen Tastatur!)

 Mit dem Befehl

ifconfig 

oder

ip addr

findet man heraus welche IP-Adresse der PI von Ihrem DHCP-Server zugewiesen bekommen hat.

Von einem anderen PC aus sollte der PI jetzt auch auf einen ping antworten. Dazu mit cmd in der Programm-Ausführungszeile eine Eingabeaufforderung öffnen und den Befehl ping 192.168.xxx.yyy eingeben.

ping 192.168.xxx.yyy

Ping wird ausgeführt für 192.168.xxx.yyy mit 32 Bytes Daten:
Antwort von 192.168.xxx.yyy: Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.xxx.yyy: Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.xxx.yyy: Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.xxx.yyy: Bytes=32 Zeit<1ms TTL=64

Hat man die IP-Adresse vom PI herausgefunden kann man sich in Zukunft auch ohne Monitor und Tastatur von einem anderen PC aus über „Putty“ anmelden. Ach hierfür gibt es im Netz zahlreiche Beschreibungen.

 

3. Raspberry-PI konfigurieren

Um den PI zu konfigurieren verbinden Sie sich mit Putty auf den Raspberry, und melden sich an wie oben beschrieben.

Mit sudo raspi-config wird die Konfiguration des PI aufgerufen.

sudo raspi-config

sudo raspi-config

 

Falls der PI von der SD-Karte nicht bootet muss das Filesystem expandiert werden.

Anschließend müssen unter „Advanced Options“ folgende drei Pakete aktiviert werden

  • Device Tree
  • SPI
  • I2C
Device Tree, SPI, I2C

Device Tree, SPI, I2C

 

 

4. CODESYS Entwicklungsumgebung installieren

Installieren Sie die aktuelle Version des CODESYS Development System auf einem Windows-PC. Das sollte reibungslos ablaufen.

 

5. Packages installieren

Beim ersten Start wird die Entwicklungsumgebung eingerichtet. Anschließend müssen im „Package Manager“ zwei Pakete nachinstalliert werden.

  • CODESYS_Control_for_Raspberry_PI.package
    Diese .package-Datei ist im zip-Archiv vom PI-Image enthalten
  • Horter_Kalb_Raspi_Support.package
    Diese .package-Datei ist im Horter_Kalb_Raspi_Support.zip enthalten.
    Das Package kann kostenlos auf unserer Homepage oder im CODESYS Store heruntergeladen werden.

Beide Pakete nacheinander über „Tools – Package Manager“ mit dem Button „Installieren“ auswählen.

 

6. I2C-Demoprogramm öffnen

Im zip-Archiv sind zwei Programme, in denen die prinzipielle Funktion der Karten beschrieben sind.

  • Horter_Kalb_Raspi_Support_FB_Example.Project
  • Horter_Kalb_Raspi_Support_IO_driver_Example.Project

ALs erstes wollen wir das Projekt „Horter_Kalb_Raspi_Support_IO_driver_Example.Project“ öffnen. Hierbei sollten keine Fehlermeldungen mehr im Ausgabefenster erscheinen. Wenn doch fehlt eventuell noch eine Bibliothek, die aus dem Netz geladen und über den Package Manager nachinstalliert werden muss.

 

7. Online mit dem Raspberry-PI verbinden

Jetzt muss das Programm mit „Erstellen – Übersetzten“ oder F11 kompiliert werden. Ist dieser Vorgang Fehlerfrei abgeschlossen, verbinden wir uns über „Online – Einloggen“ oder Alt+F8 mit dem Raspberry-PI.

Jetzt kommt eine Meldung, dass noch kein aktiver Pfad gesetzt wurde. Drücken Sie den Button „Nein“ damit die Seite der Kommunikationseinstellungen geöffnet wird.

Im rechten Fenster wird vermutlich noch kein Verbindungspartner vorgeschlagen werden. Wir legen nun unseren PI als „Gerät“ an. Wählen Sie dazu „Gerät – Bevorzugte Geräte verwalten …“

In dem Fenster nun den Knop „Hinzufügen“ drücken und die IP-Adresse vom PI eintragen und anschließend auswählen.

Die Verbindung zur Runtime auf dem Raspberry-PI wird aufgebaut und die MAC-Adresse und die Runtime-Version werden angezeigt.

Jetzt mit „Online Einloggen“ fortfahren und das Programm zum PI übertragen.

Zum Schluss muss die SPS noch mit „Debug Start“ oder F5 in RUN geschaltet werden.

 

8. Webvisualisierung aufrufen

Verbinden Sie sich nun mit einem beliebigen Browser (evtl. auch Smartphone) auf die Adresse
http://192.168.xxx.yyy:8080/webvisu.htm

Im Explorer sollte nun folgendes Bild erscheinen.

Webvisualisierung der I2C-SPS Baugruppen

Webvisualisierung der I2C-SPS Baugruppen

Die LEDs der digitalen Eingabekarte (I2HE) zeigen den aktuellen Zustand der Signale an. Die Ausgänge der digitalen Ausgabekarte (I2HA) können mit den Tasten darunter geschaltet werden. An den fünf Messgeräten werden die Messwerte der analogen Eingangskarte (I2HAE) angezeigt. An den vier Potentiometern kann der Sollwert für die analogen Ausgangskarten (I2HAA) verändert werden.

 

Auf dem Raspberry kann die Seite auch direkt geöffnet werden. Tippen Sie z.B. im Epiphany Web Browser die Adresse  
http://localhost:8080/webvisu.htm
ein und Sie erhalten die gleiche Visualisierung lokal im Raspberry PI Web Browser.

Codesys WebVisu am Raspberry im Epiphany Web Browser

Codesys WebVisu am Raspberry im Epiphany Web Browser

 

Viel Spaß beim Entwickeln und Testen eigener CODESYS SPS-Programme.

 

 

Bookmark the Permalink.

32 Comments

  1. Hallo,
    wo kann ich im Codesys Globale Variablen deklarieren?
    Gruß, Peter

    • Jürgen Horter
      Jürgen Horter

      Hallo Peter,

      globale Variablen werden in einer Globalen Variablen Liste (GVL) deklariert.
      Um Diese anzulegen bitte rechtsklick auf Applikation.
      Globale Variablen deklarieren in Codesys

  2. hallo,

    kann ich jeden Raspberry mit codesys programmieren?
    Quasi PI 1-3…..

    Danke

  3. Hallo,

    ich bekomme auch Fehlermeldungen bim Laden der Projekte. Welche muß uch für Codesys 3.10 verwenden?

  4. Hallo,

    habe es hinbekommen. Es lag an der fehlenden Gerätebeschreibung….

    Unter „Gerät aktualisieren“ einfach „Codesys Control für Raspberry Pi“ auswählen und auf Gerät aktualiesieren klicken 😉

    Gruß
    Gacmanga

  5. Guten Tag,

    beim Öffnen des „Horter_Kalb_Raspi_Support_IO_driver_Example.Project“ Projekts bekomme ich 40 Fehler. Beim Übersetzen bekomme ich über 500 Fehler.
    Habe alles nach Anleitung gemacht.

    • Hallo,
      bitte das entsprechende Projekt zu Ihrer Codesys-Version von dieser Seite laden. Die Projekte sind fehlerfrei kompilieren worden. Wenn es trotzdem zu Fehlermeldungen kommt wurden vermutlich nicht alle erforderlichen Komponenten installiert.

      • Ich muss mich meinem Vorredner leider anschließen, ich hab die beiden Komponenten aus der Anleitung installiert und ich habe die selbe Wirkung: Wenn ich das Projekt öffne habe ich etwa 50 fehler, wenn ich es zu kompilieren versuche sind es die oben genannten 500+ Fehler.
        – Habe ich irgentwas übersehen außer:Codesys installieren, packages installieren und Demoprogramm laden? Muss der Pi zu dieser Zeit schon angeschlossen sein?
        – In anderen Kommentaren ist die Rede vom Erweitern von Zugriffsrechten, ich kann jedoch keine Option zu dem Thema im ganzen Programm finden, wo und wie kann ich besagte Zugriffsrechte einstellen?

        • Jürgen Horter
          Jürgen Horter

          Der PI muss nicht angeschlossen sein. Das Projekt muss sich ohne PI fehlerfrei kompilieren lassen.
          Die Zugriffsrechte auf die Verzeichnisse der Codesys-Installation und auf das Projektverzeichnis auf „Jeden“ erweitern.

  6. Hallo,

    ich bekomme leider keine Verbindung zu den I2C Modulen.
    ich habe je ein Modul vom Input, Output und Analog-Eingang.
    Adressen habe ich folgendermaßen im Programm vergeben:
    Input(8574): alle Jumper auf Off = 65
    Output(8574A): Jumper +8 auf ON alle anderen auf OFF = 120
    Analog-Eingang: Jumper +2 auf ON alle anderen auf OFF = 18

    leider wird im Programm nicht registriert wenn ein Eingang bzw. ein Ausgang geschaltet werden soll.
    Das ganze habe ich mit dem Programm Horter_Kalb_Raspi_Support_IO_driver_Example_3.5SP8P3.project getestet.

    das Programm Horter_Kalb_Raspi_Support_FB_Example_3.5SP8P3.project funktioniert zum Teil, der Input-Baustein funktioniert komischerweise als Ausgang-Baustein und der Analog-Eingang ganz normal.

    was mache ich falsch, wie funktioniert das mit der Adressierung?

    • Dazu kommt noch, dass der Interrupt vom Eingangs-Modul wenn ein Signal anliegt ständig leuchtet, der Interrupt soll doch nur kurz ein Signal rausgehen und danach wieder ausgehen?

    • Hallo,
      hier finden Sie die Adressen zu den Baugruppen: Weitere Baugruppen in CODESYS einfügen
      Normalerweise steckt der 8574 in der DO-Karte und der 8574A in der DI-Karte.
      Es geht aber auch so wie Sie es gemacht haben.
      Wichtig ist, dass Sie im Codesys die 7Bit Adresse eintragen
      Input(8574): alle Jumper auf Off = Adresse 32
      Output(8574A): Jumper +8 auf ON alle anderen auf OFF = Adresse 60
      Analog-Eingang: Jumper +2 auf ON alle anderen auf OFF = Adresse 9

  7. Hallo,
    ich muss 9 Spannungen bis max.30 Volt erfassen,die Spannungen kann ich ja durch einen Spannungsteiler in den gewünschten Bereich bringen.Reichen dann zwei 5Kanal Eingangskarten und die 2IC Schnittstelle oder kann man da was besseres empfehlen?
    Mfg

    • Jürgen Horter
      Jürgen Horter

      Hallo Christoph,
      Sie müssen den Spannungsteiler so anpassen dass maximal 2V am PIC anliegen.
      Ich würde den 30k Präzisionswiderstand lassen und anstatt des 120k einen 430k einbauen. Dann liegen bei 30V Uin am Analogeingang 1,956521739 V an.
      Sie brauchen zu den zwei Analog-In Modulen noch einen Repeater, der die Pegelwandlung vom PI (3,3V) auf unsere Module (5V) sauber erledigt.
      Beste Grüße
      JH

  8. Michael Müller

    Hallo,
    Microsoft hat ein Windows Betriebssystem für den Rasp entwickelt: Windows 10 IoT
    Meine Frage: Gibt es eine Möglichkeit, Codesys auf dem Rasp unter diesem OS zu nutzen?
    Gruß Michael

    • Hallo Michael,
      vom 3S-Support habe ich gerade die Nachricht erhalten, dass es in nächster Zeit nicht geplant ist, die Runtime für Windows 10 IoT zur Verfügung zu stellen.
      Gruß, JH

  9. Hallo,
    Versuche auch gerade, das Programm mit dem Pi zu verbinden. Installieren hat glaube ich geklappt. Mein Gateway leuchtet grün nur kann ich keine Verbindung zum Pi aufbauen… bei Gerätesuche finde ich zwar den PI aber beim Einloggen bricht es dann ab. Ich bin ziemlich ratlos, was ich tun kann. Die Fehlermeldung lautet: Keine Verbindung zum Gerät. Bitte Netzwerk erneut durchsuchen.

    Mit freundlichen Grüßen
    Lukas

  10. Christian Küken

    Ich habe hier ein Problem. Nach der Installation von Codesys und dem Öffnen des Beispiels „WebVisu“ habe ich es noch geschafft über die EInstellungen die IP Adresse des Raspis einzustellen und er wird auch gefunden. Jetzt muss ich die Einloggen Taste drücken und Codesys fragt mich, ob ich das Programm übertragen möchte.

    Leider laufen dann 573 fehler und 18 Warnung auf.
    Viele C0100 Warnung Bibliothek SysProcess wurde nicht zum Bibliotheksverwalter hinzugefügt usw.
    und noch mehr C0077 Unbekannter Typ: „VisuStructPoint“ usw.

    Was mache ich falsch?

    Vg

    Christian Küken

    • Jürgen Horter
      Jürgen Horter

      Beim ersten Start wird die Entwicklungsumgebung eingerichtet.
      Anschließend müssen im “Package Manager” zwei Pakete nachinstalliert werden.

      ◾CODESYS_Control_for_Raspberry_PI.package
      ◾Horter_Kalb_Raspi_Support.package

      Beide Pakete nacheinander über “Tools – Package Manager” mit dem Button “Installieren” auswählen.

      • Die Antwort kam noch per Mail:

        Hallo Herr Horter,

        vielen Dank für Ihre Hilfe. Es lag aber an der Bibliotheksverwaltung. Hier musste man einmal auf „Fehlende heunterladen“ klicken und schon war es erledigt.
        Scheinbar sind in der neuesten CoDeSys Version nicht alle Bibliotheken standardmäßig mit installiert. Ich habe hier zu wenig Erfahrung.
        Naja, jedenfalls klappt es jetzt und ich freue mich auf einige Experimente.

        Viele Grüße
        Christian K.

        • Hallo,

          Hab auch das Problem mit den Bibliotheken. Jedoch schlägt der versuch fehl mit „Fehlende herunterladen“
          Woran könnte das liegen?

          • Jürgen Horter
            Jürgen Horter

            Hallo,
            das liegt an den Zugriffsrechten.
            Zugriffsrechte auf jeden erweitern, dann sollte es klappen.

  11. 2 Fragen zu codesys und I2C DI/DO.
    Raspberry habe ich incl. dem Beispielprogramm von Horter zum laufen bekommen:
    1. Kann es sein, daß die Eingänge in der Visu invertiert dargestellt werden?
    2. Jeweils ein Di/DO Modul läuft mit der „Basis“ Adresse. Wie kann man weitere Module mit anderen Adressen konfigurieren?

    Mfg

    Gerhard

    • Jürgen Horter
      Jürgen Horter

      Hallo Gerhard,

      unsere digitalen IO-Karten verwenden die invertierte Logik, da der PCF8574 bei Spannung ein die Ausgänge HIGH schaltet und es damit zu unkontrollierten Zuständen kommen kann.
      Wenn Sie andere Karten verwenden einfach den Wert invertieren invers = 255 – Input.

      Um mehrere Karten zu adressieren bitte Demo- Projekt „Horter_Kalb_Raspi_Support_IO_driver_Example.Project“ am I2C-Master eine Karte kopieren und wieder einfügen.
      In der Spalte „Hardware address“ die Adresse der neuen Karte als Dezimalzahl eintragen. Z.B. 39hex = 57 dezimal.

      Dann sollte die zweite Karte funktionieren.

      Gruß, JH

  12. Hallo,

    Ich habe eine weitere Frage.
    Ich habe nur die Baugruppen verbaut und habe versucht die Test Projekte zu laden. Jedoch bekomme ich immer die Meldung “Raspberry I2C Digital Input 1.0.0.0 konnte nicht geladen werden, …, da sie nicht installiert ist.”
    Diese Bibliothek finde ich jedoch im Internet nicht. Der CODESYS Support kann mir auch nicht weiter helfen. Haben Sie diese Package Datei ? Wenn ja könnten Sie mir diese zusenden?

    Mit freundlichen Grüßen
    Johannes

    • Jürgen Horter
      Jürgen Horter

      Hallo Johannes,
      die Bibliothek wird nicht benötigt und kann aus dem Projekt gelöscht werden.

      Die Meldung
      „Eine oder mehrere Bibliotheken dieses Projekts konnten nicht geladen werden.
      Weitere Details hierzu finden Sie im Meldungsfenster“

      mit OK bestätigen.

      Anschließend im Meldefenster mit der rechten Maustaste
      „gehe zur Quelltextposition“
      anklicken.

      Dorn mit der rechten Maustaste auf die Bibliothek klicken und
      „löschen“
      auswählen.

      Jetzt kann das Programm kompiliert und übertragen werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.