Haga más con los módulos digitales LabVIEW FPGA y de la serie C usando CompactRIO

Información general

National Instruments ofrece más de 20 módulos digitales serie C que puede utilizar para introducir y emitir señales digitales dentro de un sistema NI CompactRIO. Los módulos digitales de la serie C están disponibles en una variedad de niveles de señal, velocidades y canales para que pueda construir un sistema que cumpla con sus especificaciones. Los módulos digitales proporcionan una excelente manera de realizar tareas básicas como monitorear estados o encender y apagar máquinas. Cuando se utiliza CompactRIO con DAQmx , incluso se pueden implementar tareas de contador utilizando la API de DAQmx, que tiene la ventaja de una programación más sencilla. Sin embargo, puede ampliar aún más las capacidades de sus módulos digitales cuando utilice LabVIEW FPGA.

Este artículo examina siete maneras en que puede aumentar la funcionalidad de su módulo digital. Los siguientes ejemplos muestran cómo programar usando LabVIEW FPGA y la interfaz FPGA. Para que estos ejemplos funcionen correctamente, deben configurarse correctamente para su chasis NI CompactRIO específico.

Nota: Cada módulo digital de la serie C proporciona diferentes características de sincronización. Asegúrese de seleccionar un módulo con las características de sincronización que satisfagan sus necesidades de aplicación. Además, las rutas de los archivos de ejemplo que se enumeran a continuación son para LabVIEW 2012. A partir de LabVIEW 2013, los ejemplos de FPGA se renovaron y se colocaron en nuevas rutas de archivo. Las rutas de acceso de archivos para LabVIEW 2013 y ejemplos posteriores son los nuevos ejemplos que se asignan estrechamente a los ejemplos utilizados en este documento.

Contenido

Conteo de eventos

El conteo de eventos es una de las tareas más simples que puede lograr con un módulo digital.  El conteo de eventos, el proceso de contar cada borde ascendente y/o descendente en una señal digital, es útil en una amplia variedad de aplicaciones, desde medir un motor hasta contabilizar el volumen de líquido que fluye a través de una tubería. Programar con el controlador NI-DAQmx requiere que utilice los contadores dedicados integrados o un módulo de contador independiente para realizar operaciones de conteo, lo que es suficiente para muchas aplicaciones.  Alternativamente, puede crear sus propias aplicaciones de contadores utilizando la FPGA, lo que aumenta el número de contadores que puede implementar sin necesidad de un módulo de contador adicional.  El número de contadores solo está limitado por el número de líneas digitales en su sistema y el tamaño de su FPGA.

El siguiente ejemplo demuestra cómo implementar un contador de eventos usando LabVIEW FPGA . El ejemplo utiliza la lógica booleana para determinar si se ha producido un borde ascendente o descendente. Este ejemplo se puede encontrar en el buscador de ejemplos LabVIEW y navegar hasta: 

LabVIEW 2013 y posteriores: Entrada y salida de hardware»CompactRIO»Generación y procesamiento de señales»Digital»Contadores»Contador de bordes»Contador de bordes.lvproj.

LabVIEW 2012 y versiones anteriores: Entrada y salida de hardware»CompactRIO»Fundamentos de FPGA»Contadores»Contadores de eventos»Ctr de eventos, ambos bordes – cRIO.lvproj

Configuración de su VI de conteo de eventos

  1. Conecte la línea que desea que se cuente a cualquier línea de entrada digital.
  2. Abra y modifique el diagrama de bloques del Quad Ctr VI para que el canal de entrada digital de la señal física reemplace los controles booleanos A y B.
  3. Ejecute el VI para compilarlo y usarlo en modo interactivo.

Figura 1. Modifica tu código para contar señales externas

 

PWM

Utilice la modulación de ancho de pulso (PWM) para emitir una serie de pulsos digitales para controlar un circuito analógico. Puede variar la longitud y la frecuencia de estos impulsos para determinar la potencia total entregada al circuito. Las señales PWM se usan más comúnmente para controlar motores de DC, pero se aplican a muchas otras aplicaciones, como controlar válvulas o bombas o ajustar el brillo de un led.

El tren de pulsos digitales que compone una señal PWM tiene una frecuencia fija y varía el ancho del pulso para alterar la potencia promedio de la señal. La relación del ancho de pulso con el período se conoce como el ciclo de trabajo de la señal. Por ejemplo, si una señal PWM tiene un período de 10 ms y sus pulsos tienen una duración de 2 ms, se dice que esa señal tiene un ciclo de trabajo del 20%. Al controlar el ciclo de trabajo del PMW, puede controlar cuánta potencia utiliza el circuito analógico. Puede utilizar módulos digitales NI para emitir su PWM de control o medir el ciclo de trabajo de un PWM existente.

