Vor zwanzig Jahren habe ich unser Unternehmen gegründet, um anspruchsvolle Software mit Hochsprachen und durchdachter Architektur für komplexe, variantenreiche Maschinen und Anlagen zu entwickeln…

Im Maschinenbau wird diese Anforderung an die Flexibilität bei gleichzeitiger Wirtschaftlichkeit durch die Modularisierung gelöst. In der Softwareentwicklung wenden wir genau das gleiche Prinzip an, um wirtschaftlich flexibel und schnell qualitativ hochwertige Softwarelösungen zu erstellen. Die Prinzipien der objektorientierten Programmierung (OOP) sind dafür besonders gut geeignet.

Seit über zwölf Jahren setzen wir deshalb die Prinzipien der OOP, der Continuous Integration (CI) und des Continuous Deployments (CD) in der SPS Programmierung sehr erfolgreich ein. Damit entstehen mechatronische Systeme, die die Vorteile der SPS mit denen aus der Hochsprachenentwicklung kombinieren. Durch die Schaffung von Frameworks können wir viel schneller und agiler Applikationen für unterschiedliche Maschinen und Baureihen realisieren. Damit entsteht Software, die hinsichtlich der nicht-funktionalen Qualitätskriterien und den Anforderungen durch Industrie 4.0 gerecht wird. Die Software ist erweiterbar, wartbar und vor allem wiederverwendbar. Mittelfristig zahlt sich dieses Vorgehen im Maschinenbau mit modularen Maschinenkonzepten immer aus.

Wir unterstützen Sie bei der Erstellung solcher Frameworks und bei der Realisierung konkreter Applikationen für Ihre Maschinen und Anlagen mit SPS. Dabei ist TwinCat3 von Beckhoff als sehr offenes und softwaregetriebenes System unsere erste Präferenz.

Mehr lesen Weniger lesen
Wolfram Schäfer
Geschäftsführer IT Engineering Software Innovations

Herausforderungen bei der SPS Programmierung

Die SPS (speicherprogrammierbare Steuerung bzw. PLC, englisch Programmable Logic Controller) wird in der Automatisierungstechnik für Steuerungs- und Regelungsaufgaben überall eingesetzt, wo Prozesse automatisiert werden. Sie stellt eine offene und universelle Automatisierungslösung für nahezu alle Branchen und Anwendungen dar: allgemeiner Maschinenbau, Holzbearbeitungsmaschinen, Verpackungsmaschinen, Blechbearbeitung, Werkzeugmaschinen, Anlagenbau, Montageautomation, Gebäude- und Fördertechnik bis zu Verkehrsleitsystemen.

Die Herausforderung beim Einsatz dieser Maschinen ergibt sich aus den Veränderung der etablierten Rahmenbedingungen, die sich immer dynamischer entwickeln. Industrie 4.0 ist dabei ein zentraler Produktivitätstreiber mit dem Ziel, individuelle, variantenreiche und auf Kundenwunsch gefertigte Produkte bis zur Losgröße 1 zu Kosten wie in einer Massenproduktion herstellen zu können

Dafür müssen die klassische Produktionstechnik und die Informations- und Kommunikationstechnologie viel enger miteinander vernetzt werden. Anbieter müssen ihre Maschinen zu anderen Anlagen und Informationssystemen „öffnen“, Prozessinformationen zur Verfügung stellen bzw. verarbeiten können. Dadurch entsteht eine ungeheure Dynamik.

Ebenso geraten Fertigungsunternehmen unter Druck, ihre Produktivität weiter zu steigern, um Kostennachteile zu vermeiden. Das sind ungewohnte Herausforderungen, aber vor allem große Chancen für jene, die das erkannt haben und aktiv werden.

Wir können Ihnen aufzeigen, wie das bei Maschinen und Anlagen mit SPS geht und Sie bei der Umsetzung unterstützen!

Einschränkungen bei der "klassischen" SPS Programmierung

Die Flexibilität spielt beim Aufbau einer modularen Systemstruktur eine wichtige Rolle: bei der Auswahl der Steuerung selbst und der Baugruppen, von der Sensorik über die Aktorik bis hin zur Antriebstechnik. Diese Flexibilität wird verstärkt über den gesamten Produktlebenszyklus einer Maschine bzw. Anlage bzw. für alle im Produktprogramm befindliche Typen innerhalb von Baureihen gefordert.

Die Einsatzszenarien (z. B. herzustellende Produkte, Absatzmengen, Produktvariationen) und Anforderungen (z. B. technische, logistische und sicherheits-/rechtliche) ändern sich in immer kürzeren Zeiträumen.  Die modulare Hardware- und Systemstruktur der SPSen bietet für diese Anforderungen eine gute Grundlage. Doch was ist mit der Software?

