使用NI扫描引擎和变量传输数据
- 更新时间2025-05-20
- 阅读时长4分钟
通过可编程式前面板通信传输相干FPGA I/O数据集至RT主控VI时,必须创建同步FPGA VI与主控VI的程序框图代码。如FPGA终端支持NI扫描引擎,可使用NI扫描引擎同步数据传输。然后通过用户定义的I/O变量在FPGA VI和RT主控VI间传输数据。
使用NI扫描引擎减少用于访问和在FPGA I/O通道和RT主控VI间传输相干数据集的代码量。使用用户自定义I/O变量,发送数据至RT主控VI前和发送数据至FPGA VI后可在FPGA终端上处理数据。例如,创建一个执行下列步骤的应用:
- 获取模拟I/O数据并对FPGA VI中的数据执行FFT
- 传输处理后的数据至RT VI中的控制循环
- 从RT控制循环传输输出的数据至FPGA,以用作物理I/O通道的输出
步骤2和3包含在FPGA VI和主控VI间传输数据的用户定义的I/O变量。
(CompactRIO)关于使用用户定义I/O变量的范例,见labview\examples\CompactRIO\NI Scan Engine\Getting Started\User-Defined IO Variable - Basic\目录下的User-Defined IO Variable - Basic.lvproj。
创建用户定义I/O变量
在项目浏览器窗口右键单击机箱项,从快捷菜单中选择新建»用户定义变量,新建一个I/O变量。但是,因为所有的I/O变量都不具有方向属性,必须将每个用户定义的I/O变量配置为FPGA至主机或主机至FPGA。
通过该方法创建的I/O变量将出现在标签为用户定义变量的容器中。
用户定义I/O变量的说明
创建和使用用户定义I/O变量时请注意下列说明:
- 使用用户定义I/O变量前,必须打开FPGA VI的引用。
- 仅可在支持NI扫描引擎的FPGA终端上使用用户定义I/O变量。关于NI扫描引擎支持的详细信息见终端硬件文档。
- 用户定义I/O变量只支持扫描访问。不能直接访问用户定义I/O变量。
- 如添加用户定义I/O变量节点在FPGA VI程序框图上执行,必须设置FPGA VI的执行模式为FPGA终端。如要更改FPGA VI的执行模式,右键单击包含该VI的机箱项并选择选择执行模式»FPGA终端。如选择仿真(仿真I/O)或仿真(实际I/O),且该FPGA VI包含用户定义I/O变量,运行按钮将显示断开且FPGA VI不能运行。
- 用户定义的I/O变量仅可用于运行在同一个机箱上的FPGA VI和RT VI间通信。如用户定义I/O变量已启用网络发布,可在任意RT VI或同一LabVIEW项目中的基于Windows的VI中使用该变量。例如,可使用网络发布I/O变量创建运行在Windows上的用户界面VI。
访问来自NI扫描引擎的定时信息
用户定义I/O变量基于来自NI扫描引擎的定时信息。通过添加Scan Clock I/O项至FPGA VI的程序框图可访问该定时信息。该I/O项传输来自扫描引擎的定时信息(例如,信号保持为高电平的FPGA时钟周期的数量)至FPGA VI。使用该定时信息设计应用程序,以确保在FPGA VI和RT主控VI间传输的数据集的一致性。
并非所有机箱均支持Scan Clock I/O项。如所用机箱不支持该项,它位于项目浏览器窗口FPGA终端的机箱I/O项下。下图为该项位置的示意图。