Automatische Generierung von Steuerungssoftware für Fertigungsanlagen

Kompetenzfeld Produktions- und Automatisierungstechnik
Prof. Dr.-Ing. Markus Bregulla
Dipl.-Wirtschaftsing. (FH) Christian Bacherler

Telefon: (0841) 93 48-389
markus.bregulla@_we_dont_like_spam_haw-ingolstadt.de

Einführung:

In praktisch allen Bereichen der High-Tech-Produktentwicklung ist ein deutlicher Trend zu immer komplexeren und variantenreicheren Produkten zu erkennen. Diese offensichtlich sehr Entwicklungszeit verschlingenden Aspekte erhalten noch dadurch zusätzliche Brisanz, dass ein erfolgreich am Markt agierendes Unternehmen die Amortisationsdauer für ein neues Produkt möglichst kurz halten muss. Um dies zu gewährleisten, muss daher schon in der Entwicklung angesetzt werden, um die dort angewendeten Methoden effizienter und fehlerfreier zu gestalten. Im vorgestellten Projekt werden Ansätze konzipiert, um die Erstellung der schemabasierten Anlagensteuerungssoftware zu vereinfachen und zu automatisieren. Die Ergebnisse wurden anhand einer prototypischen Implementierung validiert.

Problemstellung:

Häufig werden bei der Neukonstruktion von Produktionsanlagen die nötigen Informationen für die Anlagensteuerung ebenfalls von Grund auf neu erstellt. Diese Informationen setzen sich aus Steuerungssoftware und Eigenschaftsgrößen der Anlage bzw. Anlagenteile zusammen. Bestenfalls werden entsprechende Informationen der Vorgängeranlagen als Vorlagen für den Erstellungsprozess der neuen Anlage herangezogen. Dazu kommt, dass viele Hersteller unabhängig von der Art und Weise der Codeerstellung stark darauf achten, dass die fertige Software in einem vorgegebenen, einheitlichen und oftmals unternehmensweiten Regel und Gliederungsmuster vorliegt.

Zielsetzung:

Ziel war es, eine Methode zu erarbeiten, die es ermöglicht, auf Basis einer nach einem allgemeinen Muster aufgebauten und formalisierten, Anlagenbeschreibung Steuerungssoftware automatisch zu generieren. Der Fokus liegt dabei auf der Generierung von Steuerungscode, der den Regeln des Auftraggebers hinsichtlich Codestruktur von Codeelementen entspricht.

Durchführung:

Bei allen Schritten der Konzeption und Umsetzung wurde darauf geachtet, dass vorwiegend Standardmittel bei der Implementierung eines automatischen Softwaregenerierungsprozesses zum Einsatz kommen, um der Kompatibilität zu anderen Systemen Rechnung zu tragen.

Konzept:

Der Grundgedanke bei der Konzepterstellung war die Wiederverwendung von standardisierten Automatisierungskomponenten. Dabei sind die Daten dieser Komponenten genauso betroffen wie die Komponenten selbst in ihren physischen Formen. Innerhalb der großen thematischen und fachlichen Vielfalt an Daten, die beispielsweise für eine Standardkomponente abgelegt werden, befinden sich auch jene für die Automatisierungssteuerung, dabei meist in Codeform einer bestimmten Programmiersprache z. B. SIMATIC Step7 von SIEMENS.

Um eine maschinelle Verarbeitung der Steuerungssoftware zu ermöglichen, das heißt die zusammengehörigen Softwarefragmente aller Automatisierungskomponenten in einer Anlagenbeschreibung zu einem lauffähigen Programm automatisch verknüpfen zu können, ist es notwendig eine Reihe, von Metainformationen zu definieren. Diese Metainformationen legen die Regeln fest, die für die Verbindung zwischen Code-Fragmenten und die vorgeschriebene Gliederung relevant sind. Außerdem ist es für den dynamischen Einsatz dieser Code-Vorlagen innerhalb des Code-Generierungs-Prozesses entscheidend, den Steuerungscode selbst in eine verarbeitbare Form zu bringen.

Metadaten und formatierter Code bilden eine Einheit, den sogenannten Code-Block, der einen Teil der Funktion der Komponente beschreibt und über definierte Schnittstellen mit anderen Code-Blöcken verbunden werden kann. An dieser Stelle wird die Wiederverwendbarkeit dieser Softwareeinheiten besonders deutlich, da für den gleichen Komponententyp einer Anlage ein und derselbe Code-Block verwendet werden kann. Zur Verwaltung der Code-Blöcke dient eine entsprechende Bibliothek.

Eine weitere Anforderung ist die Miteinbeziehung von Regeln, die durch den Benutzer hinzugefügt werden und den Generierungsprozess im Sinne der Herstellerkonformen Code-Generierung steuern.

Im Verlauf der Konzeption gelang es, die Architektur des Code-Generators dahingehend zu modellieren, dass es möglich ist, technische Regeln automatisiert bei der Codegenerierung zu berücksichtigen. Um die Wiederverwendbarkeit der Regeln zu erleichtern, werden sie innerhalb einer gesonderten Bibliothek vorgehalten.

Prozess:

Das entwickelte Softwaregenerierungskonzept ermöglicht es, Daten zu nutzen, die durch bereits vorhandene Engineeringtools interpretiert und ausgewertet werden können. Für die prototypische Implementierung war die Datenschnittstelle des SIMATIC Automation Designers von SIEMENS ausschlaggebend.

Für die automatische Erstellung von Anlagensteuerungscodes wird zunächst eine Code-Block-Vorlage benötigt, die an eine Automatisierungskomponente angefügt werden kann. Ein in diesem Prozess nachgelagerter Erstellungsschritt verwendet diese Code-Blöcke, um die Funktionalität seiner zu projektierenden Komponenten zu beschreiben. Als Quelle kommen entweder eine Bibliothek oder das Ergebnis einer Neuerstellung in Frage. Bei einer Neuerstellung eines Code-Blocks liegen dem Hersteller häufig schon getestete Codes aus Vorgängerprojekten vor, so dass selten bei „Null“ begonnen werden muss.

Bei der automatischen Generierung des Anlagensteuerungscodes werden die ausgegebenen Daten der werkzeuggestützten Projektierung interpretiert und die darin enthaltenen, relevanten Teile miteinander nach den Regeln des Herstellers verknüpft.

Auf diese Weise kann ein signifikanter Teil des Anlagensteuerungscodes erzeugt werden.

Kontakt

Prof. Dr.-Ing. Markus Bregulla
Telefon: (0841) 93 48-389
Telefax: (0841) 93 48-644
markus.bregulla@haw-ingolstadt.de