11.05.2009, 21:27
Hallo LabVIEWforumianer! Ich versuche zur Zeit einen Spektrumanalyser via GPIB bzw. mittels VISA auszulesen. Nun ist es aber so, dass jeder VISA-Read gerne einen Byte Count Wert hätte. Die Frage ist "simpel" wie komme ich an diesen? Folgendes habe ich schon probiert:
[attachment=18385]
Im ersten Versuch habe ich die Property Node: Bytes at Port versucht zu verwenden, leider löst diese einen Fehler aus, bzw. für das GPIB Interface ist diese Node nicht definiert/nicht unterstützt.
Im zweiten Versuch habe ich einfach einen Wert gesetzt, dieser muss natürlich lang genug sein, sonst werden die Strings nicht vollständig ausgelesen. Dies ist bei einfachen Befehlen noch nicht problematisch, allerdings geht es letztlich um das Auslesen eines Kurvenverlaufs mit variierender Punktezahl (diese kann ich einfach auslesen bzw. errechnen (die Punktezahl). Wie kann ich nun vorgehen um die genaue Anzahl der Bytes herauszufinden, oder bekomme ich ein "Ende"-Zeichen, so dass ich nach x-Iterationen des Read in einer Schleife, den Read abbrechen kann?
Noch eine weitere Frage:
Ich werde öfter im Program VISA-Read und -Write benutzen müssen in verschiedenen Programmbereichen:
a) Öffne ich in jedem Programmbereich via VISA-Open und Close neu?
b) Schleppe ich die Wires für Resource und Error durch das ganze Programm?
Irgendwie hört sich beides nicht so top an, wie macht mans richtig?
Nochmal anders gefragt: Sollte ich einen Read und Write in ein SubVI kapseln, muss der Nutzer ja VISA-Open und Close wieder herumbastelen, d.h. das SubVI ist nicht ohne weiteres eigenständig lauffähig.
[attachment=18385]
Im ersten Versuch habe ich die Property Node: Bytes at Port versucht zu verwenden, leider löst diese einen Fehler aus, bzw. für das GPIB Interface ist diese Node nicht definiert/nicht unterstützt.
Im zweiten Versuch habe ich einfach einen Wert gesetzt, dieser muss natürlich lang genug sein, sonst werden die Strings nicht vollständig ausgelesen. Dies ist bei einfachen Befehlen noch nicht problematisch, allerdings geht es letztlich um das Auslesen eines Kurvenverlaufs mit variierender Punktezahl (diese kann ich einfach auslesen bzw. errechnen (die Punktezahl). Wie kann ich nun vorgehen um die genaue Anzahl der Bytes herauszufinden, oder bekomme ich ein "Ende"-Zeichen, so dass ich nach x-Iterationen des Read in einer Schleife, den Read abbrechen kann?
Noch eine weitere Frage:
Ich werde öfter im Program VISA-Read und -Write benutzen müssen in verschiedenen Programmbereichen:
a) Öffne ich in jedem Programmbereich via VISA-Open und Close neu?
b) Schleppe ich die Wires für Resource und Error durch das ganze Programm?
Irgendwie hört sich beides nicht so top an, wie macht mans richtig?
Nochmal anders gefragt: Sollte ich einen Read und Write in ein SubVI kapseln, muss der Nutzer ja VISA-Open und Close wieder herumbastelen, d.h. das SubVI ist nicht ohne weiteres eigenständig lauffähig.