可使用RT终端上的实时操作系统指定进程以确定性方式运行。确定性进程可以优先访问硬件资源,这意味着它可以在限定的时间范围内执行,而不会有被较低优先级进程中断的风险。在本教程中,我们将使用定时循环来指定一个可在RT终端上生成数据的确定性进程。在生产者/消费者设计中,我们将此循环称为生产者循环,因为它会生成数据供另一个循环处理。我们将在本教程的下一部分介绍消费者循环。访问ni.com/info并输入PCdesign,了解生产者/消费者设计。

设置LabVIEW项目

在开始设计应用程序之前,您需要将RT终端添加到LabVIEW项目中,然后添加一个VI以在RT终端上运行。添加VI至LabVIEW项目层次结构中的硬件上,它将在此运行。如果将VI添加至我的电脑,它将在主机上运行。如果将VI添加到RT终端项目项中,它将在RT终端上运行。

按照下列步骤,创建LabVIEW项目:

  1. 在LabVIEW启动窗口中,选择文件»创建项目,显示创建项目对话框。
  2. 选择空白项目,然后单击完成
  3. 选择文件»保存,保存项目。
  4. 将项目命名为Getting Started
  5. 单击确定

按照以下步骤,找到RT终端:

  1. 项目浏览器窗口中,右键单击项目根目录,然后从快捷菜单中选择新建»终端和设备,显示添加终端和设备对话框。
  2. 选择现有终端或设备
  3. 选择搜索现有终端或设备
  4. 终端和设备类型列表框中指定RT终端的类型。例如,如果RT终端为cRIO-9033,请展开Real-Time CompactRIO文件夹并选择cRIO-9033
  5. 单击确定,显示选择编程模式对话框。
  6. (FPGA终端)选择扫描接口
    注:   可以选择LabVIEW FPGA接口而不是扫描接口来对FPGA进行编程,以获得更高的性能和灵活性。
  7. 单击继续

按照下列步骤,添加新VI至项目:

  1. 右键单击项目浏览器窗口的RT终端,选择新建»VI
  2. 在前面板中,选择文件»保存,保存VI。
  3. 将VI命名为Real-Time Main
  4. 单击确定(OK)

创建定时循环

实时操作系统会为LabVIEW中的每个进程分配优先级。后台任务的优先级最低。LabVIEW进程分为低优先级、正常优先级和高优先级。设置为实时优先级的VI将获得最高优先级。定时循环是一种确定性结构,执行优先级在高优先级之上,实时优先级之下。向VI添加定时循环时,必须为循环指定周期和优先级。周期是循环一次迭代所分配的执行时间。当VI中有多个循环时,优先级将告诉LabVIEW先执行哪个循环。

注:   为避免破坏定时循环的确定性,请将所有其他循环设置为正常优先级,并在应用程序中使用多个定时循环时谨慎行事。

按照以下步骤,在RT终端VI中配置定时循环:

  1. 使用编程»结构»定时结构下的函数选板在“RT主程序”的程序框图中添加定时循环。
  2. 双击定时循环的输入节点,显示配置定时循环对话框。
  3. 源类型列表框中选择1 kHz时钟
  4. 周期文本框中输入250,使循环每秒运行4次。
    注:   设置的周期应能为定时循环内的代码提供足够的执行时间。此外,周期还应为低优先级进程留出额外的执行时间,防止CPU空闲。
  5. 优先级(Priority)文本框中输入100
  6. 单击确定(OK)
  7. 右键单击定时循环的循环条件接线端,从快捷菜单中选择创建输入控件。LabVIEW将在前面板上添加一个“停止”按钮。

添加代码以生成数据

在本节中,将使用随机数函数在RT终端上生成数据。随机数函数是特定于应用程序代码的占位符。对于实际应用程序,请使用特定代码替换随机数函数,该代码可生成要以确定性方式处理的数据。

按照以下步骤,生成和显示数据:

  1. 在定时循环中添加一个随机数函数。
  2. 右键单击随机数函数,从快捷菜单中选择创建»显示控件
    注:   根据最佳实践,不应在实时代码中包含显示控件。以确定性方式生成数据非常重要,但不需要以确定性方式显示数据。本步骤中的显示控件用于测试RT终端是否生成数据。本教程后续部分中会将其删除。
  3. 保存该VI。

程序框图应与下图一致。

在RT终端上运行VI

在开始运行代码之前,必须先部署VI,使其能够在RT终端上运行。部署VI时,LabVIEW会将VI和所有相关文件保存到RT终端内存中。

按照以下步骤,将VI部署到RT终端:

  1. 项目浏览器窗口右键单击RT终端,从快捷菜单中选择属性,显示RT终端属性对话框。
  2. IP地址/DNS名称文本框中指定IP地址。
    注: 可以使用Measurement & Automation Explorer (MAX)确定RT终端的IP地址。
  3. 单击确定
  4. 项目浏览器窗口,右键单击VI并从快捷菜单中选择部署

结果

运行“RT主程序”时,RT终端会以确定性方式生成随机数,显示控件会在前面板上显示这些数字。