LabVIEW 环境下TSP与SCPI 指令对比分析

张开发
2026/4/10 7:28:40 15 分钟阅读

分享文章

LabVIEW 环境下TSP与SCPI 指令对比分析
TSPTest Script Processor是泰克吉时利面向高端自动化测试系统推出的仪器端嵌入式脚本处理引擎基于 Lua 语法支持本地逻辑运算、多模块协同与后台运行SCPIStandard Commands for Programmable Instruments是行业通用的文本式可编程仪器指令集以标准化、跨平台为核心特点。在LabVIEW控制Keithley 3700A/3706系列开关万用表场景中TSP为原生、唯一、高性能控制方式SCPI不被该系列硬件支持无法直接使用二者在运行架构、通信机制、执行效率、编程模型、系统集成性上存在本质差异直接决定自动化测试系统的速度、精度与可靠性。详细专业对比1. 指令架构与运行位置TSP仪器内置 MCU 脚本处理器指令与脚本下载至仪器内存运行具备独立运算、循环、判断、触发、时序控制能力。运行时无需上位机持续干预实现真正意义上的分布式测试。SCPI纯文本指令运行位置在上位机仪器仅作为执行端无任何逻辑处理能力。必须依靠上位机LabVIEW逐条下发、等待响应、解析结果。2. LabVIEW 中的实现方式TSP使用官方 ke37xx 专用驱动 VI图形化配置无需手写指令支持字符串脚本拼接直接下发一段 TSP 脚本至仪器支持脚本存储、后台扫描、异步触发、事件响应多通道扫描、通道模式、高速测量均由 TSP 原生实现。SCPI依赖 VISA 节点手动拼接字符串指令*IDN?, :MEAS:VOLT?需自行处理同步、超时、错误捕获、数据解析无高级触发、无后台运行、无本地逻辑3700A/3706不支持SCPI无法使用。3. 通信机制与执行效率TSP一次握手批量执行减少总线交互多通道扫描速度提升550倍触发延迟可控制在微秒级适合高速数据采集、多通道巡检、自动化产线。SCPI指令 - 响应 一对一交互总线开销巨大多通道场景下延迟明显、速度受限触发延迟高一般为毫秒级适合低速、单通道、通用仪器控制。4. 脚本与逻辑能力TSP支持变量、数组、循环、条件、函数、定时器支持数字 I/O 触发、后台扫描、事件同步支持 TSP-Link 多机组网、同步测量可实现脱离 PC 的全自动测试序列。SCPI无任何逻辑能力仅执行单条指令无循环、无判断、无变量、无存储所有逻辑必须在上位机LabVIEW实现。5. 硬件兼容性TSP专属指令集支持3700A / 3706 / 3706A2600B 系列源表4200A 半导体分析仪通用仪器不支持。SCPI全行业通用万用表、电源、电子负载、示波器、数据采集卡等。吉时利 3700A/3706不支持。6. 系统稳定性与抗干扰TSP上位机仅负责启动与读取结果通信量极小抗干扰强系统更稳定。SCPI频繁通信易受总线延迟、干扰、丢包影响复杂系统易超时、崩溃。7. 工程开发成本TSP初期需学习脚本语法但系统搭建简洁、维护简单、扩展性极强。SCPI入门简单但复杂系统需编写大量解析、同步、异常处理代码。总结吉时利3700A/3706在LabVIEW中只能使用TSP不支持SCPI。TSP是高端自动化测试的最优架构速度更快、时序更准、稳定性更强、支持本地逻辑与后台运行。SCPI 通用性强但不具备 TSP 的分布式运行能力无法满足高速多通道测量需求。工程应用建议3700A/3706系统100%使用TSP 专用驱动通用仪器使用 SCPI混合系统TSP 负责高速测量SCPI 负责辅助设备如何将代码从 SCPI 迁移到 TSP简介多年来仪器厂商一直使用 ** 可编程仪器标准命令SCPI** 在测试系统中控制可编程测试测量设备。SCPI 的目标是为测试测量仪器提供统一、一致的指令集。无论厂商或仪器类型如何相同的命令与查询均可控制 SCPI 设备中的对应仪器功能。不过尽管 SCPI 旨在成为通用指令集但随着每一代仪器都会加入新功能这一事实也导致不同仪器之间的 SCPI 指令集存在差异。主动改用另一套指令集之前需要克服的主要障碍是学习新指令但实际上每次更换不同仪器时用户都必须适应新仪器 SCPI 实现上的细微差别因此这种学习成本对用户而言并不陌生。本文旨在介绍吉时利 ** 测试脚本处理器TSP®** 指令集与脚本语言作为 SCPI 及传统仪器编程的替代方案。本文将首先概述 SCPI 与 TSP再通过多个并排示例展示两种指令集之间的等效命令。什么是 TSP吉时利测试脚本处理器TSP是一套灵活的软硬件架构它支持类似 SCPI 的基于消息的编程方式同时在测试时序 / 流程控制、逻辑判断与仪器自主运行能力上提供增强功能。支持 TSP 的仪器可像传统 SCPI 仪器一样工作响应控制器发送的一系列指令。你可以像对其他仪器发送 SCPI 指令一样向支持 TSP 的仪器逐条发送指令。切换到 TSP 后你将获得更高的测试吞吐率、更丰富的 PC 与其他仪器的接口选项以及在需要时实现仪器自主运行的便利。板载测试脚本处理器的使用让 “智能仪器” 成为可能仪器内置判断能力大幅减少与外部控制器的频繁通信。这种测试系统设计方式使智能仪器系统远比基于标准 SCPI 编程的系统高效。随着基于 TSP 的仪器数量不断增加测试系统开发人员将拥有更大灵活性能够在不牺牲测量完整性的前提下构建吞吐率更高的测试系统。TSP 同时包含TSP指令集与TSP脚本语言。TSP 脚本语言基于 Lua 5.0与 TSP 指令集配合使用时可让原本运行在 PC 上的逻辑与子程序在仪器内部执行从而显著减少通信总线上传输的数据量与消息数量。为什么使用 TSP虽然 2600 系列 SMU 等部分仪器只能通过TSP进行接口控制但许多吉时利仪器允许用户在远程控制应用中选择 SCPI 或 TSP。这就引出一个问题如果可以使用SCPI为什么还要用TSP选择 TSP 指令集进行远程操作的主要原因是它能够将大部分流程与计算卸载到仪器端从而提升吞吐率。将计算操作放在通信链路的仪器一侧可以在测试序列中消除总线上大量的读写交互显著减少主机 PC 与测试设备之间的往来通信。这在扫频或大量重复测量时尤其具有优势。仪器无需将整组数据发回 PC 处理而是可以直接处理并返回单个计算结果。TSP 还比 SCPI 指令集提供高得多的灵活性与可扩展性。尽管将部分数据处理与计算卸载到仪器是 TSP 的主要优势之一但使用 TSP 指令集并不强制要求使用该特性。TSP 可以像 SCPI 一样使用由 PC 控制器发送指令数据返回 PC 后由你习惯的软件工具解析。测试设备之间配合越紧密你需要花费在实现变通方案或技巧上的时间就越少因此建议适时尝试 TSP 的更多高级功能并使用 TSP 编写脚本。与 SCPI 指令类似TSP 指令也可由控制器通过 Python、C 等编程语言下发。但与 SCPI 不同的是TSP 提供许多嵌入式功能让你能够扩展测试系统的功能。如果你选择使用 TSP 编写脚本将能够在仪器上加载、存储、运行大量自定义测试函数并将其广播到所有其他已连接仪器同时通过更优的编程实践显著提升通信吞吐率。有关 TSP 脚本及其他高级功能的更多信息请参考应用笔记《如何为测试脚本处理器TSP编写脚本》。SCPI 与 TSP 指令系统对比SCPI 指令格式设计为自描述每条指令都用于描述自身功能。所有 SCPI 指令都有长格式与短格式。长格式更易读字符更多能更清晰地定义指令执行的动作短格式的优势则是发送字符更少效率更高。每个 ASCII 字符的收发都需要传输时间因此字符越少意味着通信时间越短。SCPI 示例plaintext:ROUTe[:CHANnel]:CLOSe()与:ROUT:CLOS()TSP 示例plaintextchannel.close(channelList)使用缩写 SCPI 指令时用户以可读性换取吞吐率。TSP 语言没有短格式指令。但借助脚本指令可以直接在仪器上运行不再有总线通信带来的延迟因此无需缩写指令。即便不使用完整脚本功能也可以为 TSP 指令自定义别名实现比 SCPI 短指令更短的指令串。相比之下基于 PC 的 TSP 控制程序在拥有更高可读性的同时还能实现比 SCPI 更好的吞吐率。SCPI 与 TSP 指令系统的主要区别之一是读数获取方式。在 SCPI 中必须发送:READ? 指令启动测量读数被放入仪器输出队列等待读取。控制程序必须从仪器取回读数才能完成流程。这是因为 SCPI 查询必须遵守消息交换协议在上一条查询结果完全取回之前不能向仪器发送新的查询或指令否则会出现 “查询中断” 错误。这种僵化的消息协议限制了仪器控制方式在某些应用中可能造成问题。TSP 指令集则不存在这种限制。由于 TSP 专为脚本设计读数可存入变量并可在任意时间以任意数量返回。对于万用表与数据采集系统测量执行指令为plaintextREADING dmm.measure.read()对于源表SMU则为plaintextREADING smu.measure.read()两种情况下测量结果都存入变量READING。除非需要否则不必将测量结果返回控制器如需返回使用print(READING) 指令即可。READING 变量可在 TSP 脚本内部用于其他操作例如限值判断、数学运算或作为整体测试策略的一部分。这正是 TSP 功能强大之处。SCPI 仪器模型SCPI 仪器模型将仪器功能划分为多个 SCPI 子系统。某些子系统仅在特定类型仪器上可用。例如ROUTe 子系统仅在具有切换功能或前后端子的设备上可用。指令子系统通常分为以下类别CALCulate数学表达式、限值测试、统计CALibration校准配置与控制DIGital数字 I/O 控制DISPlay仪器显示控制INITiate启动触发模型、启用 / 禁用连续触发FORMat总线读数传输格式OUTPut源输出控制与设置ROUTe前 / 后端子与通道切换控制SCRipt宏或仪器配置脚本控制SENSe测量功能配置与控制SOURceSMU 与电源的电流 / 电压源配置STATus状态寄存器控制SYSTem密码、蜂鸣器、时间等系统设置TRACe缓存数据存储配置与控制TRIGger触发模型配置与触发操作TSP 指令分类TSP 指令集是一组用于控制仪器的预定义函数与属性其使用方式与 SCPI 仪器的 SCPI 指令类似。与 SCPI 一样TSP 指令也可分类并非所有分类适用于所有仪器。例如 SMU 指令仅源表可用。主要分类包括蜂鸣器、位操作、缓存、通道、延时、数字 I/O、显示、DMM、错误队列、事件日志、退出、文件、格式、GPIB、LAN、本地节点、操作完成、打印、打印缓存、复位、扫描、脚本、串口、插槽、SMU、状态、定时器、触发、用户字符串、等待完成等。相比 SCPI 子系统TSP 的分类列表更长其中许多分类提供了 SCPI 不具备的功能。TSP 相对于 SCPI 的一个优势是对仪器流程包括底层流程的精细化控制而 SCPI 仅开放仪器高层功能。分类数量多也源于更直观的组织结构。例如 SCPI 的SYSTem 类别对应 TSP 中的蜂鸣器、插槽、LAN、错误队列、事件日志、GPIB 等多个独立分类。通用公共指令公共指令具有相同的通用含义与仪器无关用于复位、等待、状态等操作始终以星号* 开头。尽管这些指令与 IEEE 488.2 定义基本相同但兼容 TSP 的仪器不一定严格遵循该标准。在 SCPI 中可使用分号组合多条指令plaintext*RST; *CLS;*ESE 32; *OPC?公共指令也可用于仅支持 TSP 或处于 TSP 模式的仪器例如发送*IDN? 仍会返回 ID 字符串。但公共指令不能用于TSP脚本内部。如何从 SCPI 切换到 TSP示例从 SCPI 切换到 TSP 只需替换等效指令虽然看起来复杂但与学习不同型号仪器的 SCPI 差异并无本质区别。DAQ6510 示例本例配置基础扫描通道 101~109 测量直流电压1 个电网周期自动量程4.5 位分辨率扫描次数 10。TSP 可将多条通道设置合并为单条指令而 SCPI 必须逐条设置。2450 SMU 示例本例使用 2450 SourceMeter 进行太阳能电池 I‑V 扫描电压从 0V 到 0.55V共 56 步测量电流存入默认缓存最后返回增量缓存。更进一步可以结合 TSP 完整脚本能力让仪器本地处理数据而不是由 PC 端如 Excel远程处理。仪器可计算关键数据点显示在前面板或返回外部计算机。下面是典型 TSP 脚本结构Lualuanum 56reset()smu.measure.func smu.FUNC_DC_CURRENTsmu.source.func smu.FUNC_DC_VOLTAGEsmu.measure.terminals smu.TERMINALS_FRONTsmu.measure.sense smu.SENSE_4WIREsmu.measure.autorange smu.ONsmu.measure.nplc 1smu.source.highc smu.OFFsmu.source.range 2smu.source.readback smu.ONsmu.source.ilimit.level 1smu.source.sweeplinear(SolarCell,0, 0.55, num, 0.1)trigger.model.initiate()waitcomplete()voltage defbuffer1.sourcevaluescurrent defbuffer1isc current[1]mincurr current[1]imax current[1]voc voltage[1]vmax voltage[1]*current[1]pmax voltage[1]*current[1]for i 1, numdoprint(voltage[i], current[i],voltage[i]*current[i])if (voltage[i]*current[i] pmax) thenpmax voltage[i]*current[i]imax current[i]vmax voltage[i]endif math.abs(current[i]) math.abs(mincurr) thenvoc voltage[i]endendpmax math.abs(pmax)imax math.abs(imax)display.changescreen(display.SCREEN_USER_SWIPE)display.settext(display.TEXT1,string.format(Pmax %.4fW, pmax))display.settext(display.TEXT2,string.format(Isc %.4fA, Voc %.2fV, isc, voc))结论无论你是将 TSP 指令集作为 SCPI 的替代方案还是将完整 TSP 语言用作强大的脚本工具TSP 都有助于提升测试吞吐率并增强仪器整体功能。TSP 相比 SCPI 具有诸多优势包括一次返回多个读数、更高吞吐率、更佳可读性等。灵活性是 TSP 指令集的核心优势允许用户根据具体需求定制使用方式。TSP 可以像 SCPI 一样由控制器 PC 运行也可编写在仪器本地运行的脚本或管理大规模联网仪器系统。深入学习 TSP 脚本能让兼容 TSP 的仪器发挥最大性能。

更多文章