C_DIS und $APO.CDIS

  • Hallo zusammen,


    es geht mal wieder ums Überschleifen :mrgreen:


    Laut KUKA Dokumentation muss C_DIS bei einem LIN Fahrbefehl angegeben werden, um den Punkt zu überschleifen. $APO.CDIS beschreibt dabei die Entfernung zum Zielpunkt, die unterschritten werden muss, um mit dem Überschleifen zu beginnen (korrigiert mich wenn ich das falsch verstanden habe). Angenommen mein Weg von Punkt1 zu Punkt2 beträgt 100mm und ich weise $APO.CDIS den Wert 200 zu, beginnt er dann unmittelbar mit dem Überschleifen? Oder ignoriert er die Anweisung, bzw. fängt er erst ab 50mm Fahrweg (50% des Fahrwegs) mit dem Überschleifen an.


    Ich arbeitet mit einem KR16, Softwareversion KRC 5.2.19.


    Greetings
    iRobot

    Never argue with an idiot. He will lower you to his level and beat you with experience. - Bob Smith<br /><br />Ich leide nicht an Realitätsverlust... ich genieße ihn.

  • Schritt für Schritt zum Roboterprofi!
  • Hallo,


    deine zweite vermutung ist meines Wissens nach richtig, wenn ich es jetzt nicht mit einem anderen Roboter verwechsel. Der KUKA überschleift nur max. 50% der Strecke.


    Gruß
    MiLa

  • Das bedeutet aber das er mit meinem Wert von $APO.CDIS = 200 auf jeden Fall überschleift, auch wenn das erst ab 50mm geschieht oder?

    Never argue with an idiot. He will lower you to his level and beat you with experience. - Bob Smith<br /><br />Ich leide nicht an Realitätsverlust... ich genieße ihn.

  • Code
    LIN P0
    LIN P1 C_DIS


    Das C_DIS heisst, er überschleift den Punkt P1. Grundsätzlich überschleift er maximal 50% der Bahnstrecke zwischen Start (P0) und Ziel (P1) punkt. In deinem Beispiel waren P0 und P1 100mm auseinander -> mit C_DIS verlässt der TCP die Bahn frühstens 50mm vor P1.

    Code
    LIN P0
    $APO.CDIS = 200.0
    LIN P1 C_DIS


    Mit dem Wert $APO.CDIS kann die maximale Überschleifdistanz nochmals zusätzlich eingeschränkt werden. In dem Fall ist aber $APO.CDIS grösser als 50% der Distanz zwischen P0 und P1, hat also keine Auswirkung.


    Es wird einfach die Überschleifgrenze Verwendet, die näher beim Zielpunkt ist. In deinem Beispiel ist $APO.CDIS 200mm und 50% der Distanz 50mm darum werden die 50mm verwendet.


    Achtung:
    50mm heisst nicht, dass er effektiv 50mm vor dem P1 die Bahn verlässt. Wenn es nicht nötig ist die Bahn zu verlassen, um die Bahngeschwindigkeit bei der Richtungsänderung beizubehalten, dann bleibt der TCP auf der Bahn.

  • Danke schon mal für die Info,


    allerdings habe ich immer noch das Problem, das er nicht überschleift, zumindest sieht das für mich so aus. Ich hatte in einem älteren Thread mal den Tipp bekommen, die Variable $STOPNOAPROX auf true zu setzen und zu schaun, wo er stehen bleibt bzw. eine Fehlermeldung schreibt. Das habe ich auch jetzt getan, es kommt aber keine Meldung vom Roboter. Den Punkt fährt er aber nach wie vor mit einem Genauhalt an.

    Never argue with an idiot. He will lower you to his level and beat you with experience. - Bob Smith<br /><br />Ich leide nicht an Realitätsverlust... ich genieße ihn.

  • Hallo zusammen,


    warst du in T2 unterwegs? weil
    wenn die Variable $StopNoAprox auf True ist dann gibts
    bei einem Vorlauf Stop in T2 eine Quittierungsmeldung
    wenn du dir dann die Variable $Pro_IP anschaust kannst
    du rausfinden in welchem Src und welcher Zeile das
    Problem genau liegt.
    Wenn du die Zeile im KCP anschaust dann stell im Editor
    alle sachen an (DEF Zeile,ASCII Ansicht..) und alle Folds öffnen
    sonst stimmen die Zeilennummern net


    Gruß Loipe

  • Ne war im Aut_Ext unterwegs. Ich muss mich auch korrigieren. Er bringt die Meldung 1123 - Überschleifen nicht möglich, sobald ich im Code an diese Stelle komme.

    Never argue with an idiot. He will lower you to his level and beat you with experience. - Bob Smith<br /><br />Ich leide nicht an Realitätsverlust... ich genieße ihn.

  • Hallo IRobot


    Was kommt denn nach dem Fahrbefehl auf P2 im Programm??
    Ich vermute mal das dort irgend was steht, was er nicht überschleifen kann.


    Gruß


    Schybulla

    Weil der Klügere nach gibt - regieren die Dummen die Welt

  • Ich habe hier noch mal einen Ausschnitt des Programmcodes. Der Punkt zwpu_ablage soll überschliffen werden.


    Never argue with an idiot. He will lower you to his level and beat you with experience. - Bob Smith<br /><br />Ich leide nicht an Realitätsverlust... ich genieße ihn.

    Einmal editiert, zuletzt von iRobot ()

  • wenn er mal in T2 Fahren würde dann gäbe es auch ne Quittierungsmeldung
    in Aut oder Ext gibts halt nur ne Hinweismeldung darauf wollte ich ja hinaus mit meinem Beitrag


    DAS GEHT NUR IN T2 und ist die einfachste und und gründlichste Möglichkeit Vorlaufstops zu finden
    vor allem verzwickte die erst drei vier Src's weiter stehen.


    aber Poste das Programm ruhig dann können alle wieder ne Grundsatz Diskussion anfangen ^^
    oder du versuchst es nochmal in T2 und findest den/die Vorlaufstop/s


    ich bin gespannt
    und viel Spass


    Loipe


    PS.:
    Continue geht nur direkt in der zeile davor
    CONTINUE
    XX die hier weg
    XX die hier weg
    IF E_EinlegenVMerlaubt == FALSE THEN
    LIN zwpu_vm C_DIS
    ENDIF
    aber das wird das problem net sein

    Einmal editiert, zuletzt von Loipe ()

  • In T2 zu fahren ist ungünstig, da ich viele externe Signale von der Maschine bekomme, die vor dem Roboter verbaut ist. Dazu muss ich aber die gesamte Anlage laufen lassen, was ich nur im Aut_Ext machen kann.


    Kann es sein dass die Berechnung des Punktes zwpu_ablage einen Vorlaufstopp auslöst?


    PS: zwpu_vm soll nicht überschliffen werden, das habe ich vergessen auszukommentieren.

    Never argue with an idiot. He will lower you to his level and beat you with experience. - Bob Smith<br /><br />Ich leide nicht an Realitätsverlust... ich genieße ihn.

    Einmal editiert, zuletzt von iRobot ()

  • Code
    CONTINUE
    
    
    
    
            IF E_EinlegenVMerlaubt == FALSE THEN
                LIN zwpu_vm ;C_DIS
            ENDIF


    Ich nehme mal stark an, dass E_EinlegenVMerlaubt ein digitaler Eingang ist. Du willst ihn nicht überschleifen und mit den Leerzeilen zwischen CONTINUE und dem IF wird diese Abfrage auch nicht überschliffen. Das bedeutet jedoch, dass der Roboter den vorhergehenden Punkt (zwpu_ablage) mit einem Genauhalt anfährt, damit er die IF-Bedingung genau da auswerten kann.

  • Theoretisch kann ich den Punkt zwpu_vm auch überschleifen lassen. Würde es das Problem mit dem Punkt zwpu_ablage lösen? So wie ich dich verstanden habe, liegt das an der IF-Abfrage oder? Die Leerzeilen werde ich jetzt mal entfernen.

    Never argue with an idiot. He will lower you to his level and beat you with experience. - Bob Smith<br /><br />Ich leide nicht an Realitätsverlust... ich genieße ihn.

  • Ich habe jetzt den nachfolgenden Punkt (zwpu_vm) ebenfalls mit C_DIS versehen und die Leerzeilen zwischen dem continue und der IF-Abfrage entfernt, leider mit dem gleichen Ergebnis.

    Never argue with an idiot. He will lower you to his level and beat you with experience. - Bob Smith<br /><br />Ich leide nicht an Realitätsverlust... ich genieße ihn.

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