使用tm_devices和Python简化测试自动化

泰克
2024-12-17
来源:

文章详情广告位-900.jpg


使用tm_devices和Python简化测试自动化

许多行业的工程师都使用自动化来扩展测试仪器的功能。许多工程师选择免费编程语言Python来实现这一目标。Python 有许多显著优势,是自动化领域的绝佳编程语言:

  • 多功能性

  • 易教易学

  • 代码可读性

  • 广泛可用的知识库和模块


自动化主要有两种用途:

  • 模仿人类行为的例程,以实现前面板自动化并节省时间,例如自动化符合性测试。每次需要测试一个新部件时,工程师都要开发一个脚本来完成所有这些工作并显示结果,而不是坐在示波器前,添加适当的测量值并写下结果。

  • 扩展仪器功能的用途,例如:测量记录、验证或质量保证。自动化使工程师能够执行复杂的测试,而不会出现这些测试固有的许多弊端。操作员无需设置范围和手动记录结果,而且每次都能以相同的方式进行测试。


本操作指南将介绍在Python中开始编程控制示波器所需的内容,包括编程接口的基础知识以及如何下载和运行示例。


什么是编程接口?

编程接口(PI)是两个计算系统之间的一个或一组边界,可通过编程执行特定行为。对于我们而言,它是运行泰克每台测试设备的计算机与最终用户编写的应用程序之间的桥梁。


更进一步说,它是一组可远程发送到仪器的命令,然后仪器处理这些命令并执行相应的任务。PI堆栈(图1)显示了从主机控制器到仪器的信息流。最终用户编写的应用代码定义了目标仪器的行为。这通常使用业界流行的开发平台之一来编写,如Python、MATLAB、LabVIEW和C++、或C#。


该应用程序将使用可编程仪器标准命令(SCPI)格式发送数据,这是大多数测试和测量设备都支持的标准。SCPI.命令通常通过虚拟仪器软件架构(VISA)层发送,VISA层通过在通信协议中加入额外的鲁棒性(如错误检查)来促进数据传输。在某些情况下,应用程序可能会调用驱动程序,然后向VISA层发送一条或多条SCPI命令。


图1. 编程接口(PI)堆栈显示了主机控制器和仪器之间的信息流


什么是tm_devices软件包?

tm_devices是泰克公司开发的一个设备管理软件包,其中包含大量命令和功能,可帮助用户使用Python编程语言轻松实现泰克和吉时利产品的自动化测试。它可以在***的Python集成开发环境中使用,并支持代码完成辅助工具。无论是否具有编程经验的工程师,都能使用该软件包简单轻松地进行编码和测试自动化。安装也很简单,使用Python的软件包管理工具pip即可。


设置环境

本节将指导您完成预先设置和安装,为使用tm_devices进行开发工作做好准备。本节还包括支持Python虚拟环境(venvs)的说明,以便使您的这些项目更易于管理和维护,尤其是如果你只是在使用这个软件包之前进行试用。

  • 注:如果您的环境无法直接访问互联网,则必须使用附录中的命令修改您的步骤。如果遇到问题,请随时在github讨论区发帖寻求帮助。


安装和先决条件概述

  1. 安装Python - a. Python≥3.8

  2. PyCharm - PyCharm安装、启动项目和安装tm_devices

  3. 3VSCode - 安装VSCode、 启 动 项 目 和 安 装tm_devices



PyCharm社区(免费)版

PyCharm是一款流行的Python集成开发环境,被各行各业的软件开发人员广泛使用。PyCharm拥有集成单元测试,允许用户按文件、类、方法或文件夹中的所有测试运行测试。与大多数现代集成开发环境一样,它也有代码自动补全功能,与基本的文本编辑器相比,可大大加快开发速度。

我们将介绍如何安装PyCharm社区版(免费),后在集成开发环境中安装tm_devices,并设置虚拟环境进行开发。

1. 转至https://www.jetbrains.com/pycharm/

2. 滚动PyCharm Professional到PyCharm Community Edition,点击下载。


3. 您只需执行默认的安装步骤即可。我们不要求任何特殊的步骤。

4. 欢迎来到PyCharm!



5. 现在,您需要创建一个新项目,并确保设置了虚拟环境。点击“新建项目”。

6. 确认项目路径,确保选择了“Virtualenv”。



7. 打开终端。如果您的视图底部没有标注按钮,请查找该按钮:


8. 通过检查终端提示符前是否有(venv)来确认虚拟环境是否已建立。



9. 从终端安装驱动程序。键入:pip install tm_devices


10. 你的终端应该不会出错了!编程愉快!


Visual Studio代码

Visual Studio Code是另一款广受欢迎的免费集成开发环境,各行各业的软件开发人员都在使用它。它适用于大多数语言,并为大多数语言提供了扩展功能,使在该集成开发环境中编码非常方便高效。


Visual Studio Code提供的智能提示(IntelliSense)是开发过程中非常有用的工具,因为它可以帮助完成代码、参数信息以及有关对象和类的其他信息。非常方便的是,tm_devices支持描述对象和类的命令树的代码自动完成功能。



代码示例

在本节中,我们将逐步介绍一个简单的代码示例,并强调有效使用tm_devices的一些必要组件。


导入模块或库


这两行对于有效使用tm_devices至关重要。在**行中,我们导入了DeviceManager。它将处理多个设备类的模块连接和断开。在第二行中,我们导入一个特定的驱动程序,在本例中是MSO5B。


我们使用设备管理器(Device Manager)设置文本管理器:

我们可以将仪器实例化,并根据其型号设置特定的命令集。只需输入仪器的IP地址(其它VISA地址也可以)。完成这四行后,我们就可以开始为MSO5B编写有意义的特定自动化程序了!


代码片段

让我们来看看几个简单的操作 -将触发器类型设置为Edge



以下是在CH1上添加和查询峰峰值测量的方法:


如果要测量CH2的幅度:


使用智能提示/代码补齐

IntelliSense - 微软对代码自动完成的称呼,是集成开发环境中一项非常强大的功能,我们一直在尽可能地加以利用。测试和测量设备自动化的核心障碍之一是SCPI命令集。


它是一种老套的结构,其语法在开发界未得到广泛支持。

在tm_devices中,我们为每条SCPI命令创建了一组Python命令。这样,我们就可以根据现有的命令语法生成Python代码,从而避免手动开发驱动程序,并创建现有.SCPI.用户熟悉的结构。它还可以映射到在创建程序时可能需要有意调试的低级代码。Python命令的结构模仿SCPI(或在某些情况下,使用吉时利的TSP)命令结构,因此如果您熟悉SCPI,就会熟悉这些命令。


这是IntelliSense显示先前键入的命令,所有可用命令的示例如下:

在scope.后出现的可滚动列表中,我们可以看到按字母顺序排列的命令类别列表:



选择afg,我们就能看到AFG类别目录:



借助IntelliSense编写的最终命令:



文档字符串帮助

在你编写代码或阅读别人的代码时,你可以将鼠标悬停在语法的不同地方,以获取该级别的具体帮助文档。越接近完整的命令语法,帮助文档就越具体。



根据集成开发环境的条件,您可以同时显示IntelliSense和docstring帮助。





通过本指南,您已经了解了Tek的python驱动程序软件包tm_devices的一些优势,可以开始您的自动化之旅了。通过简易设置、代码自动补全和内置帮助,您无需离开集成开发环境就能学习,加快开发时间,并更有信心地编写代码。如果你想改进软件包,Github软件仓库中有贡献指南。文档和示例文件夹中的软件包内容中都有大量更高级的示例。


其它资源

tm_devices - PyPI - 软件包驱动程序下载和信息

tm_devices Github - 源代码、问题跟踪、贡献

tm_devices Github - 在线文档


故障排除

升级pip通常是排除故障的**步:

在终端键入:Python.exe -m pip install -upgrade pip

错误:whl看起来像文件名,但文件不存在,或者.whl不是此平台支持的




解决方案:用Pip安装wheel,使其能识别文件格式。

在终端键入:pip install wheel

如果需要离线安装wheel,可以按照附录A的类似说明进行操作,但需要下载tar.gz文件,而不是.whl文件。


附录A - tm_devices的离线安装

1. 在有互联网的计算机上,使用."下载."功能将软件包和所有依赖项下载到指定路径位置:pip download -- dest <目的地路径>wheel setuptools tm_devices

2. 如果该计算机不支持访问Internet,将文件复制到计算机上,

3. 接下来,按照您使用的集成开发环境的主要指南中的说明进行操作,但将安装命令换成以下命令:pip install --no-index --find-links <新文件路径> tm_devices




咨询热线


文章版权属于泰克所有

分享
下一篇:这是最后一篇
上一篇:这是**篇