Community程式設計與開發github.com

JaredCabot/keysight-truevolt-dmm

操作、程式控制(透過 USB/LAN/GPIB 的 SCPI 指令)並設定 Keysight Truevolt 系列桌上型數位萬用電錶 34460A/34461A/34465A/34470A:包含量測設定、觸發、數學運算、資料紀錄、數位化、次要量測、狀態、錯誤、檔案、I/O、校準以及完整的已記錄指令集。

keysight-truevolt-dmm 是什麼?

此技能提供了 Keysight Truevolt 系列數位萬用電錶(型號 34460A、34461A、34465A 和 34470A)的完整程式控制能力。它涵蓋了所有已記錄的功能集,包括從基本的 DC/AC 電壓和電流測量,到進階的電容、頻率、週期、溫度、電阻(2線/4線)、二極體和導通性測試。技能詳細說明了 SCPI 指令語法,並針對每個型號的特定功能(如 34465A/70A 專有的數位化、高級觸發和數學運算功能)提供了清晰的指引。 此技能支援多種連接方式,包括 USB (TMC)、LAN (VXI-11、HiSLIP、Raw Socket、Telnet) 和 GPIB,並提供了使用 PyVISA 和原生 socket 的 Python 程式碼範例。它深入說明了量測模型,從單鍵指令到完整的觸發序列設定,並涵蓋了解析度、NPLC、孔徑、自動歸零和阻抗等設定。此外,還包含了觸發系統、數學功能(如歸零、dBm、比例、濾波和統計)、資料記錄和數位化擷取模式、檔案系統操作、狀態位元模型、錯誤佇列、和診斷校準功能等完整資訊,使其成為在各種自動化測試環境中控制這些萬用電錶的終極參考。

相容平台~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/服務指令、AC 模式變體和韌體內部,請參閱單獨的 344xxA 韌體補充說明;此技能僅包含官方功能集。

語法慣例:{A|B} 是必要選擇,[X] 是選用節點或參數,<x> 是您提供的數值。SCPI 關鍵字以大寫顯示短格式;小寫尾碼為選用(VOLTage 接受 VOLT 或 VOLTAGE)。MIN、MAX、DEF 可接受於任何需要數值 <value> 的地方,數值查詢可以加上 [{MIN|MAX|DEF}] 來查詢限制值而非目前值。布林參數接受 {OFF|0|ON|1};查詢會回傳 0 或 1。除非特別說明 "(no query)",每個顯示的設定指令都有對應的查詢指令。

型號、選項與差異

型號位數備註
34460A6½基本 DMM。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;熱電偶感測器;僅 DC 的 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 和網頁預設啟用;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 raw socket:TCP 連接到 port 5025(TCPIP0::<ip>::5025::SOCKET);每個指令以 \n 結尾。
  • LAN Telnet:port 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 的原始 socket:

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。

DC 電壓 - 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 參考電壓的比率;使用 DC 設定;比率無法使用 NULL。使用次要量測 "SENSe:DATA" 讀取原始訊號和參考電壓。

AC 電壓 - VOLTage:AC

  • 檔位 100 mV、1 V、10 V、100 V、1000 V(:RANGe 預設 10 V;MAX 為 1000 V,最高檔位有 750 VAC rms 安全限制)。True-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 秒。

DC / AC 電流 - CURRent[:DC] / CURRent:AC

  • 3 A 端子檔位:100 µA、1 mA、10 mA、100 mA、1 A、3 A。34465A/70A 增加了僅 DC 的 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} 類似 AC 電壓;ACI 穩定時間 3 Hz 為 1.66 秒、20 Hz 為 0.25 秒、200 Hz 為 0.025 秒。DC 電流有 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,預設自動換檔。關閉自動換檔時,超量程不會報告超載;當量測超時(電容太大),或輸入端有 DC 或短路時,會發生超載。
  • 在指南的簡介中被標記為 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 或孔徑中的任何一個,其他兩者會隨之更新(適用於 DC 功能、電阻和溫度;AC 和頻率則使用濾波器和閘門代替)。

  • [SENSe:]<fn>:NPLC {<PLCs>|MIN|MAX|DEF} - 以電源線週期為單位的積分時間,預設 10。允許的組合:
    • 34460A/61A:0.02、0.2、1、10、100
    • 無 DIG 的 34465A/70A:0.02、0.06、0.2、1、10、100
    • 有 DIG 的 34465A/70A: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,或少於 20 µs 到 1 s(有 DIG 時),解析度 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 {IMMediate|BUS|EXTernal|INTernal|HOLD}

