Community编程与开发github.com

JaredCabot/keysight-truevolt-dmm

操作、编程(通过USB/LAN/GPIB进行SCPI控制)和配置Keysight Truevolt系列台式数字万用表(34460A/34461A/34465A/34470A):测量设置、触发、数学运算、数据记录、数字化、辅助测量、状态、错误、文件、I/O、校准以及完整的已记录命令集。

keysight-truevolt-dmm 是什么?

该技能提供了操作Keysight Truevolt系列数字万用表(DMM)的完整、官方文档化的SCPI命令集,涵盖34460A、34461A、34465A和34470A型号。它封装了用户和服务指南中的功能,允许AI代理执行测量配置、触发、数据采集、数学变换、数据记录/数字化模式以及系统管理任务。该技能支持通过USB、LAN(VXI-11/HiSLIP/原始套接字)和GPIB进行连接,并提供Python代码示例,以便与pyvisa或原始套接字库集成。对于开发人员而言,它通过提供所有受支持功能的精确、文档化命令(包括型号特定的差异,如34465A/70A上的高级数字化和触发选项),简化了自动化测试和测量工作流程。

兼容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/JaredCabot/claude-instrument-skills/tree/HEAD/keysight-truevolt-dmm

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Keysight Truevolt 系列数字万用表:34460A / 34461A / 34465A / 34470A

完整的文档化功能集,来源于 Keysight Truevolt 系列操作与维修指南(文档编号 34460-90901,英文版;“OSG p.NNN” 是其印刷页码)。除非标注 [推断],否则此处所有内容均来自该指南。对于未记录的 DIAGnostic/服务命令、交流模式变体及固件内部细节,请参阅单独的 344xxA 固件补充;本技能仅涵盖官方功能集。

语法惯例:{A|B} 为必选项,[X] 为可选节点或参数,<x> 为您提供的值。SCPI 关键字中,大写字母表示短格式;小写尾部为可选(VOLTage 接受 VOLT 或 VOLTAGE)。在需要数值 <value> 的位置,均接受 MIN、MAX、DEF;数值查询接受 [{MIN|MAX|DEF}] 以查询限制值而非当前值。布尔参数接受 {OFF|0|ON|1};查询返回 0 或 1。除非特别注明“(无查询)”,否则显示的每个设置命令都有对应的查询命令。

型号、选件及差异

型号位数说明
34460A6½基础型数字万用表。LAN 和附件套件为选件。无 10 A 接线端子。
34461A6½替代 34401A。LAN 和附件套件为标准配置。有 10 A 接线端子。
34465A6½增加了以下仅适用于 34465A/70A 的功能。
34470A7½最高分辨率;功能集与 34465A 相同。

一大组命令和参数仅适用于 34465A/70A:所有 APERture 和 APERture:ENABled 节点;CALCulate:SCALe 的 GAIN/OFFSet/REFerence/UNIT 以及 PCT 和 SCALe (Mx-B) 缩放功能;CALCulate:SMOothing;SAMPle:SOURce / SAMPle:TIMer / SAMPle:COUNt:PRETrigger;TRIGger:LEVel 和 TRIGger:SOURce INTernal(电平触发,需要 DIG 选件);FORMat 二进制传输和 MMEMory:FORMat:READing;辅助测量功能 "CALCulate:DATA" 和 "PTPeak" 选项;SYSTem:ACALibration 和 *CAL?;电阻/温度测量的 OCOMpensated 和 POWer:LIMit;CURRent:SWITch:MODE;热电偶传感器;仅直流模式的 1 µA 和 10 µA 电流量程以及 1 GΩ 电阻量程;以及数据记录和数字化采集模式。向 34460A/61A 发送这些命令将返回 -203,"Command protected; feature not available on this model"。(直方图、dB 和 dBm 缩放功能以及其他辅助测量选项在所有四个型号上均可用。)

许可选件,可通过 SYSTem:LICense:CATalog? 读取:

  • DIG - 数字化和高级(电平)触发(34465A/70A)。现已包含在最新固件中。没有 DIG 选件时,最快孔径时间为 200 µs,最快 NPLC 为 0.02;启用 DIG 后,最快孔径时间为 20 µs,NPLC 可低至 0.001。
  • MEM - 深度读数存储:2,000,000 个读数(替代 50,000 个)(34465A/70A)。
  • SEC - NISPOM 文件安全。
  • LAN、GPB - LAN/LXI 接口和用户可安装的 GPIB 模块。

读数存储深度(无 MEM 选件):34460A 1,000;34461A 10,000;34465A/70A 50,000(OSG p.355)。

连接

