Anfängerfrage Roboter in Home

  • Hallo zusammen,
    ich habe ein kleines Problem und hoffe mir kann jemand weiterhelfen.
    Ich suche nach einer Möglichkeit im Hintergrund zu überprüfen ob der Roboter in HomePosition ist.
    Gibt es da eine Möglichkeit?

  • ANZEIGE
  • Hallo,
    Du könntest dazu einen statische Weltzone mit der Instruktion "WZHomeJointDef" erstellen.
    Die Weltzone beschreibt einen Ausgang sobald sich der Roboter in der Homeposition befindet, bzw. setzt ihn zurück, wenn er den Bereich verlässt.
    Nähere Informationen hierzu kannst Du dem Handbuch entnehmen,
    Gruß
    Micky

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

  • Hallo!
    Habe fast das was du suchst!
    Bei mir ist eine zylinderförmige Welzone definiert.
    Musst beim Power On aktiviert werden!!!


    !****************************************************************
    !Deklaration von Weltzone
    !****************************************************************
    !
    VAR wzstationary wzHome;
    VAR shapedata shape_Homeposition;
    CONST pos C2:=[1476,10,1265];
    CONST num R2:=100;
    CONST num H2:=300;
    !----------------------------------------------------------------------
    ! Ereignisroutine Weltzone f. Grundstellungsfahrt initialisieren
    !----------------------------------------------------------------------
    PROC Netz_ein()
    WZCylDef \Inside, shape_Homeposition, C2, R2, H2;
    WZDOSet\Stat,wzHome\Inside,shape_Homeposition,DOHomepos,1;
    ! Ende
    ENDPROC

    Einmal editiert, zuletzt von padostms ()

  • Funktioniert genauso auch mit "WZHomeJointDef", wobei Du mit JointDef den Vorteil hast, dass Du Tool-Unabhängig bist. Daher verwendet man in der Regel Joint.


  • Hallo Gerhard!
    Müssen beim Homejointdef nicht alle Achsen die Toleranz erreichen?
    Ist auch eine interessante lösung!


    Ja, genau. Daher hast Du mit Joint immer genau definierte Stellun g des Roboters für die Homepos, egal welches Werkzeug/Tool gerade am Roboter ist, zum Beispiel Wechsehlgreifer.
    Egal ob Greifer 1 oder 2 am Roboter, die Stellung ist immer (Beipielwerte) A1 45, A2 -20, A3 0, A4 0, A5 45, A6 60, und Home-Signal geht raus, sobald alle Achsen innerhalb 0.2 Grad Toleranz dieser Stellung erreicht haben.

  • Beispiel für ABB S4 ohne Software Option Worldzone:
    (Im Prizip macht die Software-Option nix anderes.)


    PROC Grund()
    START:
    AktJoint:=CJointT();
    Axis:=[Abs(AktJoint.robax.rax_1-Home.robax.rax_1),Abs(AktJoint.robax.rax_2-Home.robax.rax_2),Abs(AktJoint.robax.rax_3-Home.robax.rax_3),Abs(AktJoint.robax.rax_4-Home.robax.rax_4),Abs(AktJoint.robax.rax_5-Home.robax.rax_5),Abs(AktJoint.robax.rax_6-Home.robax.rax_6)];
    !
    IF Axis{1}<0.2 OR Axis{2}<0.2 OR Axis{3}<0.2 OR Axis{4}<0.2 OR Axis{5}<0.2 OR Axis{6}<0.2 THEN
    Set RobInHome;
    ELSE
    Reset RobInHome;
    Homefahrt;
    GOTO Start;
    ENDIF
    !
    ENDPROC

  • Gut aufgepasst! Ja, muss AND sein.
    Copy-Paste Error, weil ich unter dem IF die Homefahrt habe.


    P.S. Daten-Deklaration:
    VAR num Axis{6};
    VAR jointtarget AktJoint;

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