Onno van Roosmalen & Tim van Heijst - Trainer
Onno van Roosmalen und Tim van Heijst haben einen fünftägigen Kurs ins Leben gerufen, in dem SPS-Experten und OO-Spezialisten lernen, wie man eine SPS-Anwendung durch objektorientierte Programmierung entwickelt. Das High Tech Institute wird diesen Kurs Anfang 2020 zum ersten Mal anbieten.
SPS-Programmierer stehen immer häufiger vor denselben Herausforderungen, die früher großen, komplexen Softwareprojekten vorbehalten waren. Objektorientierte Techniken bieten eine Lösung, aber in der Vergangenheit konnten sie aufgrund der traditionellen Einschränkungen von SPSen nicht eins zu eins angewendet werden. Mit der neuen Version des IEC 61131-3-Standards für SPSen stehen nun objektorientierte Funktionen zur Verfügung und die Möglichkeiten sind enorm gewachsen.
Fachhochschulen und Akademiker tun PLCs regelmäßig als minderwertige Technologie ab. Schön für einfache Maschinen, aber völlig unzureichend für die komplexen Systeme, an denen sie arbeiten. In der Vergangenheit mögen sie damit Recht gehabt haben. Im Grunde sind SPSen immer zyklisch, aber die Zykluszeit kann oft einen Strich durch die Rechnung machen. Bei modernen SPSen ist ein Zyklus von weniger als zehn Millisekunden jedoch völlig normal. Für zeitkritische Anwendungen gibt es sogar SPSen mit einer Zykluszeit von weniger als einer Millisekunde.

