Guten Abend!
Ich habe gerade ein Problem, dass mich fast in den Wahnsinn treibt .
Ablauf der funktioniert:
- Eine Werkstückbasis (Base[4]) wird bei jedem Robotertakt über den Geometrischen Operator neu berechnet (Kamerasystem).
- In dieser Base sind eine Vorposition und eine Nachposition fest geteacht.
- Bei jedem Robotertakt ändert sich die Werkstückbasis und somit auch die geteachten Punkte.
- Der Roboter kann das Werkstück greifen.
Da ich das Werkstück je nach Orientierung mit 0 bzw. 180 Grad aufnehmen muss, gibt es diesen Ablauf 2 mal.
Mein Problem ist, dass ich nur noch Greifposition teachen und die anderen in abhängigkeit von der Greifpos berechnen möchte.
(20 unterschiedliche Werkstücke mal oben genannten Ablauf = 80 Punkte zu teachen bei Inbetriebnahme => Mein Grund)
Wie kann ich also eine Greifposition, die aufgrund des Kamerasysstems in E6POS geteacht ist, mit 0 oder 180 Grad genau anfahren und eine Vorposition und Nachposition
in Abhängigkeit dieser berechnen?
Mein Versuch:
;in der .dat-File
DECL INT err_status
DECL E6AXIS GREIFEN={XYZABC.fest geteacht.}
DECL E6POS Greifen2
DECL FRAME Vorpos
DECL FRAME Nachpos
-----------------------------
in der .src file
goto xy
PTP Greifen .... ;muss getetacht werden
xy:
$BASE=BASE_DATA[14]
$TOOL=TOOL_DATA[2]
if (Teil_0Grd==TRUE) then
PTP P1_Grundpos C_PTP ;Ausgangsposition
P1_Grundpos.A6 = 0
Greifen.A6 = 0 ;Greifen mit 0 Grad
else
PTP P1_Grundpos C_PTP
P1_Grundpos.A6 = 180
Greifen.A6 = 180 ;Greifen mit 180 Grad
endif
Greifen2 = Forward(Greifen, err_status) ;E6POS zu E6AXIS machen
if (err_status==0) THEN
Vorpos = Greifen2 ;Vorpos berechnen
Vorpos.x = Greifen2.x - 100
LIN Vorpos ;Vorpos anfahren
LIN Greifen2 ;Greifpos2 mit A6 = 0 oder 180 Grad anfahren
WerkzeugZu ()
;Nachpos berechnen ....
else
LOOP
;Fehler
ENDLOOP
Alles anzeigen
Die Rechnerrei funktioniert soweit, aber im 2 Roboterzyklus wird der selbe Greifpunkt angefahren,
obwohl die Basis [4] (Werkstück) verschoben wurde.
Oder gibt es eine einfachere Möglichkeit???
Problem ist halt, dass Greifpos als E6POS geteacht ist und diese mit 0 oder 180 Grad angefahren werden muss.
Danke schon mal!