GPIB
Also die von Dir angesprochene Programmiering ist auf absolut lowest GPIB level. NI-488(.2) das von VISA in letzter Konsequenz angesprochen wird macht das fúr Dich alles schon automatisch.
Um einen String an ein Gerät zu schicken wird mit dem Write automatisch zuerst das GPIB Kommando untalk, unlisten, mta, listen <addr> und dann der String geschickt. Im Prinzip ist es also auf VISA Ebene genug um ganz einfach eine Resource zu Deinem Device 19 zu öffnen
(GPIB0::19::INSTR) und dann den String "c1;me;a0;fd0;sp101;cw0"zu schicken. Der Rest sollte ganz von alleine gehen.
Es gibt nur einen kleinen Haken dabei: Die Verwendung dieses low level GPIB Protokolls könnte entweder gewählt sein weil die Umgebung wo das entwickelt wurde keine höheren Kommandos zuliess oder der entsprechende Programmierer nichts besseres wusste, oder es könnte auch sein dass es sich um ein sehr altes GPIB Gerät handelt dass sich nicht an die IEEE-488.2 Normen hält. Diese Instrumente haben manchmal sehr spezifische und komische Anforderungen betreffend der Addressierungssequenz (zum Beispiel bei jedem einzelnen Kommando ein zwingend erforderliches unlisten and untalk auch wenn die vorige GPIB Transaktion bereits mit dem selben Gerät und in die selbe Richtung war), oder Message Termination (jeweils ein bestimmter Character statt der spezifisch dafür vorgesehenen Handshakeleitung), etc.
Viele dieser Dinge lassen sich aber über Property Nodes für die jeweilige VISA Session am Anfang einstellen, wie zum Beispiel Autoreaddressing, oder spezifische Message Termination. Nur in ganz speziellen und esoterischen Fällen könnte es notwendig sein um direkt auf tieferem Niveau einzugreifen.
Rolf Kalbermatter
|