Maximale Stringlänge bei Socket MSG

  • Hallo Zusammen!

    Ich übertrage über die Socket MSG Funktion berechnete Koordinaten auf den Controller (R-30iB). Der Controller ist dabei der Server. Dort werden die Daten von einem KAREL Skript als eine einzelne ununterbrochene Zeichenkette empfangen. Das funktioniert auch wunderbar. Wenn ich allerdings die Länge des Strings (genauer genommen ist es ja eine byteweise Übertragung) vergrößere steigt der Controller irgendwann mit einer Statusmeldung 2051 (nicht initialisierte Variable "tmp_str") aus. Die einzulesenen Bytes frage ich vorher mit BYTES_AHEAD ab und lese sie auch bytegenau ein. Das Ergebnis von BYTES_AHEAD erhalte ich korrekt.


    Der Witz ist allerdings, dass der Fehler im RoboGuide nicht auftritt. Dort funktioniert das ganze auch mit langen Strings wunderbar.


    Die Stringlänge bei der der Controller aussteigt liegt irgendwo zw. 126 und 140 Zeichen.


    Hatte jemand von Euch schon einmal dieses Problem und hat eine Lösung gefunden? Ich würde ungern die Übertragung in zwei Teile aufteilen müssen.


    Hier noch ein Codeschnippsel in dem der Fehler auftritt:


    Code
    WRITE('Reading...',CR)
    BYTES_AHEAD(file_var, entry, status)
    WRITE(' Bytes reading: ', entry, CR)
    READ file_var (tmp_str::entry)
    status = IO_STATUS(file_var)
    WRITE(' file_var_status: ', status, CR)
    WRITE(' Read: ', tmp_str, CR)

    Die Ausgabe auf dem TP als Handybild...


    Ich hoffe auf Eure Hilfe! ;)

    Grüße!


    nico

  • ANZEIGE
  • READ file_var (tmp_str::entry)

    Okay, habe zwar noch nie in Karel programmiert, aber in Hochsprache KUKA und ABB und der doppelte Doppelpunkt kommt mir komisch vor. Soll das so sein?

  • Servus,


    ich habe einen String noch nie eingelesen aber ich habe da was gehört von einer Begrenzung, die man größer stellen kann. Kann zwar sein das ich da völlig auf dem Holzweg bin aber folgendes habe ich gefunden. Ich habe bei mir nachgeschaut da steht die Variable auf -128. Zu dem Thema das was im Roboguide geht und in der Realensteuerung nicht hatte ich auch schon.


  • Hallo Zusammen!

    Danke für Eure Antworten und entschuldigt bitte mein späte Rückmeldung. Ich hatte Kurzarbeit.


    @Gerhhard, ja, ich glaube das MUSS sogar so sein. ;)


    @TeamRosario: Ich bin in der Tat auch schon auf diese Variable gestoßen. Ich hatte es mit dem Wert $FILE_MAXSEC=-256 ausprobiert. Leider ohne Erfolg.


    Ich habe das ganze Thema nun einem Ansprechpartner bei FANUC gemeldet und hoffe auf eine Rückmeldung. Ich werde sie dann gerne hier teilen, sofern sie fruchtbar ist.

    Grüße!


    nico

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