Erstellung einer eigenen drahtlosen speicherprogrammierbaren Steuerung (SPS)

Von Jacob Beningo

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Das industrielle IoT wächst schnell. Industrieingenieure benötigen jedoch maßgeschneiderte Flexibilität und Konnektivität, die über das hinausgeht, was herkömmliche speicherprogrammierbare Steuerungen (SPS) bieten. Die Entwicklung einer eigenen Lösung kann jedoch eine kostspielige und zeitaufwendige Angelegenheit sein, da nur wenige Industrieingenieure Erfahrung mit der Implementierung einer echten eingebetteten Lösung auf Mikrocontrollerbasis haben.

Dieser Artikel enthält zunächst eine kurze Einführung in das Thema SPS. Anschließend wird dargestellt, wie Entwickler eine eigene drahtlose SPS erstellen können, die zur Implementierung von Anwendungen mittels Kontaktplanlogik geeignet ist.

Einführung in speicherprogrammierbare Steuerungen (SPS)

Eine SPS ist ein robuster Computer, der zur Automatisierung eines bestimmten Prozesses in einer industriellen Anwendung verwendet wird. So können etwa das Fließband in einer Produktionsanlage oder IoT-Gebäudeanwendungen wie Beleuchtungssteuerungen automatisiert werden. Darüber hinaus gibt es jedoch noch viele weitere Automatisierungsmöglichkeiten.

Eine typische SPS-Architektur umfasst Folgendes (Abbildung 1):

  • Eine CPU mit internem RAM und ROM
  • Digitale und analoge Eingänge
  • Digitale und analoge Ausgänge
  • Netzteile für den industriellen Einsatz
  • Logikanwendung zur Ausführung des gewünschten Verhaltens

Schaltbild einer typischen SPS-Architektur mit einer Reihe analoger und digitaler Eingänge

Abbildung 1: Eine typische SPS-Architektur umfasst eine Reihe analoger und digitaler Eingänge, die von einer Logikanwendung verarbeitet und ausgeführt werden, die anschließend die Verhaltensweise für die analogen und digitalen Ausgänge steuert. (Bildquelle: Unitronics)

Obwohl am Markt eine große Auswahl an herkömmlichen SPS verfügbar ist, möchten viele Entwickler das Verhalten der SPS lieber selbst bestimmen oder selbst eine SPS entwickeln. Hierfür stehen ihnen verschiedene Optionen zur Verfügung. Eine besonders interessante Möglichkeit für Entwickler herkömmlicher Embedded-Systeme ist hierbei die Verwendung der offenen STM32-Entwicklungsumgebung.

Entwicklung einer drahtlosen SPS

Zur Entwicklung einer eigenen drahtlosen SPS benötigt ein Entwickler drei primäre Hardwarekomponenten:

  • Eine CPU
  • Signalkonditionierung für Ein- und Ausgangssignale
  • Ein Wi-Fi-Modul

Ein Entwickler kann alle diese Komponenten entweder von Grund auf neu konzipieren oder auf ein bestehendes Ökosystem zurückgreifen. STMicroelectronics hat die Erstellung einer SPS durch die Zusammenstellung eines STM32-Entwicklerpakets vereinfacht, in dem alle diese Komponenten enthalten sind und das außerdem die grundlegende Software zur Entwicklung von Anwendungen auf Basis der Kontaktplanlogik bereitstellt.

Betrachten wir nun diese primären Komponenten und die Bedingungen, die von ihnen eingehalten werden müssen, damit sie in einer industriellen Umgebung eingesetzt werden können.

Die erste zu betrachtende Komponente ist die CPU, in diesem Fall eine STM32F401RE von STMicroelectronics. Bei dem STM32F401RE handelt es sich um den 32-Bit-Prozessor Arm®-Cortex®-M4 mit 84 MHz, 512 MB Flash-Speicher für den Anwendungscode und 96 KB RAM. Der STM32F401RE befindet sich auf der Evaluierungskarte Nucleo-401RE, die außerdem über Arduino-Leisten als Schnittstelle für weitere Hardware und einen ST-Link zur Programmierung der Embedded-Software verfügt. Der gesamte Code der SPS wird auf der Nucleo-401RE ausgeführt.

Bild: Entwicklungskarte Nucleo-401RE von STMicroelectronics

