Adquisición y Procesamiento de datos con LabView

download Adquisición y Procesamiento de datos con LabView

of 41

description

Descripción de como procesar y adquirir datos en Labview

Transcript of Adquisición y Procesamiento de datos con LabView

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

ANEXO 3: ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW3.1 LabVIEW 5.1

3.1.1 El entorno LabVIEW y la instrumentacin virtual

LabVIEW (Laboratory Virtual Instrument Engineering Workbench), de National Instruments, es un sistema de programacin grfico diseado para el desarrollo de distintas aplicaciones como el anlisis de datos, la adquisicin de datos y el control de instrumentos [8]. La versin de LabVIEW utilizada para este proyecto es la 5.1.

Al ser LabVIEW un lenguaje de programacin grfico y basado en un sistema de ventanas, muchas veces es ms sencillo de utilizar que otros lenguajes ms tpicos. Mucha gente que habitualmente no intentara disear una aplicacin puede conseguirlo con LabVIEW

Este tipo de lenguaje se desarroll a partir de la aparicin de la instrumentacin virtual, es decir , con el uso de los ordenadores para realizar medidas (temperatura, presin, caudal, etc), aprovechando las caractersticas de stos ltimos (potencia de clculo, productividad, capacidad de visualizacin grfica y capacidad de conexin con otros dispositivos), para optimizar los resultados

En definitiva, se puede concluir diciendo que con un ordenador personal, un hardware adecuado (placas de adquisicin de datos), unos drivers y un software como LabVIEW, se pueden obtener datos muy provechosos y mejores que si se utilizan instrumentos tradicionales tales como osciloscopios, generadores de seal, analizadores de espectros, analizadores vectoriales, etc.

A3-1

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

3.1.2 Ventajas de usar Labview

Seguidamente se van a describir las ventajas de usar este tipo de lenguaje de programacin:

- La primera ventaja de usar LabVIEW es que es compatible con herramientas de desarrollo similares y puede trabajara la vez con programas de otra rea de aplicacin, como Matlab o Excel. Adems se puede utilizar en muchos sistemas operativos, incluyendo Windows y UNIX, siendo el cdigo transportable de uno a otro.

- Otra de las ventajas ms importantes que tiene este lenguaje de programacin es que permite una fcil integracin con hardware, especficamente con tarjetas de medicin, adquisicin y procesamiento de datos (incluyendo adquisicin de imgenes).

- Es muy simple de manejar, debido a que est basado en un nuevo sistema de programacin grfica, llamado lenguaje G.

- Es un programa enfocado hacia la instrumentacin virtual, por lo que cuenta con numerosas herramientas de presentacin, en grficas, botones, indicadores y controles, los cuales son muy esquemticos y verstiles. Estos seran complicados de realizar en bases como C++ donde el tiempo para lograr el mismo efecto sera muchas veces mayor.

-Es un programa que contiene libreras especializadas para manejos de DAQ (tarjetas de adquisicin de datos), Redes, Comunicaciones, Anlisis Estadstico, Comunicacin con Bases de Datos (til para una automatizacin de una empresa a nivel total).

- Como se programa creando subrutinas en mdulos de bloques, se pueden usar otros bloques creados anteriormente como aplicaciones por otras personas.A3-2

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

A continuacin se representa una tabla que describe otro tipo de ventajas del instrumento virtual frente al instrumento tradicional:

3.1.3 Aplicaciones de LabVIEW

Labview tiene su mayor aplicacin en sistemas de medicin, como monitoreo de procesos (como en el caso de este proyecto, ya que se representan las curvas de fluidez y viscosidad de diversos fluidos) y para aplicaciones de control. Adems, LabVIEW se utiliza bastante en el procesamiento digital de seales, en el procesamiento en tiempo real de aplicaciones biomdicas, manipulacin de imgenes y audio, automatizacin, diseo de filtros digitales, generacin de seales, entre otras, etc.

A3-3

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

3.1.4 Programacin con LabVIEW

Con la llegada del software de programacin grfica LabVIEW de National Instruments el proceso de realizacin de un programa se ha facilitado en gran medida al minimizarse el tiempo (costes) de desarrollo de las aplicaciones.

La forma de programar en LabVIEW es muy distinta a otros lenguajes de programacin que se basan en texto, como C , VISUAL BASIC o FORTRAN.

La principal diferencia con respecto a los anteriores lenguajes de programacin es que LabVIEW utiliza los smbolos grficos, denominados iconos, para representar el programa de acciones. Los programas de LabVIEW se denominan VI VIs (Visual Instruments), instrumentos virtuales (programas), debido a que su aspecto y operacin reproducen a instrumentos tradicionales [9]como osciloscopios, generadores de seales, analizadores, etc (Figura 1).

Figura 1: ejemplo de instrumento tradicional (osciloscopio).

Un instrumento virtual (programa) se define como un mdulo de software que simula el panel frontal del instrumento, y ayudndose en elementos hardware accesibles por un ordenador (tarjetas de adquisicin de datos, como es en el caso de este proyecto, instrumentos accesibles va GPIB, General Purpose Interface Bus, puerto serie, etc) , realiza una serie de medidas que equivalen a las que se obtendran en un instrumento real.

De este modo, cuando se ejecuta un programa que acta como un instrumento virtual o VI, el usuario o usuaria ve en la del ordenador personal un panel cuyaA3-4

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

funcin es idntica a la de un instrumento fsico, facilitando as la visualizacin y el control del aparato. Un programa creado en LabVIEW consta de dos partes[8]:

El panel frontal (Figura 2a) El diagrama de bloques (Figura 2b).

