菜鸟科技网

泰克示波器命令有哪些常用语法?

  1. 核心概念:什么是 SCPI?
  2. 远程连接方式
  3. 常用命令分类详解
  4. 实用示例
  5. 查找更多命令的方法

核心概念:什么是 SCPI?

SCPI (Standard Commands for Programmable Instruments) 是一种标准的、通用的仪器编程语言,几乎所有主流的示波器、万用表、信号发生器等测试测量设备都支持 SCPI 命令。

泰克示波器命令有哪些常用语法?-图1
(图片来源网络,侵删)
  • 语法结构:SCPI 命令通常由命令头参数组成,用空格隔开。
  • 命令头:通常是英文单词的缩写,表示仪器的功能或子系统。
    • MEASure: 测量
    • ACQuire: 采集
    • DISPlay: 显示
    • CHANnel: 通道
    • TRIGger: 触发
    • VOLTage: 电压
    • TIMebase: 时基
  • 参数:指定具体的设置值,如 ON, OFF, 5V, 1kHz, AUTO 等。
  • 分隔符:命令之间用分号 隔开,可以一次发送多条命令。

示例CHAN1:VOLT 1.0; TRIG:MODE EDGE; ACQ:MODE AVER 这条命令的含义是:

  1. 设置通道1的垂直灵敏度为 1.0V/格。
  2. 设置触发模式为边沿触发。
  3. 设置采集模式为平均模式。

远程连接方式

要发送 SCPI 命令,您需要将计算机与示波器连接起来,主要有两种方式:

a) LAN (以太网) - 推荐方式

这是现代泰克示波器最常用、速度最快的方式。

  1. 硬件连接:用网线将示波器的 LAN 口和您的计算机连接到同一个路由器(或直接交叉连接)。
  2. 设置 IP 地址
    • 在示波器上,按 Utility -> I/O -> Network Setup,设置一个静态 IP 地址(如 168.1.10)或启用 DHCP。
    • 确保您的计算机与示波器在同一个网段。
  3. 软件连接
    • 泰克 OpenChoice Desktop 软件:官方提供的免费软件,可以方便地发送命令、下载波形和数据。
    • Python + pyvisa:非常流行的编程方式,适合自动化测试。
    • LabVIEW / MATLAB:专业测试软件,也支持 VISA 驱动。
    • 任何支持 Socket/TCP 的终端软件:如 PuTTY, Tera Term (需设置为 "Raw" 模式) 或 Telnet 客户端。

b) USB (GPIB 或虚拟 COM 口)

一些较老的型号或特定型号可能支持 USB-GPIB 或 USB 转虚拟 COM 口。

泰克示波器命令有哪些常用语法?-图2
(图片来源网络,侵删)
  1. 硬件连接:用 USB 线连接示波器和电脑。
  2. 安装驱动:安装泰克官方提供的 VISA 驱动。
  3. 识别设备:在计算机的设备管理器中,会看到一个 COM 端口。
  4. 软件连接:使用串口调试助手或任何支持 COM 端口的编程语言(如 Python 的 pyserial)。

常用命令分类详解

以下是按功能分类的常用 SCPI 命令,适用于大多数泰克示波器(如 MDO, MSO, DPO 系列)。

a) 系统与通用命令

命令 描述 示例
*IDN? 识别仪器,返回厂商、型号、序列号等。 *IDN? -> 返回 TEKTRONIX,MDO3024,C010578,FV4.2
*RST 复位示波器到出厂默认设置。 *RST
*CLS 清除所有状态寄存器。 *CLS
SYST:ERR? 查询最后一个错误信息。 SYST:ERR? -> 返回 +0, "No error"
SYST:OPT? 查询已安装的选件。 SYST:OPT?

b) 通道设置

命令 描述 示例
CHAN<n>:DISP ON 显示通道 n<n> 为 1, 2, 3, 4。 CHAN1:DISP ON
CHAN<n>:DISP OFF 隐藏通道 n CHAN2:DISP OFF
CHAN<n>:COUP AC 设置通道 n 耦合为交流。 CHAN1:COUP AC
CHAN<n>:COUP DC 设置通道 n 耦合为直流。 CHAN1:COUP DC
CHAN<n>:PROB <value> 设置通道 n 的探头衰减比。 CHAN1:PROB 10 (表示 10:1 探头)
CHAN<n>:RANG <value> 设置通道 n 的电压范围 (伏特)。 CHAN1:RANG 5.0 (5V/格)
CHAN<n>:OFFS <value> 设置通道 n 的垂直偏移。 CHAN1:OFFS 0.0

c) 时基设置

命令 描述 示例
TIM:MAIN:SCAL <value> 设置主时基的秒/格。 TIM:MAIN:SCAL 1e-6 (1μs/格)
TIM:MAIN:POS <value> 设置主时基的水平位置。 TIM:MAIN:POS 0.0
TIM:MODE MAIN 设置时基模式为主时基。 TIM:MODE MAIN
TIM:MODE ROLL 设置时基模式为滚动模式。 TIM:MODE ROLL

d) 触发设置

命令 描述 示例
TRIG:MODE EDGE 设置触发模式为边沿触发。 TRIG:MODE EDGE
TRIG:EDGE:SOUR CHAN1 设置触发源为通道 1。 TRIG:EDGE:SOUR CHAN2
TRIG:EDGE:SLOPE POS 设置触发边沿为上升沿。 TRIG:EDGE:SLOPE NEG (下降沿)
TRIG:EDGE:LEV <value> 设置触发电平 (伏特)。 TRIG:EDGE:LEV 2.5
TRIG:MODE AUTO 设置触发模式为自动。 TRIG:MODE NORM (正常)
TRIG:MODE SINGLE 设置触发模式为单次。 TRIG:MODE SINGLE