Onno van Roosmalen (links) und Tim van Heijst (rechts) haben einen fünftägigen Kurs ins Leben gerufen, in dem SPS-Experten und OO-Spezialisten lernen, wie man eine SPS-Anwendung durch objektorientierte Programmierung entwickelt.
„Verpackungsmaschinen – auch wenn sie eine sehr hohe Geschwindigkeit erreichen müssen – lassen sich leicht mit einer SPS steuern“, sagt Tim van Heijst, Inhaber des Codesys-Spezialisten Extend Smart Coding und Dozent am High Tech Institute. „PLCs sind auch eine hervorragende Plattform für Roboteranwendungen. Bei der heutigen Leistungsfähigkeit von SPSen gibt es kaum Anwendungen, bei denen sie versagen.“
Das heißt aber nicht, dass Anbieter wie B&R, Beckhoff, Rockwell und Siemens ihre SPSen auch im höheren Segment problemlos verkaufen werden. Bei größeren Maschinenbauern ist es manchmal noch ein interner Kampf: ‚Entwerfen wir alles selbst oder wählen wir eine SPS?‘, hat Van Heijst die Erfahrung gemacht. Die Definition des Problems ist jedoch fast immer die gleiche. Sie wollen eine Anwendung so schnell und so gut wie möglich entwickeln und, wenn möglich, vorhandenen Code wiederverwenden. „Eine SPS erfüllt alle diese Anforderungen. Es handelt sich um ein Standardprodukt, das vom Lieferanten gut unterstützt wird. Wenn Sie einen Fehler in der Firmware haben, wird er für Sie behoben. Sie können problemlos eine Verbindung zu Ihren Aktoren und Sensoren herstellen, denn es gibt alle möglichen standardisierten Kommunikationsprotokolle. Deshalb können Sie Ihr System auch sehr schnell in Betrieb nehmen“, sagt Van Heijst. Ein weiterer Vorteil ist, dass fast alle SPS-Hersteller die Norm IEC 61131-3 befolgen. Das bedeutet, dass die von Ihnen erstellte Anwendungssoftware hardwareunabhängig ist und der Wechsel zu einer schnelleren SPS – oder sogar zu einem Industrie-PC – ein Kinderspiel ist.
Entkopplung
Während SPS traditionell in Anwendungen mit begrenzter Funktionalität eingesetzt wurden, sind die Möglichkeiten jetzt so umfangreich, dass moderne Programmiertechniken erforderlich sind, um alles gut zu regeln. Mit der Version 3 der IEC 61131-Norm können sich Entwickler auch für einen objektorientierten Ansatz entscheiden.
Van Heijst: ‚Bei der heutigen Leistungsfähigkeit von Aktiengesellschaften gibt es praktisch keine Anwendungen mehr, bei denen sie versagen‘.
„Sie müssen sich dann mit wichtigen Softwarefunktionen wie dem Verstecken von Informationen und der Kapselung befassen, d.h. der Idee, dass Sie Informationen lokalisieren und nicht durch das gesamte System schleudern“, sagt Onno van Roosmalen, unabhängiger Berater für Softwaretechnik und Dozent am High Tech Institute. „In der Praxis erleben Sie regelmäßig, dass ein Team eine Komponente mit zusätzlichen Funktionen ausstattet und damit eine Kaskade von Ereignissen im gesamten System auslöst. Das macht es schwierig, etwas hinzuzufügen. Bei vielen Webanwendungen sehen Sie, dass die Kapselung aufgebrochen ist, aber das hängt von ihrer Natur ab: Informationen zur Verfügung zu stellen. Bei der Maschinensteuerung ist das eine andere Sache.“
„Der Gedanke, Informationen zu verbergen, geht Hand in Hand mit der Art und Weise, wie sich Komponenten gegenseitig ansprechen: die Schnittstelle. So können Sie die detaillierte Form Ihrer Objekte verbergen und sicherstellen, dass keine Implementierungsdetails nach außen dringen. So stellen Sie sicher, dass der Benutzer nur das tun kann, was gerade erforderlich ist, nicht mehr und nicht weniger“, erklärt Van Roosmalen. Die Idee dahinter ist, dass die Entwicklung von Komponenten abgekoppelt werden kann. Wenn eine neue Version einer Komponente weiterhin das tut, was sie früher über eine Schnittstelle getan hat, muss die darauf aufbauende Software nicht sofort geändert werden. Ein Entwicklungsteam, das gegen die Komponente programmiert, kann die neue Version verwenden, ohne befürchten zu müssen, dass in der Zwischenzeit etwas umkippt. Wenn Kapselung und Schnittstellen in Ordnung sind, entsteht fast automatisch eine wartbare, skalierbare Architektur, die mit der Anwendung wachsen kann.
' You can always expand an interface later on, but downsizing is a lot more difficult.'
„Die Bedingung ist allerdings, dass die Teams bei der Gestaltung ihrer Schnittstelle eine defensive Haltung einnehmen. Sie sollten nicht einfach alles anbieten, was andere Teams verlangen“, sagt Van Roosmalen. „Je mehr Sie anbieten, desto mehr unbeabsichtigte Verwendungen gibt es und desto wahrscheinlicher ist es, dass in einer neuen Version etwas kaputt geht. Sie können eine Schnittstelle später immer noch erweitern, aber eine Verkleinerung ist viel schwieriger.
Wie funktioniert das in der Praxis? Van Heijst gibt ein Beispiel: „Ich habe kürzlich einen Hersteller von Ladestationen besucht. Sie stellen viele Varianten her und arbeiten mit einer breiten Palette von Steckern. Das Unternehmen wollte ein Energiemanagementsystem entwickeln, das mit all diesen Unterschieden umgehen kann. Wir haben das mit SPSen und einem objektorientierten Ansatz gelöst. Jetzt kommuniziert das Managementsystem über definierte, generische Schnittstellen mit allen Versionen der Ladestationen und das Unternehmen kann die Entwicklung aller Blöcke separat verwalten. Das verringert das Fehlerrisiko, erleichtert die Wiederverwendung und macht eine Anwendung viel schneller einsatzbereit.“
Wissen aufbauen
„Für SPS-Programmierer ‚vom alten Schlag‘ bedeutet der objektorientierte Ansatz eine neue Art zu denken. Software-Ingenieure, für die OOP ein Kinderspiel ist, stellen fest, dass SPSen ein klein wenig anders funktionieren als ihre gewohnte PC-Umgebung. SPS-Anbieter bieten zwar Kurse an, aber in diesen geht es zum Beispiel darum, wie man eine Verbindung zu Ihren E/A herstellt. Echte Programmierkurse sind das nicht“, sagt Van Heijst, „denn Sie lernen nicht, wie Sie Ihre eigene Anwendung erstellen.“
Objektorientiertes Denken für den PC ist fast identisch mit objektorientiertem Denken für die SPS“, sagt Van Roosmalen.
Aus diesem Grund haben Van Heijst und Van Roosmalen die Schulung „Objektorientierte Systemsteuerung Automatisierung.“ Ein fünftägiger Kurs, in dem SPS-Experten und OO-Spezialisten lernen, wie man eine SPS-Anwendung mittels objektorientierter Programmierung entwickelt. Auf diese Weise können Unternehmen Wissen aufbauen und müssen nicht auf Systemintegratoren zurückgreifen, die sich lieber um alles kümmern.
„Die objektorientierte Programmierung unterscheidet sich grundlegend von der prozeduralen Programmierung“, sagt Van Roosmalen. „Aber objektorientiertes Denken für den PC ist fast identisch mit objektorientiertem Denken für die SPS. Sie können das gleiche Softwaredesign verwenden. Nun ja, mit einigen kleinen Anpassungen, denn die Programmierkonzepte für eine SPS sind etwas begrenzter.“
„Wir erklären die Technik und sagen Ihnen, wie Sie sie anwenden können“, fügt Van Heijst hinzu. „Ein großer Teil der Schulung befasst sich damit, wie man ein gutes Softwaredesign erhält. Es kommt immer noch sehr oft vor, dass ein Programmierer sich einfach an die Arbeit macht und ein paar Wochen oder Monate später eine funktionierende Software abliefert. Dann gibt es plötzlich eine Änderung und sie müssen alle möglichen Wendungen vornehmen, um die Aufgabe zu bewältigen. Wenn Sie die objektorientierte Methodik richtig anwenden, sind Sie von diesem Problem befreit. Ein weiterer Vorteil von OOP.“
Dieser Artikel stammt von Alexander Pil, technischer Redakteur von High-Tech Systeme.