In der klassischen Form der Programmierung von SPS-Steuerungen wird häufig der Fokus auf die Erfüllung funktionaler Anforderungen gelegt. Das ist richtig und wichtig, aber eigentlich selbstverständlich. Die nicht-funktionalen Anforderungen Wartbarkeit, Erweiterbarkeit und Wiederverwendbarkeit werden bei der „klassischen“ Programmierung oft vernachlässigt.

Probleme bei Vernachlässigung von nicht-funktionalen Anforderungen

  • Programmierte Softwarefunktionen für eine Maschine können nicht bei einer anderen genutzt werden
  • Höherer Aufwand bei Softwaretest oder Fehlersuche
  • Funktionale Erweiterung führt oft zu Verhaltensänderung bei bestehenden Abläufen
  • Höherer Aufwand für Anpassungen an der Software
  • Abhängigkeit von einzelnen Programmierern
  • Vorteile der agilen Softwareentwicklung können nicht genutzt werden

Berücksichtigung von nicht-funktionalen Anforderungen bei der SPS Programmierung

Bei der SPS Programmierung ist die Erfüllung funktionaler Anforderungen natürlich wichtig. Werden die nicht-funktionalen Anforderungen Wartbarkeit, Erweiterbarkeit und Wiederverwendbarkeit bei der Konzeption und Entwicklung berücksichtigt, schafft man nachhaltige Softwarelösungen, die den langen Produktlebenszyklen im Investitionsgüterbereich gerecht werden. Unterstützt wird die SPS Programmierung durch:

Icon - Plus- dunkelblau

Wartbarkeit

Software kann ohne großen Aufwand an geänderte Spezifikationen angepasst werden
Icon - Plus- dunkelblau

Erweiterbarkeit

Software kann leicht um neue Funktionen erweitert werden
Icon - Plus- dunkelblau

Wiederverwendbarkeit

Verwendung von Softwarebausteinen für mehrere Maschinen, Baureihen, Anlagen bzw. Projekte

Anwendung des agilen Vorgehensmodells SCRUM

  • keine Echtzeitfähigkeit durch Latenzzeit
  • regelmäßig funktionsfähige Softwarestände
  • termingerechte Umsetzung
  • bessere Motivation und Einbindung der Mitarbeiter
  • höhere Kundenorientierung

Strukturierte und tool-gestützte Softwareentwicklung

  • Absicherung der Qualität über gesamten Entwicklungsprozess
  • flexible Berücksichtigung von Änderungswünschen

In der Praxis haben sich folgende Methoden bei der SPS Programmierung bewährt

Kontinuierliche und automatisierte Prüfung des erstellten bzw. geänderten Source-Codes
    • Ständige Verfügbarkeit eines ausführbaren Systems
    • Frühzeitiges Erkennen zur Lösung von Problemen bei der Integration
    • Steigerung der Effizienz bei der Softwareentwicklung
    • Durchführung von automatisierten Tests (Unit-/ Regressions-Tests)
Statische Code-Analyse: Methode zur Bewertung des Source-Codes nach formalen Qualitätskriterien
    • Erkennen von Fehlern bereits vor dem Testlauf
    • Verbesserung der „Güte“ des Source-Codes
    • Erleichterung der Wartbarkeit und Wiederverwendbarkeit von Programmen
Code-Review ist die effizienteste Methode, um die Softwarequalität nachhaltig zu steigern. Die ständige Analyse des Source-Codes nach dem Vier-Augen-Prinzip ermöglicht dem Entwickler eine iterative Optimierung.
    • Berücksichtigung und Steigerung nicht-funktionaler Qualitätsmerkmale
    • Effiziente Möglichkeit zur Einbindung von Kompetenzen anderer Entwickler
    • Erzielung einer wartbaren und erweiterbaren Software

Effektive Unterstützung einer verteilten, dezentralen Arbeitsweise

    • Unabhängiges Arbeiten an gleicher Softwareversion möglich
    • Softwareentwicklung und -anpassung auch an externen Standorten (z. B. vor Ort beim Kunden)
    • Spätere Versionierung der Änderungen und tool-gestützte Zusammenführung im zentralen Repository

Strukturverbesserung von Quelltexten unter Beibehaltung des bisherigen Programmverhaltens

Anpassung der Software bzw. von Modulen an neue Technologien

Objektorientierte SPS Programmierung 

Die objektorientierte Programmierung hat ihren Ursprung in der Hochsprachenentwicklung. Bei der OOP werden zusammengehörige Daten sowie die auf sie anwendbaren Operationen in Objekten zusammengefasst. Anstelle der Abfolge von Befehlen werden vorrangig die Definition der Objekte sowie ihrer Interaktionen behandelt. Durch dieses Merkmal ergeben sich zentrale Vorteile bei der Erstellung, Verwendung und Pflege modularer Softwarebausteine für SPS. Folgende Merkmale kennzeichnen die objektorientierte Programmierung.

