| | Der Schweißroboter mit Bedienpanel und TeachIn
Aufbau : wie gehabt.
Vorgestellt werden der Einsatz eines Bedienpanels mit
Positionsanzeige und eine einfache TeachIn-Lösung für den Schweißroboter zur
Bestimmung der Schweißpositionen. Das Programm verwendet einige Komponenten der
vorherigen Schweißroboter-Programme : Home, DriveTo, Schweissen sind geblieben,
Das Main wurde in das neue UP Play verlagert. Hinzugekommen sind : Das Panel,
ein neues Main, Record, Store und Go.
Das Bedienpanel
|
Oben die Anzeige der aktuellen Position.
Das Update der Position erfolgt über Bedienfeldausgänge, die in Home,
Play und Go platziert sind. Die Elemente des Bedienfeldes selber sind alle
dem zentral dem Main zugeordnet.
Play startet den Schweißablauf, geschweißt wird solange, wie
Play gedrückt ist (Play hat dazu eine Rastfunktion bekommen). Die
Schweiß-Positionen werden der Tabelle Positionen entnommen.
Record startet eine Aufzeichnung durch Anfahren der
Home-Position und Löschen der Positionstabelle.
Go läßt den Robot nach rechts (weg vom Endtaster) fahren, das
gilt solange er (der Button) gedrückt ist (keine Rastfunktion).
Store speichert die aktuelle Position aus ActPos durch Anhängen
an Tabelle Positionen.
End beendet den Aufzeichnungsmodus. |
Der Main-Loop
|
Im Main werden die Bedienfeldeingänge Play
und Record in einer Endlosschleife abgefragt. Im zutreffenden Fall
werden dann die UP's Play und Record aufgerufen.
Die Bedienfeldeingänge lösen selber keine Ereignisse aus, deswegen
hier die etwas umständliche Schleifenlösung, die auch bei Record
nocheinmal wieder auftaucht. |
Das Aufzeichnen : Record, Go und Store
|
Anfahren der Home Position. Löschen
der Tabelle Positionen durch Entfernen der letzten 101 Elemente. Da die
Tabelle nur 100 Elemente aufnehmen kann ist sie dann leer. Loop
in dem der Go, der Store und der End-Button abgefragt werden. Im
zutreffenden Fall werden dann Go und Store auf gerufen. Bei End wird nach
Anfahren der Home-Positionen das UP verlassen. Hinweis : Die Buttons
sind auf dem Bedienfeld von Main platziert. Hinweis 2 : Ein Drücken
eines Buttons ist so schnell, daß Maßnahmen zur Vermeidung eines
Mehrfachaufrufs eines UP's getroffen werden müssen. Dazu wird in Go die
globale Variable PosOK beim Verlassen auf 1 (true) gesetzt. Store
seinerseits nimmt die Arbeit nur auf, wenn PosOK = 1 ist und setzt selber
PosOK auf 0 (false). |
Das Ansteuern einer Position
|
Starten des Säulenmotors Warten auf Impulstaster,
erhöhen um 1 und Speichern in ActPos, wenn Go immernoch gedrückt in
Schleife zum Impulszählen. Verlassen des UP's, wenn Go nicht
mehr gedrückt ist, vorher noch PosOK = true signalisieren. Die aktuelle
Position wird dem Bedienfeldausgang PosX (in Main) übergeben. |
Speichern der aktuellen Position
|
Bevor es mit dem Speichern losgeht, erstmal
fragen, ob es auch erlaubt ist : PosOk = true. In diesem Fall wird es dann
gleich auf 0 (false) gesetzt um beim Speichern nicht gestört zu werden.
Das Speichern der ActPos geschieht über einen entsprechenden
Tabellenbefehl, der den Wert von ActPos hinten an die Tabelle anhängt.
Angesteuert wird der S(Speicheren)-Eingang von Positionen.
Das Speichern ist die einfachere Übung, Schwierigkeiten macht das
fehlende Click-Ereignes des Store-Buttons.
|
Das wars denn auch schon. Man kann sich das Leben natürlich noch
komplizierter einrichten, wenn man sich einem Industry Robot zuwendet. Doch das
kriegen wir später.
Stand : 09.03.2005
|