Kommunikationarten und -protokolle der verschiedenen Hersteller

  • Guten Morgen,


    wie in meiner letzten Fragestellung nachzulesen (Thread), beschäftige ich mich aktuell ein wenig mit dem Erstellen von Palettiervorschriften und deren Verarbeitung durch verschiedene Roboter.


    Auf dem zuletzt Genannten liegt nun mein Fokus. Ich habe eine Palettiervorschrift, die mir in Form von TCP-Koordinaten, Stückgutinformationen und Paletteninformationen vorliegt. Diese möchte ich nun an einen Roboter weiterleiten, so dass dieser damit arbeiten kann.


    Wir haben hier vor Ort z.B. einen Scara-Roboter von Omron stehen, mit dem man über Ethernet oder RS232 kommunizieren kann.
    Bei dem würde ich nun hingehen und im ersten Schritt die einzelnen Daten über ein Terminalprogramm über die entsprechende Schnittstelle senden und im Programm auswerten lassen.


    Wie lässt sich das bei den anderen Herstellern realisieren? In welcher Form und auf welchem Wege müssen die Daten dem Roboter zugeführt werden? Gibt es dafür herstellerspezifische Programme oder muss man da auf allgemein gültige Lösungen zurückgreifen?


    Ich würde mich freuen, wenn sich hier verschiedene Spezialisten kurz dazu äußern könnten.


    Sollte irgendwas unklar sein, habt bitte Nachsicht und fragt nach. Ich kann nicht wirklich auf viel Erfahrung in dem Bereich zurück greifen!


    Alternative Vorgehensweisen oder sonstige, konstruktive Hinweise sind natürlich jederzeit gerne gesehen!


    Danke und viele Grüße


    Sebastian

  • ANZEIGE
  • KUKA:
    bis KRC2 mit serieller Schnittstelle oder RSI/XML sowie mit jedem handelsüblichen Industriebussystem


    Fanuc:
    RS232, RS484 und TCP-IP sowie jedes lieferbare Industriebussystem

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Mitsubishi:
    eingebaut: RS232, 100 MBit-Ethernet (Text über TCP/IP), USB 2.0 (benötigt Treiber)
    optional (je nach Modell): mehr serielle Schnittstellen und Ethernet, diverse Bussysteme


    Stäubli:
    eingebaut: 2x RS232, 2x 100 MBit-Ethernet (Text und Binärdaten über TCP/IP)
    optional: diverse Bussysteme



    Sollte irgendwas unklar sein, habt bitte Nachsicht und fragt nach. Ich kann nicht wirklich auf viel Erfahrung in dem Bereich zurück greifen!


    Einen ganz wichtigen Punkt sollte man noch beachten, wenn man Koordinaten zu Robotern verschiedener Hersteller übertragen will:


    Die mathematische Darstellung der Koordinaten unterscheidet sich von Hersteller zu Hersteller. Die XYZ-Werte kriegt man noch einheitlich hin, aber Drehwinkel werden unterschiedlich dargestellt.


    Grüße


    Urmel

  • Wie kann man den Robotern die Daten denn zugänglich machen?
    So wie oben von mir beschrieben, über ein allgemeines Terminalprogramm oder gibt es von den Herstellern so eine Art Treiber, mit denen man das komfortabler gestalten kann oder eventuell sogar automatisieren kann?


    Viele Grüße


    Sebastian

  • wie...


    da schreibt man sich ggf eine routine für.


    kommt auf den roboter und das gewählte protokoll drauf an

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.


  • kommt auf den roboter und das gewählte protokoll drauf an


    Genau.


    Man muss zwei grundsätzliche Arten der Kommunikation auseinanderhalten:


    1.) Man schreibt ein Roboterprogramm, das irgendwelche Koordinaten z.B. über TCP/IP empfängt und die dann mit dem Roboterarm anfährt. So was kriegt man mit vielen Robotertypen hin, die Programme (und die Werkzeuge sie zu schreiben) sehen bei den einzelnen Herstellern möglicherweise total anders aus, aber die Daten vom PC können dann (bis auf das erwähnte Koordinatenproblem) sehr ähnlich aussehen.


    2.) Wenn man aber mit einer PC-Software ganze Roboterprogramme oder Dateien mit z.B. Positionsdaten auf Robotersteuerungen verschiedener Hersteller herunterladen will, dann ist das viel aufwendiger. Die Programmiersprachen sehen nicht nur unterschiedlich aus, auch die Dateiformate in denen sie auf den Steuerungen liegen sind unterschiedlich (Text, XML, spezielle Dateiformate ...). Auch der Weg wie sie dahin kommen ist sehr unterschiedlich (freigegebenes Windows Verzeichnis, FTP, herstellerspezifischen Datenprotokoll, usw.)



    So wie oben von mir beschrieben, über ein allgemeines Terminalprogramm oder gibt es von den Herstellern so eine Art Treiber, mit denen man das komfortabler gestalten kann oder eventuell sogar automatisieren kann?


    Wie schon gesagt, es ist sehr unterschiedlich, was überhaupt geht, wie es geht und ob es was kostet.


    Schon aus diesem Grunde ist eine PC-Software, die angeblich Roboter vieler Hersteller unterstützt, eine schwierige Sache. Entweder kriegt man da den kleinsten gemeinsamen Nenner, der alle Spezialfunktionen ignoriert, oder in Wirklichkeit kann die Software nur mit ein paar Modellen alles und mit den anderen nur ein bischen.

  • Mir geht es im ersten Schritt gar nicht darum, alles aus einer Software heraus zu erledigen.
    Ich möchte erstmal nur die Systeme der verschiedenen Hersteller zum Vergleich gegenüberstellen und da es ja hier bestimmt einige gibt, die das regelmäßig mit dem einen oder anderen Hersteller durchführen, dachte ich, könnten die mal kurz schreiben, wie das so konkret funktioniert.


    Also das, was ihr schon allgemein beschrieben habt, konkret auf einzelne Hersteller.

  • ganz allgemein: Es gibt kein "so wirds gemacht"


    jeder kocht hier sein eigenes Süppchen

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Wie schon geschrieben, der Datenaustausch über RS-232 oder TCP/IP ist in fast allen Roboterprogrammiersprachen serienmässig enthalten (bei Kuka offenbar nur RS-232), ein Datenaustausch mit einem selbstgeschriebenen Roboterprogramm ist also kein Problem.


    Will man dagegen Programme oder Dateien auf den Roboter übertragen, oder irgendwelche Steuerfunktionen ausführen, ohne die selbst programmiert zu haben, wird es komplizierter.


    Allgemein gilt, dass die kleineren Roboter (Denso, Mitsubishi, Stäubli) für PC-Programmierer leichter ansprechbar sind. Das hat nichts mit der Größe zu tun, sondern damit, dass diese oft auch in der Laborautomatisierung eingesetzt werden, da findet man schon länger als in der Industrie PCs, die den ganzen Ablauf steuern.


    Meist ist es aber dort so, dass es keine fertigen "Treiber" gibt, sondern nur Datenformat- oder Protokollbeschreibungen und man die Anbindung in der Programmiersprache seiner Wahl schreiben kann. Zu den Details sei auf die diversen Unterforen verwiesen.


    Bei den größeren Robotern ist es öfters so, dass die Protokolle teilweise nicht öffentlich sind und man ein Development Kit für den PC kaufen muss (z.B. Motoman, Fanuc). Kostet teilweise pro Entwickler und pro Roboter. Andere, z.B. Kuka haben diverse Zusatzoptionen zur Kommunikation (DirLoader, KRL-XML, RSI-XML, ...), die man pro Roboter kaufen muss. Meist ist es aber mindestens so, dass man über Verzeichnissfreigabe oder FTP Dateien auf den Roboter bekommen kann und dort händisch startet.


  • ganz allgemein: Es gibt kein "so wirds gemacht"


    jeder kocht hier sein eigenes Süppchen


    Ich bin für alle Informationen dankbar, aber solche Aussagen bringen mich (und wahrscheinlich auch niemand anderen) weiter.


    Wie aus meinen Ausführungen hervorgehen sollte, kenne ich mich mit der Materie nicht aus und versuche mir auf diesem Weg einen Einblick / Überblick zu verschaffen.


    Dass es dabei x verschiedene Vorgehensweisen gibt, ist mir durchaus auch schon vorher bewusst gewesen. Aber genau da interessieren mich ja weitere Informationen.


    Ich möchte von den eigenen Süppchen der einzelnen Leute ein wenig kosten (wenn wir auf der metaphorischen Ebene bleiben wollen).


    Demnach hätte es mir mehr weitergeholfen, wenn du an einem konkreten Beispiel beschrieben hättest, wie du hierbei vorgehen würdest.




    Einen ganz wichtigen Punkt sollte man noch beachten, wenn man Koordinaten zu Robotern verschiedener Hersteller übertragen will:


    Die mathematische Darstellung der Koordinaten unterscheidet sich von Hersteller zu Hersteller. Die XYZ-Werte kriegt man noch einheitlich hin, aber Drehwinkel werden unterschiedlich dargestellt.


    Wie muss ich mir das vorstellen? Was gibt es da für Möglichkeiten, außer in Winkeln von 0° - 360°?



    Bei meinen weiteren Überlegungen werde ich mir jetzt erst mal verschiedene Terminalprogramme angucken, ob es darunter vielleicht auch welche gibt, die Daten aus Dateien auslesen und senden können. Bei den Schnittstellen werde ich mich auf RS232 und Ethernet konzentrieren.
    Habe gerade nochmal geguckt, für die KR C2 Steuerung gibt es eine optionale Netzwerkkarte. Dadurch dürfte diese dann ja auch TCP/IP-fähig sein.


    Daraus müsste ich dann ein recht allgemeines Lösungskonzept entwickeln können. Zumindest, wenn man den Weg bis kurz vor den Roboter bzw. seine Steuerung betrachtet. Ich werde also meine Koordinaten in einem String über eine der o.g. Schnittstellen schicken.
    Später überlege ich mir dann an einzelnen Beispielen, wie ich diesen String im Roboterprogramm auswerten muss, um zur gewünschten Funktion zu gelangen.


    Danke soweit für eure Unterstützung!


    Gruß

  • Wie muss ich mir das vorstellen? Was gibt es da für Möglichkeiten, außer in Winkeln von 0° - 360°?


    Hallo Brik


    Schau dir mal den ABB an da hast du X Y Z Q1 Q2 Q3 Q4 wobei Q1-4 die Quaternionen angeben


    http://de.wikipedia.org/wiki/Quaternion


    und du glaubst wohl nicht das diese zwei möglichkeiten alle arten sind eine Koordinate im Raum mit Rotation zu beschreiben.


    net persönlich nehmen du hast keine Ahnung


    Gruß Loipe

  • Wie muss ich mir das vorstellen? Was gibt es da für Möglichkeiten, außer in Winkeln von 0° - 360°?


    Du denkst zu zweidimensional.


    Die Hand eines Roboters kann in alle Raumrichtungen zeigen, man braucht also mehr als einen Winkel. Und dann ist das nicht mehr eindeutig. Das Problem besteht übrigens auch in der Computergrafik, ist also kein reines Robotikproblem.


    Ganz allgemein gibt es mathematisch unterschiedliche Methoden mit denen man die Rotationen darstellen kann:


    ABB verwendet Quaternionen:
    http://de.wikipedia.org/wiki/Quaternion


    praktisch alle anderen Roboterhersteller homogene Koordinaten
    http://de.wikipedia.org/wiki/Homogene_Koordinaten


    Dabei werden in den Positionen nicht die kompletten Matrizen gespeichert, sondern nur die drei Translationen und die drei Drehwinkel. Bei den Drehwinkeln gibt es zwölf verschiedene Möglichkeiten:
    http://de.wikipedia.org/wiki/Eulerwinkel


    So haben sowohl eine Kuka- als auch eine Mitsubishi-Position die Form X,Y,Z,A,B,C. Aber bei dem einen ist A die Rotation um Z, bei dem anderen die um X. Dann unterscheiden sich die Reihenfolge der Drehungen, manche drehen zuerst um X, dann Y und dann Z, andere genau umgekehrt. Wie man leicht ausprobieren kann, müssen die Winkelwerte dann jeweils ganz anders sein, damit man nach den drei Drehungen am selben Ort rauskommt. (Mathematisch: Die Matrizenmultiplikation ist nicht kommutativ, A*B ist ungleich B*A.)



    Eine dritte Methode ist die Achse- Winkel-Darstellung, die kommt dem nahe was du meinst, wird aber nur selten verwendet, da sie umständlicher ist.

    Einmal editiert, zuletzt von Urmel ()


  • ...Ich bin für alle Informationen dankbar, aber solche Aussagen bringen mich (und wahrscheinlich auch niemand anderen) weiter.


    Wie aus meinen Ausführungen hervorgehen sollte, kenne ich mich mit der Materie nicht aus und versuche mir auf diesem Weg einen Einblick / Überblick zu verschaffen....


    Dann mußt Du Deine Fragen soweit konkretisieren, daß Du ein oder zwei Lösungsmöglichkeiten hast.


    Konkrete Beispiele?
    Am End gar ein Stück fertigen Programmcode?
    Das klingt fast wie "Ich will mit anderer Leute Arbeit Geld machen!"
    übel...


    Deine momentane Fragestellung ist wie eine Bettdecke. Sie reicht vom Hals bis zu den Füßen.
    Ein Arzt würde jetzt auch zuerst fragen wo es denn genau wehtut, denn er wird kaum die Knie behandeln, wenn Du Bauchweh hast.


    Es gibt mindestens sieben gangbare Kommunikationswege mit jeweils einigen Protokollen.
    Somit einige zig Möglichkeiten das zu tun.


    Du hast nun RS232 am KRC2 genannt. Damit bleiben vier Protokolle und ein paar Mögliche Wege über, es ist also nun eingrenzbar.
    Jede Position besteht aus sechs oder mehr Realzahlen aber dazu vielleicht später...
    Erst mal das Protokoll: Der Server stellt die Zahlen zur Verfügung, der Roboter holt sie ab.
    WIE holt der die ab? Welches Kommunikationsprotokoll soll laufen? Welche Geschwindigkeit? (Entfernung bei RS232 beachten) Fehlererkennung? Kommunikationssicherheit?


    Also immernoch tausend Fragen....


    Schlußendlich bleibt der Blick ins Handbuch bei cread und cwrite


    Das wars also.


    Im übrigen solltest Du mal über Sprichworte nachdenken...

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

    Einmal editiert, zuletzt von WolfHenk ()

  • Also, wenn ich im anderen Thread lese, dass BRIK verschiedene Hersteller von Palettierprogrammen und die Anbindung an verschieden Robotersysteme vergleicht, und hier Kommunikationslösungen unabhängig vom Roboter-Hersteller sucht, sieht dies für mich zunächst so aus, als gehe es um die Entwicklung einer Palettieranlage zur Integration verschiedener Hersteller.
    Also ich helfe gern, aber Entwicklungsarbeit leiste ich nicht. Und danach sieht es hier aus. Sorry.

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Entschuldigt die späte Rückmeldung, aber nach meinem letzten Posting habe ich keine Benachrichtigung mehr über weitere Antworten bekommen.


    Bitte erspart mir doch eure Unterstellungen.
    Ich möchte weder mit eurer Hilfe Geld verdienen, noch bin ich zu bequem mir etwas selber zu erarbeiten.


    Ich weiß nicht, wie ihr euch einem Themengebiet annähert, von dem ihr keine Ahnung habt, aber ich mache das immer so, dass ich mir einen groben Überblick verschaffe und bei konkreten Sachen dann soweit nachfrage, bis ich es verstehe.


    Wenn das so wirkt, als möchte ich aus eurer Arbeit Profit schlagen, dann sagt mir doch bitte, wie ich sonst vorgehen soll? (Und das im Idealfall per PN, weil es ja doch eher weniger mit der ursprünglichen Fragestellung zu tun hat.)


    Für dich fachlichen Antworten bedanke ich mich.

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