要使用SCPI指令查询双向直流电源当前的实际输出电流,需通过设备支持的电流测量查询指令(通常位于MEASure或SENSe子系统下)。以下是详细步骤和示例:
MEASure:CURRent?(直接查询当前电流)SENSe:CURRent:MEASure?(传感器测量电流)FETCh:CURRent?(获取缓存的电流值)SENS:FUNC "CURR")。MEASure、SENSe或FETCh子系统中,例如:MEASure:CURRent?(通用指令)SENSe:CURRent:DC?(查询直流电流)scpiMEASure:CURRent? ; 查询当前输出电流(最常用)
或(若设备支持):scpiSENSe:CURRent:DC? ; 查询直流电流FETCh:CURRent? ; 获取缓存的电流值
+1.2345E+00),表示当前电流值(单位为安培A)。MEAS:CURR? (@1)查询通道1的电流)。以下示例使用Python的PyVISA库查询电流,并处理返回值:
pythonimport pyvisa# 1. 创建资源管理器并连接设备rm = pyvisa.ResourceManager()# 根据实际连接方式修改地址(如GPIB、USB、TCPIP)source = rm.open_resource('TCPIP0::192.168.1.100::inst0::INSTR') try: # 2. 发送查询指令 current_value = source.query('MEASure:CURRent?') # 查询电流 # 3. 处理返回值(去除末尾换行符并转换为浮点数) current = float(current_value.strip()) print(f"当前输出电流: {current:.4f} A")except Exception as e: print(f"发生错误: {e}")finally: # 4. 关闭连接 source.close()
MEAS:CURR:UNIT mA?,但多数设备不支持此扩展)。MEAS:CURR? (@2)查询通道2的电流)。-999)。建议添加错误检查逻辑:pythonif current < -100 or current > 100: # 假设合理范围为-100A到100A print("警告:返回值异常,请检查设备状态!")
INITiate和FETCh指令实现连续测量(需设备支持):scpiINITiate:CONTinuous ON ; 启动连续测量FETCh:CURRent? ; 获取最新测量值
| 设备品牌 | 典型查询指令 | 备注 |
|---|---|---|
| Keysight | MEAS:CURR? | 通用指令,支持多通道 |
| ITECH | MEAS:CURR:DC? | 需先设置SENS:FUNC "CURR" |
| Chroma | FETCh:CURRent? | 需先启动测量(INIT:CONT ON) |
| Rigol | MEAS:VOLT?(错误示例) | 需确认手册,部分型号指令不同 |
关键点:始终以设备手册为准,优先测试MEASure:CURRent?指令,若不支持再尝试其他变体。