You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Excel VBA读取Agilent 34410A DMM数据?读取超时求助

针对Agilent 34410A VBA读取超时的排查方案

1. 修正VISA地址格式

你当前使用的是SOCKET端口(5025)的直接连接方式,这种模式需要手动处理通信终止符,容易导致读取超时。建议改用标准VISA LAN仪器地址:

IOaddress = "TCPIP0::192.168.1.37::inst0::INSTR"

该地址通过VISA标准服务(inst0端口)通信,会自动处理终止符和协议适配,避免底层通信不兼容问题。

2. 规范命令发送的终止符

VBA字符串内直接换行可能导致命令格式错误,设备无法正确识别。修改WriteString的命令写法,明确添加标准终止符:

Instrument.WriteString "READ?" & vbCrLf, True

第二个参数True表示自动添加VISA配置的默认终止符(\r\n),确保设备能正确接收并触发响应。

3. 启用并调整超时时间

取消注释超时设置,且根据测量需求适当延长超时时长(READ?命令会触发实际测量,需要足够时间完成采样):

Instrument.IO.Timeout = 5000 ' 设置为5秒,可根据设备测量速率调整

4. 确认设备远程控制状态

在发送READ?前,先发送命令确保设备处于远程控制模式,避免因设备处于本地操作状态无响应:

Instrument.WriteString "*RST" & vbCrLf, True ' 重置设备到默认状态
Instrument.WriteString "SYST:REM" & vbCrLf, True ' 切换到远程控制模式

5. SOCKET模式的特殊配置(若坚持使用原地址)

如果必须保留TCPIP0::192.168.1.37::5025::SOCKET地址,需要手动配置终止符匹配:

' 设置设备返回数据的终止符为换行符
Instrument.WriteString "SYST:COMM:SER:SENDLF ON" & vbCrLf, True
' 配置VISA读取时的终止符为换行
Instrument.IO.TerminationCharacter = vbLf
Instrument.IO.TerminationEnabled = True

确保设备返回的终止符与VISA读取逻辑一致,避免因无法识别结束标记而持续等待超时。


内容的提问来源于stack exchange,提问作者iincitr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:01:11