So wird Raspberry Pi 3 zum Industrie-Controller

Redakteur: Margit Kuther

Mit Raspberry Pi 3 können Entwickler schnell programmierbare Industrie-Steuerungen für Automatisierungs-Systeme kreieren, etwa fürs Prototyping. Wie, verrät dieser Beitrag.

Firma zum Thema

Raspberry Pi in der Industrie: Erweiterungsplatine Automation-HAT PIM213
Raspberry Pi in der Industrie: Erweiterungsplatine Automation-HAT PIM213
(Bild: Pimoroni)

Wenige kleine Unternehmen benötigen wirklich die Kombination von Robustheit, hoher I/O-Kapazität und komplexer Funktionalität, für die speicherprogrammierbare Steuerungen (PLCs) ursprünglich ausgelegt waren. Es sind zwar abgespeckte PLCs verfügbar, aber die Entwickler haben auch die Möglichkeit, auf der Suche nach effizienter industrieller Überwachung und Steuerung auf eine Vielzahl von kostengünstigen Hardware- und Softwarelösungen aus dem Open-Source-Bereich zurückzugreifen.

Ein Beispiel für eine derartige Lösung ist die kleine PC-Platine Raspberry Pi 3 mit den entsprechenden Zusatzplatinen, etwa für die Industrie. In diesem Artikel werden die Haupteigenschaften des Raspberry Pi 3 beschrieben, bevor wir näher auf die Verwendung für Überwachung und Steuerung eingehen.

Bildergalerie
Bildergalerie mit 6 Bildern

Raspberry Pi für die industrielle Steuerung

Für viele kleinere Betriebe bietet die Plattform Raspberry Pi 3 eine kostengünstige Lösung mit hoher Leistungsfähigkeit. Das Board Raspberry Pi 3 ist in der Lage, dedizierte industrielle Automatisierungsaufgaben zu bewältigen. Es kombiniert einen Broadcom-Arm -Cortex-A53-basierenden SoC-Baustein (System-On-Chip) mit Quadcore-CPU (1,2 GHz Takt) mit 512 KB L2-Cache, 1 GByte RAM und digitalen Schnittstellen mit den Netzwerkstandards Wi-Fi und Bluetooth. Geeignet ist auch das aktuelle Topmodell, der Raspberry Pi 3B+, das mit 1,4 GHz taktet.

Dank Header vielfältigste Einsatzmöglichkeiten

Des Weiteren verfügt Raspberry Pi über eine Stiftleiste mit 40 Kontakten, darunter 26 GPIOs (General Purpose Input/Output) für vielfältigste Erweiterungen und Steuerungslösungen, etwa Pulsweitenmodulatoren, Zeitgeber und serielle Schnittstellen. Entwickler können beliebige nicht zugewiesene GPIOs als Interrupt-Leitung, Eingang oder Ausgang mit bis zu 16 Milliampere (mA) (bis zu 50 mA insgesamt pro GPIO-Bank) verwenden.

Wie auch andere Mitglieder der Raspberry Pi-Familie macht der Raspberry Pi 3 so die Embedded-Entwicklung selbst für Anfänger relativ einfach und ist dabei so leistungsfähig, dass er auch die komplexeren und anspruchsvolleren Anforderungen von erfahrenen Entwicklern erfüllt.

Um den Raspberry Pi zu starten, müssen die Entwickler nur die Videoanschlüsse der Platine mit einem Display und die USB-Anschlüsse mit Tastatur und Maus verbinden. Was die Softwareentwicklung betrifft, so können die Entwickler auf einem breiten Ökosystem aufbauen, das in Teilen auf dem von der Raspberry Pi Foundation unterstützten freien Linux-basierenden Betriebssystem Raspbian basiert, das von einer Speicherkarte über die Mikro-SD-Schnittstelle geladen wird.

Hardware-Erweiterungen für die Automatisierung

Neben seiner Leistung und der einfachen Entwicklung macht die leichte Erweiterbarkeit seiner Funktionalität den Raspberry Pi für die vielfältigen Anforderungen der Automatisierung in der Industrie hervorragend geeignet. Wenn die Entwickler Hardwaremerkmale hinzufügen möchten, müssen sie nur eine als HAT (Hardware Attached on Top, aufgesetzte Hardware) bezeichnete Zusatzplatine auf die Raspberry Pi 3-Platine aufstecken.

Ebenso wie bei komplexeren industriellen Systemen bietet das HAT einen Standardansatz zur Identifikation und zur automatischen Konfiguration der GPIOs und Treiber je nach Bedarf. So können die Entwickler den Raspberry Pi im Handumdrehen durch einfaches Einstecken des Automation-HAT PIM213 von Pimoroni (Abbildung 1) für industrielle Anwendungen aufrüsten.

