Hallo zusammen,
Beim Programmabfahren bekomme ich die Quittiermeldung, dass mein Überschleifen nicht möglich sei.
Mein Programm soll mit maximaler Geschwindigkeit an die "Vorposition" fahren, soll ab hier mit 0.1m/s auf die "Startposition" weiterfahren, dann auf die "Endposition", dann auf die "Nachposition" und ab dann wieder mit maximaler Geschwindigkeit auf die nächste "Vorposition" fahren.
Alle Positionen werden überschliffen.
Die Vor und Nachpositionen sind nur dafür da, dass zwischen Start und Ende sicher 0.1m/s besteht. Das Beschleunigen und Bremsen soll zwischen Vorposition und Start bzw zwischen Ende und Nachposition passieren.
Dieses Bewegungsmuster wird mehrfach wiederholt für mehrere Positionen die sich alle auf einer Achse befinden.
Wenn ich das Abfahre bekomme ich an allen Positionen die Quittiermeldung, dass das Überschleifen nicht möglich sei.
Habe darauf hin die schnelle Phase von 2m/s auf 0.5 m/s gesetzt und die langsame Phase ist weiterhin 0.1 m/s. Nun bekomme ich die Meldung nur noch für die letzten 3 Positionen meiner Schleife. Wenn ich nun den Abstand zwischen Vorposition und Startposition erhöhe, bzw die Geschwindigkeitsdifferenz nochmal kleiner mache, bekomme ich evtl auch diese 3 letzten Meldungen weg. Das konnte ich allerdings noch nicht testen.
Dazu habe ich eine grundsätzliche Frage:
Dadurch dass durch die Geschwindigkeitsreduzierung bei weniger Punkten Probleme mit der Überschleifung verursacht werden (zumindest nach den Quittiermeldungen zu urteilen), frage ich mich wie der Roboter grundsätzlich die Überschleifung regelt. Wenn er die gewollten 2m/s zwischen Nachposition und Vorposition nicht erreichen kann, weil zum Beispiel die Distanz zwischen den Punkten zu gering ist, findet dann kein Überschleifen statt (so scheint es mir nach meinem Versuch)?
Oder regelt er auf die maximal mögliche Geschwindigkeit und sollte eigentlich die Überschleifung dennoch machen (so hätte ich es erwartet und so wollte ich es auch programmieren)? Auch wenn er dabei nicht die geforderten 2m/s erreicht.
Angehängt noch mein Code. Evtl. hab ich auch einfach hier einen Fehler.
Vielen Dank im Vorraus für jede Hilfe!!
;fold Standard-Bewegungsparameter
$Tool=TOOL_DATA[1] ;1=Optik+Halterung
$base=BASE_DATA[2] ;2=Base WT1
$ipo_mode=#Base ;Robotergeführtes Werkzeug
;für LIN und Circ
;Geschwindigkeit
$Vel.CP = 0.5 ;Bahnbewegung LIN oder Circ in m/s
$VEL.ORI1 = 150 ;Schwenkgeschw. in °/s
$VEL.ORI2 = 200 ;Drehgeschw. in °/s
;Beschleunigung
$ACC.CP = 2.0 ;Bahnbeschleunigung in m/s2
$ACC.ORI1 = 150 ;Schwenkbeschleunigung in °/s2
$ACC.ORI2 = 200 ;Drehbeschleunigung in °/s2
;Ruck (Änderung der Beschleunigung °/s3)
$JERK={CP 50.0, ORI 50000.0, AX {A1 1000.0, A2 1000.0, A3 1000.0, A4 1000.0, A5 1000.0, A6 1000.0}}
;Überschleifdistanz (die Entfernung zum Zielpunkt muss den Wert unterschreiten)
$APO.CDIS = 10; in mm
;Orientierung während der Bewegung
$ORI_TYPE = #Var ;während der Bewegung verändert sich Orientierung zur Orientierung des Zielpunktes
;endfold
;Eine Position nach der anderen anfahren
FOR zaehler = 1 TO AnzahlSP STEP 1
;Vorposition, damit bei Schweissstart schon richtiges Tempo vorhanden
slin Vorposition[zaehler] C_SPL
;Geschwindigkeit beim Schweissen auf 0.1 m/s reduzieren
$Vel.CP = 0.1
;Schweissstart ausgeklammert
slin StartSP[zaehler] C_SPL
;Schweissende ausgeklammert
slin EndeSP[zaehler] C_SPL
;Nachposition, damit Geschwindigkeit bis Ende sicher gehalten wird aber Punkt dennoch ueberschliffen wird
slin nachposition[zaehler] C_SPL
;Geschwindigkeit zwischen den Positionen auf 2 m/s
$Vel.CP = 0.5
ENDFOR
Alles anzeigen