1MHz~6.3GHz 手持矢量网络分析仪 操作、校准、TDR 功能全教程
在射频研发、天线调试、滤波器量产检测、射频线缆故障排查场景中台式矢量网络分析仪动辄几万、十几万体积庞大不适合外场调试市面廉价简易 VNA 普遍存在动态范围不足、缺少 TDR、校准流程复杂、续航差等痛点。本文全面拆解VNA6 便携式矢量网络分析仪一款 1MHz~6.3GHz 双端口手持 VNA支持 S11 反射、S21 传输、驻波比、史密斯圆图、相频曲线、TDR/DTF 电缆时域测量全金属机身、3.97 寸触屏、32 组校准预设存储搭配完整 OSLT 校准套件兼顾实验室研发、户外天线外场测试、产线批量检测低成本替代台式 VNA。 全文包含硬件参数、机身接口、完整触屏操作、OSLT 标准校准步骤、TDR 使用、固件升级、典型应用场景干货完整可直接上手操作。一、VNA6 产品概述与核心硬件指标1.1 产品简介VNA6 是深圳国商技术推出的双端口便携式矢量网络分析仪测量频段覆盖 1MHz~6.3GHz支持单端口 S11 反射参数、双端口 S11/S21 传输参数测量。 适用被测件短波 / ISM/WiFi/BLE/GPS 天线、LC 滤波器、声表滤波器、放大器、衰减器、射频同轴电缆、功分器、耦合器、双工器。 特色功能内置 TDR/DTF 时域反射功能可测量电缆长度、定位线缆断点、阻抗不连续点支持多格式波形显示、4 组标记、32 组校准方案存储Type-C 充电 数据传输 固件升级三合一。1.2 核心产品亮点宽频覆盖1MHz~6.3GHz覆盖绝大多数民用射频通信频段优秀动态范围S21 最高 65dBS11 最高 50dB弱损耗 / 高隔离器件测量精度高双端口标准 OSLT 校准配套全套 SMA 开路 / 短路 / 负载校准件测量误差极低多视图显示对数幅值、线性幅值、相位、驻波比 VSWR、史密斯圆图、TDR 时域六种视图TDR 时域故障定位检测射频电缆长度、断点、接头阻抗异常大容量存储32 组校准参数预设不同频段测试方案一键调取大屏便携机身3.97 寸 800×480 高亮 IPS 触摸屏全铝合金屏蔽外壳续航与拓展供电5000mAh 锂电池续航≥4.5h自带 USB 5V/1A 对外供电多语言系统中文 / 英文 / 俄文三语言界面户外强光可视便捷升级Type-C 串口固件升级无需专用编程器。1.3 完整技术参数表表格参数项VNA6 技术规格频率测量范围1MHz ~ 6.3GHz最大射频输出功率10dBm频率稳定度频偏±1ppmS21 动态范围3GHz65dB3GHz60dBS11 动态范围3GHz50dB3GHz40dB扫描点数101~1001 点自定义测量速度200 点 / 秒同步显示迹线4 条独立迹线标记点数量4 个可自定义频点标记校准存储槽位32 组 OSLT 校准方案显示屏3.97 寸 IPS800×480电阻触摸屏电池规格3.7V 5000mAh 锂电池续航≥4.5h接口Type-C 充电 / 数据额外 USB 5V 输出双 SMA 射频端口 PORT1/PORT2射频接口SMA 母座PORT1 RX、PORT2 TX整机尺寸130×75×22mm外壳铝合金全金属屏蔽工作温度0℃ ~ 45℃配套配件SMA 开路 / 短路 / 负载校准件、RG405 SMA 延长线缆1.4 VNA 基础原理科普矢量网络分析仪用于测量射频器件反射S11与传输S21特性S11反射系数PORT1 端口信号反射量用于天线驻波、器件输入匹配、阻抗分析史密斯圆图、VSWR 驻波比均基于 S11S21传输系数PORT1→PORT2 信号传输损耗 / 增益用于滤波器插损、放大器增益、线缆衰减测试双端口测量必须完成 OSLT 四步校准开路 Open / 短路 Short / 负载 Load / 直通 Through消除线缆、接头引入的测量误差TDR 时域模式将频域数据通过 IFFT 转换为时域曲线直观定位电缆断点、接头阻抗突变、线缆长度。二、产品外观与接口说明整机正面布局物理按键MENU 菜单键、Fn 功能键射频端口PORT1RX 接收、PORT2TX 发射最大 10dBm 输出侧边接口Type-C 充电 / 数据 / 升级口、电源开关 ON/OFF、电源指示灯拓展功能机身自带 USB 5V 输出口可给外设供电。使用规范单端口天线匹配测试仅使用 PORT1完成 OSL 三校准双端口滤波器 / 线缆插损测试PORT1 接 DUT 输出PORT2 接 DUT 输入完整 OSLT 四步校准禁止向 PORT1 输入超过 10dBm 外部大功率射频信号避免烧毁前端接收电路。三、整机用户界面全解析3.1 主界面区域划分主界面是测量核心分区功能一目了然①起始 / 终止频率当前扫频带宽范围②校准状态标识O 开路、S 短路、L 负载、T 直通全部显示代表四步校准完成C数字为校准预设存储编号*代表临时校准未保存③扫描点数当前 101~1001 扫频点数④暂停按钮一键冻结波形方便读取标记数值⑤视图切换区对数幅值、相频、驻波比、史密斯、TDR 时域快速切换⑥标记信息栏4 组标记频点、幅值 / 相位数据橙色为当前选中标记支持拖动移动⑦电量显示实时电池电压红色低电量提醒⑧左右刻度标尺上下滑动调整幅值 / 相位显示范围。3.2 侧边总菜单MENU 按键呼出按下机身 MENU 物理键调出右侧隐藏主菜单四大核心模块扫描频率、扫宽、点数、频域 / TDR 切换校准开路 / 短路 / 负载 / 直通 OSLT 校准入口设备亮度、语言、屏幕翻转、设备固件信息预设32 组校准方案保存 / 调取。3.3 数字键盘点击任意频率数值框弹出数字输入键盘支持数字、小数点、MHz/GHz 单位快速切换输入完成点击 OK 确认退格键删除输入内容。 示例输入 2400MHz 直接输入2400M输入 5.8GHz 输入5.8G。四、核心菜单功能详细操作教程4.1 扫描菜单设置扫频测量区间菜单入口MENU → 扫描 可配置参数中心设置扫频中心频率如 2440MHz 中心测蓝牙 WiFi扫宽设置频率跨度起始 / 终止自定义完整起止频段点数101/201/501/1001 可选点数越高曲线越平滑扫描速度变慢模式切换频域 S 参数 / TDR/DTF 时域测量一键切换。实操建议宽带粗测101 点扫描速度快滤波器窄带精准测试1001 点细节更清晰。4.2 校准菜单OSLT 四步标准校准重中之重4.2.1 校准前准备必备配件SMA 开路件、短路件、50Ω 负载、直通转接头、测试线缆。每次更换测试线缆、更换测试频段、更换被测件类型必须重新校准否则测量误差极大。4.2.2 完整校准步骤设置扫频区间先在扫描菜单设定需要测量的起止频率开路校准 Open将开路校准件接在 PORT1或测试线缆末端点击【开路】等待 2~3 秒按钮变绿、界面出现标识 O短路校准 Short更换短路校准件点击【短路】完成后界面出现 S负载校准 Load更换 50Ω 匹配负载点击【负载】界面出现 L 以上三步完成单端口 S11 校准可直接测天线驻波直通校准 Through双端口 S21 必做使用直通转接头连接 PORT1 与 PORT2点击【直通】界面出现 T O/S/L/T 全部显示即完整双端口校准完成。4.2.3 校准合格判定标准校准完成后自检验证PORT1 接负载S11 汇聚史密斯圆中心幅值接近 0dBPORT1/2 直通S21 曲线贴近 0dB插损测量误差极小开路 / 短路状态 S11 位于史密斯圆左右两端。4.3 设备系统菜单设置MENU → 设备包含 5 项功能屏幕亮度拖动滑块调节 0~100% 亮度户外强光调高语言切换中文 / English/Русский俄文一键切换关于本机查看设备型号、固件版本、频率范围、电池电压、设备序列号翻转屏幕屏幕 180° 倒置适配不同摆放场景预设校准存储32 组存储槽可保存当前校准 频率配置下次测试一键调取产线标准化测试必备。4.4 标记功能操作4 组 Mark 频点测量点击界面标记栏展开标记控制面板标记开关单独开启 / 关闭 Mark1~Mark4频点定位点击数字框输入指定频率标记自动跳转左右微调按键左右移动标记读取曲线任意点数值视图格式切换切换当前窗口显示 S11/S21、对数幅值 / 相位 / VSWR / 史密斯圆图刻度调节上下拖动标尺放大 / 缩小曲线观测范围。五、TDR 时域电缆检测功能使用教程VNA6 内置 DTF 时域反射用于射频线缆故障排查在【扫描】菜单切换至 TDR 时域模式完成 OSLT 基础校准PORT1 连接待测同轴电缆电缆末端开路时域曲线出现峰值位置对应电缆长度突变尖峰代表接头松动、线缆破损、阻抗不连续 适用场景机房射频馈线故障定位、车载天线线缆长度检测、长线缆断点排查。六、固件升级完整流程设备关机按住 Fn 功能键不松手打开电源开关进入 Loader 升级模式Type-C 数据线连接电脑与仪器电脑识别 CH340 串口打开配套 VNA6 升级上位机扫描串口、选择对应 COM 口加载固件文件点击下载进度完成设备自动重启升级。七、典型应用场景实操方案场景 1WiFi / 蓝牙天线驻波匹配测试S11频段设置 2400~2500MHzPORT1 接天线完成 OSL 三校准切换史密斯圆图 / VSWR 驻波视图添加标记 2440MHz、2480MHz 读取驻波比VSWR1.5 为匹配良好。场景 2滤波器插损、阻带抑制测试S21设置滤波器工作频段PORT2 输出→滤波器输入滤波器输出→PORT1完整 OSLT 四步校准切换对数幅值视图标记读取通带插损、阻带衰减。场景 3射频线缆衰减测试先直通校准得到基准 0dB 曲线串入待测线缆读取 S21 差值即为线缆损耗TDR 模式快速测量线缆实际长度、排查接头故障。场景 4产线标准化批量检测调试好对应产品频段与校准进入预设菜单保存至槽位每次测试直接调取预设无需重复校准提升批量检测效率。八、使用避坑注意事项输入功率限制PORT1 最大耐受 10dBm大功率射频信号必须外接衰减器否则烧毁硬件校准不可省略更换线缆、频段必须重新 OSLT 校准否则插损、驻波数据偏差巨大6.3GHz 上限不可超出频段测量高频段动态范围会下降电池使用低电量及时充电长期不用每月补电可 Type-C 边充边测TDR 使用前提必须完成基础 OSL 校准时域曲线才具备参考价值金属外壳保护请勿拆除铝合金外壳屏蔽层防止外界电磁干扰影响测量精度。适用场景天线调试Wi-Fi、蓝牙、GPS、5G 天线的驻波比与阻抗匹配检测射频器件检测滤波器、功分器、耦合器、放大器、衰减器、射频线缆户外现场运维基站天线、馈线巡检物联网设备现场测试科研教学高校射频实验室、电子竞赛、便携式实验测量工具核心优势九、总结VNA6 作为千元级便携式矢量网络分析仪覆盖 1MHz~6.3GHz 全主流射频频段同时具备 S11/S21 双参数测量、TDR 时域故障检测、标准 OSLT 全校准、32 组预设存储完美解决实验室研发、户外天线调试、产线批量检测、线缆维修等场景需求。 对比进口台式 VNA 拥有极高性价比整机小巧便携、操作全触屏可视化配套完整校准套件零基础射频工程师也可快速上手是无线硬件开发、射频维修、高校教学的高性价比测试仪器。拓展开发方向延伸阅读设备通过 Type-C 虚拟串口通信支持上位机数据读取、自动化测试脚本开发后续可基于 Python/ C# 开发自动化产线测试程序实现波形数据导出、批量参数判定、CSV 数据存储。通信接口VNA6 通过 Type-C 虚拟串口 CH340 通信波特率固定 115200功能说明自动扫描串口连接仪器、下发 SCPI 指令配置扫频、读取频域 S 参数、4 组标记数据依赖安装bash运行pip install pyserial matplotlib配套文章使用直接复制到 CSDN 文末附录带代码高亮附带使用说明。完整 Python 源码python运行import serial import serial.tools.list_ports import struct import time import matplotlib.pyplot as plt class VNA6_Instrument: def __init__(self): self.ser None self.baud 115200 # 自动扫描串口并连接设备 def auto_connect(self) - bool: port_list serial.tools.list_ports.comports() if not port_list: print(未识别到串口请检查Type-C线、设备开机、驱动CH340已安装) return False for port in port_list: try: self.ser serial.Serial(port.device, self.baud, timeout0.8) print(f连接成功{port.device}) return True except Exception as e: continue print(所有串口连接失败) return False # 下发SCPI指令读取返回字符串 def send_cmd(self, cmd: str) - str: if self.ser is None or not self.ser.is_open: return tx (cmd \r\n).encode(ascii) self.ser.write(tx) time.sleep(0.06) resp self.ser.read_all().decode(utf-8, errorsignore).strip() return resp # 设置扫频范围start_MHz 起始stop_MHz终止points点数(101~1001) def set_sweep(self, start_MHz: float, stop_MHz: float, points: int 1001): self.send_cmd(fSWEep:START {start_MHz}) self.send_cmd(fSWEep:STOP {stop_MHz}) self.send_cmd(fSWEep:POINts {points}) print(f已配置扫频{start_MHz} ~ {stop_MHz} MHz点数 {points}) # 读取S21幅值曲线dB def get_s21_data(self): self.send_cmd(DATA:S21?) raw self.ser.read(8192) return self.parse_s_param(raw) # 读取S11幅值曲线dB def get_s11_data(self): self.send_cmd(DATA:S11?) raw self.ser.read(8192) return self.parse_s_param(raw) # 二进制帧解析函数输出频率数组、幅值dB数组 def parse_s_param(self, raw_bytes: bytes): # 帧格式#D[长度] 浮点频点数组 浮点幅值数组 \r\n if not raw_bytes.startswith(b#): print(帧头校验失败数据无效) return [], [] ptr 1 D int(raw_bytes[ptr:ptr1]) ptr 1 data_len int(raw_bytes[ptr:ptrD]) ptr D data_buf raw_bytes[ptr:ptrdata_len-2] # 剔除末尾\r\n float_cnt len(data_buf) // 4 float_data struct.unpack( f * float_cnt, data_buf) half float_cnt // 2 freq_list [float_data[i] for i in range(half)] # MHz db_list [float_data[i] for i in range(half, float_cnt)] return freq_list, db_list # 读取4组标记数据 Mark1~Mark4 def get_markers(self): mark_data [] for i in range(1, 5): resp self.send_cmd(fMARK{i}?) if resp: parts resp.split(,) freq float(parts[0]) db_val float(parts[1]) mark_data.append({mark:i, freq_MHz:freq, dB:db_val}) return mark_data # 关闭串口、释放资源 def close(self): if self.ser and self.ser.is_open: self.ser.close() print(串口已关闭) if __name__ __main__: vna VNA6_Instrument() # 1. 连接仪器 if not vna.auto_connect(): exit(1) # 2. 配置扫频范围 2400~2500MHz WiFi频段1001点 vna.set_sweep(start_MHz2400, stop_MHz2500, points1001) time.sleep(0.5) # 3. 读取S11、S21曲线 freq_arr, s11_db vna.get_s11_data() _, s21_db vna.get_s21_data() markers vna.get_markers() print(f采集点数{len(freq_arr)}) print( 标记点数据 ) for m in markers: print(fMark{m[mark]}{m[freq_MHz]:.2f} MHz , {m[dB]:.2f} dB) # 4. Matplotlib 实时绘图 plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False fig, ax plt.subplots(figsize(12, 6)) ax.plot(freq_arr, s11_db, labelS11 反射(dB), color#ff3333, linewidth1.2) ax.plot(freq_arr, s21_db, labelS21 传输(dB), color#0066ff, linewidth1.2) # 绘制标记点 for m in markers: ax.scatter(m[freq_MHz], m[dB], s40, colororange, zorder5) ax.text(m[freq_MHz], m[dB]0.8, fM{m[mark]}, fontsize9) ax.set_xlabel(频率 MHz) ax.set_ylabel(幅值 dB) ax.set_title(VNA6 S11/S21 扫频曲线) ax.legend() ax.grid(True, alpha0.3) plt.show() # 循环持续采集波形按CtrlC终止 try: print(\n持续采集波形CtrlC退出循环) while True: freq_arr, s21_db vna.get_s21_data() max_loss min(s21_db) print(f当前最大插损{max_loss:.2f} dB) time.sleep(1) except KeyboardInterrupt: print(\n手动停止采集) finally: vna.close()二、代码配套使用说明粘贴到 CSDN 文章2.1 前置准备电脑安装 CH340 串口驱动否则识别不到设备 COM 口VNA6 正常开机Type-C 直连电脑不要使用拓展坞设备完成 OSLT 校准后再运行代码数据才具备测量精度波特率固定 115200无需修改。2.2 核心功能介绍auto_connect()自动枚举全部 COM 串口无需手动填写串口号新手友好set_sweep()远程下发扫频起止频率、扫描点数替代触屏手动设置get_s11_data() / get_s21_data()读取频域幅值曲线内置二进制帧解析parse_s_param()解析仪器下发的二进制数据流拆分频率、dB 幅值get_markers()读取 4 个标记点的频点与对应损耗 / 反射值Matplotlib 绘图自动绘制 S11/S21 双曲线标记点橙色高亮显示。2.3 典型测试场景修改示例天线 S11 驻波测试433MHz ISM 频段python运行vna.set_sweep(start_MHz400, stop_MHz460, points501)GPS 滤波器测试1550~1600MHzpython运行vna.set_sweep(start_MHz1550, stop_MHz1600, points1001)2.4 拓展二次开发思路写进文章增加深度bash运行pip install pyserial matplotlib完整 Python 源码python运行import serial import serial.tools.list_ports import struct import time import matplotlib.pyplot as plt class VNA6_Instrument: def __init__(self): self.ser None self.baud 115200 # 自动扫描串口并连接设备 def auto_connect(self) - bool: port_list serial.tools.list_ports.comports() if not port_list: print(未识别到串口请检查Type-C线、设备开机、驱动CH340已安装) return False for port in port_list: try: self.ser serial.Serial(port.device, self.baud, timeout0.8) print(f连接成功{port.device}) return True except Exception as e: continue print(所有串口连接失败) return False # 下发SCPI指令读取返回字符串 def send_cmd(self, cmd: str) - str: if self.ser is None or not self.ser.is_open: return tx (cmd \r\n).encode(ascii) self.ser.write(tx) time.sleep(0.06) resp self.ser.read_all().decode(utf-8, errorsignore).strip() return resp # 设置扫频范围start_MHz 起始stop_MHz终止points点数(101~1001) def set_sweep(self, start_MHz: float, stop_MHz: float, points: int 1001): self.send_cmd(fSWEep:START {start_MHz}) self.send_cmd(fSWEep:STOP {stop_MHz}) self.send_cmd(fSWEep:POINts {points}) print(f已配置扫频{start_MHz} ~ {stop_MHz} MHz点数 {points}) # 读取S21幅值曲线dB def get_s21_data(self): self.send_cmd(DATA:S21?) raw self.ser.read(8192) return self.parse_s_param(raw) # 读取S11幅值曲线dB def get_s11_data(self): self.send_cmd(DATA:S11?) raw self.ser.read(8192) return self.parse_s_param(raw) # 二进制帧解析函数输出频率数组、幅值dB数组 def parse_s_param(self, raw_bytes: bytes): # 帧格式#D[长度] 浮点频点数组 浮点幅值数组 \r\n if not raw_bytes.startswith(b#): print(帧头校验失败数据无效) return [], [] ptr 1 D int(raw_bytes[ptr:ptr1]) ptr 1 data_len int(raw_bytes[ptr:ptrD]) ptr D data_buf raw_bytes[ptr:ptrdata_len-2] # 剔除末尾\r\n float_cnt len(data_buf) // 4 float_data struct.unpack( f * float_cnt, data_buf) half float_cnt // 2 freq_list [float_data[i] for i in range(half)] # MHz db_list [float_data[i] for i in range(half, float_cnt)] return freq_list, db_list # 读取4组标记数据 Mark1~Mark4 def get_markers(self): mark_data [] for i in range(1, 5): resp self.send_cmd(fMARK{i}?) if resp: parts resp.split(,) freq float(parts[0]) db_val float(parts[1]) mark_data.append({mark:i, freq_MHz:freq, dB:db_val}) return mark_data # 关闭串口、释放资源 def close(self): if self.ser and self.ser.is_open: self.ser.close() print(串口已关闭) if __name__ __main__: vna VNA6_Instrument() # 1. 连接仪器 if not vna.auto_connect(): exit(1) # 2. 配置扫频范围 2400~2500MHz WiFi频段1001点 vna.set_sweep(start_MHz2400, stop_MHz2500, points1001) time.sleep(0.5) # 3. 读取S11、S21曲线 freq_arr, s11_db vna.get_s11_data() _, s21_db vna.get_s21_data() markers vna.get_markers() print(f采集点数{len(freq_arr)}) print( 标记点数据 ) for m in markers: print(fMark{m[mark]}{m[freq_MHz]:.2f} MHz , {m[dB]:.2f} dB) # 4. Matplotlib 实时绘图 plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False fig, ax plt.subplots(figsize(12, 6)) ax.plot(freq_arr, s11_db, labelS11 反射(dB), color#ff3333, linewidth1.2) ax.plot(freq_arr, s21_db, labelS21 传输(dB), color#0066ff, linewidth1.2) # 绘制标记点 for m in markers: ax.scatter(m[freq_MHz], m[dB], s40, colororange, zorder5) ax.text(m[freq_MHz], m[dB]0.8, fM{m[mark]}, fontsize9) ax.set_xlabel(频率 MHz) ax.set_ylabel(幅值 dB) ax.set_title(VNA6 S11/S21 扫频曲线) ax.legend() ax.grid(True, alpha0.3) plt.show() # 循环持续采集波形按CtrlC终止 try: print(\n持续采集波形CtrlC退出循环) while True: freq_arr, s21_db vna.get_s21_data() max_loss min(s21_db) print(f当前最大插损{max_loss:.2f} dB) time.sleep(1) except KeyboardInterrupt: print(\n手动停止采集) finally: vna.close()二、代码配套使用说明粘贴到 CSDN 文章2.1 前置准备2.2 核心功能介绍2.3 典型测试场景修改示例python运行vna.set_sweep(start_MHz400, stop_MHz460, points501)python运行vna.set_sweep(start_MHz1550, stop_MHz1600, points1001)2.4 拓展二次开发思路写进文章增加深度数据导出 CSV将freq_arr、s11_db、s21_db写入 csv 文件Excel 离线分析滤波器插损、驻波产线自动化判定设置上下限阈值自动判断器件 OK/NG 并打印日志TDR 时域数据读取新增DATA:TDR?指令解析电缆时域曲线定位线缆断点搭配 GUI使用 PyQt5 制作上位机可视化界面替代官方配套软件LabVIEW 对接复用本文 SCPI 指令逻辑仅替换串口通信 API。Python 串口读取 VNA6 矢量网络分析仪波形完整 Demo前置说明通信接口VNA6 通过 Type-C 虚拟串口 CH340 通信波特率固定 115200功能说明自动扫描串口连接仪器、下发 SCPI 指令配置扫频、读取频域 S 参数、4 组标记数据依赖安装配套文章使用直接复制到 CSDN 文末附录带代码高亮附带使用说明。电脑安装 CH340 串口驱动否则识别不到设备 COM 口VNA6 正常开机Type-C 直连电脑不要使用拓展坞设备完成 OSLT 校准后再运行代码数据才具备测量精度波特率固定 115200无需修改。auto_connect()自动枚举全部 COM 串口无需手动填写串口号新手友好set_sweep()远程下发扫频起止频率、扫描点数替代触屏手动设置get_s11_data() / get_s21_data()读取频域幅值曲线内置二进制帧解析parse_s_param()解析仪器下发的二进制数据流拆分频率、dB 幅值get_markers()读取 4 个标记点的频点与对应损耗 / 反射值Matplotlib 绘图自动绘制 S11/S21 双曲线标记点橙色高亮显示。天线 S11 驻波测试433MHz ISM 频段GPS 滤波器测试1550~1600MHz数据导出 CSV将freq_arr、s11_db、s21_db写入 csv 文件Excel 离线分析滤波器插损、驻波产线自动化判定设置上下限阈值自动判断器件 OK/NG 并打印日志TDR 时域数据读取新增DATA:TDR?指令解析电缆时域曲线定位线缆断点搭配 GUI使用 PyQt5 制作上位机可视化界面替代官方配套软件LabVIEW 对接复用本文 SCPI 指令逻辑仅替换串口通信 API。