Position nach Einrichtbetrieb

  • Hallo,
    gibt es eine einfache Möglichkeit erstmal abzufragen ob der Roboter im Einrichtbetrieb bewegt wurde oder am besten die aktuelle Position vorher zu speichern um dise bei Automatik ein wieder vergleichen zu können damit danach wieder sicher in eine Ausgangssposition gefahren werden kann ?
    Ich habe leider kein Multitasking oder ähnliches.


    Vielen Dank im Voraus!
    Gruß Tim

  • ANZEIGE
  • Hallo RobHF
    Ohne Programmieraufwand: Mitarbeiterschulung!
    Natürlich kann der Schlüsselschalter abgefragt werden, ohne Multitasking per SPS.
    Dadurch Ablaufstopp, Programmzeiger auf Main und der Roboter muß aus einem vorgegebenen Startfenster (Achswerte auslesen) starten.
    Dann gibt es noch die Homerun Geschichte, aber einfach ist das alles nicht.


    Gruß,
    Konstantin

  • @RobHF: Guck mal im Handbuch (RobotStudio Hilfe-System) bei "Systemparameter | System Output | Path Return Region Error". Das funktioniert allerdings nur sinnvoll, wenn man auch guckt (evtl. in einer Systemroutine auf Start-Ereignis), ob der Programmzeiger bewegt wurde (Befehle "IsStopStateEvent" oder "PPMovedInManMode").


    Ansonsten habe ich auch immer gerne eine Systemroutine auf die Stop-Ereignisse angesetzt und dort die aktuellen Positionen sowie Tool und WObj gespeichert. Und bei Start dann kurz verglichen.


    Grüße,
    Michael

  • Moin,


    ich hätte da mal Bedarf an einer zündenden Idee. :mrgreen:


    Ich habe das gleiche Problem wie Tim. Ich würde mir gerne die aktuelle Position in AUTO merken und nach Rückkehr aus dem Einrichtbetrieb kontrollieren, ob der Roboter bewegt wurde. Dazu hab ich, wie Michael vorschlug, folgendes gemacht:


    Code
    PROC StopRoutine()
        ! Store current position for comparision after (re)start.
        IF (OPMode() = OP_AUTO) THEN
          wLastWobjInAuto := CWObj();
          tLastToolInAuto := CTool();
          rLastPosInAuto  := CRobT();
          TPWrite "Position has been stored!";
        ENDIF
      ENDPROC




    Das funktioniert in fast allen Fällen auch ganz gut. Wenn ich jedoch in Automatik bei laufendem Programm den Schlüsselschalter drehe ohne vorher die Stop-Taste gedrückt zu haben, werden Last...InAuto nicht gespeichert, da der Roboter ja beim Erreichen der StopRoutine nicht mehr in OP_AUTO sondern bereits in OP_MAN_PROG ist. Lasse ich die Bedingung jedoch weg, also ...


    Code
    PROC StopRoutine()
        ! Store current position for comparision after (re)start.
        wLastWobjInAuto := CWObj();
        tLastToolInAuto := CTool();
        rLastPosInAuto  := CRobT();
        TPWrite "Position has been stored!";
      ENDPROC


    ... dann werden Last...InAuto z.B. beim Drücken der Stop-Taste im Einrichtbetrieb überschrieben.


    Und an dieser Stelle kommt die zündende Idee ins Spiel. :mrgreen:


    Gruß
    Jörn

    In der Theorie sind Theorie und Praxis identisch. In der Praxis nicht.

  • Moin,


    Du meinst sowas in der Art?!


    Code
    PROC StartRoutine()
        IF (OPMode() = OP_AUTO) AND (RunMode() = RUN_CONT_CYCLE) THEN
          bInAutoMode := TRUE;
          ...
        ENDIF
    ENDPROC


    Code
    PROC StopRoutine()
        ! Store current position for comparision after (re)start.
        IF bInAutoMode THEN
          bInAutoMode     := FALSE;
          wLastWobjInAuto := CWObj();
          tLastToolInAuto := CTool();
          rLastPosInAuto  := CRobT();
        ENDIF
    ENDPROC


    Das kam mir auch schon in den Sinn. Ich hatte aber die Hoffnung, daß das System etwas eleganteres hergibt. Arbeiten mit Merkern ist nicht so meins. Das ist ähnlich unbefriedigend wie mit GOTO hin- und herspringen zu müssen oder kein REPEAT ... UNTIL zu haben. :mrgreen:


    Gruß
    Jörn

    In der Theorie sind Theorie und Praxis identisch. In der Praxis nicht.

  • Hi,


    ich weis schon zu spät ...


  • Damit erkennst du zwar ob der Programmzeiger verschoben wurde, aber nicht ob der Roboter bewegt wurde.

    Gruß Roland


    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.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

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