Abbildung 2: Die Entwicklungskarte Nucleo-401RE bildet die Basis der SPS und bietet Platz für 512 MB Anwendungscode und 96 KB RAM für Daten. (Bildquelle: STMicroelectronics)

Die zweite Komponente, die für eine SPS benötigt wird, ist eine Signalkonditionierungskarte für Ein- und Ausgangssignale. Hierbei können die Entwickler entweder zwischen zwei Karten wählen oder beide verfügbaren Karten kombinieren, falls es die Anwendung erfordert.

Bei der ersten Karte handelt es sich um die für industrielle Anwendungen geeignete I/O-Erweiterungskarte X-Nucleo-PLC01A1 (Abbildung 3). Die X-Nucleo-PLC01A1 bietet acht konditionierte Eingangssignale über den Highspeed-Strombegrenzer CLT01-38SQ7 für Digitaleingänge. Der CLT01-38SQ7 schützt den Digitaleingang der SPS, indem er den am Eingang-Pin möglichen Strom begrenzt. Des Weiteren sind acht industrielle Ausgänge vorhanden, die über den monolithischen 8-Kanal-Treiber VNI8200XP konditioniert werden. Er bietet eine sehr geringe Stromaufnahme sowie eine integrierte SPI-Schnittstelle und einen hocheffizienten 100-mA-Mikropower-Abwärtsschaltregler. Der VNI8200XP verfügt über acht On-Chip-Halbleiterrelais, die jeweils bis zu 0,7 Ampere liefern können. Die X-Nucleo-PLC01A1 verfügt außerdem über eine LED-Anzeige für den Status der einzelnen Ein- und Ausgänge sowie über drei Alarmleuchten zur Anzeige zu hoher Temperaturen und weiterer Kartenfehler. Die X-Nucleo-PLC01A1 kommuniziert mit der Nucleo-401RE über eine SPI-Kommunikationsverbindung.

Bild: X-Nucleo-PLC01A1 von STMicroelectronics

Abbildung 3: Die X-Nucleo-PLC01A1 ist eine für industrielle Anwendungen geeignete Karte, die für eine SPS-Anwendung acht digitale Eingänge und acht digitale Ausgänge bereitstellt. (Bildquelle: STMicroelectronics)

Eventuell muss eine SPS auch hohe Ströme und analoge Signale verarbeiten können. Die X-Nucleo-PLC01A1 ist ausschließlich für digitale Signale geeignet. Um diese anderen Signale verarbeiten zu können, kann der Entwickler auf die X-Nucleo-OUT01A1 zurückgreifen (Abbildung 4). Auf der TX-Nucleo-OUT01A1 kommt das intelligente High-Side-Halbleiterrelais ISO8200BQ mit galvanischer Trennung und acht Kanälen zum Einsatz. Der große Unterschied beim Vergleich dieser Ausgangssignale mit denen der PLC01A1 liegt darin, dass die Karte mit Spannungen von 10,5 Volt bis 33 Volt betrieben werden kann, wobei die analogen und digitalen Signale galvanisch voneinander getrennt sind. Außerdem befinden sich auf der Karte diverse LED-Kontrollleuchten, die einen Ausfall der Kommunikation oder das Auslösen des Übertemperaturschutzes anzeigen.

Bild: X-Nucleo-OUT01A1 von STMicroelectronics

Abbildung 4: Die X-Nucleo-OUT01A1 ist eine für industrielle Anwendungen geeignete Karte, die für eine SPS-Anwendung acht Relaisausgänge bereitstellt, die für Ströme bis zu 0,7 Ampere geeignet sind. (Bildquelle: STMicroelectronics)

Die letzte Komponente, die zur Bereitstellung eines drahtlosen programmierbaren Mechanismusses oder zur Erstellung einer mit dem IoT verbundenen SPS verwendet werden könnte, ist ein Funk-Chip. Entwickler können das X-Nucleo-IDW01M1 verwenden, ein mit dem 802.11 b/g/n-Standard konformes Wi-Fi-Erweiterungsmodul, ebenfalls von STMicroelectronics (Abbildung 5). Das X-Nucleo-IDW01M1 ist FCC-, IC- und CE-zertifiziert und verfügt über eine integrierte Antenne, sodass es problemlos in ein Produktionssystem integriert werden kann.

Bild: X-Nucleo-IDW01M1 von STMicroelectronics

