银河麒麟V11连接示波器需匹配接口、安装PyVISA及pyvisa-py、启用USB-TMC模式;USB直连优先,GPIB需手动编译linux-gpib;验证用rm.list_resources(),通信前须在示波器设置USB为TMC模式。

在银河麒麟工业操作系统中连接示波器等电子测量仪器,需确保硬件接口匹配、驱动可用、通信协议正确配置,否则设备识别失败或数据无法读取。
确认硬件连接方式与物理接口
先判断示波器是否支持USB-TMC、LAN(LXI)、GPIB或RS-232接口——银河麒麟V11默认内置USB-TMC和Socket通信支持,但【不预装GPIB内核模块与NI-VISA兼容层】,若使用GPIB转接卡(如NI GPIB-USB-HS),需手动编译安装linux-gpib驱动并加载gpib_core、ni_usb_bix等模块。
USB直连最简:将示波器通过Type-A to Type-B线接入主机USB口,系统通常自动识别为usbmisc类设备;若无反应,执行dmesg | tail -20查看是否报“device descriptor read/64, error -71”,该错误多因USB线缆屏蔽不良或供电不足,换用带磁环的主动式USB线可解决。
安装并验证仪器通信基础工具
打开终端,执行以下命令安装核心依赖:
sudo apt update && sudo apt install python3-pip libusb-1.0-0-dev libudev-dev
接着安装PyVISA及后端驱动:
pip3 install pyvisa pyvisa-py
这一步必须完成,否则后续Python脚本调用rm.list_resources()将返回空列表;【注意:不要运行pip install pyvisa-py[gpib]】,该扩展依赖系统级libgpib,银河麒麟V11未提供二进制包,强行安装会中断流程。
验证安装效果:运行python3 -c "import pyvisa; rm = pyvisa.ResourceManager(); print(rm.list_resources())",正常应输出类似('USB0::0x1AB1::0x0588::DS1ZA234567890::INSTR',)的地址字符串。
通过Python脚本实现基础通信与波形读取
以鼎阳SDS1204X-E示波器为例(支持USB-TMC):
第一步:新建文件scope_read.py,写入以下内容:
import pyvisa<br>rm = pyvisa.ResourceManager()<br>scope = rm.open_resource("USB0::0x1AB1::0x0588::DS1ZA234567890::INSTR")<br>scope.write("*IDN?")<br>print(scope.read())<br>scope.write(":WAVeform:SOURce CHAN1")<br>scope.write(":WAVeform:FORMat BYTE")<br>scope.write(":WAVeform:DATA?")<br>raw_data = scope.read_raw()[10:] # 跳过头10字节SCPI响应头<br>print(f"采集到{len(raw_data)}字节波形数据")
第二步:赋予执行权限并运行:chmod +x scope_read.py && python3 scope_read.py。
若返回设备型号且输出非零字节数,说明通信链路已通;若卡在scope.read_raw(),大概率是示波器未开启USB-TMC模式——需在示波器前面板按【Utility】→【I/O】→【USB Mode】→选“TMC”,部分型号还需关闭“USB Device”中的“MSC”模式,否则系统会将其识别为U盘而非仪器。











