Eingang setzen

  • Hallo zusammen,


    bin neu hier und hoffe auf Eure Hilfe.


    Ich bearbeite mit einem ABB S4C+ Teile bei dem der Robo das Werkstück spannt.
    An der Aufnahme habe ich Initiaroren angebracht der überwachen soll das, dass Teil immer gespannt bleiben soll.


    Wie kann ich den Robi sagen falls das Teil während der Bearbeitung aus der Aufnahme fliegt er sofort in Y -50mm zurückfahren soll, sadass die Aufnahme nicht beschägigt wird


    Habe es mit IF DI2=0 Then
    Y - 50
    Endif
    mein Bearbeitungsprogramm
    Else


    funktioniert jedoch nur wenn bei beginn der Eingang 0 ist

  • ANZEIGE
  • Hallo Divanis,
    hast du eine Doku?
    Ganz sooo einfach ist das nicht mit den Interrupts. :???:
    Da ist schon ein wenig Lektüre der Doku nötig.
    Ausserdem wie willst du denn "wegfahren" in Y Richtung?
    Offset oder RelTool?
    Gruß
    Högi

    Zwei Dinge sind unendlich,das Universum und die menschliche Dummheit. Aber bei dem Universum bin ich mir noch nicht ganz sicher, !!!!<br />Albert Einstein

  • Doku hab ich aber komm nicht auf einen grünen Zweig. Glaub wird nicht einfach, hab gedacht das ich es einigermaßen gut kann aber der Begriff Rel Tool sagt mir auch nichts.
    Ich schleife die Teile an einer herkömmlicher Kontaktscheibe und falls das Teil durch irgendeinen Grund rausfliegt möchte ich einfach das der Robo es sofort merkt und anschließend sofort um einen bestimmten Weg von der Kontaktscheibe zurück bleibt. Aufgrund dessen mein Bsp. mit Y -50
    Dieser Fall muss unbedingt verhindert werden, da die Aufnahme schweine teuer ist.


    Tja schon wieder enttäuscht

  • Keine Panik,
    Offset oder RelTool bedeutet einfach nur in welchem Koordinatensystem du dich bewegst.
    Poste mal den Progammschnipsel wo der Interrupt greifen soll.
    Ausserdem macht ein Interrupt immer da weiter wo er aufgerufen wird.
    Nach einem neuen Start fährt der Robbi sofort dahin zurück wo er herkommt.
    Das heisst.. du musst auch noch etwas für den Interrupt Fall programmieren.
    Was soll dein Robbi denn machen wenn der Eingang felhlt?
    Gruß

    Zwei Dinge sind unendlich,das Universum und die menschliche Dummheit. Aber bei dem Universum bin ich mir noch nicht ganz sicher, !!!!<br />Albert Einstein

  • Hallo, eigentlich ist das gesamte Programm davon betroffen d.h von Beginn an. Der Robi schleift mehrmals an der Kontaktscheibe mit mehreren Zügen und verschiedene Richtungen.
    Damit ich eben mein Werkzeug schonen will soll er eben was bestimmtes machen. Meine Idee war das sofortige zurückfahren. Der Grund deswegen ist einfach Mitarbeiterabhängig. Falls dies in der Nachtschicht geschieht soll der Robi einfach in Home zurückfahren damit die Mitabeiter neu Bestücken können.

  • Ist ja kein Problem, ein Interrupt gilt ja solange, wie Du magst, notfalls während des gesamten Programmes.



    Oder so. Bissl probieren.


    Edit: Achso, natürlich kann man die Interrupts auch zwischendurch beliebig schlafenlegen. Normalerweise mache ich das auch innerhalb der Interruptroutine, das ist immer dann nötig, wenn man verhindern will, dass sich die Interrupts "aufstauen", wenn das Ereignis mehrfach eintritt. In meinem Beispiel fehlt das, weil sowieso ein EXIT folgt. Aber sauber ist das nicht....


    Grüße,
    Michael

  • Hallo,
    lösen kannst Du es auch wie schon angesprochen mit einer TRAP (Interruptroutine), wichtig dabei ist, das Du die Trapverbindung erstmal löscht (ISleep intAbbruch), bevor Du diese neu verbindest (IWatch).


    Ablauf:
    IDelete intAbbrechen;
    CONNECT intAbbrechen WITH irAbbrechen;
    ISignalDI diZurueck,high oder 1,intAbbrechen;
    !deaktivieren
    ISleep intAbbrechen;


    TRAP irAbbrechen
    ! Stopp alle Bewegungen
    StopMove;
    ! Löscht den Pfad und Robbewegung
    ClearPath;
    ! Liest die neue Position (Bezug auf Tool und Werkobjekt)
    ! pPos ist der Robtarget dazu (sollte Global definiet sein)
    pPos:=CRobT(\Tool:=tscheibe\WObj:=wtisch);
    ! Starten
    StartMove;
    ! Bewegung z.B. mit RelTool
    MoveL RelTool(pAktPos,0,-50,0),v100,fine,tscheibe\WObj:=wtisch;
    ! Bewegung zur Grundstellung und ExitCycle (Wichtig, da er sonst versuchen würde,
    ! an der Stelle weiter zu machen, wo er aufgehört hat)
    MoveL pHome,v100,fine,tscheibe\WObj:=wtisch;
    TPErase;
    TPWrite "Programm abgebrochen,";
    TPWrite "Werkstücklage kontrollieren!";
    TPReadFk nFk "Bestätigen","","","","","OK";
    TPErase;
    ExitCycle;
    ! Neu start von Main
    ENDTRAP

    Gutes gelingen!

    Keine Brille ist so stark um die Welt mit meinen Augen zu sehen!

    Einmal editiert, zuletzt von tnjsk4 ()

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