Ejemplo de conexión Labview / Arduino
Introducción
Trataremos de simular una pantalla del “Bilbao Knutsen”, en concreto la pantalla del generador diésel. Para ello, y dado que no disponemos de esquemas de control específicos ni fórmulas asociadas a la pantalla, hemos optado por utilizar sensores baratos y fáciles de integrar en Labview con el fin de simular el comportamiento de el motor y parte de su panel local.
El hardware elegido es Arduino ya que es hardware libre, barato y dispone de toolkit para Labview.
Integrar Arduino en Labview
Una vez que disponemos de Labview instalado con el módulo de DSC y los drivers Visa, es tan sencillo como seguir los siguientes pasos para instalar el toolkit de Arduino.
- Instalar JKI VI Package Manager (VIPM).
- Desde el VIPM instalaremos la toolkit de Arduino.
- Una vez instalado ya disponemos de Arduino en el panel de funciones de Labview.
- Instalar el firmware de Labview en Arduino
Por último y para poder conectar sensores y que Labview los reconozca, hay que instalar un firmware a nuestro Arduino que proporciona National Instruments. El firmware se encuentra en: <LabVIEW>\vi.lib\LabVIEW Interface for Arduino\Firmware\LVIFA_Base
Esquema de conexiones
Situación real de los componentes
Pantalla principal del generador diesel
Estructura del proyecto
El proyecto consta de dos librerías, una de ellas contiene las pantallas de condiciones iniciales, el HMI y el servidor. La otra contiene las variables compartidas.
Condiciones de arranque (Engine_start_conditions.vi)
Con el fin de proceder al arranque del motor, se deben cumplir ciertas condiciones de forma secuencial para que finalmente de permisivo de arranque.
- Temperatura de cojinetes >= 65ºC.
- Temperatura de fases >= 40ºC.
- Potenciómetro situado en >720 RPMs.
Si alguna de estas condiciones no se diera en el panel HMI nos luciría “Start Failure” y en el panel local se encenderá el led “Common alarm”.
Funcionamiento (Engine_HMI.vi)
Desde el HMI pulsaremos el botón de “Start Simulation” y si superamos las condiciones de arranque notaremos que el motor arranca a 720-750 revoluciones, dependiendo de la posición del potenciómetro.
Una vez que el motor haya arrancado, podemos variar las revoluciones mediante el potenciómetro. Según varíen las revoluciones, lo harán también en relación los Kw, V y A.
La temperatura de cojinetes y la temperatura de fases viene dada por sendos sensores de temperatura, los cuales están configurados para mostrar la temperatura ambiente local + 50ºC y + 40ºC respectivamente.
El tanque de emergencia de D.O está configurado manualmente para que arranque la bomba a un 40% de nivel y pare a un 80% de nivel. Si el nivel del tanque es menor de un 15% o mayor de un 85% nos lucirá en el HMI la “Common alarm” y en el panel local lucirá el led respectivo a la “Common alarm”.
Hay configurados dos enclavamientos del motor, por fallo en la batería (battery failure alarm) y por disparo común (common trip alarm). Cualquiera de ellas dispara el motor teniendo que arrancarlo cumpliendo nuevamente las condiciones iniciales de arranque. Con el fin de no saturar al programa con comandos aleatorios, los fallos se invocaran por medio de dos pulsadores según indica el esquema de conexiones. A su vez, cuando se de cualquiera de los fallos, lucirá su propio led de fallo en el panel local.
Todo ello corre sobre un servidor periódico que será el que nos permitirá visualizar las alarmas generadas mediante la simulación.
Alarmas configuradas
Con el fin de darle más realismo a la simulación se han configurado dos alarmas que se mostrarán en un panel de alarmas del DSC añadido al panel HMI.
La primera de las alarmas configuradas es la referente a las revoluciones y tiene configurados los siguientes límites:
La siguiente alarma configurada es referente a la temperatura de los cojinetes del motor y tiene configurados los siguientes límites:
Conclusiones
Este en un pequeño ejemplo de lo que puede dar de si la fusión entre Labview y Arduino, en el que el único límite es vuestra imaginación. Podéis descargar los archivos del proyecto aquí.
Glosario de términos
- DSC: Datalogging and Supervisory Control.
- HMI: Interfaz de usuario por sus siglas en idioma inglés, (Human Machine Interface) que se usa para referirse a la interacción entre humanos y máquinas; Aplicable a sistemas de Automatización de procesos.
- Toolkit: Conjunto de herramientas.