english deutsch
BootUp GmbH
 
 
 
 
 
 
 

H. A. Schlatter AG
Innoflex Steuerung und Bedienung

Im Rahmen des Innoflex-Projekts wurde eine verteilte, PC-basierte Steuerung entwickelt. Diese dient der Steuerung von Gitterschweissmaschinen. Diese Maschinen sind modular aufgebaut und varieren stark in ihrer Zusammensetzung. Damit die Steuerung auf diese variable Konfiguration reagieren kann, verfügt jedes Modul über ein eingenes Steuerungsprogramm. Dies kann auf irgend ein Rechengerät der Anlage geladen werden. Ein übergeordnetes Masterprogramm übernimmt die Koordination der Module und kommandiert diese gemäss den Erfordernissen des herzustellenden Produkts.

Funktionsprinzip

Die Bewegungsabläufe der Schweissmaschienen sind grösstenteils Sequenzen von aneinander gereihten oder parallelen Einzelbewegungen. Die Essenz liegt im richtigen Timing der Bewegungen zu einnander und dem Erkennen der Abhängigkeiten. Regelkreise sind eher selten.
Wegen der Sequenzlastigkeit des Prozesses ist die Steuerung voll ereignisorientiert aufgebaut. Dies hat den Lösungsansatz geprägt.

Die Software basiert auf einer Komponenten Struktur. Jede Komponente bedient entweder direkt ein Maschinenteil wie zB. ein pneumatischer Zylinder oder ein Antrieb etc. oder steuert ein Verbund von Unterkomponenten. Die Komponenten bilden ein hierarchisches System.
Jede Komponente verfügt über eine Befehlsschnittstelle über welche sie kommandiert wird. Diese Schnittstelle stellt sie in Form einer XML-Beschreibung den übergeordneten Komponenten zur Verfügung. Alle Kommandierungen erfolgen über Meldungen.
Die verschiedenen Rechner tauschen über UDP-Telegramme aus, wobei das Meldungsaufkommen so geregelt wird, dass ein deterministisches Verhalten des Netzes gewährleistet ist. Als Feldbus zu den IO-Modulen und Antrieben dient CAN und Profibus.

PC-Hardware, Betriebssysteme und Feldbusse

Die PC-Hardware ist sehr kurzlebig. Daher sind das Betriebsystem wie auch alle Feldbustreiber gekappselt. Der Austausch des Betriebsystems ist mit wenig Aufwand möglich und in einigen wenigen Manntagen zu bewerkstelligen. Dies gilt auch für die Anbindung anderer Feldbusse oder den Ausstausch der Rechner-HW.

Entwicklungsumgebung / Framework

Die Applikationen werden in C++ entwickelt. Es wird MS Visual Studion 6.0 verwendet.
Um die Effizienz der Applikationserstellung zu steigern, basieren die Applikationen auf einem Framework. Das Framework definiert wie Komponenten aufzubauen sind und es stellt entsprechende Klassen zur Verfügung.
Das Framwork beinhaltet folgende Dienste:
Komponenten:
Komponenten verfügen über eigenen Kontrollfluss(Thread) oder teilen diesen mit anderen Komponenten. Komponenten kommunizieren nur über Meldungen oder Infopunkte miteinander. Dadurch werden Dateninkonsistenzen durch Multitasking vermieden. Jede Komponente wartet auf eine Meldung in ihrer Eingangsqueue. Liegt eine entsprechende Meldung vor, so "erwacht" die Komponente, verarbeitet die Meldung und erzeugt gegebenenfalls neue Meldungen an andere Komponenten. Direkte Datenzugriffe auf andere Komponenten sind nicht nötig. Diese Methodik erlaubt auch unerfahrenen Programmierern, Multitaskingsysteme zu erstellen ohne je mit Deadlocks und Critical Sections etc. konfrontiert zu werden.
Das Framework unterstützt das Erstellen der Meldungen und transportiert diese zu der angesprochen Komponente. Beim Transport spielt es keine Rolle ob sich die Zielkomponente in der gleichen Applikation, in einer Applikation auf dem selben Rechner oder irgendwo im Netz befindet.
Infopunkte:
Bilden Signale ab. Typischerweise verfügt eine Komponente über Eingangs- und Ausgangssignale. Diese werden durch Infopunkte dargestellt. Eine Eigenschaft der Infopunkte ist, dass sie sich untereinander verknüpfen lassen. So kann man ein Eingangsinfopunkt mit einem Ausgangsinfopunkt einer vorgeschalteten Komponente verknüpfen. Der Eingangsinfopunkt "folgt" so dem Ausgangsinfopunkt. Der Abgleich erfolgt mittels Meldungen ereignisgesteuert bei Änderungen der Ausgangsinfopunkts. Immer wenn die vorgelagerte Komponente den Ausgangsinfopunkt beschreibt und sich sein Wert ändert, schickt dieser entsprechende Meldungen and alle Infopunkte welche ihm "folgen". Hierbei gelten die selben Transportregeln wie unter den Komponenten. Das heisst Quelleninfopunkt (Ausgangsinfopunkt) und Senkeninfopunkt(Eingangsinfopunkt) können sich auf verschiedenen Rechnern befinden. Die Verknüpfung der Infopunkte kann hart codiert werden, wird aber typischerweise konfiguriert. Somit lassen sich Komponenten unabhängig von ihrem Umfeld programmieren.
Browser:
Der Browser ist ein Debuggingwerkzeug welches auf einem WindowsPC läuft. Die Komponenten stellen alle Befehle(Meldungen), welche sie verarbeiten können, und die Liste aller Infopunkte als XML-Beschriebung zur Verfügung. Der Browser beschafft sich alle Beschreibungen, wenn er an ein Anlagennetz angeschlossen wird und stellt sie als hierarchischen Baum dar. Über den Browser kann nun zu einer beliebigen Komponente navigiert werden und dort einer der Befehle ausgelöst werden. Auch die Infopunkte lassen sich verändern oder beobachten.

< zurück