前面几章介绍了如何使用直接 scpi 命令远程控制罗德与施瓦茨仪器。除了这种方法,罗德与施瓦茨还提供免费的仪器驱动程序,能够在应用程序和仪器的 scpi 命令之间提供一个抽象层。
5. 仪器驱动程序和直接 scpi 命令 -九游官网下载


除了使用 visa write/read 函数和直接 scpi 命令,您也可以使用仪器驱动程序的功能和属性。下图展示了 labview rsscope 仪器驱动程序提供的替代方法:
下图展示了 ivi.net rsscope 仪器驱动程序使用 c# 语言提供的相同替代方法。您可以单独设置参数属性,或者使用以下方法设置多个参数:
为简单起见,上图中的直接 scpi 命令未包含仪器驱动程序执行的所有操作。例如,驱动程序会等待仪器确认已执行命令(参阅第 6 章《测量同步》)并在执行每个命令后检查可能出现的错误(参阅第 7 章《仪器错误检查》使用直接 scpi 命令时,您必须自行处理这两项任务。
直接 scpi 命令的优缺点
优点:
- 启动更快;仪器使用手册包含描述的所有 scpi 命令。
- 执行速度更快。
缺点:
- 您需要自行执行测量同步和仪器错误检查。
- 您必须将参数格式化为 scpi 命令。二进制数据的格式化操作尤为棘手。
- 接收到仪器的字符串响应时,您需要将其转换为合适的类型(例如整数、双精度或布尔型、数组或二进制数据)。
仪器驱动程序的优缺点
优点:
- 在执行每个命令后检查错误。如果您需要在重要应用中实现最大执行速度,可以关闭此功能。
- 同步需要较长时间才能完成的命令。
- 已实现将参数格式化为 scpi 命令和解析仪器响应。
- 仪器驱动程序带有各自的 *.chm 帮助文件。
- 仪器驱动程序同样支持您选用直接 scpi 命令。
缺点:
- 学习曲线较长,您必须熟悉驱动程序架构。
- 开销较小。您可以使用正确方法尽量减轻这种不利影响;详情参阅第 8 章《速度优化》
- 有时候,仪器驱动程序必须过一段时间才能支持新的仪器功能。
罗德与施瓦茨仪器驱动程序对不同编程语言的适用性
下表显示了不同仪器驱动程序适用的编程语言。我们之后会详细讨论不同的编程环境。
vxi plug&play 驱动程序 | labwindows/cvi 驱动程序 | labview 驱动程序 | ivi.net 驱动程序 | scpi 驱动程序 | |
---|---|---|---|---|---|
python | x(体积庞大) | x(部分仪器) | |||
matlab | x | ||||
c#,vb.net | x(如果 ivi.net 不可用) | x | x(部分仪器) | ||
labview | x | ||||
labwindows/cvi | x |
对于 python 用户
目前,罗德与施瓦茨为 pypi 储存库中的仪器提供基于 python 3.6 scpi 的仪器驱动程序,包括:、、 、 和 。
对于不提供 python 仪器驱动程序的仪器,我们建议使用直接 scpi 命令。
对于 matlab 用户
罗德与施瓦茨提供 matlab mdd 驱动程序。使用 mdd 驱动程序要求您熟知 vxi plug&play 驱动程序结构,还必须从驱动程序头文件手动导入所有枚举常量。除此之外,您还需要拥有 matlab instrument control toolbox 许可证。我们建议 matlab 用户使用直接 scpi 命令。以下应用指南介绍了这两种方法:
对于 c#、vb.net 用户
您可以选择以下两种方法:
- ivi.net 驱动程序 - 适用于几乎所有仪器。您还可以使用 c# 和 vb.net 封装类附带的 vxi plug&play 驱动程序。有关详细信息,可以参阅应用指南:
1ma268:如何使用罗德与施瓦茨 ivi.net 仪器驱动程序
您可以从我们的产品网站下载驱动程序。 - 基于 scpi 的驱动程序 - 这些驱动程序根据仪器的 scpi 树自动生成,并严格遵循 scpi 树语法。如果您习惯使用 scpi 命令,可以使用这些驱动程序。这些驱动程序为 scpi 提供智能感知帮助和类型安全接口。您可以从 nuget.org 网站将驱动程序下载为 nuget 程序包:
对于 labwindows/cvi 和其他 c/c 环境中的用户
vxi plug&play 驱动程序是经过编译的 cvi 驱动程序,适用于 32 位和 64 位 windows 应用程序。您可以通过 c/c 语言使用这些驱动程序。
如要使用 cvi 驱动程序,您需要将其整个源代码添加到项目中。
如要使用 vxi plug&play 驱动程序,您需要将驱动程序的 llb 文件(用于静态链接)或 dll 文件(用于动态链接)添加到项目中。