Kitabı oku: «Programación gráfica para ingenieros»
Programación gráfica para ingenieros
Primera edición, junio 2010
© 2010 José Miguel Molina Martínez
© 2010 Manuel Jiménez Buendía
© 2010 MARCOMBO, S.A.
Gran Via de les Corts Catalanes, 594
08007 Barcelona
Diseño de la cubierta: NDENU DISSENY
«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra sólo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra».
ISBN-13: 978-84-267-2066-5
ÍNDICE
Bloque I
LabVIEW. Lenguaje de Programación Gráfico
1. Entorno de Programación LabVIEW
1.1 INTRODUCCIÓN
1.2 PROGRAMACIÓN GRÁFICA
1.3 INSTRUMENTOS VIRTUALES
1.4 MENÚS DE LABVIEW
1.5 BARRA DE HERRAMIENTAS (TOOLBAR)
1.6 PALETAS DE CONTROLES, FUNCIONES Y HERRAMIENTAS
2. Diseño y creación de una aplicación. Instrumento Virtual
2.1 INTRODUCCIÓN
2.2 CREACIÓN DE UN VI
2.3 FLUJO DE DATOS (DATAFLOW)
2.4 SUBVIS
2.5 PROYECTOS
3. Programación Estructurada y Tipos de Datos
3.1 INTRODUCCIÓN
3.2 ESTRUCTURAS EN LABVIEW
3.2.1 Estructuras iterativas
3.2.2 Estructuras de casos y eventos
3.2.3 Estructuras de secuencia (Flat Sequence y Stacked Sequence)
3.2.4 Estructuras temporizadas. Timed Loop y Timed Sequence
3.2.5 Nodos de Fórmula (Formula Node) y Scripts
3.2.6 Variables locales, globales y compartidas
3.3 TIPOS DE DATOS
3.3.1 Tipos Primitivos: Boolean, Numeric y String
3.3.2 Arrays y Clusters
4. Análisis y Visualización de Datos
4.1 INTRODUCCIÓN
4.2 INDICADORES DE TIPO CHART
4.2.1 Waveform Chart
4.2.2 Intensity Chart
4.3 INDICADORES DE TIPO GRAPH
4.3.1 Waveform Graph
4.3.2 XY Graph
4.3.3 Intensity Graph
4.3.4 Digital Waveform Graph y Mixed Signal Graph
4.3.5 Cursores en los gráficos
4.3.6 Gráficos 3D
4.4 OTROS INDICADORES GRÁFICOS
5. Programación Avanzada
5.1 INTRODUCCIÓN
5.2 ARQUITECTURAS BÁSICAS DE PROGRAMACIÓN
5.2.1 Arquitectura de Simple
5.2.2 Arquitectura de un VI General
5.2.3 Arquitectura de Máquina de Estado
5.2.4 Manejo de Errores.
5.3 NODOS DE PROPIEDAD Y MÉTODOS
5.4 MANIPULACIÓN DE DATOS
5.4.1 Type Cast
5.4.2 Manipulación de Bytes y Bits
5.4.3 Otras Transformaciones.
5.5 MANEJO DE FICHEROS
5.5.1 Abrir y Cerrar Ficheros
5.5.2 Ficheros de Texto
5.5.3 Ficheros Binarios
5.5.4 Ficheros de Hoja de Cálculo (Spreadsheet)
5.5.5 Format Into File y Scan From File
5.5.6 Path
5.5.7 Measurement File (VIs Express)
5.5.8 Ficheros ZIP
5.5.9 VIs Avanzados
5.5.10 Ficheros de Configuración
5.5.11 Ficheros XML
5.5.12 Ficheros de Imagen y Sonido
5.5.13 Informes (Reports)
5.5.14 Almacenamiento (Storage)
5.5.15 Datalog
5.5.16 Waveform.
5.6 ACCESO REMOTO Y ENLACES DE DATOS
5.6.1 Publicación Web y Acceso Remoto
5.6.2 Enlaces de Datos
5.6.3 VI Server
5.7 CREACIÓN DE LIBRERÍAS Y EJECUTABLES
5.8 INTERFAZ DE USUARIO
5.8.1 Personalización de la apariencia del VI
5.8.2 Subpaneles, Splitters y Pestañas
5.8.3 Personalización de Menús
5.8.4 Teclado
5.8.5 Consejos para el Diseño de la Interfaz de usuario
Bloque II
Sistemas de Control y Adquisición de Datos
6. Sistemas de Instrumentación y Control basados en ordenador
6.1 INTRODUCCIÓN
6.2 ESTRUCTURA DE UNA APLICACIÓN DE INSTRUMENTACIÓN Y CONTROL POR ORDENADOR
6.3 SENSORES TRANSDUCTORES
6.4 TIPOS DE SEñALES.
6.5 ACONDICIONAMIENTO DE SEñAL
6.5.1 Amplificación
6.5.2 Linealización.
6.5.3 Excitación de Transductores.
6.5.4 Aislamiento
6.5.5 Filtrado.
6.6 ELECTRÓNICA DE ADQUISICIÓN DE DATOS
6.7 ELECTRÓNICA DE ANÁLISIS
6.8 COMPUTADOR Y SOFTWARE.
6.9 INSTRUMENTACIÓN VIRTUAL
7. Tarjetas de Adquisición de Datos y Controladores Compactos
7.1 INTRODUCCIÓN
7.2 CARACTERÍSTICAS DE LOS EQUIPOS DE ADQUISICIÓN DE DATOS Y CONTROL
7.2.1 Entradas y salidas analógicas
7.2.2 Conversión a digital
7.2.3 Puertos digitales y contadores
7.3 TARJETAS DE ADQUISICIÓN DE DATOS
7.3.1 Tarjeta de adquisición NI USB-6008
7.4 CONTROLADORES COMPACTOS
7.4.1 Compact FieldPoint
7.4.2 CompactRIO.
8. LabVIEW para la adquisición de datos y el manejo de dispositivos electrónicos
8.1 INTRODUCCIÓN
8.2 MEASUREMENT & AUTOMATION EXPLORER (MAX)
8.3 PROGRAMACIÓN DE TARJETAS DE ADQUISICIÓN (DAQ) EN LABVIEW
8.3.1 DAQmx
8.3.2 DAQ Assistant.
8.4 PROGRAMACIÓN DE CONTROLADORES COMPACTOS COMPACT FIELDPOINT
8.4.1 Requisitos para la programación.
8.4.2 Conexionado y alimentación.
8.4.3 Configuración con MAX
8.4.4 Creación de un VI y ejecución en FieldPoint
8.5 PROGRAMACIÓN DEL CONTROLADOR COMPACTO COMPACTRIO.
8.5.1 Componentes de una aplicación de tiempo real en CompactRIO
8.5.2 Requisitos para la programación.
8.5.3 Conexionado y alimentación.
8.5.4 Configuración con MAX
8.5.5 Creación de un VI y ejecución en CompactRIO.
Bloque III
SCADA
9. Introducción a los sistemas SCADA
9.1 INTRODUCCIÓN
9.2 DEFINICIÓN DE SISTEMAS SCADA
9.3 PRINCIPALES FUNCIONES DE UN SISTEMA SCADA
9.4 NIVELES CIM EN SISTEMAS DE CONTROL INDUSTRIALES.
9.5 COMPONENTES HARDWARE DE LOS SISTEMAS SCADA.
9.6 COMPONENTES SOFTWARE DE UN SISTEMA SCADA
9.6.1 OPC (OLE for Process Control).
9.6.2 OBDC (Open Data Base Connectivity)
9.6.3 Almacenamiento de datos. Bases de datos industriales
9.6.4 Módulos de un sistema SCADA.
9.6.5 Paquetes SCADA y fabricantes
10. Desarrollo de SCADAs con LabVIEW
10.1 INTRODUCCIÓN
10.2 LABVIEW Y LOS SISTEMAS SCADA
10.2.1 Comunicación con los Controladores Industriales.
10.2.2 Utilizar OPC en LabVIEW. OPC estÁ en mÓdulo DSC
10.2.3 Generación de históricos.
10.2.4 Generación de informes (Reports).
10.2.5 Monitorización Remota
10.2.6 Comunicación con los Controladores Industriales.
10.2.7 Servidores OPC
10.2.8 Ejemplos de utilización de LabVIEW para la Supervisión y Control en Aplicaciones de Riesgo.
10.3 MÓDULO DSC DE LABVIEW
10.3.1 Introducción al DSC.
10.3.2 Creación de una aplicación con el módulo DSC.
Bibliografía
Bloque I
1. Entorno de Programación LabVIEW
1.1 Introducción
LabVIEW es un lenguaje de programación de alto nivel, de tipo gráfico, inicialmente enfocado a la realización de aplicaciones para el control de instrumentación. Desde su aparición, LabVIEW se ha convertido en un auténtico lenguaje y entorno integrado de programación, ya que cuenta con todos los recursos necesarios para elaborar cualquier tipo de algoritmo en aplicaciones muy variadas. Los programas desarrollados con LabVIEW se llaman Instrumentos Virtuales, o VIs, lo que da una idea de su uso en origen: el control de instrumentos. El lema de LabVIEW es: “La potencia está en el Software”. Entre sus objetivos están la reducción del tiempo de desarrollo de aplicaciones y facilitar el desarrollo de aplicaciones a programadores no expertos en informática. Pero una de sus mayores cualidades es la existencia de numerosos paquetes que permiten combinar este software con todo tipo de hardware, como tarjetas de adquisición de datos, controladores, autómatas programables, sistemas de visión, FPGAs, etc.
En este capítulo y en los sucesivos, se intentarán establecer las bases necesarias para que lectores puedan desarrollar aplicaciones enfocadas al campo de la adquisición de datos, supervisión y control y, más concretamente, para la automatización de sistemas de riego. A continuación, comenzaremos proporcionando una visión general sobre el entorno LabVIEW.
1.2 Programación Gráfica
LabVIEW (Laboratory Virtual Instrument Engineering Workbech) fue creado por la empresa National Instruments (fundada en 1976 en Austin, Texas) para funcionar sobre máquinas MAC, salió al mercado por primera vez en 1986. En la actualidad se encuentra disponible para las plataformas Windows, UNIX, Mac y Linux. La última versión (8.6), liberada en Agosto de 2008, cuenta con soporte para el sistema operativo Windows Vista. En la Tabla 1.1 se puede observar la evolución de este entorno y las principales características aportadas con cada una de las versiones.
La programación G constituye el corazón de LabVIEW, y difiere de otros lenguajes de programación como C ó Basic, en que éstos están basados en texto, mientras que en G se utiliza programación gráfica. Los programas en G, o VIs (acrónimo de Virtual Instrument) constan de una interfaz interactiva de usuario y un diagrama de flujo de datos que hace las funciones de código fuente.
Año | Versión |
1986 | LabVIEW 1.0, primera versión en Mac OS |
1990 | LabVIEW 2.0, máximo aprovechamiento de los resultados |
1992 | LabVIEW 2.5, primera versión en Windows 3.1 y Solaris |
1993 | LabVIEW 3.0 |
1994 | LabVIEW 3.0.1, primera versión en Windows NT |
1994 | LabVIEW 3.1 |
1995 | LabVIEW 3.1.1, integración del Application Builder (creación de archivos ejecutables) |
1996 | LabVIEW 4.0 |
1997 | LabVIEW 4.1 |
1998 | LabVIEW 5.0, multitarea, contenedores ActiveX, asistente para la adquisición de dato (tarjetas de adquisición DAQ) e asistente para el control de instrumentos |
1999 | LabVIEW 5.1, primera versión para Linux, primera versión de LabVIEW RT (Real Time) |
2000 | LabVIEW 6.0, controles gráficos en 3D, referencias de controles |
2001 | LabVIEW 6.1, mejoramiento y correcciones, primera versión en Palm OS |
2003 | LabVIEW 7.0, VI Express, primera versión en Windows Mobile 2003 |
2004 | LabVIEW 7.1, traducción en francés, alemán y japonés |
2005 | LabVIEW 8.0, Project Explorer, XControls, shared variables |
2005 | LabVIEW 8.1, mejoras y correcciones |
2006 | LabVIEW 8.20, Programación orientada a objetos |
2007 | LabVIEW 8.5, primera versión del toolkit FPGA y del toolkit Statechart |
2008 | LabVIEW 8.6, limpieza automática de los diagramas |
Tabla 1.1. Diferentes versiones de LabVIEW aparecidas en el mercado.
De forma más específica, el entorno de programación gráfico LabVIEW se estructura siguiendo la analogía con los instrumentos de laboratorio a los que trataba de emular en sus primeras versiones. Así, un instrumento virtual consta de:
• Panel Frontal. Es la interfaz interactiva de usuario de un VI, debido a que simula el panel de un instrumento físico. El panel frontal puede contener botones, interruptores, pulsadores, gráficas y otros controles e indicadores. Los datos se introducen utilizando el ratón y el teclado, y los resultados se muestran en la pantalla del ordenador.
• Diagrama de Bloques. Se construye en G y constituye el código fuente del programa o VI. Supone una solución gráfica a un determinado problema de programación.
Los VIs son jerárquicos y modulares. Pueden utilizarse como programas de alto nivel o como subprogramas de otros programas o subprogramas. Cuando un VI se usa dentro de otro VI, se denomina subVI. El icono y los conectores de un VI funcionan como una lista de parámetros gráficos de forma que otros VIs puedan pasar datos a un determinado subVI.
1.3 Instrumentos Virtuales
Los programas de LabVIEW se denominan instrumentos virtuales o VI, debido a que su apariencia y operación imita a los instrumentos físicos, tales como osciloscopios y multímetros. LabVIEW contiene un amplio abanico de herramientas para adquisición, análisis, despliegue y almacenamiento de datos, así como herramientas que ayudan a especificar su código de ejecución.
En LabVIEW, se construye una interfaz de usuario, o panel frontal (véase la Figura 1.1), con controles e indicadores. Los controles son texto, botones de acción, interruptores y otros dispositivos de entrada. Los indicadores son gráficos, LED, objetos para mostrar texto o números y otros elementos. Una vez construida la interfaz, el código se agrega en el diagrama de bloques utilizando subVIs y estructuras para controlar los objetos del panel frontal.
Figura 1.1. Panel Frontal.
El diagrama de bloques (véase la Figura 1.2) contiene el código fuente gráfico. Los objetos del panel frontal aparecen como terminales en el diagrama de bloques. Adicionalmente, el diagrama de bloques contiene funciones y estructuras incorporadas en las bibliotecas de LabVIEW. Los cables conectan cada uno de los nodos en el diagrama de bloques, incluyendo controles e indicadores de terminal, funciones y estructuras.
Figura 1.2. Diagrama de bloques.
En este diagrama de bloques se llama al subVI Temp, que implementa una subrutina que obtiene una temperatura desde una tarjeta de adquisición de datos (DAQ). Esta temperatura es representada, junto con el valor medio de la temperatura, en la gráfica de forma de onda Temperature History. El interruptor (Power) es un control booleano que se colocó en el panel frontal para detener la ejecución del bucle de iteración While Loop. Esta estructura iterativa (While Loop) también contiene un terminal (i) que indica el número de iteración que se está ejecutando (la primera iteración es la número 0).
A partir de LabVIEW 7.0 se introdujo un nuevo tipo de subVI denominado Express VI. Estos son VIs interactivos que tienen una configuración mediante un cuadro de diálogo que permite al usuario personalizar su funcionalidad de manera rápida e intuitiva. A partir de esta configuración LabVIEW genera un subVI basado en dichos argumentos.
Los VIs estándar están constituidos a su vez por un panel frontal y un diagrama de bloques que son usados dentro de otro VI.
Las funciones son los bloques básicos para la construcción de todos los VIs, pero no tienen un panel frontal o un diagrama de bloques (por ejemplo, funciones aritméticas de suma, resta, multiplicación, etc.).
1.4 Menús de LabVIEW
La barra de menús de la parte superior de las ventanas de LabVIEW contiene diversos menús pull-down (desplegables). Cuando hacemos clic sobre un ítem o elemento de esta barra, aparece un menú por debajo de ella. Dicho menú contiene elementos comunes a otras aplicaciones Windows, como Open (Abrir), Save (Guardar) y Paste (Pegar), y muchas otras particulares de LabVIEW.
La Figura 1.3 muestra la barra de menús para la versión 8.6.1, común para el panel frontal y el diagrama de bloques.
Figura 1.3. Barra de menús de la versión 8.6.
File (Archivo) | Sus opciones se usan básicamente para abrir, cerrar, guardar, imprimir VI, etc. |
Edit (Edición) | Se usa principalmente para organizar el panel frontal y el diagrama de bloques y establecer nuestras preferencias. |
View (Ver) | Muestra las distintas paletas, errores, navegadores, etc. |
Project (Proyecto) | Presenta los niveles de jerarquía, los subVIs que lo |
integran, los que están sin abrir, busca VIs, etc. | |
Operate (Función) | Sus comandos sirven para ejecutar el VI. |
Tools (Herramientas) | Se accede a una serie de herramientas para compilar el VI, publicarlo como página Web, etc. |
Windows (Ventanas) | Se utiliza básicamente para mostrar (Show) ventanas. |
Help (Ayuda) | Muestra una ayuda sobre los diferentes iconos y otros aspectos de LabVIEW. |
El menú de LabVIEW que utilizaremos con más frecuencia es el menú de contexto o emergente (Pop-up) de objetos, al que se accede situando el cursor sobre un objeto y pulsando el botón derecho del ratón. Si la pulsación se hace sobre un espacio vacío, el menú que se obtendrá variará en función de la herramienta seleccionada.