IMMediate 觸發在 INITiate 後立即發生。BUS 等待 *TRG 或 TRIGger[:IMMediate]。EXTernal 等待後面板的 Ext Trig 輸入信號。INTernal(34465A/70A,需要 DIG)等待信號越過 TRIGger:LEVel。HOLD 等待面板上的 [Single] 鍵。

  • TRIGger:COUNt {1 to 1 000 000|MIN|MAX|DEF} - 每次 INITiate 的觸發事件數,預設 1。
  • TRIGger:DELay {<s>|MIN|MAX|DEF} - 觸發事件後到取樣開始前的時間,預設自動延遲(對於 DC/電阻/溫度足夠穩定)。自動延遲:TRIGger:DELay:AUTO {OFF|ON}。
  • SAMPle:COUNt {1 to 1 000 000|MIN|MAX|DEF} - 每次觸發的讀值數,預設 1。
  • SAMPle:SOURce {IMMediate|TIMer}(34465A/70A) - IMMediate:取樣之間最小延遲;TIMer:使用 SAMPle:TIMer 設定的週期定時取樣。
  • SAMPle:TIMer {<s>|MIN|MAX|DEF}(34465A/70A) - 取樣間隔,20 µs 到 10000 s,解析度 2 µs,預設 20 µs。
  • SAMPle:COUNt:PRETrigger {<n>|MIN|MAX|DEF}(34465A/70A) - 在觸發事件之前要儲存的讀值數(需要 SAMP:SOUR TIM 和 TRIG:SOUR INT);設定為 0 到 SAMP:COUN - 1。

讀值數超過記憶體時:1000 個 INITiate、READ? 或擷取序列;然後使用 R? 批次讀取並清除。

# 1 kHz 取樣率,1 秒,1000 個觸發前讀值
dmm.write("CONF:VOLT:DC 10,1e-5")
dmm.write("TRIG:SOUR INT; :TRIG:LEV 1.0")
dmm.write("SAMP:SOUR TIM; :SAMP:TIM 0.001; :SAMP:COUN 2000")
dmm.write("SAMP:COUN:PRET 1000")
dmm.write("INIT")
dmm.query("*OPC?")
pre = dmm.query("R? 1000").strip().split(",")
post = dmm.query("FETC?").strip().split(",")

數學與次要量測

CALCulate:FUNCtion {NULL|DB|DBM|LIMit|PCT|SCALE|SMOoth|STATus|AVERage|PTPeak} 選擇一個功能。CALCulate:STATe {OFF|ON} 啟用/停用。

  • NULL:CALCulate:NULL:OFFSet <v>(預設 0)從每個讀值減去。
  • DB(以電壓為參考的分貝):CALCulate:DB:REFerence <v>。
  • DBM(以 dBm 為單位的功率):CALCulate:DBM:REFerence <r>(Ω)。
  • LIMit:CALCulate:LIMit:{LOWer|UPPer}[:DATA] <v> 設定測試限制,CALCulate:LIMit:{LOWer|UPPer}:STATe {OFF|ON}。CALCulate:LIMit:SOURce {T1|T2|BOTH}(34465A/70A)切換兩個限制組。CALCulate:LIMit:TEST? 回傳結果。
  • PCT(34465A/70A):CALCulate:PCT:REFerence <v>。
  • SCALE (Mx-B)(34465A/70A):CALCulate:SCALe:GAIN <m>(預設 1)、:OFFSet <b>(預設 0)、:REFerence <v>(Mx-B 的歸零參考,預設 0)、:UNIT <string>。
  • SMOoth(34465A/70A):CALCulate:SMOothing:RESPonse {SLOW|MEDium|FAST}。
  • AVERage:CALCulate:AVERage:{COUNt|MIN|MAX|MEAN|SDEV}? 回傳統計資料。CALCulate:AVERage:STATe 啟用/停用。
  • PTPeak(34465A/70A):CALCulate:PTPeak:STATe {OFF|ON}。

次要量測:讀取 CALCulate:DATA? 回傳主要量測值(若數學功能開啟則為處理後的值);CALCulate:DATA:SECondary? 回傳選擇的次要值。選擇 [SENSe:]:SECondary <choice>,選項:"NONE"、"SENSe:DATA"(原始 A/D 讀值)、"CALCulate:DATA"(34465A/70A)、"PTPeak"(34465A/70A)、"TIME"、"TEMPerature"(內部參考)、"RATio"(外部參考)、"TOTalizer"。

資料記錄器與數位化