Gemeinsame Eigenschaften (Attribute) und Funktionen (Methoden) werden in logischen Einheiten gebündelt. Dafür werden generalisierte Klassen genutzt.

Vorteil: Übersichtlichkeit und Effizienz bei der Softwareentwicklung

Die Eigenschaften eines Objekts sind im Objekt selbst verborgen, also gekapselt (Data Hiding). Der Zugriff ist nur über im Objekt verankerte Methoden möglich. Dadurch sind die Objekteigenschaften geschützt; sie sind allerdings für die „Außenwelt“ auch nicht von Belang.

Vorteil: Schutz vor schadhaften Änderungen

Eine Klasse ist ein abstraktes Modell bzw. ein Bauplan für eine Reihe von ähnlichen Objekten. Von diesen Klassen können neue Klassen abgeleitet werden, welche die Eigenschaften und Methoden der Elternklassen übernehmen.

Vorteil: Sicherstellung von Softwarequalität durch Kapselung von Eigenschaften

Dieselbe Methode kann auf unterschiedliche Objekte angewendet werden.

Vorteil: Effizientes Programmierkonzept

Objekte kommunizieren untereinander durch den Austausch von Nachrichten, sog. Messages.

Effiziente objektorientierte SPS Programmierung durch Frameworks

Das Framework ist ein Programmiergerüst, das insbesondere bei der OOP verwendet wird. Es stellt selbst kein fertiges Programm dar, sondern bildet für den Softwareentwickler einen vorprogrammierten Rahmen, innerhalb dessen die Anwendungen erstellt werden.

Einzelne Funktionen, Elemente und Bausteine sind bereits im Framework enthalten und müssen deshalb nicht immer wieder neu programmiert werden.

 

Bei der Programmentwicklung für SPS ergeben sich daraus mittel- bis langfristig unschätzbare Vorteile. Ein verbreitetes Framework in der Microsoft Welt ist beispielsweise das „.NET Framework“, das Entwicklungswerkzeuge, Schnittstellen und Klassenbibliotheken enthält.

Schon ab einer Wiederverwendungsrate von 3 lohnt sich auch für die SPS-Programmierung die Entwicklung eines eigenen firmen- bzw. domänenspezifischen Frameworks um darauf aufbauend variantenreiche Applikationen realisieren zu können.

Frameworks bieten große Vorteile bei der Softwareentwicklung

  • Wiederkehrende Funktionen und Elemente sind im Framework bereits enthalten oder vorprogrammiert und können bei der Entwicklung verschiedenster Applikationen wiederverwendet werden. Das vereinfacht die Arbeit des Programmierers nachhaltig. Nutzen: Effizienz, Schnelligkeit, Fehlerfreiheit, Qualität etc.
  • Im Framework sind standardisierte Schnittstellen enthalten, wodurch sich Komponenten einfacher ansprechen lassen.
  • Frameworks erlauben die Trennung von applikationsspezifischen Funktionen und allgemeingültigen Funktionen und Methoden. Das ermöglicht darüber hinaus eine effiziente Aufteilung der Aufgaben und Verwaltung des Quellcodes während der Entwicklung.

SPS Programmierung nach IEC 61131-3

Die Norm IEC 61131-3 (auch DIN EN 61131-3) ist ein internationaler Standard für Programmiersprachen von speicherprogrammierbaren Steuerungen. Ihr Ziel besteht in der Standardisierung der Programmierung der Steuerungssoftware für SPSen. Dabei sollen Programmiersprachen herstellerunabhängig in einem einheitlichen Organisationskonzept (POE – Programm-Organisationseinheiten) mit der Pflicht zur Variablendeklaration unter Verwendung von elementaren und abgeleiteten Datentypen angewendet werden.

Programmiersprachen für SPS Programmierung

  • zwei textuelle Fachsprachen (AWL, ST)
  • zwei grafische Fachsprachen (KOP, FBS)
  • die übergeordnete Ablaufsprache (AS), die sowohl grafische als auch textuelle Elemente enthält.
Weitere Merkmale aus der Norm IEC 61131-3 sind:
  • anbieterunabhängiger Programmierstandard
  • PLCopen-Zertifizierung
  • portable/ wiederverwendbare Software
  • Datenkapselung durch benutzerdefinierte Datentypen

