Überschleifen von externen Achsen

  • Hallo zusammen,


    hoffe ihr könnt mir helfen. Ich habe einen Roboter mit 6 Achsen + 1 Achse für Shuttle + 1 Achse für den Greifer.
    Da der Roboter sehr taktzeitkritisch ist, habe ich versucht die Punkte mehr zu Überschleifen um ein wenig Zeit zu sparen.
    Leider lassen sich die 2 extra Achsen nur sehr wenig überschleifen.
    Aus der Dokumentation kann ich entnehmen das es einen Parameter gibt der die maximale Überschleidistanz angibt.
    Dies liegt bei beiden Zusatzchsen bei 500. Da es Linearachsen sind, nehme ich an Millimeter.
    Dies sollte ausreichen, da ich mit dem Greifer max. 500 mm fahre.


    Meine KRC Version ist noch die KRC1 mit V 4.1.x


    Habt ihr damit irgendwelche Erfahrung?


    Grüße

  • Schritt für Schritt zum Roboterprofi!
  • spontan erstmal eine Frage: Welchen Überschleifparameter benutzt du?
    Wenn du mit Inline-Formularen fährst, musst du mal eine Zeile mit einem ILF auswählen und den Fold öffnen. Nach dem Verfahrbefehl in der letzten Zeile des Fold steht sowas wie "C_DIS", "C_VEL" oder "C_ORI"
    dort sollte C_DIS stehen in deinem Fall.


    Und naja: es bringt nix die maximal mögliche Überschleifdistanz zu ändern, wenn die Verfahrbefehle diese nicht auch benutzen. wenn du mit ILF programmierst, ist es ja einfach zu ändern. Schreibst du aber "zu Fuß": der Parameter "APO_DIST" einer Bewegung legt die verwendete Überschleifdistanz fest.


    mfg speed

    200% Override ... irgendwas klingt hier komisch ... und irgendwie riecht es auch ...<br /><br />Abkühlzeit Bremsen Achse 2: 57 Sekunden :D

  • Hi,
    schau dir auch mal $ADVANCE an, Vorlaufzeiger, Standard $ADVANCE=3!!!

  • Hallo,


    schau dir mal in Variable->Anzeige-Einzeln den Wert $APO an. Über die Inlineformulare wird nur die Komponente C_DIS gesetzt. Zusatzachsen verwenden aber immer den Wert im C_PTP, der im Defaultfall sehr klein sein kann. so dass faktisch kein Überschleifen sichtbar wird.


    Gruß
    Fubini

  • jetz muss ich selber nochma nachfragen, nich dass ich hier mist erzähle...


    fubini:
    warum wird dabei nur der wert c_ptp beachtet? wenn ich eine linear-bewegung habe gibt es doch "C_DIS", "C_VEL" oder "C_ORI"
    oder wie muss ich das verstehen?

    200% Override ... irgendwas klingt hier komisch ... und irgendwie riecht es auch ...<br /><br />Abkühlzeit Bremsen Achse 2: 57 Sekunden :D

  • Hallo,


    Code
    warum wird dabei nur der wert c_ptp beachtet?


    sorry, war vielleicht nicht ganz präzise formuliert:
    In der Steuerung findet immer eine Trennung der Betrachtung der Zusatzachsen und der Roboterachsen statt und danach wird das Minimum beider Kriterien verwendet:


    Beispiel:
    Angenommen du schreibst etwas in dieser Art
    $APO.CDIS = 100 (oder $APO.CVEL oder $APO.CORI)
    $APO.CPTP = 10
    LIN P1 C_DIS
    LIN P2
    und hast Zusatzachsen. Dann wird für den Roboter der Wert aus $APO.CDIS angewendet, und hätte man nur einen Roboter, also keine Zusatzachsen beginnt ca. 100 mm vor P2 das Überschleifen.


    Nachdem Zusatzachsen aber immer PTP verfahren werden (d.h. auf kürzestem Weg vom Start- zum Zielpunkt) kommt bei ihnen auch das gleiche Kriterium wie wenn der Roboter PTP gefahren wäre, zum Einsatz: also C_PTP. Angenommen also die Strecke der (linearen!) Zusatzachse auf dem Weg von P1 zu P2 wäre 500 mm lang, dann heißt das wegen den Zusatzachsen wird 500mm*10%=50 mm vor erreichen von P2 angefangen zu Überschleifen. Nachdem die Steuerung aber immer das Minimum aus beiden Kriterien bildet, gilt also min(100 (CDIS, Roboter), 50 (CPTP, Zusatzachsen)) = 50 und es wirkt also das C_PTP der Zusatzachsen. Analog könnte man sich natürlich auch Fälle konstruieren in denen das C_DIS beim Roboter gewinnt.


    Gruß
    Fubini

    Einmal editiert, zuletzt von fubini ()

  • klingt plausibel.. außer dass 10% = 25mm, weil 100% = 250mm wären bei 500mm insgesamt...spielt aber jetz keine rolle


    ich kann aber doch zb sagen:


    LIN {X 1000, Y 1000, Z 1000, A 0, B 0, C 0, E2 1000}
    LIN_REL {E2 500} C_DIS
    LIN {E2 1000}


    die drei zeilen würden ja bewirken, dass eine Position fest angefahren wird und dann nur die externe Achse ein Stück verfahren würde und wieder zurück (sinnvoll oder nicht... egal)
    Dabei würde doch der zweite Punkt überschliffen (oder etwa nicht?)
    und trotzdem würde in dem fall der wert von C_PTP eine rolle spielen und nicht von C_DIS?


    ich frag so nach, weil ich es nicht probieren kann (mir ist es noch nicht gelungen externe achsen mit kuka sim pro / office lite dazu zu bringen sich zu bewegen)


    mfg speed

    200% Override ... irgendwas klingt hier komisch ... und irgendwie riecht es auch ...<br /><br />Abkühlzeit Bremsen Achse 2: 57 Sekunden :D

  • Hallo,


    SpeedFreak:


    Zitat

    trotzdem würde in dem fall der wert von C_PTP eine rolle spielen und nicht von C_DIS?


    Ja, das ist m.E. so. Ich gehe gar so weit zu behaupten, dass die Zusatzachse mit diesem Programm


    PTP {X 1000, Y 1000, Z 1000, A 0, B 0, C 0, E2 1000}
    PTP_REL {E2 500} C_PTP
    PTP {E2 1000}


    exakt die gleiche Bewegung fahren würde wie mit deinem.


    Nochmal zur Klarstellung:
    Der Bewegungsbefehl LIN/CIRC oder PTP sagt nichts über Zusatzachsen aus, sondern bei z.B. LIN sagst du der Roboter soll eine Gerade im Raum fahren. Die Zusatzachsen fahren immer PTP.
    Angenommen du hast als Zusatzachskinematik z.B. einen Drehkipptisch, dann kannst du diesem ja nicht sagen er soll eine kartesische Position (x,y) anfahren, sondern nur fahre E1 und E2 von Achsposition 1 auf Achsposition 2. Die Steuerung wählt dann den kürzesten Weg, fährt also PTP mit den Zusatzachsen.


    Gruß
    Fubini

    Einmal editiert, zuletzt von fubini ()

  • Danke euch mal so weit für eure Antworten.
    Ich habe heute noch mal ein paar Versuche gemacht.
    Ich verwende jetzt nur noch PTP mit C_PTP.
    Kann also das Problem mit LIN bewegung ausschließen.
    $Advance kann eigentlich auch nicht das Problem sein, da er Überschleift, aber nur sehr wenig.
    $APO.CPTP ist auch auf 100 eingestellt, trotzdem wird nur sehr wenig überschlieffen.
    Und sonst gibts ja keine Parameter, oder?

  • ich kann aus irgendeinem grund in diesem thread nicht mehr antworten, wenn der text länger als eine zeile ist...

    200% Override ... irgendwas klingt hier komisch ... und irgendwie riecht es auch ...<br /><br />Abkühlzeit Bremsen Achse 2: 57 Sekunden :D


  • ich kann aus irgendeinem grund in diesem thread nicht mehr antworten, wenn der text länger als eine zeile ist...


    Warum auch immer - es ist nicht festzustellen. Wie schon besprochen: Eröffne einen neuen Thread!

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden