Trigger bei Drehbewegung

  • Hallo,


    für eine aktuelle Anwendung bei uns haben wir den Roboter eine Position anfahren lassen und müssen danach Achse 6 um 360° drehen. Soweit kein Problem.
    Ist es bei der Drehung der Achse 6 möglich ein Triggersignal alle 0,1° (oder evtl. 1°) der Umdrehung ausgeben zu lassen?


    Die Dokumentation kennt ja den Befehl Trigger mit dem Argument path, jedoch ist hier die Einheit laut Doku mm was es bei einer Drehbewegung etwas kompliziert gestaltet.
    Gibt es eine Lösung für das obige Problem?


    Roboter ist ein KR30/3 mit KR C2 Steuerung.


    Vielen Dank!

  • Schritt für Schritt zum Roboterprofi!
  • Dann musst dir glaub ich was basteln. z.B. im sub $Axis_Act.A6 abfragen und dein Signal rausschicken. Bedenke aber dabei, dass es hier zu Zeitprobleme kommen kann, da die Sub nur alle 12ms durchläuft.

  • Es sollte doch auch gehen, dass du nach deiner A6 Bewegung einfach
    in einer Schleife den Vorlaufzeiger diese Geschichte erledigen läßt.
    Dort könntest du einfach den $axis_act abfragen, ob er sich um 1° geändert hat und dann dein Signal ausgeben.....

  • Ich würd's per Interrupt machen:



    Das musst du natürlich noch passend machen für alle Stellen an denen du Triggern willst.

    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 ()

  • Vielen Dank für die Hilfestellungen!


    Muss nur zugeben, dass ich leider noch nicht zum testen gekommen bin und daher noch kein Feedback abgeben kann. Die Lösungsansätze sehen aber sehr gut aus!

  • Habe ein ähnliches Vorhaben, will genau in der Mitte einer Drehbewegung einen Interrupt starten und BRAKE ausführen.
    Folgender Code ergibt einen Fehler:

    Code
    INTERRUPT DECL 14 WHEN $POS_ACT.A>-80 THEN DO STOP2()


    "Lesen nicht erlaubt"


    Weiß jemand woher das kommen kann bzw. wie man das Problem am besten löst? Ein Trigger für 90° nach Start einer Drehbewegung ist wohl nicht möglich, oder? Das geht nur mit Millimetern und x,y,z LIN Bewegungen?
    Danke!

  • Hallo


    war da nicht was mit logischen Operationen in eine Interrupt deklarierung. ich glaub das geht net musste erst nen Cycflag rausmachen


    oder so wie ichs machen würd


    zwei Interrupts


    INTERRUPT DECL 14 WHEN bTrigger DO STOP2()
    INTERRUPT DECL 14 WHEN NOT bTrigger DO STOP2()


    und in Stop2 muss rein bTrigger = NOT bTrigger


    und in Stop2 mit IF den Zustand abfragen wann was passieren soll


    IF $POS_ACT.A>-80 THEN
    BLAH
    ENDIF


    dann schaut er alle 12ms nach obs soweit ist


    Gruß Loipe


    edit jetzt hab ich doch den fehler mit den THEN reinkopiert ^^

    Einmal editiert, zuletzt von Loipe ()

  • Danke für die schnellen Antworten, habe diese Woche leider keine Zeit mehr es zu testen. Melde mich nächste Woche dann nochmal.
    "Then" wegzulassen hat übrigens nichts verändert. Trotzdem danke ;)

  • Es hat geklappt! Super, vielen Dank euch!
    Hier der Code falls jemand Ähnliches vor hat.


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