ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-1
ANEXO 3: ADQUISICIN Y PROCESAMIENTO
DE DATOS CON LabVIEW
3.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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-2
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-3
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-4
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 cuya
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-5
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]:
q El panel frontal (Figura 2a)
q 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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-6
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-7
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)
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-8
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.
Ejecucin Stop
Modo sucesivo
Pausa
Highlight
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-9
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-10
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-11
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).
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-12
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).
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-13
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-14
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.
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.
Selector
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-15
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).
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-16
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.1 Este 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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-17
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-18
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-19
- 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).
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-20
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
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-21
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.
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.
Al bucle FOR
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-22
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) :
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).
Al bucle FOR
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-23
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 Tiempo de muestreo = (Tiempo (s)*1000 + 3000)/(Nmero de puntos)
de salida
de 1
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-24
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.
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
Al subprograma 4
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-25
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-26
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-27
Figura 10a: icono del subprograma 4.
Figura 10b: diagrama de bloques del subprograma 4.
Viene del CASE
Viene de MAIVoltajeIn
A una matriz
A buffer
De MAIVoltageIn
AL buffer
A una matriz
Viene del CASE
La unidades son en mPa
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-28
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 ti y Di (esfuerzo cortante y velocidad de
deformacin respectivamente):
ti = 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
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-29
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 (t y D),los cuales se representarn ms
adelante en las correspondientes grficas: (valores enteros)
t= ti*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 (m) como resultado
adicional (en milipascales por segundo):
m = t/ D
(mPas)
A continuacin, los datos se unen dos a dos con una funcin llamada Bundle
(Figura 12) de la siguiente forma: t y D por un lado, y m 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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-30
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.
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 Chart
Viene del subprograma 4
Al otro XY buffer
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-31
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
t m
D D
Figura 15: curvas de fluidez y de viscosidad
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-32
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-33
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 t , D y m) 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 RELAJACIN
El 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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-34
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 INDICADORES
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-35
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)
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-36
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 Diseo del perodo de ensayo. o Clculo de operaciones.
Num. ptos
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-37
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.
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:
Al bucle FOR
Controlador rango de velocidad de deformacin
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-38
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).
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).
Figura 22: Diseo del tiempo de ensayo
Matriz de 2 elementos
A la matriz
Al Buffer
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-39
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
Figura 22: Detalle del Clculo de operaciones. El diseo temporal no influye en el clculo
A una matriz
Viene del diseo temporal
Viene del CASE
A buffer
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-40
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.
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-41
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.
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.
Datos en forma de matriz
ANEXO 3:ADQUISICIN Y PROCESAMIENTO DE DATOS CON LabVIEW
A3-42