プロが教える店舗&オフィスのセキュリティ対策術

VB6.0でVISAを用いてプログラミングしているのですが、
機器の状態を取得するところで躓いています。
":AM:STA?"というコマンドを使うのですが
Call viVPrintf(vi, ":AM:STAT?" + Chr$(10), 0)
と打った後、戻り値の取得方法が分かりません。
viVPrintfで良いのかも自信がありません。(もしかして、viVScanf?)

A 回答 (2件)

GPIBコマンドを使って通信する場合、戻り値があるコマンドの時はコマンド送信後、受信動作が必要です。


viVPrintf()は送信だけを行う関数です。戻り値の受信にはviVScanf()関数を使用します。

プログラムの流れ:
1)viVPrintf()でコマンド送信
2)viVScanf()で戻り値を受信

測定器メーカーがVISA関数ライブラリを提供していれば機器固有のVISA関数での通信ができます。
VISA関数ではGPIBコマンドは使用せずAPIを使用するような感じで機器をコントロールすることができます。
    • good
    • 0

どこかで見たような質問だなあ・・と思っていたら、


以前回答したものに酷似していたので、

http://oshiete.goo.ne.jp/qa/6860430.html


上記では、戻り値は関数viVScanfで受け取るようです。
回答した関数は、

stats = viVScanf(vi,"%t" , RecvData1)

なお、受け取る変数RecvData1を固定長文字列にして、

Dim RecvData1 As String * 10000 

としている部分は

VISAによるプログラミング
http://ena.tm.agilent.com/e5071c/manuals/webhelp …

によると、100でも受け取ることができるようですが、
このあたりは、実際にあわせて変更してみてはどうでしょうか。

なお、VISA.dllを使用したプログラミングはたとえば
viVPrintf
viVScanf
などでググればCあるいはC++でのコードが
ヒットしますので、そのあたりから引数などを
確認してみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!