ABB Rapid Achspositionen vergleichen

  • Moin,

    folgendes Problem: Ich möchte zwei Achspositionen vergleichen und anhand des Vergleichsergbnisses Instruktionen ausführen lassen (sprich IF...ENDIF). Position 1 ist eine CONST, die zweite ist die bei Programmstart per CJointT gespeicherte Position. Der Code lautet:


    pCJpos := CJointT();

    IF pCJpos = pHomeJPos THEN

    TPWrite "Fahre auf Grundstellung";

    WaitTime 2;

    MoveJ pHome, v1000, fine, tool0;

    TPErase;

    ENDIF


    Problem ist dass der Roboter die Instruktionen nicht ausführt (also IF-Bedingung scheinbar nicht erfüllt). Habe das Programm angehalten und mal die Positionen in den Programmdaten verglichen, diese scheinen exakt gleich, trotzdem wird die IF-Schleife nicht ausgeführt. Weiß jemand woran das liegen könnte?


    Gruß

    RoboJoschi

    Robojoschi

    ----------------

    ABB_Programmieranfänger

  • ANZEIGE
  • Sowas liegt im Allgemeinen daran, dass man gebrochen rationale Zahlen nicht auf exakt gleich vergleichen sollte. Es wäre ein sehr grosser Zufall, wenn da alle Koordinaten bis auf das letzte tausendstel exakt identisch wären. Da muss man immer etwas Toleranz einbauen. Also z. Bsp. jeweils die beiden Zahlen voneinander abziehen, den Absolutwert bilden und den auf kleiner 0.1 vergleichen.

    Beim Abb kann man da auch einen temporäre kugelförmige Weltzone um den Punkt erstellen, und den entsprechenden Ausgang abfragen.

  • Man kann auch eine Weltzohne mit achwerten machen, und diese für jede achse mit einer Toleranz versehen.


    Dies geht aber glaube ich nur mit Stationären weltzhonen. Aber solange die Grundstellung immer die selbe ist ist dies Kein Problem.


    Im obigen beispiel haben alle Achsen eine Toleranz von +- 1° bis auf achse 1 die hat +-2° und Achse 6 die +-6°.


    Einschränkung gibt es noch:

    • Achswert aus dem Join -+ Toleranz darf die Achsgrenzen nicht überschreiten.
    • es gehen nur ganzzahlige toleranzwerte
    • Wenn der Punkt mit einer Zohne angefahren wird und die Toleranz zu eng sind oder die Zohne zu groß, kann es Passieren, dass die Weltzone nicht auslöst

    Einmal editiert, zuletzt von Stingray () aus folgendem Grund: Ergänzung:

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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