Bei meiner Anwendung geht es darum, dass ein Vision System Positionen an einem Werkstück erkennt, und der Roboter dann diese Positionen mit einem Werkzeug anfährt. Die Werkstücke sind unterschiedlich, auch die Lage variiert. Irgendwie muss ich doch die Informationen über die Bearbeitungspositionen vom Vision System zur Robotersteuerung übertragen.
Wenn meine Herangehensweise so exotisch ist, dann ist das vielleicht ein Hinweis, dass ich einen Denkfehler in meinem Konzept haben könnte. Lässt man die Bilderkennung sonst direkt auf der Robotersteuerung laufen? Oder sind die Anwendungen üblicherweise statisch und es werden nur vorher geteachte Positionen angefahren?
Nee, das ist schon okay, wie Du das vor hast, und so herum klingt es dann ja auch wie gewohnt.
Auf der Steuerung läuft das Roboterprogramm und arbeitet ein definiertes Programm ab, und das nimmt jetzt Informationen von außen entgegen und reagiert bei Bedarf darauf.
Meistens über irgendeine Form von standardisierten Feldbus, z. B. Profinet, aber auch über Ethernet, ist ebenfalls üblich. Entscheidend hier, dass das Ablaufprogramm auf der Steuerung die Kontrolle behält und den Roboter bewegt, und externe Sensorik wie Vision-Systeme etc. die nötigen Informationen beistellt.
Die Robotersteuerung hat ja normalerweise interne Informationen (Sicherheitsbedingungen, Tool, Base, Load, Achsbegrenzungen, Achskonfiguration uvm.), welche das externe System nicht kennt und auch nicht interessiert. Der Roboter hat das hingegen schon eingebaut und braucht das.
Gemeinsame "Gesprächsbasis" sind Koordinatensysteme (Tool und Base, manchmal auch Referenzlagen), und ausgetauscht werden dann Abweichungen, meistens in Form von Frames. Das lässt sich sehr gut mit so einem Datenaustausch realisieren, über die übliche EA-Schnittstelle hinaus. Jene wiederum enthält frei konfigurierbare Signale einerseits und Systemsignale wie Start, Stop, Fehlerquittierung usw.
Dass es dann von Außen noch eine Beeinflussung der Geschwindigkeit und ähnlicher Parameter gibt, ist nicht ungewöhnlich, wird aber nur implementiert, wenn man es tatsächlich braucht.
Kann natürlich sein, dass bei einem "Spielzeug"roboter auf die "normale" E/A-Schnittstelle verzichtet wurde und man alles über z. B. EthernetKRL macht. Auch in dem Falle läuft es aber trotzdem darauf hinaus, dass die auszutauschenden Informationen in irgendeiner Benutzerkonfiguration deklariert werden und in irgendeinem Benutzerprogramm ausgewertet werden und nichts ist, was komplett vom System bereitgestellt wird.
[Zeitliche Überschneidung mit Hermann bei der Beitragserstellung]