Kuka RC 32/50 mit KRC32

  • Schritt für Schritt zum Roboterprofi!
  • Hi,


    natürlich, ist fast alles möglich, fast KRC1 würde ich sagen!

  • Hallo René,


    ja, auch bei der KRC 32 ist es möglich.
    Das hier mal eben zu erklären wäre, glaube ich, etwas viel. Aber als kleinen Einstieg:


    Der Schalter muss einen Interrupt aktivieren. Darin kannst du dann diverse Operationen durchführen (Stoppen, Rückpositionieren, oder auch die aktuelle Position für Berechnungen verwenden o.ä.). Danach kannst du wieder mit deiner weiteren Abarbeitung weiter machen.


    Schau doch mal in der Dokumentation unter Interrupt nach.


    Gruß und viel Erfolg.


    Robotiker

    Wenn die Menschen Flügel hätten und schwarze Federn, wären die wenigsten schlau genug, um Krähen zu sein! Henry Ward Beecher

  • Hi,


    kannst es auch so machen!


  • @titan72:


    Sieht ja gut aus. Hatte mich noch nicht mit dem Synact Befehl beschäftigt. Aber wenn ich das richtig verstehe, ist der doch nur Weg bzw. Zeit abhängig!?


    Oder kann ich auch einen Eingang als Auslösebedingung verwenden?


    Wenn, wie René gewünscht, eine Suchfahrt gemacht werden soll, die beendet wird, sobald ein Eingang kommt, bleibt mir doch nichts anderes über als mit einem Interrupt zu arbeiten!?!


    Wenn ich falsch liege, bitte ich um Korrektur :zwink:


    Gruß

    Wenn die Menschen Flügel hätten und schwarze Federn, wären die wenigsten schlau genug, um Krähen zu sein! Henry Ward Beecher

  • ... hier wird solange in Z positioniert bis die beiden Vakuumwächter kommen, immer wieder 2.5mm weiter bis die Zwischenlage erkannt wird!


    REPEAT
    G_P_LAGE1OFF.Z=G_P_LAGE1OFF.Z-2.5


    LIN G_P_LAGE1OFF


    UNTIL (E_VAKUUM1 AND E_VAKUUM2)

  • SYNACT H WHEN $M_SCAPO_F>=0 DO SCHRITTNR=1 DELAY 0.0 ;beim losfahren aktiv


    SYNACT H WHEN $M_SCAPO_F>=0.5 DO SCHRITTNR=1 DELAY 0.0 ;auf halber Strecke


    SYNACT H WHEN $M_SCAPO_F>=1 DO SCHRITTNR=1 DELAY 0.0 ;beim erreichen der Position und DELAY eine Zeitangabe

  • Hallo wieder.


    Heute habe ich versucht mit Interrupt-Befehl und es funktioniert auch, aber wenn es wieder in das Hauptprogramm von Unterprogramm springt, beginnt es in der gleichen Zeile wie vorher, und dann lief die z-Achse wieder nach unten.
    Ich habe es wie folgt programmiert:
    loop
    interupt decl 10 when $in[17]==TRUE DO ZW_LAGE ( )
    interupt on 10
    LIN zw_lage
    LIN hoch_mit_zw_lage
    endloop
    ;---------------------------


    ZW_LAGE ( )
    BRAKE
    interupt off 10
    WAIT 10,0 sek
    END



    Titan72 vielen Dank für Ihre grosse program beispeile.


    Grüss
    René

  • Hej,


    @ Titan72:


    Ok, sehe ich ein. Ist eine weitere schöne Möglichkeit so etwas zu realisieren.


    :danke: Wieder was gelernt!



    @ René:


    Soweit sieht es gut aus, aber ich würde noch mit RESUME arbeiten. Dann müsstest du allerdings deine Suchfahrt in einem extra UP machen. Die Deklaration des Interrupts in der Hauptroutine lassen, da nach RESUME wieder bis dahin zurück gesprungen wird.
    Habe unten mal die zwei Seiten angehangen für den Befehl.


    Viel Spaß

  • Hi,


    Interrupt ist schon die schönere Variante, das war mal zum testen auf Rasch und ist dann so geblieben weil funzt ja!

  • Hallo Beide


    jetzt funktioniert es wie es sollte. Ich danke für die Hilfe, die ich von Ihnen erhalten. Ich habe es wie folgt programmiert:


    loop
    interrupt decl 11 when $in[17]==true do gefundet()
    suchen()
    $advance=3
    PTP home
    endloop
    ;-----------------


    DEF suchen()
    interrupt on 11
    LIN suchen
    $advarnce=0
    END


    DEF gefundet()
    interrupt off 11
    BRAKE
    LIN hoch_mit_zw_lage
    RESUME
    END


    Grüss


    René

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