Abbildung 5: Das X-Nucleo-IDW01M1 ist ein für industrielle Anwendungen geeignetes Wi-Fi-Modul, das zur Bereitstellung von Wireless-Konnektivität in eine SPS integrier werden kann. (Bildquelle: STMicroelectronics)

Mit jeder dieser Komponenten kann ein Entwickler in der in Abbildung 6 gezeigten Reihenfolge eine Hardware-SPS zusammenbauen. Die Karten können umgekehrt installiert werden, ohne dadurch beschädigt zu werden. Dies bringt lediglich etwas zusätzliches Debugging mit sich. Für den Fall, dass der SPS kundenspezifische Hardware hinzugefügt werden muss, beispielsweise ein RS-485-Chip, können Entwickler ein Arduino-Prototyping-Shield wie beispielsweise das Proto-Shield von Olimex oder das Adafruit Proto-Shield verwenden.

Diagramm der Montagereihenfolge für die Entwicklungskarten von STMicroelectronics

Abbildung 6: Die Reihenfolge, in der die Entwicklungskarten von STMicroelectronics montiert werden müssen, um eine funktionsfähige SPS zu erhalten. (Bildquelle: Beningo Embedded Group)

Einrichten der SPS-Software

Die SPS muss vor ihrer Verwendung eingerichtet werden. Hierfür ist folgende Software erforderlich:

  • Die in die SPS eingebettete Software
  • Ein eingebetteter Compiler
  • Eine Anwendung basierend auf Kontaktplanlogik

Die in die SPS eingebettete Software FP_IND_PLCWIFI1 wurde von STMicroelectronics entwickelt und steht auf der STM-Website zum Download zur Verfügung. Sie enthält den benötigten Code, um die STM32F401RE zum Laufen zu bringen, sowie mehrere voreingestellte Konfigurationen, je nachdem, welche Hardware-Stacks benötigt werden. Die eingebettete Software, die auf http://www.st.com/en/embedded-software/fp-ind-plcwifi1.html heruntergeladen werden kann, bietet bereits drei vorab eingerichtete Projekte für die STM System Workbench, die IAR Workbench und das Keil MDK (Abbildung 7). Hiermit kann ein Entwickler die eingebettete Software kompilieren und auf der SPS bereitstellen.

Bild: Eingebettetes Softwareanwendungspaket für die SPS

Abbildung 7: Das eingebettete SPS-Anwendungspaket, das zur Ausführung der SPS benötigt wird. (Bildquelle: Beningo Embedded Group)

Nachdem die eingebettete Anwendung heruntergeladen wurde, kann sie in die IDE des gewünschten Compilers importiert und kompiliert werden. Der Code sollte vom Entwickler ohne Probleme kompiliert werden können. Die kompilierte Anwendung kann dann über eine herkömmliche USB-Verbindung zum PC in die SPS heruntergeladen werden.

Schließlich hat STMicro noch ein einfaches SPS-Anwendungsprogramm erstellt, das zur Erstellung von Kontaktplan-Anwendungen verwendet werden kann. Diese Anwendung ist für iOS und Android verfügbar. Suchen Sie in den App-Stores Ihres Mobilgeräts nach der ST PLC App und laden Sie sie auf Ihr Mobilgerät herunter.

Eine einfache Beispielanwendung

Sobald die eingebettete Software für die SPS ausgeführt wird, kann sich ein Entwickler auf die Entwicklung des Anwendungscodes mit der ST PLC App konzentrieren. Der Anwendungscode wird mithilfe der Kontaktplanlogik entwickelt. Ein Entwickler kann die Anwendung starten und ein neues Projekt basierend auf den Entwicklungskarten erstellen, die für den Hardware-Stack ausgewählt wurden (Abbildung 8).

Bild: SST PLC App

Abbildung 8: Über die ST PLC App kann ein Entwickler ein neues Projekt erstellen (rote Markierung links), den Projektnamen auswählen (rot-orange) und anschießend die verwendete Hardware konfigurieren (grün rechts). (Bildquelle: Beningo Embedded Group)

Sobald das Projekt konfiguriert wurde, steht dem Entwickler praktisch eine „leere Tafel“ zur Verfügung, um mit der Erstellung der Anwendung zu beginnen. Als erstes Projekt sollte geprüft werden, ob ein Eingangssignal gelesen und auf der Basis dieses Eingangssignals ein Ausgangssignal eingestellt werden kann. Dieser Test kann erstellt werden, indem der Entwickler auf „Add rung“ klickt und in der Anwendung die erforderliche Logik implementiert. Sobald dies geschehen ist, hat der Entwickler eine Programmzeile ähnlich der auf der linken Seite in Abbildung 9 erstellt.

