资讯中心

联系我们

深圳市维立信电子科技有限公司
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@welissom.com

如何通过第三方软件实现Keysight双向直流电源校准历史记录的批量查询?

2026-05-11 09:53:43  点击:

  正如之前多次提到的,Keysight 双向直流电源本身并不存储多笔校准历史记录(只能保留最近一次的日期、计数等),因此“批量查询历史记录”实际上是指:利用第三方软件(如 Python)批量轮询局域网内或多台列表中的电源,读取它们各自当前的校准状态信息,并汇总成表。

  你可以通过以下逻辑在第三方软件(以 Python 为例)中实现:

  1. 准备仪器清单

  创建一个包含多台电源通信地址(如 IP 或 VISA 地址)以及资产编号的列表或 CSV 文件:

  instruments_list = [

  {"asset": "PSU-001", "address": "TCPIP0::192.168.1.101::inst0::INSTR"},

  {"asset": "PSU-002", "address": "TCPIP0::192.168.1.102::inst0::INSTR"},

  {"asset": "PSU-003", "address": "TCPIP0::192.168.1.103::inst0::INSTR"}

  ]

  2. 编写批量查询与解析逻辑

  使用 pyvisa遍历列表,依次连接每台电源,发送查询指令,并捕获返回值和可能的连接错误:

  import pyvisa

  import datetime

  rm = pyvisa.ResourceManager()

  results = []

  for item in instruments_list:

  try:

  inst = rm.open_resource(item["address"])

  inst.timeout = 2000 # 设置超时,防止挂死

  # 查询关键信息

  idn = inst.query("*IDN?").strip()

  cal_date = inst.query("CALibration:DATE?").strip()

  cal_count = inst.query("CALibration:COUNt?").strip()

  cal_status = inst.query("CALibration:STATus?").strip()

  # 尝试读取自定义校准字符串(如标准器信息,若有写入)

  try:

  cal_str = inst.query("CALibration:STRing?").strip()

  except:

  cal_str = "N/A"

  inst.close()

  results.append({

  "Asset": item["asset"],

  "IDN": idn,

  "Last Cal Date": cal_date,

  "Cal Count": cal_count,

  "Cal Status": "OK" if cal_status == "0" else "Error",

  "Note": cal_str

  })

  except Exception as e:

  results.append({

  "Asset": item["asset"],

  "IDN": "OFFLINE/ERROR",

  "Last Cal Date": "-",

  "Cal Count": "-",

  "Cal Status": "-",

  "Note": str(e)

  })

  3. 结果汇总与导出

  将 results列表导出为控制台表格、CSV 或 Excel,即可完成“批量查询”:

  import pandas as pd

  df = pd.DataFrame(results)

  print(df)

  # df.to_excel("Batch_Cal_Report.xlsx", index=False)

  总结:第三方软件实现批量查询,本质是“循环连接 + 单台查询指令 + 结果汇总”。它能一次性盘点实验室或产线所有电源的“最近一次校准情况”,但依然无法从电源内部挖出已经被覆盖掉的早期校准历史。