Si su controlador CompactRIO admite programación NI-DAQmx, también puede implementar tareas PWM en NI-DAQmx. Sin embargo, debido a que PWM requiere contadores, el número de tareas de PWM está limitado por el número de contadores integrados en su CompactRIO. Programar esta tarea en FPGA aumenta el número de tareas de PWM que puede implementar.

Figura 2. Modulación de ancho de pulso

El siguiente ejemplo utiliza el temporizador de bucle.vi para controlar la longitud de los máximos y mínimos de un pulso. Este ejemplo se puede encontrar en el Buscador de ejemplos y navegar hasta:

LabVIEW 2012 y versiones anteriores: Entrada y Salida de Hardware»CompactRIO»FPGA Fundamentals»Contadores»Contadores de Eventos»PWM Out, Simple - cRIO.lvproj

LabVIEW 2013 y posteriores: Entrada y salida de hardware»CompactRIO»Generación y procesamiento de señales»Digital»Modulación de ancho de pulso»Generación PWM»Generación PWM.lvproj.

 

Configuración de su PWM VI

  1. Conecte la línea que desea contar a cualquier línea de entrada digital.
  2. Modifica el diagrama de bloques del PWM Out, Simple VI con el canal de salida digital en el que quieres generar tu PWM.
  3. Ejecute el VI para compilarlo y usarlo en modo interactivo.

Figura 3. Modifica tu código para generar una señal PWM

 

Codificadores

Un codificador es un dispositivo electromecánico utilizado para medir el movimiento o la posición, en aplicaciones como dispositivos médicos o pruebas de máquinas industriales. La mayoría de los codificadores utilizan sensores ópticos para proporcionar señales eléctricas en forma de trenes de pulsos. Los trenes de pulsos múltiples proporcionan más información sobre la señal. Un módulo digital como el NI 9401, puede capturar estos trenes de pulsos y usar el FPGA para traducir las señales en información de movimiento, dirección o posición. También puede utilizar los módulos digitales de la serie C para imitar la salida de un codificador para otras aplicaciones, como las pruebas de hardware en bucle (HIL). Debido a que dan servicio a muchos tipos de aplicaciones, los codificadores pueden venir en muchas formas, tamaños y niveles de salida diferentes.  NI ofrece múltiples módulos digitales que puede integrar con el codificador específico que su aplicación requiere. Utilice el NI 9421 para leer señales de 0 a 24V en un entorno industrial. Utilice el NI 9401 para leer señales de lógica de transistor a transistor (TTL) o de 0 a 5 V en un entorno de laboratorio limpio.

Una vez más, si su controlador CompactRIO es compatible con la programación NI-DAQmx, también puede implementar tareas de codificadores en NI-DAQmx, pero el número de tareas de codificador será más limitado. Programar esta tarea en FPGA aumenta el número de tareas del codificador que puede tener.

El siguiente ejemplo demuestra cómo utilizar LabVIEW FPGA y su sistema CompactRIO para implementar mediciones de codificador. El ejemplo utiliza la lógica booleana para determinar si un codificador AB Quadrature está girando y en qué dirección. Este ejemplo se puede encontrar en el Buscador de ejemplos y navegar a: 

LabVIEW 2013 y posteriores: Kits y Módulos»FPGA»CompactRIO»Generación y Procesamiento de Señales»Digital»Codificación en Cuadratura»Decodificador en Cuadratura» Decodificador en Cuadratura.lvproj.

LabVIEW 2012 y versiones anteriores: Entrada y Salida de Hardware»CompactRIO»FPGA Fundamentals»Counters»Quadrature Input»Quad Ctr – cRIO.lvproj.

Configuración de su aplicación de codificador

    1. Conecte sus señales A y B a dos líneas digitales.
    2. Modificar el diagrama de bloques del Quad Ctr.vi con el canal de entrada digital de la señal física para reemplazar los controles booleanos A y B.
    3. Ejecute el VI para compilarlo y usarlo en modo interactivo.

Figura 4. Utilice la lógica Booleana dentro de la FPGA para rastrear la posición

 

Frecuencia

La frecuencia de una señal digital es la velocidad a la que ocurre el período, donde el período es el tiempo entre los bordes ascendentes o descendentes, o el inverso del período con una unidad de Hertzios (Hz). La frecuencia de una señal digital puede ser extremadamente útil en una amplia variedad de aplicaciones, desde determinar la velocidad o velocidad angular hasta decodificar la intensidad de una fuente de luz. Utilice LabVIEW y CompactRIO para programar su módulo digital de la serie C para transferir la señal digital a la FPGA, que utiliza un algoritmo de decodificación de período. El período se transfiere a una aplicación host, que extrapola la frecuencia. Después de adquirir la frecuencia, puede asignarla a un fenómeno físico conocido.  

Una vez más, al programar tareas de entrada de frecuencia en LabVIEW FPGA, puede aumentar el número de tareas de entrada de FPGA en comparación con NI-DAQmx. Esto puede ser especialmente útil, ya que algunas tareas de entrada de frecuencia requieren dos contadores.

picture.jpg

Figura 5. Periodo y frecuencia de una señal digital

En el siguiente ejemplo se describe cómo implementar mediciones de frecuencia utilizando LabVIEW FPGA y un sistema CompactRIO. El ejemplo utiliza la lógica booleana para determinar cuándo se produce un borde y luego utiliza el reloj FPGA para determinar el tiempo entre pulsos. Este ejemplo se puede encontrar en el Buscador de ejemplos entrando en LabVIEW y navegando hasta:

LabVIEW 2013 y posteriores: Entrada y Salida de Hardware»CompactRIO»Generación y Procesamiento de Señales»Digital»Medición de Período y Fase»Medición de Período y Fase.lvproj.

LabVIEW 2012 y versiones anteriores: Entrada y salida de hardware»CompactRIO»FPGA Fundamentals»Counters»Frequency Measurement»Count and Period – cRIO.lvproj.

Configuración de la medición de frecuencia

  1. Conectar físicamente la señal de interés a una línea digital.
  2. Modificar el diagrama de bloques del Conteo y Período (FPGA) VI con el canal de entrada digital de la señal física para reemplazar los controles booleanos A y B.
  3. Ejecute el VI para compilarlo y usarlo en modo interactivo.
     

Figura 6. Determinar el período y la frecuencia de una señal digital

Más información sobre el uso de hardware NI para mediciones de frecuencia https://www.ni.com/es/shop/adquisicion-de-datos/fundamentos-de-medicion/mediciones-de-frecuencia-como-guiar.html

Filtrado digital

Factores ambientales como el ruido ambiental o el “rebote” mecánico de un interruptor o sensor industrial pueden dificultar que su sistema de adquisición de datos reciba señales claras. Un sistema CompactRIO con FPGA le permite implementar una técnica conocida como filtrado digital o desbote digital. El filtrado digital es el proceso de verificar que una señal ha permanecido en su nuevo nivel durante un período de tiempo especificado antes de permitir que el cambio de señal se propague al aspecto de procesamiento del sistema. Este método filtra fallos o ruido en la línea y reduce el comportamiento no deseado en el sistema.

El siguiente ejemplo demuestra cómo filtrar líneas digitales usando lógica booleana, LabVIEW FPGA y un sistema CompactRIO.  La señal debe permanecer en su nuevo nivel durante el tiempo especificado antes de que la entrada filtrada refleje el cambio. Este ejemplo se puede encontrar en el Buscador de ejemplos entrando en LabVIEW y navegando hasta:

LabVIEW 2012 y versiones anteriores: Entrada y salida de hardware»CompactRIO»Fundamentos de FPGA»Filtro digital»Filtro digital – continuo – cRIO.lvproj. 

LabVIEW 2013 y posteriores: Ya no existe un ejemplo equivalente. Puede arrastrar el fragmento de abajo en un espacio en blanco VI.

 

Filtrar su línea digital

  1. Conectar físicamente la señal de interés a una línea digital.
  2. Modificar el diagrama de bloques del Filtro Digital – continuo VI con el canal de entrada digital de la señal física para reemplazar el control de entrada.
  3. Ejecute el VI para compilarlo y usarlo en modo interactivo.

Figura 7. Filtre su señal digital usando la FPGA

Comunicación

Los sistemas CompactRIO y los módulos de la serie C incluyen muchos protocolos de comunicación estándar, que varían desde seriales y Ethernet hasta protocolos industriales como PROFIBUS y MODBUS. Sin embargo, estos protocolos estándar pueden estar limitados en su capacidad de comunicarse con dispositivos que utilizan diferentes protocolos o conectores.  Un sistema CompactRIO le permite aún comunicarse con estos dispositivos, utilizando un módulo digital y LabVIEW FPGA.

Figura 8. Implementar el protocolo de comunicación SPI usando LabVIEW y LabVIEW FPGA

Consulte Entender el bus SPI con NI LabVIEW para obtener una explicación más detallada de este protocolo, e Implementar el protocolo de comunicación SPI en LabVIEW FPGA para obtener un ejemplo detallado de cómo implementar el protocolo de bus SPI usando LabVIEW FPGA.

Activación personalizada

La activación es una característica esencial en cualquier sistema de adquisición o control de datos. Utilice la activación para sincronizar, alarmas o tareas de inicio/apagado. Sin embargo, las funciones de disparo estándar en NI-DAQmx no ofrecen funcionalidad personalizada, como la capacidad de usar múltiples disparadores de entrada o de disparar desde cualquier borde o ambos bordes.  Utilice FPGA con un sistema CompactRIO para crear aplicaciones de activación personalizadas.

Consulte Creación de disparadores y contadores (módulo FPGA) para obtener un ejemplo de cómo generar un disparador solo cuando se produce un patrón digital. 

Figura 9. Generar un activador solo cuando se produce un patrón digital

Próximos pasos