Keysight VISA 资源字符串,每个接口一个(默认启用 USB、LAN 和 Web 接口;GPIB 需要模块):

  • USB(USB-TMC):USB0::<vid>::<pid>::<serial>::0::INSTR。确切字符串可在 [Shift] > [Help] > About 中或从任何 VISA 浏览器获取。
  • LAN VXI-11:TCPIP0::<ip>::inst0::INSTR
  • LAN HiSLIP:TCPIP0::<ip>::hislip0::INSTR
  • LAN 原始套接字:TCP 连接至 端口 5025(TCPIP0::<ip>::5025::SOCKET);每条命令结尾添加 \n。
  • LAN Telnet:端口 5024(telnet <ip> 5024)。
  • GPIB:GPIB0::<addr>::INSTR;地址通过 SYSTem:COMMunicate:GPIB:ADDRess <n> 设置(默认 22)。

默认 LAN 为 DHCP + Auto-IP 开启;备用地址 169.254.x.x;主机名 K-<model>-nnnnn(最后 5 位序列号)。接口和 LAN 服务更改仅在重启后生效(OSG p.473)。

import pyvisa
rm = pyvisa.ResourceManager()
dmm = rm.open_resource("TCPIP0::192.168.1.50::inst0::INSTR")
dmm.timeout = 10000                      # ms;对于长 NPLC 或大 SAMP:COUN 值请增大此值
print(dmm.query("*IDN?"))                # Keysight Technologies,34465A,<serial>,<fw>
print(dmm.query("MEAS:VOLT:DC? 10,0.001"))

不使用 VISA 的原始套接字连接:

import socket
s = socket.create_connection(("192.168.1.50", 5025), timeout=10)
s.sendall(b"MEAS:VOLT:DC? 10,0.001\n")
print(s.recv(256).decode().strip())

启用或禁用接口:SYSTem:COMMunicate:ENABle {OFF|ON}, {GPIB|HISLip|USB|LAN|SOCKets|TELNet|VXI11|WEB|USBMtp|USBHost}。

测量模型

三个层次,从最少控制到最多控制:

  1. MEASure:<fn>? - 单次测量:预设功能,除非您提供量程否则自动量程,触发,返回读数。等同于 CONFigure + READ? 使用默认值。最简单,最不灵活。
  2. CONFigure:<fn> 然后 READ? - 配置功能,在中间使用 [SENSe:] 命令调整,然后 READ? 触发并返回。CONFigure 不 启动触发器(OSG p.197)。CONFigure? 以带引号的字符串形式返回当前功能及其量程/分辨率。
  3. CONFigure / [SENSe:] / TRIGger 设置,然后 INITiate 启动,接着 FETCh? 检索。用于触发式突发、数据记录和数字化。

检索和控制动词:

  • INITiate[:IMMediate] - 启动:将仪器从空闲状态移至等待触发状态。从内存中清除之前的读数,然后在新读数产生时存储它们。重叠命令(立即返回)。
  • READ? = INITiate + FETCh?。
  • FETCh? - 返回内存中的所有读数,而不重新触发或擦除它们。
  • R? [<max>] - 返回并 擦除 最旧的读数(FIFO);用于在长时间采集期间读取而不会使内存溢出。
  • ABORt - 停止正在进行的测量并返回触发空闲状态。用于退出等待触发或长时间突发。
  • 每次 INITiate 的总读数 = TRIGger:COUNt x SAMPle:COUNt。
# 快速触发式 100 个读数突发,10 V 量程,BUS 触发
 dmm.write("CONF:VOLT:DC 10,1e-5")
 dmm.write("VOLT:DC:NPLC 1")
 dmm.write("TRIG:SOUR BUS; :SAMP:COUN 100")
 dmm.write("INIT")
 dmm.write("*TRG")
 dmm.query("*OPC?")                       # 等待突发完成
 vals = dmm.query("FETC?").strip().split(",")

测量功能

通过 CONFigure:<fn> / MEASure:<fn>? 选择,或通过 [SENSe:]FUNCtion[:ON] "<function>" 选择。13 个有效的功能字符串:"VOLTage[:DC]"、"VOLTage[:DC]:RATio"、"VOLTage:AC"、"CURRent[:DC]"、"CURRent:AC"、"RESistance"(2 线)、"FRESistance"(4 线)、"CAPacitance"、"FREQuency"、"PERiod"、"TEMPerature"、"CONTinuity"、"DIODe"。查询返回短格式,例如 "CURR:AC"。每个功能保留其自己的量程、分辨率和设置;切换回来时恢复。更改功能会关闭所有 CALCulate 数学状态。

除导通和二极管外,每个测量功能都采用 RANGe <v>、RANGe:AUTO {OFF|ON|ONCE}、RESolution <v>、NULL[:STATe]、NULL:VALue、NULL:VALue:AUTO 以及下面的积分控制。自动量程在超过量程的 120 % 时上升,低于 10 % 时下降。固定量程过载在面板上显示 "Overload",并通过远程方式返回 9.9E37。

