Hallo
Ich habe eine Suchfahrt mit Abbruchinterrupt programmiert. Soweit funktioniert auch alles, ich habe nur noch ein kleines Problem und zwar suche ich mit der suchfahrt und Vacuumsaugern einen ab zu stabelndes Zwischenlagen Magazin ab. Jetzt müsste ich aber ab einer gewissen Fahrtiefe sagen, das das Magazin leer ist obwohl der Roboter bei der Suchfahrt immer noch Zwischenlagen findet, da selbst die Bodenplatte des Magazins vom Roboter als Zwischenlage erkannt werden würde. Nun habe ich verschiedene Systemvariablen getestet.
$Pos_Act, $Tool_C, $Pos_Int aber alle diese Variablen liefern mir die selben Werte zurück, zumindest konnte ich, da ich die Anlage nicht so lange blockieren durfte auf die schnelle keine Unterschiede sehen.
Habe ich nicht richtig hingesehen oder kann das wirklich sein das all diese Variablen die selben Werte liefern? Oder liegt das ganz und gar an meiner Bewegungssyntax bei der Suchfahrt?
DEF ZwLage_suchen()
IF ServiceTuereWarOffen then
;langsame suchfahrt nach dem neue Zwischenlagen eingelegt wurden
BAS(#VEL_CP,0.8) ;LIN-Geschwindigkeit
BAS(#TOOL,16) ;ZwichenLagen_Greifer
LIN $POS_ACT: {X 0.0, Y -100.0, Z 0.0, A 0.0, B 0.0, C 0.0} C_dis
;ab hier wird gesucht
BAS(#VEL_CP,0.03) ;LIN-Geschwindigkeit
BAS(#TOOL,16) ;ZwichenLagen_Greifer
LIN $POS_ACT: {X 0.0, Y -300.0, Z 0.0, A 0.0, B 0.0, C 0.0}
else
;schnelle suchfahrt wenn nach einmal Türe öffnen/schliessen mit einer langsamen die richtige Stapelhöhe ermittelt wurde
BAS(#VEL_CP,0.8) ;LIN-Geschwindigkeit
BAS(#TOOL,16) ;ZwichenLagen_Greifer
LIN xlastGrip: {X 0.0, Y 2.0, Z 0.0, A 0.0, B 0.0, C 0.0} C_dis
BAS(#VEL_CP,0.03) ;LIN-Geschwindigkeit
BAS(#TOOL,16) ;ZwichenLagen_Greifer
LIN $POS_ACT: {X 0.0, Y -6.0, Z 0.0, A 0.0, B 0.0, C 0.0}
endif
END
Display More
Im Interrupt wird bei erfolgreicher Suchfahrt die Position zwischen gespeichert.
Welche Positions Variable müsste ich abfragen um irgendwann mal zu sagen, das die Zwischenlagen leer sind?
Danke
Mit freundlichen Grüßen
Wasdel