0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从Python到TSP:快速上手MP5000自动化测试系统

泰克科技 来源:泰克科技 2025-11-07 11:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

验证工程师、生产测试工程师和系统集成商经常负责开发自动化测试设备(ATE)系统,该系统被广泛应用于各种半导体器件的测试,如晶体管二极管MOSFETASIC等。

自动化测试有助于识别缺陷、验证器件性能并确保元件质量——尤其是在半导体、航空航天和国防等对可靠性要求极高的行业中。

MP5000系列是Tektronix推出的模块化ATE系统,目前配备有直流电源DC Power Supply)和源测量单元(SMU)模块。这些模块可自由组合,以满足各种测试应用需求。与Keithley 26xx系列源测量单元(SMU)类似,MP5000系列主机与模块支持 TSP(Test Script Processor)命令集。

TSP是一种灵活的软硬件架构,允许基于消息的编程。它类似于SCPI,但增加了更强的控制能力,用于测试顺序/流程控制、逻辑决策以及仪器的自主运行。启用TSP的仪器可以像传统的SCPI仪器一样运行,通过响应由PC发送的一系列命令完成控制。

在本指南中,我们将介绍以下内容:

1. 熟悉仪器的TSP命令集

2. 如何进行命令序列化

3. 构建测试流程

4. 将测试集成到您的测试环境中

学习TSP命令

在实现MP5000系列自动化之前,首先要熟悉仪器及其TSP命令集

TSP命令集是一组预定义的函数与属性,用于控制仪器操作。它们的功能类似于某些仪器中使用的SCPI命令。与SCPI一样,TSP命令也可分为多个类别,但并非所有类别都适用于所有仪器。以下示例展示了传统SCPI命令与TSP命令在语法上的区别(以2461型SMU为例):

SCPI示例 TSP示例
*RST reset()
SOURce: FUNCtion VOLTage smu. source. func = smu. FUNC_DC_VOLTAGE

用于控制MP5000系列的TSP命令可在《MP5000系列编程手册》中找到。MP5000系列的命令结构要求用户在命令中明确指定目标仪器在MP5103主机中的槽位(slot)和通道(channel)

TSP MSMU60-2示例

reset()

slot[1]. smu[2]. source. func = slot[1]. smu[2]. FUNC _ DC _ VOLTAGE

这些命令可以通过别名(aliasing)进行缩写,以提高速度与可读性。别名是一个包含命令表结构中部分路径的变量。通过创建别名,可以根据应用需求简化并自定义TSP命令。

别名示例

gateSMU = slot[1].smu[2]

gateSMU. source. func = gateSMU. FUNC _ DC _ VOLTAGE

命令顺序化

自动化新的MP5000模块化精密测试系统的第一步,是通过将一系列TSP命令按顺序组合,来创建一个简单的测试程序。这可以通过任何程序或语言逐条发送TSP命令来实现,方式与使用SCPI命令类似。常用的编程语言包括PythonC#

首先,需要与仪器建立通信连接。这可以通过VISA实现,如下Python示例所示:

import pyvisa

rm = pyvisa.ResourceManager()

inst = rm. open _ resource ('TCPIP0 :: 192. 168. 0. 2 :: hislip0 :: INSTR')

接下来,发送必要的命令以配置测试设置。在设置完参数后,可以开启仪器输出,并通过编程逻辑实现所需的测试行为。

下面的Python示例展示了如何向MP5000 MSMU60-2发送TSP命令以执行一个简单的电流扫描(Current Sweep):

inst.write('reset()')

#SourceSettings

inst.write('slot[1].smu[2].source.func = slot[1]. smu[2]. FUNC_DC_CURRENT')

inst.write('slot[1].smu[2].source.rangei = 1000e-3')

inst.write('slot[1].smu[2].source.leveli = 0')

inst.write('slot[1].smu[2].source.limitv = 6')

#MeasureSettings

inst.write('slot[1].smu[2].measure.rangev = 6')

inst.write('slot[1].smu[2].measure.rangei = 1000e-3')

inst.write('slot[1].smu[2].measure.nplc = 1')

inst.write('slot[1].smu[2].measure.autorangei = 1')