En el panel frontal, el cual simula el panel frontal de un instrumento fsico, se disea la interfaz con el usuario y contiene los elementos que van a caracterizar el programa. En l se ven los datos y all se controlan y se manipulan.

En cambio, en el diagrama de bloques se aprecia la estructura del programa, su funcin y algoritmo, de forma grfica en lenguaje G, en el cual los datos fluyen a travs de lneas.

Figura 2 a : panel frontal.

Figura 2b :diagrama de bloques .

PALETAS DE TRABAJO

Tanto en el panel frontal como en el diagrama de bloques, existe una paleta de herramientas, que sirve tanto para editar el programa, o ejecutarlo segn el modo de trabajo que se tenga.

A3-5

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

En el panel de control existe la paleta de controles Controls Palettte(figura 3), que contiene indicadores pudindolos visualizar como tablas, grficos en 2D o 3D, etc , y controles que pueden ser booleanos, numricos, strings, un arreglo matricial de stos o una combinacin de los anteriores .

Figura 3: Paleta de controles e indicadores.

En el diagrama de bloques hay tres paletas diferentes: primero se tiene la paleta de funciones Functions Palette (figura 4), la cual contiene todas las funciones que se van a utilizar en la programacin (se describirn algunas ms delante).

Figura 4 . Paleta de funciones en el diagrama de bloques.

A3-6

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Las funciones constan de entradas y salidas e igual que en un lenguaje de programacin estndar, procesan las entradas y entregan una o varias salidas. LabVIEW tiene programas de adquisicin de datos e imgenes, de comunicaciones, de procesamiento digital de seales, de funciones matemticas simples, hasta funciones que utilizan otros programas como Matlab o Excel. Adems, para resolver problemas ms complejos, existen otro tipo de unciones llamados "nodos de frmula" que se utilizan para la resolucin de ecuaciones, editando directamente, como si se tratara de lenguaje de programacin tradicional, definiendo las entradas y las salidas. Otra paleta, llamada paleta de herramientas Tools Palette(figura 5), contiene una serie de elementos que ayudan a la confeccin del diagrama de bloques (conexiones de los bloques mediante cableado, aadir texto para una mejor comprensin de cada parte del programa, examen de resultados, entre otros). El cableado es muy importante que se realice correctamente ya que debe estar todo conectado para que no d errores al compilar el programa.

Figura 5: Paleta de Herramientas de LabVIEW

Por ltimo existe la paleta en modo de ejecucin (Figura 6), que contiene varios botones principales: (los dems casi no se utilizan)

A3-7

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Modo sucesivo

Highlight

Ejecucin

Stop

Pausa

Figura 6 : Botones principales de la paleta de ejecucin.

-Con el botn Ejecucin se ejecuta una vez el programa. Cuando est ejecutando, se cambia a rayado y aparece un botn de Stop con el cual se puede detener el programa. Normalmente no se para el programa con este botn, sino que se crea un botn de paro booleano. Si flecha de ejecucin aparece rota indica que hay un error en el programa. Al hacer clic con el ratn se muestra una lista de errores, y al hacer click en cada uno de los errores se mostrar dnde se encuentra dicho error. - Modo sucesivo hace que el programa ejecute el programa indefinidamente hasta que se presione el botn de stop. - El botn Pausa detiene momentneamente la ejecucin del programa hasta que se vuelve a presionar el mismo. - Al presionar Highlight muestra como fluyen los datos y cmo son esos datos a travs del cableado del programa. Adems, el programa se ejecuta de forma lenta para tener una mejor resolucin.

A3-8

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

FLUJO DE DATOS

Hay que tener en cuenta que cuando se realiza una conexin en un programa, para que exista concordancia con el flujo de datos, esta conexin se identifica por un tipo de dato especifico que debe coincidir con el tipo de dato de la entrada del programa. Esto no es necesariamente cierto ya que puede haber varios tipos de datos conectados, como por ejemplo un conjuntos de variables distintas, denominado Cluster (Figura 7).

Figura 7: Dato tipo Cluster. Puede contener variables STRING, INTEGER, etc

El flujo de datos va de izquierda a derecha en el diagrama de bloques y esta determinado por las operaciones o funciones que procesan los datos. Se puede observar en dicho diagrama cmo se calculan los datos en cada parte del programa cuando se realiza una ejecucin de ste paso a paso. Adems se ve que la ejecucin del programa es secuencial, es decir, una tarea no se inicia hasta no tener en todos sus variables de entrada informacin o que las tareas que le preceden hayan terminado de ejecutarse (Figura 8).

Figura 8: ejecucin secuencial del programa de la figura 2 a y 2b.

A3-9

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

En un programa, las variables se representan mediante una figura tanto en el panel frontal como en el diagrama de bloques (ver figura anterior). De esta manera, se puede observar su respuesta en el interfaz del usuario y en el flujo de datos del cdigo del programa.

3.1.5 Tipos de datos y estructuras en LabVIEW

1) TIPOS DE DATOS

Al elegir los controladores e indicadores en LabVIEW se les asigna automticamente una clase de datos. Se presentan dos tipos de datos, los no estructurados (no divisibles en componentes) y los estructurados (divisibles en componentes). Cada dato en el panel de control tiene su dibujo en el diagrama de bloques.

a) Datos no estructurados o escalares:

Este tipo de dato se caracterizan porque no se pueden dividir en otros componentes ms pequeos. Estos tipos, denominados estndar, no necesitan definirse en el programa, ya que se asume que son conocidos , en incluyen los valores lgicos (BOOLEAN) , los nmeros enteros (INTEGER), los nmeros reales (REAL) y los conjuntos de caracteres (CHAR). Un ejemplo de stos se puede observar en la figura 9:

