grundstellung nach händischem verfahren erzwingen

  • servus zusammen,


    unser qmb hat mir mal wieder ein ei gelegt.... :wallbash:


    kann ich irgendwie via sub überwachen, ob eine achse händisch verfahren wurde bzw noch besser, wie weit der tcp verfahren wurde?


    ich muss nachdem der robi händisch verfahren wurde eine fahrt in die grundstellung erzwingen. da wir doch sehr viele programmme auf den robis haben, will ich dies nicht per interrupt machen, sondern habe mir gedacht, einfach das programm automatisch abzuwählen. so wird der bediener auf alle fälle gezwungen den roboter wieder frisch auf home zu fahren und sein hirn zu aktivieren.


    falls jemand eine bessere lösung hat bin ich natürlich auch ganz ohr :)

    „Welten, regiert von künstlichen Intelligenzen,<br />mußten oftmals ihre schmerzlichen Erfahrungen machen.<br />Logik kennt keine Gefühle.“

  • Schritt für Schritt zum Roboterprofi!
  • Ich glaube, das mal im Submit so gelöst zu haben (ist lange her und ich bin alt und vergesslich):


    IF $PRO_MOVE and (not $PRO_ACT) then
    ;Roboterbewegung und Prgramm nicht aktiv
    GRST_ERFORDERLICH=TRUE
    ENDIF


    Wenn GRST_ERFORDERLICH per Interrupt aus dem Programm raus zurück ins Hauptprogramm.


    Oder im Interruptprog eine Loop-Schleife ohne Abbruchbedingung im versteckten Fold in dem immer wieder die Meldung "Programmreset erforderlich!" gefolgt von einem Halt aufgerufen wird.


    Oder eben, wie du es machen willst im Submit das Programm abwählen.
    Ich weiß nicht mehr, ob's genau so war. Laut Doku wird $PRO_MOVE auch im Handverfahren gesetzt.

    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.

    Einmal editiert, zuletzt von IrrerPolterer ()


  • kann ich irgendwie via sub überwachen, ob eine achse händisch verfahren wurde bzw noch besser, wie weit der tcp verfahren wurde?
    [...]
    falls jemand eine bessere lösung hat bin ich natürlich auch ganz ohr :)


    Ich mache das ungefähr so (allerdings nicht im Submit-Interpreter):
    - Jeweils am Programmende Ist-Position merken (X/Y/Z, Tool#, Base# und IpoMode in persistente globale Variablen schreiben).
    - Jeweils am Programmanfang Abstand der $POS_ACT zur gespeicherten Position berechnen. Falls Abweichung < x mm geht es los, sonst Abbruch, Fehlermeldung usw.
    Je nach Anwendungsfall noch ergänzt um Speicherung der Achswinkel, unterschiedliche Grenzwerte für einzelne Achsen und so.


    Das ganze natürlich nicht in jedes Programm eingebaut, sondern in Funktionen ausgelagert.

  • In der custom.dat die $NEARPATHTOL=XX auf den gewünschten Abweichwert einstellen und dann den Ausgang $NEAR_POSRET $OUT[xx] abfragen.
    Wird der Roboter weiter von seiner letzten Position von Hand wegbewegt mit CWrite das Programm abbrechen und eine Grundstellungsfahrt erzwingen.

    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

  • guten morgen zusammen,


    dank euch allen für die vorschläge.
    roland, deine lösung entspricht dem, was ich mir so vorgestellt habe! :supi:

    „Welten, regiert von künstlichen Intelligenzen,<br />mußten oftmals ihre schmerzlichen Erfahrungen machen.<br />Logik kennt keine Gefühle.“

  • Guten Morgen Zusammen,


    ich wollte nur schnell ein Detail hinzufügen:
    Die Variablen $ON_PATH und $NEAR_POSRET werden durch die Anweisung PTP $POS_ACT ausgehebelt. D.h. der Roboter befindet sich nach einem PTP $POS_ACT immer auf der Bahn und die Überwachung ist nicht möglich.


    Dies hat mir neulich Probleme gemacht.

  • So ähnlich wie atw12az5 mache ich das auch. Nur sage ich in der SPS, wenn nicht in Home oder On_Path, dann wird Automatik nicht gestartet.
    Hat den Vorteil, das Programm springt nicht immer raus, wenn man mal nachteachen muss. Man kann auch so den Roboter weiterfahren lassen, wenn man wieder auf einen geteachten Punkt fährt.


    Und da bei richtiger Programmierung sind auch alle aufeinanderfolgende Punkte abzufahren, ohne dass der Roboter wo gegenknallt. Das hat manchmal auch Vorteile.

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