直流电压 - VOLTage[:DC] 和比率 VOLTage[:DC]:RATio

  • 量程 100 mV、1 V、10 V、100 V、1000 V(:RANGe {<v>|MIN|MAX|DEF},默认自动量程;DC 默认量程 1000 V,自动量程开启)。
  • VOLTage[:DC]:IMPedance:AUTO {OFF|ON} - OFF 时所有量程固定为 10 MΩ;ON 时在 100 mV/1 V/10 V 量程上提供 >10 GΩ("Hi-Z"),在 100 V/1000 V 量程上为 10 MΩ。CONFigure 和 MEASure? 强制将其设置为 OFF。默认 OFF。
  • VOLTage[:DC]:ZERO:AUTO {OFF|ON|ONCE} - 自动调零,默认 ON。
  • :RATio 测量 HI-LO 输入相对于 Sense 端子上的直流参考值;使用 DC 设置;NULL 不适用于比率。使用辅助测量 "SENSe:DATA" 读取原始信号和参考值。

交流电压 - VOLTage:AC

  • 量程 100 mV、1 V、10 V、100 V、1000 V(:RANGe 默认 10 V;MAX 为 1000 V,在最高量程上有 750 VAC rms 安全限制)。真有效值,AC 耦合。
  • VOLTage:AC:BANDwidth {3|20|200} - AC 滤波器,单位为 Hz:3(慢速)、20(中速,默认)、200(快速)。设置为存在的最低频率。Truevolt RMS 算法对波峰因数不敏感,因此无需波峰因数降额(OSG p.163)。每次读数的稳定时间:3 Hz 为 2.5 秒、20 Hz 为 0.625 秒、200 Hz 为 0.025 秒。

直流/交流电流 - CURRent[:DC] / CURRent:AC

  • 3 A 端子量程:100 µA、1 mA、10 mA、100 mA、1 A、3 A。34465A/70A 增加了仅直流模式的 1 µA 和 10 µA 量程。(每个型号都有 100 µA 和 1 mA 量程。)
  • CURRent:{AC|DC}:TERMinals {3|10} - 选择 3 A 或 10 A 前面板端子(34461A/65A/70A;34460A 没有 10 A 端子)。您不能使用 :RANGe 选择 10 A 量程;请使用 TERMinals 10 或 CONF:CURR 10。10 A 仅为前面板端子。
  • CURRent:SWITch:MODE {FAST|CONTinuous}(34465A/70A,3 A 端子)- 内部分流器切换行为。CONTinuous(默认)避免瞬间开路,但量程更改速度最多慢 3 倍;FAST 允许短暂开路。
  • CURRent:AC:BANDwidth {3|20|200} 类似于交流电压;ACI 稳定时间:3 Hz 为 1.66 秒,20 Hz 为 0.25 秒,200 Hz 为 0.025 秒。直流电流有 ZERO:AUTO。

2 线 / 4 线电阻 - RESistance / FRESistance

  • 量程 100 Ω、1 kΩ、10 kΩ、100 kΩ、1 MΩ、10 MΩ、100 MΩ(默认 1 kΩ,自动量程开启)。34465A/70A 增加了 1 GΩ。
  • OCOMpensated {OFF|ON}(34465A/70A)- 偏移补偿;在不同激励电流下进行两次读数以抵消热电动势。仅适用于 100 Ω 到 100 kΩ;大致使读数时间加倍。
  • POWer:LIMit[:STATe] {OFF|ON}(34465A/70A)- 低功率电阻测量,提供更小的电流;在 100 Ω 到 100 kΩ 上有效。
  • RESistance:ZERO:AUTO {OFF|ON|ONCE} - 2 线自动调零(默认 ON)。4 线始终补偿偏移,因此 FRESistance 没有 ZERO:AUTO。使用 FRESistance 消除引线电阻;RESistance:NULL 为 2 线测量调零。

电容 - CAPacitance

  • 量程 1 nF、10 nF、100 nF、1 µF、10 µF、100 µF,默认自动量程。关闭自动量程时,超量程不会报告过载;当测量超时(电容过大)、或输入存在直流或短路时发生过载。
  • 指南引言中标记为 34465A/70A 专用,但电容命令页面未带型号注释;请将可用性视为依赖于型号,如有疑问,请通过 SYSTem:LICense:CATalog? / -203 检查。

