Agilent 34970A 是安捷伦的数据采集开关主机机箱里插上不同的开关与测量模块就能轮流切换几十路信号并逐路测量机内自带一块六位半万用表。把几十个测试点变成一条扫描列表LabVIEW 只负责读数和判定。01 这台设备在哪些场景里干活机柜与设备温度监测。一排机柜里几十个温度点要长期记录。热电偶接到开关模块上主机自动逐个切换通道测量。电池组与电源老化巡检。几十个电芯或者电源模块的多路输出要在几小时到几天里反复记录电压。来料器件的批量测量。成批的电阻、分流器要测阻值测一个记一个还要跟标准值比对判档。多路信号切换。测试台上不同被测件共用几台仪器靠开关矩阵来切换线路避免反复插拔。02 麻烦的地方在哪点多。一个点测一次不算什么几十个点循环测几十轮就是几万个数据。要自动切换。人工插拔不仅慢还容易接错——接错了数据全是错的而且看不出来。要留痕。数据得带时间戳、带测点名称事后要能追溯到具体是哪个点。03 为什么用 LabVIEW 来做这件事巡检这件事本身不复杂复杂的是它要一直跑、一直存、一直能追。换一个开发平台这几样恰恰是最费工的部分。第一一轮扫描回来的就是数组。几十个通道各测一次仪器返回的是一组读数在 LabVIEW 里直接就是数组——跟「物理通道—测点名称」映射表一对就能带上业务名称画趋势、写文件不用自己拼字符串、切分隔符。第二采集、判定、存盘各跑各的。扫描在后台一轮轮跑界面实时刷新最新值同时另一个循环在判超限、报警、落盘。三件事拆成独立循环互不阻塞长时间巡检不会因为弹个对话框就丢一轮数据。第三硬件握手有现成的手段。整轮扫描什么时候开始、每个通道留多长建立时间都能交给仪器自己的触发与延时去管上位机只等一个「扫描完成」的信号。用软件延时凑节拍时间一长必然漂移而且漂移了还看不出来。第四测点会变程序不用变。接线改了、加了两路温度要改的是映射表和配置文件不是代码。再加上仪器通信统一走 VISA换总线也不动上层逻辑。04 具体是怎么做的这类开关主机的用法和普通万用表不太一样——关键是把「物理通道」变成「扫描列表」一次配好剩下的交给仪器自己跑。LabVIEW 这边要做的是三件事生成扫描列表、下发给主机、把结果按通道名回填。最基础的一组动作是单通道的「闭合—测量—断开」适合只测一路、或者临时切一下线的情况。真正把机器用起来的是扫描列表一次配好要测哪些通道、每路用什么功能、积分时间多长、通道之间留多少建立时间之后每轮只要发一个触发主机自己逐通道切换、测量、返回结果。扫描参数还能配得更细——触发方式软件发、外部硬件来、还是读时触发、通道延迟、报警限值都能设。这些参数在仪器内部是按硬件时序执行、也是硬件判定的比在上位机里写循环加延时要准得多。同一套思路还能用到开关矩阵与射频多路复用上不同被测件共用几台仪器靠矩阵切换线路避免反复插拔。通道映射表放在配置文件里换测点、加通道都只改表不动代码。最简单的单通道开关闭合、测量、断开三个动作串起来EZ Scan 扫描一次配好扫描列表主机自动逐通道测量Advanced Scan 扫描扫描参数更完整含触发方式与通道延迟设置05 做出来是什么效果几十个点一次配好反复跑。扫描列表下发一次之后每轮扫描只要发一个触发主机自己切换通道、自己测量。测试节拍稳定。通道间延迟设多少、每通道积分时间多长都是可配置的固定值整轮扫描的耗时算得出来。数据带测点名。用一张「物理通道—测点名称」映射表原始通道号回填成业务名称再落盘事后不用再对照接线表。接线改了不用改程序。映射表放在配置文件里换测点、加通道都只改表不动代码。06 这类场景你也可以照着做如果你手上的活儿符合下面几条这套思路基本可以照搬有几十个测试点要反复记录人抄不过来测点类型不一有电压、有温度、有电阻数据要留痕、要能追溯、要出报表接线方式以后还可能改这类项目的核心不是把某一次测量做得多漂亮而是把「测量」变成可重复、可追溯、可批量的流程。流程立起来了后面每加一个测点、每换一台仪器省下的都是真金白银。07 实施要点第一通道间延迟直接影响继电器寿命。为了快把延迟设到很小继电器切换频繁试验还没做完开关模块先坏了。要在节拍与寿命之间取平衡。第二34970A 内置六位半万用表。不需要外接万用表但很多其它型号的开关主机不带测量功能选型时要确认清楚。第三通道映射表要严格管理。接线改了一个通道而映射表没改整批数据的标签全是错的——而且从数据本身看不出来。第四扫描列表方式比逐通道单点闭合快得多。但如果各通道需要的积分时间不同就只能逐通道来。附文中程序的驱动与示例来自 NI 仪器驱动库可按设备型号自行检索获取。