Sam*_*uel 9 .net python com driver visa
我是一名实验性物理学家,是Python的狂热爱好者.
我发现它非常适合数据分析和脚本编写,我也可以用它来连接实验室仪器(网络分析仪,示波器,信号分析仪和信号发生器......).我认为如果存在一个包含仪器驱动程序的漂亮库,Python将成为我所在领域中非常重要的MATLAB竞争者.
到目前为止,我一直在使用几种策略直接从我的IPython会话中连接它们:
使用pyVisa库很好,适用于大多数设备,但有点低级,需要额外的编程层来向用户公开有用的功能.
我最近能够使用pythondotnet(不是IronPython,缺少NumPy/Matplotlib ...库)使用IVI-COM或.NET驱动程序.这个解决方案显然是最令人满意的解决方案,因为IVI驱动程序已经处于相当高的水平,并且它们通常由供应商提供,来自不同供应商的仪器可以互换.
我的第一个问题是一个相当技术性的问题:我随处可读COM对象集成在.NET框架中,并且可以在.NET中直接使用COM对象.就我而言,我能够通过导入comtypes模块(请参阅使用COM对象http://code.activestate.com/recipes/578089-using-iviscope-instrument-driver-with-python/),并dotnet与clr来自pythondotnet ,但我根本不明白如何使用该clr模块访问这些COM对象.有人可以解释COM和.NET之间的联系吗?
另外,我总是有点困惑,我怎么知道,当我有一个DLL文件,如果它包含一个.NET模块,如果我可以用4.0版本的.NET打开它(我是一个完整的这些框架问题的初学者和正确文档的链接会非常好吗?
第二个问题是,更一般地说,没有一个模块可以统一收集不同仪器的大量驱动程序吗?在我看来,我们必须成千上万的人在处理同样的问题.
我最近落在模块lantz http://lantz.glugcen.dc.uba.ar/.不幸的是,这是在Python 3.0中,而我仍在使用Python 2.7(用于Windows的pythonxy发行版).此外,我有点害怕这个项目不是试图实施IVI建议,这将是一个很好的起点.
任何对相关信息来源的评论或链接都将受到欢迎.
我无法回答你的第一个问题,但我一直在研究 IVI 标准的 Python 解释:https: //github.com/python-ivi/python-ivi。不幸的是,它也是 Python 3,但它是纯 Python(不导入外部 DLL 文件、COM 或 .NET 对象),因此它可能不完全是您正在寻找的。然而,优点是它是跨平台的,并且可以在 Windows 和 Linux 中运行。
Python IVI(以及仪器接口 python-vxi11 和 python-usbtmc)已更新,可无缝支持 Python 2 和 Python 3。它仍然是纯 Python,因此没有外部二进制依赖项(DLL 文件、COM 或 .NET 对象)它可以在 Windows、Linux 和 Mac OS X 上运行。它甚至可以在Raspberry Pi上运行。此外,Python IVI 可以使用 PyVISA 访问National Instruments兼容硬件。
我将其称为解释而不是实现,因为它不能仅仅因为它是 Python 就完全遵循规范。我试图尽可能严格地遵循规范,但我也试图尽可能保持它的Python风格。不过,它的诞生还不到一年,而我是目前唯一一个在研究它的人,我的乐器种类也很少。如果有人愿意提供帮助,我将非常乐意接受捐款。
开箱即用,python-ivi 通过 python-vxi11 模块支持 LAN 上的 VXI-11 协议(我相信与大多数 LXI 仪器兼容)(python-vxi11 也是纯 Python,因此跨平台兼容)、串行pySerial(跨平台)的仪器支持,以及 linux-gpib(仅限 Linux)的 GPIB 支持。我还计划包装 PyVISA,以便 python-ivi 能够使用 PyVISA 支持的所有接口。
| 归档时间: |
|
| 查看次数: |
3101 次 |
| 最近记录: |