domingo, 15 de enero de 2012

Gráfica Temperatura



Se nos presenta la práctica de leer de una base de datos varias temperaturas con la fecha que se tomaron, y crear una gráfica con ellas.


Base de datos y fichero .udl:

Creo una base de datos Access que contiene los supuestos datos de las tomas de temperatura. La extensión debe ser .mdb.


Creamos el fichero .udl que contiene la ruta de la base de datos. Para crearlo, en la ventana de inicio de Labview (Getting Started), seleccionamos Tools>> Create Data Link.


Seleccionamos el proveedor: Microsoft Jet. Damos a siguiente.


Elegimos la base de datos con la que se va a enlazar, aceptamos.


Damos nombre al documento .udl que contendrá la ruta, y le guardamos donde vallamos a tener el VI.


VI:

El panel frontal consta de un indicador para mostrar las temperaturas y las horas que fueron tomadas, una gráfica para mostrar los datos, y tres indicadores: toma de medidas, temperatura máxima y mínima.


En el diagrama de bloques, abrimos el recurso de la base de datos y le introducimos la ruta del fichero .udl. La ruta la obtengo editando la ruta del VI: con la instrucción current VI´s path, que nos devuelve la ruta dónde estemos creando el VI, eliminamos el nombre del VI (con la instrucción Strip Path) y le cambiamos por el nombre del fichero .udl (con la instrucción Build Path).
Estas funciones se encuentran en Programming>> File I/O.


Tras abrir el recurso, leemos las dos columnas de las base de datos y convertimos los datos variant a array de dos dimensiones. Estas instrucciones se encuentra en:
Connectivity>> Database.
Programming>> Cluster, Class & Variant>> Variant.


Con los datos obtenidos, por un lado concateno los arrays y los muestro en el indicador de la toma de medidas.
Las instrucciones de editar arrays se encuentra en Programming>> Array.
También utilizo los datos para crear la gráfica. Esta grafica la voy a crear con un for que acumule los datos y componga la gráfica.
Para saber las veces que se tiene que repetir el bucle, necesita saber el número de tomas de temperatura que se hacen, es decir, el número de filas que contiene la base de datos.
Cojo los datos leídos previamente de una columna y mido el array que se obtiene, al medir obtengo un array del que desecho la segunda dimensión y obtengo el número de tomas.


El bucle tendrá un retardo de 10mS para evitar la saturación del sistema.
El formato de Fecha y hora (eje X de la gráfica) necesito obtener solo el número de la hora. Primero dejo el array en una dimensión y leo cada dato. Elimino las partes que no necesito hasta obtener solo el número de la hora y convierto el string en un número real.
El formato de la Temperatura (eje Y de la gráfica), convierto el array a una dimensión, leo los datos y los convierto de un string a un número real.
Los datos transformados se van acumulando con cada vez que se repite el búcle, se puede observar como cambia el tipo de dato.


Con un bundle junto los datos obtenidos para mostrarlos en una gráfica XY. También muestro los datos de la temperatura máxima y mínima.


Finalmente cierro el recurso de la base de datos. Le cierro con un frame ya que fue la única manera que encontré de cerrar las dos lecturas abiertas sin que me diera error.


Este sería el resultado del diagrama de bloques:

No hay comentarios:

Publicar un comentario