Blog de indusele

Labview

EJEMPLO 6. Encender y apagar un led a través de Labview por comunicación serie

Escrito por indusele 08-02-2015 en Labview. Comentarios (0)

Una vez que hemos hecho el EJEMPLO 5 y que entendemos los fundamentos de la comunicación serie con arduino, vamos a intentar hacer un control desde labview para encender un led conectado a nuestra arduino. En primer lugar tengo que escribir un código en la consola de Arduino. Es muy sencillo tal y como se puede ver en el siguiente enlace. Para establecer el acceso al puerto serial desde Labview se debe iniciar una sesión VISA añadiendo un bloque “VISA configure serial port” y definir las características de inicio: Para establecer el acceso al puerto serial desde Labview se debe iniciar una sesión VISA añadiendo un bloque “VISA configure serial port” y definir las características de inicio:

Tengo que colocar un control para escribir el comando inicial y puedo hacerlo mediante una lista desplegable como se ve en el vídeo o mediante un string control tal y como se muestra:

El string control se debe insertar en el Front Panel porque si se hace en el diagrama de bloques directamente seleccionando un control desde la patilla, dará error (aunque no sé muy bien por qué razón). No hay que olvidar colocar un Property Node con la característica que vamos a usar…

… ni un VI para el cierre de la sesión VISA, con lo que podremos dar otra función al puerto.

Como es lógico, lo primero que se deberá hacer será enchufar la placa Arduino con el USB y compilar. Hay veces que la consola da el error “Puerto no encontrado” y se debe a que el puerto está siendo utilizado en algún otro programa, lo que no es raro en este tipo de aplicaciones. Para resolverlo habrá que cerrar todas las ventanas de Labview (incluso la de inicio), desenchufar el USB, volver a enchufar y volver a compilar.

Una vez que el código está cargado se puede comprobar abriendo el Monitor Serial de Arduino y escribiendo los comandos en la ventana de envío de datos:

Como tendremos conectado un LED en el pin 13 (según el código) y a GND podremos ver de forma visual si se enciende y apaga. A continuación simulamos en Labview y podremos hacer la misma comprobación, hemos logrado enviar datos de Labview a la placa de Arduino lo que nos permitirá hacer ejemplos más complejos.

“Si se quiere ascender por cuestas empinadas, es necesario al principio andar despacio.” William Shakespeare

EJEMPLO 5. Cómo encender un led mediante un control PWM desde Labview

Escrito por indusele 07-01-2015 en Labview. Comentarios (0)

Lo primero desearos un feliz año 2015 a todos. Espero que hayáis cargado las pilas porque hoy veremos los resultados de todo lo que hemos aprendido acerca de cómo utilizar Arduino en Labview.

Hace algunos meses, expliqué lo que era un control PWM e hicimos un ejemplo fácil de encendido de un LED para seguir aprendiendo a programar en la consola de Arduino. Por lo tanto, es el momento de realizar un ejemplo sencillo como el encendido de un LED a través de un control PWM pero esta vez en Labview.

Para ello, construyo tanto el Scada como el esquema de bloques. Lo primero que quiero es un control del PWM y una visualización de la señal.

A continuación tengo que cambiar el tipo de datos del control numérico a un byte sin signo (unsigned 8 por ser 1 byte igual a 8 bits) al ser con lo que trabaja Arduino:

Comprobaremos que cambia de color tanto al dar OK como al conectarse con el Waveform char ya que van a trabajar con el mismo tipo de datos y cada dato queda representado por un color. Paso a definir los pines con un bloque de input/output y señalo que voy a emplear en la conexión el pin 11 al ser una salida PWM. El pin se declarará mediante una constante numérica que sirve para decir si el pin es de entrada o salida. Para cambiar de input a output y viceversa tengo que dar doble click y donde se indica (me saldrá una lista desplegable con los ítems que añadí antes).

Por último, quiero que al pulsar stop se apague el LED:

Una vez que esté todo completado nos queda:

Si usáis una MEGA como hago yo, os saldrá un error al dar al run. Lo que tenéis que hacer es lo que vimos en posts anteriores, agregar un control VISA y un control para la propia placa tal y como se explicó anteriormente. Si no te acuerdas, siempre puedes revisar el vídeo resumen del ejemplo que hice:


“Un viaje de diez mil kilómetros empieza por un solo paso.” Proverbio chino

Cómo comunicar Arduino MEGA con Labview

Escrito por indusele 02-12-2014 en Labview. Comentarios (0)

En post anteriores he explicado cómo instalar la toolkit para trabajar con Arduino en Labview pero muchos os habréis encontrado con el problema de que vuestra Arduino MEGA no establece una buena comunicación. Esto se debe a que los bloques Arduino de Labview trabajan por defecto con Arduino UNO. 

Para un Arduino MEGA se debe colocar un elemento adicional: un control de VISA y un control de la propia placa. VISA es una herramienta específica de Arduino que funciona como una especie de OPC. El OPC es un estándar de comunicación en el campo del control y supervisión basado en tecnología Microsoft y que ofrece una interfaz común que permite que distintos equipos individuales puedan compartir datos a través de una arquitectura cliente-servidor. Esto significa que puedo compartir datos entre elementos de distintas marcas comerciales (la mayoría han incluido OPC en sus productos) solucionando el problema de la adaptación de drivers. Se puede descargar VISA de forma gratuita aquí.

A continuación se comprueba que todo esté configurado para MEGA haciendo doble click para cada elemento. Cuando lo hacemos es importante hacer un run para saber si hay errores pero es más importante desactivar el modo run para que no dé errores. 

Pasemos a realizar un programa básico para que quede claro:

Lo primero para cualquier programa de Arduino va a ser el bloque básico en el que se definirá la entrada, la salida, un pulsador de emergencia o paro y todo englobado en un bloque while lo que significa que vamos a llevar a cabo las instrucciones de Arduino hasta que pulsemos el paro, el botón de STOP. Posteriormente, se realizarán las modificaciones para Arduino MEGA tal y como se ha explicado al principio. Os dejo un vídeo con todos los pasos para que quede más claro:


"No puede haber grandes dificultades cuando abunda la buena voluntad." Nicolás Maquiavelo

¿Es posible comunicar Arduino y Labview?

Escrito por indusele 14-11-2014 en arduino. Comentarios (0)

Por supuesto, y esto nos permite aprovechar todas las ventajas de las que hemos hablado tanto de Arduino como de Labview. Hoy vamos a ver cómo conseguirlo.

En primer lugar nos tenemos que ocupar de la instalación del programa en nuestro ordenador desde la página web de National Instruments. En segundo lugar, se conectó el Arduino al ordenador a través del cable USB por el que se cargará el programa o sketches que realizamos para nuestra aplicación particular.

El siguiente paso es la instalación de la toolkit gratuita de Arduino, NI LabVIEW Interface for Arduino Toolkit la cual se puede adquirir también en la web de National Instruments. Esta toolkit permite establecer una interfaz con el microcontrolador Arduino usando Labview o, explicado de forma más simplificada, adquirir los datos del microcontrolador Arduino y procesarlos en el entorno de programación gráfica de Labview. Una vez instalada, se debe instalar un Firmware en Arduino el cual está dentro de una carpeta en el directorio donde se han instalado los componentes del toolkit, la cual se llama LVIFA_Base y se encuentra dentro de vi.lib y en la ruta de Archivos de Programa. Cargamos el firmware \ LabViewvi.libLabVIEW Interface for ArduinoFirmwareLVIFA_Base en nuestro Arduino como si fuera un programa y abrimos uno de los archivos que están dentro de la carpeta LVIFA_base. El último paso es compilar, cargar en Arduino y ajustar la velocidad del puerto serie de nuestro Arduino ya que  en Labview por defecto se trabaja a 115200; se cambian por lo tanto los 9600 que muestra el puerto serie en el administrador de tareas por los 115200 que muestra Labview para un correcto funcionamiento y buscamos qué puerto COM utiliza Arduino para después usar esta información en Labview. A continuación se presentan un tutorial paso a paso del proceso seguido:

