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 (5116 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 (4278 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 )
     

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.

 

 

SPS-Software logi.cals für Raspberry-PI

Die Firma Logi.cals bietet eine Entwicklungsumgebung an mit der man SPS-Programme nach der Norm IEC 61131-3 erstellen und auf den PI ausführen kann.

logi.CAD 3 ist ein Werkzeug, mit dem die verschiedensten SPS (speicherprogrammierbare Steuerungen) gemäß der Industrienorm IEC 61131-3 programmiert werden können. logi.CAD 3 stellt komfortable Editoren für die IEC-Programmiersprachen ST (Strukturierter Text) und FBS (Funktionsbaustein-Sprache) zur Verfügung.

Eine Benutzerdokumentation zu logi.CAD 3 finden Sie hier:
IDE Documentation – Release-Notes für Version

1. Entwicklungsumgebung Logi.CAD 3 compact herunterladen

Auf der Homepage von Logi.cals können interessierte SPS-Programmierer einen Download-Link für das kostenlose Logi.CAD 3 compact anfordern.

In dem ZIP-Archiv ist die Entwicklungsumgebung für Win-32 und Win-64 enthalten. Einfach die richtige Version (32 oder 64 Bit) auf dem Rechner entpacken und starten.

2. Raspberry-Pi vorbereiten

In der Logi.cals Dokumentation finden Sie eine „Raspberry-Pi Kurzanleitung Hardware/Software“ sowie eine hervorragende Schritt für Schritt Anleitung mit der Überschrift „Raspberry Pi in Betrieb nehmen“ zur Installation und Konfiguration des Raspberry-Pi.
Ich erspare mir eine Ausführliche Anleitung. Hier nur die einzelnen Schritte im groben Ablauf

  • Aktuelle light-Version von Raspberry.org herunterladen und mit dem Win32 Disk Imager auf eine SD-Karte kopieren.
    Z.B. Raspberry Pi OS (32-bit) Lite (Minimal image based on Debian Buster)
    https://www.raspberrypi.org/downloads/raspberry-pi-os/Monitor und Tastatur anschließen und PI zum ersten mal booten lassen.
  • Anmelden mit dem Standard-Benutzer pi und Passwort raspberry (ev. raspberrz bei einer duetschen Tastatur)
  • IP-Adresse des PIs ermitteln mit dem Befehl ip a
  • Raspberry konfigurieren mit dem Befehl sudo raspi-config
    – Tastaturlayout umstellen auf Country=German, Layout=Germany
    – Zeitzone Berlin
    – SSH aktivieren
    – I2C aktivieren
    – Upgrade durchführen
  • I2C-Tools installieren sudo apt-get install i2c-tools
    – über den Befehl sudo i2cdetect -y 1 sollten nun angeschlossene I2C-Slaves angezeigt werden
  • Raspberry mit sudo shutdown -h 0 herunterfahren und mal ein Backup der SD-Karte machen.

3. Raspberry Pi konfigurieren

Die einzelnen Schritte von der logi.CAD 3 Documentation „Raspberry Pi konfigurieren“ nacheinander durchführen
In meiner sshd_config fand ich die angegebene Zeile PermitRootLogin without-password nicht.
Die Zeile PermitRootLogin yes einfach hinter die Zeile  #PermitRootLogin prohibit-password schreiben hat funktioniert.

Die Datei raspi-blacklist.conf war bei meinem PI leer bzw. schreibgeschützt. Mach mal weiter ohne diese zu verändern.
Mit PuTTY zum Raspberry Pi verbinden und als Anwender root mit dem neuen Passwort anmelden.

4. logi.RTS auf Raspberry Pi installieren und starten

Es muss immer exakt zu logi.CAD 3 passende Version von logi.RTS auf den PI installiert werden. Sie finden die Zugehörigkeitsliste unter folgendem Link: https://help.logicals.com/lco3docu/v2.9.0/user-documentation/de/release-notes-fuer-version

Folgen Sie den Anweisungen auf der Seite „logi.RTS auf Raspberry Pi installieren und starten„. Bei mir hat das ohne Probleme funktioniert.

5. DEMO-Projekt

Hier ein Demo-Projekt mit unseren SPS-Baugruppen logi.cals Demo-Projekt - RaspiPLC_IOTest.rar 270 kB (7705 Downloads )

  • Digitale Eingangskarte 8-Bit mit PCF8574A
I2HE, I2EOK
  • Digitale Ausgangskarte 8-Bit mit PCF8574
I2HA, I2AOK, I2AT, I2WS
  • Analoge Eingangskarte 5 Kanal 10-Bit
I2HAE
  • Analoge Ausgangskarte 4 Kanal 10-Bit
I2HAA