Keysight(N6705C/N6781A 等双向电源)没有专门的 SCPI 命令直接返回 “当前 USB 连接速率”;只能通过三类方式间接判断:①仪器手册固定规格 ②系统接口信息查询 ③上位机 / 驱动读取。
下面把可行方法和相关 SCPI 全部给你:
一、先确认:仪器 USB 口硬件规格(固定)
Keysight 主流双向电源(N6705C、N6781A、N6702C 等):
USB 2.0 High‑Speed(480 Mbps)
少数新机型(如部分 N6705B):USB 3.2 Gen1(5 Gbps) 这个是硬件固定,不会变,不需要 SCPI 也能确定。
二、SCPI 能查到的 “接口状态”(不含速率,但可确认是 USB)
1)查询当前使用的接口类型
scpi
:SYSTem:COMMunicate:INTerface?
常见返回:
USB
LAN
GPIB
2)查询 USB 地址 / 端口(确认 USB 已连接)
scpi
:SYSTem:COMMunicate:USB:ADDRess?
返回类似 0x00000001.表示 USB 连接正常。
3)查询仪器识别信息(确认型号 / 固件)
scpi
*IDN?
返回:Keysight Technologies,N6705C,XXXXXXXX,A.XX.XX 用于核对是否为 USB2.0/3.2 机型。
三、为什么没有 “USB 速率?” 命令
SCPI 标准只定义仪器功能(电压、电流、校准、状态),不定义物理层连接细节(如 USB 协商速率、带宽、驱动版本)。Keysight 编程手册也未提供类似:
scpi
:SYST:COMM:USB:SPEED?
:SYST:COMM:USB:RATE?
的命令。
四、真正能读到 “当前协商速率” 的方法(上位机)
Windows(Python + pyvisa + 驱动)
python
运行
import pyvisa
rm = pyvisa.ResourceManager()
inst = rm.open_resource('USB0::0x2A8D::0x0001::MY54100001::INSTR')
# 查接口类型
print(inst.query(':SYST:COMM:INT?'))
# Windows 设备管理器 → 通用串行总线控制器 → 设备详情 → 速度
# 或用 pyserial/pyusb 直接读 USB 描述符
设备管理器查看(最简单)
连接仪器 USB
设备管理器 → 通用串行总线控制器 → 找到 Keysight 设备
右键 → 详细信息 → 选择 “Bus Type” 或 “Speed”
High-Speed = USB2.0(480 Mbps)
SuperSpeed = USB3.2 Gen1(5 Gbps)
五、总结(一句话)
SCPI:只能查 “是否 USB、USB 地址、仪器型号”,不能直接查速率。
硬件规格:N6705C/N6781A 全系 USB2.0(480 Mbps)。
要读当前协商速率:用 Windows 设备管理器或上位机 USB 驱动读取。