Descarga de VI Package Manager

Se trata de un administrador de herramientas que gestionará la instalación del toolkit de Arduino. En la web se permite la descarga de forma gratuita y para la última versión. Aunque en un principio pueda parecer que el hecho de emplear una versión 2014 para Labview 2013 sea un motivo de errores esto no es así. No obstante, tal y como se informa junto al link de descarga, es necesaria una versión de 2011 como mínimo (requisito con el que se cumple).

Instalación de Labview Interface for Arduino

Al abrir el VI Package Manager se busca “Arduino” para localizar la toolkit tal y como se observa en el vídeo resumen (al final del post). Tenemos que acceder a la ventana de instalación de la toolkit.

Por otro lado y para evitar problemas es importante hacer una serie de modificaciones previas en Labview. Debería aparecer una configuración como la que se ilustra excepto en el valor destacado en naranja ya que se trata de la dirección IP del ordenador desde el que se trabaja, por lo que será distinto. Después de esto ya se puede realizar la instalación tal y como se indicó al inicio de este apartado.

Cómo conseguir que Arduino y Labview “se entiendan” o hablen el mismo lenguaje.

Simplemente se tienen que descargar una serie de códigos que deben ejecutarse en el compilador de Arduino y que se puede ver en el resumen del ejemplo que he realizado como comprobación; si se han seguido los pasos anteriores y se ha efectuado correctamente las instalaciones pertinentes Arduino aparecerá en la paleta de funciones del Labview. No obstante, los ejemplos que nos encontraremos están desarrollados para Arduino UNO. Para un Arduino MEGA se debe colocar un elemento adicional: un control de VISA y un control de la propia placa. VISA es una herramienta específica de Arduino que funciona como una especie de OPC. El OPC es un estándar de comunicación en el campo del control y supervisión basado en tecnología Microsoft y que ofrece una interfaz común que permite que distintos equipos individuales puedan compartir datos a través de una arquitectura cliente-servidor. Esto significa que puedo compartir datos entre elementos de distintas marcas comerciales (la mayoría han incluido OPC en sus productos) solucionando el problema de la adaptación de drivers. Se puede descargar VISA de forma gratuita aquí.

Podéis ver el siguiente vídeo resumen con los pasos seguidos:


¡Ya lo tenemos instalado! En los próximos días os explicaré alguna cosilla más y subiré un ejemplo sencillo de control mediante Scada desde Labview usando la placa Arduino que hemos adquirido (en mi caso, la MEGA).

Como veis, a veces tenemos que plantearnos si se pueden usar varias herramientas de forma conjunta puesto que las ventajas que nos pueden dar pueden marcar la diferencia en nuestras aplicaciones; como dice el refrán, “La abeja de todas las flores se aprovecha”.

Introducción a Labview

Escrito por indusele 07-11-2014 en Labview. Comentarios (0)

Labview es un lenguaje G, lo que significa que se trata de un lenguaje gráfico de programación o, lo que es lo mismo, un programa para realizar Scadas. La diferencia básica con los programas convencionales es que no se configura mediante forma escrita sino dibujado lo que permite trabajar con una serie de bloques prediseñados que representan el Sistema de Control de forma visual, lo que simplifica la labor de control y la comprensión y asimilación del funcionamiento del sistema.

Los programas se dividen en Panel Frontal y Diagrama de Bloques. También se hablará de instrumentos virtuales o Vis que son representaciones de instrumentos físicos de medición como osciloscopios y multímetros.

Panel Frontal

