IPO-Takt und Kommunikation

  • 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

  • Schritt für Schritt zum Roboterprofi!
  • Also speziell bei RSI-XML musst Du dich streng an die Kommunikationsvorgaben halten:


    Roboter sendet zuerst ein Telegramm an Deinen PC, und du musst innerhalb von 10 bzw. 11ms geantwortet haben, ansonsten wird das Paket verworfen.

  • Ja, wobei die XML Schnittstelle noch einen zweiten Modus hat, allerdings habe zumindest ich den noch nicht getestet, weil wir diesen Modus hier nicht benötigen. Du kannst nämlich einstellen, dass das Datenpaket, sofern es innerhalb von 2ms an den Roboter geschickt wird, noch im selben IPO Takt verarbeitet wird.

  • Also sagen wir mal ich habe ein Programm das irgendwie so aussieht:


    i=1
    Loop
    Frame=EmpfangeDaten()
    Punkteliste[i]=Frame
    i++
    Endloop


    Wie lange brauche ich dann für einen Schleifen durchlauf?

  • Haaaalt...das hat mit RSI nix mehr zu tun!



    RSI ist ein Task der (ähnlich dem Submitinterpreter) parallel zum Roboterprogramm läuft. Sprich: Der Roboterinterpreter weiss nix von RSI, und RSI weiss eigentlich auch nix vom Roboter Interpreter.


    Wenn ich mir Deinen Code so anschaue, dann würde ich mal behaupten, die KRL-XML Schnittstelle wäre für diesen Fall die richtigere, oder? Diese bietet Dir nämlich Funktionen, mit denen Du aus dem KRL heraus die Kommunikation steuern kannst. also Daten vorbereiten, Daten senden, Daten empfangen, Daten verarbeiten...

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

  • Ähm....die einzige Schnittstelle, die zwischen RSI und KRL existiert sind die Systemvariablenarrays
    $SEN_PREAL[] und $SEN_PINT[]...fassen allerdings jeweils 20 Elemente, d.h. du kannst Pro IPO Takt maximal 20 Integer und 30 Realwerte übertragen.


    Und RSI selbst hat auch seinen Platz im IPO-Takt, somit wird es auch nur alle 12ms ausgeführt.
    Du musst bei der XML Sache auch dran denken, dass das Parsen und Auslesen des XML Strings auch seine Zeit kostet.

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