INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Problem alle Bytes aus Empfangspuffer auszulesen



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!

12.04.2008, 12:47
Beitrag #1

Hanz Peter Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Apr 2008

8.5
-
de

10115
Deutschland
Problem alle Bytes aus Empfangspuffer auszulesen
Hallo!
Habe folgendes Problem, vll. kann mir ja jemand weiterhelfen:
Ich empfange auf der Seriellen Schnittstelle (RS232) eine handvoll Bytes (270) und möchte diese in einem String weiterverarbeiten. Der Eigenschaftsknoten verrät mir dass wirklich 270 Bytes im Eingangspuffer liegen, das "Visa Lesen" Modul erfasst aber nur 103 (ermittelt durch Ausgabezählwert). Wie kommt das?! als Timeout habe ich 10k eingegeben.
Über Antworten würde ich mich sehr freuen.

PS: wenn man versucht den Inhalt über eine While Scheilfe permanent auszulesen bis man alle Bytes erwischt hat (das klappt) bekommt man den Fehler 1073807339, ich weis nicht was ich noch probieren könnte..)

mfg

HPT

Edit:
Noch etwas: Wenn ich in einer Sequenz den Puffer 3 mal nacheinander auselesen lasse, lese ich in Summe die 270 Bytes aus, erhalte dann aber die Fehlermeldung "Fehler -1073807339 ist bei VISA: Lesen in Komunikationstest 14.vi aufgetreten"...


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.04.2008, 12:29
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Problem alle Bytes aus Empfangspuffer auszulesen
Wenn da 270 drinnenstehen, sollten auch 270 herauskommen. Hmm

Ich könnte mir vorstellen, dass die Baudrate (oder eine andere Einstellung) nicht passt (daraus könnte auch der Fehler -1073807339 folgen), in folge derer es dann zu einem Fehler in der Übertragung kommt. "Bytes at port" zeigt zwar die tatsächlich empfangene Zahl Bytes an. Die beinhaltet aber auch die Anzahl der Bytes mit Übertragungsfehler. Mit Read bekommst du aber nur die fehlerfrei übertragenen Bytes.

Was soll eigentlich das "Ressource sperren" vor dem Lesen? Sowas hab ich noch nie gemacht.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.04.2008, 13:15
Beitrag #3

Hanz Peter Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Apr 2008

8.5
-
de

10115
Deutschland
Problem alle Bytes aus Empfangspuffer auszulesen
' schrieb:Wenn da 270 drinnenstehen, sollten auch 270 herauskommen. Hmm

Ich könnte mir vorstellen, dass die Baudrate (oder eine andere Einstellung) nicht passt (daraus könnte auch der Fehler -1073807339 folgen), in folge derer es dann zu einem Fehler in der Übertragung kommt. "Bytes at port" zeigt zwar die tatsächlich empfangene Zahl Bytes an. Die beinhaltet aber auch die Anzahl der Bytes mit Übertragungsfehler. Mit Read bekommst du aber nur die fehlerfrei übertragenen Bytes.

Was soll eigentlich das "Ressource sperren" vor dem Lesen? Sowas hab ich noch nie gemacht.

Hallo!
Zunächst danke für deine Antwort!
Das sperren hat keinen Einfluss, wenn man die Bauelemente weglässt tritt der Fehler auch auf. Ich habe sie nur mal testweise eingebaut weil ich nicht sicher war ob LV vll den exklusiv Zugriff verliert (ich hatte im hintergrund einen Sniffer laufen). Dem ist aber nicht so. Baudrate und alle anderen Parameter passen! Wenn man in einer Sequenz, und das ist das merkwürdige, den Inhalt nacheinander 3 mal auslesen lässt erhalt man in Summe die 270 Bytes! (durch den Sniffer konnte ich prüfen welche Bytes im Eingangspuffer liegen, diese waren dann identisch, auch die Reihenfolge passt dann) nur wen ich 3 mal Nacheinander auslese, tritt der Fehler mit der Zeitüberschreitung auf, obwohl er dann alle Bytes erwischt, in Summe (ich lasse ihn in jeder Sequenz nur einen Teil der 270 Bytes lesen).
Also einen Übertragungsfehler kann man denke ich ausschließen, ich weis zudem was übertragen werden soll, konnte also wert und reihenfolge der Bytes auf Richtigkeit prüfen, passt alles. Wie schon gesagt schaffe ich es einfach nicht alles auf einen schlag auszulesen und wenn ich es nacheinander versuche erhalte ich die oben genannte Fehlermeldung, bin am verzweifeln Pccrash
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.04.2008, 15:52 (Dieser Beitrag wurde zuletzt bearbeitet: 13.04.2008 15:54 von IchSelbst.)
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Problem alle Bytes aus Empfangspuffer auszulesen
Welchen Wert hast du denn beim Timeout bei "Visa konfigurieren" angegeben? Stell da mal 0 ein.

