设置 VISA 的超时时间,以毫秒为单位。
#include <Visa.au3>
_viSetTimeout($h_session, $i_timeout_ms)
参数
| $h_session | VISA 描述符(字符串)或者 VISA session 句柄(整数)。 (请查看 _viExecCommand 函数的注意部分以了解更多信息) |
| $i_timeout_ms | 以毫秒为单位的 VISA 操作超时时间(一般针对 GPIB 请求)。 若设为0则超时设置将被禁用。 若设为 "INF" 则 VISA 操作将永远不会超时。 请谨慎使用,因为一旦设备没有响应某个请求您的程序就很容易挂起。 由于总线类型(GPIB、TCP,等等)的不同,因此实际的超时时间可能并非和您设置的时间一致,一般会比您设置的超时时间要大一点。 |
返回值
成功: - 返回值为0
注意
通常我们并不需要直接调用本函数,因为 _viExecCommand 函数的第三个可选参数 _timeout_ms 也可以用来设置 VISA 超时时间。
相关
_viSetAttribute, _viExecCommand, _viOpen, _viClose
示例
;- 这个脚本假定您已经把 GPIB 的地址设为 1
; 本脚本演示了如何单独使用 _viExecCommand 函数以及结合
; _viOpen 和 _viClose 函数使用的方法。
; 另外还演示了 _viGTL 函数
#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 毫秒 = 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) ; 关闭设备连接