Rechnerunterstützte Echtzeitsteuerung mit grafischer Bedienerschnittstelle für synchrone Antriebe mit dynamischer Drehzahländerung Martin Heine, Dipl.-Ing.(FH) Light Art Vision Germany 19.02.2001 2001 Light Art Vision, Martin Heine, Dipl.-Ing.(FH), Germany Alle Rechte, auch die Übersetzung in fremde Sprachen, vorbehalten. Kein Teil dieses Werkes darf ohne schriftliche Einwilligung von Light Art Vision, Martin Heine (Fotokopie, Mikrofilm oder ein anderes Verfahren), auch nicht für der Unterrichtsgestaltung, reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. 1
Einführung Auf dem Gebiet der Mechatronik und der Automatisierungstechnik komplexer Maschinen werden oft Bewegungsabläufe verlangt, die nicht nur Positioniervorgänge, vorprogrammierte Rampen, Bewegungsabläufe oder festgelegte Drehzahlregelungen vorgeben, sondern freiprogrammierbare drehzahlgesteuerte dynamische Vorgänge beherrschen. Systeme solcher Eigenschaften sind in der Regel sehr komplex, teuer und schwierig einzubinden. Für das automatisierte Falten und Legen eines extrem fragilen Vlieses über Kreuz z.b. werden vier Fließbänder sowie zwei horizontal bewegte Schlitten mit Schritt- oder Servo Motoren angetrieben. Damit das Vlies nicht reist und es sich an den Faltungskanten auch nicht aufwirft, müssen die Bewegungsabläufe jedes Antriebs exakt synchron, empirischer Kurven folgend, in der Drehzahl dynamisch und unterbrechungsfrei über eine festgelegte Strecke verändert werden. Im folgenden wird daher eine Steuerungslösung vorgestellt, die alle oben beschriebenen Forderungen erfüllt, auf einem handelsüblichen PC mit Open Source Echtzeitbetriebssystem nach GNU Lizenzierung basiert, und mit einer relativ einfachen Hardware ohne eigenen Prozessor auskommt. 2
Komponenten und prinzipielle Funktionsweise der Antriebssteuerung Antrieb und Schnittstelle Als Antrieb werden im oben genannten Beispiel Schrittmotoren gewählt. In der Antriebstechnik haben sich verschiedene Schnittstellensysteme unterschiedlicher Ebenen durchgesetzt. Eine für den erforderlichen Verwendungszweck am besten geeignete Schnittstelle ist die "Puls-Richtung-Schnittstelle". Schrittmotor Leistungsendstufen werden in der Regel über diese Schnittstelle angesteuert. Auch manche Servo Antriebe verfügen über diese Schnittstelle, sodass ein späterer direkter Austausch von Antriebssystemen unter bestimmten Bedingungen möglich ist. Die Puls-Richtung-Schnittstelle arbeitet nach dem Puls = Schritt Prinzip, d.h. pro Spannungs-Impuls dreht der Antrieb um genau ein Inkrement weiter. Ein Schrittmotor dreht sich damit um einen Schritt. Die Drehrichtung wird über eine zweite Leitung bestimmt. Ist diese Leitung auf logisch High, so dreht der Motor in die eine Richtung, ist sie Low, dreht er in die andere. Unterbrechungsfreie Pulsgenerierung mit programmierbarer Pulsfrequenz Die Schwierigkeit der Steuerung komplexer Bewegungsvorgänge liegt in der Forderung eines völlig unterbrechungsfreien Laufs der Antriebe bei ständiger synchroner Vorgabe neuer Drehzahlwerte, und das für mehrere Antriebe gleichzeitig. Um dies zu erreichen wird ein als Hardware aufgebauter binärer baustein verwendet, der als Rückwärtszähler geschaltet wird. Dieser wird mit einem Wert voreingestellt, von dem er wie in einer Schleife immer bis auf Null zurückgezählt. Jedes mal, wenn die Null erreicht wird, wird ein Puls erzeugt. Dieser Puls wird als Drehzalpuls der Puls-Richtungs-Schnittstelle verwendet. Wird nun der Vorgabewert geändert, dann zählt der nach dem nächsten Nulldurchgang vom neuen Vorgabewert aus rückwärts. Es entsteht also der gewünschte unterbrechungsfreie Übergang von einer Drehzahl zur nächsten. 3
Ansteuerung der Hardware über Parallelport Damit mehrere Motoren gleichzeitig synchron und schnell mit neuen Drehzahlwerten belegt werden können, werden die 8 Datenleitungen des Parallelports zu acht seriellen Leitungen umfunktioniert, wobei jede Leitung synchron Bit für Bit einer transponierten Drehzahlenvorgabe-Matrix in schiebt, bis das gesamte Byte (Wort eingelesen wurde. Danach werden wiederum synchron die Werte in den n auf die eingänge gelegt. Drehzahlvorgaben (Binär) 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 1 Parallelport Motor 1: Motor 2: Motor 3: Motor 4: Motor 5: Motor 6: Motor 7: Motor 8: Betriebssystem Da die Synchronisation aller Motoren-Drehzahl-Stützpunkte sehr zeitkritisch ist (bestimmt sie ja die Positionen der Drehzahländerung an den entsprechenden Punkten der Strecke), muss ein Betriebssystem ausgewählt werden, das wiederkehrende Vorgänge immer zu gleichen, definierten Zeitpunkten ausgibt, bzw. Eine Systemantwort in einem definierten Zeitfenster stattfindet. Hierbei eignet sich nur ein Echtzeitbetriebssystem. Für die oben genannte Fließband-Anwendung wird daher QNX eingesetzt. 4
Timing Die Drehzahländerungsstützpunkte werden aus einem auf der Hardware untergebrachten Quarz-Oszillator generiert. Diese Pulse liegen an einer der Input-Leitungen des Parallelports an, und fordern neue Daten an. Gleichzeitig wird mit dem gleichen Puls auch der Zwischenspeicher (Latch) zwischen den n und den n "upgedated". Dieser Zwischenspeicher ist notwendig, da nur dann ein neuer Vorgabewert für die anliegen darf, wenn der komplette neue Drehzahlwert im steht. Daten Anforderung und Latch-Update von der Hardware Daten vom PC 1 0 1 1 0 0 1 0 Synchonisations Clock für die Seriellen Daten Die Pulsfrequenz für die Stützpunkte der Drehzahl (Pulsfrequenz des Anforderungs- und Latchupdate Pulses) wird über Jumper auf der Hardware eingestellt. Die Anzahl der Stützpunkte über die Strecke ergibt sich damit aus der Stützpunktefrequenz und Gesamtzeit des Bewegungsvorgangs und ist konstant. Beispiel: 5
Datenschnittstelle zur Programmierung der Bewegungsabläufe Da die Berechnung der einzelnen Drehzahl/Geschwindigkeitsstützpunkte und Interpolationen zur Gesamtheit des Bewegungsablaufs in der Regel aus einer mathematischen Software erfolgt, deren Output eine Liste von Zahlen ist in einer ASCII-Datei ist, ist die Schnittstelle so definiert, daß eine speziell formatierte ASCII Datei mit allen Werten für jeden Motor (mit Trennzeichen getrennt) in einem vorgesehenen Verzeichnis auf der Festplatte hinterlegt wird. Die Steuersoftware öffnet diese Datei, speichert alle Werte in entsprechende Variablenfelder, und fährt die Drehzahlen hintereinander in oben beschriebenem Zeitmuster ab. Die Drehzahldaten sind aus 16Bit abgewandelte Dezimalwerte von 0-65535 und haben noch einen 8-Bit Flag- Parametervorsatz (binär) mit Endstufenfreigabe, Drehrichtung, Schrittweite (Voll, Halb), Schrittweite (Viertel/Achtel), wobei die letzten 4-Bit alle auf 1 gesetzt sind. (Frei für spätere Erweiterungen) Beispiel für eine einfache Bewegungsdatei: Dateiname: test1.dyn; Datum:02/20/2001; Bearbeiter: Martin Heine; DRV1;DRV2;DRV3;DRV4;DRV5;DRV6 1000111100400;1000111100500;1000111100600;1000111100400;1000111100300;1000111100200; 1000111100500;1000111100600;1000111100700;1000111100360;1000111100260;1000111100150; 1000111100300;1000111100650;1000111100250;1000111100200;1000111100300;1000111100600; 1000111100100;1000111100145;1000111100235;1000111100500;1000111100200;1000111100140; 1000111100200;1000111100500;1000111100800;1000111101400;1000111102400;1000111101200; 1000111100400;1000111100500;1000111100600;1000111100400;1000111100300;1000111100200; 1000111100500;1000111100600;1000111100700;1000111100360;1000111100260;1000111100150; 1000111100300;1000111100650;1000111100250;1000111100200;1000111100300;1000111100600; 1000111100100;1000111100145;1000111100235;1000111100500;1000111100200;1000111100140; 1000111100200;1000111100500;1000111100800;1000111101400;1000111102400;1000111101200;.. Hardwareaufbau für 6-Antriebe Die Hardware ist als Leiterplatte im EURO-Karten Format zum Einbau in ein Gehäuse oder Schaltschrank aufgebaut und beinhaltet einen 25 Poligen Stecker zum Anschluss an den Parallelport eines PCs, sowie 4-Polige Steckanschlüsse mit Schraubenklemmen für den Anschluss von maximal 6 Antrieben mit Puls-Richtungs-Schnittstelle und Schrittweitenleitung. (Drehzahlpuls/Ruichtung/Schrittweite/Masse). Software User Interface und Funktion Das Software User Interface besteht aus einem grafisches Fenster (PhaB, QNX) mit Start- und Stop- und Beenden Button. Alle internen mathematischen Algorithmen sind in C (ANSI C) geschrieben und Start: Motoren fahren erst auf eine vor definierte (fest eingestellt über einen mechanischen Referenz-Schalter) Referenzenposition und beginnen daraufhin automatisch mit dem in der hinterlegten ASCII Datei vorgeschriebenen Bewegungsablauf. Stop: Alle Motoren werden sofort gestoppt! Beenden: Programm wird beendet. 6
Martin Heine Dipl.-Ing.(FH) Light Art Vision Germany 7