Entwicklungsumgebungen für speicherprogrammierbare Steuerungen

  • CoDeSys (Controller Development System) hat beim Lernen v.a. für Ausbildung, Studium, Schulungen und Lehrgängen den Vorteil, dass es als Programmiersystem kostenlos zu beziehen und zu den Vorgaben der IEC 61131-3 konform ist.
  • TwinCAT3 (The Windows Control and Automation Technology) bietet als Integration in Visual Studio® eine leistungsfähige und offene Entwicklungsumgebung für die Programmierung und Konfiguration von SPS-Steuerungen auch für die objektorientierten Erweiterungen der IEC 61131-3.
  • STEP 7 (STeuerungen Einfach Programmieren) bzw. TIA Portal (Totally Integrated Automation Portal): Bestandteile der SIMATIC-Controller von Siemens mit einer etwas anderen Bausteincharakteristik als in der Norm IEC 61131-3 vorgegeben.

Entwicklungsumgebung TwinCAT3 von Beckhoff

TwinCAT3 (TwinCAT – The Windows Control and Automation Technology) ist eine komplette Entwicklungsumgebung für Steuerungen von Beckhoff. Es ermöglicht dem SPS-Programmierer einen einfachen Einstieg in die mächtigen Sprachmittel der IEC 61131-3. Die Nutzung der Editoren und der Debugging-Funktionen hat die ausgereiften Entwicklungsumgebungen höherer Programmiersprachen zum Vorbild. Beckhoff bietet damit ein sehr offenes und softwaregetriebenes System an. TwinCAT3 unterstützt alle in der IEC 61131-3 beschriebenen Sprachen:
  • Textuelle Sprachen: Anweisungsliste (AWL), Strukturierter Text (ST)
  • Grafische Sprachen: Funktionsplan (FUP), Kontaktplan (KOP), Freigrafischer Funktionsplaneditor (CFC), Ablaufsprache (AS).
Mit TwinCAT3 kann auch die leistungsstarke Programmiersprache C++ verwendet werden: objektorientierte Programmiersprache, Echtzeit-Fähigkeit. Unsere Empfehlung: Aus jahrelanger Erfahrung präferiert iT Engineering Software Innovations bei speicherprogrammierbaren Steuerungen (SPS) die Systeme von Beckhoff aufgrund ihrer offenen und erweiterbaren Struktur.

Empfehlungen für die Softwareentwicklung von speicherprogrammierbare Steuerungen (SPS)

  • Die anwendungsspezifische Programmierung des Steuerungsprogramms einer SPS sollte entsprechend der Norm IEC 61131-3 erfolgen. Unterstützt wird der Programmierer durch die Entwicklungsumgebung, die in der Steuerungsumgebung des SPS-Herstellers integriert ist. Bei SIMATIC-Steuerungen von Siemens wird der Programmierer durch das TIA Portal unterstützt.
  • Die Methoden aus der Hochsprachenentwicklung  sollten aus Gründen der Qualität und Wirtschaftlichkeit auch bei der Softwareentwicklung für SPSen angewendet werden. Das umfasst insbesondere die objektorientierte Programmierung (OOP) und damit auch die Schaffung von domänenspezifischen Frameworks.
  • Nur so lassen sich zukunftssichere Steuerungskonzepte für SPSen realisieren. Die Beachtung nicht-funktionaler Anforderungen, wie Wartbarkeit, Erweiterbarkeit und Wiederverwendbarkeit garantieren schließlich auch eine höhere Softwarequalität!
  • Diese Konzepte sind die perfekte Grundlage, um im nächsten Schritt mit der virtuellen Inbetriebnahme ein noch höheres Niveau bei Softwarequalität und Entwicklungsgeschwindigkeit zu erreichen.

Mit virtueller Inbetriebnahme erreicht Ihre SPS das nächste Level.

Laptop zeigt virtuelles Modell einer Maschine als Symbol für virtuelle Inbetriebnahme

Unser Angebot

Wir unterstützen Sie bei Ihren Projekten der SPS Programmierung. Dabei bringen wir unsere jahrzehntelange Erfahrung aus der Softwareentwicklung im Hochsprachenbereich mit dem objektorientierten Ansatz (OOP) ein. Wir können professionelle Frameworks entwickeln und warten, sowie anspruchsvolle Applikationen nach IEC 61131-3 programmieren.

Wir bieten Ihnen Know-how und Erfahrungen aus unterschiedlichsten Projekten und Branchen. Dadurch profitieren Sie auch im Bereich von SPS Anwendungen von den Qualitätskriterien Wartbarkeit, Erweiterbarkeit und Wiederverwendbarkeit. So sind Sie mit professionellen Lösungen optimal für die Herausforderungen durch Industrie 4.0 aufgestellt und können individuell, flexibel und agil auf neue Entwicklungen und Trends reagieren.