I2C-Package für neue CODESYS-Versionen

Beim Öffnen vom „Horter_Kalb_Raspi_Support_IO_driver_Example.Project“  kommt es zu mit der neuesten Version der CODESYS-Entwicklungsumgebung gibt es zahlreiche Meldungen. Hier wird beschrieben wie das Demo-Projekt hochgerüstet werden kann.

 

Projektumgebung hochrüsen

Die erste Meldung kommt kurz nach dem Öffnen des Projektes

„Die im Programm verwendete Compiler-Version ist nicht die neueste. Es wird empfohlen auf 3.5.7.20 zu aktualisieren“

 

Hier muss einfach die Aktualisierung bestätigt werden.

CODESYS Compiler-Version aktualisieren

CODESYS Compiler-Version aktualisieren

Nach einiger Zeit bekommt man im Ausgabefenster die Meldung

„3 Fehler 12 Warnung(en)“

 

 

CODESYS Runtime Version hochrüsten

Jetzt muss ein Update der  Codesys-Runtime-Version angestoßen werden.

  • Update suchen
  • Download starten
  • Installation starten
Update CODESYS Control for Raspberry PI

Update CODESYS Control for Raspberry PI

 

Gerät aktualisieren

Danach noch das Gerät (Device) aktualisieren.

Danach sollte sich das Programm wieder problemlos kompilieren lassen.

Gerät aktualisieren

Gerät aktualisieren

 

Visualisierungsprofil aktualisieren

Beim Update auf die Version 3.5SP8 kommt es eventuell zu folgender Fehlermeldung

Das gerade verwendete Visualisierungsprofil funktioniert mit der aktuellen Compilerversion nicht richtig. Bitte aktualisieren Sie das Visualisierungsprofil oder verwenden Sie eine ältere Compilerversion

 

Zum aktualisieren des Visualisierungsprofils gehen Sie auf

Projekt – Projekteinstellungen – Visualisierungsprofil

Dort wählen Sie die aktuelle Version aus 3.5SP8 aus und bestätigen mit weiter.

Danach sollte sich das Projekt mit F11 fehlerfrei übersetzen lassen.

Visualisierungsprofil ändern

Visualisierungsprofil ändern

 

Runtime-Version auf dem Raspberry aktualisieren

wenn beim Verbindungsversuch folgende Fehlermeldung erscheint

„Das ausgewählte Zielsystem stimmt nicht mit dem verbundenen Gerät überein“

muss die Runtime-Version auf dem PI aktualisiert werden.

Runtime auf dem Raspberry aktualisieren

Runtime auf dem Raspberry aktualisieren

 

Sollte es beim Übertragen zu folgender Fehlermeldung kommen

no space left on device

muss der Raspberry komplett neu aufgespielt werden.

 

Verschiedene Projektversionen zum Download

 

Programmversion   I2C Beispielprojekt

CODESYS 3.5 SP7 Patch1
CODESYS 3.5 SP7 Patch2
CODESYS 3.5 SP7 Patch3

 

Horter_Kalb_Raspi_Projekt_3.5SP7P1.zip (284 Downloads)
Horter_Kalb_Raspi_Projekt_3.5SP7P2.zip (187 Downloads)
Horter_Kalb_Raspi_Projekt_3.5SP7P3.zip (225 Downloads)

CODESYS 3.5 SP8
CODESYS 3.5 SP8 Patch2
CODESYS 3.5 SP8 Patch3
CODESYS 3.5 SP8 Patch4

 

Horter_Kalb_Raspi_Projekt_3.5SP8.zip (282 Downloads)
Horter_Kalb_Raspi_Projekt_3.5SP8P2.zip (162 Downloads)
Horter_Kalb_Raspi_Projekt_3.5SP8P3.zip (153 Downloads)
Horter_Kalb_Raspi_Projekt_3.5SP8P4.zip (192 Downloads)

CODESYS 3.5 SP9
CODESYS 3.5 SP9 Patch3

 3.5.9.0
3.5.9.30

Horter_Kalb_Raspi_Projekt_3.5SP9.zip (266 Downloads)
Horter_Kalb_Raspi_Projekt_3.5SP9P3.zip (166 Downloads)

CODESYS 3.5 SP10
CODESYS 3.5 SP10 P2

 3.5.10.0
3.5.10.20

Horter_Kalb_Raspi_Projekt_3.5SP10.zip (118 Downloads)
Horter_Kalb_Raspi_Projekt_3.5SP10P2.zip (79 Downloads)

     

 

 

 

Weitere Baugruppen in CODESYS einfügen

In den beiden Beispielprogrammen

  • Horter_Kalb_Raspi_Support_FB_Example.Project
  • Horter_Kalb_Raspi_Support_IO_driver_Example.Project

sind jeweils eine Baugruppe mit der Basisadresse projektiert.

  • I2HE – digitale Eingangskarte mit PCF 8574A =  Adresse 38hex
  • I2HA – digitale Ausgangskarte mit PCF 8574 = Adresse 20 hex
  • I2HAE – analoge Eingangskarte = Adresse 08hex
  • I2HAA – analoge Ausgangskarte = Adresse 58 hex

Sollen weitere Karten mit CODESYS angesprochen werden müssen diese im I2C-Master angelegt bzw. kopiert werden.

Weitere I2C-Baugruppen in CODESYS einbauen

Weitere I2C-Baugruppen in CODESYS einbauen

Wichtig:
Im Feld „Hardware address“ muss die I2C-Slaveadresse in dezimal als 7-Bit Adresse eingetragen werden.

Auf unseren Baugruppen sind die Adressen im 8-Bit dezimal Format aufgedruckt.

Hier die Adressen der Baugruppen als Tabelle.

Im CODESYS muss die 7-Bit Adresse als Dezimalzahl eingetragen werden.

 

I2HA – digitale Ausgangskarte mit PCF 8574
PCF8574 8-Bit dez 8-Bit hex 7-Bit dez 7-Bit hex
OFF OFF OFF 64 40 32 20
OFF OFF ON 66 42 33 21
OFF ON OFF 68 44 34 22
OFF ON ON 70 46 35 23
ON OFF OFF 72 48 36 24
ON OFF ON 74 4A 37 25
ON ON   OFF 76 4C 38 26
ON   ON   ON 78 4E 39 27

I2HE – digitale Eingangskarte mit PCF 8574A
PCF8574A 8-Bit dez 8-Bit hex 7-Bit dez 7-Bit hex
OFF OFF OFF 112 70 56 38
OFF OFF ON 114 72 57 39
OFF ON OFF 116 74 58 3A
OFF ON ON 118 76 59 3B
ON OFF OFF 120 78 60 3C
ON OFF ON 122 7A 61 3D
ON ON   OFF 124 7C 62 3E
ON   ON   ON 126 7E 63 3F

 

I2HAE – analoge Eingangskarte
Analog IN 8-Bit dez 8-Bit hex 7-Bit dez 7-Bit hex
OFF OFF OFF OFF 16 10 8 08
OFF OFF OFF ON 18 12 9 09
OFF OFF ON OFF 20 14 10 0A
OFF OFF ON ON 22 16 11 0B
OFF ON OFF OFF 24 18 12 0C
OFF ON OFF ON 26 1A 13 0D
OFF ON ON   OFF 28 1C 14 0E
OFF ON   ON   ON 30 1E 15 0F
ON OFF OFF OFF 48 30 24 18
ON OFF OFF ON 50 32 25 19
ON OFF ON OFF 52 34 26 1A
ON OFF ON ON 54 36 27 1B
ON ON OFF OFF 56 38 28 1C
ON ON OFF ON 58 3A 29 1D
ON ON ON   OFF 60 3C 30 1E
ON ON   ON   ON 62 3E 31 1F

 

I2HAA – analoge Ausgangskarte
Analog OUT 8-Bit dez 8-Bit hex 7-Bit dez 7-Bit hex
OFF OFF OFF OFF 176 B0 88 58
OFF OFF OFF ON 178 B2 89 59
OFF OFF ON OFF 180 B4 90 5A
OFF OFF ON ON 182 B6 91 5B
OFF ON OFF OFF 184 B8 92 5C
OFF ON OFF ON 186 BA 93 5D
OFF ON ON   OFF 188 BC 94 5E
OFF ON   ON   ON 190 BE 95 5F
ON OFF OFF OFF 208 D0 104 68
ON OFF OFF ON 210 D2 105 69
ON OFF ON OFF 212 D4 106 6A
ON OFF ON ON 214 D6 107 6B
ON ON OFF OFF 216 D8 108 6C
ON ON OFF ON 218 DA 109 6D
ON ON ON   OFF 220 DC 110 6E
ON ON   ON   ON 222 DE 111 6F

 

 

 

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 (2450 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.