工程师必备!一个高效Python硬核技巧
■ 引言
许多行业的工程师都使用自动化来扩展其测试仪器的功能,而大多是选择免费的编程语言——Python来完成。作为适用于自动化的主要编程语言,Python具备许多显著优势:
■ 多功能性
■ 易于教学
■ 代码可读性
■ 广泛可用的知识库和模块
自动化包含两种主要使用情形:
• 模拟人类行为以自动化前面板并节省时间的例程,例如自动化合规性测试。每次需要测试新零件时,工程师不会呆坐在示波器前,添加相应的测量值并记下结果,而是开发一个脚本来完成所有工作并显示最终结果。
• 扩展仪器功能的用途,例如:测量记录、验证或质量保证。自动化操作支持工程师执行复杂的测试,且能够规避测试过程中的许多固有缺点。操作人员无需设置示波器和手动记录结果,且每次都可以以相同的方式进行测试。
本技术简介将涵盖 使用Python进行编程所需的内容 ,包括编程接口的基础知识以及下载和运行方法的示例。
1
编程接口的定义
编程接口(PI)是两个计算系统之间的一个或多个边界,可以通过编程来执行特定行为。就本文而言,编程接口是运行每台泰克测试设备的计算机和最终用户编写的应用程序之间的桥梁。为了进一步缩小范围,编程接口在此处定义为一组可以远程发送到仪器的命令,仪器会处理这些命令并执行相应的任务。PI堆栈(图1)显示了从主机控制器到仪器的信息流。最终用户编写的应用程序代码用于定义目标仪器的行为。
最终用户通常用业内流行的开发平台编写代码,如Python、MATLAB、LabVIEW、C++或C#。这些应用程序将使用可编程仪器标准命令(SCPI)格式——大多数测试和测量设备都支持的标准格式——发送数据。SCPI命令通常通过虚拟仪器软件架构(VISA)层发送,VISA层可通过为增强通信协议的鲁棒性(例如错误检查)促进数据传输。在某些情况下,应用程序可能会调用驱动程序,然后驱动程序会向VISA层发送一个或多个SCPI命令。
2
tm_devices驱动程序包的内容
泰克的tm_devices是泰克自行开发的设备管理包,支持用户使用编程语言Python控制和自动化泰克和吉时利产品的测试过程。 使用Python的软件包管理系统pip可快速安装tm_devices。 (文末扫码添加小助手,发送“脚本”两字,即可免费获取!)
Python软件包包含大量命令和功能,可帮助用户轻松地对泰克和吉时利产品进行自动化测试。其可在最流行的Python IDE中使用,且支持代码补全辅助。此外,Python软件包还可以帮助任何水平软件技能的工程师简单轻松地进行编码和测试自动化。
3
环境设置
本节将指导您完成使用tm_ devices进行开发工作的先决条件和安装。 我们特意在Python(venvs)中提供了支持虚拟环境的指令,因为我们相信这样可以帮助您更轻松地管理和维护项目,特别是在使用Python软件包之前,您只是简单地试用了一下的情况下。
3.1
安装与先决条件概述
1. 安装 Python.
a.Python >=3.8
2. PyCharm——PyCharm安装、启动项目和tm_devices安装
3. VSCode——VSCode安装、启动项目和tm_devices安装
3.2
PyCharm社区版(免费)
PyCharm是一款各行各业软件开发人员广泛使用的Python IDE。PyCharm有一个集成的单元测试器,支持用户按文件、类、方法的运行测试,或直接运行文件夹中的所有测试。与大多数现代IDE一样,PyCharm拥有代码补全形式,和基本的文本编辑器相比,可以大大加快开发速度。
接下来,我们将为您介绍PyCharm社区版(免费)的安装过程,然后在IDE中安装tm_devices并设置一个虚拟环境进行开发。
1. 访问 ????
https://www.jetbrains.com/pycharm/
2. 跳过PyCharm专业版,下拉至PyCharm社区版,然后点击下载。
3. 请继续执行默认的安装步骤。无需进行任何特殊操作。
4. 欢迎使用PyCharm!
在PyCharm中创建新项目并设置虚拟环 境
5. 点击“新建项目”。
6. 确认项目路径,确保选择“Virtualenv”。
7. 打开一个终端。如果您的视图底部没有带标签的按钮,请查看以下内容:
8. 在终端提示符出现之前进行检查(venv),确认虚拟环境已设置。
9.从终端安装驱动程序。
键入:pip install tm _ devices
10. 确保终端没有出错!开始使用吧!
3.3
Visual Studio Code
Visual Studio Code是另一款各行各业的软件开发人员都在使用的免费IDE。 其适用于大多数语言,且具有针对大多数语言的扩展包,因此用户能够在此IDE中快捷高效地进行编码。Visual Studio Code可提供IntelliSense。IntelliSense是非常实用的开发工具,有助于代码补全、参数信息以及其他有关对象和类的信息。tm_devices支持对描述对象和类的命令树快速进行代码补全。
扫码参与新品DEMO有礼与促销活动!
4
示例代码
在本节中,我们将逐步介绍一个简单的代码示例,并重点介绍一些有效使用tm_ devices的必要组件。
4.1
导入
这两行对于tm_devices的有效使用至关重要。在第一行中,我们导入DeviceManager。这将处理多个设备类的样板连接和断开。
在第二行中,我们导入一个特定的驱动程序 (在本例中是MSO4B) 。
我们用DeviceManager设置一个上下文管理器:
然后,当我们同时使用设备管理器和驱动程序时:
我们可以用与其型式匹配的特定命令集来实例化仪器。输入您仪器的ip地址(其他VISA地址也可)即可。
补全以上四行代码后,我们就可以开始为MSO4B编写特定的自动化代码了!
4.2
代码片段
接下来我们来看看几个简单的操作:
将触发类型设置为边沿触发
以下是添加和查询CH1峰-峰值测量值的方法:
如果您想对CH2进行幅值测量:
5
使用IntelliSense/代码补全
IntelliSense——微软的代码补全系统,也是我们在尽可能利用的IDE的一个强大功能。
SCPI命令集是测试和测量设备自动化面临一大障碍。这是一种较为过时的结构,其语法在开发社区中并未得到广泛支持。
我们使用tm_devices所做的是为每个SCPI命令创建一组Python命令。我们可以从现有的命令语法中生成Python代码,避免手动开发驱动程序,并创建现有SCPI用户熟悉的结构。tm_devices还可映射在程序创建期间可能需要特意调试的底层代码。Python命令的结构模仿了SCPI(或在某些吉时利案例中的TSP)命令结构,因此如果您熟悉SCPI,您就知道这些结构。
以下是关于“IntelliSense如何显示先前键入的命令”的所有可用命令示例。
在Scope上的圆点后出现的可滚动列表中,我们可以看到按字母顺序排列的Scope命令类别列表:
选择afg,我们可以看到afg类别列表。
在IntelliSense的帮助下编写的最终命令:
6
文档字符串帮助
编写代码之时,或者查看其他人的代码时,您可以将鼠标悬停在语法的不同部分上,以获得该级别的特定帮助文档。越接近完整的命令语法,其内容就越具体。
根据您的IDE设置,您可以同时查看IntelliSense和文档字符串帮助。
阅读本指南后,您可以了解泰克Python驱动程序包tm_devices的部分优势,接下来便可以开始您的自动化之旅了。通过简单的设置、代码补全和内置帮助,您无需离开IDE就能学习,进而可以加快开发速度,并以更高的信心进行编码。
如果您希望改进软件包,Github repo中有编辑指南。在文档和examples文件夹的软件包内容中突出显示了大量更高级的示例。
7
其他资源
tm_devices·PyPI——软件包驱动程序下载和信息
tm_devices Github——源代码、问题跟踪、编辑
https://github.com/tektronix/tm_devices#documentation ——在线文档
8
故障排除
通常情况下,故障排除的第一步是升级pip:
在您的终端键入:Python.exe -m pip install -upgrade pip
错误: whl看起来像文件名,但文件不存在或此平台不支持whl。
解决方案: 在pip中安装wheel,使其能够识别文件格式。
在您的终端键入:pip install wheel
如果您需要离线安装wheel,您可以遵循与附件A类似的说明,但其需要下载tar.gz格式文件而非.whl文件。
点击阅读原文, 下载完整版操作指南 !
欲知更多产品和应用详情,您还可以通过如下方式联系我们:
邮箱:china.mktg@tektronix.com
网址:tek.com.cn
电话:400-820-5835 (周一至周五9:00-17:00)
将您的灵感变为现实
我们提供专业的测量洞见信息,旨在帮助您提高绩效以及将各种可能性转化为现实。
泰克设计和制造能够帮助您测试和测量各种解决方案,从而突破复杂性的层层壁垒,加快您的全局创新步伐。我们携手共进,一定能够帮助各级工程师更方便、更快速、更准确地创造和实现技术进步。
扫码添加“泰克工程师小助手”
立享1对1专属服务!
点击 “阅读原文” 下载完整版指南!