简介:安捷伦IO Libraries Suite 15.5是专为Windows XP系统深度适配的专业仪器控制套件,面向电子测量、高校实验教学及旧设备维护领域的工程师与科研人员,解决XP环境下安捷伦示波器、频谱仪、逻辑分析仪等设备的驱动安装、GPIB/USB/以太网通信及VISA编程控制等核心问题。压缩包共43个文件,含12个MSI安装模块(如Agilent IO Libraries Suite 15.5.msi、IVISharedComponents32_2.0.0.msi)、10个EXE可执行程序(含vcredist_x86.exe、setup.exe等运行依赖)、3个PDF文档(含QuickStart.pdf、connectivity_guide.pdf)、1个AVI入门视频(Intro.avi)及配套图标、帮助页与本地化配置文件,整体196.23MB,结构完整、即装即用。已有2567人学习下载,资源提供从环境部署、驱动安装到快速上手的全链路支持,特别包含LXI MDNS响应器、VISA共享组件、64位兼容模块等关键组件,兼顾教学演示与工程实测需求。
1. Agilent IO Libraries Suite 15.5 是什么:不是驱动包,而是仪器通信的“协议翻译官”与“会话管家”
如果你正面对一台老款 Keysight(原 Agilent)示波器、信号发生器或万用表,想用 Python 或 LabVIEW 控制它,却卡在“设备识别成功但发不出命令”“VISA 资源名始终为空”“Error -1073807360”这类报错上——那你大概率缺的不是驱动,而是 Agilent IO Libraries Suite 15.5。它不是传统意义的硬件驱动(不直接操作 USB 控制器),而是一套标准化仪器 I/O 协议栈实现:把你在代码里写的write("MEAS:VOLT?"),翻译成符合 IEEE 488.2、SCPI、USBTMC 或 VXI-11 规范的底层字节流,并管理连接状态、超时、缓冲区、异步读写等黑匣子逻辑。它和 NI-VISA 是同类定位,但专为 Keysight/Agilent 仪器深度优化,尤其对 2000–2010 年间主流台式仪器(如 DSO-X 2000/3000 系列、34401A 万用表、33220A 信号源)的兼容性更稳。适合两类人:一是产线自动化工程师需长期稳定控制旧型号仪器;二是高校实验室用老旧设备做教学实验,不想为每台仪器单独写底层 USB 协议解析。注意:它不解决物理连接问题(比如 USB 线接触不良),也不替代 Windows 设备管理器里的“Keysight USB Test & Measurement Device”驱动安装——这两者必须共存,且顺序不能错。
2. 安装与环境准备:先清旧、再装新、最后验通路
Agilent IO Libraries Suite 15.5 的安装不是“下一步到底”,而是三阶段接力。很多翻车源于跳过清理或顺序错误。以下步骤基于 Windows 10/11 x64 环境,已验证于 Python 3.8–3.11。
2.1 卸载所有旧版本 IO Libraries 和冲突组件
提示:必须彻底清除,否则新版安装器会静默失败或注册表残留导致 VISA 资源列表为空。
打开“控制面板 → 程序和功能”,按名称排序,卸载以下全部(若存在):
- Keysight IO Libraries Suite(任何版本,包括 14.x、15.0、15.1)
- Agilent IO Libraries Suite(同上)
- NI-VISA Runtime(仅当未使用 LabVIEW 或 NI 硬件时可卸载;若混用,保留 NI-VISA 但需后续配置优先级)
- Keysight Connection Expert(旧版,新版随 IO Libraries 自带)
卸载后,重启系统。不要跳过——Windows 服务(如KeysightIOService)可能仍在内存中锁定 DLL。
2.2 安装 Agilent IO Libraries Suite 15.5 主程序
从官方渠道获取Agilent IO Libraries Suite 15.5.rar后,解压得到Setup.exe。以管理员身份运行,关键选项设置如下:
“选择安装类型” → 勾选Custom(自定义)
“组件选择” → 必须勾选:
✅ Keysight IO Libraries Suite
✅ Keysight Connection Expert(图形化资源管理器,调试必备)
✅ Keysight VISA(核心协议栈)
❌ Keysight PXI Platform Services(除非你真有 PXI 机箱)
❌ Keysight PathWave(EDA 工具,与本套件无关)“安装路径” →强烈建议保持默认
C:\Program Files\Keysight\IO Libraries Suite。路径含空格或中文会导致 Python 的pyvisa无法加载visa32.dll。
安装完成后,不要立即启动 Connection Expert。先执行下一步。
2.3 安装对应仪器的硬件驱动(非 IO Libraries 自带)
IO Libraries Suite 不包含具体仪器驱动。例如:
- 对 USB 接口的 DSO-X 2024A,需单独下载安装Keysight USB Test & Measurement Device Driver(版本需匹配,推荐 v2.12+);
- 对 GPIB-USB-HS 适配器,需安装Keysight GPIB Interface Driver;
- 对 LAN 连接的 34465A,需确保 Windows 已识别为“Keysight LAN Instrument”,并分配固定 IP。
驱动安装后,在“设备管理器”中确认:
- “Keysight USB Test & Measurement Device” 下无黄色感叹号;
- “Keysight GPIB Interface” 显示“正在运行”;
- “网络适配器”中 Keysight LAN 设备状态正常。
此时再重启一次系统。这是确保 Windows PnP 子系统完成设备枚举、IO Libraries 能正确读取硬件 ID 的关键节点。
2.4 验证基础通路:用 Connection Expert 扫描真实设备
启动Keysight Connection Expert(开始菜单可搜到)。点击顶部工具栏Find Instruments按钮(放大镜图标)。等待 10–20 秒,观察结果:
- 若列表为空 → 物理连接或硬件驱动失败,返回 2.3;
- 若显示
USB0::0x0957::0x1C07::MY45001234::INSTR类似字符串 → USB 通路成功; - 若显示
TCPIP0::192.168.1.100::inst0::INSTR→ LAN 通路成功; - 若显示
GPIB0::10::INSTR→ GPIB 通路成功。
参数说明:
USB0::0x0957::0x1C07::MY45001234::INSTR中,0x0957是 Keysight 厂商 ID,0x1C07是设备 ID(如 DSO-X 2024A),MY45001234是序列号。此字符串即后续 Python 代码中rm.open_resource()的参数,必须完全一致。
3. Python 控制实战:用 pyvisa 调用 IO Libraries 的正确姿势
IO Libraries Suite 15.5 自带 VISA 实现,但 Python 默认不自动绑定。必须显式指定后端,否则pyvisa可能调用系统残留的 NI-VISA 或报错VI_ERROR_RSRC_NFOUND。
3.1 安装与配置 pyvisa
pip install pyvisa pyvisa-py注意:不要只装pyvisa-py(纯 Python 实现,不兼容 Keysight 专有协议扩展)。必须用pyvisa+ Keysight VISA 后端。
安装后,检查 VISA 后端是否识别到 Keysight:
import pyvisa rm = pyvisa.ResourceManager() print(rm.list_resources()) # 应输出类似 ('USB0::0x0957::0x1C07::MY45001234::INSTR',)若报错PyVIError: VI_ERROR_SYSTEM_ERROR或列表为空,请执行:
# 强制指定 Keysight VISA DLL 路径(Windows 默认位置) rm = pyvisa.ResourceManager('C:\\Program Files\\Keysight\\IO Libraries Suite\\bin\\visa32.dll')3.2 发送 SCPI 命令并读取响应的最小闭环
以控制 DSO-X 2024A 读取当前直流电压为例:
import pyvisa import time # 1. 初始化 ResourceManager,指向 Keysight VISA rm = pyvisa.ResourceManager('C:\\Program Files\\Keysight\\IO Libraries Suite\\bin\\visa32.dll') # 2. 打开仪器资源(替换为你自己的资源名!) scope = rm.open_resource('USB0::0x0957::0x1C07::MY45001234::INSTR') # 3. 配置基础属性(避免超时或乱码) scope.timeout = 5000 # 单位毫秒,太短易报超时 scope.encoding = 'utf-8' scope.read_termination = '\n' # SCPI 命令结束符 scope.write_termination = '\n' try: # 4. 查询仪器身份(验证通信) idn = scope.query('*IDN?') print(f"仪器识别: {idn.strip()}") # 应输出类似 "Keysight,DSO-X 2024A,MY45001234,02.02.2021" # 5. 设置测量通道与类型 scope.write(':MEASure:VOLTage:DC CH1') # 测 CH1 直流电压 time.sleep(0.5) # 给仪器处理时间,避免命令堆积 # 6. 读取测量值 result = scope.query(':MEASure:VOLTage:DC?') print(f"CH1 直流电压: {result.strip()} V") except pyvisa.errors.VisaIOError as e: print(f"VISA 错误: {e}") finally: scope.close() rm.close()逻辑说明:
scope.query()=write()+read()的原子操作,自动处理命令发送与响应接收。time.sleep(0.5)是血泪经验——老款示波器固件响应慢,连续query易丢数据。encoding和termination必须设,否则中文系统下可能读出乱码或阻塞。
3.3 批量控制多台仪器的资源管理技巧
当同时连接 USB 万用表、LAN 示波器、GPIB 电源时,资源名格式不同:
- USB:
USB0::0x0957::0x0607::MY56001234::INSTR(34465A) - LAN:
TCPIP0::192.168.1.101::inst0::INSTR(DSO-X 3024T) - GPIB:
GPIB0::12::INSTR(E3631A 电源)
推荐封装为字典,避免硬编码:
INSTRUMENTS = { 'dmm': 'USB0::0x0957::0x0607::MY56001234::INSTR', 'scope': 'TCPIP0::192.168.1.101::inst0::INSTR', 'power': 'GPIB0::12::INSTR' } rm = pyvisa.ResourceManager('C:\\Program Files\\Keysight\\IO Libraries Suite\\bin\\visa32.dll') instruments = {} for name, addr in INSTRUMENTS.items(): instruments[name] = rm.open_resource(addr) instruments[name].timeout = 3000 # 使用 voltage = instruments['dmm'].query(':MEAS:VOLT:DC?') instruments['power'].write(':APPL P6V,1A') # 设置 6V/1A 输出4. 常见问题排查:5 条真实踩坑记录与解法
4.1 现象:Connection Expert 能扫描到设备,但 Pythonrm.list_resources()返回空元组
原因:Python 进程架构(32/64 位)与 IO Libraries 安装版本不匹配。IO Libraries Suite 15.5 默认安装 64 位 VISA,但若你用的是 32 位 Python(如某些旧 Anaconda 环境),则无法加载visa64.dll。
解决:
- 方法一(推荐):改用 64 位 Python(检查
python -c "import platform; print(platform.architecture())"); - 方法二:重装 IO Libraries Suite,安装时勾选32-bit support(安装器高级选项中);
- 方法三:强制指定 32 位 DLL:
rm = pyvisa.ResourceManager('C:\\Program Files\\Keysight\\IO Libraries Suite\\bin\\visa32.dll')。
4.2 现象:scope.query('*IDN?')报错VI_ERROR_TMO(超时)
原因:仪器未处于远程模式(Remote Mode),或物理连接不稳定(USB 线过长、集线器供电不足)。
解决:
- 先手动按仪器前面板Shift + Front Panel Lock(或类似组合键)进入远程模式;
- 换用原装 USB 线,长度 ≤ 2 米,直连电脑 USB 口(勿经 USB 集线器);
- 在代码中增加
scope.write('*RST')复位仪器后再查询。
4.3 现象:scope.write(':MEAS:VOLT:DC?')返回空字符串或乱码
原因:read_termination未正确设置,或仪器响应末尾无\n。部分老固件用\r\n或无终止符。
解决:
- 尝试
scope.read_termination = '\r\n'; - 或改用
scope.read_raw()读原始字节,再手动 decode:raw = scope.read_raw() result = raw.strip(b'\r\n').decode('ascii')
4.4 现象:同一台电脑上 NI-VISA 和 Keysight VISA 共存,pyvisa随机调用其中一个导致行为不一致
原因:pyvisa默认搜索visa32.dll/visa64.dll,而两个厂商 DLL 文件名相同,加载顺序不确定。
解决:
- 永远显式指定 DLL 路径,如
ResourceManager('C:\\Program Files\\Keysight\\...\\visa32.dll'); - 或卸载 NI-VISA(若无需 NI 硬件),避免干扰。
4.5 现象:LAN 仪器连接后,TCPIP0::192.168.1.100::inst0::INSTR可识别,但query()始终超时
原因:Keysight 仪器 LAN 默认启用 VXI-11 协议,但部分新版 Windows 防火墙会拦截 UDP 端口(如 111, 39518)。
解决:
- 在仪器 Web 界面(浏览器访问
http://192.168.1.100)中,将通信协议改为HiSLIP(TCP 5025 端口,防火墙友好); - 或在 Windows 防火墙中放行
Keysight IO Libraries Suite相关程序(visa32.dll调用进程)。
5. 进阶技巧:用 Connection Expert 录制脚本 + 导出为 Python 代码
Keysight Connection Expert 内置的Script Recorder功能,是快速生成可靠 Python 代码的后悔药。它不依赖你记住 SCPI 语法,而是把你的鼠标点击实时转为可执行脚本。
5.1 启动录制并执行操作
- 打开 Connection Expert;
- 在仪器列表中右键目标设备 →Script Recorder → Start Recording;
- 在弹出窗口中,点击Send Command输入
*IDN?→Send,观察返回值; - 再点击Send Command输入
:MEAS:VOLT:DC?→Send; - 点击Stop Recording。
5.2 导出为 Python 并精简
录制结束后,点击Export → Python Script。生成的代码类似:
# Generated by Keysight Connection Expert Script Recorder import pyvisa rm = pyvisa.ResourceManager() inst = rm.open_resource('USB0::0x0957::0x1C07::MY45001234::INSTR') inst.timeout = 5000 inst.write('*IDN?') idn = inst.read() inst.write(':MEAS:VOLT:DC?') volt = inst.read() inst.close() rm.close()精简要点:
- 删除冗余注释和空行;
- 将
inst.read()替换为inst.read().strip()避免换行符;- 合并为
inst.query()(更安全);- 添加异常处理(
try/except);- 将硬编码资源名提取为变量。
5.3 利用 Connection Expert 的“Command Expert”验证语法
当不确定某条 SCPI 命令是否支持时:
- 在 Connection Expert 中选中仪器 → 点击顶部Command Expert;
- 在左侧树状目录中展开
Measure→Voltage→DC; - 右侧显示完整命令
:MEASure:VOLTage:DC?及参数范围(如MIN,MAX); - 点击Send可直接执行并查看响应。
这比查 PDF 手册快 10 倍,且保证命令被当前固件支持。
5.4 固件升级与 IO Libraries 版本的隐性绑定
Keysight 仪器固件更新日志中常注明:“Requires IO Libraries Suite 15.5 or later”。这不是营销话术——新固件可能引入私有扩展命令(如:WAVeform:DATA:UNSigned?),旧版 IO Libraries 的 VISA 层无法解析其响应头。因此:
- 若仪器升级固件后出现
VI_ERROR_INP_PROT_VIOLATION,优先升级 IO Libraries; - 但切忌盲目升到最新版(如 17.x),因新版可能弃用对 2000 年代初仪器的支持。15.5 是平衡兼容性与功能的黄金版本,我一般会把它作为实验室标准镜像固化在部署包中,不再轻易升级。
希望帮到你。
本文还有配套的精品资源,点击获取