Zwei Roboter Kollisionsbereich

  • Hallo zusammen,


    allgemeine Frage: Wenn Ihr zwei Roboter habt (in diesem Fall ein M16iB mit RJ3iB Steuerung und ein LR Mate mit r30iA Steuerung) wie sichert ihr in der Praxis den Kollisionsbereich ab? Also den Bereich auf welchen beide zugreifen und bei einem Fehler zusammenstossen könnten. Beide kommunizieren über Profibus mit einer Master SPS. Die Roboter sind Slave.


    Allgemeine Aussagen reichen mir. Nur Interesse. Man kann ja jeden Roboter melden lassen wann er im Kollisionsbereich ist und solange den anderen sperren. Gibt es auch Möglichkeiten dreidimensionale Felder zu definieren bei welchen ein Ausgang gesetzt wird? Habt ihr externe Lichtschranken?


    Wie macht ihr das?


    Grüsse und danke

  • ANZEIGE
  • Hallo Mujo,


    es gibt die sogenannte "Space Check" Option. Diese ist bei der R-30iA Steuerung Standard. Ob diese allerding auch bei der R-J3iB Steuerung serienmässig dabei ist kann ich dir leider nicht sagen. Schau einfach mal im Setup-Menu nach.
    Damit kannst du Räume definieren, in denen der TCP des Roboter überwacht wird. Es gibt einen Eingang der den Raum frei gibt und es gibt einen Ausgang der gesetzt wird, sobald der TCP des Roboters in den Raum reinfährt.


    Gruß
    hermo

    Wenn bereits der Ansatz falsch ist, so führt strenge Logik unweigerlich zum falschen Ergebnis. Nur Unlogik gibt Dir jetzt noch die Chance, wenigstens zufällig richtig zu liegen.<br /><br />Alle sagten: das geht nicht. Dann kam einer, der wusste das nicht und hat´s gemacht.

  • Bestimme in den Aus- und Eingängen Bereich für Zonen-Abfragen.


    zum Beispiel:


    Robbi 1
    Do 101=Bereich 1
    Do 102=Bereich 2
    Do 103=Bereich 3
    Do 104=Bereich 4
    Do 105=Bereich 5
    Do 106=Bereich 6
    Do 107=Bereich 7
    Do 108=Bereich 8
    Do 109=Bereich 9


    Diese muss der SPS-Programmierer interconecten auf die entsprechenden Eingänge von Robbi 2


    DI 101=Bereich 1
    DI 102=Bereich 2
    DI 103=Bereich 3
    DI 104=Bereich 4
    DI 105=Bereich 5
    DI 106=Bereich 6
    DI 107=Bereich 7
    DI 108=Bereich 8
    DI 109=Bereich 9


    Das dann genauso synchron von den Ausgängen Robbi 2 auf die Eingänge Robbi 1


    DO 10x Robbi x = DI10x Robbi y


    Grundregel: Es wird IMMER IMMER IMMER IMMER IMMER IMMER IMMER IMMER auf Drahtbruchsicherheit programmiert!!!
    Heißt, Steht der Robbi in Home, setzt DO101 bis 109 auf 1


    Im Programm Robbi 1 will Robbi in Kollisionsbereich 3 fahren
    Wait DI[3]=1 ; Abfrage ob Bereich frei
    DO[3]=0 ; Setze Bereich auf 0


    In Robbi 2 ebenfalls
    Wait DI[3]=1 <= Robbi 2 bleibt bei dieser Programmzeile stehen, weil das Signal wegen Robbi 1 = 0 ist.
    DO[3]=0


    Ist Robbi 1 aus dem Bereich wieder heraus, setzt er den Ausgang zurück auf 1
    J [4711] 100% FINE <= wichtig ist Genauhalt wegen Programmzeigervorlauf.
    DO[3]=1


    Nun ist ist Warte-Bedingung von Robbi 2, der ja bei Wait DI[3]=1 festhängt, erfüllt und der wiederum setzt den Bereich auf 0, wodurch Robbi 1 beim Versuch nochmals in den Bereich 3 zu fahren, hägenbleiben würde, solange bis Robbi 2 diesen Bereich durch setzen seines Ausgangs wieder freigeben würde.


    Falls diese Informationen nicht reichen :nocheck: , viel Spaß beim Teileaufsammeln :blumen:

  • Hallo


    Danke für die Antworten. Die Spacefunktion habe ich noch nicht gekannt unsere RJ3iB Steuerungen haben das drin. Gefällt mir.


    Das mit dem Handshake haben wir so ähnlich auch schon gemacht. Hier darf der Programmierer aber keinen Sche.... bauen.


    Schön wenn man mal andere Vorgehensweisen hat.


    Grüsse und danke

  • Klar kann man sowas auch über Arbeitsraumüberwachung machen, doch Sch... bauen kann man da ebenfalls, vor allem aber musst Du dann jedesmal die Konfiguration der Arbeitsraumüberwachung anfassen, vor allem ist es nicht sicherer wie folgendes Beispiel zeigen soll:
    Ein Roboter fährt eine Klebebahn ab, dabei bewegt ich der TCP entlang der Kante innerhalb seines sicheren Arbeitsraumes und schickt somit immer die 1 raus, jedoch an einet Stelle muss er die senkrechte Orientierung wegen einer Störkante verlassen und steht mit seinem Kopf (Drechachse 5) außerhalb des sicheren Arbeitsbereiches, jedoch schickt er weiterhin die 1 für sicher aus, da der TCP sich ja nach wie vor innerhalb des sicheren Arbeitsbereiches findet.
    Du müsstest also in dem Fall den Arbeitsraum wegen eines Punktes wesentlich größer definieren als benötigt, oder Du müsstest für dieses einen Punkt eines eigenen Arbeitsraum definieren, Dir stehen aber nur eine begrenzte Anzahl von Arbeitsräumen zur Verfügung, da Du aber während des Klebens nicht stehen bleiben kannst, mußt Du sowieso einen riesigen Arbeitsraum wegen eines Punktes verriegeln, was aber die anderen Robbis total blockiert und Du nicht mehr in Taktzeit bist.
    Des weiteren kommt hinzu, dass Du beim definieren von Arbeitsräumen wesentlich komplexer denken und vorausplanen musst, was eine Fehlerwahrscheinlichkeit imens erhöht, besonders wenn ein anderer Programmierer mal Hand anlegen muss, der kaum Erfahrung mit Arbeitsräumen hat.


    Im Gegensatz dazu ist ein Signalhandshake wesentlich einfacher zu handeln, zu programmieren, wesentlich flexibler weil Du Handshakes immer nur via cut&paste einfach an eine andere Stelle verschieben kannst, insbesondere wenn es um Taktzeitoptimierung geht und vier oder sechs Robbis auf engem Raum in einer Ausschweisstation arbeiten sollen (versuch Dir mal vorzustellen, wie da eine ARbeitsraumüberwachung aussehen soll).


    Darum findest Du in der Praxis immer nur Handshakes und wirklich niemand programmiert Kollisionsbereiche via Arbeitsraumüberwachung.

  • ok, danke für die Antwort. Es ist wie immer. Man muss schauen ob es für den eigenen Anwendungsfall (mit Sonderfällen) auch passt. Natürlich muss man bei beidem denken. Dafür sind wir auch da.


    Wie schon geschrieben. Einfach mal andere Sichtweisen und Vorgehensweisen hören und sich so austauschen

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