2 Robbis in einer Zelle

  • Hallo Leute,


    ich soll eine Roboterzelle programmieren, in der zwei Roboter aus Taktzeitgründen, parallel arbeiten.
    Das bedeutet die beiden Roboter haben gemeinsame Abhol , Ablage und Bearbeitungspositionen.
    Ausserdem überschneiden sich auch die Bewegungen (die Robbis stehen sich gegenüber).
    Das ein Roboter wartet während der andere Arbeitet, wird wegen der knappen Taktzeit nicht möglich sein.


    Die Roboter haben getrennte Steuerungen (IRC5) , also kein Multimove.
    Die Zelle wird von einer übergeordneten SPS gesteuert die auch die Fahrtfreigaben und die Aufträge an die Roboter verwaltet.


    Hat jemand so etwas schon einmal gemacht?
    Wie kann ich ausschliessen das die beiden Kollidieren?



    Danke im voraus!


    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

    Einmal editiert, zuletzt von högi ()

  • ANZEIGE
  • Hat jemand so etwas schon einmal gemacht?


    Mit ABB nicht, ganz allgemein schon mehrmals.


    Allgemein kann man so eine Steuerung zustandsbasiert aufbauen, z.B. in dem man das Ganze erstmal so modelliert:


    http://de.wikipedia.org/wiki/Zustandsdiagramm_(UML)


    Die Arbeitsabläufe beider Roboter werden in Teilzustände zerlegt, z.B. Abholen, Bearbeiten, Ablegen, usw. ...


    Die untergeordneten (Roboter-) Steuerungen melden ihren aktuellen Zustand an die übergeordnete Steuerung (SPS oder IPC). Diese gibt ihnen die Anweisung in einen neuen Zustand zu wechseln, nur wenn alle Bedingungen erfüllt sind (Teil da, anderer Robbi nicht im gleichen Zustand, usw.).


    Bei manchen SPSsen gibt es ja entsprechende Sprachen, die es erlauben das Programm direkt als Zustandsdiagramm (Schrittkette) aufzubauen. Auf dem PC gibt es verschiedene Methoden so etwas zu realisieren.


    Grüße


    Urmel

    Einmal editiert, zuletzt von Urmel ()

  • Hi Zusammen,
    jupp habe ich schon einmal gemacht! Roboter haben gemeinsam an einem Gussteil bearbeitet. Überschneidene Bereiche etc. Alles mit ABB S4cplus und auch ohne Multitask. Lief am Ende ganz gut und kaum ohne Stopps.



    Gruß


    Sven

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Hallo Leute,


    Also die SPS steuert alles.
    Die sagt den Robbis wo sie hinzufahren haben und wo sie warten sollen.
    Sogar die Greifer werden von der SPS gesteuert.


    Vertrauen ist gut aber Kontrolle ist besser!!!!!!
    Wenn die Roboter zusammenkesseln fragt niemand nach der SPS.
    Dann bin ich der Trottel.


    An den gemeinsamen Positionen habe ich Worldzonen vorgesehen die überwacht werden.


    Aber was mache ich unterwegs????


    Gibt es so etwas wie eine Worldzone die dem TCP in der Bewegung folgt????


    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

    Einmal editiert, zuletzt von högi ()

  • Hallo Högi,
    solche Veriegelungen werden mit Interrupts reallsiert. Ich mach das so und habe das auch so bei Kuka usw. gesehen.
    Bei jeden Roboter brauchst du ein Eingang und ein Ausgang. Diese Signale müssen über die SPS einfach 1 zu 1 zu den Robis gesendet werden.


    Robi 2 Signale


    Signal DI diRobi1NichtImBereich
    Signal DO doRobi2NichtImBereich


    Robi 1 Signale


    Signal DI diRobi2NichtImBereich
    Signal DO doRobi1NichtImBereich


    1 oder high Signal bedeutet Roboter ist nicht im Bereich. Dazu brauchst du auch keine Weltzonen zu definieren. Die Signale werden im Programm verarbeitet immer vor der Bewegung die zu einer Kollisionen führen kann.
    Bei der Init-Phase muss du die Ausgänge auf 1 setzen.


    Und auch einen Interrupt definieren


    IDelete intRobiKollision;
    CONNECT intRobiKollision WITH TrapKollision;
    ISignalDI diRobi2NichtImBereich,0,intRobiKollision;
    ISleep intRobiKollision;


    Und bei einer Bewegung wo beide Robis sich knutschen können muss du den Eingang abfragen.
    WaitUntil diRobi2NichtImBereich=high;
    Reset doRobi1NichtImBereich;


    Und hier wird jetzt ein Interrupt gestartet der das Eingangssignal vom Robi 2 überwacht.
    IWatch intRobiKollision
    Danach kann die Bewegungerfolgen
    mvVonxNachY
    dosomething......
    Wenn der Robi ausser Bereich ist kannst du den Interrupt wieder deaktivieren.
    ISleep intRobiKollision
    Und den Ausgang wieder setzen
    Set doRobi1NichtImBereich;


    So kann das funktionieren. In der Traproutine kannst du Fehlermeldungen an die SPS machen und auch Stopbefehle für den Robi.
    Bringt dich das weiter?
    Gruß Paulaner

    Für seine Arbeit muß man Zustimmung suchen, aber niemals Beifall.<br />Zitat: Charles-Louis Baron de Montesquieu

  • Hallo Paulaner,


    das werde ich auf alle Fälle einbauen! :ylsuper:
    Die Worldzonen lasse ich aber.


    Eine Option ist das die Zelle auch mit nur einem Roboter arbeiten soll während an dem anderen, z.B Servicearbeiten gemacht werdenl.


    Falls jetzt Jemand auf die Idee kommt, an dem einen Robbi, mal schnell etwas Teachen zu wollen während der andere in Automatik läuft und den Arsch nicht schnell genug aus der Gefahrenzone bekommt, knallt es wenigstens nicht.
    Die Worldzonen funktionieren ja auch in Hand.


    Danke
    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

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