围绕 Keysight 34980A 的 FETCh? 和 READ? 两个核心 SCPI 命令结合仪器官方手册规范梳理其在 LabVIEW 中对应的 VI 功能设计、参数配置及实际应用逻辑明确二者在数据读取中的核心差异解决连续扫描时数据读取异常问题为基于 LabVIEW 的 34980A 多通道数据采集提供标准化应用方案。一、FETCh? VI功能说明1.核心功能该 VI 封装 34980A 的 FETCh? SCPI 命令核心作用为读取仪器易失性内存中已存储的测量数据不触发新的测量过程也不会启动 / 停止仪器的扫描流程仅完成内存数据到仪器输出缓冲区的传输供 LabVIEW 读取至计算机。2.关键参数与属性无输入参数直接发送 FETCh? 命令至仪器输出参数为仪器内存中的批量测量数据数据格式由FORM:READing系列命令配置可选择是否附带单位、时间戳、通道号、报警状态未指定通道列表时独立 DMM 采集数据通道号记为 0执行特性VI 会等待仪器当前所有测量过程完成后才终止执行保证读取数据的完整性。3.数据存储与清除规则仪器内存至少可存储 500,000 条带时间戳的读数内存溢出时状态寄存器置位新读数覆盖最早存储数据执行该 VI 读取数据后内存数据不会被清除可多次调用 VI 读取相同数据。以下情况仪器会自动清除内存所有读数VI 将读取不到历史数据启动新的扫描流程修改测量参数CONF、SENS 系列命令或触发配置TRIG 系列命令执行 * RST出厂复位、SYST:PRESet仪器预设命令或仪器重新上电执行 ABORt 命令中止测量时仅终止当前读数过程内存数据保留可通过该 VI 正常读取。4. LabVIEW实现逻辑VI 通过 VISA 串口 / TCPIP 向 34980A 发送FETCh?指令通过 VISA 读取函数获取仪器输出缓冲区数据配合数据解析子 VI 将仪器返回的字符串数据转换为数值型数据支持单通道 / 多通道数据的批量解析可根据FORM:READing配置自动识别数据附加信息并分离。二、READ? VI功能说明1.核心功能该 VI 封装 34980A 的 READ? SCPI 命令核心作用为触发仪器完成一次全新的测量过程并实时返回本次测量结果兼具 “触发测量” 和 “读取数据” 双重功能是实现单组数据实时采集的核心 VI。2.关键参数与属性可选输入参数(ch_list)通道列表指定需测量的通道支持单通道 / 多通道配置输出参数本次测量的单组数据数据格式同样受FORM:READing系列命令配置触发特性执行 VI 后仪器触发系统从 “空闲状态” 切换至 “等待触发状态”满足触发条件后立即启动测量测量完成后数据同时送入仪器内存和输出缓冲区VI 直接读取输出缓冲区的本次测量数据。3.通道扫描规则根据是否指定通道列表及仪器是否已定义扫描列表执行不同的扫描逻辑省略ch_list且未定义扫描列表命令作用于仪器内部 DMM仅采集 DMM 默认通道数据省略ch_list且已定义扫描列表ROUT:SCAN对扫描列表中的所有通道执行一次完整扫描指定ch_list无论是否定义扫描列表均对指定通道执行 “临时扫描”扫描过程独立于仪器现有扫描列表。4.适用模块该 VI 适配 34980A 的多款扩展模块无适配模块限制时无法执行有效测量具体适配类型34921A~34925A 多路复用器模块34950A 数字 I/O 模块仅数字输入、计数器通道34952A 多功能模块仅数字输入、累加器通道。5. LabVIEW实现逻辑VI 包含通道列表输入控件、VISA 指令发送模块、触发状态检测模块和数据解析模块可手动输入待测量通道自动拼接READ?(ch_list)命令并发送等待仪器触发测量完成后读取并解析输出缓冲区的单组数据支持与仪器触发配置TRIG:SOUR、TRIG:COUNT 等VI 联动实现触发条件的灵活配置。6.与仪器配置的联动该 VI 的执行效果依赖仪器前期触发和扫描配置需配合TRIG:SOUR IMM立即触发、SWE:COUN 1单次扫描、SAMP:COUN 1单样本采集等命令使用才能实现 “一次触发、一次测量、一组数据返回” 的核心需求。三、VI使用场合与核心特点1. FETCh? VI使用场合批量采集场景仪器已完成连续扫描 / 多次测量需一次性读取内存中存储的所有历史测量数据如离线数据分析、多组数据趋势统计中止测量后数据读取执行 ABORt 命令中止仪器连续测量后读取内存中未被清除的测量数据避免数据丢失多次重复读取相同数据需对同一组测量数据进行多维度分析无需重复触发测量直接读取内存数据提升效率。2. FETCh? VI核心特点非触发式仅读取数据不干预仪器的测量 / 扫描状态批量输出一次调用返回内存中所有已存储数据数据量由仪器内存存储量决定数据保留读取后内存数据不清除可多次调用执行阻塞等待当前测量完成后才返回结果保证数据完整性。3. READ? VI使用场合实时连续采集场景需对指定通道进行不间断的单组数据采集如 34980A 的 5001/5002 双通道电阻实时监测要求每次仅返回一组最新数据临时测量场景无需定义仪器扫描列表仅需对特定通道进行单次 / 多次临时测量精准触发测量需严格控制每次测量的触发时机配合 LabVIEW 循环实现自定义频率的连续测量。4. READ? VI核心特点触发式兼具触发测量和读取数据功能一次调用完成一次完整测量流程单组输出一次调用仅返回本次测量的单组数据无批量数据冗余扫描灵活支持临时通道扫描独立于仪器现有扫描列表实时性强测量完成后立即返回数据无内存数据缓存延迟适配实时监测需求。四、使用注意事项1. FETCh? VI使用注意事项需提前完成仪器扫描 / 测量配置保证仪器内存中有有效数据否则 VI 读取不到任何数据连续扫描时若未及时读取数据仪器内存会持续存储数据溢出后新数据覆盖旧数据需根据采集频率及时清理内存读取数据前需通过FORM:READing命令配置数据格式避免附加信息干扰数值解析执行 * RST、SYST:PRESet 命令后需重新启动仪器测量否则 VI 无法读取到数据不可在 LabVIEW 循环中高频调用否则会重复读取内存中相同的批量数据造成数据冗余和处理效率降低。2. READ? VI使用注意事项首次调用前需完成仪器基础配置如测量类型 CONF:FRES、触发源 TRIG:SOUR IMM、扫描次数 SWE:COUN 1 等否则无法触发有效测量通道列表输入需符合 34980A 的 SCPI 命令格式如(5001,5002)避免格式错误导致仪器报错在 LabVIEW While 循环中调用时需保证循环频率与仪器测量速度匹配避免频繁触发导致仪器响应超时适配指定扩展模块非适配模块通道调用时仪器会返回错误码需在 VI 中增加错误检测与处理模块无需额外执行 FETCh? 命令该 VI 已完成测量数据的实时读取重复执行 FETCh? 会读取到内存中缓存的本次测量数据。3.通用注意事项两款 VI 均需基于 LabVIEW 的 VISA 工具包实现与 34980A 的通信需提前配置 VISA 资源串口 / TCPIP保证仪器与计算机通信正常仪器扫描列表配置ROUT:SCAN会直接影响两款 VI 的输出结果需根据需求提前定义避免通道数据采集错误多通道采集时需保证仪器通道配置与 VI 通道参数一致避免数据与通道不匹配两款 VI 均可增加错误输出端口实时捕获仪器的 SCPI 命令错误便于调试和问题排查。五、与同类功能VI的对比1.与MEAS? VI的对比MEAS? VI 同样为触发式测量 VI与 READ? VI 核心差异为MEAS? VI 仅完成单次测量并返回数据不将数据存入仪器内存而 READ? VI 测量后会将数据同时存入仪器内存和输出缓冲区可通过 FETCh? VI 再次读取。仅需单次实时测量无需保留数据优先使用 MEAS? VI减少仪器内存占用需实时测量且保留数据供后续分析优先使用 READ? VI兼顾实时性和数据可追溯性。2.与DATA? VI的对比DATA? VI 为仪器内存数据读取 VI与 FETCh? VI 核心差异为DATA? VI 读取数据后会清除仪器内存中的对应数据仅能读取一次而 FETCh? VI 读取后内存数据保留可多次读取。需读取数据并清理内存避免数据溢出优先使用 DATA? VI需多次读取相同数据进行多维度分析优先使用 FETCh? VI。六、实际应用案例案例134980A 5001/5002双通道电阻实时连续监测READ? VI应用1.应用需求对 34980A 的 5001、5002 通道进行四线制电阻实时监测要求配置一次仪器参数LabVIEW 循环采集每次仅返回一组双通道数据无批量数据冗余实现 24 小时不间断实时监测。2.仪器配置SCPI命令LabVIEW初始化VI发送scpi*RST;CONF:FRES (5001,5002);ROUT:SCAN (5001,5002);SWE:COUN 1;TRIG:SOUR IMM;TRIG:COUNT 1;SAMP:COUN 1;FORM:READ:ALAR 0;CHAN 0;UNIT 0;TIME 0;3. LabVIEW程序设计初始化 VI发送上述 SCPI 命令完成仪器测量类型、扫描列表、触发方式、数据格式配置While 循环循环调用 READ? VI无额外通道参数输入仪器已定义扫描列表VI 自动触发仪器对 5001/5002 通道执行一次扫描返回一组双通道电阻数值数据处理模块对返回的数值进行实时显示、超限报警、单组数据存储停止模块循环停止时调用 ABORt VI 发送中止命令停止仪器触发状态。4.应用效果每次循环仅返回 5001、5002 通道的一组电阻数据无批量数据冗余数据实时性高无缓存延迟适配工业现场实时监测需求仪器无持续内存占用避免数据溢出问题。案例234980A多通道批量采集与离线分析FETCh? VI应用1.应用需求对 34980A 的 10 路通道进行温度批量采集仪器连续扫描 30 分钟采集完成后一次性读取所有测量数据在 LabVIEW 中进行离线趋势分析和数据报表生成。2.仪器配置与数据采集初始化仪器配置测量类型为温度采集、扫描列表为 10 路通道、触发源为立即触发、扫描次数为无限循环、数据格式为带时间戳启动扫描仪器后台连续扫描 30 分钟测量数据自动存入仪器内存带时间戳记录每次采集时间中止扫描30 分钟后执行 ABORt 命令中止仪器扫描保留内存中所有测量数据。3. LabVIEW程序设计通信初始化配置 VISA 资源建立与 34980A 的通信调用 FETCh? VI一次性读取仪器内存中 30 分钟的所有批量测量数据包含 10 路通道的所有采集值和对应时间戳数据解析模块分离时间戳和各通道数据转换为 LabVIEW 可识别的数值矩阵和时间序列数据分析模块绘制各通道温度趋势曲线进行超限数据统计、平均值计算等离线分析报表生成模块将分析结果和原始数据生成 Excel 报表供后续归档。4.应用效果通过 FETCh? VI 一次性读取批量数据无需在采集过程中高频调用 VI减少计算机与仪器的通信次数提升采集效率同时利用仪器 500,000 条数据的存储能力满足长时间批量采集需求离线分析时可对完整数据进行多维度处理保证分析结果的全面性。案例3FETCh? VI与READ? VI联动应用1.应用需求对 34980A 的 5001 通道进行电流实时监测同时保留每小时的批量数据供后续追溯要求实时监测无延迟批量数据可快速读取。2.实现方案初始化仪器配置测量类型为电流采集、触发源为立即触发、扫描次数为单次、数据格式为带通道号和时间戳LabVIEW 小时级循环外层循环为 1 小时一次内层循环为实时采集循环内层循环调用 READ? VI循环采集 5001 通道电流数据实时显示并进行超限报警测量数据自动存入仪器内存外层循环每小时执行一次 FETCh? VI读取仪器内存中过去 1 小时的所有批量数据存储至计算机硬盘随后执行 DATA? VI 清除仪器内存避免数据溢出停止采集完成所有采集后调用 ABORt 命令中止仪器触发状态。3.应用效果通过 READ? VI 实现实时无延迟采集满足现场监测需求通过 FETCh? VI 实现小时级批量数据读取保证数据可追溯性同时配合 DATA? VI 清理内存避免长时间采集导致的数据溢出实现实时监测与批量数据存储的双重需求。