34465A/70A 專用,通常需要 DIG 選項(現在為標準配備)。

資料記錄器模式:

  • ROUTe:LOGGer:STATe {OFF|ON} - 啟用/停用。
  • ROUTe:LOGGer:INTerval <s> - 記錄間隔(1 到 86400 秒)。
  • ROUTe:LOGGer:COUNt {1 to 100 000} - 要記錄的讀值數。
  • ROUTe:LOGGer:TRIGger {IMMediate|EXTernal} - 開始記錄的觸發源。
  • 已記錄的資料透過 MMEMory:LOGGer:DATA? 或 MMEMory:LOGGer:FILE:EXPort 存取(MEM 選項允許完全深度)。

數位化模式(高達 50 kSa/s):

  • ROUTe:DIGitize:STATe {OFF|ON} - 啟用。
  • ROUTe:DIGitize:FREQuency <freq> - 取樣率(10 到 50000 Sa/s)。
  • ROUTe:DIGitize:COUNt {1 to 2_000_000} - 取樣數(MEM 選項啟用完整 2M 深度)。
  • ROUTe:DIGitize:TRIGger:SOURce {IMMediate|BUS|EXTernal|INTernal}、ROUTe:DIGitize:TRIGger:LEVel <v>。
  • 透過 INIT、FETCh? 開始擷取。

檔案系統

  • MMEMory:CDIRectory <path> - 更改目前目錄。MMEMory:MSIS <drive> 切換磁碟機 (INT, USB)。
  • MMEMory:CATalog? [<directory>] - 列出檔案/目錄、總大小、可用空間。MMEMory:CATalog:ALL? 列出遞迴。
  • MMEMory:STORe:SCReen <filename> - 儲存螢幕截圖(PNG)。MMEMory:STORe:DATA <filename>,<data> - 將資料陣列儲存為 CSV 或 TSV。
  • MMEMory:LOAD:STATe <number>、MMEMory:STORe:STATe <number> - 載入/儲存設定(1 到 20)。
  • MMEMory:COPY <source>,<dest>、MMEMory:MOVE <source>,<dest>、MMEMory:DELete <file>。
  • 檔案傳輸:MMEMory:DATA? 回傳 base64 編碼的內容;MMEMory:DATA <file>,<data> 寫入檔案。

狀態模型

標準 IEEE-488.2 狀態位元模型:

  • 操作狀態暫存器 (STATus:OPERation:{CONDition|ENABle|EVENt}?,:PTRansition、:NTRansition):位元 3-10 對應於觸發、量測完成、記錄器活動、數位化、等到觸發、校正、內部算術和程式執行中。
  • 疑問狀態暫存器 (STATus:QUEStionable:{CONDition|ENABle|EVENt}?,:PTRansition、:NTRansition):電壓、電流、時間、溫度、電容、頻率、電阻、電源和內部硬體(位元遮罩依型號而定)。
  • 標準事件暫存器 (*ESR?、*ESE <mask>):操作完成、查詢錯誤、裝置錯誤、執行錯誤、命令錯誤、使用者請求、電源開啟。
  • 狀態位元組 (*STB?、*SRE <mask>):包含 MSS、RQS、ESB、MAV、QUEStionable、EAV、OPERation。
  • STATus:PRESet 將啟用暫存器和正/負過渡濾波器重設為出廠預設值。
  • *CLS 清除事件暫存器和錯誤佇列。

錯誤佇列

  • SYSTem:ERRor? - 回傳並清除最舊的錯誤。格式:<code>,"<message>"。空佇列回傳 0,"No error"。
  • SYSTem:ERRor:COUNt? - 佇列中錯誤的數量。
  • SYSTem:WARNing? - 回傳警告而不清除佇列(僅限少數前方面板相關的警告)。

常見錯誤:-113,"Undefined header"、-222,"Data out of range"、-203,"Command protected; feature not available on this model"、+0,"No error"。完整的清單在 OSG 第 7 章。

輸出格式

  • FORMat[:DATA] {ASCii|REAL} - ASCII(預設)以逗號分隔的數字;REAL 為二進位浮點數(64 位元 IEEE-754,大端序)。FORMat:BORDer {NORMal|SWAPped} 控制位元組序。
  • FORMat:READing <type>(34465A/70A) - 選擇 ONLY(僅值)、TIME(值、時間戳記)、ALL(值、時間戳記、單位)。時間戳記單位為秒,自觸發後開始。
  • 二進位傳送時,FORMat:DATA 必須設為 REAL。FORMat:ELEMents 控制要包含的元素。

I/O 組態

  • SYSTem:COMMunicate:LAN:CONTrol? - 回傳 LAN 設定(DHCP、IP、遮罩、閘道、DNS、MAC、主機名稱)。
  • SYSTem:COMMunicate:LAN:IPADdress <ip>、:SMASk <mask>、:DGATeway <gateway>、:DNS{1|2} <ip>、:HOSTname <name>、:DOMain <domain>。
  • SYSTem:COMMunicate:LAN:DHCP {OFF|ON}、:AUTOip {OFF|ON}。
  • SYSTem:COMMunicate:LAN:RESet - 重設 LAN 為 DHCP 並重新套用設定(需要電源重啟)。
  • SYSTem:COMMunicate:LAN:VXI11:ENABle、SYSTem:COMMunicate:LAN:HISLip:ENABle、SYSTem:COMMunicate:LAN:SOCKets:ENABle、SYSTem:COMMunicate:LAN:TELNet:ENABle。
  • SYSTem:COMMunicate:USB:CONTrol? - 回傳 USB 設定(VID、PID、序號、產品字串)。
  • SYSTem:SECurity:STATe {OFF|ON} / DISable - 安全/檔案刪除模式。SYSTem:SECurity:IMMediate 執行安全抹除。

診斷與校準

  • *TST? - 開機自我測試。
  • DIAGnostic:IMPedance:ALL? - 執行輸入阻抗測試。
  • DIAGnostic:RELay:CYCLes? - 回傳繼電器跳動次數。
  • SYSTem:ACQuire? - 回傳目前量測功能的單一原始 A/D 讀值。
  • SYSTem:ACALibration {OFF|ON}(34465A/70A) - 自動校準。*CAL?(34465A/70A)執行自我校準。
  • CALibration:COUNt? - 校準次數。CALibration:STRing? - 校準標籤。CALibration:SECure:STATe {OFF|ON},<code> - 鎖定/解鎖校準。
  • CALibration:DATE?、CALibration:TEMPerature? - 校準日期和溫度。
  • CALibration:VALue? <calibration-point> - 個別校正常數。
  • 完整校準程序在 OSG 第 5 章。

系統控制

  • SYSTem:BEEPer:IMMediate - 發出蜂鳴聲。SYSTem:BEEPer:STATe {OFF|ON}。
  • SYSTem:KLOCk {OFF|ON} - 鎖定鍵盤(前面板)。
  • SYSTem:PRESet - 將儀器重設為出廠設定(遠端介面設定除外)。
  • SYSTem:VERSion? - SCPI 版本。SYSTem:REVision? - 韌體修訂版。SYSTem:SERial? - 序號。SYSTem:TEMPerature? - 內部參考接點溫度。
  • DISPlay[:WINDow]:TEXT[:DATA] <string> - 在顯示器上顯示訊息。DISPlay[:WINDow]:TEXT:CLEar 清除。
  • DISPlay:BRIGhtness <0..100> - 背光亮度。DISPlay:CONTRAST <0..100> - 對比度(僅限 VFD 機型)。

實用快速參考

def measure_voltage(dmm, range_v=10, nplc=1):
    """測量 DC 電壓並回傳浮點數。"""
    dmm.write(f"CONF:VOLT:DC {range_v},1e-5")
    dmm.write(f"VOLT:DC:NPLC {nplc}")
    return float(dmm.query("READ?"))

def measure_resistance_4w(dmm):
    """4線式電阻,偏移補償(如可用)。"""
    dmm.write("CONF:FRES 1e3,1e-5")
    dmm.write("FRES:OCOM ON")
    return float(dmm.query("READ?"))

def fetch_log_data(dmm):
    """從資料記錄器回傳所有記錄的資料。"""
    raw = dmm.query("MMEM:LOGG:DATA?").strip()
    return [float(x) for x in raw.split(",")]

def read_status(dmm):
    """回傳一個包含關鍵狀態的字典。"""
    return {
        "errors": dmm.query("SYST:ERR:COUN?").strip(),
        "operation": dmm.query("STAT:OPER:COND?").strip(),
        "questionable": dmm.query("STAT:QUES:COND?").strip(),
    }

附錄

韌體版本歷史

  • 最新韌體包含 DIG 選項。
  • SYST:REV? 回傳目前版本。

相關文件

  • Keysight Truevolt 系列操作與維修指南(文檔 34460-90901)
  • Keysight IVI-COM 和 LabVIEW 驅動程式
  • 344xxA 韌體補充說明(用於診斷/服務指令)

Individual skills in this repo

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

相關技能