Figura 9: Ejemplo de dato no estructurado, en este caso, Real

b) Datos estructurados:

Un dato estructurado se define como el conjunto de variables reunidas bajo un nico nombre en comn. Estas estructuras de datos se construyen a partir de los tipos de datos elementales ya vistos en el apartado anterior.A3-10

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Los datos estructurados en LabVIEW son los siguientes: matrices (ARRAYS), CLUSTERS, controles e indicadores STRING, y ficheros de ENTRADA/ SALIDA.

b.1) ARRAYS Un Array es una coleccin de datos, todos ellos del mismo tipo, pudiendo tener una o ms dimensiones. Adems existen una serie de funciones (construccin de un array, creacin de un subarray de un array, reemplazar una parte de un array, entre otras), con las que se pueden manipular estos arrays (Figuras 10 a y b).

Figura 10a: Representacin de un Array 1-D en el panel del control.

Figura 10b : Funcin Array en diagrama de bloques.

b.2) CLUSTERS Un Cluster es una coleccin ordenada de uno o ms elementos. A diferencia de los Arrays, un Cluster puede contener cualquier combinacin de tipo de datos. Para acceder al cluster es necesario aplicar una serie de funciones especficas de stos que descomponen o unen los datos (Figura 11 a y b).

A3-11

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Figura 11a: Representacin de un Cluster en LabVIEW

Figura 11b:Funcin Cluster en el diagrama de bloques.

b.3) CONTROLES E INDICADORES STRING

Este tipo son controles e indicadores de cadenas de caracteres ASCII. Se puede acceder a ellos mediante la paleta de controles e indicadores, y como los anteriores, poseen diversas funciones para cambiarlos (ver figura 12 a y b).

Figura 12a: Controlador STRING en LabVIEW

Figura 12 b: Funcin STRING en el diagrama de Bloques.

b.4) FICHEROS DE ENTRADA/SALIDA

Los ficheros de Entrada/Salida permiten el almacenamiento y la recuperacin de informacin a y desde un disco. En la paleta de funciones de LabVIEW existen una gran variedad de funciones (suprogramas) para tratar las diferentes operaciones con ficheros, los cuales son: almacenamiento de datos en un archivo nuevo, almacenamiento en un archivo ya existente, recuperacin de datos desde un archivo y almacenamiento de resultados (Figura 13).

A3-12

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Figura 13: Ejemplos de subprogramas de fichero ENTRADA /SALIDA en el diagrama de bloques de LabVIEW

2) TIPO DE ESTRUCTURAS EN LABVIEW

Existen dos tipos de programacin en LabVIEW: la programacin estructurada y la programacin modular.

a) Programacin Estructurada:

La programacin estructurada se basa en el uso de cuatro conjuntos de estructuras: Secuencial Condicional Iterativa Formula node.

a.1) ESTRUCTURA SECUENCIAL

La estructura Secuencial se compone de una serie de acciones elementales que se ejecutan en el orden que se han descrito. Se ilustra como diapositivas o negativos de una pelcula, ejecutndose los diagramas de bloques de forma secuencial En LabVIEW este tipo de estructura se denomina SEQUENCE, y est formada por una serie de marcos o frames que se ejecutan segn el orden de aparicin (ver figura 14). Hay que tener en cuenta que en LabVIEW esta estructura se ejecutar cuando se disponga de todos los datos de entrada.

A3-13

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Figura 14. Ejemplo de estructura secuencial SEQUENCE

a.2) ESTRUCTURA CONDICIONAL

La estructura Condicional se emplea cuando dos o ms acciones alternativas dependen de una condicin (se denomina CASE en LabVIEW, ver figura 15). El trmino de entrada que va a determinar qu condicin se cumple estar unido al selector indicado con una interrogante [?] (ver figura 15).Lo ms caracterstico de esta estructura es que est formada por mltiples

subdiagramas, de los que slo es visible uno a la vez , identificndose por un valor en su parte superior.

Selector Figura 15: Ejemplo de estructura CASE

Los subdiagramas se ejecutarn segn qu valor tome el identificador dentro de los n posibles . Adems dentro de estos subdiagramas se pueden crear tneles para sacar o introducir datos .

a.3) ESTRUCTURA ITERATIVA

La estructura Iterativa o Repetitiva es otro tipo de programacin que puede aparecer, la cual se compone de acciones que implican una repeticin sistemtica de un proceso.

A3-14

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Existen dos tipos de estructuras iterativas en LabVIEW diferentes entre s, la estructura WHILE LOOP y la estructura FOR LOOP[10]: en una estructura WHILE LOOP la accin se repite mientras que la condicin de entrada a la estructura sea cierta. Si es falsa nunca se ejecutar. En cambio, para una estructura FOR LOOP, la accin se repite tantas veces como indique una variable que acta de contador (ver Figuras 16 y 17).

Figura 16: Ejemplo de estructura WHILE LOOP.

Figura 17: Ejemplo de estructura FOR LOOP.

a.4) ESTRUCTURA FORMULA NODE

Esta estructura posee caractersticas similares a las estructuras vistas anteriormente, pero que, en lugar de contener subdiagramas, posee una o ms frmulas separadas por punto y coma. Se utilizar sobre todo el FORMULA NODE cuando se quiera ejecutar frmulas matemticas que seran complicadas de realizar mediante las herramientas matemticas incluidas en LabVIEW (Figura 18).

A3-15

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Figura 18: Ejemplo de FORMULA NODE en LabVIEW.

b)Programacin Modular:La programacin modular se basa en dividir el programa en partes que tengan una personalidad propia, es decir, en dividir el programa en LabVIEW en varios subprogramas que ahorren tiempo y esfuerzo a la hora de realizar y ejecutar el programa.