#SenseMode

inst.write('slot[1].smu[2].sense = slot[1]. smu[2]. SENSE _ 2WIRE')

#Calculatestop current / (number of sweep points -1)

delta=300e-3/ (31-1)

#TurnOutput On

inst.write('slot[1].smu[2].source.output = 1')

inst.write('reset()')

#foreach sweep point, calculate the source level and then take an iv

Measurement

For j inrange(1, 31):

inst.write('slot[1].smu[2].source.leveli ='str((j-1) * delta))

inst.write('slot[1].smu[2].measure.iv(slot[1].smu[2].defbuffer1,

slot[1].smu[2].defbuffer2)')

#TurnOutput Off

inst.write('slot[1].smu[2].source.output = 1')

对于希望在编程中进一步抽象化TSP命令或需要使用多种仪器的用户而言,驱动程序能显著简化代码编写过程。Tektronix为MP5000提供了Python驱动程序IVI驱动程序,这些驱动程序可在任意IDE或代码编辑器(如Visual Studio Code)中使用。


Tektronix Python驱动库:tm_devices

tm_devices是Tektronix提供的设备管理包,包含大量命令与函数,可帮助用户轻松通过Python自动化控制Tektronix各类仪器。它支持代码自动补全功能,使具有不同软件经验水平的工程师都能轻松实现测试自动化。安装非常简单,可通过Python的包管理系统pip完成:

pip install tm_devices

以下为使用tm_devices Python驱动自动化控制MP5000 MPSU50-2ST的示例:

From typing importcast, TYPE_CHECKING

From tm_devices import DeviceManager

From tm_devices.drivers import MP5103

If TYPE_CHECKING:

From tm_devices.commands import PSU50STCommands

With DeviceManager(verbose=True) as device _ manager:

# Add a mainframe to the device manager and access its commands.

mainframe: MP5103 =device_manager.add_mf("0.0.0.0")

# Some examples demonstrating the usage of mainframe level commands.

mf_model=mainframe.commands.localnode.model

value=mainframe.commands.eventlog.count

# Get access to the psu module command object available in third slot of

the mainframe.

modular_psu=cast("PSU50STCommands",

mainframe.get_module_commands_psu(slot=3))

# Some examples demonstrating the usage of module level commands.

# Get the psu model and version

psu_model=modular_psu.model

psu_version=modular_psu.version

modular_psu.firmware.verify()

# Some examples demonstrating the usage of channel level commands.

# Set the measurement aperture in seconds

modular_psu.psu[1].measure.count=5

# Enable the source output

modular_psu.psu[2].source.output=1

# Set the offset value used for voltage measurements

rel_value=modular_psu.psu[1].measure.rel.levelv

# Create a reference to the default buffer

my_buffer=modular_psu.psu[1].defbuffer1

# Read the value in the specified reading buffer

# Measure the voltage on channel 1 of the PSU

voltage_value=modular_psu.psu[1].measure.v()

构建测试

在使用MP5000进行测试开发时,有两种选择:

传统测试开发—— 由PC软件控制测试执行;

完全利用TSP—— 同时作为命令集和编程语言,通过编写TSP脚本实现。

脚本是TSP的核心功能之一,它允许用户在无需外部计算机处理的情况下,直接自动控制仪器,类似于嵌入式设备的脚本执行方式。TSP脚本可完成多种复杂任务,例如:根据最近一次测量动态调整源输出值;在多台仪器间同步触发扫描;或执行简单任务,如对缓冲区读数应用数学公式。通过脚本,仪器成为一个功能强大的“边缘计算解决方案”,可即时做出决策,减少通信开销并简化数据分析。

756dd546-bb80-11f0-8c8f-92fbcf53809c.png

图1:传统PC测试开发与在仪器上运行的TSP脚本的可视化对比

TSP脚本可使用文本编辑器编写,也可通过Tektronix提供的TSP Toolkit(Visual Studio Code扩展)实现。该扩展为开发者提供了:

语法高亮

内联命令提示与自动补全

完整调试器

其他丰富功能,显著提升TSP脚本开发体验。

