LabVIEWForum.de
VISA lesen läuft über - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: VISA lesen läuft über (/Thread-VISA-lesen-laeuft-ueber)



VISA lesen läuft über - H_S - 21.12.2010 21:45

Hey,
wollte bezüglich der Funktion "VISA lesen" etwas fragen. Bin gerade dabei Daten vom Microcontroller über VISA an LabVIEW zu senden. Leider werden so viele Bytes gesendet, so dass "VISA lesen" überläuft und diesbezüglich eine Fehlermeldung ausgibt.
Wie groß kann maximal die Anzahl der gelesenen Bytes sein ohne Fehlermeldung? Was gibt es da für Möglichkeiten für so einen hohen Datenfluss?
konkret: gelesen werden jede sek um die 8000 Bytes.
Was gibt es da für Möglichkeiten diese Bytes von vornerein einzustellen, also das man sagt ich möchte jetzt z.B. nur 100 Bytes lesen? Ich hatte die Idee das über einen Eigenschaftskonoten zu realisieren aber leider dazu keine passende Eigenschaft gefunden.

Ich hoffe jemand kennt diese Problematik und kann mir da Tipps gebenSmile

Viele Grüße
H_S


VISA lesen läuft über - jg - 22.12.2010 00:17

Am Read-VI gibt es doch einen Anschluß Byte Count? Dort z.B. 100 anschließen, dann werden immer 100 Bytes auf einmal gelesen.
Oder per PropertyNode "Bytes at Port" abfragen, wieviele Bytes gerade im Empfangsbuffer sind, und dann diese Anzahl auslesen.

Gruß, Jens


VISA lesen läuft über - H_S - 22.12.2010 11:56

Moin,
danke für die Antwort.
im Anhang habe ich das vi mal dargestellt. Über den Eigenschaftsknoten lese ich die Anzahl der Bytes aus und leite sie als Eingang zum "VISA lesen" weiter. Meintest du so?

Wenn ich das vi ohne Schleife laufen lasse kommt trotzdem immer noch folgende Fehlermeldung:

"Während der Übertragung ist ein Überlauffehler aufgetreten. Ein Zeichen wurde von der Hardware nicht gelesen, bevor das nächste Zeichen ankam."

Mit Schleife kommt diese Fehlermeldung nicht mehr. Je nachdem wie lange die Schlaufendauer ist, je größer ist auch die Byteanzahl am Port.
Das verstehe ich nicht, weil doch bei jedem Durchlauf trotzdem ALLE Bytes am Port ausgelesen werden, wo ist der Unterschied zum Modell ohne Schleife bei dem die Fehlermeldung auftritt. Also ich verstehe nicht warum die ausgelesenen Bytes von der Dauer der Schleife abhängig sind?

Viele Grüße
H_S

Lv86_img


VISA lesen läuft über - jg - 22.12.2010 12:12

Konfigurations-VI gehören nicht IN eine Loop, sondern davor.

Die Buffergröße in Bytes kann man mit dem entsprechenden VI in der Serial-Palette festlegen. Standard ist 4096 bytes.
' schrieb:Moin,
danke für die Antwort.
im Anhang habe ich das vi mal dargestellt. Über den Eigenschaftsknoten lese ich die Anzahl der Bytes aus und leite sie als Eingang zum "VISA lesen" weiter. Meintest du so?
So in der Art, s. o.
' schrieb:Wenn ich das vi ohne Schleife laufen lasse kommt trotzdem immer noch folgende Fehlermeldung:

"Während der Übertragung ist ein Überlauffehler aufgetreten. Ein Zeichen wurde von der Hardware nicht gelesen, bevor das nächste Zeichen ankam."
Logisch, oder? Dein Mikrocontroller sendet dauernd, so wie ich das verstehe. Irgendwann (bei Standardeinstellungen nach ca. 4000 ms, s.o.) ist der Buffer voll!
' schrieb:Mit Schleife kommt diese Fehlermeldung nicht mehr. Je nachdem wie lange die Schlaufendauer ist, je größer ist auch die Byteanzahl am Port.
Das verstehe ich nicht, weil doch bei jedem Durchlauf trotzdem ALLE Bytes am Port ausgelesen werden, wo ist der Unterschied zum Modell ohne Schleife bei dem die Fehlermeldung auftritt. Also ich verstehe nicht warum die ausgelesenen Bytes von der Dauer der Schleife abhängig sind?
Nicht? Nochmal, dein MC sendet dauernd, d.h. so ca. jede ms sendet er ein Byte. Das landet im Buffer der seriellen Schnittstelle.
Je länger dein Wait ist, desto mehr Bytes liegen beim nächsten Durchlauf im Buffer.

Gruß, Jens


VISA lesen läuft über - H_S - 22.12.2010 18:18

Hey,
ja ich glaub ich habe es verstanden.
Der Buffer ist schon so gefüllt das der VISA lesen das nicht hinbekommt und über läuft. Ich werde die Bytes dann vorher schon abfangen. Ich denke dann klappt das.
Danke.

Viele Grüße