Los subprogramas tienen las mismas propiedades que un programa y se utilizan mediante la creacin de iconos y conectores que facilitan la lectura y la interpretacin del instrumento virtual global. En el proyecto se utilizar una mezcla de ambas programaciones, tanto modular como estructurada.

3.2 Diseo de programas en LabVIEW 5.1Este proyecto se compone de dos programas: el primero (CURVAS_FLU) calcula las curvas de fluidez y de viscosidad de cualquier fluido no newtoniano (en el rango de viscosidades del viscosmetro), mientras que el segundo (RELAJACIN) calcula los tiempos de relajacin y de recuperacin (caractersticos de cada tipo de fluido) mediante la representacin de las grfica de viscosidad aparente frente al tiempo, realizando cambios bruscos de velocidad de deformacin.

A3-16

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

3.2.1 PROGRAMA CURVAS_FLU El programa consta de dos ventanas, el panel de control y el diagrama de bloques. El panel de control es el panel virtual que se ocupa del control del programa, mientras que el diagrama de bloques contiene toda la programacin.

PANEL DE CONTROL DESCRIPCIN GENERAL (Figura 1):

Figura 1. Panel de control del programa CURVAS_FLU (ensayo para el ketchup). Como se puede ver en la figura 1, en el panel de control de CURVAS_FLU, insertando un cierto tiempo de medida, unos puntos determinados para representar las curvas, el nmero de canales que se usan de la tarjeta de adquisicin[7] y el rango de velocidad utilizado, se obtienen finalmente las curvas de fluidez y viscosidad.

A3-17

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

CONTROLES E INDICADORES:

Este panel de control contiene cinco controladores y dos indicadores, cada uno de ellos con su correspondiente smbolo en el diagrama de bloques (a la hora de crear el programa, la inclusin de controles e indicadores en el panel es lo primero que se hace): Controlador Tiempo: se utiliza para poner el tiempo en segundos que se quiere que dure el ensayo. Controlador Nmero de puntos: con este controlador se aade la cantidad de puntos con que se representarn cada una de las grficas. Controlador Memoria interna: se utiliza para sealar el tamao del buffer de puntos (con un mximo de 200 puntos) que va a guardar los resultados para representar con ellos las curvas a tiempo real. Controlador Rango de Velocidad de Deformacin: con este interruptor se decide a qu velocidad se quiere que trabaje el viscosmetro (baja, media o alta). Cuanto ms viscoso sea el fluido menor velocidad de deformacin se aplicar ya que si no se saldr de rango y no se podr representar grficamente. Puede ser a velocidades bajas (para viscosidades aparentes altas, de 10000 mPas a 100000 mPas), a velocidades medias (para viscosidades de 600 mPas a 10000 mPas) y a velocidades altas (para viscosidades aparentes bajas, hasta 600 mPas). Estos rangos se han obtenido a partir de los distintos ensayos. Adems, hay que tener en cuenta que este selector se debe poner igual que el del viscosmetro. Controlador Configuracin del canal: es un Cluster (agrupacin de datos de distinto tipo) donde se introducen el nmero de canales de la tarjeta de adquisicin, que se van a utilizar para adquirir las seales de esfuerzo cortante y velocidad de deformacin provenientes del viscosmetro, y el nmero del canal por el que se empieza a adquirir los datos.

-

-

-

-

-

A3-18

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

-

Indicador Grfica de esfuerzo cortante vs. Velocidad de deformacin: representar la curva de fluidez del fluido, utilizando un indicador XY Graph similar al caso anterior. Indicador Grfica de viscosidad vs. velocidad de deformacin:es una grfica que representar la curva de viscosidad de un fluidos (los resultados obtenidos al ejecutar el programa). LabVIEW posee indicadores que

-

presentan grficas de los datos obtenidos en el programa. Estos se encuentran en el submen Graph en el men de controles. Para cada uno se pueden configurar muchos parmetros como escala de la grfica, autoescala, color de las lneas, nmero de lneas en una grfica, presentacin de letreros, paletas de control, indicadores, etc. En este caso necesitamos un indicador XY Graph[11]: ste es una grfica en donde los datos entran por pares

ordenados en una matriz bidimensional, o una matriz de clusters de dos datos cada uno (X, Y). El resultado que se obtiene es una secuencia de puntos.

DIAGRAMA DE BLOQUES:

DESCRIPCIN GENERAL

El diagrama de bloques se considera el corazn del programa ya que contiene todas las funciones, subprogramas y conexiones (mediante cableado o cables de trasmisin) que se requieren para el correcto funcionamiento de toda la secuencia (Figura 2).

A3-19

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Figura 2: Diagrama de bloques del programa CURVAS_FLU

El diagrama de bloques se puede observar que existe un programa general (CURVAS_FLU), y tres subprogramas (subprograma 1, subprograma 4 y el subprograma XY Chart Buffer.vi) que lo complementan y que sern explicados conforme se detalle el programa. INFORME DETALLADO DEL PROGRAMA CURVAS_FLU El programa CURVAS_FLU se va a dividir, para una explicacin ms clara, en cuatro bloques:

Diseo del selector de velocidades de deformacin. Diseo del subprograma 1. Bucle FOR, en el que se incluyen: o Obtencin de resultados mediante la tarjeta de adquisicin. o Subprograma4. o Buffer XY. o Concatenacin de resultados en una matriz

A3-20

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Almacenamiento de resultados en archivo tipo .TXT.

i) DISEO DEL SELECTOR DE VELOCIDADES DE DEFORMACIN

La primera estructura que se crea a la hora de disear el programa es el selector (ver figura en panel de control), el cual nos va a decir con qu velocidad de

deformacin se quiere trabajar para obtener las diversas curvas, llevando el resultado al bucle FOR. Para su diseo se ha utilizado una estructura CASE (Figura 3), formada por tres casos, 0, 1 y 2. Para ejecutar uno de los tres se ayuda del valor de la variable U32.

Al bucle FOR

Figura 3: Vista de la estructura CASE usada en el programa.

La variable U32 representa, en lenguaje LabVIEW, un valor entero, sin signo y con una memoria mxima de almacenamiento de dgitos de 32 bits. En el panel de control representan los nmeros 1, 10 y 100 que se observan en el selector (ver figura). Lo que hace la estructura CASE es ejecutar aquel caso de los tres que hay (ALTO, MEDIO o BAJO) que se ajuste a lo que diga la variable U32. Es decir, si esta variable vale 1, el CASE que se ejecutar ser el de valor MEDIO y el valor que sale de la estructura ser 1.0 (un nmero entero siempre), el cual se utilizar ms adelante en el bucle FOR.

A3-21

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

ii) DISEO DEL SUBPROGRAMA 1

El diagrama de bloques (Figura 4) siguiente representa la estructura interna del subprograma 1 (tambin llamado en otros lenguajes subrutina) :

Al bucle FOR

Figura 4: diagrama de bloques del subprograma 1".

Este subprograma calcula el perodo de muestreo de los puntos que se van a representar en ambas curvas (fluidez y de viscosidad).Los resultados se ontienen en milisegundos (ms). Adems tambin se tiene como variable de salida el Nmero de puntos, la cual se usar dentro del bucle FOR. Las variables de entrada son el Tiempo en segundos y el Nmero de puntos. Estos dos datos de entrada son controladores del programa, como el selector de velocidades anterior, luego, se deben introducir antes de iniciarse la ejecucin del programa. Las unidades de la variable Tiempo deben ser segundos, mientras que Nmero de puntos no tiene unidades.

Estas variables son de tipo entero con signo y con una memoria de almacenamiento de 16 bits, menor que en el caso de U32( en LabVIEW se denominan I16).

A3-22

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

El modo de operacin es el siguiente: se introducen por pantalla un tiempo en segundos y un nmero de puntos . Este tiempo se multiplica por 1000 para obtener milisegundos, y se aaden 3000 ms para dar un tiempo de paso inicial ya que al ejecutar el programa y el viscosmetro siempre hay un cierto error al no conectarlos a la vez (se hace manualmente). Si se divide este tiempo por el nmero de puntos totales se obtiene el perodo de muestreo (en ms). Este tiempo representa los milisegundos que deben pasar entre la toma de un punto y otro.

Resultados de salida de 1

Tiempo de muestreo = (Tiempo (s)*1000 + 3000)/(Nmero de puntos)

Nmero de puntos

iii) DISEO DEL BUCLE FOR Como se ha dicho antes, el bucle FOR se puede dividir en cuatro bloques:

La obtencin de resultados mediante la tarjeta de adquisicin. El subprograma 1. El XY chart buffer. La concatenacin de resultados en una matriz. El bucle FOR es la parte ms importante del programa ya que en l se

adquieren los datos del viscosmetro a partir de la tarjeta de adquisicin y se grafican finalmente, realizando un artificio matemtico anteriormente y ayudndose de un buffer de datos. Adems los resultados se guardan en una matriz para ser mandados posteriormente a un archivo de texto. Aqu se debe observar tambin que dentro del bucle FOR las funciones y los subprogramas se van a repetir tantas veces como nmero de puntos se hayan seleccionado por pantalla.

A3-23

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

A continuacin, se van a explicar los cuatro bloques :

1) OBTENCIN DE RESULTADOS MEDIANTE LA TARJETA DE ADQUISICIN

En la siguiente figura se pueden observar las cuatro funciones con las que se programa la tarjeta. Se pueden llamar tambin subprogramas ya que actan como si fuesen subrutinas dentro del programa general.

Al subprograma 4

Figura 5: Parte del programa CURVAS_FLU con las funciones de la tarjeta. - La primera funcin o subprograma de la tarjeta se denomina Device Open.vi (Figura 6).

Figura 6: Icono de representacin de la funcin DeviceOpen.vi

Esta funcin abre el puerto especificado por un nmero, para la entrada de datos a la tarjeta, los cuales vienen del viscosmetro, mediante el cable de

A3-24

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

conexin. El nmero 1 (llamado DevNum) debe ser introducido a la hora de configurar por primera vez los drivers de la tarjeta de adquisicin de datos PCL-711B de Advantech. Los cables de salida se deben cablear siempre a las siguientes funciones de la tarjeta, para que no se produzca error al compilar. - La segunda funcin que se utiliza es MAIConfig.vi (Figura 7).

Figura 7: Icono de la funcin MAIConfig.vi MAIConfig.vi configura los datos de entrada para canales analgicos especificados. En la entrada MAIConfig.vi hay que crear un cluster de datos con la misma forma que tiene CONFIGURACIN DE CANAL, con el nmero de canales y su ganancia, cero en este caso (ver figura 2). En este caso, se deben configurar para dos canales ya que se quiere obtener los datos de esfuerzo cortante y de velocidad de deformacin los cuales provienen del viscosmetro. Adems, los cables de entrada se deben unir a los de salida del DeviceOpen.vi para que no se produzcan errores posteriores. - La tercera funcin se llama MAIVoltageIn.vi (Figura 8):

Figura 8: Icono de la funcin MAIvoltageIn.vi

Este subprograma es el ms importante de todos los que estn relacionados con la tarjeta. Recibe como entrada la configuracin de los rangos de entrada de los canales (a travs del MAIVoltageIn.vi), es decir, lee las entradas analgicas de los dos canales y devuelve como salida el resultado en voltios.

A3-25

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Dicho resultado en voltios se acumula en una matriz llamada VoltageList , la cual posee una columna y dos filas para almacenar dos valores de voltaje. Estos valores se llevan finalmente al subprograma 4. Los cables de salida DevHandle y error out se deben alambrar a la siguiente funcin. Hay que tener en cuenta que esta funcin va incluida en el bucle FOR, luego su accin se repetir tantas veces como indique el nmero de puntos N.

-La

cuarta

funcin

que

aparece

relacionada

con

la

tarjeta

es

DeviceClose.vi(Figura 9):

Figura 9: Icono de DeviceClose.vi

Esta ltima funcin va a cerrar el puerto especificado, es decir, la tarjeta de adquisicin, colocndose fuera del bucle FOR ya que si no se cerrara antes de lo esperado.

2) SUBPROGRAMA 4

Con este subprograma (Figura 10) se van a separar los valores que se obtienen en MAIVoltageIn.vi y, realizando una serie de operaciones, se van a obtener los resultados buscados: esfuerzo cortante, velocidad de deformacin y viscosidad, sta ltima en funcin de los dos anteriores. Finalmente se llevarn a unas grficas para representarlos y a una matriz para reagruparlos otra vez.

A3-26

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Viene de MAIVoltajeIn Viene del CASE

A buffer

A una matriz

Figura 10a: icono del subprograma 4.

De MAIVoltageIn La unidades son en mPa AL buffer

Viene del CASE

A una matriz

Figura 10b: diagrama de bloques del subprograma 4.

A3-27

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

El subprograma funciona de la siguiente manera: las variables de entrada son el resultado que da la estructura CASE (un nmero real) y la matriz de dos elementos del MAIVoltageIn (nmeros reales). Primeramente, se acta sobre la matriz utilizando la funcin Index Array (Figura 11):

Figura 11: Funcin Index Array

A la funcin entra una matriz de orden 2 y sale el elemento que indique el valor del index. El primer elemento de la matriz ocupa el puesto cero, mientras que el segundo ocupa el puesto uno y as sucesivamente si la matriz tuviera ms elementos. Esta funcin se utiliza dos veces, dando lo siguiente: el esfuerzo cortante en la posicin 0 y la velocidad de deformacin en la posicin 1 (salen as ordenados debido a las entradas de la clavija procedentes del viscosmetro).

A continuacin se debe realizar un cambio de variable con cada resultado debido a que la tarjeta de adquisicin opera entre 5V y + 5 V, mientras que el viscosmetro operan en un rango de 0V a 10V. Se obtiene i y Di (esfuerzo cortante y velocidad de deformacin respectivamente): i = elemento en orden 0 de la matriz*(-1)+5

Di = elemento en orden 1 de la matriz*(-1)+5

El factor que multiplica a cada resultados debe ser tenido en cuenta tambin: para el esfuerzo cortante hay que multiplicar su valor por 3.22 (sus unidades son en Pascales), ya que es la constante que nos da el resultado en sus unidades reales (con el viscosmetro se mide el % de esfuerzo cortante, que debe ser multiplicado por dicha constante para dar el esfuerzo ). En cambio, para la velocidad de deformacin, el valor por el que se debe multiplicar (0.1, 1, o 10) depende de si se ha seleccionado por

A3-28

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

pantalla un rango de velocidades bajo, medio o alto. Adems, se debe multiplicar el valor del esfuerzo cortante por 1000 para que nos d el resultado en milipascales, que es la unidad ms utilizada en reologa.

Finalmente, se obtienen los puntos ( y D),los cuales se representarn ms adelante en las correspondientes grficas: (valores enteros) = i*3.22*1000 en mPa D= Di* valor del CASE en s-1

Ahora, se divide el valor del esfuerzo cortante frente a la velocidad de deformacin para obtener el valor de la viscosidad aparente () como resultado adicional (en milipascales por segundo):

= / D (mPas) A continuacin, los datos se unen dos a dos con una funcin llamada Bundle (Figura 12) de la siguiente forma: y D por un lado, y y D por otro.

Figura 12: Funcin Bundle Una funcin tipo Bundle agrupa los dos elementos que entran en ella en un cluster de dos componentes. Este cluster es una agrupacin de datos, de diferente tipo, como ya se haba mencionado, en donde todos los cables se juntan en uno solo para facilitar el cableado en el diagrama de bloques.

A3-29

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Finalmente, los tres datos que se han obtenido antes se llevan a una matriz para agruparlos, pero esto ocurre ya fuera del subprograma 4.

3) XY CHART BUFFER El subprograma XY Chart Buffer (Figura 14 a y b) sirve para almacenar datos que provienen del Cluster.

Figura 14a Estructura del subprograma XY Chart Buffer.

Viene del subprograma 4

Al otro XY buffer Figura 14 b: Icono del suprogramaXY Chart Buffer.vi Este subprograma toma como variables de entrada obligadas el Cluster de datos que proviene del Bundle y el nmero de puntos que almacenar el buffer (Memoria Interna). Las dems entradas son opcionales y no se utilizan aqu. Lo que hace este subprograma es almacenar los datos que le van llegando para que se puedan representar posteriormente como una curva continua en tiempo real, ya que si no existiera el buffer apareceran slo una serie de puntos en las grficas de forma discontinua. Adems se debe introducir por pantalla la cantidad de puntos para hacer ms o menos precisa la medida. Si se est midiendo y se acaban los puntos, XY ChartA3-30

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Buffer borrar los primeros para poder almacenar ms puntos. Hay que denotar que al estar dentro del bucle FOR se va a repetir tantas veces como indique N, que es el nmero de puntos. Como variable de salida de XY Chart Buffer se obtiene un dato tipo XY Graph, es decir, una matriz de datos, los cuales se representan finalmente en una grfica tipo XY de forma continua. Como resultado, se obtienen las Curvas de fluidez y de viscosidad(Figura 15), que son uno de los objetivos de la realizacin de este proyecto