TSP脚本可以保存到MP5000系列仪器中在本地运行,也可以通过TSP Toolkit终端以SocketsVISA连接方式从外部运行。

75c28ea6-bb80-11f0-8c8f-92fbcf53809c.png

图2: 在TSP Toolkit终端中运行的TSP脚本、函数调用及命令

关于TSP脚本的重要规则

每个脚本必须具有唯一名称,且名称不能以数字开头

脚本名称不能包含空格

脚本名称必须保持唯一。
若加载一个与现有脚本同名的新脚本,系统将生成错误事件信息。
用户必须在创建同名新脚本之前删除原有脚本。

若对现有脚本进行修改并以新名称保存,则原始脚本仍会以旧名称保留在仪器中。

用户可将脚本保存到仪器的非易失性存储器中。
将脚本保存到非易失性存储器可确保仪器在断电后不会丢失脚本。


以下是一个简单的TSP脚本示例

使用MP5000 MSMU60-2模块执行一个基本的电流扫描(Current Sweep):

reset()

-- Source Settings

slot[1].smu[2].source.func=slot[1].smu[2].FUNC_DC_CURRENT

slot[1].smu[2].source.rangei=1000e-3

slot[1].smu[2].source.leveli=0

slot[1].smu[2].source.limitv=6

-- Measure Settings

slot[1].smu[2].measure.rangev=6

slot[1].smu[2].measure.rangei=1000e-3

slot[1].smu[2].measure.nplc=1

slot[1].smu[2].measure.autorangei=1

--Sense Mode

slot[1].smu[2].sense=slot[1].smu[2].SENSE_2WIRE

--Calculate stop current / (number of sweep points -1)

localdelta=300e-3/ (31-1)

--Turn Output On

slot[1].smu[2].source.output=1

--for each sweep point, calculate the source level and then take an iv

Measurement

forj=1, 31 , 1do

slot[1].smu[2].source.leveli= ((j-1) *delta)

slot[1].smu[2].measure.iv(slot[1].smu[2].defbuffer1,

slot[1].smu[2].defbuffer2)

end

TSP命令可以组合在一起,并与其他编程逻辑结合,创建一个函数(function)

这类函数即称为脚本(script),仪器可将其解释为一个单独的TSP命令来执行。

将测试集成到测试环境中

可以使用Python或其他编程语言来调用TSP脚本。这种能力意味着用户可以复用部分或全部现有的编程代码,无需完全重构代码库,同时利用TSP提供的更高吞吐量、更好的同步性与触发控制。TSP脚本使用TSP Toolkit编写和调试非常方便,而测试框架的其余部分可通过相应的VS Code扩展轻松编辑,以提升开发效率。

一个加载到仪器内存中的TSP脚本可以通过一行Python代码执行:

import pyvisa

rm = pyvisa.ResourceManager()

inst = rm.open_resource('TCPIP0::INSTR')

inst.write('SimpleIVTest()')

另一个需要考虑的方面是如何从仪器中获取数据。用户可以使用TSP命令直接在TSP Toolkit终端中打印缓冲数据:

--for each sweep point, calculate the source level, take an iv measurement, and then print the values to the terminal

print("Current Voltage")

for j = 1, 31 , 1 do

slot[1].smu[2].source.leveli = 0 + ((j-1) * delta)

slot[1].smu[2].measure.iv(slot[1].smu[2].defbuffer1,

slot[1].smu[2].defbuffer2)

print(slot[1].smu[2].defbuffer1[j],slot[1].smu[2].defbuffer2[j])

end

这些命令同样可以在Python中执行,以实现相同的功能。

#foreach sweep point, calculate the source level, take an iv measurement, and then print the values to the terminal

print("Current Voltage")

for j in range(1, 31):

inst.write('slot[1].smu[2].source.leveli =' str((j-1) * delta))

inst.write('slot[1].smu[2].measure.iv(slot[1].smu[2].defbuffer1,

slot[1].smu[2].defbuffer2)')

inst.query('print(slot[1].smu[2].defbuffer1[j],slot[1].smu[2].defbuffer2[j])')

|结论|

