Vorführen statt programmieren -virtuelles Teachen mit Vites
Mit Vincent lassen sich, wie im ersten Teil beschrieben, Entwicklungs- und Inbetriebnahmeprozesse deutlich verkürzen und qualitativ absichern. Die eigentliche Programmerstellung erfolgt aber nach wie vor auf hergebrachte Weise. Daher liegt die Frage nahe, ob man den Programmierprozess nicht auch durch das virtuelle Modell unterstützen kann. Betrachten wir dazu die Rollen der Personen am Anfang und am Ende der Entwicklungskette, d.h. des Konstrukteurs und des Programmierers, wie sie typischerweise bei der Entwicklung einer neuen Maschine verteilt sind (den E-Techniker lassen wir bei dieser Betrachtung mal weg). In der Designphase werden die Funktionalitäten festgelegt und auf Baugruppen heruntergebrochen (schön, wenn der Programmierer da schon dabei ist). Danach arbeitet der Konstrukteur im Wesentlichen \’bottom-up\‘, Baugruppe für Baugruppe. Will der Programmierer – üblicherweise nach Fertigstellung der Konstruktion und Fertigung der Maschine – die erdachten Abläufe steuerungstechnisch umsetzen, muss er sie zuallererst einmal verstehen. Dazu dient ihm eine mehr oder minder vollständige Beschreibung und ggf. das Gespräch mit dem Konstrukteur. Ungewiss bleibt, ob alles richtig und vollständig verstanden wurde. Die programmtechnische Strukturierung und Umsetzung erfolgt in aller Regel \’top down\‘, z.B. von Block- und Flussdiagrammen über grobe Schrittketten zum eigentlichen Programmcode Will man diese Prozesse effektiver gestalten, sind drei Fragen zu beantworten:
- Wie kann der Programmierer schon früher beginnen? Unsere Antwort ist im ersten Teil mit Vincent gegeben. Optimal ist natürlich eine frühe Einbeziehung des Programmierers, am besten schon in der Designphase.
- Wie kann man den Wissenstransfer vom Konstrukteur zum Programmierer beschleunigen und dafür sorgen, dass dieser richtig und vollständig erfolgt?
- Kann man zumindest Programmteile automatisch erzeugen?
Die Antwort auf die letzten beiden Fragen gibt das vom IFF entwickelte System Vites (\’virtuelles Teachen von Steuerungen\‘). Die Grundidee ist einfach, dass der Konstrukteur dem Programmierer die gedachten Abläufe mittels Vincent vorführt, dabei entstehen Programmteile im Hintergrund automatisch. Diese Form des direkten Teachens ist an realen Anlagen beispielsweise aus der Robotik bekannt; Hier geschieht sie am virtuellen Modell.
Bei der Umsetzung dieser Idee ergibt sich eine Reihe von Fragen:
- Wie werden die oben beschriebenen gegenläufigen Arbeitsweisen berücksichtigt?
- Wie kann man parallele Prozesse und parallele Aktionen mehrerer Aktoren teachen?
- Wie werden Synchronisationsmechanismen (z.B. Warten auf ein Sensorsignal oder auf Fertigstellung eines anderen Teilprozesses) abgebildet?
- Wie stellt man Positionierprozesse dar, die man nicht exakt genug am virtuellen Modell vorführen kann?
- Wie wird die tatsächliche Dynamik des Prozesses und der Maschinenelemente berücksichtigt?
- Welche Struktur hat der erzeugte Code? Er wird nie 100% vollständig sein, d.h. der Programmierer muss ihn anschließend weiter bearbeiten können; dazu muss er ihn wiederum so verstehen, als ob er ihn selbst geschrieben hätte.
Um unterschiedliche Vorgehensweisen, zeitliche Verfügbarkeiten der Beteiligten etc. möglichst allgemein berücksichtigen zu können, schreibt Vites keinen starren Arbeitsablauf vor, sondern die Ansätze \’top-down\‘ und \’bottom-up\‘ können parallel laufen und flexibel kombiniert werden. Top-down: Der Programmierer hat die Möglichkeit, die Struktur der Abläufe, aus denen später die Schrittketten erzeugt werden, in einem integrierten Editor in Form sogenannte \’Hauptsequenzen\‘ zu erstellen. Diese bestehen aus groben Beschreibungen von Teilabläufen, welche in der Regel eine technologisch zusammenhängende Folge von Bewegungen, Sensorabfragen etc. beinhalten. Diese grobe Strukturierung liegt normalerweise als ein Ergebnis der Designphase vor, zumindest verbal oder grafisch beschrieben. Bild 7 zeigt die Hauptsequenzen für einen Laborautomaten zur Handhabung von Magazinen. Notwendige Synchronisationen (s.o.) können an dieser Stelle schon grafisch markiert werden. Bottom-up: Nachdem einzelne Baugruppen eine bestimmte konstruktive Reife erlangt haben (d.h. das kinematische Schema ist klar, erste CAD-Zeichnungen liegen vor), können die Teilabläufe in sog. Untersequenzen detailliert beschrieben werden. Bild 8 zeigt ein Beispiel. Im oberen Teil wird als Konfigurator und interaktiver Viewer wieder Vincent verwendet, jedoch mit einer im Hintergrund laufenden Soft-SPS anstelle der realen Steuerung. Dabei erfolgt der entscheidende Schritt: Der Konstrukteur führt dem Programmierer die beabsichtigten Bewegungen am virtuellen Modell vor. Im Beispiel soll eine bestimmte Aktion bestehen aus der Abfolge: Greifer lösen -> ausfahren -> einfahren -> greifen (Bild 8 Mitte). Das Teachen erfolgt, indem die Achsen per Schieberegler bewegt werden. Die genaue Position kann bei Bedarf auch numerisch eingegeben werden. Die erste Abfolge im Beispiel – \’Greifer lösen\‘ – besteht hier aus dem parallelen Lösen zweier Klemmungen. Da es schwierig wäre, beide Bewegungen gleichzeitig per Schieberegler zu teachen, können diese auch nacheinander geteacht und zeitlich als parallel gekennzeichnet werden (Bild 8 unten). Alle Teilabläufe können in einer selbsterklärenden Form bezeichnet und mit Kommentaren erläutert werden. Die grafische Darstellung der Abfolge der Einzelaktionen ist stark an übliche Videoschnittprogramme angelehnt und intuitiv bedienbar, ebenso wie deren Editierung: Reihenfolgen können geändert werden, Aktionen können kopiert, hinzugefügt und gelöscht werden etc. Der geteachte Ablauf kann jederzeit mit einer Wiedergabefunktion in der 3D-Darstellung angesehen werden. Während des Teachens entsteht im Hintergrund automatisch die Programmstruktur in einer dem Programmierer vertrauten Weise – das heißt, mit Aktionen und Transitionsbedingungen (Bild 9). Die Darstellung ist dabei an die S7-Entwicklungsumgebung angelehnt; es wird jedoch ein Zwischenformat ohne die Besonderheiten der SPS-Programmierumgebung erzeugt, der zum Schluss prinzipiell auf jede Steuerung übertragbar ist. Dabei werden nicht nur alle Bezeichnungen, sondern auch während des Teachens eingegebenen Kommentare (Annotationen) übernommen. Der Wissenstransfer vom Konstrukteur zum Programmierer ist somit dokumentiert, die Vollständigkeit und Richtigkeit kann sofort überprüft werden. Genau wie bei Vincent sind in Vites alle Vorgänge inkrementell durchführbar, das heißt, bei Änderungen müssen nur die geänderten Teile oder Abläufe neu geteacht werden. Eine weitere für die Praxis bedeutsame Eigenschaft ist die Ermittlung von Ausführungszeiten. Für elektrische Antriebe werden dazu die in Vincent eingegebenen Achsparameter übernommen. Aus dem zurückzulegenden Weg wird die Zeit unter Berücksichtigung von Anfahr- und Bremsrampen berechnet. Für pneumatische Elemente können Schätzwerte direkt in Vites eingegeben werden. Wenn in einer Aktion auf andere Prozesse oder Sensorsignale gewartet werden muss (Synchronisationen), wird dafür zunächst ein Platzhalter mit t=0 gesetzt. Beim Zusammenschalten der Aktionen zum Programm erfolgt dann die Berücksichtigung tatsächlicher Wartezeiten. Wie beschrieben, können Programmstruktur und Programmteile für die Einzelaktionen völlig unabhängig voneinander entwickelt werden. Arbeiten beispielsweise mehrere Konstrukteure im Team, kann jeder nach Fertigstellung seines Teilsystems dafür das Steuerprogramm erzeugen (lassen) und kontrollieren. Letztere werden je nach Entwicklungsstand sukzessive in die Hauptsequenz eingefügt; Zwischenstände lassen sich jederzeit überprüfen und optimieren. Es lassen sich auch Programmbausteine aus früheren Projekten verwenden. Sind alle Aktionen in das Ablaufprogramm eingefügt, kann der Gesamtablauf getestet werden. Jetzt werden auch korrekte Ausführungszeiten unter Berücksichtigung von Synchronisationsmechanismen für alle Abläufe ermittelt. Die entstandene Programmstruktur ist übersichtlich, vollständig dokumentiert und weitgehend getestet. An dieser Stelle sollte ein Meilenstein im Projekt gesetzt werden: Es erfolgt der Übergang von der virtuellen zur realen Steuerung. Das Programm wird in den konkreten Steuerungscode compiliert und kann weiterentwickelt werden. Änderungen des Codes werden aber nicht \’rückwärts\‘ nach Vites übertragen. Jedoch lässt sich das virtuelle Maschinenmodell zusammen mit der realen Steuerung unter Nutzung von Vincent weiter zum Programmtest und zur Inbetriebnahme verwenden (siehe Teil 1).
Zusammenfassung:
Die vorgestellten Programme Vincent und VITES sind leistungsfähige und äußerst flexibel einsetzbare Werkzeuge, um Entwicklungsprozesse insbesondere im Bereich des Sondermaschinen- und Anlagenbaus drastisch zu verkürzen und abzusichern. Ihre Praxistauglichkeit haben sie bereits bei mehreren Entwicklungen von kundenspezifischen Sondermaschinen unter Beweis gestellt. Das Ziel der Arbeiten am Fraunhofer IFF ist die Schaffung von Lösungen für eine durchgängige digitale Entwicklung von Maschinen und Anlagen von der Idee bis zur Inbetriebnahme. Dazu existiert bereits eine Reihe von weiteren Werkzeugen, andere befinden sich derzeit in Entwicklung. Ihre Einführung in Unternehmen setzt aber zwingend voraus, dass Arbeitsabläufe während der Entwicklung überdacht und ggf. geändert werden. Insbesondere verlangen und unterstützen diese Werkzeuge eine deutlich engere Kooperation aller Projektbeteiligten während der gesamten Entwicklung; diese Kooperation muss aber im Unternehmen auch \’gelebt\‘ werden.
www.iff.fraunhofer.de
