Das speziell für die Überwachung und Steuerung von Automatisierungssystemen gedachte Automation-HAT von Pimoroni verfügt über mehrere I/O-Kanäle, z. B. analoge und digitale Eingänge, Ausgänge mit Stromversorgung und Relaissteuerung. Die I/O-Kanäle können mit bis zu 24 V betrieben werden und bieten große Eingangs- und Ausgangspuffer. Die Relais-Ausgänge eignen sich für bis zu 2 A, was zur Steuerung von 24-V-Bausteinen mit geringer Leistungsaufnahme ausreicht, z. B. für das Magnetventil 81 546 001 von Crouzet.

Phyton-Modul für die Softwareentwicklung

Für die Softwareentwicklung mit dem Automation-HAT bietet Pimoroni ein passendes Python-Modul, über das die Hardwarefunktionen des HATs mit wenigen Codezeilen genutzt werden können. Wenn das Pimoroni-Modul in ein Python-Programm importiert wird, erstellt es Softwareobjekte für die analogen und digitalen Eingänge, den Relaisausgang und die LED-Steuerung, jeweils einschließlich der entsprechen Low-Level-Funktionen für das Lesen und Schreiben (Listing 1; alle Listings finden Sie auf der Seite von Digi-Key über folgenden Link:).

Jedes Objekt identifiziert dabei den entsprechenden Kanal und weitere zugehörige Daten. Das Objekt für den Analogeingang erhält z. B. beim Erstellen die maximale Spannung am zugeordneten Pin (siehe Funktion "init" in Listing 1). Das ADC-Objekt ruft zur Durchführung einer Analog-Digital-Wandlung das zu Grunde liegende ADC-Modul auf (ads1015.read in Listing 1). Das ADC-Modul führt wiederum die erforderlichen Low-Level-I2C-Transaktionen durch, die zum Einrichten des ADC und zur Durchführung einer Wandlung erforderlich sind, bevor es den Wert in verwendbarer Form zurückgibt (Listing 2).

Einfaches Ein- und Ausschalten eines Relais

Der Vorteil für den Entwickler ist, dass er zum Auslesen eines analogen Werts für das analoge Objekt einfach nur eine High-Level-Lesefunktion (.read()) für den angegebenen Analogeingang (.one) ausführen muss:

value = automationhat.analog.one.read()

Zudem unterstützt die Bibliothek dieses einfache Modell auch für andere HAT-Funktionen. So ist das Ein- oder Ausschalten eines Relais nur ein einfacher Aufruf:

automationhat.relay.write(1) # 1 = ON, 0 = OFF

Echtzeitfunktionalität für Raspberry Pi

Echtzeit: RTC-HAT 3013 von Adafruit
Echtzeit: RTC-HAT 3013 von Adafruit
(Bild: Digi-Key)

Automation-HATs bieten die für kleine industrielle Automatisierungs-Anwendungen erforderliche grundlegende I/O-Funktionalität. Endwickler können hier aus einem breiten Spektrum von verfügbaren HATs wählen, die etwa auch für spezielle Anwendungen, z. B. in der industriellen Automatisierung, benötigt werden. Das RTC-HAT 3013 von Adafruit bietet z. B. die Funktionalität einer Echtzeituhr (RTC).

Dies ist keine Standardfunktion der Platine selbst. Die Designer des Raspberry Pi erwarten, dass Entwickler die Verbindung des Boards mit dem Internet aufrechterhalten, wo es das standardmäßige Netzwerkzeitprotokoll NTP (Network Time Protocol) verwenden kann, um die Uhrzeit beizubehalten. Daher ist für Bausteine, deren Internetverbindung absichtlich oder versehentlich abbrechen kann, eine externe Echtzeituhr (RTC) wie das RTC-HAT 3013 von Adafruit erforderlich.

Beim Hinzufügen von Funktionen wie RTC sind die Entwickler bei der Entwicklung eines Bausteins für die industrielle Automatisierung nicht auf ein einziges HAT beschränkt. Auf einem Raspberry Pi können mehrere HATs gestapelt werden. Obwohl für die meisten HATs das Stapeln vorgesehen ist, müssen ggf. Stapel-Steckleisten wie die 2223 von Adafruit oder M2.5-Abstandhalter angebracht werden, um zu verhindern, dass die HATs sich gegenseitig oder die Grundplatine berühren.

Echtzeit mit dem Linux PREEMPT_RT-Patch

In manchen dieser Anwendungen benötigen die Entwickler möglicherweise eine genauere Zeitsteuerung als die, die von Konfigurationen mit RTC wie dem RTC-HAT 3013 von Adafruit geboten wird. Das RTC-HAT 3013 basiert auf dem RTC-IC DS3231 von Maxim Integrated. Dieser bietet zwei programmierbare Alarme und ein Rechteckwellen-Ausgangssignal.

