Timing bei Prüfprogramm mit VISA-Schnittstelle

Gast #7283382
Lesenswert?

Hallo zusammen,

ich schreibe gerade ein Nadeladapter-Prüfprogramm für Platinen in C#. 
Als Prüfgerät dient der Multimetereinsatz eines Agilent 34972. Das ganze 
spreche ich per VISA-Schnittstelle über USB an.
Soweit funktioniert das auch ganz gut, eine Sache wäre aber noch 
optimierbar bzw. ist mir auch einfach nicht ganz klar.

Möchte ich eine Spannung Messen mach ich das aktuell beispielsweise mit 
folgendem Code:
1
agilent_string = "MEASure:VOLTage:DC? 100, 0.00003, (@101)\n";
2
viError = visa32.viPrintf(session, agilent_string);
3
Thread.Sleep(3000);
4
viError = visa32.viScanf(session, "%lf", value_d);

Das funktioniert, is aber unschön, weil die 3 Sekunden Wartezeit 1. 
unflexibel sind und 2. das ganze schneller laufen könnte. Rufe ich das 
viscanf zu schnell auf, kommt mist.
Nun drängt sich natürlich die Frage auf, ob es da nicht einen Befehl 
gibt, wo das gewarte ein Ende hat und ich direkt aus der Funktion 
zurückkomme wenn das Gerät gelesen hat. Quasi ein kombiniertes 
printf&scanf, und die Wartezeit dazwischen wird automatisch eingehalten.
Sorry, falls es eine doofe Frage is, aber es is das erste mal, dass ich 
mit der VISA-Schnittstelle arbeite.

Beste Grüße und vielen Dank,
Fabian
Gast #7284384
Lesenswert?

Hallo Chris,
die Idee is gut, leider bekomme ich es aber net hin. Evtl. passt auch 
die Syntax nicht:
[pre]
agilent_string = "MEASure:VOLTage:DC? 100, 0.00003, (@101)\n";
viError = visa32.viPrintf(session, agilent_string);
viError = visa32.viPrintf(session, "*OPC?\n");
viError = visa32.viScanf(session, "%lf", value_d);
[\pre]

Irgendwo hatte ich noch gelesen, man solle ein read nach dem *OPC? 
schicken, aber auch das hat nicht funktioniert. im value_d steht dann 
immer der Wert "0".

Hat sonst noch jemand Vorschläge? Hatte erwartet hier arbeiten viele mit 
diesen Geräten?:-O

Beste Grüße,
Fabian

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren