Instrumentación Virtual: Un Curso Básico

¿Instrumentación Virtual?

Objetivo del Curso
Capacitar a los participantes del curso en el desarrollo de sistemas basados en instrumentación virtual para medir, monitorear, registrar y controlar variables físicas en los procesos industriales.

Alcance del Curso. Los conocimientos adquiridos en el curso permiten desarrollar cualquier instrumento empleado en las áreas de Instrumentación Industrial. . disciplinas que demandan el manejo de tareas complejas de fabricación/elaboración . Control de Procesos y Automatización.

Es importante entender lo que se lee. – Dado que un instrumento virtual es en esencia un programa de computadoras especializado. – . • Cierta experiencia en programación aunque no indispensable. • Leer atentamente. Querer es poder.Requisitos Mínimos • Buen Manejo de Microsoft Windows. – Una computadora será nuestra herramienta para crear el instrumento. – • Motivación .

medición y/o control tradicional. .¿De qué se trata la Instrumentación Virtual? • Computadora (industrial) ejecutando un programa especializado que contando con un hardware económico. y manejadores (drivers) hace las veces del instrumento de prueba. tales como placas para insertar.

. • Variable de Proceso Medida: Temperatura.La Instrumentación Virtual es Real • Un programa de computadoras es el Instrumento.

… La Instrumentación Virtual es Real .

Costos de mantenimiento altamente reducidos. Software: clave del instrumento.Instrumentación Virtual Los Beneficios • • • • El usuario. Precios accesibles. alta eficiencia: resultados de las inversiones y avances tecnológicos en la industria de la computación. . y no el vendedor. define la funcionalidad del instrumento. flexibilidad.

El Código Fuente es un Diagrama de Bloques Funcionales. Lenguaje G.¿Qué es LabVIEW? • Es la herramienta que emplearemos para crear instrumentos virtuales. – Con LabVIEW podemos crear y ejecutar nuestros instrumentos.. – – . Su siglas… – • Es un lenguaje de programación de propósito general. Es posible desarrollar aplicaciones utilizando sólo iconos o símbolos gráficos sin precisar de líneas de instrucciones escritas. Puede ser totalmente gráfico si se desea. • Su forma de programación es gráfica. Laboratory Virtual Instrumet Engineering Workbech.. • Pero… ¿Qué significa LabVIEW?. – Pero incluye librerías de funciones y ambientes de herramientas que están diseñadas especialmente para adquisición de datos y el control de procesos.

– Distinto de la lenguajes orientados texto. . donde es el orden de las instrucciones escritas las que determinan la ejecución.… ¿Qué es LabVIEW? • Un flujo de datos determina la forma de ejecución del programa creado.

RS-232. pruebas y soluciones para cálculos específicos. Redes y ActiveX. – Rápida ejecución. Posee un grupo de librerías para ser aplicadas a software estándares como el TCP/IP. . • Permite la creación de programas compilados de 32 bits. RS-485 y tarjetas de adquisición de datos (DAQ). PXI. VXI. • • Creación de binarios ejecutables. velocidades necesarias para la adquisición de datos. – GPIB.… ¿Qué es LabVIEW? • Completamente integrado en comunicación con una gran cantidad de hardware.

– – – – – – Adquirir datos y procesar señales. .¿Qué podemos hacer con LabVIEW? • Desde realizar medidas simples de temperatura hasta controlar el acelerador de partículas más grande del mundo. Medición y Control Industrial. Control de Instrumentos. Diseñar sistemas embebidos. Automatizar sistemas de prueba y validación. Enseñanza e Investigación Académica.

Cuenta con cientos de funciones integradas para procesamiento de señales y matemáticas. disparo. • Implementar Control PID y Control Avanzado. Permite implementar temporización. – – Permite realizar medidas de alta velocidad y alta resolución con una amplia variedad de sensores y actuadores industriales. sincronización. Permitiendo ejecutar prácticamente cualquier algoritmo de control desde PID básico hasta control avanzado no lineal. LabVIEW provee acceso a los FPGAs de NI CompactRIO. control y procesamiento de señales personalizados para E/S digital y analógica. – – • – Programación FPGA para Circuitos Personalizados. Es posible diseñar algoritmos de control propios dado todas las herramientas disponibles par tal fin. los cuales constituyen chips reconfigurables de alto desempeño que pueden programarse. – .¿Qué podemos hacer en el área de Automatización Industrial? • Adquirir mediciones de alta velocidad y precisión.

Elementos que constituyen un Instrumento Virtual Panel Frontal Instrumento Virtual Diagrama de Bloques Icono/Conexion es .

diales y otros dispositivos de entrada. Indicadores: son gráficos. displays entre otros. – Representan los terminales interactivos de entrada y salida del VI respectivamente. . • Se construye con la incorporación de controles e indicadores. LED’s. – La representación gráfica del panel creado se aprecia en la pantalla de una computadora. Seria la contraparte virtual del panel frontal de un instrumento tradicional. • • Controles: se muestran como perillas.¿Qué es el Panel Frontal? • • Representa la interfaz gráfica de usuario del programa creado. botones para pulsar.

… ¿Qué es el Panel Frontal? .

• Los objetos del panel frontal aparecen como terminales en el diagrama de bloques. nodos. Representa la contraparte de la circuitería interna de los instrumentos tradicionales. – Controles e Indicadores. – • Una vez construido el panel frontal. • Define la funcionabilidad.¿Qué es el Diagrama de Bloques? • Contiene el código fuente gráfico del VI. – Es posible incorporar funciones. el usuario incorpora código gráfico a fin de controlar los objetos del panel frontal. . subrutinas. – Lenguaje G.

.

.

.

.

.

– SubVI: correspondería a una subrutina para efectos de un lenguaje de programación orientado a texto. Conector: se usa para definir los terminales de entrada y salida del VI. Icono: es lo que el usuario ve en el diagrama de bloques cuando se usa un VI como SubVI. • • • Se ubican en la esquina superior derecha de la ventana del panel frontal y el diagrama de bloques. . de modo que le usuario pueda utilizarlo como VI.El Icono y Conector • Identifican el modo en el usuario puede usar un VI dentro de otro: SubVI.

.

.

.

.

.

.

.

LabVIEW. Herramientas de Programación .

Las Paletas .

… Las Paletas Paleta de Controles: • Disponible sólo en el Panel frontal. • Se invoca desde la barra de menú: View → Controls Palette. • Contiene los controles e indicadores del panel frontal que usuario utilizará para crear la interfaz de usuario. • Modo alternativo: clic derecho en el lugar de conveniencia. .

… Las Paletas Paleta de Funciones: • • • • Sólo disponible en el diagrama de bloques. Invocación: Barra de Menú → View → Functions Palette. nodos y subrutinas o subvis. . Modo Alternativo: clic derecho en el lugar de preferencia. Contiene los objetos que se utilizarán para programa su VI: funciones.

.

.

.

Elementos de Programación Tradicional. .

Estructuras: • También se emplean en leguajes de programación orientados a texto. entre otros. el bucle FOR. la estructura Sequence y la estructura EVENT. • Las fundamentales son: el bucle While. • Nodos que suplen el flujo de ejecución el diagrama de bloques.Estructuras. .: MatLab. p ej. la estructura Case. Basic.

…Estructuras. . la cantidad de repeticiones o iteraciones va estar sujeta al cumplimiento de una condición. Bucle While. Su equivalente escrito es: Do Execute Subdiagram While condition is True. Bucle While: • • • WHILE: voz inglesa que significa “MIENTRAS”. No parará “MIENTRAS” no se cumpla una condición satisfactoria para tal fin. Es un bucle repetitivo.

.…Bucle While. Ejemplo.

Su equivalente escrito es: For i=0 to i=N-1 Execute Subdiagram. • • . repítelo PARA N veces. Ejecuta repeticiones un número predefinido de veces. N. Término “FOR” significa “PARA”. es decir. Puede verse como un con libro con N páginas repetidas que al terminar de pasarlas. el bucle para de hacer repeticiones. Bucle FOR: • • También es un bucle repetitivo. Bucle FOR.…Estructuras.

Ejemplo. .…Bucle FOR.

Estructura CASE Estructura CASE: CUADRO • • • • No es un bucle repetitivo. Puede utilizarse como selector un valor entero. .…Estructuras. También puede verse como un libro con varias páginas (cuadros) que pueden pasarse. Cada pagina contiene un código diferente cuyo orden de ejecución estará sujeto a un switche (selector). una cadena de caracteres o un valor numérico. un valor booleano.

…Estructura Case. Ejemplo. .

N.3.…Estructuras. cada una de ellas contentivas de un sub-código diferente. ej.: 0.. . ésta ejecuta cada página en forma secuencial.2. El orden de ejecución no depende de un switche de página sino de una secuencia natural. Estructura Sequence Estructura Secuencial: • • • También puede verse como un libro de varias páginas.N-1. p. Diferente de la CASE..1.

. Ejemplo.…Estructura Sequence.

Estructura EVENT. . Cuando ocurre un evento en panel frontal. • • • Se trata de un estructura CASE con capacidades especiales. El orden de ejecución de las páginas (en caso de que tenga varias) va estar sujeta a un evento. LabVIEW por medio de la estructura ejecutará la página correspondiente o asociada a dicho evento.… Estructuras.

Estructura EVENT, Ejemplo.

…Elementos de Programación, Arreglos y Agrupaciones.
Arreglos:

Arreglo Unidimensional 1N

Podría verse como un vector (unidimensional) o una matriz (bidimensional). Corresponden a una colección de datos de elementos. Poseen un tamaño variable y todos los elementos son del mismo tipo. Cada elemento tiene una ubicación mediante la cual es posible acceder a ellos. Poseen un índice que va desde 0 hasta n-1; donde n es el n es el número de elementos. El vector que muestra el primer ejemplo es [0.4 0.9 1.4 0.8 -0.1 -0.7 -0.3 0.3 0.2].

Arreglo Bidimensional 2N.

.

.

ésta modificación del texto.…Cadena de Caracteres • • Los textos que tienen los controles e indicadores pueden ser modificados o a estos puede introducirse un nuevo texto. con el uso de la herramienta de operación o la herramienta de etiqueta o texto. un indicador y sus respectivos terminales . En la figura puede apreciarse un control.

…Cadena de Caracteres. Menú de Funciones de Texto. • En la figura se muestra el menú de funciones de texto. en el cual hay características particulares para cadenas de caracteres: .

.

Gráficos y Registradores • A pesar de que existen 9 tipos registradores: sólo se expondrán los tres primeros: – – – Diagrama con Forma de Onda (WFC). • Para emplear gráficos. el usuario debe invocar la paleta Controls y luego la subpaleta Graph: . Gráfico con Forma de Onda (WFG) Gráficos XY (XYG).

Solo es capaz de representar un punto a la vez. Puede representarse una curva completa con la ayuda de un bucle repetitivo (FOR o WHILE) para que genere los puntos y.…Gráficos y Registradores WFC. se vaya construyendo la curva completa. Registrador WFC: • • • • Fue creado con el propósito especial de representar puntos (escalares). En la ilustración se muestra su apariencia y respectivo terminal. en tiempo real. . Aunque también puede representar un único arreglo (vector).

Se representa un arreglo a la vez. Se requiere de un nodo de agrupación para: – – Incorporar Time Info Trazar varias curvas.…Gráficos y Registradores. WFG. • Las curvas pueden actualizarse en tiempo real. . Registrador WFG: • • • Está destinado para representar especialmente arreglos de puntos (vectores o matrices).

XYG Registrador XYG: • • • Con éste es posible representar una agrupación de arreglos (una gráfica XY) o bien un conjunto de agrupaciones de arreglos (varias gráficas XY). En la ilustración puede observarse la apariencia de este registrador y su terminal: . Puede representarse una agrupación de arreglos o un conjunto de agrupaciones de arreglos a la vez «los arreglos pueden actualizarse en tiempo real».…Gráficos y Registradores.

. un arreglo o curva para el eje X y un arreglo o curva para el eje Y. Así mismo. un elemento de concatenación de arreglos.…Registrador XYG. además del nodo de agrupación. es posible trazar varias graficas XY en un mismo registrador sólo con emplear. • • Puede trazarse una única gráfica XY al emplear un nodo de agrupación para obtener una agrupación de un par de arreglos. en este caso sería N arreglos o curvas para el eje X y N arreglos o curvas para el eje Y.

.

la forma de llegar a Data Adquisition es seleccionando como Functions» Data Adquisition. las cuales funcionan para diferentes clases de VI’s.Adquisición de Datos (DAQ) • • Los VI’s de DAQ se puede conseguir en la paleta Functions desde el diagrama de bloques. En subpaleta Data Adquisition se encuentran contenidos cuatro iconos correspondientes a cuatro sub-paletas. .

Para llegar a estas. de esta selección al hacer clic en Analog Input aparecerá la sub-paleta que se muestra en la figura: . Están dispuestos allí para operaciones de entradas analógicas. Entradas Analógicas • • • Es el primer icono que encontramos en la paleta Data Adquisition. se selecciona Functions»Data Adquisitions»Analog Input.…DAQ.

Para conseguir las salidas analógicos de VI’s se debe seleccionar Functions» Data Adquisition» Analog Ouput: . Salidas Analógicas. • • Tal como su nombre lo indica estos VI’s llevan a cabo operaciones de salidas analógicas.…DAQ.

.

.

en términos más técnicos puede cabe agregar que representa un punto de comunicación (interfaz) entre la instrumentación virtual (computadoras capaces de medir y controlar) y la instrumentación de campo (proceso). un conjunto de bases con terminales numerados y uno o más módulos de entrada y salida (E/S). • Un convertidor DAC/ADC. . sin embargo. • Este sistema consiste en por lo menos un módulo de red.NI-FIELDPOINT® Un Banco FieldPoint.

.… NI-FIELDPOINT® • En la figura se muestra un banco FieldPoint 2000 desarrollado por la compañía National Instruments.

8 ms. ±5 V. 0-30 V. 0-1 V. Resolución de 12 bits. 8 canales para la recepción señales de voltaje y 8 canales para la recepción de señales de corriente. Tasa de actualización: 2. Inserción en Caliente (Hot PnP): No hace falta desenergizar el banco para incorporar y poner operativo un módulo de E/S adicional.… NI-FIELDPOINT® • • • • • • • • • El Módulo FP-AI-100 reúne las siguientes características o especificaciones técnicas: Ocho (8) canales de entrada analógica. 0-20 mA. Doble aislamiento para un voltaje de seguridad de 250 V en la operación. 0-15 V. 4-20 mA. ±20 mA. Once (11) rangos de entrada: ±15 V. ±30 V. . 0-5 V. Rango de temperatura de operación: de -40 a +70 ºC. Aislamiento de entrada a salida: 2500 Vrms. ±1 V.

Aislamiento de entrada a salida: 3000 V. por su parte. Temperatura de operación: de -40 hasta +70 ºC. Resolución DAC de 12 bits. Hasta 1KΩ de impedancia de carga (con 24 V de alimentación). Hot PnP: No hace falta desenergizar el banco para incorporar y poner operativo un módulo de E/S adicional. Protección en presencia de corto circuito. Indicadores de lazo abierto de corriente.5 mA de sobre-rango. Con capacidad de manejar hasta 0.… NI-FIELDPOINT® • • • • • • • • • • • El Módulo FP-AO-200. Doble Aislamiento para un voltaje de operación segura de 250 V. . reúne las siguientes características técnicas: Ocho (8) salidas de 0-20 mA/4-20 mA.

Procesamiento Inmediato. ¿Un espacio de tiempo real puede durar una hora? Por ejemplo.¿Qué es Real-Time? • • • • • En informática. Sincronización. Responde a un evento dentro de un periodo de tiempo garantizado. . los datos se reciben al mismo tiempo que se generan. Virtualmente hablando.

Primer Esquema: Control Asistido Por Computador. .

Segundo Esquema: Control Ejercido por los PACs con LabVIEW Real Time. .

Redes DCS/SCADA .

• Segundo se envía la trama de datos.Cliente Servidor TCP/IP • • Para Servidor: – Escuchar y esperar a que algún cliente pida una conexión. . Ahora de la trama de datos y leeremos tantos bytes como se indique en la primera lectura. – Una vez que se han enviado los datos se cierra la conexión Para Cliente: – Abrir la conexión en un puerto y en dirección del servidor de datos. – Una vez se ha finalizada la lectura de datos se cierra la conexión. – Una vez que se pide la conexión. • Primero se envía la longitud de la trama de datos. – Hacer una primera lectura de 4 bytes donde se leerá longitud de trama de datos. – Realizar la segunda lectura.

Escribir los datos en la conexión DataSocket cada vez que los datos se actualicen. • Para Cliente. Únicamente es necesario conocer el nombre del PC (dirección TCP/IP) donde se publican los datos y realizar la lectura de los datos de interés. – .Cliente Servidor DataSocket • Para Servidor: – – Abrir una conexión DataSocket utilizando un nombre que identifica los datos a transmitir.

.

.

.

.

.

.

.

.

.

Muchas Gracias!! .Gracias.

 4 .

9. 5069769. 5 63..9.0 5   4:  :3.9  7659 679.45.9 3 /.3.0. 1 679.1.6 7.56 1 .31.. :.:.0 5 1 . 1 .35.6 5 4 136 1 & .506 7.  94:  6/3 . 1:59. 679.6 1 5.  L   %:630 5 1  /. .:3.479.0 5  %..0 ..45..1065.9.9.1 1   5 3. 1 :91. 6.3.:  5:90 5 5 . #5#  !6 .3  '.

 .   .

 3 136 #.

".

: . 050.0.9 :. 9 5 3.: :5.9.9.: 0.:  "06  :.: 1 .31. 769 : 7.0.

 4.

7..5.1 1 4.   4 1 :6/9.9 . 4  65 0.01.:.

.9. ..9..6 1 5. 1 069.1065.:.6  '479. 065   1 .31. 5069769.  1 471.9  7659 679. #5# !6 .3.506 7. 1 679.9.56  %:630 5  1  /..    6/3 :3. 5 63.  6.. 1    .345..6 5 4 136 1 & .6 .169: 1 3.00 5 5 79:50.0 5  #96.0 5 :9.6 1 06995.6 090.9 3 /.45.9.50.45.0 ./9. 1:59. 1 679. :. 1 0.9.6 7.1.9.:  510.3  :3.0 5 1 .

 .:..   .

-.W 3 31472E9./4 W $3.39.0394 /03974 /0 :3 5074/4 /0 90254 .743.7.3 W &3 085.O3 W '79:. !47 00254 .94 W #08543/0 .-03 . 5:0/0 /:7..08.20390 . 2824 90254 6:0 80 0307.4 /0 90254 70. !74.. :3 0.20394 320/..3/4 48 /.7 :3.948 80 70. 47.

.

.

.

430O3 .430O3 !..430O3  W !720748003..97...9480070248 9.080.430O303:35:079403/70./0..2.W W !.2.303.9:7. &3.708507. 47.06:080.430O3 &3.94880.0.077.J./0-908/43/080007E439://097./0/.9:7.0390 -77.948 #0.$07.7.97.07:3.948 ././0/..0.57207.3./0/.80:3/.97./47/0/..2.7.2.7.03905/.0.06:0805/0.0.:../0/.7./448/.57207.O3/0807....J.439://0.948 &3..3948-908.424803/6:003./47 8..13......9:7..94880. /0/.9:7.948 W $0:3/48003.:3.077.6:0.

..94803..74.948..3/4:3342-70 6:0/0391.38297 8./.7-748/.W !..070342-70/0! /70.7.97.0390 3.9:.08.09.0 6:048/./47 -77:3.$4.9..O3%!.434.94880.03 W !.$07.7.48/..430O3.09:9.203900830.$4.430O3.9...

9:7..94870.! /43/0805:-.0..7 .348/.948/03907F8  ./048/.