1. Fehlercode
' schrieb:Was kriegst Du da für einen Fehler? Oder ist es doch nur eine Warnung? Weil die kriegst Du da immer.
Der Fehlercode war: -1073807331 und bezeichnet: "The specified attribute is not defined or supported by the referenced resource." laut der
VISA Error Codes Liste . Heißt für mich, wie oben schon erwähnt: Mein Gerät unterstützt diesen Befehl nicht, zudem war der Property Node Eintrag auch unter Serial und nicht unter GPIB.
Warum soll bei obigem Beispiel immer eine Warnung auftreten?
Falls unklar: Die 2 Versuche sind natürlich nicht in einem VI, das ist nur im Bild so.
2. Byte Count Wert
' schrieb:Message Termination ist normalerweise das Zauberwort. Bei GPIB teilt das Gerät (ausser uralt Dynosuariers die noch nie was von IEEE 488.2 gehört haben) mittles Handshake mit wenn es das letzte Byte verschickt. Dann braucht man mit VISA nur noch einen Byte Count anzugeben der minimal so gross ist wie die längste erwartete Message.
VISA Read bricht dann ab wenn:
1) dieser EOI (End of Information) gesehen wurde
2) die verlangten Bytes eingetroffen sind
3) das Timeout abgelaufen ist
4) ein Fehler aufgetreten ist
D.h. die Lösung ist einfach nur einen ByteCount vorzugeben, der auf jedenfall groß genug ist und VISA-Read stoppt sobald nix mehr kommt?
Vorteil: Einfach
Nachteil: Verschwendung von Systemressourcen? Oder werden garnicht soviele Bytes vorweg reserviert wie ich im Bytecount vorgebe? Bzw. die ungenutzten Bytes wieder freigegeben falls nicht gebraucht? (Gut prinzipiell wird mich bzw. den PC die hier genutzte Anzahl weniger kratzen, ist rein informativ gefragt, bzw. man wills ja richtig machen)
3. VISA einmal öffnen und schließen
' schrieb:b) Ja!!! das ist kein Problem sondern hilft wenn sauber getan um eine eindeutige Abfolge in der Ausführung der Funktionen zu erreichen. LabVIEW ist Dataflow kontrolliert. Das heisst wenn Du mehrere Icons nebeneinander in ein Diagramm legst ohne dass da ein Wire vom einen zum anderen geht, ist die Reihenfolge der Ausführung dieser Funktionen zufällig und auf MultiCore Systemen sogar effektiv parallel. Das haben die meisten Instrumente gar nicht gern wenn man sie nicht in einer klar definierten Reihenfolge ansteuert.
Nummer 1 =Variante A: VISA wiederholt öffnen und schließen
Nummer 2 = Variante B: VISA einmal öffnen und schließen
Variante B so richtig mit dem einmal öffnen und schließen? Hier ist für mich zunächst ungewöhnlich, dass die VISA-Resource des Writes für den Frequenzspannenfall nicht zum Close geführt wird, sondern einfach "in der Luft" endet.
Variante A sollte gemieden werden?
In der Mittelstruktur wird jeweils geprüft ob ein erneuter VISA-Write nötig ist und für diesen Fall die entsprechende Case-Struktur ausgelöst. (Das sollte es zumindest tun
)
4. GPIB Doppelpunkt
Letzte Frage für heute:
Wozu wird einem GPIB Befehl ein Doppelpunkt vorangestellt, obwohl dem Instrument kein weiterer Befehl übergeben wurde.
Also z.B.
- zwei Befehle von FREQUENCY kombiniert einem Write übergeben: "FREQUENCY:CENTER 100MHz;SPAN 20MHz"
- zwei Befehle einem Write übergeben, eines von FREQUENCY und eines von FORM: "FREQUENCY:CENTER 100MHz;:FORM ASC"
- und jetzt kommts, nur ein Befehl: ":FORM ASC"
wozu ist im letzten Beispiel das ":" bzw. der Zusatznutzen zu "FORM ASC"? (Heißt ausgeschrieben Format ASCII)
warum wird ":" vor den LabVIEW befehl gesetzt?
Vielen Dank euch allen! Hab genug von LabVIEW für heute:)bis morgen.