e) 数据采集

命令 描述 示例
ACQ:MODE SAM 设置采集模式为采样。 ACQ:MODE SAM
ACQ:MODE PEAK 设置采集模式为峰值检测。 ACQ:MODE PEAK
ACQ:MODE AVER <count> 设置采集模式为平均,<count> 为平均次数。 ACQ:MODE AVER 16
ACQ:STOP 停止采集。 ACQ:STOP
ACQ:RUN 开始运行采集。 ACQ:RUN

f) 测量

命令 描述 示例
MEAS:ITEM:VPP CHAN1 在通道 1 上测量峰峰值电压。 MEAS:ITEM:VPP CHAN1
MEAS:ITEM:FREQ CHAN1 在通道 1 上测量频率。 MEAS:ITEM:FREQ CHAN1
MEAS:ITEM:PER CHAN1 在通道 1 上测量周期。 MEAS:ITEM:PER CHAN1
MEAS:ITEM:RISE CHAN1 在通道 1 上测量上升时间。 MEAS:ITEM:RISE CHAN1
MEAS:ITEM:MAX CHAN1 在通道 1 上测量最大值。 MEAS:ITEM:MAX CHAN1
MEAS:RES? 查询所有测量结果。 MEAS:RES?

g) 数据记录与波形导出

命令 描述 示例
HEADER OFF 禁止在数据前添加文本头。 HEADER OFF (导出数据时常用)
DATA:SOURCE CHAN1 设置数据源为通道 1。 DATA:SOURCE CHAN1
DATA:ENCdg SRI 设置数据编码为 SRI (二进制)。 DATA:ENCdg SRI
DATA:WIDTH 2 设置数据位宽为 2 字节。 DATA:WIDTH 2
CURVE? 将当前波形数据作为曲线数据发送。 CURVE? (返回一长串二进制或ASCII数据)
SAVE:WAVEFORM CHAN1, 'C:\temp\ch1.wfm' 将通道 1 的波形保存到示波器硬盘。 (需要示波器有硬盘)

实用示例

示例 1:使用 Python (pyvisa) 进行自动化测量

import pyvisa
# 1. 创建资源管理器
rm = pyvisa.ResourceManager()
# 2. 打开与示波器的连接 (IP地址根据实际情况修改)
# 'TCPIP0::192.168.1.10::inst0::INSTR' 是VISA资源名格式
scope = rm.open_resource('TCPIP0::192.168.1.10::inst0::INSTR')
# 3. 发送SCPI命令进行配置
scope.write('*RST')                  # 复位示波器
scope.write('CHAN1:DISP ON')         # 显示通道1
scope.write('CHAN1:COUP DC')         # 通道1直流耦合
scope.write('CHAN1:RANG 1.0')        # 通道1设置为1V/格
scope.write('CHAN1:PROB 1')          # 通道1探头衰减比1:1
scope.write('TIM:MAIN:SCAL 1e-6')    # 时基设置为1μs/格
scope.write('TRIG:MODE EDGE')        # 边沿触发
scope.write('TRIG:EDGE:SOUR CHAN1')  # 触发源为通道1
scope.write('TRIG:EDGE:LEV 0.5')     # 触发电平0.5V
scope.write('ACQ:MODE AVER 16')     # 平均模式,平均16次
# 4. 开始采集
scope.write('ACQ:RUN')
# 5. 等待采集稳定
import time
time.sleep(2) 
# 6. 查询测量结果
vpp = scope.query('MEAS:ITEM:VPP? CHAN1')
freq = scope.query('MEAS:ITEM:FREQ? CHAN1')
print(f"峰峰值电压: {vpp} V")
print(f"频率: {freq} Hz")
# 7. 读取波形数据
scope.write('DATA:SOURCE CHAN1')
scope.write('HEADER OFF')
scope.write('DATA:ENCdg SRI') # 使用SRI二进制格式
scope.write('DATA:WIDTH 2')
# CURVE? 会返回二进制数据,前面有2字节描述符
curve_data = scope.query_binary_values('CURVE?', datatype='h', is_big_endian=False, container=list)
# 8. 关闭连接
scope.close()
rm.close()

示例 2:使用 OpenChoice Desktop 发送命令

  1. 打开 OpenChoice Desktop 软件。
  2. 连接到您的示波器。
  3. 在 "Command" 窗口中,可以直接输入 SCPI 命令,然后点击 "Send"。
  4. 输入 CHAN1:VOLT 2.0; TRIG:MODE AUTO; ACQ:RUN,点击 "Send",示波器会立即执行这些操作。

查找更多命令的方法

  1. 示波器内置帮助:这是最直接的方法。

    • 在示波器上按 Help 按钮。
    • 选择 "SCPI Reference" 或 "命令参考"。
    • 您可以在这里浏览所有命令的语法和描述。
  2. 官方编程手册

    • 访问泰克官网。
    • 在支持页面搜索您的示波器型号。
    • 下载 "Programmer Manual" 或 "SCPI Programmer Manual",这是最权威、最完整的命令参考。
  3. 在线资源

    泰克示波器命令有哪些常用语法?-图3
    (图片来源网络,侵删)
    • 泰克知识库和论坛。
    • 第三方技术博客和论坛。

希望这份详细的指南能帮助您更好地使用泰克示波器的命令!如果您有特定型号或特定功能的需求,可以提供更多信息,我可以给出更精确的命令。

分享:
扫描分享到社交APP
上一篇
下一篇