Entwickler können mithilfe der Alarme Interrupts nach einer bestimmten Anzahl von Tagen, Stunden, Minuten und Sekunden generieren oder mithilfe der Rechteckwelle Interrupts mit deren Frequenz von 1 Hz generieren. Für Anwendungen, die periodische Interrupts mit höheren Frequenzen als 1 Hz erfordern, müssen geeignete Softwarefunktionen entwickelt werden, die den Systemzeitgeber des Prozessors einsetzen, oder es müssen spezielle Hardware-Counter eingebaut werden, die den Interrupt mit der gewünschten Häufigkeit generieren.

In Anwendungen, für die eine feinere Zeitauflösung erforderlich ist, wird die Forderung nach einer deterministischen Reaktionslatenz ebenfalls wichtig. Bei sehr hohen Frequenzen könnte die variable Reaktionslatenz des Standard-Raspbian-Betriebssystems die Genauigkeit beeinträchtigen. Zwar liefert das Standardsystem im Millisekundenbereich eine wahrscheinlich ausreichende deterministische Reaktion, aber möglicherweise sind Ansätze wie das Linux PREEMPT_RT-Patch nötig, wenn höhere und deterministischere Auflösungen gefordert sind.

Erweiterunsmodul für die Motorsteuerung

Mit Stapel-Steckleisten und Abstandhaltern kann ein HAT wie das Motor-HAT 2348 von Adafruit, das eine für viele industrielle Automatisierungsanwendungen benötigte Motoransteuerung mitbringt, einfach angebracht werden. Ein Motor-HAT 2348 kann zwei Schrittmotoren oder vier Gleichstrommotoren ansteuern. Tatsächlich können bis zu 32 dieser Zusatzplatinen aufeinander gestapelt werden und bis zu 64 Schrittmotoren oder 128 Gleichstrommotoren ansteuern (Abbildung 2).

Ebenso wie das Automation-HAT von Pimoroni kann das Motor-HAT 2348 von Adafruit mit ein paar einfachen Python-Befehlen programmiert werden. Die Softwarebeispiele von Adafruit für das Motor-HAT veranschaulichen sogar grundlegende Konstruktionsmuster für den Einsatz der Python-Threading-Moduls zur parallelen Ansteuerung mehrerer Motoren (Listing 3). Wenn über die verfügbaren HATs hinausgehende Funktionalität benötigt wird, so sind die Entwickler nicht auf das HAT-Format beschränkt.

Auch Arduino-Shields und Grove-Komponenten können RPi erweitern

Das Arduino-Shield DFR0327 von DFRobot, das Starter-Kit GrovePi+ von Seeed Technology und das Click-Shield MIKROE-2756 von MikroElektronika eröffnen den Entwicklern den Zugang zu einem breiten Spektrum von Arduino-Shields, Grove-Komponenten und MikroBUS-Click-Boards.

Mit diesen Boards können Entwickler schnell Unterstützung für Standard-CAN-Schnittstellen hinzufügen, indem sie das CAN-Click-Board MIKROE-988 von MikroElektronika einsetzen. Und mit dem Click-Board MIKROE-1296 von MikroElektronika kann Unterstützung für 4 bis 20 mA Stromschleifen hinzugefügt werden.

Fertige Software vereinfacht die Arbeit

Auch nach der Aufrüstung eines Raspberry Pi-Designs mit der erforderlichen Zusatzfunktionalität verlieren die Entwickler häufig Zeit mit dem Erstellen einer geeigneten Benutzeroberfläche. Beim Raspberry Pi 3 können die Entwickler das Gerät mit dem I/O-Cloud-Dienst von Adafruit verbinden, der eine grafische Oberfläche zum Feedback und zur Steuerung des Automatisierungsprozesses bereitstellt. Der Cloud-Dienst ermöglicht den Entwicklern, einfache Feeds mit Daten- und Prozessinformationen zu erzeugen (Listing 4) und Dashboards zu generieren, die die Überwachung und Steuerung von Projekten von jedem Browser, Desktop-PC, Smartphone oder einem beliebigen Mobilgerät aus erlaubt (Abbildung 3).

Diese Kombination von einfacher Softwareentwicklung, verschiedenen Zusatzplatinen und dem äußerst leistungsfähigen Raspberry Pi bietet eine geeignete Lösung für kleinere industrielle Automatisierungsanwendungen.

Fazit: Die Fähigkeiten herkömmlicher PLCs liegen normalerweise jenseits des Anforderungen und Budgets kleinerer Industrieunternehmen, die Kleinserien fertigen, bearbeiten und Prototypen herstellen. Bei diesen Anwendungen stehen die Betreiber normalerweise vor bescheideneren Anforderungen, die häufig im Bereich eines Raspberry Pi 3 liegen. Mit dem Raspberry Pi 3 und geeigneten Zusatzplatinen können schnell dedizierte industrielle Automatisierungssysteme implementiert werden, die die Anforderungen vieler kleiner Unternehmen erfüllen.

Dieser Beitrag ist ursprünglich auf unserem Partnerportal Elektronikpraxis erschienen.

(ID:45410555)