Hallo zusammen,
ich würde gerrne folgendes realisieren:
Bei einer sensorgeführten Applikation bricht die RSI-Schnittstelle zusammen. Der Roboter muss nu aus dem Gefahrenbereich herausgefahren werden, da sich das Werkstück bewegt (undefiniert). Deshalb schalte ich in den Momentenbetrieb, damit das Werkstück den Roboter im Kollisionsfall wegdrücken kann. Dann ist aber ja so dass der Roboter seine berechnete Bahn halten will und sobald die wirkende Kraft wieder weg ist, bewegt sich der Roboter wieder auf seine alte Bahn. Das möchte ich aber nicht, da es passieren kann, dass das Werkstück den gleichen Weg noch einmal macht und dann evtl. wieder gegen den Roboter fährt. Deshalb soll die Bahn, nachdem das Wekstück weg ist, von dem aktuellen Punkt neu berechnet werden. Hatte mir dazu folgenes überlegt, weiß aber nicht welche Systemvariablen bzw. Bedingungen ich dafür nutzen kann:
auszug Hauptprogramm:
Interrupt Decl 20 WHEN NOT $NEAR_POSRET DO UP_20 ;dieser Interrupt soll ausgeführt werden, wenn der Roboter weggedrückt wird
Interrupt Decl 10 WHEN xxxx DO UP_10() ;dieser Interrupt soll ausgeführt werden, wenn nicht mehr gedrückt wird
Interrupt on 20
b_pos_erreicht = false
repeat
$ov_pro = 100
TRIGGER WHEN DISTANCE=0 DELAY=0 DO b_pos_erreicht = TRUE
ptp xhome
until b_pos_erreicht
interrupt off 10
interrupt off 20
Interruptroutine 1:
UP_20 ()
interrupt off 20
interrupt on 10
$ov_pro = 0
lin_rel {z 1}
end
Interruptroutine 2
UP_10()
interrupt off 10
interrupt on 20
$ov_pro = 100
resume
end
nochmal zum Verständnis:
Der Roboter soll in Home fahren. Wenn während dieser Fahrt eine Kraft auf den Roboter ausgeübt wird, schalte ich die Geschwindigkeit auf null, damit der Roboter nicht dagegenhält. Wenn die Kraft nicht mehr wirkt schaltet der interrupt 10, die Geschwindigkeit wird wieder hochgesetzt und über resume zurück ist Hauptprogramm gesprungen. Wenn die Homeposition noch nicht erreicht ist (NOT b_pos_erreicht) soll die Schleife weiterlaufen und der Roboter von der aktuellen Position eine Bahn zur Homeposition berechnen und abfahren.
ich hoffe es ist einigermaßen klar geworden!?!
Gibt es eine Variable die mir im Momentenbetrieb mitteilt ob eine äußere Kraft auf den Roboter wirkt, bzw. nicht wirkt?
danke schonmal und wenn etwas unklar ist versuche ich die Beschreibung besser hinzukriegen :angel:
gruß, buschke