设置 VISA 超时时间的毫秒值
#include <Visa.au3>
_viSetTimeout ( $h_session, $i_timeout_ms )
$h_session | VISA 描述符(字符串)或 VISA 会话句柄(整数). 更多信息见 _viExecCommand 备注. |
$i_timeout_ms | VISA 操作的超时毫秒值 (主要用于 GPIB 查询) 如果你将它设置为 0,超时将被禁用. 如果设置为 "INF", VISA 操作将永远不会超时. 在这方面要小心,因为它可以很容易地挂起程序, 仪器不会回应你的查询. 根据不同的总线类型 (GPIB, TCP, etc) 超时可能无法设置到要求的精确值; 相反,最接近的有效超时值大于你的请求值 the one that you requested will be used. |
成功: | 返回 0 |
失败: | 返回 -1, VISA DLL 无法打开; 非零值代表 VISA 错误代码 (见 VISA 程序员指南). |
;- 这里假设您安装了仪器到 GPIB 地址 3.
; 如果您的仪器安装到了不同的地址, 则改变 "GPIB::3::0" 为
; 相应描述符. 进行对 _viOpen 的相同调用
; 此例子演示了如何使用含超时的 _viExecCommand 函数或如何
; 调用 _viSetTimeout 代替.
#include <Visa.au3>
Local $h_session = 0
; 查询在 GPIB 地址 3 的仪器 ID
MsgBox(4096, "Step 1", "Simple GPIB query with explicit TIMEOUT set")
Local $s_answer = _viExecCommand("GPIB::3::0", "*IDN?", 10000) ; 超时为 10 秒
MsgBox(4096, "GPIB QUERY result", $s_answer) ; 显示应答
; 这里相当于首先使用 _viSetTimeout 函数:
MsgBox(4096, "Step 2", "_vOpen + timeout using _viSetTimeout + GPIB query")
Local $h_instr = _viOpen(3)
_viSetTimeout($h_instr, 10000) ; 10000 毫秒 = 10 秒
$s_answer = _viExecCommand($h_instr, "*IDN?") ; 现在不需要设置超时
MsgBox(4096, "GPIB QUERY result", $s_answer) ; 显示应答
MsgBox(4096, "Step 3", "Close the Instrument connection using _viClose")
_viClose($h_instr) ; 关闭仪器连接