D Figura 15: curvas de fluidez y de viscosidad

D

4) CONCATENACIN DE RESULTADOS EN UNA MATRIZ Los valores de salida del subprograma 4, es decir, el esfuerzo cortante, la velocidad de deformacin y la viscosidad (aparente) se almacenan en una matriz mediante la funcin Build Array (Figura 16 a y 16 b):

Figura 16 a: Estructura de la funcin Build Array.A3-31

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Figura 16 b: Icono de la funcin Build Array Como esta funcin est incluida dentro del bucle FOR, se van almacenando los datos tantas veces como indique Na la salida de dicho bucle. Entonces, el nmero de filas de la matriz coincidir con el nmero de puntos introducidos, mientras que el nmero de columnas coincidir con el nmero de resultados buscados (Esfuerzo cortante, la velocidad de deformacin y la viscosidad aparente).

DIMENSIN DE LA MATRIZ = NMERO DE PUNTOS x 3.

iii) ALMACENAMIENTO DE RESULTADOS EN ARCHIVO TIPO .TXT. Para almacenar los resultados se utiliza el subprograma Write to Spreadsheet File.vi (Figura 17).

Figura 17: Icono y estructura del subprograma Write to Spreadsheet File.vi.

A3-32

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

No se utilizan todas las variables de entrada. Hay una serie de valores por defecto.

Lo que hace este subprograma es convertir la matriz que viene del subprogram anterior, de DIMENSIN = NMERO DE PUNTOS x 3, en una cadena de texto, con el mismo formato que la matriz. ste guarda los caracteres en forma de nmeros (con una precisin de 3 en coma flotante), los va escribiendo de tres en tres (son los valores de , D y ) y luego cambia de lnea).El nombre del nuevo archivo de texto (File Path) es D:\\WINDOWS\Escritorio\DatosHaake.txt,o DatosHaake. Existe otra variable de entrada que se utiliza en el programa, que es append to file. Es de tipo booleano y se define como False ya que de esta forma, el subprograma escribir siempre los resultados en un archivo nuevo o reemplazar el existente. Si se definiese como True, aadira los resultados al fichero existente, pero lo que se quiere siempre es que se reemplace dicho fichero.

Las dems variables de entrada se dejan con sus valores por defecto: el valor de format indica la cantidad de caracteres que irn detrs de la coma flotante (tres por defecto) y transpose se deja Falso para que no se transpongan los datos antes de aadirlos al fichero.

3.2.2 PROGRAMA RELAJACINEl programa RELAJACIN, como se ha dicho anteriormente, representa grficamente la curva de viscosidad aparente frente al tiempo para obtener, a partir de estos datos, los tiempos de relajacin y de recuperacin de cada tipo de fluido.

El programa consta de dos ventanas: el panel de control, el cual contiene los controladores del programa y la grfica indicadora con los resultados, y el diagrama de bloques, muy similar al de CURVAS_FLU, que contiene los subprogramas en los que se basa toda la programacin en lenguaje LabVIEW.

A3-33

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

PANEL DE CONTROL

DESCRIPCIN GENERAL (Figura 18):

Figura 18: Vista general del panel de control de RELAJACIN , en este caso para el gel de manos.

En la Figura 18 se puede observar que, insertando un nmero de puntos, la memoria interna (igual al nmero de puntos) y el rango de velocidades, se obtiene la grfica de viscosidad frente al tiempo. En los ensayos de aplica un cambio brusco instantneo de velocidad y luego una disminucin equivalente, para poder ver reflejado el tiempo de relajacin y el de recuperacin en la misma grfica.

CONTROLES E INDICADORESA3-34

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Como se puede ver en la figura 18, el panel de control contiene cuatro controladores y un indicador, teniendo cada uno de ellos su correspondiente smbolo en el diagrama de bloques. Controlador Nmero de puntos: este controlador se usa para aadir los puntos que formarn la grfica. Controlador Memoria interna: como en el anterior programa, se utiliza para sealar el tamao del buffer que va a guardar los puntos para representarlos de forma continua y a tiempo real. Controlador Rango de Velocidad de Deformacin: con este selector se escoge la velocidad de deformacin de trabajo.Tiene el mismo

-

-

-

funcionamiento que en el anterior programa. Controlador Configuracin del canal: se trata de un Cluster (conjunto de datos de diversos tipos) que contiene la cantidad de canales de la tarjeta de adquisicin y el canal de partida al adquirir los datos, de la misma forma que en el anterior programa. Indicador Grfica de Viscosidad aparente vs. Tiempo: con este indicador se representar la viscosidad aparente frente al tiempo, ayudndose de un indicador XY Graph. Dicha grfica ser autoescalable (vara la escala conforme se van obteniendo los resultados) para una visin ms compacta de todo el conjunto.

-

-

DIAGRAMA DE BLOQUES

DESCRIPCIN GENERAL (Figura 19)

A3-35

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Num. ptos

Figura 19: Vista del diagrama de bloques del programa RELAJACIN.