频率 / 周期 - FREQuency / PERiod

  • 对电压输入进行倒数计数,3 Hz 至 300 kHz。FREQ 和 PER 共享一组 APERture、RANGe:LOWer 和 VOLTage:RANGe 值;NULL 和 SECondary 相互独立。
  • {FREQuency|PERiod}:APERture {1e-3|10e-3|100e-3|1} - 闸门时间 1 ms、10 ms、100 ms(默认)、1 s;1 ms 仅适用于 34465A/70A。闸门时间越长,分辨率越高。
  • :RANGe:LOWer {3|20|200} - AC 滤波器 / 预期的最低输入频率,默认 20 Hz;闸门等待此频率。
  • :VOLTage:RANGe {<v>|MIN|MAX|DEF} 设置输入电压量程(默认 10 V),:VOLTage:RANGe:AUTO 设置其自动量程,:TIMeout:AUTO {OFF|ON} 设置闸门超时(OFF 时在无信号情况下等待 1 秒;ON 时随滤波器缩放,并在超时时返回 0.0;这是唯一的非易失性 SENSe 设置)。

温度 - TEMPerature

  • TRANsducer:TYPE {FRTD|RTD|FTHermistor|THERmistor|TCouple} - 4 线 RTD、2 线 RTD、4 线热敏电阻、2 线热敏电阻、热电偶(默认 FRTD;TCouple 仅适用于 34465A/70A)。
  • CONFigure:TEMPerature [{FRTD|RTD|FTHermistor|THERmistor|TCouple|DEF} [,{<type>|DEF} [,1,{<resolution>|MIN|MAX|DEF}]]]。<type> 是探针值(例如 CONF:TEMP FRTD,85);1 占位符保留。
  • RTD:TRANsducer:{FRTD|RTD}:RESistance[:REFerence] <r0> 设置 R0(默认 100 Ω;34460A/61A 上范围为 80-120 Ω,34465A/70A 上为 49-2100 Ω),外加 OCOMpensated 和 POWer:LIMit(34465A/70A)。
  • 热敏电阻:前面板支持 2.2 kΩ(44004)、5 kΩ(44007)和 10 kΩ(44006)探针(Steinhart-Hart 方程),但远程命令 TRANsducer:{FTHermistor|THERmistor}:TYPE 仅接受 5000。可从前面板设置其他热敏电阻类型。
  • 热电偶(34465A/70A):TCouple:TYPE {E|J|K|N|R|T}(默认 J)、TCouple:RJUNction:TYPE {INTernal|FIXed}、TCouple:RJUNction <temp> 用于固定参考(始终为 °C,-20 到 +80)、TCouple:RJUNction:OFFSet:ADJust <temp>(-20 到 +20)、以及 TCouple:CHECk {OFF|ON} 用于标记断接的热电偶。SYSTem:TEMPerature? 读取内部参考温度。
  • UNIT:TEMPerature {C|F|K} 设置报告单位(默认 C)。

导通 / 二极管 - CONTinuity / DIODe

  • 无量程或分辨率;CONFigure:CONTinuity、CONFigure:DIODe。只能通过 FUNCtion 选择(无 [SENSe:] 子树)。

分辨率、NPLC 和孔径

您可以设置分辨率、NPLC 或孔径中的任何一个,其他会自动跟随(适用于直流功能、电阻和温度;交流电和频率则使用滤波器和闸门代替)。

  • [SENSe:]<fn>:NPLC {<PLCs>|MIN|MAX|DEF} - 以电源周期数为单位的积分时间,默认 10。允许的集合:
    • 34460A/61A:0.02、0.2、1、10、100
    • 34465A/70A 无 DIG 选件:0.02、0.06、0.2、1、10、100
    • 34465A/70A 有 DIG 选件:0.001、0.002、0.006、0.02、0.06、0.2、1、10、100 只有 1、10 和 100 PLC 能提供电源线(常态模式)噪声抑制。
  • [SENSe:]<fn>:APERture <seconds>(34465A/70A)直接设置积分时间:200 µs 到 1 s,或使用 DIG 选件时为 20 µs 到 1 s,分辨率为 2 µs,默认 100 ms。发送 APERture 会将 APERture:ENABled 设置为 ON;发送 NPLC 或 RESolution,或任何 CONFigure/MEASure?,会将其设置为 OFF。最后发送的 NPLC/孔径指令生效。
  • [SENSe:]<fn>:RESolution <v> 以测量单位(V、A、Ω)为单位,而非以数字为单位;MIN 最精细,MAX 最粗略;默认映射到 10 PLC。
  • 量程和分辨率表(OSG p.450-453)将每个量程和 NPLC 映射到一个分辨率数值(例如 34461A、10 V 量程、10 NPLC 给出 10 µV)。请在那里查找确切数值,而非凭记忆引用。

触发和读数采集

TRIGger:SOURce {IMMe

…

[已截断以进行翻译]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能