Funktionsbausteine für Codesys

Wir haben für alle unsere Module FBs geschrieben. Damit ist es möglich auch neuer Module, für die es keinen Gerätetreiber gibt, über Codesys anzusprechen.
Die FBs haben auch den Vorteil, dass sie über den Ausgang „Slave ok“ ein Signal bekommen, ob das Modul unter der angegebenen Adresse erreichbar ist.

Copyright:
Die Funktionsbausteine können bei uns per Mail angefordert werden.
Die FBs dürfen für eigene Projekte mit unseren Baugruppen kostenlos genutzt werden.
Eine Weitergabe oder Veröffentlichung des Codes ist ausdrücklich untersagt.

Wichtig:
Alle Module, die mit den FBs angesprochen werden sollen dürfen NICHT im Gerätebaum eingebaut sein.
Im Gerätebaum ist nur der I2C-Master vorhanden.

 

Digitale Eingangsmodule I2HE, I2EOK, I2E..

FB für I2C-Digital-IN Module

FB für I2C-Digital-IN Module

Der Baustein liest ein Byte von einem PCF8574 / PCF8574A

 

Digitale Ausgangsmodule I2HA, I2AOK, I2AT, I2AWS, I2A..

FB für I2C-Digital-OUT Module

FB für I2C-Digital-OUT Module

Der Baustein schreibt ein Byte zu einem PCF8574 / PCF8574A

 

Analoge Eingangsmodule I2HAE, I2AE8, I2AE18, I2ANU

FB für I2C-Analog-IN-Modul 5-CH 10-Bit

FB für I2C-Analog-IN-Modul 5-CH 10-Bit

Der Baustein liest 5 Analogwerte von der I2HAE-Karte

FB für I2C-Analog-IN-Modul 8-CH 10-Bit

FB_I2HAE8

Der Baustein liest 8 Analogwerte 10-Bit von der I2AE8-Karte

FB für I2C-Analog-IN-Modul 4-CH 18-Bit

FB für I2C-Analog-IN-Modul 4-CH 18-Bit

Der Baustein liest 4 Analogwerte von der I2AE18-Karte
An den Eingängen kann die Sample-Rate für jeden Eingang einzeln vorgegeben werden.
Für die Verstärkung gibt es auch einen Parameter.

FB für I2C-Analog-IN-OUT-Modul

FB für I2C-Analog-IN-OUT-Modul

Der Baustein liest 4 Analogwerte und schreibt einen Analogwert zum PCF8591

 

Analoge Ausgangsmodule I2HAA, I2ANU

FB für I2C-Analog-OUT-Modul 4-CH 10-Bit

FB für I2C-Analog-OUT-Modul 4-CH 10-Bit

Der Baustein schreibt 5 Analogwerte zur I2HAA-Karte

FB für I2C-Analog-IN-OUT-Modul

FB für I2C-Analog-IN-OUT-Modul

Der Baustein liest 4 Analogwerte und schreibt einen Analogwert zum PCF8591

 

I2C-Zählerbaugruppe I2HZ

FB für I2C-Zähler-Modul

FB für I2C-Zähler-Modul

Mit dem Baustein kann der Zählerstand von einem PCF8583 ausgelesen und zurückgesetzt werden.

Auf dem I2HZ-Modul sind zwei PCF8583 verbaut. Der Baustein muss im SPS-Programm zweimal mit unterschiedlichen Adressen aufgerufen werden.

 

I2C-PT100 / PT1000 Modul I2HPT

FB für I2C-PT100 / PT1000 - Modul

FB für I2C-PT100 / PT1000 – Modul

Der Baustein liest die aktuelle Temperatur von zwei PT100 oder PT1000 aus.

 

Multiplexer / Switch I2HSM, I2HSS

FB für I2C-Multiplexer / I2C-Switch

FB für I2C-Multiplexer / I2C-Switch

Mit dem Baustein erkennen Sie, ob ein INT an einem der vier Stränge geschaltet hat.
Über den Eingang Channel kann der Kanal beim Multiplexer PCA9544 bzw.
die Auswahl der Kanäle beim Switch PCA9545 eingestellt werden.

 

RFID Reader / Writer 

FB für I2C-RFID Reader / Writer

FB für I2C-RFID Reader / Writer

Mit dem Baustein kann die UID von einem RFID-Tag ausgelesen werden.
Außerdem können drei Blöcke Daten a 16 Byte auf den RFID-Transponder geschrieben und gelesen werden.

Die Karte ist gerade in der Entwicklung. Ein Prototyp mit unserem I2ARD-Modul ist bereits im Einsatz.

 

MC-Controller für Schrittmotoren

FB zum Ansteuern von Schrittmotor-Controller DM420, DM542 oder TB6600

FB zum Ansteuern von Schrittmotor-Controller DM420, DM542 oder TB6600