Hast du irgendwo explizite Angaben über Puffergrößen gemacht?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.04.2008, 16:16 (Dieser Beitrag wurde zuletzt bearbeitet: 13.04.2008 16:54 von eg.)
Beitrag #5

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Problem alle Bytes aus Empfangspuffer auszulesen
Du hast beim Konfigurieren der Schnittstelle das Termination Char nicht ausgeschaltet. Wenn in diesen 270 Bytes zufälligerweise das Term. Char vorkommt, wird das Lesen der Schnittstelle an dieser Stelle abgebrochen.
Also Termination ausschalten und so sollte es dann klappen.

Gruß

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.04.2008, 17:51
Beitrag #6

Hanz Peter Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Apr 2008

8.5
-
de

10115
Deutschland
Problem alle Bytes aus Empfangspuffer auszulesen
@IchSelbst
Habe schon mit verschiedenen Timeout Zeiten experimentiert, schien keinen Einfluss darauf zu haben ob da 0 oder 100k gegebnen war.. Was würde mir 0 bringen? An der Puffergröße habe ich keine veränderungen vorgenommen, es wird ja auch alles empfangen..

@eg
*schluck* Termination Char?!?! Schande.. das könnts gewesen sein! werd das später gleich mal probieren, erstatte dann Bericht ^_^
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.04.2008, 18:25 (Dieser Beitrag wurde zuletzt bearbeitet: 13.04.2008 18:26 von eg.)
Beitrag #7

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Problem alle Bytes aus Empfangspuffer auszulesen
' schrieb:Welchen Wert hast du denn beim Timeout bei "Visa konfigurieren" angegeben? Stell da mal 0 ein.

Sowas würde ich niemals raten, kannst du deinen Vorschlag erklären? Warum 0?

Ich würde umgekehrt -1 vorschlagen, wenn das erlaubt wäre. Aber VISA unterstützt leider keinen unendlichen Timeout.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.04.2008, 18:44
Beitrag #8

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Problem alle Bytes aus Empfangspuffer auszulesen
Offtopic2

' schrieb:Sowas würde ich niemals raten, kannst du deinen Vorschlag erklären? Warum 0?
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.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.04.2008, 18:47
Beitrag #9

Hanz Peter Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Apr 2008

8.5
-
de

10115
Deutschland
Problem alle Bytes aus Empfangspuffer auszulesen
' schrieb:@IchSelbst
Habe schon mit verschiedenen Timeout Zeiten experimentiert, schien keinen Einfluss darauf zu haben ob da 0 oder 100k gegebnen war.. Was würde mir 0 bringen? An der Puffergröße habe ich keine veränderungen vorgenommen, es wird ja auch alles empfangen..

@eg
*schluck* Termination Char?!?! Schande.. das könnts gewesen sein! werd das später gleich mal probieren, erstatte dann Bericht ^_^

Okay der Termination Char Enable steht ja standardmäßig auf 0, hab ihn jetzt nochmal explizit disabled (siehe screenshot) das lößt aber das porblem immernochnicht. Beim ersten lesen bricht das visa read nach 103 bytes aus, beim 2. bei 22 und beim 3. bei 142 und beim 4. nach 3 ab (Summe 270), immer. Noch andere vorschlägeWink?


EDIT:
Ich muss mich korrigieren: Es hat durchaus etwas mit dem Term Char zu tun,leider verstehe ich es nicht ganz: Wenn ich im Eigenschaftsknoten "ASRL End out" im Dropdown "Term Char" anschliße, alle anderen Einstellungen wie im Screenshot auf false und als TermChar explizit ein Sybol eingebe das in meiner Bytefolge nicht vorkommt, klappts. Wie kann ich denn das Term Char generell deaktivieren?!


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.04.2008, 19:05
Beitrag #10

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Problem alle Bytes aus Empfangspuffer auszulesen
' schrieb:Noch andere vorschläge
Noch viele!Cool

Der eine, der auf den drei fehlenden Zeichen, die jetzt plötzlich beim vierten Lesen rauskommen, basiert, hat sich ja erledigt. Tongue

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?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  VISA Read und Bytes at Port tanka 9 13.834 28.08.2019 08:10
Letzter Beitrag: Lucki
  VISA Read liest nicht alle Bytes von Bytes at Port numumba 2 7.028 21.01.2014 20:24
Letzter Beitrag: numumba
  Bytes at Port dimitri84 5 10.015 10.12.2011 11:08
Letzter Beitrag: dimitri84
  VISA liest weniger Bytes wie im Puffer beppone 2 4.749 14.11.2011 19:53
Letzter Beitrag: beppone
  Fehler bei RS232 Bytes at Port = 0 newlabviewer1 7 9.067 06.04.2011 14:15
Letzter Beitrag: newlabviewer1
  Anpassung der zu lesenen Bytes an Stringlänge eines Controllers syntec 6 6.408 24.07.2010 16:40
Letzter Beitrag: Y-P

Gehe zu: