Function Reference

_viSetTimeout

VISAのタイムアウト時間をミリ秒単位で設定します。

#include <Visa.au3>
_viSetTimeout ( $h_session, $i_timeout_ms )

 

パラメータ

$h_session VISA記述子(文字列)またはVISAセッションハンドル(整数)。
詳しくは_viExecCommandの注意を参照。
$i_timeout_ms VISA操作(主にGPIBクエリ)でのミリ秒単位でのタイムアウト時間
0に設定した場合、タイムアウトは無効になります。
"INF"に設定した場合、VISA操作はタイムアウトしません。
注意して使用してください。計測器がクエリに1つでも応答しない場合、簡単にプログラムがハングアップします。
バスの種類(GPIB、TCP、etc)によってはタイムアウトは要求された正確な値に設定されません。代わりに要求された時間より長い時間のうち、有効でもっとも近い値が使用されます。

 

返し値

成功: 0を返します
失敗: DLLが開けない場合-1を、それ以外の場合VISAエラーコード(VISAプログラミングガイドを参照)を表す非ゼロの値を返します
エラー時にはこの関数は常に@errorを1に設定します

 

注意

ほとんどの場合、この関数を呼ぶ必要はありません。_viExecCommandは第3パラメータにVISAのタイムアウト時間を設定するための$i_timeout_msを持っています。

全てのVISA関数において使用のためにはVISAライブラリ({WINDOWS}\system32内にvisa32.dllがあるかどうかによって確認できます)とGPIBカード(National Instruments NI PCI-GPIB カードやAgilent 82350B PCI High-Performance GPIB カードなど)がインストールされている必要があります。

* 一般的なVISA記述子のより詳しい説明については_viExecCommand関数ヘルプの注意を参照してください。

 

関連

_viSetAttribute, _viExecCommand, _viOpen, _viClose

 


;- GPIBアドレス3に設定された計測器を扱うとする.
; 扱う計測器が異なるアドレスの場合は"GPIB::3::0"を対応する記述子に変更
; _viOpenの呼び出しも同様にする
; タイムアウト設定した_viExecCommand関数の使い方と
; 代わりの_viSetTimeoutの呼び方を示します

#include <Visa.au3>

Dim $h_session = 0

; GPIBアドレス3で計測器のIDを要求
MsgBox(0,"Step 1","Simple GPIB query with explicit TIMEOUT set")
Dim $s_answer = _viExecCommand("GPIB::3::0","*IDN?",10000) ; 10秒でタイムアウト
MsgBox(0,"GPIB QUERY result",$s_answer) ; 回答を表示

; 最初の_viSetTimeout関数を使った処理と同じ処理
MsgBox(0,"Step 2","_vOpen + timeout using _viSetTimeout + GPIB query")
Dim $h_instr = _viOpen(3)
_viSetTimeout($h_instr, 10000) ; 10000 ms = 10 秒
$s_answer = _viExecCommand($h_instr,"*IDN?") ; タイムアウトを設定する必要は無い
MsgBox(0,"GPIB QUERY result",$s_answer) ; 回答を表示

MsgBox(0,"Step 3","Close the Instrument connection using _viClose")
_viClose($h_instr) ; 計測器コネクションを閉じる