Configuración de EtherCAT en controladores programables de NI

Actualizado el Dec 11, 2023

Ambiente

Hardware

  • CompactRIO Controller
  • CompactRIO Chassis

Software

  • LabVIEW
  • LabVIEW FPGA Module

Controlador

  • NI-RIO (Legacy)

Esta guía proporciona instrucciones paso a paso para ayudarlo a configurar su sistema EtherCAT usando un chasis Ethernet CompactRIO y programación gráfica de LabVIEW. Siga estas pautas para pasar de desempaquetar su hardware de NI a programar E / S en LabVIEW.

Requisitos

Hardware

  • Master: LabVIEW Real-Time Controller con dos puertos Ethernet, como CompactRIO , PXI y NI Industrial Controller

  • Slave : Expansión de chasis NI-9144 CompactRIO con módulos de E / S de la Serie C de NI

  • Cable Ethernet y fuentes de alimentación

Software

Software

Versión para programar en LabVIEW Real-Time solamente

Versión para programar en LabVIEW Real-Time y LabVIEW FPGA

LabVIEW

8.6 o posterior

2009 o posterior

Módulo LabVIEW Real-Time

8.6 o posterior

2009 o posterior

Módulo LabVIEW FPGA

-

2009 o posterior

Controlador NI CompactRIO

3.0.1 o posterior

3.2 o posterior

NI-Industrial Communications para software controlador EtherCAT

1.0 o posterior

1.1 o posterior

Configuración del hardware

Este tutorial utiliza un controlador CompactRIO cRIO-9074 como maestro EtherCAT. Para configurar este sistema de hardware, siga estos pasos:

  1. Inserte los módulos de E / S de la Serie C en el chasis apropiado (el chasis maestro CompactRIO y / o el chasis esclavo NI-9144).

  2. Conecte un cable Ethernet estándar de Categoría 5 o superior desde el Puerto Ethernet 2 cRIO-9074 al Puerto Ethernet NI-9144. Puede conectar en cadena múltiples chasis NI-9144 desde el controlador de esta manera.

Nota: El puerto 1 del cRIO-9074 está en la parte inferior. El puerto 1 del NI 9144 está en la parte superior.

Figura 1. Conexión de los puertos Ethernet en el controlador maestro CompactRIO y el chasis esclavo NI 9144

  1. Conecte una fuente de alimentación externa a cada chasis, que luego enciende el hardware.

Configuración del controlador maestro

  1. Una vez que haya conectado el hardware, instale el software necesario en la computadora host.

  2. Utilice un cable Ethernet para conectar el puerto Ethernet 1 del cRIO-9074 a la misma red que su PC host.

  3. Inicie la utilidad de configuración NI Measurement & Automation Explorer (MAX) desde Inicio »Programas» National Instruments »Measurement & Automation . Haga doble clic en Remote Systems en el árbol del panel de configuración a la izquierda para detectar automáticamente el cRIO-9074 en la red y haga clic en el controlador CompactRIO.

  4. Cambie el nombre del controlador maestro y seleccione Obtain IP address from DHCP server en IP Settings. Haga clic en Reboot cuando haya terminado. (Para utilizar una dirección IP estática, consulte los enlaces relacionados a continuación).

Figura 2. Configuración de la dirección IP para el controlador en tiempo real

  1. Para instalar el software en el controlador maestro en tiempo real, expanda el cRIO-9074 en Remote Systems. Haga clic con el botón derecho en Software y seleccione Add/Remove Software.

Figura 3. Instalación de software en el controlador en tiempo real

  1. Instale el conjunto de software recomendado — el software controlador NI-RIO con el motor de exploración de NI así como el software controlador NI-Industrial Communications para EtherCAT — en el controlador CompactRIO.

  2. Una vez que el controlador se haya reiniciado, busque el controlador CompactRIO en Remote Systems nuevamente. Haga clic en Advanced Ethernet Settings en la esquina inferior derecha.

  3. Seleccione el puerto 2 de Ethernet cRIO-9074 (la dirección MAC que no es la principal). Luego, seleccione EtherCAT en el cuadro desplegable en Mode y haga clic en OK.

Figura 4. Selección del modo EtherCAT para el puerto Ethernet del controlador en tiempo real

Nota: Cuando el puerto Ethernet 2 del controlador está en modo EtherCAT, no puede usar ese puerto en una red Ethernet.

Configurando la Red en LabVIEW

  1. Inicie LabVIEW desde Inicio »Programas» National Instruments »LabVIEW XX» LabVIEW . Haga clic en Empty Project.

  2. Haga clic con el botón derecho en Project y seleccione New»Targets and Devices.

  3. En la ventana de diálogo Add Targets and Devices , seleccione Existing target or device y expanda la categoría Real-Time CompactRIO para descubrir automáticamente el maestro EtherCAT en la subred de la PC host. Seleccione el cRIO-9074 y haga clic en Aceptar.

  4. En la ventana del Proyecto de LabVIEW, haga clic derecho en el cRIO-9074 y seleccione New »Targets and Devices .

Figura 5. Uso de LabVIEW para descubrir controladores conectados a la red

  1. En la ventana de diálogo Add Targets and Devices, seleccione Existing target or device y expanda la categoría EtherCAT Master Device para detectar automáticamente el puerto EtherCAT en el controlador.

Figura 6. Selección del puerto maestro EtherCAT en el controlador en tiempo real

  1. Seleccione el puerto maestro EtherCAT disponible y haga clic en OK. Aparece la ventana de diálogo Scan Slaves. La primera opción Scan Interface detecta automáticamente cualquier esclavo conectado al controlador. Haga clic en OK. El Proyecto LabVIEW ahora lista cada dispositivo esclavo, sus módulos de E / S y las E / S físicas en cada módulo (llamadas variables de E / S).

  2. Una vez que todos los esclavos EtherCAT se han descubierto automáticamente, puede crear un VI, o programa lógico, en el CompactRIO master controller. Para programar el esclavo modular NI 9144 en LabVIEW Real-Time, haga clic y arrastre las variables de E / S del Proyecto LabVIEW al diagrama de bloques. Con estas variables de E / S, puede leer y escribir desde canales físicos en el chasis NI 9144. Cuando termine, haga clic en el botón Run en el programa VI de LabVIEW para implementar el programa en el controlador en tiempo real.

Figura 7. Arrastrando variables de E / S desde el proyecto de LabVIEW al diagrama de bloques

Nota: Si usa las variables de E / S en un bucle temporizado, puede sincronizar la fuente de tiempo del bucle con el motor de exploración de NI. Cuando ejecuta el VI, el programa se implementa automáticamente en el maestro CompactRIO. Para obtener más información sobre la variable de E / S de LabVIEW y el modo de escaneo CompactRIO, consulte el documento técnico titulado Comprendiendo el modo de escaneo CompactRIO .

Cambio de modos EtherCAT en LabVIEW

LabVIEW agiliza los diferentes estados de EtherCAT (es decir, Operacional, Inicial, Bootstrap, etc.) agrupándolos en dos modos LabVIEW Scan Engine: Modo de Configuración y Modo Activo. En Modo Activo, el programa LabVIEW obtiene datos reales de la red. En el modo de configuración, los datos de la red no se actualizan y la configuración de la red EtherCAT está habilitada, lo que le permite agregar nuevos dispositivos y módulos esclavos y descargar el firmware esclavo NI-9144 EtherCAT.

Para cambiar el modo del motor de escaneo de LabVIEW, haga clic con el botón derecho en el controlador maestro cRIO-9074 en el explorador de proyectos de LabVIEW y seleccione  Utilities»Scan Engine Mode»Switch to Active (o Switch to Configuration). El modo LabVIEW Scan Engine también se puede cambiar programáticamente con la función Set Scan Engine Mode , a la que se accede haciendo clic derecho en el diagrama de bloques de LabVIEW y seleccionando la paleta Measurement I / O »NI Scan Engine.

Puede cambiar el estado EtherCAT de un esclavo individual haciendo clic derecho en el dispositivo esclavo en la ventana del Proyecto de LabVIEW y seleccionando el Online Device State. El estado EtherCAT del dispositivo esclavo se puede cambiar casi completamente independientemente del modo LabVIEW Scan Engine, con solo dos restricciones. Una restricción es que no puede colocar un dispositivo esclavo en estado operativo o seguro operativo a menos que el motor de escaneo de LabVIEW esté en un estado equivalente (modo activo). La otra restricción es que no puede colocar su dispositivo en estado Bootstrap a menos que LabVIEW Scan Engine esté en modo de configuración.



Figura 8. Cómo los modos del motor de escaneo de LabVIEW se corresponden con los estados de EtherCAT

Adición de esclavos EtherCAT de terceros a controladores maestros de NI

Para que aparezca un dispositivo esclavo de terceros en la ventana del Proyecto de LabVIEW, debe importar el archivo XML del perfil del dispositivo del esclavo antes de configurar el esclavo con LabVIEW.

  1. Busque el archivo de descripción de dispositivo EtherCAT XML para su esclavo externo. Algunas empresas proporcionan estos archivos XML para descargarlos en sus sitios web.

  2. Haga clic con el botón derecho en el EtherCAT master item y seleccione Utilities»Import Device Profiles para mostrar el cuadro de diálogo  Import Device Profile.

  3. Haga clic en el botón File Browse para seleccionar los perfiles de dispositivo de cualquiera de las siguientes formas.

  • Seleccione un archivo y haga clic en Open para importar un perfil de dispositivo.

  • Abra una carpeta y haga clic en Current Folder para importar todos los perfiles de dispositivo en la carpeta.

  1. Después de seleccionar los perfiles de dispositivo, puede ver los resultados de la importación de archivos. El archivo se importa correctamente si el resultado de la importación es correcto. De lo contrario, el archivo no se importa debido a un formato no válido u otro motivo.

  2. (Opcional) Repita el paso 2 para importar otros perfiles de dispositivo.

  3. Haga clic en Close para salir del cuadro de diálogo.

  4. Debe reiniciar LabVIEW para usar el perfil de dispositivo recién importado.

Programando el NI 9144 FPGA en LabVIEW FPGA

El programa escrito en LabVIEW Real-Time se implementa en el maestro EtherCAT, que es responsable de recopilar, procesar y controlar las E / S en la red EtherCAT. Además, cada chasis esclavo NI-9144 contiene un arreglo de compuertas programable en campo (FPGA) integrado que puede ejecutar procesamiento de señal y temporización personalizados para ayudarlo a crear dispositivos distribuidos inteligentes que estén sincronizados dentro de 100 ns entre sí. Para aprovechar las capacidades de FPGA programables, debe usar LabVIEW, LabVIEW Real-Time y LabVIEW FPGA 2009 o posterior.

  1. Cuando agrega el Dispositivo Maestro EtherCAT al Proyecto LabVIEW (vea el paso 5 en la sección anterior), puede configurar el esclavo NI-9144 para programar en la Interfaz NI Scan o en la Interfaz LabVIEW FPGA. Si selecciona lo primero, aún puede programar en LabVIEW FPGA haciendo clic derecho en Device (Address 0, NI-9144) en la ventana Proyecto de LabVIEW y seleccionando New»FPGA Target.



Figura 9. Descubriendo el objetivo FPGA en el NI 9144

  1. En el Proyecto LabVIEW, el dispositivo esclavo NI-9144 presenta varias señales FPGA. Por ejemplo, Input Virtual Point y Output Virtual Point son señales de temporización digitales que se utilizan para sincronizar el código FPGA entre diferentes chasis NI-9144. Para programar un módulo en el Modo LabVIEW FPGA, arrastre y suelte el módulo de Device (Address 0, NI-9144) en el Objetivo FPGA (NI-9144) . En la ventana Project Explorer, puede arrastrar y soltar módulos entre el Device y el FPGA Target  para cambiar entre el modo de escaneo y el modo FPGA.



Figura 10. E / S del chasis y E / S del módulo enumeradas bajo el objetivo FPGA
  1. En la ventana LabVIEW Project Explorer, haga clic derecho en FPGA Target (NI-9144) en LabVIEW Project y seleccione New »VI para crear un nuevo programa FPGA en el NI 9144. Los canales de E / S FPGA de los módulos listados bajo FPGA Target (NI-9144) se puede arrastrar y soltar en el diagrama de bloques de este nuevo FPGA VI.

  2. Para implementarlo en FPGA Target (NI-9144) , el VI debe compilarse creando una nuevaBuild Specification»New»Compilation. Una vez que el FPGA VI se haya compilado correctamente, aparecerá en la lista de Especificaciones de compilación en el Explorador de proyectos y se puede descargar al FPGA Target (NI-9144) haciendo clic derecho sobre él y seleccionando Download.

Figura 11. VI FPGA compilado para descargar al FPGA NI 9144

Diferencias en la API de programación de LabVIEW FPGA

Si está familiarizado con la programación en LabVIEW FPGA para CompactRIO y otras plataformas NI RIO, existen algunas diferencias entre programar la FPGA local del maestro y la FPGA del esclavo. Desde LabVIEW 2009, las variables de E / S definidas por el usuario se utilizan para sincronizar datos FPGA con Scan Engine. Estas variables de E / S definidas por el usuario también son el único medio para transferir datos entre el VI en tiempo real del controlador y el FPGA VI del chasis de expansión NI 9144.

Métodos de transferencia FPGA

Chasis local

Chasis de expansión

Variables de E / S definidas por el usuario

Interfaz de host FPGA

X

Funciones de transferencia DMA

X

Depuración del panel frontal de FPGA

X


Tabla 1. Métodos de transferencia de FPGA para chasis de expansión local y de expansión

  1. Programe el VI FPGA haciendo clic en los nodos de E / S FPGA NI 9144 del Proyecto LabVIEW y arrastrándolos al diagrama de bloques FPGA. En este ejemplo, se usó una función de derivada integral proporcional (PID) para controlar las E / S analógicas en el chasis NI 9144.

Figura 12. Ejemplo de código FPGA en NI 9144

  1. Tenga en cuenta la variable booleana Reset FPGA PID. Esta es una variable de E / S definida por el usuario que permite que el VI en tiempo real en el maestro NI EtherCAT se comunique con el VI FPGA en el NI-9144. Para crear dicha variable, haga clic derecho en Device (Address 0, NI-9144) en el Proyecto LabVIEW y seleccione New»User-Defined Variable. El nombre de la variable, el tipo de datos y la dirección de los datos (de Host a FPGA o viceversa) se pueden configurar desde la ventana Propiedades. En este caso, el controlador maestro está enviando información al esclavo NI-9144, por lo que la dirección es Host to FPGA.

Figura 13. Ventana de diálogo para crear una variable de E / S definida por el usuario

Ahora puede programar la variable de E / S definida por el usuario en el VI en tiempo real utilizado en este ejemplo para restablecer la función PID que se ejecuta en el FPGA VI.

  1. Para ejecutar el VI FPGA, haga clic derecho en cRIO-9074 en el Proyecto LabVIEW y seleccione Deploy All para implementar el dispositivo esclavo NI-9144. Ponga el motor de escaneo de LabVIEW en modo de configuración haciendo clic derecho en el controlador CompactRIO y seleccionando Utilities»Scan Engine Mode»Switch to Configuration y haga clic en el botón Run en el VI FPGA. Esto inicia el proceso de compilación y descarga el archivo de bits FPGA al chasis NI-9144. Después de haber descargado exitosamente el archivo de bits al NI-9144, el FPGA VI comienza a ejecutarse inmediatamente.

Nota: Es posible que deba actualizar el firmware en su chasis esclavo NI-9144 para ejecutar un código FPGA personalizado. Si recibe un mensaje de error que indica que su firmware necesita ser actualizado, siga las instrucciones en la Guía del Usuario NI-9144 en la sección de Actualización de su Firmware.

  1. Cuando se completa el proceso de compilación y descarga, necesita volver a configurar el motor de escaneo de LabVIEW en modo activo antes de que el VI FPGA comience a ejecutarse. Para hacerlo, haga clic con el botón derecho en el controlador maestro CompactRIO en la ventana del Proyecto de LabVIEW y seleccione Utilities»Scan Engine Mode»Switch to Active.

Una nota importante es que existe un límite en la cantidad de variables de E / S definidas por el usuario que se pueden crear en el modo FPGA. El chasis esclavo NI-9144 puede contener un total de 512 bytes de datos de entrada y 512 bytes de datos de salida tanto para las variables de E / S en el modo de exploración como para las variables de E / S definidas por el usuario en el modo FPGA. Por ejemplo, si está utilizando cuatro módulos de 32 canales en el modo de exploración y cada canal ocupa 32 bits de datos, las variables de E / S del modo de exploración están utilizando 256 bytes de datos de entrada. Con los 256 bytes restantes de datos de entrada, puede crear 64 variables de E / S definidas por el usuario de entrada (también de 32 bits de longitud) en modo FPGA.