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


除了使用 VISA Write/Read 函数和直接 SCPI 命令,您也可以使用仪器驱动程序的功能和属性。下图展示了 LabVIEW rsscope 仪器驱动程序提供的替代方法:
下图展示了 IVI.NET RsScope 仪器驱动程序使用 C# 语言提供的相同替代方法。您可以单独设置参数属性,或者使用以下方法设置多个参数:
直接 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 |
对于 MATLAB 用户
罗德与施瓦茨提供 MATLAB MDD 驱动程序。使用 MDD 驱动程序要求您熟知 VXI plug&play 驱动程序结构,还必须从驱动程序头文件手动导入所有枚举常量。除此之外,您还需要拥有 MATLAB Instrument Control Toolbox 许可证。我们建议 MATLAB 用户使用直接 SCPI 命令。以下应用指南介绍了这两种方法:
对于 LabVIEW 用户
罗德与施瓦茨提供本机 LabVIEW 驱动程序。有关详细信息,可以参阅应用指南:
对于 C#、VB.NET 用户
您可以选择以下两种方法:
- IVI.NET 驱动程序 - 适用于几乎所有仪器。您还可以使用 C# 和 VB.NET 封装类附带的 VXI plug&play 驱动程序。有关详细信息,可以参阅应用指南:
1MA268:如何使用罗德与施瓦茨 IVI.NET 仪器驱动程序
您可以从我们的产品网站下载驱动程序。 - 基于 SCPI 的驱动程序 - 这些驱动程序根据仪器的 SCPI 树自动生成,并严格遵循 SCPI 树语法。如果您习惯使用 SCPI 命令,可以使用这些驱动程序。这些驱动程序为 SCPI 提供智能感知帮助和类型安全接口。您可以从 nuget.org 网站将驱动程序下载为 NuGet 程序包:
https://www.nuget.org/profiles/rohde-schwarz
对于 LabWindows/CVI 和其他 C/C++ 环境中的用户
VXI plug&play 驱动程序是经过编译的 CVI 驱动程序,适用于 32 位和 64 位 Windows 应用程序。您可以通过 C/C++ 语言使用这些驱动程序。
如要使用 CVI 驱动程序,您需要将其整个源代码添加到项目中。
如要使用 VXI plug&play 驱动程序,您需要将驱动程序的 LLB 文件(用于静态链接)或 DLL 文件(用于动态链接)添加到项目中。