$ADVANCE

  • Hallo!


    Eine Frage:


    Was bringt denn ein $ADVANCE > 1.
    $ADVANCE =1 -> um überschleifen zu können.


    Doch was ändert sich im Programmablauf (ausser dass eben Vorlauf größer ist) wenn $ADVANCE auf 2, 3, 4...usw. gesetzt wird?


    Gruß
    Stefan

  • Schritt für Schritt zum Roboterprofi!
  • z.B. die Ausgänge werden immer früher gesetzt, je nachdem wo sich der Vorlaufzeiger findet.

    Menschen brauchen Roboter, aber auch Roboter brauchen Menschen.

    Roboter sichern die Arbeitsplätze und den Fortschritt der Industrieländer, da sie kostengünstig und qualitativ hochwertig produzieren.

    Ohne Automatisierung mit Robotern werden unsere Produkte in Billiglohnländern hergestellt.

    >> Abonniere meinen YouTube Roboterkanal <<

    Einmal editiert, zuletzt von Werner Hampel ()

  • z.B. die Ausgänge werden immer früher gesetzt, je nachdem wo sich der Vorlaufzeiger findet.

    Menschen brauchen Roboter, aber auch Roboter brauchen Menschen.

    Roboter sichern die Arbeitsplätze und den Fortschritt der Industrieländer, da sie kostengünstig und qualitativ hochwertig produzieren.

    Ohne Automatisierung mit Robotern werden unsere Produkte in Billiglohnländern hergestellt.

    >> Abonniere meinen YouTube Roboterkanal <<

    Einmal editiert, zuletzt von Werner Hampel ()

  • Hallo!


    Wenn ich mich nicht irre, dann kann es auch sein, das ein sauberes Überschleifen nur dann geht, wenn der Vorlaufzeiger auf mindestens 2 steht, sobald ein Ausgang gesetzt wird. Wenn nun eine Position angefahren wird, der Vorlaufzeiger auf 1 steht und im nachfolgenden Satz ein Ausgang gesetzt wird, dann hatte ich das Problem, dass das nicht sauber überschliffen wurde. Erst als der Ausgang gesetzt wurde, sprich der aktuelle Zeiger auf dem Ausgang stand, Stand der Vorlaufzeiger auf dem nachfolgenden Punkt. Da der aktuelle Zeiger und der Vorlaufzeiger nun nicht "gleichzeitig" auf zwei Punkten standen, wurde nicht überschliffen.

    Ich kann mich auch irren, habe das aber so in Erinnerung.


    Viele Grüße, Tobias

  • lefrog: Das dein Überschleifen nicht funktioniert (und wird es auch bei $ADVANCE>1 nicht) liegt daran das ein setzen eines Ausgangs einen Vorlaufstop aus Sicherheitsgründen zur Folge hat. Du kannst das setzen eines Ausgangs wärend einer Bewegung nur mit einem TRIGGER erreichen (wird übrigends automatisch beim Out-Inlineformular verwendet). Was auch funktioniert, wenn man Continue eine Zeile vor die Zeile schreibt die überschliffen werden soll.


    @Schui74: Mit $ADVANCE>=1 wird das Überschleifen ermöglicht, dazu muß der nächste Bewegungssatz im Vorlauf schonmal errechnet werden damit die Bahn bekannt ist und anschliessend der Überschleifweg Interpoliert werden kann.
    Ich glaube, $ADVANCE>1 ist dann sinnvoll wenn du eine kurze Bahn hast die sich aus vielen Punkten zusammen setzt und schnell gefahren werden soll.
    Auch der Wiederanlauf nach einem NotAus ändert sich dadurch, da ein Überschleifen bei $ADVANCE=1 für den aktuellen angefahrenen Punkt dann nicht mehr möglich ist. Deswegen wird der Vorlauf bei Kuka über BAS (#initmov,0) auch auf 3 gesetzt.


  • Was auch funktioniert, wenn man Continue eine Zeile vor die Zeile schreibt die überschliffen werden soll.


    Oder $OUT_C[]=true verwenden.

    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.

  • Hallo zusammen,


    ich programmiere jetzt auch schon eine Weile KUKA-Roboter. Von daher kenne ich mich schon ein bischen aus:


    Werner Hampel Hampel:
    Das kommt drauf an! Ohne CONTINUE vor einem $OUT[20]=TRUE z.B. kommt es zu einem Vorlaufstop (aus Sicherheitsgründen). Darum ist kein Überschleifen möglich!


    lefrog:
    Das stimmt so nicht! Bei $ADVANCE=1 ist der Vorlaufzeiger immer "einen Punkt voraus" bei der Berechnung! Dein Problem mit dem Überschleifen kommt von dem selben "Problem" wie oben ( Werner Hampel Hampel).


    Spacefire
    Das ein $ADVANCE>=1 fürs Überschleifen notwendig ist, ist mir klar. Dadurch wird die Bahn vorausberechnet. Dies ist notwendig für die Bahnplanung zum Überschleifen.


    Könnt ihr mir das genauer erläutern?
    1) Ist ein $ADVANCE>1 für eine kurze Bahn mit vielen Punkten notwendig?
    2) Kannst mir das genauer erklären -> "NOT-AUS" Situation. Wieso ist dann ein Überschleifen nicht mehr möglich bei $ADVANCE=1?
    3) Gibt es weitere Gründe den $ADVANCE auf >1 zu setzen? Wann muss man bis auf 6?


    DANKE EUREN BISHERIGEN ANTWORTEN!


    Gruß
    Stefan

  • Hallo Stefan...


    1) wie geschrieben glaube ich es, glauben heißt bei mir nicht wissen... Scheint mir aber logisch zu sein da ein eingestellter Vorlauf unter Umständen nicht erreicht wird durch zu hohe Prozessorlast bei kurzen Bahnpunktabständen (so das Handbuch). Daher schliesse ich das ein überschleifen garnicht erst möglich ist bei zu kleinem Vorlauf und wenn zuviel Bahnpunkte abgearbeitet werden müssen da die Steuerung garnicht mit dem vorrausrechnen hinterher kommt.


    2) Handbuch:

    Zitat

    Eine Programmunterbrechung, wie NOT--AUS, Stop oder Interrupt, kann bei
    $ADVANCE=1 nach erfolgtem Start zu Verlust des Überschleifkriteriums führen.
    Der Roboter fährt dann den nächsten Raumpunkt als Genauhalt an. Durch Vergrößerung
    des Vorlaufs kann diesem Verhalten entgegen gewirkt werden (in der
    Initialisierungssequenz INI wird $ADVANCE=3 gesetzt).


    3) :kopfkratz: Fällt mir nix ein, bin aber offen für Beispiele!


    MfG
    Christian


  • Deswegen wird der Vorlauf bei Kuka über BAS (#initmov,0) auch auf 3 gesetzt.


    Der Vorlauf wird über BAS(#initmov,0) auf DEF_ADVANCE gesetzt. natrürlich ist DEF_ADVANCE standardmäßig auf 3 gesetzt. Ich setzte DEF_ADVANCE immer auf 1. Reicht bei den meisten Applikationen aus. Bei DEF_ADVANCE > 1 hatte ich öfter Probleme, daß Ausgänge immer unterschiedlich gestetzt werden usw.. Vorlaufzeiger > 3 heißt ja nicht, daß er immer 3 ist! Kann auch darunter liegen, wenn ich mich recht entsinne.
    Nur in seltenen Fällen setze ich $advance >1.

    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