MP5000模块化精密测试系统(MP5000 Modular Precision Test System)结合TSP脚本的灵活性驱动程序支持,为工程师提供了一个功能强大且可扩展的平台,用于自动化测试开发。通过学习TSP命令结构、编排命令序列、构建可复用脚本,并将其集成到现有测试环境中,用户可以:

优化测试流程;

减少通信开销;

实现更快、更可靠的测试结果。

无论是利用Python驱动实现简洁控制,还是全面采用嵌入式TSP脚本实现高效率执行,MP5000都能帮助工程师构建高效、灵活、并面向未来的自动化测试解决方案,以支持广泛的半导体电子器件验证需求。

我们提供专业的测量洞见信息,旨在帮助您提高绩效以及将各种可能性转化为现实。

泰克设计和制造能够帮助您测试和测量各种解决方案,从而突破复杂性的层层壁垒,加快您的全局创新步伐。我们携手共进,一定能够帮助各级工程师更方便、更快速、更准确地创造和实现技术进步。

我们隶属于锐联特(Ralliant)公司。锐联特在精密技术领域拥有值得信赖的测试与测量(Test and Measurement)、传感器与安全系统(Sensors and Safety Systems)等行业标杆品牌,汇聚全球精英团队,共同护航客户关键应用,携手缔造未来科技图景。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Tektronix
    +关注

    关注

    1

    文章

    61

    浏览量

    29768
  • python
    +关注

    关注

    57

    文章

    4856

    浏览量

    89548
  • TSP
    TSP
    +关注

    关注

    1

    文章

    26

    浏览量

    17394
  • 自动化测试系统

    关注

    0

    文章

    21

    浏览量

    9086
  • 泰克科技
    +关注

    关注

    2

    文章

    216

    浏览量

    20465

原文标题:从Python到TSP:快速上手MP5000自动化测试系统

