1、仪器SCPI
================================================================================
name: N52X7B-scpi-commands
description: N5247B或N5227B矢量网络分析仪SCPI指令参考。当用户需要编写N5247B或N5227B自动测试程序、控制N5247B或N5227B仪器、发送SCPI指令、查询网络分析仪测量数据、配置N5247B或N5227B参数、或在任何自动化测试场景中涉及N5247B或N5227B仪器时,必须使用此Skill。此Skill包含完整的SCPI指令语法、参数说明、返回值格式和实际使用示例,确保AI能够准确生成可执行的SCPI命令代码
N52X7B SCPI指令参考手册
本文档提供N5247B或N5227B矢量网络分析仪的常用SCPI指令集合。
1. 通用指令
仪器信息查询
| 指令 | *IDN? |
|---|---|
| 指令参数 | 无 |
| 返回值 | 字符串,格式为 "Keysight,N52X7BXX,XXXXXX,XXXXX" |
| 说明 | 无 |
仪器复位
| 指令 | *RST |
|---|---|
| 指令参数 | 无 |
| 返回值 | 无 |
| 说明 | 无 |
2. 功能指令
触发一次扫描
| 指令 | SENS:SWE:MODE SINGLE |
|---|---|
| 指令参数 | 无 |
| 返回值 | 无 |
| 说明 | 发送此指令后,仪器进入HOLD状态 |
生成S4P文件
| 指令 | MMEM:STOR |
|---|---|
| 指令参数 | string:文件名称,后缀为s4p |
| 返回值 | 无 |
| 说明 | 如:MMEM:STOR 'Mydata.s4p' |
复位
| 指令 | SYST:PRES |
|---|---|
| 指令参数 | 无 |
| 返回值 | 无 |
| 说明 | 无 |
切换校准集
| 指令 | SENS:CORR:CSET:ACT |
|---|---|
| 指令参数 | string:校准集名称 bool:是否将校准集的激励配置应用到当前通道,1为应用,0为不应用 |
| 返回值 | 无 |
| 说明 | 如:SENS:CORR:CSET:ACT 'TX1-RX1', 0 |
加载文件
| 指令 | :MMEMory:LOAD |
|---|---|
| 指令参数 | string:文件路径,可以是.sta、.CSA |
| 返回值 | 无 |
| 说明 | 如::MMEMory:LOAD 'instrument.CSA' |
================================================================================
2、Pyqt
name: pyqt-instrument-control
description: Create PyQt applications for controlling laboratory instruments via VISA. Use this skill whenever users need to build GUIs for instrument control, communicate with test equipment like network analyzers or signal generators, implement SCPI command interfaces, or create automated test systems
PyQt仪器控制技能
用于创建基于PyQt的实验室仪器控制应用程序的技能。
核心功能
该技能可以帮助用户:
- 创建专业的仪器控制GUI界面
- 通过VISA接口与实验室设备通信
- 实现SCPI指令发送和响应处理
- 支持多设备同时控制
- 构建自动化测试系统
实现模式
基础架构
import sys
import pyvisa
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,QPushButton, QLineEdit, QTextEdit, QLabel, QComboBox, QGroupBox,QMessageBox, QStatusBar
)
from PyQt5.QtCore import QThread, pyqtSignal
异步VISA通信
class VisaWorker(QThread):finished = pyqtSignal(bool, str)response = pyqtSignal(str)def __init__(self, rm, resource_name, command=None):super().__init__()self.rm = rmself.resource_name = resource_nameself.command = commandself.instrument = Nonedef run(self):try:self.instrument = self.rm.open_resource(self.resource_name)self.instrument.timeout = 5000if self.command:resp = self.instrument.query(self.command)self.response.emit(resp.strip())self.finished.emit(True, "")except Exception as e:self.finished.emit(False, str(e))
主窗口布局
主界面采用左右布局——左侧垂直排列两台仪器的控制模块(包含设备地址选择、连接/断开按钮、设备ID查询以及复位、预设等特殊操作),右侧则包含整个软件的业务控制功能(如运行测试、校准操作、端口控制)和系统日志显示区域.
最佳实践
- 线程安全:所有VISA操作必须在后台线程中执行
- 错误处理:完善的异常捕获和用户反馈机制
- 资源管理:确保设备连接正确关闭
- 状态同步:UI状态与设备实际状态保持一致
- 日志记录:记录所有指令和响应便于调试
依赖安装
pip install pyqt5 pyvisa pyvisa-py
pip install pyvisa
示例输出
创建的应用程序将包含:
- 设备地址选择下拉框
- 连接/断开按钮
- 设备状态指示器
- SCPI指令输入框
- 响应显示区域
- 多设备并行控制面板
使用提示:当用户需要控制实验室仪器、构建测试自动化系统或创建仪器控制GUI时,使用此技能。支持N5247B、PEU32、示波器、电源供应器、信号发生器等各类设备。
