在 NI 可编程控制器上设置 EtherCAT

更新 Dec 11, 2023

环境

硬件

  • CompactRIO Controller

软件

  • LabVIEW
  • LabVIEW Real-Time Module
  • LabVIEW FPGA Module

驱动

  • NI-Industrial Communications for EtherCAT

本指南提供分步说明,帮助您使用以太网 CompactRIO 机箱和 LabVIEW 图形编程设置 EtherCAT 系统。遵循以下指南,完成从解压 NI 硬件到在 LabVIEW 中编程 I/O的步骤。

要求

硬件

软件

请参阅CompactRIO、CompactDAQ、Single-Board RIO、R 系列和 EtherCAT 的软件支持并搜索 9144 或 9145。

设置硬件

本教程使用 cRIO-9074 CompactRIO 控制器作为 EtherCAT 主控制器,NI-9144 作为 EtherCAT 从控制器。请执行以下步骤设置此硬件系统:

  1. 将 C 系列 I/O 模块插入适当的机箱(CompactRIO 主机箱和/或 NI-9144 从机箱)。
  2. 将标准 5 类或更高标准的以太网电缆从 cRIO-9074 以太网端口 2 连接到 NI-9144 以太网端口 1。您可以通过这种方式将多个 NI-9144 机箱从控制器菊花链式连接。
9074.png
注意: cRIO-9074 上的端口 1 位于底部。有关以太网端口的位置,请参阅 cRIO 控制器的用户手册。
  1. 将外部电源连接到每个机箱,然后打开硬件电源。

配置主控制器

  1. 连接硬件后,在主机上安装所需的软件。
  2. 使用以太网电缆将 cRIO-9074 以太网端口 1 连接到与主机 PC 相同的网络。
  3. 开始 » 程序 » National Instruments » Measurement & Automation启动 NI Measurement & Automation Explorer (MAX)。双击左侧配置面板树中的远程系统以自动发现网络上的 cRIO-9074,然后单击 CompactRIO 控制器。
  4. 更改主控制器的名称,然后在IP 设置下选择从 DHCP 服务器获取 IP 地址。完成后单击重新启动。 (要使用静态 IP 地址,请参阅下面的相关链接。)
  1. 要在实时主控制器上安装软件,请在远程系统下展开 cRIO-9074。右键单击软件并选择添加/删除软件
  1. 将推荐的软件集——带有 NI 扫描引擎的 NI-RIO 驱动软件以及用于 EtherCAT 驱动软件的 NI-Industrial Communications——安装到 CompactRIO 控制器上。
  2. 控制器重新启动后,再次在远程系统下找到 CompactRIO 控制器。单击右下角的高级以太网设置
  3. 选择 cRIO-9074 Ethernet Port 2(非主 MAC 地址)。然后在适配器模式下的下拉框中选择EtherCAT ,点击OK

注意:当控制器的以太网端口 2 处于 EtherCAT 模式时,您不能在以太网网络上使用该端口。

在 LabVIEW 中配置网络

  1. 开始 » 程序 » National Instruments » LabVIEW XX » LabVIEW 启动 LabVIEW 。单击空项目
  2. 右键单击项目并选择新建 »目标和设备
  3. 添加目标和设备对话框窗口中,选择现有目标和设备并展开Real-Time CompactRIO类别以自动发现主机 PC 子网上的 EtherCAT 主站。选择 cRIO-9074 并单击OK
  4. 在 LabVIEW 项目窗口中,右键单击 cRIO-9074 并选择新建 » 目标和设备。
  1. 添加目标和设备对话框窗口中,选择现有目标和设备并展开类别EtherCAT主站设备以自动发现控制器上的 EtherCAT 端口。
  1. 选择可用的 EtherCAT 主端口并单击OK 。出现扫描从属对话框窗口。第一个选项扫描接口自动发现连接到控制器的任何从站。单击确定。 LabVIEW 项目现在列出了每个从设备、它的 I/O 模块以及每个模块上的物理 I/O(称为 I/O 变量)。
  2. 一旦所有 EtherCAT 从站都被自动发现,您就可以在 CompactRIO 主控制器上创建一个 VI 或逻辑程序。要在 LabVIEW Real-Time 中对 NI 9144 模块化从站进行编程,请单击 I/O 变量并将其从 LabVIEW 项目拖动到程序框图中。通过这些 I/O 变量,您可以从 NI 9144 机箱中的物理通道读取和写入。完成后,单击LabVIEW VI程序上的运行按钮,将程序部署到实时控制器。

注意:如果您在定时循环中使用 I/O 变量,您可以将循环定时源同步到 NI 扫描引擎。运行 VI 时,程序会自动部署到 CompactRIO 主机上。有关 LabVIEW I/O 变量和 CompactRIO 扫描模式的更多信息,请参阅标题为“ 了解 CompactRIO 扫描模式”的白皮书。

在 LabVIEW 中更改 EtherCAT 模式

LabVIEW 通过将不同的 EtherCAT 状态(即 Operational、Init、Bootstrap 等)简化了分组为两种 LabVIEW 扫描引擎模式:配置模式和活动模式。在活动模式下,LabVIEW 程序从网络获取真实数据。在配置模式下,网络数据不会更新,EtherCAT 网络配置会被启用,允许您添加新的从设备和模块和下载 NI-9144 EtherCAT 从站固件。

要更改 LabVIEW 扫描引擎模式,请在 LabVIEW 项目浏览器中右键单击 cRIO-9074 主控制器,然后选择实用程序 » 扫描引擎模式 » 切换到活动(或切换到配置)。 LabVIEW扫描引擎模式也可以通过设置扫描引擎模式功能以编程方式更改,通过右键单击LabVIEW框图并选择测量I/O»NI扫描引擎面板获取。

您可以通过右键单击 LabVIEW 项目窗口中的从设备并选择网络设备状态来更改单个从设备的 EtherCAT 状态。从设备的 EtherCAT 状态几乎可以完全独立于 LabVIEW 扫描引擎模式进行更改,但这会有两个限制。一个限制是,除非 LabVIEW 扫描引擎处于等效的状态(活动模式),否则您不能将从设备置于Operational或Safe-Operational状态。另一个限制是您不能将设备置于Bootstrap状态,除非 LabVIEW 扫描引擎处于配置模式。

将第三方 EtherCAT 从站添加到 NI 主控制器

要让第三方从设备显示在 LabVIEW 项目窗口中,您必须在使用 LabVIEW 配置从设备之前导入从设备的设备配置文件 XML 文件。

  1. 找到第三方从站的 EtherCAT XML 设备描述文件。一些公司在其网站上提供这些 XML 文件以供下载。
  2. 右键单击EtherCAT 主站并选择实用程序 » 导入设备配置文件以显示导入设备配置文件对话框。
  3. 单击文件浏览按钮以通过以下任一方式选择设备配置文件。
    • 选择一个文件并单击打开以导入设备配置文件。
    • 打开一个文件夹并单击当前文件夹以导入该文件夹下的所有设备配置文件。
  4. 选择设备配置文件后,您可以看到文件导入结果。如果 Import Result 为 Succeed,则文件导入成功。否则,由于格式无效或其他原因,无法导入文件。
  5. (可选)重复步骤 2 以导入其他设备配置文件。
  6. 单击关闭退出对话框。
  7. 您必须重新启动 LabVIEW 才能使用新导入的设备配置文件。

在 LabVIEW FPGA 中对 NI 9144/45 FPGA 进行编程

用LabVIEW Real-Time编写的程序部署到EtherCAT主站,负责收集、处理和控制EtherCAT网络中的I/O。此外,每个 NI-9144 从机机箱都包含一个嵌入式现场可编程门阵列 (FPGA),可以执行自定义时序和信号处理,以帮助您创建彼此在 100 ns 内同步的智能分布式设备。要利用可编程 FPGA 功能,您必须使用 LabVIEW、LabVIEW Real-Time 模块和 LabVIEW FPGA 模块。

  1. 当您将 EtherCAT 主设备添加到 LabVIEW 项目时(参见上一节中的步骤 5),您可以将 NI-9144 从设备设置为在 NI 扫描接口或 LabVIEW FPGA 接口中编程。如果您选择前者,您仍然可以通过在 LabVIEW 项目窗口中右键单击设备(地址 0,NI-9144)并选择新建»FPGA 目标,在 LabVIEW FPGA 中进行编程。
  1. 在 LabVIEW 项目中,NI-9144 从设备具有多个 FPGA 信号。例如,输入虚拟点和输出虚拟点是用于在不同 NI-9144 机箱之间同步 FPGA 代码的数字时序信号。要在 LabVIEW FPGA 模式下对模块进行编程,请将模块从Device (Address 0, NI-9144)拖放到FPGA Target (NI-9144)上。在 Project Explorer 窗口中,您可以在DeviceFPGA Target之间拖放模块以在 Scan Mode 和 FPGA Mode 之间切换。
  1. 在LabVIEW项目浏览器窗口中,右键单击LabVIEW项目中的FPGA终端(NI-9144)并选择新建»VI在NI 9144上创建一个新的FPGA程序。FPGA终端下列出的模块的FPGA I/O通道(NI-9144)可以拖放到这个新的 FPGA VI 的框图中。
  2. 要将其部署到FPGA Target (NI-9144) ,必须通过创建新的Build Specification»New»Compilation来编译 VI。 FPGA VI 编译成功后,它会列在 Project Explorer 的 Build Specifications 下,可以通过右键单击它并选择Download将其下载到FPGA Target (NI-9144)

 

LabVIEW FPGA 编程 API 的差异

如果您熟悉使用 LabVIEW FPGA 中在 CompactRIO 和其他 NI RIO 平台编程,那么在编程主设备的本地 FPGA 和从设备的 FPGA 之间存在一些差异。自 LabVIEW 2009 起,用户定义的 I/O 变量用于将 FPGA 数据与扫描引擎同步。这些用户定义的 I/O 变量也是在控制器的实时 VI 和 -NI 9144/45 扩展机箱的 FPGA VI 之间传输数据的唯一手段。

FPGA 传输方法

本地机箱

扩展机箱

用户定义的 I/O 变量

FPGA主机接口

X

DMA 传输函数

X

FPGA前面板调试

X

 
  1. 通过单击 LabVIEW 项目中的 NI 9144 FPGA I/O 节点并将它们拖到 FPGA 框图上来对 FPGA VI 进行编程。在本例中,使用比例积分微分 (PID) 函数来控制 NI 9144 机箱中的模拟 I/O。
  1. 注意重置 FPGA PID 布尔变量。这是一个用户定义的 I/O 变量,允许 NI EtherCAT 主设备上的实时 VI 与 NI-9144 上的 FPGA VI 通信。要创建这样的变量,请在 LabVIEW 项目中右键单击设备(地址 0,NI-9144)并选择新建»用户定义变量。可以从属性窗口设置变量名称、数据类型和数据方向(从主机到 FPGA,反之亦然)。在这种情况下,主控制器正在向 NI-9144 从机发送信息,因此方向是主机到 FPGA。
您现在可以在本例中使用的实时 VI 中对用户定义的 I/O 变量进行编程,以重置在 FPGA VI 中运行的 PID 函数。
  1. 要运行 FPGA VI,右键单击 LabVIEW 项目中的 cRIO-9074 并选择Deploy All以部署 NI-9144 从设备。通过右键单击 CompactRIO 控制器并选择实用程序 » 扫描引擎模式 » 切换到配置并单击 FPGA VI 上的运行按钮,将 LabVIEW 扫描引擎置于配置模式。这将启动编译过程并将 FPGA 位文件下载到 NI-9144 机箱。成功将位文件下载到 NI-9144 后,FPGA VI 立即开始执行。
注意:您可能需要更新 NI-9144/45 从机机箱上的固件才能运行自定义 FPGA 代码。如果您收到提示您的固件需要更新的错误消息,请按照更新固件部分下的NI-9144 用户指南NI-9145 用户指南中的说明进行操作。
  1. 编译和下载过程完成后,您需要在 FPGA VI 开始执行之前将 LabVIEW 扫描引擎设置回活动模式。为此,在 LabVIEW 项目窗口中右键单击 CompactRIO 主控制器,然后选择实用程序 » 扫描引擎模式 » 切换到活动

重要的一点是,可以在 FPGA 模式下创建的用户定义 I/O 变量的数量是有限的。请参阅优化 FPGA 应用程序