Beiträge von lambert

    Wir haben es mal relativ kompliziert so probiert das wir auf der Robotersteuerung einen Timer gestartet haben. Den Wert des Timers haben wir dann an den PC geschickt und von dort wieder zurück an die Steuerung. Aus dem Wert vor dem Schicken und nach dem Schicken ergibt sich die Differenz die für die Kommunikation benötigt wird. Die Steuerung muss dann den aktuellen Timerwert mit den Daten zusammen an den PC schicken und der PC addiert die Zeitdifferenz. Dann kann der PC empfangene Daten von der Robotersteuerung mit einem Zeitstempel versehen. Und sowas ähnliches haben wir auch für die Sensordaten gemacht. Aber das kommt eben darauf an ob euer Sensor sowas unterstützt. Wenn er das nicht tut könnt ihr ohne einen Echtzeit PC nie genau rausbekommen wann die Sensordaten ankommen.
    Allerdings ist das alles nicht so wahrnsinnig genau. Erstens funkt einem der IPO-Takt dazwischen. Abhängig von der Geschwindigkeit seid ihr im Worst-Case eben schon 12ms*Robotergeschwindigkeit von den Koordinaten entfernt die ihr schickt. Wir haben uns darüber ausgerechnet wie schnell wir fahren dürften damit der Fehler in den Toleranzen bleibt. Aber mit der Zeitstempelvariante übergeht ihr die Notwendigkeit von Echtzeitkomponenten für den PC (allerdings konnte unser Sensor eben auch einen Zeitstempel senden).

    Ich könnte mir vorstellen, dass wenn euch der Aufwand nicht zu hoch ist und ihr es nicht automatisiert lösen wollt, ihr die Berechnung des TCP einfach selber machen könntet. Die KUKA Software berechnet meiner Meinung nach einen Kreismittelpunkt aus den 4 Punkten die man anfährt. Ihr könntet z.B. 100 Punkte anfahren und den Mittelpunkt mitteln. Dann bleibt natürlich immer noch das Problem das die Spitze das Licht diffus reflektiert. Aber die Idee mit dem Fadenkreuz auf der Platte müsste doch eigentlich ganz gut funktionieren. Durch die 100 Punkte bekommt ihr dann sowas wie eine Schalle die über dem Fadenkreuz liegt. Dadurch fallen einzelne Fehler nicht mehr so ins Gewicht. Ist allerdings die Frage wie genau die Laserdistanzmessung ist.

    Ohh... Na das ist natürlich was anderes. Aber ich kann mir über RSI trotzdem auch Datenschicken lassen, oder? Eine Aufgabe die ich früher mit KRL-XML erledigt habe war das übersenden von 500 Frames. Die habe ich auf der KRC in ein Array gespeichert und nach der Übertragung ist der Roboter danach gefahren. Leider hat die Übertragung etwa 20 Sekunden gedauert. Was den Schluss zulässt das pro IPO Takt eine Koordinate rüber geschoben wurde.
    Könnte ich das mit dem RSI-Task beschleunigen, oder läuft der auch nur mit 12ms?

    Bei solchen Kommunikationsproblemen lasse ich immer einen Softwaresniffer mitlaufen um rauszubekommen wer zu letzt gesendet hat und ob sich im Senderythmus was geändert hat. Also ob es stätig schlechter wird bis es abbricht. Das würde dann wahrscheindlich darauf deuten das irgendwo der Speicher vollläuft. Das würde zumindest zu so unregelmässigen Fehlern führen.

    Hallo,


    Mal wieder eine Frage zu den Schnittstellen. Ich möchte über eine der Schnittstellen Koordinaten an den Roboter schicken. Wie schnell kann das geschehen? Nehmen wir mal an ich verwende die RSI-XML (so wie ich das verstehe ist das die schnellste Schnittstelle), und ich habe ein Objekt aus dem ich immer nur ein Frame auslese. Brauche ich dann IPO-Takt*Frameanzahl Zeit um alle Objekte zu übertragen?
    Ist die Wahl der Schnittstelle relevant?


    Gruss
    lambert

    Hallo zusammen,


    Ich beschäftige mich gerade mit der RSI. In der Doku ist ein Beispiel über die Regelung mit einem Kraft-Momenten-Sensor. Da steht, dass die Bahn nach der Korrektur einfach ein kleines bischen versetzt ist. Meiner Frage: Kann die neue Bahn überschliefen gefahren werden?


    Gruss
    flambert

    tastatur geht immer nur maus nicht !!!


    Ich hätte genau anders rum gesagt. Wenn beim hochfahren eine PS2-Tastatur dran hängt geht, abhängig vom Betriebssystem nicht. Also, auf garkeinen Fall geht die bei Windows95. Wie das bei XP ist weiß ich eigentlich nicht sicher. Aber ich vermute ehr nicht. Wohingegen eine USB Maus kein Problem sein sollte. Vorrausgesetzt im BIOS ist USB enabled. In der Werkseinstellung ist es disabled.

    Hallo MOM,


    Ich versuche von einem normalen PC aus 6D-Koordinaten zum Roboter zu übertragen. Anhand dieser Koordinaten soll er sich bewegen. Im moment spiele ich die Koordinaten einzeln rüber. Also ich habe für jede Koordinate einen XML-Tag mit dem VarType "Real". Das Problem ist, dass es "lange" dauert bis die Koordinaten auf der Steuerung ankommen. Ich habe nun die Annahme das es an dem Header liegt, der bei jeder Kommunikation mit geschickt wird. Könnte ich nun alle Koordinaten auf einmal schicken wäre das ja logischerweise nur ein fünftel des Headers (also, falls meine Theorie stimmt und der Header für die Trägheit verantwortlich ist).
    Das man den Stuct beschreiben kann habe ich ehr experimentel herausgefunden. Ich habe den Tag in der XML-Konfiguration auf "rw" gestellt und die Diagnosesoftware konnten den Tag noch lesen. Wenn ich das beim RealArray gemacht habe, ist die Diagnosesoftware sofort abgestürzt (übrigends schön von KUKA das sie so eine Exception nicht fangen).
    Also, ich benutze C#. Und da gibt es natürlich auch den Datentypen "struct". Allerdings gibt es den nicht in der OPC-Bibliothek die wir benutzen. Da gibt es allerdings den Typen "any" und "object". Ist nun also die Frage, ob man die Daten in C# in ein "any" typecastet und der Roboter die wieder zurück casten kann.
    Also wenn du da irgendwelche Code-Schnippsel für mich hast, bin ich dir natürlich extrem dankbar.


    Gruss
    Franz

    Ja. Inzwischen habe ich es probiert. Es stimmt. Leider werden mir die Punkte sehr langsam übertragen wenn ich das einzeln mache. Und ich hoffe das liegt an einem zu großen Telegramkopf. Wenn ich alles auf einmal schicken würde, würde ich also 5 Telegramköpfe weniger übertragen müssen.
    Ich habe in der KUKA Anleitung gelesen, und ausprobiert, den VarType "Struct" zu beschreiben. Also, ich könnte diesen Typen zumindest auf "rw" setzen. Aber mir fehlt leider vollkommen, jede Idee wie ich ein Struct auf der Clientseite realisiere. Ich meine, Struct ist sehr abhängig von der verwendeten Sprache, oder?


    Gruss
    lambert

    Ich blicks immer noch nicht. Kannst du nicht den Koordinatenursprung durch die 3Punkt Methode festlegen. Und später die Orientierung numerisch nachbearbeiten. Ich nehme mal an, dass deine X-Y-Ebene parallel zur X-Y-Ebene des Roboters ist, wenn du palletieren willst. Hilft dir das weiter?