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 

VISA Read und Bytes at Port



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!

20.09.2009, 09:35 (Dieser Beitrag wurde zuletzt bearbeitet: 28.08.2019 07:58 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
VISA Read und Bytes at Port
Das sind viele Fragen:
Zitat:- Eigenschaftsknoten Bytes at Port
Hier handelt es sich um eine reine Statusmeldung, im Buffer ändert sich nichts. Man kann den Ausgang dazu benutzen, ihn an VISARed anzuschließen, so daß dann genau die Anzahl Bytes gelesen werden, welche im Buffer sind
Zitat:VISA: Read
Das steht schon im Posting von Markus. Also auf Deutsch: die Funktion wartet, bis eines der drei Ereignisse eingetritt:
a) Die am Eingang angeschlossene Bytezahl (oder mehr) befinden sich im Empfangsbuffer.
b) Falls in VISAKonfig aktiviert: TerminalChr trifft ein. In der Regel ist das 0xA
c) Timeout. Wert wird in Visakonfig eingestellt.
Edit zu b)
Wenn im Moment des Lesens nicht mehr auf das Eintreffen von 0xA gewartet werden muß, weil sich im Puffer schon eine Zeichenkette mit ein oder mehreren 0xA befindet, dann liest VisaRead ohne zu warten den Teil des Puffers bis zum nächsten 0xA aus.

Zitat:Meine Frage bezieht sich auf das Entleeren des Eingangspuffers von VISA Read, und zwar was geschieht wenn mehrere Responsetelegramme hintereinander empfangen werden sollen, wird der Eingangspuffer dann überschrieben, serialisiert, verworfen,...
Überschrieben wird der Empfangsbuffer grundsätzlich nicht. Es gibt da 2 Möglichkeiten.
a) Mit Flußkontrolle (Entweder "Hart" mit RTS/CTS oder "Soft" mit Xoff/Xon): Das Senden von Bytes (auf der Gegenstelle) wird gegebenenfalls verhindert, damit der Empfangsbuffer nicht überläuft.
b) Ohne Fußkontrolle: Hier muß dafür gesorgt sein, das der Empfangsbuffer genügend groß ist bzw. mit genügender Geschwindigkeit entleert wird. Wenn der Buffer voll ist und es wird weiter gesendet, dann wird nichts überschrieben, sondern die weiter gesendeten Bytes werden ins Nirvana gesendet und gehen verloren.

Zitat:Was passiert außerdem mit dem Eigenschaftsknoten Bytes at Port wenn im Moment erst ein Teil der Responsedaten empfangen wurden?
Wie ich schon sagte, passiert beim Lesen von Bytes at Board nie etwas, es wird die momentane Anzahl von Bytes im Buffer ausgegeben, fertig. Man kann auch den Eigenschaftknoten in eine While-Schleife hineintun und so lannge pollen, bis eine erwartete Anzahl von Bytes im Buffer eingetroffen ist.

Zitat:Wie kann ich mehrere nacheinander eintreffende Responsetelegramme voneinander unterscheiden, bzw. feststellen ob ein Telegramm nicht empfangen wurde?
Die Telegramme werden in der Reihenfolge empfangen, in der sie gesendet wurden, won daher gibt es keine Probleme. Mit dem Eigenschaftknoten Bytes on Board kannst Du jederzeit konntrollieren, ob sich vielleicht mehrere Telegramme im Buffer angestaut haben und ob der Stau vielleicht sogar in die Nähe der voreingstellte Buffergröße kommt.
Eine andere Frage ist, wie man in einem Bytestrom von mehreren Telegrammen die Schittstellen zwischen den einzelnen Telegrammen (das Ende jedes Telegramms) feststellt. Möglichkeit 1: Mit TerminalChar. Nachteil ist: Datenbytes dürfen dann nur als ASCII-Zeichen gesendet werden, d.h es werden zwei ASCII-Zeichen für ein Datenbyte gebraucht. (Also z. B die Zeichenkette "FF" für die 8 bit-Zahl 255). Diese Übertragungsart ist der Regelfall, wir man schon daran sieht, daß Visa Read nur das Textformat annimmt. Der genannte "Nachteil" ist eher selten relevant.
Möglichkeit 2: Der Sender sendet nur nach Aufforderung, und man weiß, daß z.B 12 Bytes als Antwort kommen müssen. Dann wartet man mit VisaRead, bis 12 Bytes eingetroffen sind. Probleme mit Bufferüberlauf kann es da gar nicht geben.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
VISA Read und Bytes at Port - tanka - 18.09.2009, 08:06
RE: VISA Read und Bytes at Port - Ratio - 27.08.2019, 11:32
RE: VISA Read und Bytes at Port - GerdW - 27.08.2019, 11:51
RE: VISA Read und Bytes at Port - Ratio - 27.08.2019, 12:04
RE: VISA Read und Bytes at Port - GerdW - 27.08.2019, 13:22
RE: VISA Read und Bytes at Port - Ratio - 28.08.2019, 06:20
RE: VISA Read und Bytes at Port - GerdW - 28.08.2019, 06:55
RE: VISA Read und Bytes at Port - Lucki - 28.08.2019, 08:10
VISA Read und Bytes at Port - Y-P - 19.09.2009, 08:58
VISA Read und Bytes at Port - Lucki - 20.09.2009 09:35

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  VISA Read Fehler 1073807302 Stefan1101 4 7.179 29.08.2016 10:13
Letzter Beitrag: Stefan1101
  Serial Port mit Continuous Serial Read Write Hoang Nguyen 2 7.306 15.04.2016 10:35
Letzter Beitrag: Hoang Nguyen
  VISA Read mit Keithley 6487 dauert lange jusaca 3 5.166 28.01.2016 11:12
Letzter Beitrag: jusaca
  1x COM-Port, 2 x Write & 2x Read Jann 19 13.594 10.12.2015 14:17
Letzter Beitrag: jg
Shocked Error 1073807313 - VISA Read in HOST.vi Hattorii 11 10.751 02.04.2014 15:28
Letzter Beitrag: Hattorii
  VISA Read liest nicht alle Bytes von Bytes at Port numumba 2 6.686 21.01.2014 20:24
Letzter Beitrag: numumba

Gehe zu: