设置任意 VISA 属性,也可以由 _viSetTimeout 调用来设置其他 VISA 的具体属性. 欲了解更多信息,请阅读 VISA 文档及 VISA 属性列表及其相应值 values.
#include <Visa.au3>
_viSetAttribute ( $h_session, $i_attribute, $i_value )
$h_session | VISA 描述符(字符串)或 VISA 会话句柄(整数). 更多信息见 _viExecCommand 备注. |
$i_attribute | 被修改属性的索引. 属性被定义在 VISA 库中. 这个 AutoIt 库只定义了超时属性的常数($VI_ATTR_TMO_VALUE) 和串行接口的属性值 (见备注), 但也可以传递任何其他有效的整数索引值. |
$i_value | 属性值.必须是一个整数,可能的值取决于属性的类型以及在 VISA 文档中的定义. |
成功: | 返回 0 |
失败: | 返回 -1, VISA DLL 无法打开; 非零值代表 VISA 错误代码 (见 VISA 程序员指南). |
;- 这里假设您安装了仪器到 GPIB 地址 3.
; 如果您的仪器安装到了不同的地址, 则改变 "GPIB::3::0" 为
; 相应描述符. 进行对 _viOpen 的相同调用
; 此例子演示了如何使用 _viSetAttribute. 在此例中我们使用 _viSetAttribute
; 代替 _viSetTimeout 设置 _viExecCommand 操作的 GPIB 超时时间.
#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) ; 显示应答
; 这里相当于首先使用 _viSetAttribute 函数:
MsgBox(4096, "Step 2", "_vOpen + timeout using _viSetAttribute + GPIB query")
Local $h_instr = _viOpen(3)
; 注意 - 这里相当于: _viSetTimeout($h_instr, 10000)
_viSetAttribute($h_instr, $VI_ATTR_TMO_VALUE, 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) ; 关闭仪器连接