Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Der eine, der auf den drei fehlenden Zeichen, die jetzt plötzlich beim vierten Lesen rauskommen, basiert, hat sich ja erledigt.
Bevor ich auf ein Handle-Problem tippe, müsste ich folgendes Abfragen: Kann es sein, dass das SubVI parallel aufgerufen wird? Kann es sein, dass parellel zu diesem VI irgendwer irgendwie auf COM4 zugreift bzw. zugreifen will?
Kannst du ein abgespecktes SubVI erstellen, bei dem dieser Fehler immernoch auftritt?
Hab ein abgespecktes VI erstellt was nur diese Funktion ausführt. Also das auf false setzten klappt nicht, was ich jetz gemacht habe ist das "ASRL End in" ein "None" verpasst, jetzt ließt er alles aus, HALLELUJA!
' schrieb:wie heisst der denn, find wohl nicht den richtigen (siehe mein Screenshot oben)
Rechts neben Timeout, das du verdrahtet hast, kommt zuerst ein Eingang "termination char (0xA = 'n' = LF)" und davon rechts einer der "Enable Termination Char (T)" heißt.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb:Rechts neben Timeout, das du verdrahtet hast, kommt zuerst ein Eingang "termination char (0xA = 'n' = LF)" und davon rechts einer der "Enable Termination Char (T)" heißt.
Achja am Serial Port Konig, okay. Hab im Eigenschaftsknoten gesucht, okay denke mein Problem ist damit gelößt
Weil ich immer nur soviele Zeichen auslese, wie auch da sind. Respektive warte ich solange, bis genau die erwartete Anzahl in "Bytes im Puffer" vorhanden sind. Ein Timeout beim Lesen brauche ich also nicht. Beim Schreiben auch nicht: Da die Übertragung zwischen Endgerät und Applikation (oft) als Master/Slave abläuft, kann man den Puffer so groß einstellen, dass der immer groß genug ist - und also das VISA-interne Timeout nicht notwendig wird.
Ob ich jetzt das Timeout-Management selbst mache und vor dem Lese/Schreib-VI abzweige oder ob ich das Timeout-Management nach dem Lese/Schreib-VI mache, bleibt sich prinzipiell gleich. Hauptsache es wird gemacht.
Ja, aber wenn das Lesen des Puffers selbst länger dauert als 0? Vielleicht ein paar ms vielleicht auch weniger 1 ms, dann würdest du theoretisch auch einen Timeout-Error bekommen. Was stört dich genau am Timeout beim Lesen?
Das VISA Read VI hört auf zu lesen und gibt die gelesenen Zeichen zurück wenn:
die Anzahl gelesener Zeichen gleich dem angefordetem Wert entspricht oder
wenn Termination Character im Puffer vorkommt oder auch
wenn Timeout abgelaufen ist
' schrieb:Ja, aber wenn das Lesen des Puffers selbst länger dauert als 0? Vielleicht ein paar ms vielleicht auch weniger 1 ms, dann würdest du theoretisch auch einen Timeout-Error bekommen.
Das Lesen des Puffers ist durch ein Timeout "abbrechbar"? Das kann nicht sein. Selbst wenn im Puffer 10.000 Zeichen stehen dauert das Auslesen bestimmt doch nicht eine einzige ms. Was dauern mag ist das warten, bis eine bestimmte Anzahl Zeichen im Puffer steht.
Zitat:Was stört dich genau am Timeout beim Lesen?
Stören tut mich daran im Prinzip gar nichts. Ich mach das immer so: Lesen, was da ist und das dann parsen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb:Das Lesen des Puffers ist durch ein Timeout "abbrechbar"? Das kann nicht sein. Selbst wenn im Puffer 10.000 Zeichen stehen dauert das Auslesen bestimmt doch nicht eine einzige ms. Was dauern mag ist das warten, bis eine bestimmte Anzahl Zeichen im Puffer steht.
Stören tut mich daran im Prinzip gar nichts. Ich mach das immer so: Lesen, was da ist und das dann parsen.