Mit seiner preiswerten Hardware bietet sich der Raspberry Pi sowohl als Experimentiersystem für Maker und im akademischen Umfeld an, wird aber auch in Unternehmen gerne als Prototyping-System eingesetzt. Kommerzielle Anbieter sind auf den Zug aufgesprungen und bieten Hardware- und Software-Erweiterungen an, die auch für professionelle und industrielle Anwender nützlich sind. Zu den Pionieren auf diesem Gebiet zählt Mathworks, die sich sehr stark bei der Unterstützung von Universitäten engagieren und ihre Produkte Matlab und Simulink relativ kostengünstig an wissenschaftliche Institutionen lizenzieren.
Mathworks unterstützt den Raspberry Pi mit eigenen Zusatzpaketen bzw. Bibliotheken. Für Matlab existiert ein Support Package, mit dem der Raspi als ferngesteuertes Sensorsystem eingesetzt werden kann. Das Support Pa¬ckage stellt eine Kommunikationsverbindung mit dem Raspi über WLAN und Ethernet her (Bild 4), um dann Daten von den Sensoren oder der Peripherie des Raspi einzulesen. Diese Daten können dann auf dem Entwicklungsrechner mit Matlab analysiert, verarbeitet und dargestellt werden. Das Matlab Support Package enthält Bibliotheken mit Matlab-Funktionen für das Raspberry Pi Camera Board, das I2C-Interface, das SPI-Interface, die serielle Schnittstelle, die GPIO-Pins und die Linux-Befehlszeile. Die Daten dieser Geräte bzw. Anschlüsse können auf den Entwicklungsrechner übertragen werden. Mit weiteren Add-ons wie der DSP System Toolbox und der Image Processing Toolbox können die Daten auf dem Host-System verarbeitet werden. Eine lokale Installation von Matlab auf dem Raspberry Pi ist nicht möglich.
Das sieht anders aus beim Simulink Support Package. Hier wird eine echte Cross-Entwicklung möglich. Das bedeutet: Auf dem Entwicklungsrechner wird mit den Simulink-Blöcken eine Schaltung entworfen, die dann – ebenfalls auf dem Entwicklungsrechner – simuliert wird. Funktioniert alles zur Zufriedenheit, dann wird der Code auf den Raspberry Pi übertragen und läuft dort eigenständig. Das Support-Paket erweitert Simulink durch Blöcke, die die I/O-Anschlüsse des Rasp-berry Pi ansteuern und auslesen. Auch ein interaktiver Modus ist möglich, bei dem die Parameter geändert werden können, während der Pi das Simulink-Programm ausführt. Mit der Audio-Schnittstelle verfügt der Raspberry Pi über einen D/A- und A/D-Umsetzer, dessen Signale durch Simulink gelesen und geschrieben werden können, ferner werden die Kamera- und die Display-Schnittstelle und die GPIO-Pins unterstützt. Über die Netzwerkschnittstellen können UDP-Pakete gesendet und empfangen werden, außerdem können mit Simulink Daten an die Cloud-Plattform Thingspeak gesendet werden.
Einsatz als SPS
Codesys ist das Synonym für Soft-SPS auf dem PC. Auch für den Raspberry Pi gibt es ein SPS-Laufzeitsystem, das allerdings nicht für den Produktiveinsatz gedacht ist, sondern für Unterricht und Prototyping. Als Grund hierfür gibt 3S, der Hersteller von Codesys, an, dass das Raspi-Laufzeitsystem nicht echtzeitfähig ist. Der Jitter ist abhängig von diversen Faktoren, u.a. den parallel ausgeführten Linux-Applikationen. Er liegt im Idealfall bei etwa 50 µs mit Maximalwerten bei etwa 400 µs.
Eine speicherprogrammierbare Steuerung arbeitet in Zyklen: Zunächst werden alle Eingänge eingelesen (Prozessabbild), dann findet die Verarbeitung des SPS-Programms statt und die Ergebnisse werden auf die Ausgänge geschrieben. Damit dieses Prinzip in dynamischen Regelkreisen funktioniert, muss jeder Zyklus innerhalb einer festen Zeit abgearbeitet werden, sonst gerät das System aus dem Tritt. Nun wird man den Raspberry Pi aber nicht dafür einsetzen, die schnellen Antriebe in irgendwelchen Druck- oder Verpackungsmaschinen zu synchronisieren. Oft geht es nur darum, ein paar LED-Anzeigen ein- oder auszuschalten, Ventile oder Relais zu betätigen und eingelesene Sensorwerte anzuzeigen. Dafür eignet sich Codesys auf Raspberry Pi hervorragend.
Das Codesys-Laufzeitsystem wird in das Raspbian- bzw. Debian-Linux des Raspi integriert und mit jedem Systemstart automatisch geladen. Damit später alles funktioniert, sind ein paar Vorkehrungen auf dem Raspi zu treffen, etwa dass SPI und I2C aktiviert sind, eine feste IP-Adresse zugewiesen ist und noch ein paar Sachen mehr, die auf der Codesys Website genau beschrieben sind. Anschließend kann das Laufzeitsystem per IP-Verbindung vom Entwicklungsrechner auf den Raspberry Pi übertragen werden. Auch hier findet – wie bei Simulink – eine Cross-Entwicklung statt: Entwickelt wird auf einem PC, das entwickelte Programm läuft auf dem Zielsystem, dem Raspberry Pi, ab.
Die unlizenzierte Version der Laufzeitumgebung beendet sich nach zwei Stunden von selbst, aber auch eine Lizenz, mit der das System dann zeitlich unbefristet läuft, ist mit 35 Euro praktisch für ein Taschengeld zu haben. Das Codesys-Paket enthält einige Beispielanwendungen, die den Funktionsumfang zeigen. Ein Bestandteil von Codesys ist z.B. der integrierte Webserver „Webvisu“, der Prozessdaten visualisiert (Bild 5). Im Browser können der Status von Ein-/Ausgängen, numerische Werte und Kurvenverläufe in verschiedenen Visualisierungen angezeigt werden. Ebenfalls über den Webserver werden Einzelbilder oder ein Videostream angezeigt, wenn am Raspberry Pi eine Kamera angeschlossen ist. Ein weiteres Beispiel zeigt die Ansteuerung von GPIO-Signalen und deren Visualisierung im Webbrowser. Weitere Beispiele setzen Hardware-Erweiterungen voraus, mit denen sich Ein-/Ausgänge in der SPS-üblichen Form eines Prozessabbilds einlesen lassen, Informationen auf einem Zeilen-Display darstellen lassen, ein Servomotor angesteuert wird usw. Die Möglichkeiten mit Codesys sind sehr umfangreich und die erforderliche Zusatz-Hardware, z.B. von PiFace, ist preiswert.
Ein ähnliches System wie Codesys ist das Soft-SPS-Programmiersystem von logi.cals. Auch von dieser Firma gibt es ein Evaluierungssystem für den Raspberry Pi. Hier wird mit der Entwicklungsumgebung logi.CAD 3 das SPS-Programm erstellt. Eine schlanke Version, logi.CAD 3 compact, kann kostenlos von der Webpräsenz des Herstellers heruntergeladen werden. Auf dem Pi wird auch hier eine Runtime installiert, deren kostenlose Version nach einer Stunde den Dienst einstellt.