LabVIEWForum.de - VISA lesen läuft über

LabVIEWForum.de

Normale Version: VISA lesen läuft über
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
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
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
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
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
Referenz-URLs