Es la propia interfaz con el usuario, la forma de comunicar las máquinas con el operario cuando el programa se está ejecutando lo que implica que define los controles empleándolos como entradas y los indicadores como salidas o, explicado de forma más sencilla, recoge las entradas procedentes del usuario y representa las salidas proporcionadas por el programa. Normalmente, los controles son botones, ruletas y barras deslizantes que simulan los dispositivos de entrada de instrumentos y suministran los datos al diagrama de bloques del VI; los indicadores generalmente son gráficas, tablas, LEDs y secuencias de estado que simulan dispositivos de salida de instrumentos y muestran los datos que el diagrama de bloques adquiere o genera.

En resumen, como ya hemos visto, el panel frontal estará formado por una serie de botones, pulsadores u otros elementos gráficos definidos como control o indicador. Los controladores servirán para introducir parámetros mientras que los indicadores mostrarán resultados producidos (datos recogidos o resultados de alguna operación). Dispondremos de todo tipo de controles indicadores a los que asignaremos un terminal en el diagramas de bloques de forma que se pueda diseñar un proyecto en el Panel Frontal donde los controles e indicadores serán las entradas y salidas respectivamente con las que se ejecutará el programa general. A esto se le llama asignar al diagrama de bloques mediante terminales.

Los objetos en la ventana del panel frontal aparecen como terminales en el diagrama de bloques siendo meros puertos de entrada y salida que intercambian información entre el panel frontal y el diagrama de bloques. Los terminales son análogos a los parámetros y constantes de los lenguajes de programación y existen distintos tipos, como de control o indicador y de nodos. Los datos proporcionados en los controles del panel frontal pasan al diagrama de bloque a través de éstos empleándose en las funciones definidas y transfiriéndose a los terminales de salida.

Diagrama de bloques

Es el propio programa en el que se define la función que tiene que desempeñar el Sistema. En él se colocan los iconos que realizan una determinada función y se interconectan elaborando un código de control del programa. Por lo tanto, el diagrama de bloques incluirá funciones y estructuras integradas en las librerías que incorpora Labview. Hay que tener en cuenta que “en el lenguaje G las funciones y las estructuras son nodos elementales. Son análogas a los operadores o librerías de funciones de los lenguajes convencionales”.

El diagrama de bloques se construye conectando los distintos objetos entre sí de forma que la transmisión de datos se produce a través de esas funciones; respecto a las estructuras, son similares a los lenguajes de programación escritos, a las declaraciones causales y a los lenguajes convencionales de forma que el código se ejecutará de forma condicional o repetitiva empleando bucles.

Los objetos del diagrama de bloques incluyen terminales, subVIs, funciones, constantes, estructuras y cables, los cuales transfieren datos junto con otros objetos del diagrama de bloques. Después de crear la ventana del panel frontal, se añadirá el código valiéndose de las representaciones gráficas de funciones para controlar los objetos del panel frontal quedando éste contenido en la ventana del diagrama de bloques.

Paletas

Son las herramientas proporcionadas en Labview para la edición de los objetos tanto del panel frontal como del diagrama de bloques. La paleta de controles contiene los controles e indicadores empleados para la creación estando dividida en varias categorías en función de las necesidades de la aplicación.

Por otro lado, la paleta de funciones contiene los Vis, funciones y constantes que se utilizan para la creación del diagrama de bloques. Al igual que la paleta de controles, también contiene distintas categorías para facilitar la búsqueda según las necesidades.

Ventajas de emplear Labview

  • Se reduce el tiempo de desarrollo de las aplicaciones por su facilidad de aprendizaje y por su naturaleza intuitiva.
  • Dota de gran flexibilidad al sistema, permitiendo cambios y actualizaciones tanto del hardware como del software.
  • Da la posibilidad a  los usuarios de crear soluciones completas y complejas.
  • Con un único sistema de desarrollo se integran las funciones de adquisición, análisis y representación de datos.
  • Es sistema está dotado de un compilador gráfico para lograr la máxima velocidad de ejecución posible.
  • Presenta la posibilidad de incorporar aplicaciones escritas en otros lenguajes.