一、核心结论
Keysight N79xxA / N89xxA 双向直流电源完全支持 TCP/IP(LAN 以太网)传输列表模式 LIST 运行记录文件,TCPIP VISA 是大数据日志(DLOG/ELOG)传输的最优总线,SCPI 指令与 GPIB/USB/ 串口完全通用,传输带宽远高于 GPIB、RS232. 可传输两类文件:
自动 / 手动保存至仪器闪存(INT)、U 盘(USB)的 .dlog、.elog 日志文件;
LIST 运行内存缓存内原始采样、抖动、事件数据流(无需落盘即可直传 PC)。
二、TCPIP 资源寻址格式
标准 VISA TCPIP 地址写法:
plaintext
TCPIP::仪器IP地址::5025::INSTR
5025 是 Keysight 仪器标准 SCPI LAN 端口,不可修改。
三、两种 TCPIP 文件传输方式
方式 1:读取仪器内已保存的 LIST 日志文件(最稳定,推荐大批量)
仪器先自动 / 手动把 LIST 记录存成文件(INT:LOGxxx 或 USB:LOGxxx),再用MEMory:DATA?通过 TCPIP 整块下载文件到上位机。
完整 SCPI 流程
scpi
*CLS
! 1.配置LIST自动保存文件
MEM:DLOG:MED INT
MEM:DLOG:DIR "LIST_LOG"
MEM:DLOG:FORM CSV
MEM:DLOG:AUTO 1
MEM:ELOG:AUTO 1
SOUR:LIST:END:OUT OFF
! 2.加载并运行列表
SOUR:LIST:VOLT:DATA 5.10.15
SOUR:LIST:CURR:DATA 2.2.2
SOUR:LIST:TIME:DATA 1.1.1
OUTP ON
SOUR:LIST:RUN
*WAI
! 3.列出生成的日志文件名(确认文件已生成)
MEM:CAT? "INT:LOGLIST_LOG"
! 4.TCPIP下载DLOG采样记录文件
FORM:DATA ASC ! 文本CSV用ASCII;BIN二进制切换FORM:DATA BIN
FORM:BORD SWAP
MEM:DATA? "INT:LOGLIST_LOGxxx.dlog"
! 下载ELOG事件记录文件
MEM:DATA? "INT:LOGLIST_LOGxxx.elog"
方式 2:直接读取内存缓存数据流(无需生成磁盘文件)
LIST 跑完后,不写入仪器存储,直接通过 TCPIP 读取缓冲区原始采样、抖动、事件数据,上位机本地存文件:
scpi
*CLS
SOUR:LIST:DLOG:CLE
SOUR:LIST:TIM:CLE
SOUR:LIST:TIM:CAPT ON
SOUR:LIST:END:OUT OFF
! 运行列表
OUTP ON;SOUR:LIST:RUN;*WAI
! TCPIP直读DLOG V/I采样数组
FORM:DATA BIN
SOUR:LIST:DLOG:DATA? 0.MAX
! 直读LIST步进抖动原始数据
SOUR:LIST:TIM:JIT:DATA? 0.MAX
! 直读ELOG事件缓存
MEM:ELOG:DATA? 0.MAX
四、TCPIP 大数据传输优化要点
二进制块传输提速 超大点数 DLOG 优先二进制模式,TCPIP 吞吐可达数十 MB/s:
scpi
FORM:DATA BIN
FORM:BORD SWAP ! 匹配PC端浮点字节序
超时参数放大 Python/LabVIEW 打开 VISA 句柄时拉长超时,防止大文件中途断开:
python
运行
inst = rm.open_resource("TCPIP::192.168.1.20::5025::INSTR", timeout=180000) # 3分钟超时
超大文件分块读取 百万级采样点一次性0.MAX可能占用巨大内存,分段拉取:
scpi
! 每次读取50000个采样点
SOUR:LIST:DLOG:DATA? 0.50000
SOUR:LIST:DLOG:DATA? 50000.50000
对比总线速率参考 | 总线 | 典型速度 | 适用场景 | |---|---|---| | TCPIP 100M LAN | 10~30 MB/s | 超大 DLOG、长期测试日志 | | USB 高速 | ~40 MB/s | 本地近距离快速传输 | | GPIB | ~1 MB/s | 小数据、老旧控制柜 | | RS232 串口 | ~14 KB/s | 仅调试极小数据 |
五、USB 存储文件同样可 TCPIP 下载
日志存在 U 盘时,路径替换为 USB 根目录,指令完全通用:
scpi
MEM:DATA? "USB:LOGLIST_LOGrun01.dlog"
六、机型兼容
N79xxA / N89xxA:标配 LAN 网口,TCPIP 文件传输全功能支持;
E36100 BT 小型双向源:新款带 LAN 口,支持MEM:DATA?文件下载;低配仅 USB;
N6705B:自带 LAN,LIST 日志 TCPIP 传输无功能阉割。
七、Python TCPIP 下载文件完整示例
python
运行
import pyvisa
rm = pyvisa.ResourceManager()
# 打开LAN仪器
inst = rm.open_resource("TCPIP::192.168.1.50::5025::INSTR", timeout=180000)
# 切换二进制传输
inst.write("FORM:DATA BIN;FORM:BORD SWAP")
# 下载DLOG二进制文件
file_path = r"INT:LOGLIST_LOGlist_run.dlog"
raw_data = inst.query_binary_values(f'MEM:DATA? "{file_path}"', datatype='f', container=bytes)
# 保存到电脑本地磁盘
with open("local_list_run.dlog", "wb") as f:
f.write(raw_data)
print("文件下载完成,大小字节:", len(raw_data))
inst.close()
八、常见问题
传输中断报错 -410 Query interrupted 原因:缓冲区溢出、超时太短;解决:分块读取、调高 timeout、优先用 TCPIP 而非 GPIB / 串口。
二进制数据解析乱码 严格统一FORM:BORD SWAP/NORMAL字节序,二进制流不可用 readline 字符串方式读取,必须用query_binary_values。
文件读取返回 -256 File missing 确认 LIST:AUTO 开启、列表完整跑完、目录 / 文件名拼写无误。