文章出处:【微信号:泰克科技,微信公众号:泰克科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    泰克MP5000系列的TSP Toolkit I-V脚本生成功能

    。这一全新功能(当前为Beta测试版本),允许您为MP5000系列模块精密测试系统中的每个SMU或PSU模块配置多种输出的偏置与扫描操作,
    的头像 发表于 11-24 13:53 2763次阅读
    泰克<b class='flag-5'>MP5000</b>系列的<b class='flag-5'>TSP</b> Toolkit I-V脚本生成功能

    构建高效自动化测试系统:盛铂科技功率计的程控与集成之道

    提供基准的SPM4240射频微波功率表,灵活分布的SCP4000系列功率计探头,再到专攻复杂信号的SPP5000脉冲功率计,盛铂科技的全系列功率计产品都充分考虑到了自动化
    的头像 发表于 11-10 15:03 141次阅读
    构建高效<b class='flag-5'>自动化</b><b class='flag-5'>测试</b><b class='flag-5'>系统</b>:盛铂科技功率计的程控与集成之道

    设计落地,音圈执行器如何适配你的自动化需求?​

    设计落地,音圈执行器如何适配你的自动化需求?​-速程精密 不少企业搞自动化升级时,都会遇到同一个困惑:“明明选了口碑不错的传动部件,怎么用起来总觉得‘水土不服’?” 其实问题往往出
    的头像 发表于 10-29 15:32 160次阅读

    泰克MP5000系列模块精密测试系统, 重新定义自动化测试

    这款首创系统为验证与生产环境带来无可比拟的灵活性、通道密度及自动化水平 _____ 在2025年9月份,泰克公司正式发布 MP5000 系列模块精密
    的头像 发表于 10-27 17:27 1677次阅读

    测试小白3分钟上手,零代码自动化测试平台,15分钟搭建自动化测试方案

    还在为不懂代码、搭建测试方案耗时久而发愁?ATECLOUD 零代码自动化测试平台,专为自动化测试量身打造,小白3 分钟就能轻松
    的头像 发表于 09-22 17:52 603次阅读
    <b class='flag-5'>测试</b>小白3分钟<b class='flag-5'>上手</b>,零代码<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>平台,15分钟搭建<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>方案

    重磅发布 | 泰克(Tektronix)推出全新7系列DPO示波器与MP5000系列模块精密测试

    重磅新品发布2025年9月16日,俄勒冈州比弗顿时间今天是泰克科技(Tektronix)发展史上的里程碑时刻。我们正式发布两项突破性成果——全新7系列DPO示波器与MP5000系列模块精密测试
    的头像 发表于 09-19 17:17 1124次阅读
    重磅发布 | 泰克(Tektronix)推出全新7系列DPO示波器与<b class='flag-5'>MP5000</b>系列模块<b class='flag-5'>化</b>精密<b class='flag-5'>测试</b>

    泰克科技推出全新7系列DPO示波器与MP5000系列模块精密测试系统

    今天是泰克科技(Tektronix)发展史上的里程碑时刻。我们正式发布两项突破性成果——全新7系列DPO示波器与MP5000系列模块精密测试系统,它们将重新定义
    的头像 发表于 09-17 09:13 1808次阅读

    电源模块的短路保护如何通过自动化测试软件完成测试

    搭建 自动化测试软件运行于特定测试系统架构之上。以国产测试平台ATECLOUD电源模块进行重复
    的头像 发表于 09-03 19:10 553次阅读
    电源模块的短路保护如何通过<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>软件完成<b class='flag-5'>测试</b>

    EasyGo TestSim:新能源电力系统自动化测试的利器

    工程文件,并启用服务器通讯,以便与 EasyGo TestSim 进行通讯。测试经过自动化扫频 4.5 小时,完成了 1Hz 10000Hz 扰动的等效阻抗计算,并实时生成了相关
    发表于 09-03 18:35

    如何用Renix实现网络测试自动化: 配置分离多厂商设备支持

    文章主要介绍如何使用Renix高层封装API编写自动化脚本的基础知识和技巧。只要您熟悉测试流程,不需要很强的代码能力就可以顺利编写自动化测试。 本教程将以实践为导向,引导您逐步掌握Re
    的头像 发表于 08-27 15:21 462次阅读
    如何用Renix实现网络<b class='flag-5'>测试</b><b class='flag-5'>自动化</b>: <b class='flag-5'>从</b>配置分离<b class='flag-5'>到</b>多厂商设备支持

    干货分享 | TSMaster MBD模块全解析:模型搭建自动化测试的完整实践

    在汽车电子MBD开发中,TSMasterMBD模块深度集成于TSMaster先进的总线分析、仿真与测试平台,旨在为工程师提供一套模型自动编译、代码集成
    的头像 发表于 08-22 20:04 1882次阅读
    干货分享 | TSMaster MBD模块全解析:<b class='flag-5'>从</b>模型搭建<b class='flag-5'>到</b><b class='flag-5'>自动化</b><b class='flag-5'>测试</b>的完整实践

    UTP系统通过ModBus协议对温度传感器的自动化测试介绍

    一、UTP系统简介 宏控UTP协同自动化测试系统(简称UTP测试系统)是一款通用的
    的头像 发表于 06-07 15:12 621次阅读
    UTP<b class='flag-5'>系统</b>通过ModBus协议对温度传感器的<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>介绍

    “制造”“智造”:三维扫描自动化智能检测系统

    CASAIM自动化智能检测系统,凭借前沿技术与场景化解决方案,为制造业客户提供设计生产的全生命周期质量保障。
    的头像 发表于 03-12 13:21 556次阅读
    <b class='flag-5'>从</b>“制造”<b class='flag-5'>到</b>“智造”:三维扫描<b class='flag-5'>自动化</b>智能检测<b class='flag-5'>系统</b>

    通用自动化测试软件 - TAE

    INTEWORK-TAE(Test Automation Executor) 是一款通用的测试用例自动化执行框架,用于汽车电子自动化测试,可支持仿真( MIL/SIL/HIL)、故障注
    的头像 发表于 01-02 13:42 1286次阅读
    通用<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>软件 - TAE

    串口屏自动化测试

    严谨而高效的自动化测试方案显得尤为重要。以下是对串口屏自动化测试策略的深度解析,旨在通过高质量的测试设计,严格控制产品设计质量,推动产业升级
    的头像 发表于 12-27 17:17 1741次阅读