Si se observa el diagrama de bloques, se puede ver un gran parecido al anterior programa debido a que se ha aprovechado la estructura general del programa CURVAS_FLU para crear el diagrama de RELAJACIN. Debido a ello, algunas explicaciones se realizarn de forma resumida ya que se han detallado anteriormente.

INFORME DETALLADO DEL PROGRAMA RELAJACIN El programa RELAJACIN se compone de tres bloques, alguno semejante al programa anterior, pero con alguna variacin: Diseo del selector de velocidades de deformacin. Bucle FOR, el cual incluye: o Diseo de la adquisicin de datos. o o Diseo del perodo de ensayo. Clculo de operaciones.

A3-36

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

o Buffer XY. o Almacenamiento de datos en una matriz. Recopilacin de resultados en un archivo .TXT.

Todos los elementos son los mismos que los del programa anterior a excepcin del diseo temporal y el almacenamiento de datos en una matriz.

i)DISEO DEL SELECTOR DE VELOCIDADES DE DEFORMACIN El diseo (Figura 20) es el mismo que el de la figura 3 del programa CURVAS_FLU: se utiliza una estructura CASE para poder elegir el rango de velocidades de deformacin, funcionando de la misma manera.

Controlador rango de velocidad de deformacin Al bucle FOR

Figura 20: Selector de velocidades del programa RELAJACIN. Es igual que el de CURVAS_FLU El valor de salida de la estructura CASE es un nmero real, que multiplicar, dentro del Bucle FOR, a la velocidad de deformacin ii)DISEO DEL BUCLE FOR El bucle FOR es tambin semejante al creado en CURVAS_FLU: dicho bucle (Figura 19) se repite tantas veces como indique el nmero de puntos. Los elementos que lo componen son:

A3-37

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

1) DISEO DE LA ADQUISICIN DE DATOS Al igual que en el CURVAS_FLU , se obtiene una matriz de dos elementos (esfuerzo cortante y velocidad de deformacin, en voltios) que son adquiridos mediante 4 subprogramas que contiene la tarjeta (Figura 21).

Matriz de 2 elementos Figura 21: El diseo de la adquisicin de datos es el mismo que en CURVAS FLU

2) DISEO DEL PERODO DE ENSAYO

Esta parte (Figura 22) no exista en el programa anterior. Con este diseo se consigue fijar el tiempo que dura el ensayo (29,7 segundos ya que empieza a contar desde 0,30 segundos e i igual a 0).

Al Buffer A la matriz

Figura 22: Diseo del tiempo de ensayo

A3-38

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

Lo que hace esta seccin es guardar un valor de tiempo cada 300 milisegundos pasando los milisegundos a segundos multiplicando por 0.001, y por el valor de i. Los resultados se guardan en una matriz y se llevan a una grfica XY mediante un Buffer de datos. Con esta operacin, se puede representar fcilmente el tiempo de ensayo. Los valores de tiempo se van multiplicando cada vez por el valor i, el cual aumenta desde 0 al nmero de puntos. Por ejemplo, si se quieren ver 100 puntos, el tiempo de ensayo ser de casi 30 segundos (27.9 s).

3) CLCULO DE OPERACIONES

Los valores (en voltios) del esfuerzo cortante y de la velocidad de deformacin deben ser tratados para que sus unidades sean mPa y s-1 . Para ello, se ha introducido el diagrama de bloques del subprograma 4 , cambiando alguna cosa (Figura 22). Al igual que en el programa CURVAS_FLU, antes de su tratamiento, se deben separar los valores mediante Index Array

A buffer

A una matriz Viene del diseo temporal

Viene del CASE

Figura 22: Detalle del Clculo de operaciones. El diseo temporal no influye en el clculo

A3-39

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

La figura 22 se diferencia del subprograma 4 en que los resultados que se almacenan en la matriz son distintos. Ahora se guardan en dicha matriz los valores del esfuerzo cortante, la viscosidad aparente y el tiempo de ensayo, ste ltimo venido del apartado anterior. Los resultados que van al Buffer XY o XY Chart Buffer son ahora la viscosidad y el tiempo de ensayo (en CURVAS_FLU los resultados que se llevaban al buffer eran, por un lado, el esfuerzo cortante y la velocidad de deformacin, y por otro, la viscosidad aparente y la velocidad de deformacin).

4) EL BUFFER XY

Dicho buffer es el mismo que el de la figura 14, as que no hace falta volverlo a representar. Al buffer llegan los datos de viscosidad aparente y el tiempo de ensayo mediante una estructura ya vista anteriormente, un Bundle, y estos datos se llevan a una grfica tipo XY (XY Graph) para representarlos en tiempo real.

La grfica que se obtiene finalmente es la curva de viscosidad aparente frente al tiempo (Figura 23) :

Visco.ap (mPas)

Tiempo (s) Figura 23: Curva de ensayo de viscosidad frente al tiempo, aplicando cambios bruscos de velocidad de deformacin.

A3-40

ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW

5) ALMACENAMIENTO DE DATOS EN UNA MATRIZ

Despus del diseo del perodo de ensayo y del clculo de operaciones, se procede a guardar los resultados en una matriz (ver figura 16), que tendr de dimensin igual al nmero de puntos (N) por el tipo de resultado (3) .

iii)LA RECOPILACIN DE RESULTADOS EN UN ARCHIVO .TXT.

Finalmente se guardan en un archivo de texto los resultados mediante el subprograma Write to Spreadsheet File.vi (Figura 24), de la misma manera que en el programa CURVAS_FLU.

Datos en forma de matriz Figura 24: Vista del subprograma Write to Spreadsheet File.vi

Como se puede ver en esta figura, los resultados se guardan en un fichero llamado D:\\WINDOWS\Escritorio\Datos.txt.

A3-41