34970A:接 LabVIEW 常踩的 5 个坑

发布时间:2026/11/5 3:40:06
34970A:接 LabVIEW 常踩的 5 个坑

34970A 是插卡式数据采集与开关主机,一台机箱里既做多路切换也做测量,接口有 GPIB 和 RS-232,接 LabVIEW 常用原厂的插件式或 IVI 驱动。这台设备最容易卡住的地方是串口连不上、扫描列表不对,以及和 Switch Executive 配合时的驱动配置。

34970A 插满多路复用模块,几十路温度与电压信号经 LabVIEW 扫描列表逐通道采集

01 这台设备怎么接进来

接口是 GPIB 和 RS-232,通道卡插在机箱后面,通道号由槽位号加两位通道号拼出来。驱动可以在 NI 的仪器驱动网络或原厂网站上找,原厂随盘带过一版扫描仪示例,从示例起步比自己拼命令快。

一条很实际的建议是:先用通用终端或 VISA 交互式控制把串口调通,能回读型号之后再回到 LabVIEW,这样能把线缆、参数和程序三件事分开。

驱动路线也要先选:新机型上插件式驱动和 IVI 驱动之间,能用插件式就用插件式,IVI 底层是 C 调用、不好查;也可以直接发 SCPI,只请求需要的量。这一族仪器(含新一代 DAQ970A)的 SCPI 命令基本没变。

02 5 个具体问题与解法

  • 34970A 串口发 *IDN? 报 -1073807202,或者数据串了。波特率和校验都配好之后发查询仍然报错。做法是先用通用终端或 VISA Interactive Control 验证配置;串行通信必须严格一问一答:发完查询要等数据完整回来再发下一条,抢发会撞车。想让电脑与仪器实时同步不现实,但可以拆成两个并行循环:一个只管总线传输,一个做分析。
  • 定时扫描(每 10 秒一次、共 30 次)的数据不同步。用普通等待毫秒做节拍时数据错位,换成"等待到下一个毫秒倍数"就正常了。这两个函数语义不同:一个保证至少等这么久,另一个是对齐到时间格点上,固定间隔扫描要用后者。
  • 扫描列表里有通道一直显示固定值。扫多个通道时有几个总显示同一个假值。先确认通道号确实填进了前面板控件,再做一次"以当前值为默认值"并保存;框图上的局部变量不是常量,值来自前面板控件。这些通道用原厂软件是好的,目前没有公开的可靠解法。
  • 和 Switch Executive 配合时,建虚拟设备报 0xBFFA004A 选项串缺少取值。追踪发现只传了一个模拟选项(Simulate=1),先把驱动配置串前后的引号去掉再试。另一个错误码 0xBFFA1190 指向会话句柄无效,答案在随驱动安装的 .chm 帮助文件里,Getting Started 一节讲的就是怎么和 NI Switch Executive 一起用。
  • 老 IDNET 驱动校验和算错,连接也会莫名丢失。流传多年的冷水机驱动被重写时发现校验和计算是错的、部分参数的解析也不对,类似的校验和报错在旧版 34970A 驱动上也出现过;改设置时还要小心把控制器写坏,恢复出厂默认才正常。另外手动切路由正常、到测试程序里同一路由就报错,走 USB 则不出现;跑一段时间报"会话连接已丢失"时,先检查电脑电源设置里关掉 USB 选择性挂起,但那例实际用的是网口,目前没有公开的可靠解法。

03 排查顺序:遇到问题按这个顺序走

  1. 先用仪器自带的软件或通用终端验证硬件与线缆,确认仪器本身正常再怀疑程序。
  2. 再核对通信参数与节拍:串口参数、终止符、一问一答的顺序,以及循环里用哪种等待函数。
  3. 然后查扫描列表与通道号:通道有没有填进控件、有没有做"以当前值为默认值"、插卡与槽位是否和配置一致。
  4. 最后查驱动与软件层:驱动版本、虚拟设备与配置串,必要时退回直接发 SCPI。

04 一台能干什么,几台搭起来能干什么

单台设备就能完成"切换加测量"两件事:插上多路复用卡后轮流扫描多路电压、电流、电阻或温度,插上矩阵卡后可以做任意两点的路由,本质上是把开关和万用表放进同一个机箱。它自己还能设扫描间隔,上位机只取数即可。

和别的设备搭起来,它可以当整套系统里的路由枢纽:用矩阵卡把激励源和测量端接到任意被测件上,再配 Switch Executive 把路由做成可复用的名字。同族的以太网机型在 MAX 里扫不到时,可手动添加网络设备填 IP。

我们专注 LabVIEW 软件开发与测试测量系统集成,从硬件选型、方案设计到现场交付调试,提供一站式服务。手上有一台设备想接进 LabVIEW,或者几台设备要串成一套系统,欢迎在评论区留言;身边朋友有类似项目,也欢迎帮忙引荐。