Moin,
das hängt vom Modell, der genauen Stellung der Achsen und den Achskonfigurationen ab.
Wenn der FANUC ziemlich gestreckt steht, könntest Du probieren eine zweite Vorpos über dem Bauteil mit L ... MROT anzufahren.
(In dem Beispiel wird vorausgesetzt, daß +Z Stoßrichtung ist und das Bauteil genau in Stoßrichtung liegt)
J PR[1:Vorpos] 100% FINE
! 10mm von Vorpos Richtung Bauteil in +Z
PR[3:Offset]=PR[3:Offset]-PR[3:Offset]
PR[3,3:Offset]=...
L PR[2:Bauteil] 50mm/sec FINE Tool_Offset,PR[3:Offset] MROT
L PR[2:Bauteil] 50mm/sec FINE
Das Offset (Zeile 5) musst Du dabei so wählen, dass Achse 4 da bereits das Achslimit überschritten haben würde. Dann sollte der FANUC wegen des MROT Achse 4 passend umorientieren. Je weniger gestreckt der FANUC steht, desto wilder könnte auf dem Weg zu dieser Position der Tanz ausfallen, den Achse 5 und/oder 6 aufführen, weil die u.U. sehr viel umorientieren müssen.
Bei mir ging das so leider nicht. Ich bekomme auch Zielpositionen von der SPS. Ich habe testweise in 100mm Raster alle Positionen angefahren, um zu schauen, mit welcher Achskonfiguration sie erreichbar sind. Im Programm lade ich nun vorab anhand der Zielposition ein PR mit einer passenden Achskonfiguration aus und schreibe die Zielkoordinaten (XYZWPR) noch dazu. Es bläht den Code auf und sieht nicht schön aus, aber es funktioniert immerhin.
!CONF anhand Zielquadrant laden
IF (PR[78,2:MP pos next part]>(-501)) THEN ;
IF (PR[78,1:MP pos next part]<101) THEN ;
PR[70:MP pre pos]=PR[91:FUB] ;
PR[71:MP over MP]=PR[91:FUB] ;
...
ELSE ;
PR[70:MP pre pos]=PR[89:FDT] ;
PR[71:MP over MP]=PR[89:FDT] ;
...
ENDIF ;
ELSE ;
PR[70:MP pre pos]=PR[90:FUT] ;
PR[71:MP over MP]=PR[90:FUT] ;
...
ENDIF ;
!Positionsdaten schreiben
PR[70,1:MP pre pos]=...;
PR[70,2:MP pre pos]=...;
PR[70,3:MP pre pos]=...;
PR[70,4:MP pre pos]=...;
PR[70,5:MP pre pos]=...;
PR[70,6:MP pre pos]=...;
PR[71,1:MP over MP]=...;
PR[71,2:MP over MP]=...;
...
Alles anzeigen
Gruß
Jörn