Bild: SST PLC App-Software

Abbildung 9: Über die ST PLC App können Entwickler ihre Logik implementieren, um die Komponente wie gewünscht zu steuern (links). Sobald die Anwendung erstellt wurde, kann sie durch Klicken auf die Taste zum Senden der Anwendung drahtlos an die SPS übermittelt werden (rechts). (Bildquelle: Beningo Embedded Group)

Durch das Speichern der Programmzeile gelangt der Entwickler wieder zum Hauptbildschirm des Projekts. Von dort aus können Programmzeilen bearbeitet oder zusätzliche Programmzeilen in der Anwendung erstellt werden. Wenn die Anwendung fertig zur Bereitstellung ist, kann sie durch klicken auf die Taste zum Senden (rechts in Abbildung 9) drahtlos an die SPS-Anwendung übermittelt werden. Beachten Sie, dass das Mobilgerät des Entwicklers mit dem Zugangspunkt der SPS verbunden und ihr Port und ihre IP-Adresse konfiguriert sein müssen, damit die Anwendung erfolgreich übermittelt werden kann.

Tipps und Tricks zur Entwicklung einer drahtlosen SPS

Es gibt verschiedene Tipps und Tricks, die Entwickler beim Erstellen einer eigenen drahtlosen SPS befolgen können. Zu diesen zählen:

  • Falls die drahtlose Karte nicht funktioniert, prüfen Sie, ob sie im Stack korrekt ausgerichtet ist. (Die Karte muss in der richtigen Richtung eingebaut worden sein.)
  • Die Sicherheit des Systems kann verbessert werden, indem der SSID ein Sicherheitsschlüssel hinzugefügt wird.
  • Aktualisieren Sie die SPS, indem Sie das drahtlose Standardverhalten in den stationären Modus versetzen, und schalten Sie nur während einem Update auf den Zugangspunkt.
  • Ziehen Sie es in Erwägung, Protokolle für die Industriekommunikation wie RS-485 und Modbus zu ergänzen.
  • Um schnell in die Thematik speicherprogrammierbarer Steuerungen einzutauchen, ist es am besten, sich Gedanken darüber zu machen, wie ein interessantes Problem mit Hilfe einer SPS gelöst werden könnte.
  • Verwenden Sie die IAR Embedded Workbench für Arm, um die in die SPS eingebettete Software zu kompilieren. Die Toolchain ist für 30 Tage unbegrenzt nutzbar.

Fazit

Die Entwicklung einer eigenen SPS muss nicht notwendigerweise schwierig sein. Wie man sehen konnte, kann ein Entwickler die grundlegende Software einer SPS mit dem von STMicroelectronics bereitgestellten Ökosystem sehr schnell zum Laufen bringen. Anschließend kann die Anwendung problemlos modifiziert und angepasst werden, um verschiedensten Anwendungen und Herausforderungen zu genügen.

Das primäre Ziel ist es, den Code der Endanwendung per Kontaktplanlogik zu programmieren. Falls ein Entwickler jedoch über die Erfahrung und das nötige Wissen verfügt, kann er problemlos Anpassungen an der eingebetteten Software vornehmen. Dadurch erhält er ein Hybridsystem, das noch sehr viel leistungsfähiger und flexibler ist.

DigiKey logo

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

Über den Autor

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo ist ein Berater für eingebettete Software, der derzeit mit Kunden in mehr als einem Dutzend Ländern zusammenarbeitet, um ihr Unternehmen durch die Verbesserung von Produktqualität, Kosten und Markteinführungszeit dramatisch zu transformieren. Er hat mehr als 200 Artikel über Entwicklungstechniken für eingebettete Software veröffentlicht, ist ein gefragter Redner und technischer Trainer und verfügt über drei Abschlüsse, darunter einen Masters of Engineering der University of Michigan. Bei Interesse können Sie ihn unter jacob@beningo.com kontaktieren oder besuchen Sie seine Website www.beningo.com und melden Sie sich für seinen monatlichen Embedded Bytes Newsletter an.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey