访问扫描I/O变量(Real-Time, Windows)
- 更新时间2025-08-27
- 阅读时长5分钟
使用NI扫描引擎对扫描I/O数据进行单点访问。
使用NI扫描引擎
NI扫描引擎使用将数据保存在全局内存映射中的扫描器,按一个速率(也称“扫描周期”)更新所有值,能快速单点访问数据通道组,例如,I/O通道。默认情况下,在Windows上安装LabVIEW即安装了NI扫描引擎。也可在LabVIEW支持的终端上安装NI扫描引擎,例如,RT系列PXI和CompactRIO终端。关于NI扫描引擎支持的信息,请参考硬件随附的说明文档。
(Real-Time模块)默认情况下,NI扫描引擎在RT终端上高于实时优先级的线程中运行。统计CPU使用信息时,LabVIEW将扫描线程包括在实时类别中。在NI扫描引擎以高于实时优先级运行时,必须将应用程序的确定性部分与扫描周期同步,确保扫描线程不影响应用程序的确定性。对于I/O不是最高优先级任务的应用程序,可配置扫描引擎的优先级在实时优先级和定时结构优先级之间。如不在终端上使用I/O变量,则不必在终端上安装NI扫描引擎。如NI扫描引擎已安装在终端上,可使用MAX卸载NI扫描引擎。
配置NI扫描引擎设置
使用扫描引擎也,配置扫描引擎的各项设置。例如,扫描周期、网络发布速率、优先级等等。
使用NI分布式系统管理器监测和管理扫描引擎的故障和模式。选择工具»分布式系统管理器,可打开NI分布式系统管理器。也可使用NI扫描引擎VI通过编程查看和配置扫描引擎的设置。
部署和运行NI扫描引擎
在项目浏览器窗口配置NI扫描引擎设置后,必须部署使用NI扫描引擎的项目项(例如,我的电脑、RT终端),使新设置生效。
(Windows)NI扫描引擎从第一次部署终端时开始运行,关闭项目时停止运行。如要在生成应用程序时自动部署NI扫描引擎和I/O变量,则生成应用程序前,必须在应用程序属性对话框的高级页上勾选包括终端硬件配置复选框。
(Real-Time模块)在RT终端上运行时,启动终端时NI扫描引擎自动运行,关闭终端时,扫描引擎随之关闭。
一台计算机上一次只能启动一个NI扫描引擎。例如,如创建了一个使用NI扫描引擎的Windows应用程序,在同一台计算机上运行生成的应用程序之前,必须关闭源应用程序。用户可在多个LabVIEW项目中配置NI扫描引擎,但是如在NI扫描引擎运行时部署使用扫描引擎的项目,部署将出错。必须停止当前NI扫描引擎,才能开始运行另一个NI扫描引擎。
扫描引擎定时
NI扫描引擎按扫描引擎页指定的扫描周期执行。扫描周期的长度应能容纳扫描操作和应用逻辑,如下图所示:
使用获取扫描引擎周期VI,通过编程读取扫描周期。使用设置扫描引擎周期VI,通过编程设置扫描周期。
同步至扫描引擎
(Real-Time模块)除非将NI扫描引擎配置为低于实时优先级,其他情况下都必须将实时代码同步至扫描周期以避免产生影响应用程序的冲突。
使用同步至扫描引擎定时源,将定时结构的执行与扫描引擎同步。除定时结构之外,可使用同步至扫描引擎VI与扫描引擎保持同步。两种同步方法均在上图扫描结束时间触发执行。确保同步代码在下次扫描之前执行完毕,使I/O变量成为连续的数据集合。但是,如代码不依赖于连续数据集合,可跳过扫描周期。
NI扫描引擎模式
LabVIEW定义了四种NI扫描引擎模式:
| 0 | 初始化模式 | 启动时的短暂状态。 |
| 1 | 配置模式 | 在硬件上配置扫描引擎时的必须模式。 |
| 2 | 活动模式 | 扫描引擎运行和更新时所需的模式。 |
| 3 | 故障模式 | 只有在发生主要故障或无法恢复故障时,终端才进入该模式。 |
NI分布式系统管理器用于查看和配置扫描引擎的模式。NI分布式系统管理器显示使用EngineState状态项的扫描引擎模式的值。使用获取扫描引擎模式VI,通过编程读取扫描引擎模式。使用设置扫描引擎模式VI,通过编程设置扫描引擎模式。