在CompactRIO上同时使用扫描引擎和FPGA(混合模式)

更新 Apr 29, 2024

环境

硬件

  • CompactRIO Controller
  • CompactRIO Chassis

软件

  • LabVIEW Real-Time Module
  • LabVIEW

我想让我的一些cRIO模块工作在扫描模式,而另一些模块工作在FPGA模式。但是在机箱的属性里没有找到相应的选项。我应该如何来实现?

在CompactRIO目标上同时使用扫描接口和LabVIEW FPGA接口称为混合模式。这将允许您对工作在扫描模式下的模块使用I / O变量,而另一些模块则使用FPGA进行编程控制。请注意,某些C系列模块与扫描接口不兼容,但使用混合模式可能会减少最终应用程序的编程量。

注意 :一个模块只能用于扫描接口模式或FPGA模式,但不能同时用于两者。

使用混合模式将对最终应用程序产生两种影响:
  • 编译时间将显著增加,因为编译器必须将默认的RIO扫描接口的比特文件和用户编写的FPGA代码生成的比特文件结合在一起。 
  • 由于扫描接口使用两个DMA FIFO,因此FPGA代码可以使用的DMA FIFO数量将减少。要验证目标上可用的DMA FIFO数量,请参阅KnowledgeBase  How Many DMA Channels are on My FPGA Target?

请按照以下的步骤设置您的CompactRIO工作在混合模式:
1.创建一个新的LabVIEW项目,然后在项目浏览器(Project Explorer)窗口中右键单击顶级项目项。选择新建»目标和设备(New»Targets and Devices)以显示添加目标和设备(Add Targets and Devices)对话框。



2.如果已安装硬件,请确保选择现有目标或设备(Existing target or device),展开Real-Time CompactRIO ,然后选择CompactRIO控制器。单击确定



3.如果未安装硬件,请选中新建目标或设备 (New target or device),展开Real-Time CompactRIO ,然后选择CompactRIO控制器。单击确定(OK) 。如果您没有集成控制器和机箱,请右键单击目标并选择新建»目标和设备(New»Targets and Devices)。选择新建目标或设备(New target or device) ,展开CompactRIO 机箱(CompactRIO Chassis),然后选择您的机箱,单击确定(OK)
4.如果出现选择编程模式(Select Programming Mode)对话框,请选择“ 扫描接口( Scan Interface),单击继续 (Continue)。



5.如果发现 C系列模块?(Discover C Series Modules? 对话框出现,单击 发现( Discover) 。这会将机箱下的C系列模块添加到项目中。



6.右键单击机箱并选择新建»FPGA 目标(New»FPGA Target),将FPGA目标添加到机箱



7.如果看到部署CompactRIO机箱设置?(Deploy CompactRIO Chassis Settings)?在对话框中,选择稍后部署(Deploy Later) 。设置项目后,机箱将置于LabVIEW FPGA接口模式。



8.将机箱下的你想要使用LabVIEW FPGA接口模式的模块拖拽到FPGA目标下。这样,模块IO就会从机箱下移除,转而出现在FPGA目标下面的以模块名命名的文件夹下面。 



9.如果您有任何与扫描接口不兼容的模块,请右键单击FPGA Target并选择新建»C 模块( New»C Series Modules),将它们添加到FPGA目标下,可以添加现有模块或手动将模块添加到项目中。



注意 :从RIO 17.0驱动程序开始,将在名为“RSI Resources”或“Real-Time Scan Resources”的Chassis项目下的项目树中添加一个新文件夹。此项目包含您选择在扫描模式下编程的所有模块。要在“扫描接口”模式下将C系列模块添加到项目中,请右键单击实时扫描资源(Real-Time Scan Resources),然后选择 新建»C系列模块New » C Series Modules)。这与上面描述的在FPGA接口模式下向FPGA目标添加模块的过程相同。



10.如果已连接到目标,请右键单击项目中的机箱,然后选择部署(Deploy) 。如果未连接到目标,请确保在操作机箱之前,将机箱部署在FPGA接口模式下。



11.右键单击FPGA Target并选择新建»VI(New»VI ),在FPGA Target下创建一个新的VI 。使用FPGA I / O节点为LabVIEW FPGA接口模式中使用的模块实现FPGA代码。
12.编译VI。这将把RIO扫描接口逻辑添加到FPGA代码中,并允许应用程序同时使用扫描引擎和FPGA。
如果在尝试运行应用程序时收到以下错误,请确保机箱处于LabVIEW FPGA接口模式。
错误-61141:LabVIEW FPGA:由于FPGA正忙,无法执行操作。在请求此操作之前,停止FPGA上的所有操作。如果目标处于扫描接口编程模式,则将其置于FPGA接口编程模式。

           
1.右键单击项目中的机箱,然后选择属性(Properties)


2.确保选择了LabVIEW FPGA接口(LabVIEW FPGA Interface) ,单击确定(OK)


3.右键单击机箱,然后选择部署(Deploy)


注意 :cRIO-904x控制器也支持DAQmx编程。要在实时控制器下为项目添加C系列模块(用于NI-DAQmx编程),右键单击实时扫描资源(Real-Time Resources)并选择新建»C系列模块(New»C Series Modules) 。如上所述,这与将模块添加到项目中以用于其他编程模式的过程相同。

Additional Information

使用混合模式意味着RT Target下会有一些C系列模块,LabVIEW项目中的FPGA Target下也会有一些C系列模块。