Kuka Agilus über Ethernet steuern

  • Ich habe eine Roboterprojekt mit einem Kuka Agilus geerbt und versuche gerade, die Kommunikation zu verstehen. Der Roboter wird über Ethernet gesteuert. Auf einem PC läuft ein Pythonscript, das an die Adresse des Roboters auf Port 6101 solche XML Konstrukte wie


    <SetVar Name="WORKPOSITION.x" Value="100" />


    schickt. Damit werden dann alle Koordinaten x,y,z,a,b,c gesetzt, anschließend noch eine bool Variable. Auf dem Roboter gibt es ein Script, das aus zweit Dateien (.dat und .src) besteht. In dem Programm wird in einer Schleife auf das Bool Flag gewartet und dann mit PTP die Position WORKPOSITION angefahren.


    Zum Warten auf das Erreichen der Position wird eine XML Botschaft mit <ShowVar.../> benutzt, es wird dann die entsprechende Antwortbotschaft <ShowVarRsp .../> ausgewertet. Das scheint mir recht umständlich zu sein.


    Ich habe versucht, zum testen die Kommandos per Terminal mit Putty zu senden, soweit funktioniert das. Ich habe beim Recherchieren gefunden, dass es Kommandos in der Art von


    <KUKA_GetStatus Type="ALL"/>


    oder


    <Rob target="robot">

    <Axis name="tcp" speed="50"/>

    </Rob>


    geben soll, mit denen man direkt ohne laufendes Script auf dem Roboter Funktionen auslösen kann und die ich gerne verwenden möchte. Wenn ich versuche diese über Putty zu senden, antwortet der Roboter immer mit

    <Info Service="Internal" ID="1001" Msg="error"/>


    Da scheint es offenbar verschiedene Protokolle zu geben. Mir fehlen im Moment die Grundlagen, z.B. um welches Protokoll es sich da überhaupt handelt. Ohne den Namen des Protokolls zu kennen kann ich nicht mal nach Dokumentation suchen.

    Muss man in der Roboterkonfiguration das Netzwerk Interface mit einem bestimmten Protokoll verknüpfen? Gibt es eine Stelle, wo man die Verfügbarkeit der Kommandos erst aktivieren muss.


    Kann mir jemand nennen, wie Bezeichnung dieser Protokolle ist, und wie man das auswählt, nach welchem Protokoll Daten auf der Netzwerkschnittstelle interpretiert werden. Jede Hilfe ist willkommen.


    MISC01

  • Schritt für Schritt zum Roboterprofi!
  • Gib bitte mal noch Steuerungsversion, Softwarestand und vorallem installierte Software-Optionen an.

    Lässt sich damit mal klären, ob ein offizieller Weg für die Kommunikation verwendet wird oder nicht.

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Nur indirekt, das Programm reagiert auf den Inhalt von Variablen. Der Zugriff auf die Variablen per Ethernet über XML Pakete wird irgendwie vom System realisiert. Leider ist diese SetVar und ShowVar Befehle die einzigen die reagieren. Ich würde lieber mit solchen Befehlen wie "MovePtp" zugreifen können, aber die Art und Weise wie die eingehenden Kommandos interpretiert werden erlaubt dies nicht.

  • Sieht so aus, dass keine offizielle Option für die Kommunikation wie EKX oder OPC verwendet wird.

    Da müsste ein Eintrag der Option vorhanden sein.

    Eher, dass man via "interne Crosscom-Schnittstelle" geht. Die ist für Kunden "undokumentiert".

    Läuft eine Serverapplikation wie "KUKAVARPROXY", "JOpenShowVar" im Windows der KRC?

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Wie kann ich die laufenden Serverapplikationen einsehen? Geht das über das externe Bedienteil?


    Ich habe in den Unterlagen auch eine Möglichkeit, mich über Remotedesktop an dem Kuka-Steuerrechner anzumelden, aber alles was ich dann sehe ist die Benutzerführung, die ich normalerweise auf dem Touchscreen des Bedienteils sehe. Gibt es einen Trick um einen Taskmanager aufzurufen?


    Für den Fall, dass eine dieser Serverapplikation wie "KUKAVARPROXY", "JOpenShowVar" im Windows der KRC läuft, wie könnte man die genannten offiziellen Optionen aktivieren? Kann man das einfach aktivieren? Muss das erst installiert werden?

  • Zum Windows gehts so:


    Prinzipiell sind fast alle Softwareoptionen bei KUKA kostenpflichtig.

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Für den Fall, dass eine dieser Serverapplikation wie "KUKAVARPROXY", "JOpenShowVar" im Windows der KRC läuft, wie könnte man die genannten offiziellen Optionen aktivieren? Kann man das einfach aktivieren? Muss das erst installiert werden?

    Server ist KukaVarProxy. Wie in Dokus erwaehnt, Server muss auf KRC installiert sein und normallerweise nutzt Port 7000. Es genuegt Dataien in ein Ordner belegen, Shortcut erstellen und dann Shortcut nach Startup vershieben:


    Es ist offensichtlich wenn KVP lauft:


    Aber... es ist auch moeglich jemand hat eigene Version von Server entwickelt und vieleicht versteckt...


    Laufende Server kommuniziert mit KSS (durch Cross).


    Client Applikation dann kann Verbindung mit laufenden Server erstellen. Client ist JOpenShowVar oder Pythonscript oder was anderes...


    Falls Client extern ist (nicht auf KRC), Serverport muss in KLIConfig geoefnet sein.

  • Ich habe es endlich geschafft, das HMI zu minimieren. Es läuft eine Software namens Kappa 1.23. Kennt das jemand hier?


    Prinzipiell sind fast alle Softwareoptionen bei KUKA kostenpflichtig.

    Fast alle - heißt das es gibt freie Optionen die immer da sind?

  • Es läuft eine Software namens Kappa 1.23.

    Kenne Kappa nur in Zusammenhang mit Kamerasystemen (Kappa Optronics).

    Sowas in der Anlage vorhanden?


    Fast alle - heißt das es gibt freie Optionen die immer da sind?

    Meine eher Optionen wie früher zu KRC2 Zeiten KUKA USB oder bei gewissen KSS Multisubmit.

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Kenne Kappa nur in Zusammenhang mit Kamerasystemen (Kappa Optronics).

    Sowas in der Anlage vorhanden?

    Nein, nichts dergleichen.


    Meine eher Optionen wie früher zu KRC2 Zeiten KUKA USB oder bei gewissen KSS Multisubmit.

    Diese Optionen sagen mir bisher nichts. Dieses Kappa scheint also nachträglich installiert worden zu sein.


    Vielleicht ist meine Frage naiv, aber ein Roboter ohne Möglichkeit der Steuerung durch einen externen PC o.ä. scheint mir wenig nützlich zu sein. Da hätte ich erwartet, dass standardmäßig irgendeine Möglichkeit der Ansteuerung mitgeliefert ist. Gibt es so etwas?


    Vielleicht sind auch irgendwelche der oben erwähnten Optionen bereits vorhanden und ich habe es nur bisher nicht erkannt. Gibt es eine Stelle in der Bedienoberfläche, wo ich das einsehen kann? Oder einen Ordner im Dateisystem?

  • Vielleicht sind auch irgendwelche der oben erwähnten Optionen bereits vorhanden und ich habe es nur bisher nicht erkannt. Gibt es eine Stelle in der Bedienoberfläche, wo ich das einsehen kann? Oder einen Ordner im Dateisystem?

    Du musst als Experte angemeldet sein danach findest du die Optionen, die Installiert sind unter Inbetriebnahme>Zusatzsoftware. In diesem Bild sind alle installierten Optionen zu finden.

    Über den Button Neue Software kannst du weitere, wenn vorhanden installieren.



    Unter D>Kuka_Opt findest du alle Optionen die du auf der Steuerung hast.


  • Welche Option käme denn infrage, um von einem externen PC aus z.B. über Ethernet Positionen vorzugeben und Statusinformationen (z.B. ob die Zielposition schon erreicht ist) abzufragen?

  • Vielleicht ist meine Frage naiv, aber ein Roboter ohne Möglichkeit der Steuerung durch einen externen PC o.ä. scheint mir wenig nützlich zu sein. Da hätte ich erwartet, dass standardmäßig irgendeine Möglichkeit der Ansteuerung mitgeliefert ist. Gibt es so etwas?

    Nur zur Einordnung: ich hab' jetzt 21 Jahre Industrie-Roboter in Betrieb genommen und noch nie die Not gehabt, den von einem externen PC ansteuern zu müssen.

    Welche Option käme denn infrage, um von einem externen PC aus z.B. über Ethernet Positionen vorzugeben und Statusinformationen (z.B. ob die Zielposition schon erreicht ist) abzufragen?

    Mit EthernetKRL könnte man u. A. das. Aus KUKA-Sicht ist das freilich mehr eine EA-Schnittstelle zum KRL-Programm und nichts, was selbiges umgeht.

    Dann gibt's noch RSI (habe ich keine Erfahrung mit).


    Für den Überblick über die wichtigsten Eigenschaften des Roboters ein Archiv erstellen und in dessen Wurzelverzeichnis in die am.ini schauen.

  • Nur zur Einordnung: ich hab' jetzt 21 Jahre Industrie-Roboter in Betrieb genommen und noch nie die Not gehabt, den von einem externen PC ansteuern zu müssen.

    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?

  • dass ein Vision System Positionen an einem Werkstück erkennt,

    Hast Du doch verneint bei meiner Frage zu einem Kamerasystem. ???

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Da nimmt man normalerweise ein klassisches Bussystem wie Profinet, Ethernet/IP, DeviceNet, Profibus oder Ethercat.

    Typischerweise nennt man das halt nicht 'Steuerung des Roboters durch externen PC' sondern eher 'Schnittstelle zwischen Roboter und PC' da hier der PC nicht, mehr oder weniger, die komplette Steuerung des Roboters übernimmt, sondern nur diverse Werte, die der PC, eine Kamera, oder sonst ein Sensor ermittelt haben zum Roboter überträgt, der dann irgend etwas sinnvolles damit anstellt.

  • 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]

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