Verriegelung von zwei Robotern

  • Hallo,


    nehmen wir an in einer Zelle schneiden sich die Arbeitsbereiche zweier Roboter und diese müssen gegenseitig verriegelt werden. In welcher SPS Steuerung wird diese Verriegelung geschrieben? Jeder Roboter hat ja seine eigene SPS Steuerung und es gibt ja auch eine übergeordnete SPS Steuerung, nur wie wird hier nun das "Verriegelungskonzept" angewandt? Über ein Bussystem erfolgt die Kommunikation zwischen Roboter und SPS Steuerung. Ich weiß, dass jeder Kunde es anders haben möchte aber kann man da allgemein was sagen?


    Mit ist klar, dass wenn Roboter 1 eine Vorrichtung anfahren will, er eine Anfrage an die Steuerung schicken muss um diesen Bereich zu betreten. Die Steuerung muss an Roboter 1 eine Bestätigung schicken, mit der die Vorrichtung angefahren werden kann, wenn diese frei ist. Jetzt ist für Roboter 2 diese Vorrichtung gesperrt, solange Roboter 1 nicht aus der Vorrichtung rausgefahren ist. In dem Roboterpfad werden dann die Signale für die Verriegelung gesetzt und zurückgesetzt.


    Viele Grüße


    robotfan

    Einmal editiert, zuletzt von robotfan ()

  • ANZEIGE
  • Hallo,



    aber kann man da allgemein was sagen?


    Was man dazu sagen kann, ist das es überhaupt kein spezielles Roboterproblem ist. Z.B. kann bei einem Mehrkernprozessor nur ein Kern gleichzeitig an eine Speicheradresse schreiben, auf dem PC kann nur ein Programm gleichzeitig in eine normale Datei schreiben, das letzte Teil im Internetshop kann nur ein Kunde bestellen usw.


    Auch bei Robotern muss das nichts mit einer SPS, Signalen und Feldbussen zu tun haben. Es gibt Robotersteuerungen, die sind technisch PCs, die sind über Ethernet verbunden und erhalten ihre Aufträge von einem Datenbankserver.


    Wie das von der Programmierung her aussieht, hängt sowohl davon ab, was Programmiersprache/Betriebssystem/Bibliotheken usw. an Techniken anbieten und dann natürlich davon, wie die Programmierer das letztlich umgesetzt haben.


    Grüße


    Urmel

  • Bei uns hat sich diese Methode ganz gut bewährt.


    Roboter 1 stellt Bereichs-anfrage an SPS, wenn SPS frei meldet, gibt sie dem Roboter frei und sperrt für alle anderen Roboter den Bereich. Sollte einer von den anderen Robotern anfragen, bekommt er keine Freigabe.


    Solange Roboter 1 die Bereichs-Freigabe hat, ist alles gesperrt (Bewegungen SPS, Bewegungen Roboter).


    Wenn Roboter 1 dann seine Arbeit verrichtet hat, nimmt er die Bereichs-anfrage an die SPS zurück und gibt den Bereich wieder frei, dann dürfen auch die anderen Roboter wieder da hin.

  • Allgemein würde ich noch sagen, dass man dem Gleichzeitigkeitsproblem besondere Aufmerksamkeit schenken sollte, falls es für das Anlagenkonzept relevant ist. Wenn die Möglichkeit besteht, dass tatsächlich beide (oder mehr) Roboter gleichzeitig (im Sinne von: innerhalb desselben Zyklus der SPS, oder bevor aufgrund von Signalverarbeitungszeiten eine eindeutige Antwort möglich ist) in diesen Arbeitsraum wollen, dann sollte man sich was einfallen lassen, denn es wird vorkommen.
    Eine Möglichkeit ist, die Anfrage zweimal zu stellen, für jeden Roboter mit unterschiedlichem zeitlichen Abstand dazwischen, z. B. während der Bewegung synchronisiert auf 2 Punkten der Bahn. Wenn's schlecht gemacht wurde, bleiben dann beide stehen, was aber vielleicht immer noch besser ist, als wenn keiner stehen bleibt.


    Grüße,
    Michael

  • Ist das nicht ein bisschen mit Kanonen auf Spatzen schießen?


    Mein Ablauf in der SPS Schrittkette läuft zyklisch, und wenn ich nicht im gleichen Schritt der Kette beiden Robis ein Kommando absetze dann passiert auch nix mit den Freigaben. Es setzt natürlich voraus, dass der Ablauf auch passt, das ist klar!

  • Das Problem liegt mehr bei den Robotern.
    Du kannst nicht blind den Bereich sperren und dann erst nachfragen, ob er für dich frei ist. Also muss es andersrum gehen: erst gucken, ob er frei ist, und dann melden, dass man tatsächlich reinzufahren gedenkt. Das Gucken macht man normalerweise nicht mit Handshake, aus Zeitgründen, sondern man liest einfach das Signal aus der SPS.
    Bis die Meldung, dass man in den Bereich einfährt, tatsächlich bei der SPS ankommt, und diese dann die Freigabe für den anderen Robbi wegnimmt, kann jener ebenfalls das Freigabesignal gelesen haben. Der sendet ebenfalls seine Sperrmeldung und fährt auch weiter. Und bumm, denn das Roboterprogramm ist eben nicht (kurzzeit)zyklisch.
    Da spielen Buslatenzen mit rein, Ipo-Takte und SPS-Zyklenzeiten. Je größer dieses blinde Fenster ist, umso größer ist die Wahrscheinlichkeit, dass du es triffst.
    Ich hatte mal bei zwei KRC1 mit einer Programm-Wiederholrate von ca. 5 pro Minute, die beliebig asynchron an dieselbe Stelle fahren konnten, ungefähr zwei Kollisionen pro Tag generiert auf diese Weise.


    Selbst wenn man tatsächlich einen Handshake an der Stelle ausführt, ist man aus der Nummer noch nicht komplett raus. Auch dann kann sich noch was überschneiden. Und je komplizierter man das Ding macht, umso verzweifelter sucht man, wenn es doch wieder kollidiert. Die Anzahl der Programmzeilen erhöht nämlich durchaus das Zeitfenster, in dem die Überschneidung stattfinden kann.
    Wirklich verlässlich ist nur die zweifache Abfrage mit Selbststoppung in "makroskopischer" Zeit.


    Grüße,
    Michael

  • Dann haben wir das Glück, nur schnelle Robotersteuerungen und SPS'en zu verwenden.


    Die SPS sperrt auch nicht blind den Bereich,
    der Bereich ist von der SPS immer gesperrt, nur wenn der Roboter anfragt und die SPS auch eine Freigabe gibt, dann kriegt der Roboter eine Freigabe um in den Bereich zu fahren. Es sind ja nicht nur Roboter in dem Bereich sondern auch Pneumatik-Zylinder oder Linear-Antriebe.


    Ok, wir haben vielleicht noch den Luxus, dass das Bereichs-Handling auf dem Roboter in einem eigenen Task läuft, so kann der ständig überwachen ob ihm jemand die Freigabe weg nimmt. Sollte das passieren, war im SPS Programm was falsch und der Roboter bleibt stehen.

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