返回介绍

Function _viSetTimeout

发布于 2020-03-05 18:21:36 字数 2411 浏览 1024 评论 0 收藏 0

_viSetTimeout

设置 VISA 的超时时间,以毫秒为单位。

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

参数

$h_sessionVISA 描述符(字符串)或者 VISA session 句柄(整数)。
(请查看 _viExecCommand 函数的注意部分以了解更多信息)
$i_timeout_ms以毫秒为单位的 VISA 操作超时时间(一般针对 GPIB 请求)。
若设为0则超时设置将被禁用。
若设为 "INF" 则 VISA 操作将永远不会超时。
请谨慎使用,因为一旦设备没有响应某个请求您的程序就很容易挂起。
由于总线类型(GPIB、TCP,等等)的不同,因此实际的超时时间可能并非和您设置的时间一致,一般会比您设置的超时时间要大一点。

返回值

成功: - 返回值为0
失败: - 返回值为 -1,说明无法打开 VISA DLL,否则为一个非零的数值,用以表示 VISA 错误码(请查看 VISA 编程人员指引)。
一旦出现错误则本函数将总是把 @error 设为 1

注意

通常我们并不需要直接调用本函数,因为 _viExecCommand 函数的第三个可选参数 _timeout_ms 也可以用来设置 VISA 超时时间。

所有的 VISA 函数都要求必须安装 VISA 库(您可以通过检查 WINDOWS\system32 目录下是否存在 visa32.dll 来判断)和一个 GPIB 卡(例如 National Instruments(美国国家仪器有限公司)的 NI PCI-GPIB 卡或者是 Agilent 82350B PCI 高性能 GPIB 卡)。

* 更详细的通用 VISA 描述符(DESCRIPTOR)请查看 _viExecCommand 函数的帮助部分。

相关

_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) ; 关闭设备连接


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文