IMPLEMENTACIÓN DE UN MODELO DE SOFTWARE PARA MEDIR TEMPERATURA Y DESPLAZAMIENTO
Por: Marcela García Espino Emmanuel Salcido Espinal Presentado al comité revisor del Instituto de Ingeniería y Tecnología de La Universidad Autónoma de Ciudad Juárez Para obtener el título de INGENIERO EN SISTEMAS DIGITALES Y COMUNICACIONES LA UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ Octubre 2009
IMPLEMENTACIÓN DE UN MODELO DE SOFTWARE PARA MEDIR TEMPERATURA Y DESPLAZAMIENTO
Los miembros del comité revisor que aprobaron el proyecto de titulación de:
Mtra. Lidia Hortencia Rascón ___________________________________________ Madrigal Asesor Marcela García Espino
INTRODUCCION Este trabajo forma parte de un proyecto que pretende implementar un dilatómetro de carga manipulado por una interfaz de software, el objetivo es medir la deformación de un cerámico al cual se le aplica un esfuerzo y una temperatura durante un tiempo determinado, registrar en un archivo la configuración de la prueba, los resultados de las mismas, permita interactuar con el sistema físico y manejar perfiles de usuarios de acuerdo a su nivel de experiencia en el manejo del equipo asignados por un administrador. En este trabajo se mencionan a varias partes del dilatómetro de carga; sin embargo, sólo se enfoca en desarrollar la interfaz de usuario ya que debido a la proporción del proyecto sería muy complicado el involucrarse en las otras secciones que conforman a este. Por esta misma situación para iniciar con este trabajo se proporcionan los diagramas UML, de caso de uso, secuencia, y diagramas de estados los cuales ya estaban elaborados por la Mtra. Lidia Hortencia Rascón Madrigal con quien se colabora en el proyecto.
ANTECEDENTES DEL PROBLEMA En la universidad Autónoma de Ciudad Juárez se están haciendo los esfuerzos para hacer un dilatómetro de carga, la innovación que se pretende esta en los rangos que debe ser capaz de utilizar y requieren los materiales cerámicos, dicho dilatómetro de carga será usado por los Investigadores en el área de materiales. Comprar un dilatómetro de carga es muy caro y como se menciona anteriormente tienen limitantes, este es el motivo por el que hay la necesidad de fabricar uno. El dilatómetro de carga es un sistema que se usa habitualmente para medir propiedades mecánicas de la sintetización de los cerámicos como son la deformación y la viscosidad. Hasta el momento la viscosidad uniaxial de materiales cerámicos durante la cocción se ha podido medir con equipos de Análisis Termomecánico o por métodos indirectos. Sin embargo, sólo en la Universidad de Washington, Estados Unidos, y en la Universidad Técnica de Darmstadt, Alemania han medido la viscosidad uniaxial en función de la temperatura y la densidad por
medio de sistemas más completos que no están disponibles comercialmente. En fin, hasta los sistemas más completos presentan alguna limitación.
PLANTEAMIENTO DEL PROBLEMA El problema es implementar un dilatómetro de carga para esfuerzos pequeños capaz de medir el desplazamiento provocado por la deformación de un cerámico en resolución de micras, por lo cual en un proyecto de investigación liderado por el doctor Héctor Camacho se propone construir este dilatómetro. Este trabajo se delimita a implementar el modelo de software a partir de los diagramas de modelado realizados en UML. Para probar el software se realizara una emulación con el control de la prensa electrónica, utilizando un microcontrolador y se realizaran mediciones de desplazamiento y temperatura solo para probar la comunicación con el hardware estando fuera del alcance de este proyecto la caracterización de los sensores y el diseño de los amplificadores.
MARCO TEÓRICO Un dilatómetro de carga es un instrumento utilizado para medir la expansión o contracción de sólidos a diferentes temperaturas, en la dilatación de los sólidos todos tienden a incrementar su volumen en mayor o menor grado cuando se les aplica calor y por consecuencia aumenta su temperatura. UML (Unified Modeling Languaje) es un lenguaje de modelado visual que se usa para especificar, visualizar, construir, y documentar artefactos de un sistema de software. Permiten captura decisiones y conocimientos sobre los sistemas a construir. Los modelos consisten en diagramas e imágenes. Sirven para captar con exactitud las partes más importantes del problema y la solución. Así como captar los aspectos importantes de lo que se esta modelando, desde cierto punto de vista, y simplifica u omite el resto. Los diagramas de casos de usos no forma parte de la llamada Fase de Diseño, sino parte de la fase de Análisis, de forma que al ser parte del análisis ayuda a describir que es lo que el
sistema debe hacer. Estos diagramas muestran operaciones que se esperan de una aplicación o sistema y como se relaciona con su entorno, es por ello que se ve desde el punto de vista del usuario. Los diagramas de caso de uso describen un uso del sistema y como éste interactúa con el usuario. El diagrama de estados es una condición durante la vida de un objeto, de forma que cuando el estado se satisface se lleva a cabo alguna acción o se espera por un evento. El estado de un objeto se puede caracterizar por el valor de uno o varios de los atributos de su clase, además, el estado de un objeto también se puede caracterizar por la existencia de un enlace con otro objeto. El diagrama de estados engloba todos los mensajes que un objeto puede enviar o recibir, en otras palabras es un escenario que representa un camino dentro de un diagrama. Como característica de estos diagramas siempre cuentan con dos estados especiales, el inicial y el final, con la particularidad que este diagrama puede tener solo un estado inicial pero varios estados finales. Un diagrama de secuencia muestra una interacción ordenada según la secuencia temporal de eventos y el intercambio de mensajes. Los diagramas de secuencia ponen especial énfasis en el orden y el momento en el que se envían los mensajes a los objetos. LabVIEW es un entorno de desarrollo gráfico con funciones integradas para realizar adquisición de datos, control de instrumentos, análisis de medida y presentaciones de datos. LabVIEW le da la flexibilidad de un potente ambiente de programación, pero mucho más sencillo que los entornos tradicionales. Este software es usado por miles de ingenieros e investigadores para desarrollar sistemas sofisticados de medida, pruebas y control usando íconos gráficos e intuitivos y cables que parecen un diagrama de flujo, ofrece una integración incomparable con miles de dispositivos de hardware y brinda cientos de bibliotecas integradas para análisis avanzado y visualización de datos.
METODOLOGÍA Objetivo general Implementar un programa en labVIEW para emular medición de temperatura, desplazamiento y esfuerzo, aplicados a un cerámico. Objetivos específicos 1. Realizar investigación del dilatómetro de carga. Meta 1.1 Investigar funcionamiento y uso del dilatómetro de carga para el día 15 de Enero. Acciones 1.1.1 Buscar información en libros de la biblioteca. 1.1.2 Buscar información en artículos científicos en internet. 1.1.3 Documentar la información encontrada. Requerimientos 1.1.1.1 Libros de la biblioteca. 1.1.1.2 Acceso a internet.
2. Analizar los diagramas UML. Meta 1 2.1. Estudiar simbología y conceptos de los diagramas de caso de uso, de estados y de secuencia para el día 22 de enero. Acciones 2.1.1. Buscar información en libros de UML. 2.1.2. Documentar la información encontrada Requerimientos 2.1.1.1 Libros de UML. Meta 2 2.2 Analizar los diagramas UML para la aplicación para el día 29 de enero.
Acciones 2.2.1 Analizar los casos de cada uso contra la funcionalidad del sistema. 2.2.2 Analizar los diagramas de secuencia contra la funcionalidad del sistema. 2.2.3 Analizar los diagramas de estado contra la funcionalidad del sistema. 2.2.4 Definir las pantallas de la interfaz de usuario. 2.2.5 Analizar los recursos de software y hardware. 2.2.6 Documentar la información. Requerimientos 2.2.1.1 Diagramas UML proporcionados por la maestra Lidia Hortencia Rascón Madrigal. Meta 3 2.3 Analizar esquemas de la base de datos para el 3 de febrero. Acciones 2.3.1 Conocer la nomenclatura del esquema entidad relación. 2.3.2 Documentar la información. Requerimientos 2.3.1.1 Libros sobre el modelo entidad relación
3. Implementar el programa en labVIEW Meta 1 3.1 Implementar la interfaz de usuario para el día 11 de febrero. Acciones 3.1.1 Elaborar pantallas de la interfaz de usuario en labVIEW. 3.1.2 Documentar la información. Requerimientos 3.1.1.1 Una computadora, software de labVIEW, libros sobre labVIEW y manuales. Meta 2 3.2 Probar la conexión con la base de datos para el día 19 de febrero.
Acciones 3.2.1 Estudiar los comandos con SQL para accesar a la base de datos. 3.2.2 Estudiar los comandos con SQL para escribir y buscar información en la base de datos. 3.2.3 Documentar la información. Requerimientos 3.2.3.1 Una computadora, software de labVIEW, libros sobre Labview y SQL, manuales. Meta 3 3.3 Implementar el código de administración de usuarios para el día 5 de marzo. Acciones 3.3.1 Dar de alta y de baja a los usuarios 3.3.2 Modificación de usuarios 3.3.3 Documentar la información. Requerimientos 3.3.3.1 Una computadora, Software de labVIEW, libros sobre labVIEW y manuales. Meta 4 3.4 Implementar código de autentificación de usuarios para el día 26 de marzo. Acciones 3.4.1 Hacer programa de autentificación de usuarios y conocer perfiles y preferencias. 3.4.2 Documentar la información. Requerimientos 3.4.2.1 Computadora, Software de labVIEW, libros sobre labVIEW y manuales. Meta 5 3.5 Implementar la pantalla para capturar los datos de la prueba y validarlos para el día 9 de abril. Acciones 3.5.1 Hacer que los datos de la prueba estén en el rango especificado según el perfil de usuario. 3.5.2 Documentar la información. Requerimientos
3.5.2.1 Computadora, Software de labVIEW, libros sobre labVIEW y manuales. Meta 6 3.6 Implementar el programa para una prueba de esfuerzo para el día 23 de abril. Acciones 3.6.1 Poner el sistema en listo y empezar la prueba. 3.6.2 Realizar la prueba. 3.6.3 Comunicar con la base de datos. 3.6.4 Documentar la información. Requerimientos 3.6.4.1 Computadora, Software de labVIEW, libros sobre labVIEW y manuales.
4
Probar el software
Meta 1 4.1
Comprobar que el software funcione como de la forma requerida para el día 30 de abril.
Acciones 4.1.1 Comprobar que los datos del la prueba estén dentro del rango del perfil de usuario. 4.1.2 Documentar la información. Requerimientos 4.1.2.1 Computadora, Software de labVIEW, libros sobre labVIEW y manuales. Meta 2 4.2 Probar la base de datos para el día 7 de mayo. Acciones 4.2.1 Comprobar que el programa envié, busque y borre información en la base de datos. 4.2.2 Documentar la información. Requerimientos 4.2.2.1 Computadora, Software de labVIEW, libros sobre labVIEW y manuales.
5
Documentar el proyecto.
Metas 5.1
Terminar de documentar el proyecto completamente para el día 14 de abril.
Acciones 5.1.1 Juntar todas las notas y apuntes realizados durante cada acción de los objetivos anteriores en un solo documento Requerimientos 5.1.1.1 Una computadora y libros sobre el tema.
CRONOGRAMA Enero Domingo
Lunes
Martes
Miércoles
Jueves
Viernes
Sábado
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1.1.1
1.1.1
1.1.2
1.1.2
1.1.3
18
19
20
21
22
2.2.1
2.2.1
2.2.2
2.2.2
2.2.3
25
26
27
28
29
2.2.3
2.2.4
2.2.4
2.2.5
2.2.6
17
24
23
31
1.1.1 Buscar información en libros de la biblioteca. 1.1.2 Buscar información en artículos científicos en internet. 1.1.3 Documentar la información encontrada.
2.2.1 Analizar los casos de cada uso contra la funcionalidad del sistema. 2.2.2 Analizar los diagramas de secuencia contra la funcionalidad del sistema.
2.2.3 Analizar los diagramas de estado contra la funcionalidad del sistema. 2.2.4 Definir las pantallas de la interfaz de usuario. 2.2.5 Analizar los recursos de software y hardware. 2.2.6 Documentar la información.
Febrero Domingo
7
14
21
Lunes
Martes
Miércoles
Jueves
Viernes
Sábado
1
2
3
4
5
6
2.3.1
2.3.1
2.3.1
2.3.2
3.1.1
8
9
10
11
12
3.1.1
3.1.1
3.1.1
3.1.2
3.2.1
15
16
17
18
19
3.2.1
3.2.2
3.2.2
3.2.2
3.2.3
22
23
24
25
26
3.3.1
3.3.1
3.3.1
3.3.1
3.3.2
13
20
27
28
2.3.1 Conocer la nomenclatura del esquema entidad relación. 2.3.2 Documentar la información.
3.1.1 Elaborar pantallas de la interfaz de usuario en labVIEW. 3.1.2 Documentar la información.
3.2.1 Estudiar los comandos con SQL para accesar a la base de datos. 3.2.2 Estudiar los comandos con SQL para escribir y buscar información en la base de datos. 3.2.3 Documentar la información.
3.3.1 Dar de alta y de baja a los usuarios 3.3.2 Modificación de usuarios 3.3.3 Documentar la información.
Marzo Domingo
7
14
21
28
Lunes
Martes
Miércoles
Jueves
Viernes
Sábado
1
2
3
4
5
6
3.3.2
3.3.2
3.3.2
3.3.3
3.3.3
8
9
10
11
12
3.4.1
3.4.1
3.4.1
3.4.1
3.4.1
15
16
17
18
19
3.4.1
3.4.1
3.4.1
3.4.1
3.4.1
22
23
24
26
26
3.4.1
3.4.1
3.4.1
3.4.2
3.4.2
29
30
31
3.5.1
3.5.1
3.5.1
13
20
27
3.4.1 Hacer programa de autentificación de usuarios y conocer perfiles y preferencias. 3.4.2 Documentar la información.
3.5.1 Hacer que los datos de la prueba estén en el rango especificado según el perfil de usuario. 3.5.2 Documentar la información.
Abril Domingo
Lunes
Martes
Miércoles
Jueves
Viernes
Sábado
1
2
3
3.5.1
3.5.1
4
5
6
7
8
9
3.5.1
3.5.1
3.5.1
3.5.1
3.5.2
3.5.2
11
12
13
14
15
16
3.6.1
3.6.1
3.6.1
3.6.2
3.6.2
19
20
21
22
23
3.6.2
3.6.3
3.6.3
3.6.4
3.6.4
26
27
28
29
30
4.1.1
4.1.1
4.1.1
4.1.1
4.1.2
18
25
10
17
24
3.6.1 Poner el sistema en listo y empezar la prueba. 3.6.2 Realizar la prueba. 3.6.3 Comunicar con la base de datos. 3.6.4 Documentar la información.
4.1.1 Comprobar que los datos de la prueba estén dentro del rango del perfil de usuario. 4.1.2 Documentar la información.
Mayo Domingo
Lunes
Martes
Miércoles
Jueves
Viernes
Sábado 1
2
3
4
5
6
7
4.2.1
4.2.1
4.2.1
4.2.2
4.2.2
10
11
12
13
14
5.1.1
5.1.1
5.1.1
5.1.1
5.1.1
16
17
18
19
20
21
22
23
24
25
26
27
28
29
9
8
15
30
31
4.2.1 Comprobar que el programa envié, busque y borre información en la base de datos. 4.2.2 Documentar la información.
5.1.1 Juntar todas las notas y apuntes realizados durante cada acción de los objetivos anteriores en un solo documento
REFERENCIAS [1] Aulbach E., R. Zuo y J. Rödel; Laser-assisted High-resolution Loading Dilatometer and Applications. Exp. Mech. 44(1), 71-75 (2004). [2] Baber J., A. Klimera y F. Raether; In situ measurement of dimensional changes and temperature fields during sintering with a novel thermooptical measuring device. J. Eur. Ceram. Soc. 27, 701–705 (2007). [3] Guillon, E., R. Bordia y J. Rödel; Constrained Sintering of Alumina Thin Films: Comparison Between Experiments and Modeling. J. Amer. Ceram. Soc., 90(6), 1733-1737 (2007a). [4] Lee S., G. Messing y D. Green; Bending Creep Test to Measure the Viscosity of Porous Materials during Sintering. J. Am. Ceram. Soc., 86(6), 877–82 (2003). [5] Mohanram A., G. Messing y D. Green; Measurement of Viscosity of Densifying Glass-Based Systems by Isothermal Cyclic Loading Dilatometry. J. Am. Ceram. Soc., 87(2), 192–96 (2004). [6] Zuo R., E. Aulbach y J. Rödel; Experimental determination of sintering stresses and sintering viscosities. Acta Materialia, 51, 4563-4574 (2003). [7]http://digital.ni.com/worldwide/spain.nsf/web/all/AF4C3DCD8ED8042C80256C68004330A B?OpenDocument,Consulta[12 de octubre 2009]. [8]Fowler, Martin, UML gota a gota, Addison Wesley Longman de Mexico,968-444-3641(1999).
IMPLEMENTACIÓN DE UN MODELO DE SOFTWARE PARA MEDIR TEMPERATURA Y DESPLAZAMIENTO
Por Emmanuel Salcido Espinal Marcela García Espino
Presentado a la Academia de Sistemas Digitales y Comunicaciones Del Instituto de Ingeniería y Tecnología de La Universidad Autónoma de Ciudad Juárez Para obtener el título de
INGENIERO EN SISTEMAS DIGITALES Y COMUNICACIONES
UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ Mayo del 2010
UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ
Instituto de Ingeniería y Tecnología
EVALUACIÓN DE EXAMEN
Fecho: 26 de Moyo del 2010 Horario: 09:00 - 11 :00 HRS.
PROFESIONAL INTRACURRICULAR NIVEL: LICENCIATURA
TEMA:
"Implementación de un modelo de software para medir temperatura y desplazamiento"
La evaluación del examen profesional intracurricular consta de 4 partes:
(Desarrollado en 1 hora)
1°._ 2°._ 3°.4°._
Exposición por parte de los alumnos (máximo 20 minutos).
Réplica por parte del jurado.
Comentarios y/o recomendaciones.
Entrega de resultados.
Nombre de~ alumno: Marcelo García Espino
Calificación Maestro de la materia (30%) Calificación Director de Trabajo (40%) Calificación del Jurado (30%) TOTAL
Se recomienda que el documento se deposite para consulta en la BIBLIOTECA
SiD
NoD Director de Trabajo
Jurado
Coordinador de la Materia "Proyecto de Títulación"
-----...L.j'----~~~F+:ME 1: i •
E
GEN lE RíA ElEC~R'CA y COMPUTACI
~\\L-
Dr. Víclor Hinoslroza
~-+ FIRMADO EN ORIGINAL Ing. Ilzel Flores
UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ
Instituto de Ingeniería y Tecnología
EVALUACIÓN DE EXAMEN
Fecha: 26 de Mayo del 2010 Horario: 09:00 11 :00 HRS.
PROFESIONAL INTRACURRICULAR NIVEL: LICENCIATURA
TEMA:
"Implementación de un modelo de software para medir temperatura y desplazamiento"
La evaluación del examen profesional intracurricullar consta de 4 partes:
(Desarrollado en 1 hora)
1a._ 2a ._ 3a ._ 4a ._
Exposición por parte de los alumnos (máximo 20 minutos).
Réplica por parte del jurado.
Comentarios y/o recomendaciones.
Entrega de resultados.
Nombre del alumno: Emmanuel Salcido Espinal
I
Calificación Maestro de la materia (30%)
zs
Calificación Director de Trabajo (40%)
LJ O
,30
Calificación del Jurado (30%) TOTAL
Se recomienda que el documento se deposite para consulta en la BIBLIOTECA
SiD NaO
Director de Trabajo
Jurado
Coordinador de la Materia "Proyecto de Titulación"
Dr. Víctor Hinostrozo
FIRMADO EN ORIGINAL Ing. Itzel Flores
II
RESUMEN El sistema creado es capaz de emular el funcionamiento de un dilatómetro de carga para medir la deformación de un cerámico al que se le aplica un esfuerzo y es sometido a distintos valores de temperatura durante un tiempo determinado. El sistema registra en un archivo de texto los resultados de las pruebas. El sistema está compuesto por la interfaz de usuario que se comunica con el sistema físico integrado por los sensores de temperatura y desplazamiento así como por un módulo emulador de fuerza. Los valores de temperatura y desplazamiento se adquieren en el sistema mediante una tarjeta de adquisición de datos, mientras que el valor de la fuerza emulada se adquiere a través del puerto serie. El sistema inicia con una pantalla de autentificación de usuario donde se inicia sesión y de acuerdo al perfil del usuario, éste puede administrar cuentas de usuario o realizar pruebas, el usuario ingresa los parámetros de prueba, estos se validan y se verifica que el sistema físico se encuentre listo. Durante el desarrollo de la prueba el sistema adquiere datos, los analiza y los guarda en un archivo de texto. El sistema monitorea la respuesta del sistema físico hasta que el usuario decide terminar la prueba o hasta que una alarma se presenta, terminando así la ejecución del programa.
III
DECLARATORIA DE ORIGINALIDAD Nosotros Emmanuel Salcido Espinal y Marcela García Espino, declaramos que el material contenido en este documento es original y no ha sido copiado de ninguna otra fuente, ni ha sido usado para obtener otro título o reconocimiento en ésta u otra institución de educación superior.
___________________________________ Marcela García Espino
IV
LISTA DE FIGURAS Figura 2.1 Concepto de los modelos entidad-relación. ......................................... 6 Figura 2.2 DB tools open conection.vi. ............................................................... 12 Figura 2.3 DB tools close conection.vi................................................................ 12 Figura 2.4 DB tools create table.vi. .................................................................... 12 Figura 2.5 DB tools drop table.vi. ....................................................................... 13 Figura 2.6 DB tools insert data.vi ....................................................................... 13 Figura 2.7 DB tools select data.vi. ...................................................................... 13 Figura 2.8 Database variant to data.vi. ............................................................... 14 Figura 2.9 DB tools execute query.vi. ................................................................. 14 Figura 2.10 DB tools fetch recordset data.vi. ...................................................... 14 Figura 2.11 DB tools fetch element data.vi. ........................................................ 15 Figura 2.12 DB tools move to record n.vi. .......................................................... 15 Figura 2.13 DB tools move to next record.vi. ...................................................... 15 Figura 2.14 DB tools move to previous record.vi. ............................................... 15 Figura 2.15 DB tools free object.vi. .................................................................... 16 Figura 2.16 Ejemplo de estilo de secuencia. ...................................................... 18 Figura 2.17 Ejemplo de ejecutivo de prueba. ..................................................... 18 Figura 2.18 Icono de la función NI-DAQmx Start Task. ...................................... 20 Figura 2.19 Icono de la función NI-DAQmx Read. .............................................. 20 Figura 2.20 Icono de la función NI-DAQmx Write. .............................................. 21 Figura 2.21 Icono de la función NI-DAQmx Clear Task. ..................................... 21 Figura 2.22 Diagrama de bloques de un sistema de adquisición. ....................... 22 Figura 2.23 Medición del termopar con un voltímetro. ........................................ 23 Figura 2.24 Compensación junta fría.................................................................. 23 Figura 2.25 Construcción física y circuito esquemático de un LVDT. ................. 25 Figura 2.26. Arquitectura interna del PIC16F84A. ............................................. 28 Figura 2.27. Microcontrolador PIC 16F84A. ....................................................... 28 Figura 3.1 Diagrama de bloques de sistema. ..................................................... 29 Figura 3.2 Circuito acondicionador para termopar. ............................................. 30 Figura 3.3 Sensor LVDT montado para realizar las pruebas. ............................. 31 Figura 3.4 Diagrama de flujo de microcontrolador. ............................................. 33 Figura 3.5 Diagrama de módulo emulador de fuerza. ......................................... 34 Figura 3.6 Modelo entidad-relación de la base de datos. ................................... 35 Figura 3.7 Panel de control. ............................................................................... 37 Figura 3.8 Orígenes de datos. ............................................................................ 37 Figura 3.9 Agregar ODBC. ................................................................................. 38 Figura 3.10 Seleccionar manejador MySQL. ...................................................... 38 Figura 3.11 Conexión exitosa (ODBC). .............................................................. 39 Figura 3.12 Nuevo vínculo a datos. .................................................................... 39
V
Figura 3.13 Proveedores de vínculo de datos. ................................................... 40 Figura 3.14 Conexión de vínculo de datos. ........................................................ 40 Figura 3.15 Diagrama de estados del programa para emular el dilatómetro de carga. ................................................................................................................. 41 Figura 3.16 Diagrama de casos de uso. ............................................................. 42 Figura 3.17 Botones de acciones. ...................................................................... 42 Figura 3.18 Casos de uso para la opción administrar usuarios. ......................... 43 Figura 3.19 Casos de uso Administrar pruebas. ................................................ 43 Figura 3.20 Botones Administrar Pruebas / Administrar usuarios. ...................... 44 Figura 3.21 Diagrama de estados opción realizar pruebas................................. 44 Figura 3.22 Estado de monitoreo de prueba. ..................................................... 46 Figura 3.23 (a). Diagrama de flujo del sistema ................................................... 47 Figura 3.23 (b) Diagrama de flujo del sistema. ................................................... 48 Figura 4.1 Interfaz de usuario para adquirir las muestras de temperatura. ......... 49 Figura 4.2 El circuito acondicionador para el termopar tipo K. ............................ 50 Figura 4.3 Salida del circuito acondicionador de temperatura para la prueba uno. ........................................................................................................................... 50 Figura 4.4 Salida del circuito acondicionador de temperatura para la prueba dos. ........................................................................................................................... 51 Figura 4.5 Salida del circuito acondicionador de temperatura para la prueba tres. ........................................................................................................................... 52 Figura 4.6 Salida del circuito acondicionador de temperatura para la prueba cuatro. ................................................................................................................ 52 Figura 4.7 Salida del circuito acondicionador en la prueba de histéresis. ........... 53 Figura 4.8 Caracterización de temperatura en el rango de 100 °C a 800 °C. .... 54 Figura 4.9 Gráfica de descenso de temperatura. ............................................... 55 Figura 4.10 Gráfica del promedio ascenso y descenso de temperatura. ............ 55 Figura 4.11 Ecuación la salida del circuito acondicionador del LVDT para la prueba uno. ........................................................................................................ 56 Figura 4.12 Ecuación de la salida del circuito acondicionador del LVDT para la prueba dos. ........................................................................................................ 57 Figura 4.13 Ecuación de la salida del circuito acondicionador del LVDT para la prueba tres. ........................................................................................................ 58 Figura 4.14 Módulo para emular la fuerza. ......................................................... 59 Figura 4.15 Envío de datos a través de puerto serie. ......................................... 59 Figura 4.16 Recepción de datos a través de puerto serie................................... 60 Figura 4.17 Prueba del sistema incluyendo sensores de temperatura, desplazamiento y fuerza emulada. ..................................................................... 61 Figura 4.18 Diferencia de horno con la de la interfaz de usuario. ....................... 63 Figura 4.19 Estabilización de la temperatura...................................................... 63 Figura 4.20 Temperatura deseada sin alcanzar deformación ni aplicación de fuerza. ................................................................................................................ 64
VI
Figura 4.21 Temperatura deseada. .................................................................... 66 Figura 4.22 Fuerza y temperatura deseada........................................................ 66 Figura 4.23 Alarma de desplazamiento. ............................................................. 67 Figura 4.24 Monitoreo sin alarmas. .................................................................... 69 Figura 4.25 Temperatura, fuerza dentro de rango. ............................................. 69 Figura 4.26 Temperatura, fuerza y desplazamiento dentro de rango.................. 70
VII
LISTA DE TABLAS Tabla 3.1 Sintaxis para crear tablas. .................................................................. 35 Tabla 3.2 Sintaxis para crear llaves primarias. ................................................... 36 Tabla 4.1 Estado de las variables en la prueba uno ........................................... 62 Tabla 4.2 Estado de las variables en la prueba dos ........................................... 65 Tabla 4.3 Estado de las variables en la prueba tres ........................................... 68
VIII
LISTA DE ECUACIONES Ecuación 3.1 Margen dinámico........ .................................................................. 30 Ecuación 3.2 Margen dinámico temperatura ………………………….. ............... 30 Ecuación 3.3 Margen dinámico voltaje …………………………………... ......... 30 Ecuación 4.1 Recta de ascenso de temperatura ................................................ 53 Ecuación 4.2 Recta de descenso de temperatura.... . ......................................... 54 Ecuación 4.3 Recta promedio temperatura.…. ................................................... 54 Ecuación 4.4 Recta desplazamiento 50 micras .................................................. 56 Ecuación 4.5 Recta desplazamiento 100 micras ................................................ 57 Ecuación 4.6 Recta desplazamiento 500 micras ................................................ 57
IX
INDICE
RESUMEN .......................................................................................................... III DECLARATORIA DE ORIGINALIDAD ................................................................ IV LISTA DE FIGURAS ............................................................................................ V LISTA DE TABLAS ........................................................................................... VIII LISTA DE ECUACIONES.................................................................................... IX INTRODUCCIÓN ................................................................................................. 1 CAPÍTULO 2 ........................................................................................................ 3 MARCO TEÓRICO .............................................................................................. 3 2.1. LabVIEW ................................................................................................... 3 2.2. SQL ........................................................................................................... 4 2.3. Bases de datos .......................................................................................... 5 2.3.1. Definición ............................................................................................ 5 2.3.2. Modelos de bases de datos................................................................. 5 2.3.3. Modelo entidad – relación ................................................................... 6 2.3.4. Comandos básicos de SQL ................................................................. 7 2.3.5. Declaraciones en SQL ........................................................................ 8 2.3.6. Significado de los símbolos utilizados en declaraciones .................... 10 2.4 Funciones utilizadas en LabVIEW para manejo de base de datos ........... 12 2.5. Máquina de estados ................................................................................ 16 2.5.1. Introducción....................................................................................... 16 2.5.2. Aplicación de la máquina de estado .................................................. 17 2.5.3. Tipos de máquinas de estados .......................................................... 17 2.6. Adquisición de datos en LabVIEW ........................................................... 19 2.6.1. El proceso de adquisición de datos ................................................... 19 2.6.2. Funciones utilizadas en LabVIEW (DAQmx) ..................................... 20 2.6.3. Diagrama de bloques de un sistema de adquisición .......................... 21 2.6.4. Tarjeta de adquisición ....................................................................... 22 2.7.
Sensores y circuitos de acondicionamiento .......................................... 22
2.7.1. Termopar tipo k ................................................................................. 22
X
2.7.2.El amplificador AD595 ........................................................................ 24 2.7.3. Sensor LVDT..................................................................................... 25 2.8. Microcontrolador PIC16F84A ................................................................... 26 CAPÍTULO 3 ...................................................................................................... 29 DESARROLLO DEL SISTEMA .......................................................................... 29 3.1. Desarrollo general del sistema................................................................. 29 3.2 Acondicionamiento de señal de temperatura ............................................ 30 3.3. Acondicionamiento de señal de desplazamiento...................................... 31 3.4. Modulo para emular fuerza ...................................................................... 32 3.5. Diseño de la base de datos ..................................................................... 34 3.6. Comunicación entre MySQL y LabVIEW ................................................. 36 3.6.1. Configuración de manejador para MySQL en Windows ................... 36 3.6.2. Creación de enlace de datos entre MySQL y LabVIEW .................... 39 3.7. Diseño de la Interfaz de usuario .............................................................. 41 CAPÍTULO 4 ...................................................................................................... 49 RESULTADOS................................................................................................... 49 4.1 Sensor de temperatura.......................................................................... 49 4.2 Sensor LVDT ........................................................................................ 56 4.3 Módulo para emular la fuerza ................................................................ 58 4.4 Prueba del sistema incluyendo sensores de temperatura, desplazamiento y fuerza emulada ........................................................................................ 60 CAPÍTULO 5 ...................................................................................................... 71 CONCLUSIONES .............................................................................................. 71 REFERENCIAS ................................................................................................. 73 APÉNDICE A .........................................................................................................i APÉNDICE B ..................................................................................................... xiv
XI
CAPÍTULO 1
INTRODUCCIÓN Una interfaz de usuario es el medio por el cual el usuario puede comunicarse con algún equipo computarizado. Esto se hace a través de menús, ventanas emergentes, ratón, teclado, en general, todos los canales por los cuales se permite la comunicación entre el ser humano y la máquina brindando al usuario tanto comodidad como eficiencia a la hora de realizar sus actividades. El objetivo principal de la interfaz de usuario desarrollada es controlar las operaciones vinculadas al manejo de un dilatómetro de carga. Un dilatómetro de carga es un sistema utilizado para medir la contracción/expansión, viscosidad y propiedades mecánicas de los cerámicos. Estos sistemas calientan los sólidos a temperaturas elevadas las cuales pueden exceder los 1000˚C y una vez que se ha logrado la temperatura deseada, se les puede aplicar una carga. La interfaz de usuario permite administrar las cuentas de los usuarios, es decir, realizar altas, bajas y modificaciones de usuarios así como en el perfil de cada uno de ellos, el cual será asignado de acuerdo a la experiencia de cada usuario en el manejo del dilatómetro. Obtiene la configuración de la prueba a realizar por el usuario y validarla según el perfil de éste, una vez que esto ha sucedido, la interfaz tiene interacción con el hardware verificando que se encuentre listo y en posición para iniciar la prueba. Es capaz de monitorear las variables que intervienen durante el desarrollo de la prueba como lo es la temperatura, deformación del cerámico y la fuerza aplicada. Validar las variables con respecto a los límites establecidos y determinar si existe alguna alarma. La configuración de la prueba, así como los datos del usuario que la realizó y todos los resultados obtenidos durante el desarrollo de la prueba es guardada en un archivo texto. El capítulo dos de este documento muestra la descripción y características correspondientes a cada uno de los elementos empleados para el desarrollo de este proyecto. En el capítulo tres se observa el diagrama general de bloques del sistema, así como los diagramas de estados, diagramas de casos de uso y
1
diagramas de flujo empleados para la creación de la interfaz de usuario y de igual manera se muestra el modelo entidad relación del cual se partió para crear la base
de
datos.
Se
mencionan
las
características
de
los
circuitos
acondicionadores de temperatura y desplazamiento, así como el funcionamiento del módulo emulador de fuerza. El capítulo cuatro está enfocado al análisis de los datos obtenidos durante las pruebas realizadas en el desarrollo del proyecto. Se realizaron pruebas para conocer el comportamiento de los sensores, de igual forma se probó el funcionamiento del módulo emulador de fuerza. Una vez que se completó el análisis individual del comportamiento de los componentes del sistema físico, se realizó una prueba general de todo el sistema con distintos escenarios de prueba con el fin de comprobar el correcto funcionamiento de éste. El capítulo cinco muestra las conclusiones obtenidas al desarrollar este proyecto.
2
CAPÍTULO 2
MARCO TEÓRICO
2.1. LabVIEW LabVIEW (Laboratory Virtual Instrument Engineering Workbench) es un lenguaje de programación gráfica desarrollado por National Instruments el cuál utiliza iconos en lugar de líneas de texto para crear aplicaciones. En contraste con los lenguajes de programación basados en texto, donde las instrucciones determinan la ejecución del programa, LabVIEW utiliza
programación de flujo de datos,
donde el flujo de datos determina la ejecución. La naturaleza de la programación gráfica hace de LabVIEW una opción ideal para la creación de aplicaciones de prueba, medición, automatización, control de instrumentos, adquisición y análisis de datos [1]. Los programas creados en LabVIEW son llamados instrumentos virtuales o VI (virtual instrument) ya que su apariencia y operación imita a la de un instrumento real, como lo son osciloscopios y multímetros. Cada VI utiliza funciones para manipular la entrada de datos así como la salida y la forma de mostrar en pantalla la información contenida por los mismos [1]. Todo VI contiene los tres elementos panel frontal, diagrama de bloques e icono. Panel frontal. También es conocido como la interfaz de usuario la cual se crea con controles e indicadores los cuales son terminales interactivas de entrada y salida de datos en el VI, respectivamente. Los controles pueden estar representados por perillas, botones, cajas de texto, entre otros. Los indicadores pueden ser gráficas, diodo emisor de luz, termómetros, entre otros. Los controles simulan instrumentos que envían datos hacia el diagrama de bloques del VI, es decir, son dispositivos en los cuales se genera información. Los indicadores por su parte, simulan instrumentos que sirven para mostrar la información adquirida y/o generada en el diagrama de bloques. 3
Diagrama de bloques. Después de haber creado la interfaz de usuario, se agrega el código del programa utilizando representaciones gráficas de funciones para controlar los objetos (controles e indicadores) situados en el panel frontal. El diagrama de boques contiene este código fuente, los objetos del panel frontal aparecen en el diagrama de bloques como terminales, donde cada terminal representa el tipo de dato (número, texto, booleano, etc.) manejado por cada control e indicador. Las terminales tienen puertos de entrada y de salida que intercambian información entre el panel frontal y el diagrama de bloques. Icono y panel conector. Cada VI muestra un icono en la esquina derecha superior del panel frontal y del diagrama de bloques. El icono es la representación gráfica del VI. La apariencia del icono puede ser editada por medio de imágenes, texto o una combinación de ambos para poder identificar a que VI corresponde. El panel conector es un grupo de puertos de entrada y salida que corresponden a los controles e indicadores contenidos dentro de ese VI. El panel define estos puertos para poder utilizar el VI dentro de otro VI, es decir utilizarlo como un subVi lo que se conoce en otros lenguajes de programación como una sub-rutina [1]. El panel conector acepta hasta 28 puertos en total, una vez creado el VI se pueden dejar entradas o salidas extras sin asignar si se considera que en un futuro serán necesarias [1]. 2.2. SQL Lenguaje estructurado de consultas (SQL.- Structured Query Languaje) es un lenguaje de computadora utilizado para manejar e interactuar con la información contenida en una base de datos. SQL es el lenguaje de implementación de base de datos más usado y esto lo ha llevado a convertirse en el lenguaje estándar para el manejo de base de datos. SQL trabaja en conjunto con una base de datos relacional (RDBMS: Relational Data Base Management System) para definir la estructura de la base de datos, el almacenamiento, la manipulación, recuperación y acceso de los datos, así como asegurar la integridad de los mismos [2].
4
2.3. Bases de datos 2.3.1. Definición Una base de datos es un conjunto de datos relacionados entre sí los cuales son almacenados y clasificados de forma estructurada en una tabla para su posterior uso. Dicha tabla está compuesta por renglones y columnas donde cada columna tendrá un nombre único y almacenará el mismo tipo de dato (número, texto, etc.).
2.3.2. Modelos de bases de datos Bases de datos jerárquicas. Éstas son bases de datos que, como su nombre lo indica, almacenan su información en una estructura jerárquica. En este modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas. Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento. Base de datos de red. Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico). Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales. Base de datos relacional. Éste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Su idea fundamental es el uso de "relaciones". Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla) y campos (las columnas de una tabla). 5
En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante consultas que ofrecen una amplia flexibilidad y poder para administrar la información. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL [2]. 2.3.3. Modelo entidad – relación El modelo entidad-relación es el modelo más utilizado para el diseño conceptual de bases de datos. Fue introducido por Peter Chen en 1976. El modelo entidadrelación está formado por un conjunto de conceptos que permiten describir la realidad mediante un conjunto de representaciones gráficas y lingüísticas como se muestra en la figura 2.1. Este modelo utiliza tres elementos principales entidad, atributos y relaciones.
Figura 2.1 Concepto de los modelos entidad-relación.
Entidad. Es un objeto independiente de cualquier tipo sobre el que queremos almacenar información (Ej.: una persona). Se dice que es independiente ya que se diferencia de cualquier otro objeto a pesar de
ser del mismo tipo, dicha 6
identificación es posible gracias a los atributos que posee cada una de las entidades. Hay dos tipos de entidades: fuertes y débiles. Una entidad débil es una entidad cuya existencia depende de la existencia de otra entidad. Una entidad fuerte es una entidad que no depende de ninguna otra. Las entidades se representan gráficamente mediante rectángulos y su nombre aparece en el interior. Un nombre de entidad sólo puede aparecer una vez en el esquema conceptual. Atributos. Es una característica de interés o un hecho sobre una entidad o sobre una relación. Los atributos representan las propiedades básicas de las entidades y de las relaciones. Los atributos pueden ser simples o compuestos. Un atributo simple es un atributo que tiene un solo componente, que no se puede dividir en partes más pequeñas que tengan un significado propio. Un atributo compuesto es un atributo con varios componentes, cada uno con un significado por sí mismo. Un grupo de atributos se representa mediante un atributo compuesto cuando tienen afinidad en cuanto a su significado, o en cuanto a su uso. Un atributo compuesto se representa gráficamente mediante un óvalo. Relaciones. Es una correspondencia o asociación entre dos o más entidades. Cada relación tiene un nombre que describe su función. Las relaciones se representan gráficamente mediante rombos y su nombre aparece en el interior. Las entidades que están involucradas en una determinada relación se denominan entidades participantes. El número de participantes en una relación es lo que se denomina grado de la relación. Por lo tanto, una relación en la que participan dos entidades es una relación binaria; si son tres las entidades participantes, la relación es ternaria; etc. 2.3.4. Comandos básicos de SQL Comandos DLL. Permiten crear y definir nuevas bases de datos, campos e índices. Los comandos principales de este tipo son los siguientes: Create. Crea nuevas tablas, campos e índices. Drop. Elimina tablas e índices.
7
Alter. Modifica las tablas agregando campos o cambiando la definición de los campos. Comandos DML. Permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Los comandos principales de este tipo son los siguientes: Select. Consulta registros de la base de datos que satisfagan un criterio determinado. Insert. Agrega datos en la base de datos en una única operación. Update. Modifica los valores de los campos y registros especificados. Delete. Elimina registros de una tabla de una base de datos. 2.3.5. Declaraciones en SQL SQL se compone de un conjunto de instrucciones que definen la estructura de una base de datos, así como el almacenamiento, la administración y el acceso a los datos dentro de esa estructura. Las instrucciones básicas para SQL son create databse, alter database, drop database, create table y se explican a continuación. Create database. Esta es una instrucción para definir una nueva base de datos y en su forma más simple sólo involucra el comando “CREATE DATABASE” seguido por el nombre de la nueva base de datos.
Sintaxis: ::= CREATE DATABASE [IF NOT EXISTS] [[DEFAULT] CHARACTER SET ] [[DEFAULT] COLLATE ]
Como la sintaxis lo muestra, muy pocos componentes son necesarios en esta instrucción. La declaración incluye varios elementos que son opcionales. El primero de ellos –IF NOT EXIST-determina como SQL responderá a la instrucción CREATE DATABASE si una base de datos con el mismo nombre ya existe, no se creará una base nueva. Los siguientes elementos opcionales son 8
las cláusulas “CHARACTER SET” Y “COLLATE”. La primer cláusula especifica un grupo de caracteres (números, letras y símbolos) preestablecidos a usarse en una nueva base de datos, la segunda cláusula define la manera en que los valores que forman un grupo de caracteres son comparados, ordenados y agrupados.
Alter database. Habrá veces en las que será necesario modificar el tipo de datos contenidos en la base de datos. Para poder hacer esto se utiliza la instrucción “ALTER DATABASE” para especificar la nueva configuración. Como se puede observar en el siguiente ejemplo, la sintaxis para esta instrucción es parecida a la de la instrucción crear tabla.
Sintaxis: ALTER DATABASE [[DEFAULT] CHARACTER SET ] [[DEFAULT] COLLATE ]
En esta instrucción se escribe el comando ALTER DATABASE seguido por el nombre de la base de datos con la clausula CHARACTER SET, la cláusula COLLATE o ambas, Para cada cláusula se especifica la configuración deseada.
Ejemplo: ALTER DATABASE VENTAS CHARACTER SET latin1;
Drop database. Borrar una base de datos del sistema simplemente requiere la ejecución de la instrucción “DROP DATABASE” seguida por el nombre de la base de datos que se desea eliminar. La base de datos será eliminada junto con las tablas y cualquier información que esta contenga.
Sintaxis: DROP DATABASE [IF EXISTS] 9
Create table. Para crear una tabla en SQL se utiliza la instrucción “CREATE TABLE” para definir las columnas de la tabla y configurar las restricciones de la misma. Esta instrucción es una de las más complejas en MySQL. Contiene numerosos componentes y ofrece varias opciones para definir la naturaleza de la tabla, es por ello que sólo veremos una descripción general de esta instrucción.
Sintaxis:
::= CREATE [TEMPORARY] TABLE [IF NOT EXISTS]
(
[{,
}...]) [
[
...]]
La sintaxis mostrada anteriormente representa la totalidad del comando “CREATE TABLE”. La declaración requiere del comando para crear la tabla seguido del nombre que se le asignará a la misma. Esta declaración contiene dos elementos
opcionales
como
lo
es
en
primera
instancia
la
cláusula–
TEMPORARY- la cual indica que ésta es una tabla temporal que es usada sólo durante la sesión actual. El otro elemento temporal es la cláusula –IF NOT EXIST- la cual se explicó previamente en la instrucción “CREATE DATABASE” [2]. 2.3.6. Significado de los símbolos utilizados en declaraciones A continuación se muestra un ejemplo de sintaxis de una declaración con sus correspondientes símbolos como lo son barra vertical, corchetes, corchetes angulares, llaves, tres puntos, dos puntos/signo igual. Una vez que se aprende a utilizar estos seis símbolos, se debe ser capaz de interpretar la mayoría de la sintaxis [2].
::= { [NOT NULL | NULL] [DEFAULT ] [AUTO_INCREMENT] } | {PRIMARY KEY ( [ {, } . . . ] ) } | {INDEX [] ( [ {, } . . . ] ) } Barra vertical (|): La barra vertical puede ser interpretada como la operación booleana “or” la cual permite seleccionar entre dos o más opciones las cuáles son separadas por la barra vertical. Por ejemplo, en la sexta línea de la figura 2, se puede escoger entre NOT NULL o NULL. Corchetes ([ ]): Un par de corchetes indica que la sintaxis contenida dentro de éstos es de carácter opcional. Corchetes Angulares (< >): Un par de corchetes angulares indica que la sintaxis dentro de éstos es un marcador de posición. Llaves ({ }): Un par de llaves indica que la sintaxis que éstas encierran, debe ser tratada como una unidad. Como resultado, si un elemento es usado, todos los elementos serán usados al menos que éstos se encuentren separados unos de otros por medio de una barra vertical.
Tres puntos (…): Un grupo de tres puntos significa que la instrucción que precede a los tres puntos se puede repetir tantas veces como sea necesario. Dos puntos/signo igual (::=): Este símbolo literalmente es el equivalente a un signo =.
11
2.4 Funciones utilizadas en LabVIEW para manejo de base de datos El conjunto de herramientas de LabVIEW para conectividad con base de datos, posee funciones de alto nivel para la ejecución de tareas más comunes en bases de datos y funciones avanzadas para tareas personalizadas. La descripción de las principales funciones se muestra a continuación.
DB tools open conection.vi. Esta función abre una conexión a una base de datos utilizando la información de la ruta de conexión (path) y pasa una referencia de conexión. Si la terminal prompt tiene una constante verdadera, una ventana de dialogo es mostrada para configurar la conexión. La figura 2.2 muestra el icono.
Figura 2.2 DB tools open conection.vi. DB tools close conection.vi. La figura 2.3 muestra el icono de esta función, su propósito es el de cerrar la conexión a la base de datos destruyendo la referencia de conexión asociada.
Figura 2.3 DB tools close conection.vi. DB tools create table.vi. Crea una nueva tabla en la base de datos identificada por la referencia de conexión. Las terminales tabla e información de la columna, describen el nombre de la tabla y las propiedades de cada columna en la tabla, respectivamente. La figura 2.4 muestra el icono correspondiente.
Figura 2.4 DB tools create table.vi. 12
DB tools drop table.vi. Esta función ejecuta la acción de borrar una tabla específica de la base de datos identificada por la referencia de conexión. La figura 2.5 muestra el icono correspondiente.
Figura 2.5 DB tools drop table.vi.
DB tools insert data.vi. Al ejecutarse esta función, se inserta un nuevo renglón de datos en la tabla ubicada en la base de datos identificada por la referencia de conexión. A continuación se muestra el icono DB tolos insert data.vi en la figura 2.6.
Figura 2.6 DB tools insert data.vi
DB tools select data.vi. Selecciona datos de la tabla ubicada en la base de datos que es identificada por la referencia de conexión. Los datos son seleccionados de las columnas de la tabla usando la información dada por un arreglo de columnas. El icono de la función es mostrado en la figura 2.7.
Figura 2.7 DB tools select data.vi.
13
Database variant to data.vi. Convierte una variante de base de datos a un tipo de dato especificado en LabVIEW de manera que dicho dato pueda ser utilizado por alguna otra función o sub vi. La figura 2.8 muestra el icono conector.
Figura 2.8 Database variant to data.vi.
DB tools execute query.vi. Ejecuta una consulta de SQL y pasa una referencia de registros que eventualmente debe ser liberada. La figura 2.9 muestra el icono correspondiente.
Figura 2.9 DB tools execute query.vi.
DB tools fetch recordset data.vi. Obtiene los datos del registro identificado por la terminal de referencia de registros. Los datos son devueltos como un arreglo 2D de las variantes. Cada elemento puede ser convertido al tipo de dato especificado en LabVIEW utilizando la función database variant to data.La figura 2.10 muestra el icono conector correspondiente.
Figura 2.10 DB tools fetch recordset data.vi.
DB tools fetch element data.vi. Obtiene los datos ubicados en el índice de la columna del registro actual identificado por la referencia de registros. El índice de la columna puede ser el cero indexado. La figura 2.11 muestra el icono correspondiente. 14
DB tools move to record n.vi. Mueve el apuntador hacia el registro n en el conjunto de registros identificados por la referencia de registros. Para moverse al último registro, se utiliza n-1. La figura 2.12 muestra el icono de la función DB tolos move to record n .vi
Figura 2.11 DB tools fetch element data.vi.
Figura 2.12 DB tools move to record n.vi.
DB tools move to next record.vi. Mueve el apuntador al siguiente registro en el conjunto de registros identificado por la referencia de registros. A continuación se muestra el icono conector de la función en la figura 2.13.
Figura 2.13 DB tools move to next record.vi.
DB tools move to previous record.vi. Mueve el apuntador al registro anterior en el conjunto de registros identificado por la referencia de registros. El icono se muestra en la figura 2.14.
Figura 2.14 DB tools move to previous record.vi.
15
DB tools free object.vi. Libera un objeto mediante la destrucción de su referencia asociada y pasa una referencia diferente. El icono correspondiente se muestra en la figura 2.15.
Figura 2.15 DB tools free object.vi.
2.5. Máquina de estados 2.5.1. Introducción El termino máquinas de estado define un concepto de programación para una estructura de control inteligente, las máquinas de estado han adquirido un alto grado de aceptación entre la comunidad de programación de LabVIEW. Una máquina de estados, en términos simples, es una estructura de caso dentro de un ciclo while, el ciclo while proporciona la capacidad de ejecutar continuamente hasta que el operador condicional se establece en falso.
La declaración de caso permite las variaciones en la ejecución de código. El caso que se ha seleccionado para ejecutar puede ser, y generalmente es determinado en la iteración anterior del ciclo while. Esto permite que un bloque simple de código pueda tomar decisiones y realizar tareas. En su forma más simple, una máquina de estado puede ser un reemplazo para una estructura de secuencia.
Las máquinas de estado giran en torno a tres conceptos: el estado, el evento, y la acción. Ninguna máquina del estado funciona de manera eficaz sin los tres componentes. Estado es el nombre que define que la máquina de estados está pendiente de la respuesta de un objeto externo. El evento es un acontecimiento externo el cual informa a la máquina de estado que el evento ha ocurrido de forma correcta y ha tenido una transición de los estados en el momento adecuado. Los eventos pueden ser generados internamente por el código bajo el control de la máquina del estado. Las acciones son las respuestas a los eventos, 16
que puede o no afectar el código externo a la máquina de estados. La máquina del estado determina que las acciones deben tomarse cuando se produce un evento determinado [3]. 2.5.2. Aplicación de la máquina de estado El aspecto más poderoso de la utilización de máquinas de estado es que tiene la capacidad de hacer un programa que sea capaz de responder de manera inteligente a un estímulo, por lo que el programa ya no necesita ser lineal. El programa puede comenzar su ejecución en un orden determinado. Si el programador no quiere que el código se ejecute en el mismo orden para el mismo número de iteraciones, debe ser considerada una máquina de estados.
Cada vez que un evento ocurre, la máquina del estado toma una acción correspondiente. Las máquinas de estado son predecibles, la matriz de eventos, acciones, y los estados no está sujeta a cambios. El propósito de la máquina del estado es proporcionar respuestas definidas a todos los eventos que pueden ocurrir. Este mecanismo de control es fácil de implementar, es escalable para acontecimientos adicionales, y siempre ofrece el mismo mecanismo de respuesta a los acontecimientos [3]. 2.5.3. Tipos de máquinas de estados Hay un número de estilos diferentes de máquinas de estado. Las cuatro formas más comunes de las máquinas de estado son: estilo de secuencia, ejecutivo de prueba, la clásica y el estilo en cola.
Estilo de secuencia. El primer estilo de máquina de estados es el estilo de secuencia. Esta versión de la máquina de estados es, en esencia, una estructura de la secuencia. Esta versión de la máquina del estado ejecuta los estados (casos) en orden hasta que un valor falso está conectado a la terminal condicional. Hay un par de maneras en para aplicar este tipo de máquina de estados. La primera manera más simple es el índice de alambre del ciclo while para el selector de declaración de caso.
17
Dentro de cada caso, un booleano constante verdadero se conecta a la terminal condicional del ciclo while. El último caso pasa un valor booleano falso a la terminal condicional terminando la ejecución del ciclo. La figura 2.16 muestra una secuencia de la máquina de estados utilizando el índice de un ciclo while. Independientemente de su caso, la maquina va al siguiente estado en la secuencia [3].
Figura 2.16 Ejemplo de estilo de secuencia. Estilo ejecutivo de prueba. El estilo ejecutivo de prueba añade flexibilidad a la secuencia. Esta máquina de estados toma una decisión basada en las acciones tomadas en la interfaz de usuario o en los resultados obtenidos en un estado anterior para decidir qué estado se debe ejecutar a continuación. Este modelo utiliza una máquina de estados con registro de desplazamiento inicializado a servir de base a la declaración de caso. Dentro de cada caso, el siguiente estado de ejecución se decide. Un ejemplo de esta máquina de estado se muestra en la figura 2.17.
Figura 2.17 Ejemplo de ejecutivo de prueba. 18
Cuando se trabaja con un equipo ejecutivo de la prueba, los nombres de estado se correlacionan con una acción que la máquina del estado llevará a cabo. Cada nombre debe ser representativo de una simple frase que describe lo que el estado va a hacer. Esta es una guía para maximizar la flexibilidad de la máquina de estados. Uso de frases complejas para describir la actividad a realizar significa que cada vez que el estado se ejecuta todas las acciones deben llevar a cabo [3].
Estilo clásico. Es la más genérica de los estilos de máquina de estados. El primer paso para utilizar la máquina de estado es la definición clásica de los estados correspondientes, eventos y acciones. Una vez definidos los elementos, sus interacciones pueden ser especificadas. Esto concluye el diseño de la máquina de estado, y la codificación puede comenzar a aplicar el diseño [3].
Estilo cola. Como el nombre sugiere, la máquina de estados trabaja con una cola de entrada. Antes de entrar en la máquina del estado, una cola o buffer de entrada se crea. Como el estado máquina ejecuta, el estado que se ha ejecutado se quita de la cola durante la ejecución de la máquina de estados. Nuevos estados pueden ser añadidos o eliminados sobre la base de la cola de lo que sucede durante la ejecución. La ejecución del estilo de cola de estado puede ser completada por el estado de ejecución y se cierran cuando la cola está vacía [3].
2.6. Adquisición de datos en LabVIEW 2.6.1. El proceso de adquisición de datos La adquisición de datos es el proceso de medición de un fenómeno eléctrico o físico, como el voltaje, la temperatura, la presión, o el sonido. La adquisición de datos utiliza una combinación de hardware modular, software de aplicación, y una computadora para tomar medidas. El sistema de adquisición de datos (DAQ) se define por sus requisitos de aplicación, cada sistema comparte el objetivo común de adquirir, analizar y presentar información. Los sistemas de adquisición de
19
datos incorporan señales, sensores, acondicionamiento de señales, dispositivos DAQ, y software de aplicación [4]. 2.6.2. Funciones utilizadas en LabVIEW (DAQmx) NI-DAQmx Start Task. Elimina la reconfiguración innecesaria
con el fin de
obtener un alto nivel de eficiencia y maximizar el rendimiento. Inicia de de forma explícita las transiciones una tarea para el estado de ejecución. En el estado de ejecución, la tarea lleva a cabo la adquisición determinada o generada [5]. El icono de la función se muestra en la figura 2.18.
Figura 2.18 Icono de la función NI-DAQmx Start Task. NI-DAQmx Read. Lee muestras de la tarea de adquisición especificada. Las diferentes instancias de la función es permitir el tipo de adquisición, el número de canales virtuales, el número de muestras, y el tipo de datos para ser seleccionado [5]. La función es representada por el icono mostrado en la figura 2.19.
Figura 2.19 Icono de la función NI-DAQmx Read.
NI-DAQmx Write. Escribe muestras a la tarea especificada. Las diferentes instancias de la función es permitir el tipo de generación (analógica o digital), el número de canales virtuales, el número de muestras, y el tipo de datos para ser seleccionado [5]. La función es representada por el icono mostrado en la figura 2.20.
20
Figura 2.20 Icono de la función NI-DAQmx Write.
NI-DAQmx Clear Task. Borra la tarea especificada. Si la tarea se está ejecutando actualmente, la primera función detiene la tarea y luego libera todos sus recursos. Una vez que una tarea se ha borrado, no puede utilizarse a menos que sea recreada nuevamente [5]. La función es representada por el icono mostrado en la figura 2.21.
Figura 2.21 Icono de la función NI-DAQmx Clear Task.
2.6.3. Diagrama de bloques de un sistema de adquisición En la figura 2.22 se ejemplifica de forma general cuales son los componentes más comunes que forman parte de un sistema de adquisición de datos y de la misma forma muestra la secuencia lógica de pasos que este sigue hasta obtener el resultado práctico deseado. El sistema de adquisición analiza un fenómeno físico el cual puede ser luz, temperatura, presión, etc. Este fenómeno es detectado por un sensor el cual requiere de un acondicionamiento de señal para posteriormente ser adquirida por una tarjeta de adquisición de datos. El valor adquirido es interpretado y analizado en el programa desarrollado en LabVIEW, obteniendo un resultado práctico.
21
Fenómeno físico luz, presion, tempe ratura, etc.
Sensores y transductores.
Acondicionamiento de la señal.
Adquisición de datos.
Configuración de medición y de automatización (MAX), asistente de DAQ, etc.
Controladores NI-DAQmx.
Interfaz de programación para aplicaciones (API). NI-DAQmx
Programa de aplicación. LabVIEW
Aplicación.
Figura 2.22 Diagrama de bloques de un sistema de adquisición.
2.6.4. Tarjeta de adquisición La utilización de las tarjetas de adquisición de datos (plug-in data acquisition
boards) ha conseguido una gran aceptación en muchas aplicaciones. Se conecta directamente al bus del ordenador y permite adquirir y procesar datos en tiempo
real. Cada modelo de tarjeta presenta varias funcionalidades, lo que proporciona mucha flexibilidad y operativid operatividad ad para las necesidades de medida y control.
La tarjeta de adquisición de datos se caracteriza por una serie de parámetros que permiten decidir sobre su utilización. Estos parámetros son fijados por un conjunto de funciones y dispositivos internos, entre los cuales destacan el número de canales de entrada y de salida analógica y digital y los convertidores analógicos a digitales, los sistemas de multiplexado y los márgenes di dinámicos námicos de
entrada y salida [10]. 2.7.
Sensores y circuitos de acondicionamiento
2.7.1. Termopar tipo k El termopar es un dispositivo de uso común para medir grandes diferencias de temperatura, o altas temperaturas. Se fabrica con dos conductores eléctricos
22
distintos, soldados entre sí por un punto de conexión. Cuando cambia la temperatura de la unión, se crea una fuente electromotriz (FEM) en la unión.
La diferencia de potencial (tensión de Seebeck) no puede medirse directamente conectando un voltímetro al termopar, pues los cables del voltímetro forman con los del termopar otra nueva unión termoeléctrica como se muestra en la figura 2.23, por lo que se debe de compensar con una unión fría, también conocida como baño de hielo la cual se aplica con el fin de compensar la temperatura ambiente con la absoluta ejemplificado en la figura 2.24 [6].
El termopar tipo K es definido por la combinación de cromel con alumel, es adecuado en atmosferas con escaso oxigeno libre y temperaturas de -184 °C a +1260 °C.
Figura 2.23 Medición del termopar con un voltímetro.
Figura 2.24 Compensación junta fría.
El principio de funcionamiento de un termopar, es el efecto Seebeck que consiste en que dos metales o aleaciones con diferente número atómico, al estar en
23
contacto íntimo (soldados eléctricamente en atmósfera inerte) presentan una diferencia de potencial que aparece en proporción a la temperatura de la unión es decir el voltaje proporcionado por los termopares es aproximadamente proporcional a la diferencia de temperaturas entre las uniones caliente y fría. El factor más importante que determina la sensibilidad del termopar es el coeficiente de Seebeck, que proporciona la fuerza electromotriz (fem) inducida ∆V en función de la diferencia de temperatura ∆T de las dos uniones [8]. Los termopares K son versátiles y de bajo costo. Se pueden emplear en atmósferas oxidantes y reductoras. Se aplican a menudo en hornos así como en la industria de cerámica y de plástico, no se debe ser utilizado en atmósferas reductoras ni sulfurosas a menos que esté protegido con un tubo de protección [8].
2.7.2.
El amplificador AD595
El amplificador AD595 es un circuito de acondicionamiento especial para termopares tipo K, las especificaciones marcadas en la hoja de datos son: •
Tensión de salida de baja impedancia: 10 mV/°C (
•
Incluye compensación de junta fría.
•
Fuente de alimentación: +5 V a ± 30 V
•
Alarma de falla en el termopar.
•
Punto de ajuste del modo de funcionamiento.
•
Funciona como un termómetro en grados Celsius.
El AD595 es un amplificador de instrumentación el cual combina un punto de referencia de hielo con un amplificador para producir un nivel alto (10 mV / ° C) en la adquisición directa de una señal de termopar. Según el tipo de conexión permiten ser utilizado como un amplificador lineal compensador o como un punto de control de salida. Puede ser utilizado para amplificar la tensión de compensación directa, lo que lo convierte en un transductor independiente a grados centígrados con una baja impedancia de salida de voltaje, puede recibir 24
energía de una fuente única de composición (incluida la de +5 V) y la inclusión de una provisión negativa para medir temperaturas inferiores a 0 ° C [7]. 2.7.3. Sensor LVDT Los sensores LVDT son definidos como transformadores diferenciales variables lineales (LVDT, Lineal Variable Differencial Transformer) los cuales generan una señal de voltaje de salida la cual es proporcional un desplazamiento físico.
La figura 2.25 muestra que un LVDT es un dispositivo de sensado de posición que provee un voltaje de salida de CA proporcional al desplazamiento de su núcleo que pasa a través de sus bobinas primaria y secundaria. Los LVDT proveen una salida lineal para pequeños desplazamientos mientras el núcleo permanezca dentro del bobinado primario. La distancia exacta es función de la geometría del LVDT.
Figura 2.25 Construcción física y circuito esquemático de un LVDT.
El LVDT tiene uno bobina primaria y dos secundarias todas ellas encapsuladas en un mismo empaque. El empaque es hueco y contiene un núcleo magnético el cual es libre de desplazarse en su interior. El núcleo magnético se encuentra centrado en el empaque, el acoplamiento del campo magnético será el mismo para el embobinado secundario 1 con el embobinado secundario 2, por lo que ambos voltajes de bobina secundaria serán iguales [9].
Un LVDT es muy parecido a cualquier otro transformador, el cual consta de un bobinado primario, bobinado secundario, y un núcleo magnético. Una corriente 25
alterna, conocida como señal portadora, se aplica en el embobinado primario. Dicha corriente alterna en el embobinado primario produce un campo magnético variable alrededor del núcleo. Este campo magnético induce un voltaje alterno (CA) en el embobinado secundario que está en la proximidad del núcleo. Como en cualquier transformador, el voltaje de la señal inducida en el embobinado secundario es una relación lineal del número de espirales, cuando el núcleo se desplaza, el número de espirales expuestas en el embobinado secundario cambia en forma lineal; por lo tanto, la amplitud de la señal inducida cambiará también linealmente con el desplazamiento. Los sensores de posición lineal LVDT están fácilmente disponibles para medir movimientos de millonésima partes de pulgada hasta varias pulgadas, pero así también son capaces de medir posiciones de hasta ±20 pulgadas [9]. 2.8. Microcontrolador PIC16F84A Un microcontrolador es un circuito integrado programable el cual contiene todos los componentes necesarios para controlar el funcionamiento de una tarea específica asignada. Para llevar a cabo la tarea, el microcontrolador utiliza muy pocos componentes asociados y una memoria de tipo no volátil denominada ROM donde se almacena el programa que determina el funcionamiento del mismo. La utilización de un microcontrolador en un circuito reduce notablemente el tamaño y el número de componentes utilizados en éste y en consecuencia, disminuye el número de fallas, el volumen y el peso de los equipos, entre otras ventajas [11].
La arquitectura interna del pic16f84a se puede observar en la figura 2.26 y sus principales características son mencionadas a continuación: •
Arquitectura Hardvard.
•
Procesador de tipo RISC (Reduced instruction set computer).
•
Arquitectura ortogonal para instrucciones.
•
Memoria de programa tipo ROM de 1k x 14 bits.
•
Memoria dividida en dos segmentos:
26
o
Área RAM de constituida por 22 registros de propósito especifico (SFR) y 68 propósito general.
o •
Área EEPROM constituida por 64 registros de 8 bits.
ALU de 8 bits y registro de trabajo W, del que normalmente recibe un operando que puede ser cualquier registro, memoria, puerto de salidaentrada o el propio código de instrucción.
•
•
Dos puertos para comunicación con el exterior: o
Puerto A de 5 bits .
o
Puerto B de 8 bits .
Contador de programa (apuntador) de 13 bits.
Todo microcontrolador requiere un circuito que le indique la velocidad de trabajo, es el llamado oscilador, éste genera una onda cuadrada de alta frecuencia que se utiliza como señal para sincronizar todas las operaciones del sistema. El oscilador más utilizado es el oscilador XT el cual permite una frecuencia muy estable comprendida entre los 100 KHz y los 4 MHz El PIC puede trabajar con una frecuencia de hasta 10MHz. Los pines OSC1/CLKIN y OSC2/CLKOUT son los pines utilizados para conectar el oscilador como se muestra en la figura 2.27. La alimentación del PIC es con un voltaje de 5 voltios los cuales se aplican entre los pines VDD y VSS que son respectivamente, la alimentación y la tierra del chip. El PIC requiere de un código fuente el cual controlará el funcionamiento del mismo, dicho código se realiza utilizando lenguaje ensamblador el cual comprende grupos de números alfanuméricos que simbolizan las ordenes o tareas a realizar con cada instrucción. Este tipo de lenguaje es utilizado ya que es mucho más sencillo de entender y utilizar que el lenguaje máquina. El código fuente se graba en la memoria de programa del PIC mediante un equipo físico denominado grabador el cual se conecta a la computadora a través del puerto serie COM 1. En la computadora se ejecuta un software que controla la grabación de la memoria del programa del microcontrolador.
27
Figura 2.26. Arquitectura interna del PIC16F84A.
Figura 2.27. Microcontrolador PIC 16F84A.
28
CAPÍTULO 3
DESARROLLO DEL SISTEMA
3.1. Desarrollo general del sistema Se diseño un sistema para emular el funcionamiento de un dilatómetro de carga el cual, estresa una muestra de un cerámico por temperatura y fuerza, el sistema desarrollado es capaz de monitorear la temperatura, emular que se aplica la fuerza y monitorear el desplazamiento que sufre la muestra bajo las condiciones de prueba.
El sistema está integrado por un sensor de temperatura, termopar tipo K con una sensibilidad de 40.44 µV/˚C, un sensor de desplazamiento LVDT con sensibilidad 3.9 mV/µm y un módulo que emula la fuerza aplicada en un rango de valores desde 0 hasta 255 (8 bits), una interfaz de usuario desarrollada en labview versión 8.5 y un PXI (PCI eXtensions for Instrumentation) modelo 100B el cual contiene una tarjeta de adquisición de datos modelo 6220 con 16 bits de resolución. El diagrama de bloques de la figura 3.1 muestra el sistema. Las partes que integran el sistema se explican a detalle a continuación.
0 ˚C – 1000 ˚C
Termopar
Acond Señal
0 V -10 V Ch 0 Ch 1
0 µm – 5000 µm
Lvdt
Módulo emular fuerza
PXI
Acond Señal
RS232
TAD 6220
-10 V -10 V
Interfaz
Base datos
Figura 3.1 Diagrama de bloques de sistema.
29
3.2 Acondicionamiento de señal de temperatura El integrado AD595 es un amplificador especial para el termopar tipo K que linealiza la señal, la amplifica con una ganancia de 247.3 y entrega un voltaje de 10 mV/˚C según la hoja de especificaciones. El voltaje de salida del AD595 se obtiene de la siguiente fórmula:
AD595 output = (Type K voltage + 11 µV) X 243.7. En la figura
3.2 se muestra el diagrama del circuito acondicionador para el termopar K. El rango de temperatura a sensar es de 0 ˚C a 1000 ˚C con un voltaje equivalente de salida de 0 V a 10 V, tomando en cuenta los 16 bits de resolución de la tarjeta de adquisición de datos 6220. Para calcular el margen dinámico de temperatura y voltaje se utiliza la ecuación 3.1. El cambio mínimo de voltaje que la tarjeta puede detectar es de 153 µV como se muestra en la ecuación 3.2 y el cambio mínimo de temperatura es de 15 m˚C como se muestra en la ecuación 3.3. Debido a las características del horno utilizado sólo se permiten incrementos mínimos de 1 ˚C, por lo cual no es posible comprobar en forma práctica que el sistema es capaz de detectar 15 m˚C.
153 μV
15 m˚C
(3.1) (3.2) (3.3)
Figura 3.2 Circuito acondicionador para termopar.
30
3.3. Acondicionamiento de señal de desplazamiento El transformador diferencial lineal LVDT es un dispositivo para la medición de distancia o desplazamientos, se utilizó el sensor LVDT D6/02500A (RDP group) con un rango de ±2.5 cm de la marca RDP de resolución infinita con sensitividad de 375 mV/V se utilizó el modelo spring que permite un movimiento lineal del núcleo y regresa a su posición inicial hacia fuera. Se utilizó un circuito acondicionador de señal de la marca RDP S7AC que provee una señal de salida proporcional al desplazamiento en un rango de 9.65 V cuando el núcleo del sensor está afuera, 0V cuando el núcleo del LVDT se ha desplazado y se encuentra a una distancia simétrica entre las bobinas secundarias, provee -9.65 V cuando el núcleo está 5 cm dentro. El acondicionador se alimenta con ±10 V, tiene una
resolución de 3.9
mV/µm. También se utilizó un robot microposicionador de la marca Edmund Optics con resolución de 1µm por paso. El robot microposicionador se opera con un software especial el cual se comunica con el robot a través del puerto serie. El robot aplicó desplazamientos conocidos en intervalos de 50, 100 y 500 micras, respectivamente. Se registró en un archivo de texto el valor de voltaje de respuesta del circuito acondicionador mediante un programa desarrollado en LabVIEW el cual adquiere 10 muestras y obtiene el valor promedio. La figura 3.3 muestra el Sensor LVDT en posición con el robot para iniciar las pruebas.
Figura 3.3 Sensor LVDT montado para realizar las pruebas. 31
3.4. Modulo para emular fuerza El propósito de la implementación de este módulo es comprobar la comunicación a través del puerto serie entre el microcontrolador y el software, para emular el funcionamiento y respuesta de la prensa que aplica la fuerza al dilatómetro de carga. El hardware y software que aplica la fuerza controlada está fuera del alcance de este trabajo; por lo cual, sólo se diseño un módulo que envía del microcontrolador al puerto serie de la computadora un número entre 0 y 255 que representa el valor de la fuerza. Para desarrollar el programa del microcontrolador se tomó como base el programa RS232_02.asm contenido en el libro “Microcontrolador PIC16F8A desarrollo de proyectos” [12]. Se adapto el código a las necesidades el proyecto con algunas modificaciones, como agregar la subrutina llamada Binario_BCD para convertir un número binario a código bcd.
El diagrama de flujo de la figura 3.4 muestra la secuencia lógica del código contenido en el microcontrolador, el cual realiza la lectura y envío de datos a través del puerto serie. Se implementó un protocolo “Hand shaking” en el cual el microcontrolador espera hasta recibir un carácter proveniente de la computadora, una vez que lo ha recibido, verifica si el pin 1 del puerto A es cero, de ser así, el carácter recibido es leído por el microcontrolador y enviado a la computadora. Si el pin 1 del puerto A se encuentra a 1, el microcontrolador leerá el valor de entrada existente en el puerto B, el cual es introducido por medio de un interruptor, dicho valor es convertido a código bcd por medio de una subrutina y como resultado se obtienen tres valores (centenas, decenas, unidades,) los cuales se convierten a código ASCII para posteriormente, ser enviados a través del puerto serie a la computadora, el sistema toma los datos, los analiza y los despliega en la interfaz de usuario. El diagrama mostrado en la figura 3.5 muestra el diagrama esquemático del circuito implementado para el módulo de emulación de fuerza.
32
Inicio
NO
Recibe carácter SI NO
RA 1 =0
Reenviar carácter recibido.
SI
Lee valor en puerto B
Convertir Binario-BCD
Centenas
Decenas
Unidades
Convertir a ASCII (+48)
Centenas
Enviar Centenas
Decenas
Enviar Decenas
Unidades
Enviar Unidades
Figura 3.4 Diagrama de flujo de microcontrolador.
33
Figura 3.5 Diagrama de módulo emulador de fuerza.
3.5. Diseño de la base de datos La base de datos se implementó en base al modelo entidad-relación. El modelo entidad-relación de la base de datos mostrado en la figura 3.6 se utilizó como base para genera el código para crear la base de datos. Utilizando Navicat se capturó y ejecutó el código para crear la base de datos en MySQL.
En base al modelo relacional mencionado anteriormente, se procede a crear la base de datos con sus respectivas tablas utilizando la herramienta de query editor en el programa de navicat, el cual es una interfaz de usuario para crear bases de datos con lenguaje de MySQL. Las tablas 3.1 y 3.2 muestran una parte de la sintaxis utilizada para crear las tablas y las llaves primarias de cada una de ellas, las llaves primarias son las que garantizan que un registro en la base de datos sea único.
34
Prueba
*claveprueba nombre descripción diametro altura Limite X Limite –x Limite y aplicafuerza velfuerza timepocfuerza tiemponofuerza tiempomuestreo tiempopruebtot fecha horainicio horatermino tempaplicfuerza
Figura 3.6 Modelo entidad-relación de la base de datos.
Tabla 3.1 Sintaxis para crear tablas. Use dilatometro; CREATE TABLE usuario( claveUsuario INT NOT NULL, perclave INT, upassword CHAR(20) NOT NULL, ualias CHAR(10) NOT NULL, TempMax INT, FzaMax INT )TYPE=INNODB ; CREATE TABLE perfil( perclave INT NOT NULL, perNombre CHAR(20), perDescripcion CHAR(50) )TYPE=INNODB;
35
Tabla 3.2 Sintaxis para crear llaves primarias. Use dilatometro; CREATE INDEX Ref43 ON prueba(claveUsuario) ; CREATE INDEX Ref18 ON usuario(perclave) ; ALTER TABLE perfil ADD PRIMARY KEY (perclave) ; ALTER TABLE prueba ADD PRIMARY KEY (claveprueba) ; ALTER TABLE usuario ADD PRIMARY KEY (claveUsuario) ;
3.6. Comunicación entre MySQL y LabVIEW Ambos programas interactúan entre sí gracias al servidor ODBC MSI, el cual puede ser descargado desde la página de internet www.Mysql.com. Para obtener una comunicación exitosa es importante la configuración correcta del manejador para MySQL y la creación de un enlace de datos que permita acceso a la base de datos desde LabVIEW.
3.6.1. Configuración de manejador para MySQL en Windows Una vez que se ha instalado correctamente MySQL y el servidor ODBC MSI en la computadora es necesario seguir una serie de pasos que a continuación se describen para lograr una configuración exitosa entre MySQL y el sistema operativo Windows. El primer paso a seguir es el siguiente: Dar clic en Inicio-> Panel de control -> Herramientas administrativas como lo muestra la figura 3.7.
36
Figura 3.7 Panel de control.
Una vez que se ha encontrado el icono de herramientas administrativas, se procede a dar doble clic sobre éste, lo cual abrirá una ventana emergente que muestra entre otras cosas un icono llamado “orígenes de datos (ODBC)”, de igual manera se selecciona esta opción como se muestra en la figura 3.8.
Figura 3.8 Orígenes de datos.
37
Ubicarse en la pestaña DNS de usuario y seleccionar “agregar” como lo muestra la figura 3.9. Se muestra una lista de los manejadores disponibles y se debe seleccionar el manejador MySQL ODBC 5.1 mostrado en la figura 3.10. Introducir la información de conexión con el servidor de MySQL. El número del puerto por defecto es el 3306. El nombre del servidor así como el nombre de usuario y la contraseña son los mismos que estableció cuando instaló MySQL. Por último, seleccionar la base de datos con la que se desea trabajar y probar la conexión, la figura 3.11 muestra la pantalla de conexión exitosa. Una vez probada la conexión, se procede a crear un archivo de enlace de datos (extensión *.udl).
Figura 3.9 Agregar ODBC.
Figura 3.10 Seleccionar manejador MySQL.
38
Figura 3.11 Conexión exitosa (ODBC).
3.6.2. Creación de enlace de datos entre MySQL y LabVIEW A continuación se procede a crear un manejador con extensión .UDL el cual servirá como enlace de datos entre MySQL y el software LabVIEW. Para poder iniciar con este proceso es necesario situarse en el escritorio y dar un clic derecho sobre la pantalla y después seguir las siguientes acciones. Seleccionar Nuevo->Vínculo a datos. La figura 3.12 muestra la creación de nuevo vínculo de datos.
Figura 3.12 Nuevo vínculo a datos.
39
Dar doble clic sobre el archivo creado (se puede renombrar si se desea) y en la pestaña de proveedor, seleccionar el proveedor de Microsoft para manejadores ODBC (figura 3.13) y una vez que se ha sido seleccionado, el siguiente paso consiste en posicionarse en la pestaña de conexión (figura 3.14), se selecciona el nombre del servidor para MySQL, la base de datos deseada y se prueba el enlace.
Figura 3.13 Proveedores de vínculo de datos.
Figura 3.14 Conexión de vínculo de datos.
40
3.7. Diseño de la Interfaz de usuario La interfaz de usuario se desarrolla en una arquitectura basada en diagramas de estados, donde cada estado representa una acción que toma parte en la ejecución del programa. La figura 3.15 muestra el diagrama de estados del programa para emular el dilatómetro de carga. La figura 3.16 muestra el diagrama de casos de uso para el estado de “acciones” y la figura 3.17
Figura 3.15 Diagrama de estados del programa para emular el dilatómetro de carga.
41
Administrar usuarios
Usuario
Administrar pruebas
Realizar pruebas
Salir
Figura 3.16 Diagrama de casos de uso.
Figura 3.17 Botones de acciones. Si el usuario es un administrador podrá seleccionar la opción de administrar usuarios la cual a su vez cuenta con una serie de opciones para dar de alta, dar de baja y modificar usuarios como se muestra en la figura 3.18. Administrar pruebas permite al usuario revisar registros de pruebas pasadas, estos registros contienen la información de los parámetros de la prueba realizada, si el usuario es un administrador además de buscar registros tendrá los privilegios para eliminar 42
registros si así lo desea como lo muestra el diagrama de casos de usos mostrado en la figura 3.19. La figura 3.20 muestra la interfaz de usuario correspondiente para las opciones antes mencionadas.
Administrador
Alta usuario
Baja usuario
Modificar usuario
Figura 3.18 Casos de uso para la opción administrar usuarios. Realizar pruebas es el estado donde el usuario ingresa los parámetros de la prueba a realizar, dichos parámetros serán validados de acuerdo al perfil de cada usuario y antes de iniciar la prueba se revisa que los sensores se encuentren listos y en posición, una vez que todo se encuentra listo, en el estado de configuración de fuerza, se envían los datos de la configuración de la fuerza (de ser necesario) al modulo emulador de fuerza, el cual los recibe y confirma al sistema que la recepción de datos fue exitosa. De ahí pasamos al estado más importante de todo el sistema, el estado de monitoreo de prueba. El diagrama de la figura 3.21 muestra la secuencia lógica de esta parte del sistema.
Usuario
Eliminar registro prueba
Buscar registro prueba
Salir
Figura 3.19 Casos de uso Administrar pruebas. 43
Figura 3.20 Botones Administrar Pruebas / Administrar usuarios.
Validación parámetros
Ingresar parámetros Parámetros validos
Revisión sistema
Revisando Sistema
Sistema Listo
Cargar configuración fuerza Salir
Cerrar conexiones
Monitoreo
SALIR
Alarma
Figura 3.21 Diagrama de estados opción realizar pruebas.
44
El estado de monitoreo es el estado principal y más complejo de todo el sistema ya que dicho estado contiene una máquina de estados anidada como lo muestra la figura 3.22. Esta máquina de estados permite
inicializar variables,
permite la
adquisición y análisis de señales, almacenar datos de la prueba así como los eventos ocurridos durante el desarrollo de la misma y un estado de verificación de tiempo. El estado inicial de la máquina de estados anidada muestra la información general de la prueba, los datos mostrados son el nombre y descripción de la prueba, así como la hora en la que se inicia ésta. El estado que le sigue es el estado de adquisición en el cual se toman las lecturas de las señales correspondientes a cada sensor, después de esto el sistema verifica si el usuario requiere aplicar o no temperatura en la prueba (dicha opción fue seleccionada previamente en el estado de ingresar parámetros), de ser así, se pasa al estado de análisis de temperatura donde se compara la temperatura actual con la temperatura límite dando como resultado tres casos posibles. El primero de ellos es que la temperatura actual se encuentre dentro del rango requerido y de ahí se pase al estado de aplicar fuerza, el segundo caso puede se da cuando aún no se alcanza la temperatura requerida, entonces el sistema seguirá en ejecución tomando lecturas cada determinado tiempo. El último posible caso es cuando la temperatura excede el rango permitido generando así que la prueba termine por alarma. Si el usuario no requirió de la aplicación de temperatura, el sistema verifica si el usuario requiere aplicar o no fuerza, de ser así, se analiza el valor enviado por el modulo emulador de fuerza, una vez analizado dicho valor, pueden ocurrir
los
mismos tres resultados mencionados anteriormente. Que la fuerza este dentro de rango, que exceda el rango o que se encuentre fuera del rango pero sin excederse. Si el usuario no requiere aplicar fuerza, se pasa directamente al estado de análisis de deformación donde de la misma forma se pueden obtener tres posibles resultados, deformación fuera de rango, dentro de rango y excesiva. El sistema almacena los valores de las variables en un archivo de texto independientemente si se encuentran fuera o dentro de rango o si lo exceden, y 45
verifica si ocurrió alguna alarma, si es así el programa termina su ejecución, de no ser así, el sistema pasa al estado de verificar tiempo donde espera un período de tiempo antes de volver a iniciar el ciclo de adquisición y análisis de las variables. Una vez que se ha terminado la prueba, el estado siguiente de la máquina de estados externa, es el estado GuardaDatosPrueba, en el cual se almacena en la base de datos los parámetros ingresados por el usuario para realizar la prueba. Finalmente se pasa al estado salir donde se adquiere la hora de termino de la prueba y se muestra un mensaje que específica si la prueba terminó por alarma o por decisión del usuario. .Las figuras 3.23 (a) y 3.23 (b) muestran el diagrama de flujo general de todo el sistema donde podemos observar la secuencia lógica del código y la transición entre estados dependiendo de las condiciones que se presenten durante el desarrollo de la prueba.
Figura 3.22 Estado de monitoreo de prueba.
46
Inicio de sesion
No Usuario Válido
Si
Profesor/Alumno
Administrador Realizar Prueba
Alta usuario
Buscar registro prueba
Ingresar Parámetros
Baja usuario
Modificar usuario
Si
Eliminar registro prueba
Buscar registro prueba
No
Parámetros válidos
Revisión de Sistema
Lvdt
Horno
Prensa
No Sistema listo
Si
A
Figura 3.23 (a). Diagrama de flujo del sistema 47
A No
Si
Cargar Configuración fuerza
Respuesta micro
No Si Inicia Prueba
Tiempo agotado
Adquisición
Si
No Aplicar Temperatura
Almacenar
Existe alarma
Salir
Si/No
Si Análisis Temperatura
Verificar Tiempo
No
Temperatura
dentro de rango
No
Deformación dentro rango
Análisis Deformación
Si Si/No
Aplicar Fuerza
Si Aplica Fuerza
Análisis Fuerza
Fuerza dentro rango
Figura 3.23 (b) Diagrama de flujo del sistema.
48
CAPÍTULO 4
RESULTADOS
4.1 Sensor de temperatura El circuito acondicionador de temperatura utiliza el amplificador AD595 que tiene una ganancia de 247.3 y una salida lineal, se utilizó un termopar tipo K con una sensibilidad de 40.44 µV/°C como indica la hoja de datos. Para la caracterización del sensor se creó un programa en LabVIEW que se muestra en la figura 4.1 para tomar 20 muestras espaciadas por 20 segundo y se obtuvo el promedio como el mejor estimado, además se calculó el valor máximo y el mínimo, con el fin de observar las variaciones entre las lecturas, la información se registró en un archivo de texto para su posterior análisis.
Figura 4.1 Interfaz de usuario para adquirir las muestras de temperatura.
49
El termopar tipo k y su circuito de acondicionamiento se muestra en la figura 4.2, se construyó en una tablilla de circuito impreso y se colocaron terminales para las conexiones de alimentación y salida.
Figura 4.2 El circuito acondicionador para el termopar tipo K. Con el objetivo de probar la linealidad del circuito de acondicionamiento del termopar se realizaron tres pruebas en distintos rangos de temperatura. En la prueba uno se realizaron catorce lecturas iniciando en 100 °C, con incrementos de 20 °C hasta llegar a 360 °C. Los datos se muestran en la figura 4.3.
Prueba uno 4 3 Voltaje V 2 1 0 100 120 140 160 180 200 220 240 260 280 300 320 340 360 Temperatura °C
Figura 4.3 Salida del circuito acondicionador de temperatura para la prueba uno.
50
En la prueba dos se realizaron veintiún lecturas, se inició en una temperatura de 40 °C con incrementos de 20 °C hasta llegar a 440 ° C.
Figura 4.4 Salida del circuito acondicionador de temperatura para la prueba dos. En la prueba tres se obtuvieron veinticuatro lecturas, en el rango 100 °C a 500 °C con incrementos de 20 °C. Los resultados obtenidos se muestran en la figura 4.5. La prueba cuatro se realizó con el fin de obtener las variaciones que tiene el sensor al medir n veces la misma temperatura, por lo que se realizaron 250 lecturas cada veinte segundos a una temperatura de 200 °C. En la figura 4.6 se aprecia que la variación que existe entre las muestras es de 39 mV ya que el valor máximo en toda la prueba es de 2.137 volts y el mínimo es de 2.098 volts.
La prueba cinco del sensor se realizó incrementando la temperatura en el rango de 100 ˚C a 800 ˚C con incrementos de 20 ˚C y luego decrementándo la temperatura en rango de 800 ˚C a 100 ˚C de 20 ˚C en 20 °C, con el objetivo de obtener la curva de histéresis, y así obtener el error que tiene el circuito de acondicionamiento y el sensor para la misma temperatura dependiendo si la lectura se realiza incrementándose o decrementándose, los datos correspondientes a esta prueba se 51
puede observar en la figura 4.7, la máxima histéresis fue de 152 mV para una temperatura de 540 °C, en la cual se obtuvo un vol taje de 5.668 V al aumentar la temperatura y al disminuirla el voltaje obtenido fue de 5.516 V.
Prueba tres 6 5 4 3 Voltaje V 2 1 0 100120140160180200220240260280300320340360380400420440460480500 Temperatura en °C
Figura 4.5 Salida del circuito acondicionador de temperatura para la prueba tres.
Figura 4.6 Salida del circuito acondicionador de temperatura para la prueba cuatro. 52
9
Histéresis
8 7 6 5 Voltaje V 4
VPromedio ascenso
3 VPromedio descenso
2 1 0
100 140 180 220 260 300 340 380 420 460 500 540 580 620 660 700 740 780 Temperatura en °C
Figura 4.7 Salida del circuito acondicionador en la prueba de histéresis. En figura 4.7 se puede observar que aunque el error de histéresis es muy pequeño debe corregirse, por lo que se ajustaron los datos a una ecuación para eliminar ese error. Esto se logró graficando los datos de la prueba de histéresis al incrementar la temperatura, la figura 4.8 muestra los resultados obtenidos analizado en minitab con un intervalo de confianza del 95%, se obtuvo la ecuación 4.1 con una desviación estándar de 0.0145 y un coeficiente de regresión del 100%. El resultado obtenido indica que la pendiente de la recta es de 10 mV/°C lo cual representa la sensibilidad del circuito de acondicionamiento que coincide con lo especificado por el fabricante del circuito de acondicionamiento. volt = 0.1520+0.0101 Temp
(4.1) 53
Figura 4.8 Caracterización de temperatura en el rango de 100 °C a 800 °C.
La segunda ecuación se obtuvo graficando los datos de la prueba de histéresis al descender la temperatura por lo que se ajustaron los datos a la línea recta. Esto se logró graficando los datos de la prueba de histéresis al descender la temperatura, la figura 4.9 muestra los resultados obtenidos al ser analizados en con un intervalo de confianza del 95% y se obtuvo la ecuación 4.2 con una desviación estándar de 0.0284 y un coeficiente de regresión del 100%. El resultado obtenido indica que la pendiente de la recta es de 10 mV/°C. Volt bajada = 0.0299+0.0123 Temp
(4.2)
Por último, se obtuvo el valor promedio de los datos de ascenso y descenso para obtener una ecuación más adecuada para el sistema y con ella estabilizar el voltaje que entrega el circuito acondicionador, la figura 4.10 muestra los resultados obtenidos al ser analizados con un intervalo de confianza del 95% y se obtuvo la ecuación 4.3 con una desviación estándar de 0.0135 y un coeficiente de regresión del 100%. El resultado obtenido indica que la pendiente de la recta es de 10 mV/°C. volt = 0.09098+0.01019 Tem
(4.3) 54
Figura 4.9 Gráfica de descenso de temperatura.
Figura 4.10 Gráfica del promedio ascenso y descenso de temperatura. 55
4.2 Sensor LVDT Con el objetivo de probar la linealidad del circuito de acondicionamiento del LVDT se realizaron tres pruebas con distintos incrementos de desplazamiento. En la prueba uno se realizaron 98 lecturas con incrementos de 50 µm en un rango de 0 a 4900 µm. La figura 4.11 muestra los resultados obtenidos al ser analizados en minitab, con intervalo de confianza del 95% y se obtuvo la ecuación 4.4 con una desviación estándar de 0.01418, la ecuación se ajustó a la recta con un coeficiente de regresión del 100%. El resultado de este análisis indica que la pendiente de la recta es
de
3.9
mV/µm
lo
cual
representa
la
sensibilidad
del
circuito
de
acondicionamiento. Según los datos calculados, un incremento de 50 µm en desplazamiento provoca un incremento de voltaje de 196.5 mV. voltprom50 = 9.585-0.0039 Desplazamiento50
(4.4)
Figura 4.11 Ecuación la salida del circuito acondicionador del LVDT para la prueba uno. En la prueba dos se tomaron 50 lecturas con incrementos de 100 µm en un rango de 0 a 4900 µm. La figura 4.12 muestra los resultados obtenidos al ser analizados 56
en minitab, con intervalo de confianza del 95% y se obtuvo la ecuación 4.5 con una desviación estándar de 0.01627, la ecuación se ajustó a la recta con un coeficiente de regresión del 100%. El resultado de este análisis indica que la pendiente de la recta es de 3.9 mV/µm lo cual representa la sensibilidad del circuito de acondicionamiento. Según los datos calculados un incremento de 100 µm en desplazamiento provoca un incremento de voltaje de 390 mV. Voltprom100 = 9.728-0.0039 Desplazamiento
(4.5)
En la prueba dos se tomaron 11 lecturas con incrementos de 500 µm en un rango de 0 a 5000 µm. La figura 4.13 muestra los resultados obtenidos al ser analizados en minitab, con intervalo de confianza del 95% y se obtuvo la ecuación 4.6 con una desviación estándar de 0.0866, la ecuación se ajustó a la recta con un coeficiente de regresión del 100%. El resultado de este análisis indica que la pendiente de la recta es de 3.9 mV/µm lo cual representa la sensibilidad del circuito de acondicionamiento. Según los datos calculados un incremento de 500 µm en desplazamiento provoca un incremento de voltaje de 1900 mV. Voltprom100 = 9.629-0.0038 Desplazamiento
(4.6)
Figura 4.12 Ecuación de la salida del circuito acondicionador del LVDT para la prueba dos. 57
Figura 4.13 Ecuación de la salida del circuito acondicionador del LVDT para la prueba tres.
4.3 Módulo para emular la fuerza Las pruebas que se hicieron al módulo para emular la fuerza fueron probadas con el programa “hyperterminal” con el fin de verificar la comunicación del microcontrolador con la interfaz de usuario por medio del puerto serie. El control de la prensa se comunica con la computadora para recibir los valores correspondientes a la configuración de la fuerza que se desea aplicar y para enviar a la computadora los datos que corresponden a la fuerza emulada que se está aplicando. En la figura 4.14 se muestra el módulo para emular la fuerza.
Se utilizo la pantalla de hyperterminal para enviar los datos, uno por uno, de la computadora al puerto serie, el programa en el microcontrolador lee los datos y envía lo leído a la computadora a través del puerto serie, en la figura 4.15 se muestran los caracteres enviados por el microcontrador, por lo que la comunicación “Hand Shaking” se consideró exitosa.
El segundo caso de respuesta del microcontrolador es cuando el recibe un carácter enviado por hyperterminal y lee el valor de la fuerza emulada que el usuario 58
introduce por medio de los interruptores mostrados en la figura 4.14. Este valor es leído por el microcontrolador y enviado a través del puerto serie a la computadora y se muestra en la pantalla del hyperterminal. La figura 4.16 muestra el valor de la fuerza emulada enviado por el microcontrolador a la pantalla del hyperterminal.
Figura 4.14 Módulo para emular la fuerza.
Figura 4.15 Envío de datos a través de puerto serie. 59
Figura 4.16 Recepción de datos a través de puerto serie.
4.4 Prueba del sistema incluyendo sensores de temperatura, desplazamiento y fuerza emulada Para verificar el funcionamiento correcto del programa se realizaron tres pruebas con todo el sistema como se muestra en la figura 4.17. Se implementó un escenario de prueba para cada una en el cual se monitoreó que los datos y las alarmas se comportaran de la forma esperada, todo esto se realizó para comprobar el funcionamiento de la interfaz de software.
En las tablas 4.1, 4.2 y 4.3 se muestra el monitoreo de las variables y de las alarmas, el valor de las variables de temperatura, fuerza y deformación son las mismas que el usuario ingresa en el formulario al momento de realizar la prueba, las de temperatura actual, fuerza aplicada y deformación actual dependen de el valor que los sensores y el emulador de fuerza envíen a la interfaz de usuario; por último, el estado de los indicadores dependen de la comparación entre los valores de los parámetros de la prueba, los valores que envían los sensores y el emulador de fuerza. Si el valor no está dentro del rango, el indicador debe estar apagado; si están en el rango deben de encender color verde y si exceden deben de encender
60
en color rojo, el indicador de fuerza enciende cuando se está aplicando fuerza, esto ocurre cuando la temperatura dentro del rango.
Figura 4.17 Prueba del sistema incluyendo sensores de temperatura, desplazamiento y fuerza emulada. La respuesta del circuito acondicionador es diferente si la temperatura va en ascenso o si esta estable, esta diferencia se trata de corregir mediante la ecuación 4.3 que se obtuvo del promedio de los datos de ascenso y descenso de temperatura, esta ecuación se muestra en la figura 4.10. La figura 4.18 muestra el momento en que la temperatura del horno se incrementa de 100 °C a 120 °C y se observa que la gráfica muestra un valor máximo de 132.5 °C esto se debe a que el circuito acondicionador de temperatura responde al comportamiento del horno que es de segundo orden, cuando esto ocurre existe una diferencia entre la lectura del horno 120 °C y la de la interfaz de usuario 132 °C.
61
En el escenario de la prueba uno, se especificó calentar el horno hasta los 180 °C, no aplicar fuerza y el límite de la deformación de 1000 micras. En la tabla 4.1 se muestra que el estado de los indicadores es el mismo hasta la línea siete, en la línea siete es cuando la temperatura del horno esta dentro del rango lo cual es mostrado en el indicador, el indicador de fuerza no se activa ya que en los parámetros ingresados por el usuario no se selecciono aplicar fuerza, en esta prueba la deformación no fue alanzada.
Tabla 4.1 Estado de las variables en la prueba uno. Fuerza Deformación Temperatura Ac-
Espe-
Ac-
Espe-
Ac-
Espe-
Tempera-
tual
rada
tual
rada
tual
rada
tura
86
195
0
0
43
1000
92
195
0
0
45
1000
100
195
0
0
46
1000
132
195
0
0
48
1000
124
195
0
0
49
1000
151
195
0
0
53
1000
192
195
0
0
54
1000
Indicadores Fuerza
Deforma-
Aplicación
ción
de fuerza
En la figura 4.19 se muestra la respuesta que tiene el circuito acondicionador para el termopar tipo K con respecto al horno, en esta figura se observa que la temperatura del sensor se está estabilizando a la temperatura del horno el cual está programado a 120 °C. En la figura 4.20 muestra cuando la tempe ratura ya está estable y está dentro del rango que el usuario indicó, no se está aplicando fuerza y no llega al desplazamiento especificado.
62
Figura 4.18 Diferencia de horno con la de la interfaz de usuario.
Figura 4.19 Estabilización de la temperatura.
63
Escenario de prueba dos. En este escenario se aplicar una fuerza constante de 31 libras a los 300 °C y con una deformación deseada d e 1200 micras. La figura 4.21 muestra el monitoreo de las variables, en las cuales se especificó los límites de temperatura, fuerza y deformación, en esta figura se muestra que la temperatura es la indicada por el usuario y que la fuerza está siendo aplicada. La figura 4.22 muestra que las alarmas de temperatura y de fuerza están en el estado deseado y que la fuerza está siendo aplicada, en esta figura se puede apreciar que la variación de la temperatura se comporta de forma estable, sólo tiene una variación máxima de 0.5 °C en. Los resultados obtenidos se muestran en la tabla 4.2.
Figura 4.20 Temperatura deseada sin alcanzar deformación ni aplicación de fuerza.
La tabla 4.2 muestra que el estado de los indicadores es el mismo hasta la línea seis, en la línea seis es cuando la temperatura del horno y la deformación están dentro del rango y la fuerza está siendo aplicada, en la línea siete los indicadores de
64
temperatura y fuerza indican que están dentro del rango, se está aplicando fuerza y la deformación ha excedido el límite que el usuario definió. Tabla 4.2 Estado de las variables en la prueba dos. Temperatura
Fuerza
Indicadores
Deformación
Ac-
Espe-
Ac-
Espe-
Ac-
Espe-
Tempera-
tual
rada
tual
rada
tual
rada
tura
200
300
0
31
812
1200
220
300
0
31
898
1200
240
300
0
31
943
1200
260
300
0
31
956
1200
280
300
0
31
986
1200
300
300
23
31
1198
1200
300
300
31
31
1250
1200
Fuerza
Deforma-
Aplicación
ción
de fuerza
La figura 4.23 muestra que las alarmas de temperatura y de fuerza están en el estado deseado, la fuerza está siendo aplicada y el indicador de la alarma del desplazamiento está en estado de alarma, lo que significa que el desplazamiento excede los límites especificados por el usuario, por esto es sistema es abortado y los datos guardados.
65
Figura 4.21 Temperatura deseada.
Figura 4.22 Fuerza y temperatura deseada. 66
Figura 4.23 Alarma de desplazamiento.
Escenario de prueba tres. En este escenario se desea aplicar una fuerza constante de 64 libras a los 250 °C y con un límite de deform ación de 1510 micras. Los resultados se muestran en la tabla 4.3. La tabla 4.3 muestra que el estado de los indicadores es el mismo hasta la línea tres, en la línea tres la temperatura del horno están dentro del rango, en la línea cuatro la temperatura esta dentro del rango y la fuerza está siendo aplicada, en la línea cinco los indicadores de temperatura y fuerza indican que están dentro del rango y la fuerza está siendo aplicada, en las líneas seis y siete, la temperatura, la fuerza y la deformación están dentro del rango y se está aplicando fuerza. En la figura 4.24 se observa el incremento de temperatura que ocurrió en el horno y el cual es detectado por el circuito acondicionador, no están las alarmas habilitadas y no se ha alcanzado ni excedido ningún rango especificado por el usuario. En la figura 4.25 muestra que la fuerza está siendo aplicada y que la temperatura y la fuerza son las deseadas por el usuario. La figura 4.26 muestra como las variables 67
de temperatura y fuerza se encuentran en el margen especificado por el usuario y que el desplazamiento ha sido alcanzado.
Tabla 4.3 Estado de las variables en la prueba tres. Fuerza Temperatura Deformación Ac-tual
Espe-
Ac-
Espe-
Ac-tual
rada
tual
rada
151
250
0
64
0.0749 1510
185
250
0
64
898
1510
255
250
0
64
385
1510
258
250
32
64
497
1510
256
250
64
64
956
1510
250
250
64
64
986
1510
249
250
64
64
1505
1510
250
250
64
64
1512
1510
Indicadores
Espe-
Tempera-
rada
tura
Fuerza
Deforma-
Aplicación
ción
de fuerza
68
Figura 4.24 Monitoreo sin alarmas.
Figura 4.25 Temperatura, fuerza dentro de rango. 69
Figura 4.26 Temperatura, fuerza y desplazamiento dentro de rango.
70
CAPÍTULO 5
CONCLUSIONES
En este trabajo se realizó el análisis y diseño de una interfaz de usuario para un dilatómetro de carga, se generó el esquema de arquitectura del sistema, y se obtuvieron los diagramas de casos de uso, diagramas de estados y esquema entidad-relación de la base de datos. Se implementó el diseño de la interfaz de usuario y la base de datos en MySQL. El código de la interfaz de usuario es un código escalable e incremental debido a que el diseño de éste se basó en la arquitectura de máquina de estados y máquina de estados anidada. Es factible modificar el código fácilmente al eliminar o agregar estados según se requiera para cubrir de forma satisfactoria las necesidades del usuario que se puedan presentar en un futuro. La caracterización del sensor de temperatura fue la tarea que consumió más tiempo durante el desarrollo del proyecto debido a las características del horno utilizado para realizar las pruebas. La principal radica en que el comportamiento del horno no es estable al momento de incrementar la temperatura y esta variación es detectada por el sensor de temperatura del sistema, provocando por unos momentos una diferencia en la temperatura leída por el sistema y la mostrada en el indicador del horno. Para la caracterización del circuito de acondicionamiento de la señal de temperatura se utilizó el análisis de regresión lineal en minitab para obtener la ecuación de la recta que mejor se ajusta a las lecturas obtenidas, comprobando que la sensibilidad del sensor es de 10 mV/°C.
En la implementación del LVDT no se encontraron mayores dificultades, puesto que el comportamiento de este sensor es muy estable, manteniendo una linealidad con un coeficiente de regresión de 100% y esto se observó en los análisis de las pruebas realizadas.
71
El módulo emulador de fuerza envía y recibe un carácter a la vez, es por esto que fue necesario crear una subrutina en el programa de microcontrolador para convertir un valor binario a código BCD y de la misma forma se requirió de un subVi en el programa desarrollado en LabVIEW para enviar los datos de configuración de la fuerza al microcontrolador carácter por carácter. Los valores se envían a través del puerto serie en código ASCII, es por ello, que se tienen que enviar digito por digito.
Durante los distintos escenarios de prueba a los cuales se sometió el sistema, se comprobó la comunicación entre el sistema físico y la aplicación, quedando demostrado de esta manera que la ejecución de la interfaz de usuario y el funcionamiento del sistema en general, cumple con los requerimientos y especificaciones del plan de trabajo. Es por ello que al término de este trabajo se concluye que las metas y objetivos trazados se cumplieron de acuerdo a lo establecido.
Como mejora a futuro es sustituir el módulo emulador de fuerza con un sistema real, el cual contenga un microcontrolador que opere una prensa. La interfaz de usuario creada, actualmente envía y recibe datos por medio del puerto serie, sólo es cuestión de adaptar el código del microcontrolador para que este se coordine con la interfaz de usuario. Los sensores de desplazamiento LVDT pueden ser sustituidos por sensores laser para medir desplazamiento con mayor exactitud.
72
REFERENCIAS [1] National Instruments Corporation. LabVIEW Fundamentals. 2007. [2] SHELDON, Robert; MOES Geoff. Beginning MySQL. First edition, Wiley publishing ,US 2005. [3] BITTER, Rick; MOHIUDDIN, Taqi;
NAWROCKI, Matt. LabView Advanced
Programming Techniques. Second edition, US: CRC Press, 2007. [4]http://sine.ni.com/np/app/culdesac/p/ap/daq/lang/es/pg/1/sn/n17:daq/docid/tut8734 [5] http://zone.ni.com/devzone/cda/tut/p/id/5434 [6] ROLLE, Kurt. Termodinámica. Sexta edición, Pearson, Pentice Hall, 2006. [7] Hoja de datos AD595. [8] CHAPARRO, William. Electricidad para estudiantes de ingeniería mecánica, Colombia, Universidad nacional de Colombia, 2006. [9] MALONEY, Timothy. Modern Industrial Electronics. Fifth edition,EU, Pentice Hall, 2008. [10] ANTONI, Manuel. Instrumentación virtual: adquisición, procesado y análisis de señales, Barcelona, Universidad politécnica de Catalunya, 2001. [11]PALACIOS, Enrique; J.LOPEZ Lucas, DOMINGUEZ Fernando. Microcontrolador PIC16F84A Desarrollo de proyectos. Primera edición, Alfaomega, Mexico, 2004
73
APÉNDICE A Encabezados
Iniciar sesión
i
Valida usuario_bco
Acciones
ii
Agregar usuario
Borrar usuario
iii
Modificar usuario
iv
Valida usuario viejo
Valida datos
v
Revisar sistema
MicroSerie
vi
Mensajes de revisar sistema
Análisis de temperatura
vii
Centenas, decenas y unidades
Análisis de fuerza
viii
Análisis del voltaje del LVDT
Análisis del desplazamiento de los LVDT
ix
Guarda datos de prueba
Buscar registro prueba
x
Administración de pruebas
Borrar registro prueba
xi
Acciones usuario
MicroSerie2
xii
Promedio Voltajes
VoltajeTemp3
xiii
APÉNDICE B
;***************************************** RS232.asm ********************************************** ; ; El PIC espera hasta recibir un carácter proveniente de la computadora. Una vez que esto ha ; sucedido, revisa si el pin 1 del puerto A esta a 0, si es así, reenvía el mismo carácter ; recibido ; de vuelta a la computadora, si el pin esta a 1, el PIC lee el valor que se encuentra ;en el puerto B y lo convierte a código BCD para posteriormente enviarlo a la computadora ; a través del puerto serie. ; ; ZONA DE DATOS ********************************************************************** LIST INCLUDE __CONFIG
P=16F84A _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
CBLOCK GuardaDato ENDC
0x0C ; Declarar variable
; ZONA DE CÓDIGOS ******************************************************************** ORG
STATUS,RP0 ;Acceso a banco 1 0xFF TRISB ;portB como entrada STATUS,RP0 ;Acceso a banco 0 RS232_Inicializa ;Configura las líneas de entrada y salida para RS232 RS232_LeeDato PORTA,1 LeerPuertoB GuardaDato GuardaDato,W RS232_EnviaDato Principal
LeerPuertoB movf PORTB,W call Binario_BCD movlw .48 addwf Centenas,f en la misma variable. addwf Decenas,f addwf Unidades,f movf Centenas,w call RS232_EnviaDato movf Decenas,w call RS232_EnviaDato
; Espera recibir un carácter. ; Si el pin 1 de puerto A es=0, salta ; Salta a etiqueta. ; Guarda el dato recibido. ; Y ahora lo reenvía a la computadora. ; Repite el proceso.
;Lee el puerto B y manda el dato a W. ;Convierte de binario a BCD. ;Mandar 48 a W. ;Convierte a ASCII los valores y los guarda ;" ;" ;Mueve el valor en ASCII de centenas a w. ;Envía dato de regreso. ;Mueve el valor en ASCII de decenas a w. ;Reenvía el dato.
xiv
movf call goto
Unidades,w RS232_EnviaDato Principal
INCLUDE INCLUDE INCLUDE END
;Mueve el valor ASCII de unidades a w. ;Envía el dato de regreso. ;Reinicia proceso. ; Librería para comunicación serial ; Librería para convertir un número binario a BCD. ; Librería de retardos. ; Fin de programa.
;******************************* Binario_BCD.INC ***************************** ; ; Librería creada para convertir un número binario a código BCD el cual nos da el resultado ;en tres variables (Centenas, Decenas, Unidades). ; CBLOCK Centenas Decenas Unidades ENDC Binario_BCD clrf Centenas clrf Decenas movwf Unidades
; Centenas = 0. ; Decenas = 0. ; Unidades=W.
movlw .100 subwf Unidades,W btfss STATUS,C goto Menor goto MayorIgual
;W=100. ; W=Unidades-100. ;¿W>=100?. ;Salta a etiqueta. ;Salta a etiqueta.
incf Centenas,F movwf Unidades goto Resta100
; Centenas = Centenas +1 ;Unidades=W. ;Regresa a etiqueta .
; W=10. ; W=Unidades –W. ;¿W>=10?. ;Salta a etiqueta. ;Salta a etiqueta.
incf Decenas,F movwf Unidades goto Resta10
; Decenas=Decenas+1. ; Unidades=W. ;Regreso a etiqueta.
Return
; Regreso de llamada a función
Resta100
MayorIgual
Menor Resta10
MayorIgual10
Menor10
xv
;**************************Librería "RS232.INC" ******************************* ; ; ================================================================ === ; Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" ; E. Palacios, F. Remiro y L. López. www.pic16f84a.com ; Editorial Ra-Ma. www.ra-ma.es ; ================================================================ === ; ; Estas subrutinas permiten realizar las tareas básicas de control de la transmisión ; serie asíncrona según normas RS-232. ; ; Los parámetros adoptados para la comunicación son los siguientes: ; - Velocidad de transmisión de 9600 baudios. La duración de cada bit será 104 µs. ; - Un bit de inicio o Start a nivel bajo. ; - Dato de 8 bits. ; - Sin paridad. ; - Dos bits de final o Stop a nivel alto. ; ; El tiempo entre bit y bit debe coincidir con el periodo de la señal leída o enviada. ; Como la velocidad de transmisión o recepción es de 9600 baudios, el periodo será: ; 1/9600 Baudios = 104 µs. Se utilizará pues la subrutina Retardos_100micros. CBLOCK RS232_ContadorBits RS232_Dato ENDC #DEFINE RS232_Entrada2 PORTA, 1 ; Línea para cambiar a leer puerto B. #DEFINE RS232_Entrada PORTA, 4 ; Línea por la que se reciben los datos. #DEFINE RS232_Salida PORTA, 3 ; Línea por la que se envían los datos. ; ; Subrutina "RS232_Inicializa" ------------------------------------------------------------; ; Configura las líneas de salida y entrada del microcontrolador. RS232_Inicializa bsf RS232_Salida reposo. bsf STATUS,RP0 bsf RS232_Entrada entrada. bsf RS232_Entrada2 entrada. bcf RS232_Salida salida. bcf STATUS,RP0 return
; Al principio salida en alto para ; Acceso a banco 1 ; Esta línea se configura como ; Esta línea se configura como ; Esta línea se configura como ; Regreso a banco 0
xvi
; Subrutina "RS232_LeeDato" ------------------------------------------------------------; ; El microcontrolador lee el dato por la línea de entrada comenzando por el bit de menor ; peso. El dato leído se envía finalmente en el registro de trabajo W. ; ; El ordenador parte siempre de un nivel alto, que es el estado que tiene cuando no ; envía información. La secuencia utilizada es: ; 1º Espera que se ejecute el pulso negativo del bit Start o flanco de bajada. ; 2º Deja pasar un tiempo una y media veces mayor que el periodo de transmisión para ; saltarse el bit de Start y lee el primer bit en su mitad. ; 3º Lee el resto de los bits de datos, esperando un tiempo igual a la duración del ; Período entre lectura y lectura para testearlos en mitad del bit. ; ; Salida: En el registro de trabajo W el byte leído. RS232_LeeDato movlw d'8' movwf RS232_ContadorBits RS232_EsperaBitStart btfsc RS232_Entrada goto RS232_EsperaBitStart call Retardo_100micros call Retardo_50micros RS232_LeeBit bcf STATUS,C btfsc RS232_Entrada bsf STATUS,C rrf RS232_Dato,F call Retardo_100micros decfsz RS232_ContadorBits,F goto RS232_LeeBit call Retardo_200micros movf RS232_Dato,W return
; Número de bits a recibir.
; Lee la entrada y espera a que sea "0". ; No, pues espera el nivel bajo. ; El primer bit debe leerlo un tiempo igual a una ; vez y media el periodo de transmisión. ; Ahora lee el pin. En principio supone que es 0. ; ¿Realmente es cero? ; No, pues cambia a "1". ; Introduce el bit en el registro de lectura. ; Los siguientes bits los lee un periodo más tarde. ; Comprueba que es el último bit. ; Si no es el último bit pasa a leer el siguiente. ; Espera un tiempo igual al los 2 bits de Stop. ; El resultado en el registro W.
; Subrutinas "RS232_EnviaDato" y "RS232_EnviaNúmero" ------------------------------------; ; El microcontrolador envía un dato por la línea de salida comenzando por el bit de menor ; peso. En dato enviado será el que le llegue a través del registro de trabajo W. ; 1º. Envía un "0" durante un tiempo igual al periodo de la velocidad de transmisión. ; Este es el bit de "Start". ; 2º. Envía el bit correspondiente: ; - Si va a enviar un "0" permanece en bajo durante el periodo correspondiente. ; - Si va a escribir un "1" permanece en alto durante el periodo correspondiente. ; 3º. Envía dos bits "1" durante un tiempo igual al período de la velocidad de ; transmisión cada uno. Estos son los dos bits de Stop. ; ; Entrada: En (W) el dato a enviar. RS232_EnviaNumero addlw '0' RS232_EnviaDato movwf RS232_Dato
; Envía el código ASCII de un número. ; Lo pasa a código ASCII sumándole el ASCII del 0. ; Guarda el contenido del byte a transmitir.
; Este es el número de bits a transmitir. ; Bit de Start. ; Comienza a enviar datos. ; Lleva el bit que se quiere enviar al Carry ; deducir su valor. ¿Es un "1" el bit a ; No, pues envía un "0". ; Transmite un "1".
; Transmite un "0". ; Este es el tiempo que estará en alto o ; Comprueba que es el último bit. ; Como no es el último bit repite la ; Envía dos bits de Stop.
Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. López. www.pic16f84a.com Editorial Ra-Ma. www.ra-ma.es ================================================================
===
;*************************** Librería "RETARDOS.INC" ************************** ; ; ================================================================ === ; Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" ; E. Palacios, F. Remiro y L. López. www.pic16f84a.com ; Editorial Ra-Ma. www.ra-ma.es ; ================================================================ === ; ; Librería con múltiples subrutinas de retardos, desde 4 microsegundos hasta 20 segundos. ; Además se pueden implementar otras subrutinas muy fácilmente. ; ; Se han calculado para un sistema microcontrolador con un PIC trabajando con un cristal
xviii
; de cuarzo a 4 MHz. Como cada ciclo máquina son 4 ciclos de reloj, resulta que cada ; ciclo máquina tarda 4 x 1/4MHz = 1 µs. ; ; En los comentarios, "cm" significa "ciclos máquina". ; ; ZONA DE DATOS ********************************************************************* CBLOCK R_ContA R_ContB R_ContC ENDC
; Contadores para los retardos.
; ; RETARDOS de 4 hasta 10 microsegundos --------------------------------------------------; ; A continuación retardos pequeños teniendo en cuenta que para una frecuencia de 4 MHZ, ; la llamada a subrutina "call" tarda 2 ciclos máquina, el retorno de subrutina ; "return" toma otros 2 ciclos máquina y cada instrucción "nop" tarda 1 ciclo máquina. ; Retardo_10micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. nop ; Aporta 1 ciclo máquina. nop ; Aporta 1 ciclo máquina. nop ; Aporta 1 ciclo máquina. nop ; Aporta 1 ciclo máquina. Retardo_5micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. Retardo_4micros ; La llamada "call" aporta 2 ciclos máquina. return ; El salto del retorno aporta 2 ciclos máquina. ; ; RETARDOS de 20 hasta 500 microsegundos -----------------------------------------------; Retardo_500micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. movlw d'164' ; Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos máquina. Retardo_200micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. movlw d'64' ; Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos máquina. Retardo_100micros ; La llamada "call" aporta 2 ciclos máquina. movlw d'31' ; Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos máquina. Retardo_50micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. movlw d'14' ; Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos máquina. Retardo_20micros ; La llamada "call" aporta 2 ciclos máquina. movlw d'5' ; Aporta 1 ciclo máquina. Este es el valor de "K". ; ; El próximo bloque "RetardoMicros" tarda: ; 1 + (K-1) + 2 + (K-1)x2 + 2 = (2 + 3K) ciclos máquina. ; RetardoMicros
xix
movwf R_ContA ; Aporta 1 ciclo máquina. Rmicros_Bucle decfsz R_ContA,F ; (K-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto Rmicros_Bucle ; Aporta (K-1)x2 ciclos máquina. return ; El salto del retorno aporta 2 ciclos máquina. ; ;En total estas subrutinas tardan: ; - Retardo_500micros: 2 + 1 + 1 + 2 + (2 + 3K) = 500 cm = 500 µs. (para K=164 y 4 MHz). ; - Retardo_200micros: 2 + 1 + 1 + 2 + (2 + 3K) = 200 cm = 200 µs. (para K= 64 y 4 MHz). ; - Retardo_100micros: 2 + 1 + 2 + (2 + 3K) = 100 cm = 100 µs. (para K= 31 y 4 MHz). ; - Retardo_50micros : 2 + 1 + 1 + 2 + (2 + 3K) = 50 cm = 50 µs. (para K= 14 y 4 MHz). ; - Retardo_20micros : 2 + 1 + (2 + 3K) = 20 cm = 20 µs. (para K= 5 y 4 MHz). ; ; RETARDOS de 1 ms hasta 200 ms. -------------------------------------------------------; Retardo_200ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'200' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_100ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'100' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_50ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'50' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_20ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'20' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_10ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'10' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_5ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'5' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_2ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'2' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_1ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'1' ; Aporta 1 ciclo máquina. Este es el valor de "M". ; ; El próximo bloque "Retardos_ms" tarda: ; 1 + M + M + KxM + (K-1)xM + Mx2 + (K-1)Mx2 + (M-1) + 2 + (M-1)x2 + 2 = ; = (2 + 4M + 4KM) ciclos máquina. Para K=249 y M=1 supone 1002 ciclos máquina ; que a 4 MHz son 1002 µs = 1 ms. ; Retardos_ms movwf R_ContB ; Aporta 1 ciclo máquina. R1ms_BucleExterno movlw d'249' ; Aporta Mx1 ciclos máquina. Este es el valor de "K". movwf R_ContA ; Aporta Mx1 ciclos máquina. R1ms_BucleInterno nop ; Aporta KxMx1 ciclos máquina. decfsz R_ContA,F ; (K-1)xMx1 cm (cuando no salta) + Mx2 cm (al saltar). goto R1ms_BucleInterno ; Aporta (K-1)xMx2 ciclos máquina. decfsz R_ContB,F ; (M-1)x1 cm (cuando no salta) + 2 cm (al saltar).
xx
goto R1ms_BucleExterno return
; Aporta (M-1)x2 ciclos máquina. ; El salto del retorno aporta 2 ciclos máquina.
; ;En total estas subrutinas tardan: ; - Retardo_200ms: 2 + 1 + 2 + (2 + 4M + 4KM) = 200007 cm = 200 ms. (M=200 y K=249). ; - Retardo_100ms: 2 + 1 + 2 + (2 + 4M + 4KM) = 100007 cm = 100 ms. (M=100 y K=249). ; - Retardo_50ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 50007 cm = 50 ms. (M= 50 y K=249). ; - Retardo_20ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 20007 cm = 20 ms. (M= 20 y K=249). ; - Retardo_10ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 10007 cm = 10 ms. (M= 10 y K=249). ; - Retardo_5ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 5007 cm = 5 ms. (M= 5 y K=249). ; - Retardo_2ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 2007 cm = 2 ms. (M= 2 y K=249). ; - Retardo_1ms : 2 + 1 + (2 + 4M + 4KM) = 1005 cm = 1 ms. (M= 1 y K=249). ; ; RETARDOS de 0.5 hasta 20 segundos --------------------------------------------------; Retardo_20s ; La llamada "call" aporta 2 ciclos máquina. movlw d'200' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_10s ; La llamada "call" aporta 2 ciclos máquina. movlw d'100' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_5s ; La llamada "call" aporta 2 ciclos máquina. movlw d'50' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_2s ; La llamada "call" aporta 2 ciclos máquina. movlw d'20' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_1s ; La llamada "call" aporta 2 ciclos máquina. movlw d'10' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_500ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'5' ; Aporta 1 ciclo máquina. Este es el valor de "N". ; ; El próximo bloque "Retardo_1Decima" tarda: ; 1 + N + N + MxN + MxN + KxMxN + (K-1)xMxN + MxNx2 + (K-1)xMxNx2 + ; + (M-1)xN + Nx2 + (M-1)xNx2 + (N-1) + 2 + (N-1)x2 + 2 = ; = (2 + 4M + 4MN + 4KM) ciclos máquina. Para K=249, M=100 y N=1 supone 100011 ; ciclos máquina que a 4 MHz son 100011 µs = 100 ms = 0,1 s = 1 décima de segundo. ; Retardo_1Decima movwf R_ContC ; Aporta 1 ciclo máquina. R1Decima_BucleExterno2 movlw d'100' ; Aporta Nx1 ciclos máquina. Este es el valor de "M". movwf R_ContB ; Aporta Nx1 ciclos máquina. R1Decima_BucleExterno movlw d'249' ; Aporta MxNx1 ciclos máquina. Este es el valor de "K". movwf R_ContA ; Aporta MxNx1 ciclos máquina. R1Decima_BucleInterno nop ; Aporta KxMxNx1 ciclos máquina. decfsz R_ContA,F ; (K-1)xMxNx1 cm (si no salta) + MxNx2 cm (al saltar). goto R1Decima_BucleInterno ; Aporta (K-1)xMxNx2 ciclos máquina. decfsz R_ContB,F ; (M-1)xNx1 cm (cuando no salta) + Nx2 cm (al saltar).
xxi
goto R1Decima_BucleExterno ; Aporta (M-1)xNx2 ciclos máquina. decfsz R_ContC,F ; (N-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto R1Decima_BucleExterno2 ; Aporta (N-1)x2 ciclos máquina. return ; El salto del retorno aporta 2 ciclos máquina. ; ;En total estas subrutinas tardan: ; - Retardo_20s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 20000807 cm = 20 s. ; (N=200, M=100 y K=249). ; - Retardo_10s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 10000407 cm = 10 s. ; (N=100, M=100 y K=249). ; - Retardo_5s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 5000207 cm = 5 s. ; (N= 50, M=100 y K=249). ; - Retardo_2s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 2000087 cm = 2 s. ; (N= 20, M=100 y K=249). ; - Retardo_1s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 1000047 cm = 1 s. ; (N= 10, M=100 y K=249). ; - Retardo_500ms: 2 + 1 + (2 + 4N + 4MN + 4KMN) = 500025 cm = 0,5 s. ; (N= 5, M=100 y K=249). ; ; ; ; ;
========================================================== Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. López. www.pic16f84a.com Editorial Ra-Ma. www.ra-ma.es ==========================================================