Mit dem Baustein und unserem I2ARD-Modul ist es möglich einen Schrittmotor-Controller z.B. den DM420, DM542 oder TB6600 anzusteuern und Positionen anzufahren.

 

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 P1
CODESYS 3.5 SP7 P2
CODESYS 3.5 SP7 P3
  Horter_Kalb_Raspi_Projekt_3.5SP7P1 (5488 Downloads )
Horter_Kalb_Raspi_Projekt_3.5SP7P2 (1779 Downloads )
Horter_Kalb_Raspi_Projekt_3.5SP7P3 (4984 Downloads )
CODESYS 3.5 SP8
CODESYS 3.5 SP8 P2
CODESYS 3.5 SP8 P3
CODESYS 3.5 SP8 P4
  Horter_Kalb_Raspi_Projekt_3.5SP8 (1901 Downloads )
Horter_Kalb_Raspi_Projekt_3.5SP8P2 (5159 Downloads )
Horter_Kalb_Raspi_Projekt_3.5SP8P3 (1526 Downloads )
Horter_Kalb_Raspi_Projekt_3.5SP8P4 (5107 Downloads )
CODESYS 3.5 SP9
CODESYS 3.5 SP9 P3
 3.5.9.0
3.5.9.30
Horter_Kalb_Raspi_Projekt_3.5SP9 (5256 Downloads )
Horter_Kalb_Raspi_Projekt_3.5SP9P3 (1688 Downloads )
CODESYS 3.5 SP10
CODESYS 3.5 SP10 P2
 3.5.10.0
3.5.10.20
Horter_Kalb_Raspi_Projekt_3.5SP10 (4886 Downloads )
Horter_Kalb_Raspi_Projekt_3.5SP10P2.zip (1561 Downloads )
CODESYS 3.5 SP11
CODESYS 3.5 SP11 P2
 3.5.11.0
3.5.11.20
 —
Horter_Kalb_Raspi_Projekt_3.5SP11Patch2 (1631 Downloads )
CODESYS 3.5 SP12
CODESYS 3.5 SP12P2
 3.5.12.0
3.5.12.20
Horter_Kalb_Raspi_Projekt_3.5SP12 (4674 Downloads )
Horter_Kalb_Raspi_Projekt_3.5SP12P2 (4709 Downloads )
 CODESYS 3.5 SP13  3.5.13.0 Horter_Kalb_Raspi_Projekt_3.5SP13 (4037 Downloads )
CODESYS 3.5 SP14 3.5.14.0 Horter_Kalb_Raspi_Projekt_3.5SP14 (4277 Downloads )
CODESYS 3.5 SP15
CODESYS 3.5 SP15P2
3.5.15.0
3.5.15.20
Horter_Kalb_Raspi_Projekt_3.5SP15 (4299 Downloads )
Horter_Kalb_Raspi_Projekt_3.5SP15P2 (4308 Downloads )
CODESYS 3.5 SP16P3 3.5.16.30 Horter_Kalb_Raspi_Projekt_3.5SP16P3 (4146 Downloads )
CODESYS 3.5 SP17P1
3.5.17.10 Horter_Kalb_Raspi_Projekt_3.5SP17P1 (3999 Downloads )
CODESYS 3.5 SP19P6 3.5.19.60 Horter_Kalb_Raspi_Projekt_3.5SP19P6 (68 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.

Ausnahme:
Falls Sie die Module über unsere Funktionsbausteine ansprechen möchten, dürfen diese NICHT im Hardwarebaum eingesetzt sein.
Siehe auch Artikel Funktionsbausteine für Codesys

Baugruppen im I2C-Master kopieren

Weitere I2C-Baugruppen in CODESYS einbauen

Weitere I2C-Baugruppen in CODESYS einbauen

Baugruppen adressieren

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

 

I2HSM – I2C-Multiplexer mit PCA9544A
Nur mit unserem Funktionsbaustein ansprechbar
PCF8574 8-Bit dez 8-Bit hex 7-Bit dez 7-Bit hex
OFF OFF OFF 224 E0 112 20
OFF OFF ON 226 E2 113 71
OFF ON OFF 228 E4 114 72
OFF ON ON 230 E6 115 73
ON OFF OFF 232 E8 116 74
ON OFF ON 234 EA 117 75
ON ON   OFF 236 EC 118 76
ON   ON   ON 238 EE 119 77

I2HSS – I2C-Switch mit PCA9545A
Nur mit unserem Funktionsbaustein ansprechbar
PCF8574 8-Bit dez 8-Bit hex 7-Bit dez 7-Bit hex
OFF OFF 224 E0 112 20
OFF ON 226 E2 113 71
ON OFF 228 E4 114 72
ON ON 230 E6 115 73

 

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 50€ 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.
Am Besten Sie installieren die 32-Bit Version.
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 (18275 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.