Bildung, Konzepte, digitale Transformation

Blog, Tutorials

Spaß mit SPS

Ich nehme aktuell an einer dreitägigen Schulung zum Thema „SPS mit Siemens SIMATIC und dem TIA-Portal“ teil. Als Vorbereitung für ein Projekt in der Technikerschule, aber ggf. auch für den Einsatz bei den Fachinformatikern mit der (neuen) Fachrichtung „Digitale Vernetzung“.

Dabei habe ich ein paar Lessons Learned, die ich hier zusammenfassen möchte:

  • Es ist gut, sich mal wieder mit einer Thematik tiefergehender auseinanderzusetzen und dafür drei Tage Zeit zu haben.
  • SPS programmieren heißt Logik-Bausteine verbinden … muss man auch erstmal wissen – im Informatikstudium wäre ein Modul hierzu sicherlich praktischer als Theo I gewesen.
  • Für die Arbeit mit Siemens gib es noch eine ganz gute Übersichts- und Materialseite.

Parallel zu der Veranstaltung habe ich mich auch auf eigene Faust mit einem Projekt befasst, welches schon seit Längerem auf meinem Pile-of-Shame liegt: OpenPLC mit dem Arduino. Ich habe nun also sowohl einen Einblick in das TIA-Portal erhalten, als auch in eine freie Alternative kennengelernt.

Während für den Betrieb mit der Simatic ein Modul mit CPU den Betrieb übernimmt und Ein- bzw. Ausgabeerweiterungen ansteuert, wird dies bei OpenPLC in meinem Beispiel mit einem Notebook (CPU) und einem Arduino (Ein- und Ausgabe) dargestellt. Viele weitere Einplatinencomputer oder Mikrokontroller können hierzu kombiniert oder eingesetzt werden.

Auf dem Notebook wird die OpenPLC-Runtime installiert und gestartet. Außerdem nutze ich den OpenPLC-Editor auf dem Notebook für die Programmierung der SPS-Logik. Nach dem Übertragen via Webanwendung auf den Arduino (dieser muss mit dem Notebook verbunden bleiben und funktioniert über die Runtime) läuft die Logik.

Logik der Bedarfsampel als FUP

Ein Beispiel war auch schnell gefunden (Kudos an Ronnie Berzins. https://www.youtube.com/watch?v=U7uHy5mz5QE): eine Bedarfsampel für Fußgänger. Die im Video gezeigte FUP konnte in OpenPLC mit etwas Recherche zu den Timer-Angaben nachgebaut werden.

Arduino Uno als Client des OpenPLC

Der Arduino musste als Client gemäß der OpenPLC-Anleitung mit dem entsprechenden Script bespielt werden. Anschließend konnten dann über die Runtime-Anwendung via Browser SPS-Anwendungen auf den Arduino übertragen werden. Das Anschließen der LEDs sowie eines Tasters funktionieren wie jeher, an dieser Stelle also nichts neues.

  • 1x LED rot für Fußgänger & 1x LED grün für Fußgänger
  • 1x Taster für Fußgänger
  • 1x LED rot für Straßenverkehr & 1x LED gelb für Straßenverkehr

Durch die Nutzung des OpenPLC hat ein Arduino Uno lediglich vier digitale Ausgänge, weshalb aus dem zugrundeliegenden Beispiel die blaue LED zur Anzeige des „Signal kommt“ am Button verzichtet werden musste.

Ein schönes Beispiel, um erste Gehversuche mit SPS im Allgemeinen und OpenPLC im Speziellen anzugehen. Durch entsprechend ausführliche Dokumentation auch sicherlich für einen Unterrichtseinsatz geeignet. So z.B.:

  • Informieren:
    • Messung der Funktionsweise und Timings in der echten Welt
    • Dokumentation mit UML-Diagrammen
  • Planen
    • Vorgehen strukturieren und Reihenfolgen festlegen
  • Entscheiden
    • Erstellung eines UML Zustandsdiagramms als Verhaltenszustandsdiagramm
    • Erstellung eines Timing-Diagramms zur Veranschaulichung der Takte
    • Schematischer Aufbau der Komponenten am Arduino
  • Ausführen
    • ggf. Installation der benötigten Software
    • Erstellung der SPS-Anwendung
    • Inbetriebnahme der SPS-Anwendung
  • Kontrollieren
    • Vergleich der Funktionsweise des Prototypen mit den Analyseergebnissen aus der echten Welt
  • Beurteilen
    • Ergebnis und Handlungsprozess reflektieren

Um noch etwas mehr auf den Geschmack zu kommen, kann ich diesen Kurs aus dem LinkedIn-Learning-Portal empfehlen (Link):

Projekte aus dem Industrial Internet of Things sind mit OpenPLC aus meiner ersten Sicht nach ein paar Stunden gut umzusetzen und bspw. nach kurzer Einführung in Hackathons gut anwendbar. Einer kleinen Show-Anlage als „Kreislaufproduktion“ mit Raspberry Pi, Arduino & OpenPLC sowie 3D-gedruckten Teilen steht somit nur noch der Faktor Zeit entgegen. Ich nehme das nun als Projekt auf meinen zuvor um einen Punkt geschrumpften Pile-of-Shame …