Universidad Tecnológica de Querétaro Firmado digitalmente por Universidad Tecnológica de Querétaro Nombre de reconocimiento (DN): cn=Universidad Tecnológica de Querétaro, o=UTEQ, ou=UTEQ, [email protected], c=MX Fecha: 2014.08.29 21:01:27 -05'00' UNIVERSIDAD TECNOLÓGICA DE QUERÉTARO Nombre del proyecto: Implementación del proceso de mantenimiento de boquillas para la reducción de SCRAP y DOWNTIME en las líneas de SMD. Empresa: HARMAN de México S.A. de C.V. Memoria que como parte de los requisitos para obtener el título de: TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN Presenta: GALVÁN LICEA EDGAR RAFAEL Asesor de la UTEQ Ing. Arístides R. Hernández Salgado. Asesor de la Organización Ing. Pablo Adrián Miranda Rincón. Santiago de Querétaro. Agosto del 2014 Resumen El presente proyecto se desarrolló en la compañía HARMAN de México S.A. de C.V., en la cual realice mi estadía profesional en el área de Surface Mount Device (SMD). El proyecto se enfoca en agilizar la producción de las máquinas NXT, mediante el mantenimiento preventivo de boquillas las cuales se encuentran dentro del cabezal del equipo, es de suma importancia para la empresa combatir este problema, ya que origina demasiado scrap por componentes desplazados y downtime por boquillas sucias. Para poder realizar el mantenimiento preventivo para las boquillas se genera una plataforma para el registro de las boquillas y esta se encuentra conectada a una base de datos para llevar un mejor control. 2 Description I work in the HARMAN Company, this Company is in charge of carrying out products for the automotive industry. I work with my adviser and other two students of the UTEQ. My adviser is the leader of the project, he has short black hair, he used glasses, he is of average height and white skin, her attitude is agreeable and funny. 3 Agradecimientos A mis padres, porque me han brindado su comprensión y sustento a lo largo de mi formación académica, y que siempre han estado ahí apoyándome para seguir adelante. Les agradezco de todo corazón por sus consejos, por el amor y cariño que me han brindado, por haberme hecho una persona responsable y por haberme proporcionado la vida. ¡Los amo mucho! A mis hermanos por ser tan comprensivos conmigo a pesar de que no me encuentro con ellos y por darme su cariño y su amistad en todo momento. A mi hermana por apoyarme en momentos difíciles de mi vida y darme un aliento más para poder culminar con satisfacción mis estudios. A mi novia la cual estuvo a lo largo de mi formación académica en la universidad y me apoyó en las buenas y en las malas situaciones que enfrente durante esa etapa de mi preparación. 4 A cada uno de mis profesores por haberme enseñado a lo largo de mi formación como TSU, aunque sé que esta solo es una etapa más de vida y tengo muchas más cosas que aprender. Al Ing. Arístides Rolando Salgado Hernández, el cual me apoyó a lo largo de mi estadía profesional en la empresa y estuvo al tanto de mi desempeño en la empresa. A cada uno de los compañeros y amigos que estuvieron en el transcurso de este periodo académico y que me apoyaron en situaciones difíciles. 5 Índice Resumen................................................................................................................................... 2 Description ............................................................................................................................... 3 Agradecimientos ...................................................................................................................... 4 Índice ........................................................................................................................................ 6 I. Introducción ..................................................................................................................... 8 II. Antecedentes ................................................................................................................... 9 III. Justificación .................................................................................................................... 10 IV. Objetivos ........................................................................................................................ 11 V. Alcances ......................................................................................................................... 12 VI. Análisis de Riesgos ......................................................................................................... 13 VII. Fundamentación Teórica ............................................................................................... 14 VII.I Área de SMD: .............................................................................................................. 14 VII.II Máquina MPM: .......................................................................................................... 15 VII.III Máquina KOH YONG: ................................................................................................ 16 VII.IV Máquina NXT: ........................................................................................................... 17 VII.V Nozzle (boquillas): ..................................................................................................... 18 VII.VI Horno Heller: ............................................................................................................ 18 VII.VII Máquina X RAY: ....................................................................................................... 19 VII.VIII Visual Basic: ............................................................................................................ 20 VII.IX Microsoft Access: ...................................................................................................... 21 VII.X MiKroC: ...................................................................................................................... 21 VII.XI Microcontrolador (PIC 18F4550): ............................................................................. 22 VII.XII Protocolo RS232: ..................................................................................................... 23 VII.XIII Max232: .................................................................................................................. 24 VIII. Plan de Actividades .................................................................................................... 25 IX. Recursos Materiales y Humanos ................................................................................ 27 6 X. Desarrollo del Proyecto .................................................................................................. 29 X.I Datos de la Empresa: .................................................................................................... 29 X.II Investigación del proyecto: .......................................................................................... 30 X.III Programa en Visual Basic: .......................................................................................... 32 X.IV Programa en Access: ................................................................................................... 40 X.V Programación en MiKroC: ............................................................................................ 41 XI. Resultados Obtenidos ................................................................................................ 46 XII. Conclusiones y Recomendaciones ............................................................................. 47 XIII. ANEXOS .......................................................................................................................... XIV Bibliografía ........................................................................................................................... 7 I. Introducción El proyecto que se presenta a lo largo de esta Memoria de estadía fue realizado en la empresa HARMAN de México S.A de C.V. Dicho proyecto se enfoca en desarrollar un programa para registrar tareas como llevar el control del mantenimiento de boquillas y estas tareas se registran en una base de datos; para lograr la implementación del sistema se utiliza el software de Visual Basic junto con el programa de Access y para la implementación de hardware se utiliza un microprocesador de la marca Microchip. Esto es de suma importancia ya que si no se lleva el control de manteamiento se puede llegar a generar demasiado scrap por componentes desplazados, además que se puede también llegar a tener demasiado downtime en las líneas. 8 II. Antecedentes En la empresa HARMAN de México S.A de C.V, el presente proyecto se desarrolló a partir de la necesidad de minimizar la cantidad de tarjetas dañadas y disminuir el tiempo de paro en las líneas en el área de SMD. Una de las áreas de oportunidad para mejorar el proceso productivo en la fabricación de estéreos y amplificadores, se presenta en las líneas del área SMD, en dichas líneas no se maneja un control adecuado del lavado de boquillas generando desviaciones en procesos posteriores y reflejándose en un alto índice de SCRAP de tarjetas electrónicas PCB. Para reducir el número de tarjetas dañadas el departamento de producción se dará a la tarea de realizar el mantenimiento de las boquillas que se encuentran en la máquina NXT. 9 III. Justificación En lo que va del año en la empresa HARMAN de México S.A de C.V, en el área de SMD se ha tenido una pérdida de U$S 127 600.00 por downtime, a la falta del lavado de las boquillas de la máquina de NXT. Este proyecto se enfoca en ayudar a disminuir el downtime y el scrap ocasionados por los componentes desplazados en las líneas de SMD, a causa de las boquillas sucias. El proyecto permitirá mejorar la producción de las líneas de SMD y se llevará un mejor control para el lavado de las boquillas que se encuentran en los módulos de las máquinas NXT. 10 IV. Objetivos Reducir costos de scrap en las tarjetas que presenten componentes desplazados. Reducir un 80%, aproximadamente, el downtime en el área de SMD, mediante el lavado o la limpieza de las boquillas. Agilizar la producción en las máquinas NXT. Generar una calendarización para el lavado de las boquillas. 11 V. Alcances Realizar una aplicación por medio de Visual Basic, que permita al team leader visualizar los módulos que se encuentran sucios en la máquina NXT, para así efectuar un lavado de las boquillas y se pueda llevar un control en una base de datos, esto evitara el downtime por boquillas sucias, de igual manera se pretende realizar la conexión entre la aplicación de Visual Basic y un microcontrolador, para que el microcontrolador se encuentre conectado hacia la torreta y ésta encienda cuando un módulo de la máquina NXT se encuentre sucio. 12 VI. Análisis de Riesgos Algunas limitantes para la realización de este proyecto fueron las siguientes. ANÁLISIS DE RIESGOS RIESGO POSIBLE SOLUCIÓN Demora en la designación del Concertar con el área manager para proyecto, en consecuencia la agilizar la designación del proyecto. reducción del tiempo para realizarlo. Que el proyecto no se llegara a Presentar opciones para determinar los aprobar por parte del personal de posibles cambios. ingeniería de la empresa. No llevar a cabo la secuencia de la gráfica de Gantt. Apegarse estrictamente a la planeación de la gráfica de Gantt. . 13 VII. Fundamentación Teórica VII.I Área de SMD: El proceso de montaje de Surface Mount Device (SMD), también conocido como Surface Mount Technology (SMT), es una tecnología en la que los componentes se montan en la superficie de una PCB. En la Fig. 1, se muestra la forma en la que los componentes han sido colocados. Fig. 1 Tarjeta SMD La tecnología SMD siempre está a la vanguardia para satisfacer las necesidades de los clientes. En la empresa se cuenta con 5 máquinas disponibles para la realización de las tarjetas electrónicas, éstas son: máquina MPM, máquina Koh Young, máquina NXT, Horno Heller y máquina X RAY. 14 VII.II Máquina MPM: La principal función de esta máquina es colocar pasta de soldadura en las PCB’s, por medio de unas squeeges (navajas) que se encargan de realizar un barrido sobre un esténcil; el cual cuenta con un diseño para cada tipo de PCB. Este diseño se ha realizado para que los path de la PCB, concuerden exactamente con el esténcil. En la Fig. 2, se muestra la máquina MPM. Fig. 2 Máquina MPM Una vez terminado el barrido de pasta sobre la PCB pasa a la máquina Koh Yong. 15 VII.III Máquina KOH YONG: El funcionamiento de esta máquina es verificar que la soldadura se aplique correctamente en el lugar adecuado. Verifica también que cada path de la PCB tenga la altura y área necesarias para que se puedan aplicar los componentes. Cabe señalar que un path es el espacio existente en la PCB, en el que se coloca cada uno de los componentes. Esta máquina cuenta con una cámara muy precisa que determina que los paths de la PCB, cuenten con la soldadura necesaria para que no exista insuficiencia de pasta o se excedan el volumen y el área de los paths. En la Fig. 3 se muestra la máquina Koh yong. Fig. 3 Máquina KOH YONG 16 VII.IV Máquina NXT: La máquina NXT es la encargada de colocar en cada uno de sus módulos los componentes necesarios para la PCB. Ésta tiene un cabezal que se posiciona de acuerdo con las coordenadas X o Y, ya estructuradas en la programación para colocar cada componente. Estos componentes quedan sujetos por medio del vacío que se genera en las boquillas y entonces, el cabezal coloca cada componente en el lugar indicado. En la Fig. 4, se muestra la máquina NXT. Fig. 4 Máquina NXT Una vez que se termina de colocar cada uno de los componentes sobre la PCB, ésta pasa al Horno Heller. 17 VII.V Nozzle (boquillas): Las boquillas se encuentran en un nido dentro de la maquina NXT, estas boquillas son las encargadas de sujetar los componentes por medio de vacío. Se encuentran en diferentes tamaños y algunas tienen forma de gripper para sujetar componentes más grandes. En la Fig. 5 se muestran algunas boquillas. Fig. 5 Nozzle VII.VI Horno Heller: Cuando las PCB’s salen de la máquina NXT, con todos los componentes necesarios, entran al Horno Heller, éste se encuentra a una temperatura de más de 100°C y tiene un sistema de soldadura por reflujo. Cada una de las secciones que componen el horno cuenta con diferentes grados de temperatura y funciona por medio de nitrógeno. Posee un sistema de sensores que le permiten al operador conocer cuántas PCB’s se encuentran dentro del horno. En la Fig. 6, se muestra el Horno HELLER. 18 Fig. 6 Horno HELLER Una vez terminado el proceso de reflujo de las PCB’s, éstas pasan, por medio de una banda transportadora, hacia la máquina de rayos x. VII.VII Máquina X RAY: Es un sistema de inspección por rayos X, muy adecuado para determinar si los componentes se encuentran desviados, así como una herramienta complementaria de verificación de resoldadura, permite funciones de inspección como: puentes, faltantes, perfiles de reflujos pobres y vacíos grandes. Así mismo localiza los defectos de forma más rápida y fácil. En la Fig. 7, aparece la máquina X RAY. 19 Fig. 7 Máquina X RAY Cuando la PCB termina de pasar por la máquina X RAY, ésta localiza los defectos de los componentes y envía información a una computadora, por medio de un software llamado VERA, para hacer la detección de los componentes que requieren soldadura o se encuentran desviados. VII.VIII Visual Basic: Es un software que está diseñado para la creación de aplicaciones de manera productiva, con seguridad de tipos y orientado a objetos. Visual Basic permite a los desarrolladores centrar el diseño en Windows, la web y dispositivos móviles. En la Fig. 8, se muestra el logo de Visual Basic. 20 Fig. 8 Logo de Visual Basic VII.IX Microsoft Access: Microsoft Access es una herramienta de Microsoft para la definición y manipulación de bases de datos. Una base de datos es un sistema informatizado cuyo propósito principal es mantener información y hacer que esté disponible en el momento requerido. Esta información es persistente dentro del sistema, es decir, una vez introducida en él, se mantiene hasta que el usuario decida eliminarla. En la Fig. 9, se muestra el logo de Access. Fig. 9 Logo de Access VII.X MiKroC: Este Software es una completa herramienta de compilador ANSI C de Microchip es la mejor solución para el desarrollo de código para dispositivos Programmable Interrupt Controller (PIC). Este compilador viene con una 21 ayuda integral y una variedad de ejemplos fáciles de usar. En la Fig. 10, se muestra el logo de MiKroC. Fig. 10 Logo de MiKroC VII.XI Microcontrolador (PIC 18F4550): Los microcontroladores pic son la mejor opción de chip, los cuales contienen componentes integrados en sí mismo, algunos componentes que contienen son los siguientes: oscilador de 0 a 40 MHz, convertidor de señales analógicas a digitales, microprocesador, memoria RAM, memoria de programa entre otras. En la Fig. 11, se muestra el diseño de un microcontrolador. Fig. 11 Diseño de un Microcontrolador. 22 VII.XII Protocolo RS232: Este es un protocolo de comunicación serial ampliamente difundido en las computadoras personales y empleado por los puertos COM del computador. El acceso físico a estos puertos es a través de un conector DB25 o DB9, machos y hembras. Cada uno de los terminales del conector RS232 tiene una función especificada por la norma. Unos pines transmiten y reciben datos, mientras que otros permiten el control de la comunicación. En la Fig. 12, se muestra como debe de conectarse el PIC hacia la PC, utilizando este protocolo. Fig. 12 Diseño de conexión 23 VII.XIII Max232: El MAX232 es un estándar en la industria y se emplea como interfaz entre los niveles TTL y RS232 y requiere únicamente una fuente de +5V para su operación. Para generar los niveles de +12V y -12V necesita 4 capacitores de 1,0 uF. Dispone de dos entradas TTL con salida RS232, así como dos entradas RS232 con salida TTL. El MAX232 puede realizar la transferencia de datos a una velocidad máxima de 120 kbps. En la Fig. 13, se muestra el MAX232. Fig. 13 Max232 24 VIII. Plan de Actividades Para llevar a cabo un proyecto es necesario programar una secuencia organizada de trabajo, la cual se debe desarrollar durante un periodo determinado de días. En la tabla 1, se muestran las fechas designadas para cada actividad y en la tabla 2, se muestra el diagrama de Gantt. Tabla 1. Calendario de Gantt 25 Tabla 2. Diseño del Diagrama de Gantt 26 IX. Recursos Materiales y Humanos Para poder llevar a cabo un proyecto es de suma importancia contar con recursos materiales, ya que sin estos recursos sería imposible llegar a realizar con éxito cualquier tipo de proyecto. En la tabla 3, se muestran los recursos materiales. Recursos Materiales Cantidad Descripción Costo 1 Computadora $ 4700 1 Software de Visual Basic $ 1800 1 Bata de ESD $ 350 1 Par de taloneras $ 200 1 Laptop $ 6000 1 Software de Office $ 2100 1 Cable de red Total $ 20 $ 15170 Tabla 3. Recursos Materiales Para llevar un cabo proyecto, no solo es importante la parte material si no también es de suma importancia contar con los recursos humanos, estos recursos son una parte específica de un proyecto. En recursos humanos se designa un personal el cual es el encargado de llevar o contribuir en el proyecto a realizar. En la tabla 4, se muestran los recursos humanos. 27 Recursos Humanos Nombre Arístides Rolando Hernández Salgado Pablo Adrián Miranda Rincón Ricardo Abraham Eduardo Mejía leal Omar Camacho Héctor Epardo Edgar Rafael Galván Licea Puesto Asesor del proyecto de la UTEQ Área Manager SMD Amplificadores y Asesor de la Organización Ingeniero en Sistemas Team Leader de SMD Team Leader de SMD Encargado de Recursos Humanos TSU en Mecatronica y encargado a realizar el proyecto Tabla 4. Recursos Humanos 28 X. Desarrollo del Proyecto X.I Datos de la Empresa: La empresa donde se realizó el proyecto es HARMAN de México S.A. de C.V. Planta Querétaro. La ubicación es en el Parque Industrial Querétaro en Av. Industria Minera N° 502. Giro de empresa: electrónico y se dedica a fabricación de Audio e Infotainment para la industria automotriz, la empresa en la responsable de fabricar amplificadores y estéreos; una vez terminado su proceso de fabricación envían los estéreos para cada uno sus clientes que pertenecen a la industria automotriz. En la Fig. 14, se muestran los logotipos de los clientes de Harman. Fig. 14 Clientes de la empresa HARMAN 29 X.II Investigación del proyecto: Al iniciar la Estadía en la empresa HARMAN de México S.A. de C.V., se comenzó por capacitarse en el área de SMD, por lo cual se comenzó a aprender a operar cada una de las maquinas que constituían el área de SMD, las cuales son las siguientes máquinas: máquina MPM, máquina KOH YONG, máquina NXT, HORNO HELLER y máquina XRAY. Al terminar la capacitación en el área de SMD, se asignó el proyecto de Boquillas (Nozzle). El cual fue uno de los principales problemas que se encontraban en el área de SMD. Los problemas de este proyecto son downtime por boquillas sucias y scrap por componentes desplazados. Esto ocurre porque no se lleva a cabo un plan de mantenimiento preventivo de boquillas. Existen tres tipos de boquillas que se ocupan en la máquina NXT. H08 son boquillas chicas. H04 son boquillas medianas H01 son boquillas Grandes. El principal problema ocurre con las boquillas H08, estas boquillas muy chicas y no se les da su mantenimiento preventivo constante, únicamente las lavan cuando se realiza mantenimiento general a la máquina NXT. Estas boquillas por general se tapan con la pasta que está colocada en los path de 30 las PCB’s, por eso las boquillas H08 tienden a soltar los componentes a mitad de Pick up. Como no se llevaba un control sobre el mantenimiento preventivo de las boquillas H08, se propuso realizar por medio de Visual Basic una plataforma para el registro de mantenimiento de boquillas, y estos registros se guardaran en una base de datos generada en Access. Como no existía un calendario de mantenimiento para las boquillas H08, junto con un Team leader se realizó el calendario para cada una de las líneas que se encuentran en el área de SMD; para que en la programación de Visual Basic los días designados en el calendario concordaran con lo programado. En la tabla 5, se muestra el calendario de mantenimiento. Tabla 5. Calendario de Mantenimiento 31 X.III Programa en Visual Basic: Se eligió el entorno de programación de Visual Basic, ya que por cuestiones de la empresa no se tuvo acceso al software de Labview. La plataforma que se desarrolló en Visual Basic, se implementó a que fuera un archivo ejecutable para que los team leader pudieran acceder de manera más rápida a la plataforma. En el diagrama de flujo de la plataforma se describe paso por paso, el funcionamiento de la plataforma que se desarrolló en el software de Visual Basic 32 INICIO Seleccionar el icono de la aplicación. Esperar a que cargue la aplicación Introducir contraseña y usuario SI Contraseña y usuario son correctos NO Bienvenido y buen turno Introduce el usuario y contraseña correctos Seleccionar la línea a dar mantenimiento Seleccionar el calendario de Mantenimiento Clic en entrar Seleccionar el turno SI A tu línea le toca Mantenimiento NO Clic en entrar Revisar si a tu línea le toca mantenimiento Favor de darle mantenimiento solo a la línea que corresponde Clic en Registro Registrar cada uno de los campos y guardar Diagrama de flujo de la plataforma FIN 33 A continuación se muestra con imágenes la plataforma, donde se registra el mantenimiento preventivo de boquillas. En la Fig. 15, se muestra como inicia la aplicación para el registro de mantenimiento de boquillas. ó Fig. 145 Aplicación para el Mantenimiento Una vez terminado de cargar la aplicación, se muestra una pantalla donde el programa le pide al usuario el nombre del usuario y la contraseña. En la Fig. 16, se muestra la pantalla para iniciar sesión. Fig. 16 Menú para iniciar sesión. 34 Al colocar el usuario y contraseña correcta, aparece otra pantalla la cual muestra en la parte superior, una lista desplegable para poder seleccionar la línea a la cual se le realizara mantenimiento. En la Fig. 18, se puede apreciar el menú desplegable. Fig. 15 Menú para seleccionar la línea. Una vez escogida la línea a dar mantenimiento aparece una ventana en la cual se muestran los módulos de la línea seleccionada; también es necesario elegir el turno para que se muestre el estado de los módulos que se les dará mantenimiento. En la Fig. 19, se muestran los módulos y en la Fig. 20, se encuentra seleccionado el turno en el que se realiza el mantenimiento. 35 Fig. 16 Vista de una de las líneas. Fig. 17 Estado de los módulos una vez seleccionado el turno. Una vez que el team leader realiza estos pasos en la aplicación, el team leader es el responsable de colocar las boquillas limpias y proceder a dar mantenimiento a las boquillas en mal estado, las cuales son las que se encuentran en los módulos en estado crítico que marca la aplicación. Cuando se realiza lo anterior se procede a capturar la información, para esto se debe dirigir al botón de iniciar registro. En la Fig. 21, se muestra la pantalla para realizar el registro. 36 Fig. 18 Pantalla para realizar el registro. La pantalla de registro es la que se encuentra conectada a la base de datos de Access, en la pantalla se muestran los campos a llenar, los cuales son: Nombre del Team leader, línea a la que se le realiza mantenimiento, módulos que se limpiaron y por default se llenan los campos de día y hora, los cuales se llenan dependiendo el día en que el team leader realiza el registro de mantenimiento. A continuación se colocan las líneas de código que se ocuparon para poder realizar la conexión de Visual Basic con Access. Public Class REGISTRO Private Sub NOZZLEBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles NOZZLEBindingNavigatorSaveItem.Click Me.Validate() Me.NOZZLEBindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.NOZZLEDataSet) End Sub 37 Private Sub REGISTRO_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'TODO: esta línea de código carga datos en la tabla 'NOZZLEDataSet.NOZZLE' Puede moverla o quitarla según sea necesario. Me.NOZZLETableAdapter.Fill(Me.NOZZLEDataSet.NOZZLE) End Sub End Class Estas líneas se generaron automáticamente al momento de realizar la conexión hacia Access. Pasos para realizar la conexión desde Visual Basic a Access: 1. Seleccionar la pestaña de orígenes de datos. 2. Seleccionar nuevo origen de datos y doble clic en base de datos. 3. Doble clic en conjunto de datos. 4. Clic en nueva conexión. 5. Seleccionar el botón examinar para buscar la base de datos. 6. Una vez seleccionada la base se da clic en abrir. 7. Clic sobre el botón probar conexión y aceptar si la conexión es correcta. 8. Clic en siguiente. 9. Clic sobre el botón de NO 10. Dar clic sobre el botón siguiente 11. Seleccionar la casilla de tablas y de vistas y dar clic sobre finalizar. 38 12. Una vez finalizado en la pantalla aparecerá sobre el lado izquierdo los campos a llenar. En la Fig. 22, se muestran los pasos 1, 2, 3 y 4. Fig. 19 Pasos 1, 2, 3 y 4. En la Fig. 23, se muestran los pasos 5, 6, 7 y 8. Fig. 20 Pasos 5, 6, 7 y 8. 39 En la Fig. 24, se muestran los pasos 9, 10, 11 y 12. Fig. 21 Pasos 9, 10, 11 y 12. X.IV Programa en Access: Se realizó la base de datos en el software de Access, ya que la empresa contaba con la paquetería de Office. En la Fig. 25 se muestra el diseño de la tabla en Access. 40 Fig. 22 Tabla de Access La mayoría de los datos fue de tipo texto con una restricción menor a 40 caracteres y en el campo de próxima limpieza solo cambio el tipo de dato el cual se colocó como fecha y hora. X.V Programación en MiKroC: Como propuesta para que el proyecto se pueda realizar de una forma mejor y más efectiva se describe a continuación. Contar con una torreta en cada una de las líneas que se encuentran en el área de SMD, así para cuando un módulo se encuentre en estado crítico de mantenimiento sea posible visualizar la torreta que está encendiendo. Esto se lograría comunicando la interfaz gráfica de Visual Basic con un microcontrolador. 41 El software que se utilizaría seria MiKroC, para poder programar el microcontrolador. La comunicación que se implementaría es la comunicación serial, para poder conectar cada una de las computadoras que se encuentran designadas en las máquinas NXT; de las computadoras se conectaría un cable RS232 a microcontroladores y de los micros hacia las torretas. Cuando en la pantalla de Visual Basic aparezca alguno de los LED en color Rojo, la torrera encenderá por medio de comunicación serial. En la Fig. 26, se muestran los LED de Visual Basic. Fig. 23 LED Visual Basic. El Microcontrolador que se utilizaría seria el 18F2550 conectado por los puertos de comunicación Rx y Tx hacia el Max232 y esté conectado al puerto serial de la computadora. De un pin del microcontrolador se conectaría una resistencia con una etapa de potencia para la torreta, la cual es de una tensión de 24v. En la Fig. 27 se muestra el diseño del circuito. 42 Fig. 24 Circuito del de comunicación. En la figura anterior se puede apreciar el diseño del circuito para la comunicación de la plataforma de Visual Basic hacia la torreta. Se muestran los cálculos que se realizaron para obtener el valor de la resistencia que se encuentra en la etapa de potencia. Como la corriente de la torreta se encuentra entre los 20mA y 40mA, y la beta de transistor es de 250β y tenemos entonces una corriente Max y una min de la torreta IMAX = 40mA Formula del Transistor Ic = IBβ IMIN = 20mA 43 Despejado la formula y sustituyendo los datos IB = Ic/β IB min = 20mA/250 = 80μA IB min = 40mA/250 = 160μA Ahora aplicando la ley de ohm obtenemos el valor de la resistencia con respecto a la fuente de 5 volts. R = V/I R min = 5 / 80μA = 62.5KΩ R = V/I R min = 5 / 160μA = 31.25KΩ A continuación se colocan las líneas de programación que se ocuparían en el software de MiKroC para poder encender la torreta. Void main () // inicio del programa { // llave principal TRISB=0; // tris declarado como 0 para salida PORTB=0; //puerto b designado en 0, porque se ocupara como salida OSCCON=0B01100000; UART1_init (9600); delay_ms (100); While (1) //oscilador interno del microcontrolador // // delay en 100 milisegundos de tiempo de espera //ciclo while para que el programa se realice constantemente 44 { //llave principal del while If (UART1_data_ready ()==1) // si el valor es uart es uno { // llave del if UART=UART1_READ(); // se asigna el valor de uart a la variable UART if(UART==1) vale uno pues se realiza lo siguiente //se pregunta si la variable uart { // llave del segundo if PORTB.B0=1; //enciende el puerto b, únicamente el pin 1 } } } } //Cierre del segundo if //se cierra llave del primer if // se cierra llave del while // se cierra la llave principal del programa El código comienza con un void main, después se encuentra el puerto b y tris b como salidas. La librería uart se inicializa para iniciar el puerto serial, después se encuentra todo el código en un ciclo while para que se ejecute indefinidamente. Dentro del ciclo while solo se encuentra una llave if la cual es así: si el valor de la lectura de uart es igual a uno entonces se designa el valor a la variable uart y se enciente el puerto b para así encender la torreta y se cierran las llaves para terminar. 45 XI. Resultados Obtenidos Se logró alcanzar los objetivos planteados como: Generar un calendario para el mantenimiento preventivo de las boquillas. Se agilizo la producción de las máquinas NXT, por lo cual fue reducido el downtime por mantenimiento de boquillas en el área de SMD; por mes se tenían paros de 5.8 horas tomando en cuenta las doce líneas y se logró llegar a 1.5 horas de downtime al mes. También se realizó la plataforma en Visual Basic para llevar un mejor control sobre el mantenimiento de las boquillas. 46 XII. Conclusiones y Recomendaciones Al término del proyecto, se logró un gran avance en conocimientos sobre la lógica de programación en Visual Basic. Es de suma importancia estar en constante capacitación en este tipo de software, ya que es muy utilizado para diferentes aplicaciones como: aplicaciones para smartphones, aplicaciones para la web, aplicaciones para las industrias o para algunas pequeñas empresas y siempre se encuentra en constante actualización. Recomiendo para que éste proyecto se pueda llevar de una forma mejor, que se implemente la propuesta planteada con los microcontroladores y las torretas, ya que es de mucha ayuda para que los operadores que se encuentran en el área de SMD, puedan observar la torreta y sea más fácil detectar los módulos sucios de la máquina NXT. 47 XIII. ANEXOS 48 Se anexa a continuación el código completo de la programación en Visual Basic por cada una de las ventanas. Intro. Public Class INTRO Dim CON As Byte = 4 Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick If ProgressBar1.Value = 100 Then Me.Opacity -= 0.07 If Me.Opacity = 0.0 Then Me.Hide() CONTRASEÑA.Show() Timer1.Enabled = False End If Else ProgressBar1.Value += 4 If ProgressBar1.Value = CON Then Label1.Text = "INICIANDO LA APLICACION..." Else If ProgressBar1.Value = CON + 16 Then Label1.Text = "" CON += 20 End If End If End If End Sub End Class Contraseña Public Class CONTRASEÑA Private Sub CONTRASEÑA_Load(sender As Object, e As EventArgs) Handles MyBase.Load MsgBox("BIENVENIDO Y BUEN TURNO", MsgBoxStyle.Information) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If TextBox1.Text = "TL" Then If TextBox2.Text = "HARMANTL" Then MsgBox("BIENVENIDO", MsgBoxStyle.Information) Me.Hide() NOZZLE.Show() End If Else MsgBox("INTRODUCE EL USUARIO CORRECTO Y LA CONTRASEÑA PORFAVOR", MsgBoxStyle.Critical) End If 49 End Sub End Class Nozzle Public Class NOZZLE Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Label13.Hide() GroupBox1.Hide() Button3.Hide() Button5.Hide() Button6.Hide() PictureBox1.Hide() PictureBox2.Hide() PictureBox3.Hide() PictureBox4.Hide() PictureBox5.Hide() PictureBox6.Hide() PictureBox7.Hide() PictureBox8.Hide() PictureBox9.Hide() Label2.Hide() Label7.Hide() Label8.Hide() Label9.Hide() Label10.Hide() Label11.Hide() Label12.Hide() Label3.Hide() Label4.Hide() Label5.Hide() Label6.Hide() RectangleShape1.Hide() RectangleShape2.Hide() RectangleShape3.Hide() RectangleShape4.Hide() RectangleShape5.Hide() RectangleShape6.Hide() RectangleShape7.Hide() RectangleShape8.Hide() RectangleShape9.Hide() Button1.Hide() End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) 50 End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) End Sub Private Sub ComboBox1_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click GroupBox1.Hide() Button3.Hide() Button4.Hide() Button5.Show() Button1.Show() If Label13.Text = "LINEA1" Then If RadioButton1.Checked = True Then RectangleShape1.BackColor = Color.Red RectangleShape2.BackColor = Color.Red RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton2.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Red RectangleShape4.BackColor = Color.Red RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton3.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Red RectangleShape6.BackColor = Color.Red End If ElseIf Label13.Text = "LINEA2" Then If RadioButton1.Checked = True Then RectangleShape1.BackColor = Color.Red RectangleShape2.BackColor = Color.Red RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton2.Checked = True Then 51 RectangleShape1.BackColor RectangleShape2.BackColor RectangleShape3.BackColor RectangleShape4.BackColor RectangleShape5.BackColor RectangleShape6.BackColor = = = = = = Color.Green Color.Green Color.Red Color.Red Color.Green Color.Green ElseIf RadioButton3.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Red RectangleShape6.BackColor = Color.Red End If ElseIf Label13.Text = "LINEA3" Then If RadioButton1.Checked = True Then RectangleShape1.BackColor = Color.Red RectangleShape2.BackColor = Color.Red RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton2.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Red RectangleShape4.BackColor = Color.Red RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton3.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Red RectangleShape6.BackColor = Color.Red End If ElseIf Label13.Text = "LINEA4" Then If RadioButton1.Checked = True Then RectangleShape1.BackColor = Color.Red RectangleShape2.BackColor = Color.Red RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton2.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Red RectangleShape4.BackColor = Color.Red RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton3.Checked = RectangleShape1.BackColor RectangleShape2.BackColor RectangleShape3.BackColor 52 True Then = Color.Green = Color.Green = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Red RectangleShape6.BackColor = Color.Red End If ElseIf Label13.Text = "LINEA5" Then If RadioButton1.Checked = True Then RectangleShape1.BackColor = Color.Red RectangleShape2.BackColor = Color.Red RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton2.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Red RectangleShape4.BackColor = Color.Red RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton3.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Red RectangleShape6.BackColor = Color.Red End If ElseIf Label13.Text = "LINEA6" Then If RadioButton1.Checked = True Then RectangleShape1.BackColor = Color.Red RectangleShape2.BackColor = Color.Red RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton2.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Red RectangleShape4.BackColor = Color.Red RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton3.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Red RectangleShape6.BackColor = Color.Red End If ElseIf Label13.Text = "LINEA7" Then If RadioButton1.Checked = True Then RectangleShape1.BackColor = Color.Red RectangleShape2.BackColor = Color.Red RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green 53 RectangleShape6.BackColor ElseIf RadioButton2.Checked = RectangleShape1.BackColor RectangleShape2.BackColor RectangleShape3.BackColor RectangleShape4.BackColor RectangleShape5.BackColor RectangleShape6.BackColor = Color.Green True Then = Color.Green = Color.Green = Color.Red = Color.Red = Color.Green = Color.Green ElseIf RadioButton3.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Red RectangleShape6.BackColor = Color.Red End If ElseIf Label13.Text = "LINEA8" Then If RadioButton1.Checked = True Then RectangleShape1.BackColor = Color.Red RectangleShape2.BackColor = Color.Red RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton2.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Red RectangleShape4.BackColor = Color.Red RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green ElseIf RadioButton3.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Red RectangleShape6.BackColor = Color.Red End If ElseIf Label13.Text = "LINEA9" Then If RadioButton1.Checked = True Then RectangleShape1.BackColor = Color.Red RectangleShape2.BackColor = Color.Red RectangleShape3.BackColor = Color.Red RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green RectangleShape7.BackColor = Color.Green RectangleShape8.BackColor = Color.Green RectangleShape9.BackColor = Color.Green ElseIf RadioButton2.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Red RectangleShape5.BackColor = Color.Red RectangleShape6.BackColor = Color.Red 54 RectangleShape7.BackColor = Color.Green RectangleShape8.BackColor = Color.Green RectangleShape9.BackColor = Color.Green ElseIf RadioButton3.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green RectangleShape7.BackColor = Color.Red RectangleShape8.BackColor = Color.Red RectangleShape9.BackColor = Color.Red End If ElseIf Label13.Text = "LINEA10" Then If RadioButton1.Checked = True Then RectangleShape1.BackColor = Color.Red RectangleShape2.BackColor = Color.Red RectangleShape3.BackColor = Color.Red RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green RectangleShape7.BackColor = Color.Green RectangleShape8.BackColor = Color.Green RectangleShape9.BackColor = Color.Green ElseIf RadioButton2.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Red RectangleShape5.BackColor = Color.Red RectangleShape6.BackColor = Color.Red RectangleShape7.BackColor = Color.Green RectangleShape8.BackColor = Color.Green RectangleShape9.BackColor = Color.Green ElseIf RadioButton3.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green RectangleShape7.BackColor = Color.Red RectangleShape8.BackColor = Color.Red RectangleShape9.BackColor = Color.Red End If ElseIf Label13.Text = "LINEA11" Then If RadioButton1.Checked = True Then RectangleShape1.BackColor = Color.Red RectangleShape2.BackColor = Color.Red RectangleShape3.BackColor = Color.Red RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green RectangleShape7.BackColor = Color.Green RectangleShape8.BackColor = Color.Green RectangleShape9.BackColor = Color.Green 55 ElseIf RadioButton2.Checked = RectangleShape1.BackColor RectangleShape2.BackColor RectangleShape3.BackColor RectangleShape4.BackColor RectangleShape5.BackColor RectangleShape6.BackColor RectangleShape7.BackColor RectangleShape8.BackColor RectangleShape9.BackColor True Then = Color.Green = Color.Green = Color.Green = Color.Red = Color.Red = Color.Red = Color.Green = Color.Green = Color.Green ElseIf RadioButton3.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green RectangleShape7.BackColor = Color.Red RectangleShape8.BackColor = Color.Red RectangleShape9.BackColor = Color.Red End If ElseIf Label13.Text = "LINEA12" Then If RadioButton1.Checked = True Then RectangleShape1.BackColor = Color.Red RectangleShape2.BackColor = Color.Red RectangleShape3.BackColor = Color.Red RectangleShape4.BackColor = Color.Green RectangleShape5.BackColor = Color.Green RectangleShape6.BackColor = Color.Green RectangleShape7.BackColor = Color.Green RectangleShape8.BackColor = Color.Green RectangleShape9.BackColor = Color.Green ElseIf RadioButton2.Checked = True Then RectangleShape1.BackColor = Color.Green RectangleShape2.BackColor = Color.Green RectangleShape3.BackColor = Color.Green RectangleShape4.BackColor = Color.Red RectangleShape5.BackColor = Color.Red RectangleShape6.BackColor = Color.Red RectangleShape7.BackColor = Color.Green RectangleShape8.BackColor = Color.Green RectangleShape9.BackColor = Color.Green ElseIf RadioButton3.Checked = RectangleShape1.BackColor RectangleShape2.BackColor RectangleShape3.BackColor RectangleShape4.BackColor RectangleShape5.BackColor RectangleShape6.BackColor RectangleShape7.BackColor RectangleShape8.BackColor RectangleShape9.BackColor End If End If 56 True Then = Color.Green = Color.Green = Color.Green = Color.Green = Color.Green = Color.Green = Color.Red = Color.Red = Color.Red End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click GroupBox1.Show() Button3.Show() Button4.Hide() Label13.Show() Button6.Show() If ComboBox1.Text = "LINEA1" Then PictureBox1.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox2.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox3.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox4.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox5.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox6.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") Label2.Show() Label7.Show() Label8.Show() Label9.Hide() Label10.Hide() Label11.Hide() Label12.Show() Label3.Show() Label4.Show() Label5.Show() Label6.Show() RectangleShape1.Show() RectangleShape2.Show() RectangleShape3.Show() RectangleShape4.Show() RectangleShape5.Show() RectangleShape6.Show() RectangleShape7.Hide() RectangleShape8.Hide() RectangleShape9.Hide() PictureBox1.Show() PictureBox2.Show() PictureBox3.Show() PictureBox4.Show() PictureBox5.Show() PictureBox6.Show() PictureBox7.Hide() PictureBox8.Hide() PictureBox9.Hide() 57 la la la la la la Label13.Text = ComboBox1.Text ElseIf ComboBox1.Text = "LINEA2" Then PictureBox1.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox2.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox3.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox4.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox5.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox6.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") Label2.Show() Label7.Show() Label8.Show() Label9.Hide() Label10.Hide() Label11.Hide() Label12.Show() Label3.Show() Label4.Show() Label5.Show() Label6.Show() RectangleShape1.Show() RectangleShape2.Show() RectangleShape3.Show() RectangleShape4.Show() RectangleShape5.Show() RectangleShape6.Show() RectangleShape7.Hide() RectangleShape8.Hide() RectangleShape9.Hide() PictureBox1.Show() PictureBox2.Show() PictureBox3.Show() PictureBox4.Show() PictureBox5.Show() PictureBox6.Show() PictureBox7.Hide() PictureBox8.Hide() PictureBox9.Hide() Label13.Text = ComboBox1.Text ElseIf ComboBox1.Text = "LINEA3" Then PictureBox1.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox2.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") 58 la la la la la la la la PictureBox3.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox4.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox5.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox6.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") Label2.Show() Label7.Show() Label8.Show() Label9.Hide() Label10.Hide() Label11.Hide() Label12.Show() Label3.Show() Label4.Show() Label5.Show() Label6.Show() RectangleShape1.Show() RectangleShape2.Show() RectangleShape3.Show() RectangleShape4.Show() RectangleShape5.Show() RectangleShape6.Show() RectangleShape7.Hide() RectangleShape8.Hide() RectangleShape9.Hide() PictureBox1.Show() PictureBox2.Show() PictureBox3.Show() PictureBox4.Show() PictureBox5.Show() PictureBox6.Show() PictureBox7.Hide() PictureBox8.Hide() PictureBox9.Hide() Label13.Text = ComboBox1.Text ElseIf ComboBox1.Text = "LINEA4" Then PictureBox1.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox2.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox3.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox4.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox5.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") 59 la la la la la la la la la PictureBox6.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") Label2.Show() Label7.Show() Label8.Show() Label9.Hide() Label10.Hide() Label11.Hide() Label12.Show() Label3.Show() Label4.Show() Label5.Show() Label6.Show() RectangleShape1.Show() RectangleShape2.Show() RectangleShape3.Show() RectangleShape4.Show() RectangleShape5.Show() RectangleShape6.Show() RectangleShape7.Hide() RectangleShape8.Hide() RectangleShape9.Hide() PictureBox1.Show() PictureBox2.Show() PictureBox3.Show() PictureBox4.Show() PictureBox5.Show() PictureBox6.Show() PictureBox7.Hide() PictureBox8.Hide() PictureBox9.Hide() Label13.Text = ComboBox1.Text ElseIf ComboBox1.Text = "LINEA5" Then PictureBox1.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox2.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox3.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox4.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox5.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox6.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") Label2.Show() Label7.Show() Label8.Show() Label9.Hide() Label10.Hide() Label11.Hide() Label12.Show() 60 la la la la la la la Label3.Show() Label4.Show() Label5.Show() Label6.Show() RectangleShape1.Show() RectangleShape2.Show() RectangleShape3.Show() RectangleShape4.Show() RectangleShape5.Show() RectangleShape6.Show() RectangleShape7.Hide() RectangleShape8.Hide() RectangleShape9.Hide() PictureBox1.Show() PictureBox2.Show() PictureBox3.Show() PictureBox4.Show() PictureBox5.Show() PictureBox6.Show() PictureBox7.Hide() PictureBox8.Hide() PictureBox9.Hide() Label13.Text = ComboBox1.Text ElseIf ComboBox1.Text = "LINEA6" Then PictureBox1.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox2.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox3.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox4.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox5.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox6.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") Label2.Show() Label7.Show() Label8.Show() Label9.Hide() Label10.Hide() Label11.Hide() Label12.Show() Label3.Show() Label4.Show() Label5.Show() Label6.Show() RectangleShape1.Show() RectangleShape2.Show() RectangleShape3.Show() RectangleShape4.Show() RectangleShape5.Show() RectangleShape6.Show() 61 la la la la la la RectangleShape7.Hide() RectangleShape8.Hide() RectangleShape9.Hide() PictureBox1.Show() PictureBox2.Show() PictureBox3.Show() PictureBox4.Show() PictureBox5.Show() PictureBox6.Show() PictureBox7.Hide() PictureBox8.Hide() PictureBox9.Hide() Label13.Text = ComboBox1.Text ElseIf ComboBox1.Text = "LINEA7" Then PictureBox1.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox2.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox3.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox4.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox5.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox6.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") Label2.Show() Label7.Show() Label8.Show() Label9.Hide() Label10.Hide() Label11.Hide() Label12.Show() Label3.Show() Label4.Show() Label5.Show() Label6.Show() RectangleShape1.Show() RectangleShape2.Show() RectangleShape3.Show() RectangleShape4.Show() RectangleShape5.Show() RectangleShape6.Show() RectangleShape7.Hide() RectangleShape8.Hide() RectangleShape9.Hide() PictureBox1.Show() PictureBox2.Show() PictureBox3.Show() PictureBox4.Show() PictureBox5.Show() PictureBox6.Show() PictureBox7.Hide() 62 la la la la la la PictureBox8.Hide() PictureBox9.Hide() Label13.Text = ComboBox1.Text ElseIf ComboBox1.Text = "LINEA8" Then PictureBox1.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") PictureBox2.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") PictureBox3.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") PictureBox4.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") PictureBox5.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") PictureBox6.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") Label2.Show() Label7.Show() Label8.Show() Label9.Hide() Label10.Hide() Label11.Hide() Label12.Show() Label3.Show() Label4.Show() Label5.Show() Label6.Show() RectangleShape1.Show() RectangleShape2.Show() RectangleShape3.Show() RectangleShape4.Show() RectangleShape5.Show() RectangleShape6.Show() RectangleShape7.Hide() RectangleShape8.Hide() RectangleShape9.Hide() PictureBox1.Show() PictureBox2.Show() PictureBox3.Show() PictureBox4.Show() PictureBox5.Show() PictureBox6.Show() PictureBox7.Hide() PictureBox8.Hide() PictureBox9.Hide() Label13.Text = ComboBox1.Text ElseIf ComboBox1.Text = "LINEA9" Then PictureBox1.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") PictureBox2.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\STADIA\todas la lineas\MODULO.jpg") 63 PictureBox3.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\STADIA\todas la lineas\MODULO.jpg") PictureBox4.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") PictureBox5.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") PictureBox6.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") PictureBox7.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") PictureBox8.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") PictureBox9.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") Label2.Show() Label7.Show() Label8.Show() Label12.Show() Label3.Show() Label4.Show() Label5.Show() Label6.Show() Label11.Show() Label10.Show() Label9.Show() RectangleShape1.Show() RectangleShape2.Show() RectangleShape3.Show() RectangleShape4.Show() RectangleShape5.Show() RectangleShape6.Show() RectangleShape9.Show() RectangleShape8.Show() RectangleShape7.Show() PictureBox1.Show() PictureBox2.Show() PictureBox3.Show() PictureBox4.Show() PictureBox5.Show() PictureBox6.Show() PictureBox7.Show() PictureBox8.Show() PictureBox9.Show() Label13.Text = ComboBox1.Text ElseIf ComboBox1.Text = "LINEA10" Then PictureBox1.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") 64 PictureBox2.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox3.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox4.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox5.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox6.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox7.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox8.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox9.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") Label2.Show() Label7.Show() Label8.Show() Label12.Show() Label3.Show() Label4.Show() Label5.Show() Label6.Show() Label11.Show() Label10.Show() Label9.Show() RectangleShape1.Show() RectangleShape2.Show() RectangleShape3.Show() RectangleShape4.Show() RectangleShape5.Show() RectangleShape6.Show() RectangleShape9.Show() RectangleShape8.Show() RectangleShape7.Show() PictureBox1.Show() PictureBox2.Show() PictureBox3.Show() PictureBox4.Show() PictureBox5.Show() PictureBox6.Show() la la la la la la la la PictureBox7.Show() PictureBox8.Show() PictureBox9.Show() Label13.Text = ComboBox1.Text ElseIf ComboBox1.Text = "LINEA11" Then PictureBox1.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") 65 PictureBox2.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox3.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox4.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox5.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox6.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox7.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox8.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox9.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") Label2.Show() Label7.Show() Label8.Show() Label12.Show() Label3.Show() Label4.Show() Label5.Show() Label6.Show() Label11.Show() Label10.Show() Label9.Show() RectangleShape1.Show() RectangleShape2.Show() RectangleShape3.Show() RectangleShape4.Show() RectangleShape5.Show() RectangleShape6.Show() RectangleShape9.Show() RectangleShape8.Show() RectangleShape7.Show() PictureBox1.Show() PictureBox2.Show() PictureBox3.Show() PictureBox4.Show() PictureBox5.Show() PictureBox6.Show() la la la la la la la la PictureBox7.Show() PictureBox8.Show() PictureBox9.Show() Label13.Text = ComboBox1.Text ElseIf ComboBox1.Text = "LINEA12" Then PictureBox1.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas la lineas\MODULO.jpg") 66 PictureBox2.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox3.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox4.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox5.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox6.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox7.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox8.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") PictureBox9.Image = Image.FromFile("C:\Users\Rafael\Documents\UTEQ\TSU\ESTADIA\todas lineas\MODULO.jpg") Label2.Show() Label7.Show() Label8.Show() Label12.Show() Label3.Show() Label4.Show() Label5.Show() Label6.Show() Label11.Show() Label10.Show() Label9.Show() RectangleShape1.Show() RectangleShape2.Show() RectangleShape3.Show() RectangleShape4.Show() RectangleShape5.Show() RectangleShape6.Show() RectangleShape9.Show() RectangleShape8.Show() RectangleShape7.Show() PictureBox1.Show() PictureBox2.Show() PictureBox3.Show() PictureBox4.Show() PictureBox5.Show() PictureBox6.Show() PictureBox7.Show() PictureBox8.Show() PictureBox9.Show() Label13.Text = ComboBox1.Text End If End Sub la la la la la la la la Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 67 GroupBox1.Show() Button3.Show() Button5.Hide() Button1.Hide() RectangleShape1.BackColor RectangleShape2.BackColor RectangleShape3.BackColor RectangleShape4.BackColor RectangleShape5.BackColor RectangleShape6.BackColor RectangleShape7.BackColor RectangleShape8.BackColor RectangleShape9.BackColor = = = = = = = = = Color.Transparent Color.Transparent Color.Transparent Color.Transparent Color.Transparent Color.Transparent Color.Transparent Color.Transparent Color.Transparent End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click GroupBox1.Hide() Button6.Hide() Button3.Hide() Button4.Show() Label2.Hide() Label7.Hide() Label8.Hide() Label9.Hide() Label10.Hide() Label11.Hide() Label12.Hide() Label3.Hide() Label4.Hide() Label5.Hide() Label6.Hide() RectangleShape1.Hide() RectangleShape2.Hide() RectangleShape3.Hide() RectangleShape4.Hide() RectangleShape5.Hide() RectangleShape6.Hide() RectangleShape7.Hide() RectangleShape8.Hide() RectangleShape9.Hide() Button1.Hide() PictureBox1.Hide() PictureBox2.Hide() PictureBox3.Hide() PictureBox4.Hide() PictureBox5.Hide() PictureBox6.Hide() PictureBox7.Hide() 68 PictureBox8.Hide() PictureBox9.Hide() Label13.Hide() Button5.Hide() RectangleShape1.BackColor RectangleShape2.BackColor RectangleShape3.BackColor RectangleShape4.BackColor RectangleShape5.BackColor RectangleShape6.BackColor RectangleShape7.BackColor RectangleShape8.BackColor RectangleShape9.BackColor = = = = = = = = = Color.Transparent Color.Transparent Color.Transparent Color.Transparent Color.Transparent Color.Transparent Color.Transparent Color.Transparent Color.Transparent End Sub Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click REGISTRO.Show() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Me.Hide() CALENDARIO.Show() End Sub End Class Registro. Public Class REGISTRO Private Sub NOZZLEBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles NOZZLEBindingNavigatorSaveItem.Click Me.Validate() Me.NOZZLEBindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.NOZZLEDataSet) End Sub Private Sub REGISTRO_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'TODO: esta línea de código carga datos en la tabla 'NOZZLEDataSet.NOZZLE' Puede moverla o quitarla según sea necesario. Me.NOZZLETableAdapter.Fill(Me.NOZZLEDataSet.NOZZLE) End Sub End Class 69 XIV Bibliografía [1] Diversas instrucciones y funciones http://msdn.microsoft.com/es-mx/ [2] Du Mortier, G. (2000) Compumagazine. Bases de Datos en Visual Basic: [3] Instrucciones de base de datos http://office.microsoft.com/es- mx/microsoft-access-software-de-base-de-datos-y-aplicacionesFX010048757.aspx [4] Microcontroladores http://www.mikroe.com/chapters/view/84/libro-de-la-programacion-de-losmicrocontroladores-pic-en-basic-capitulo-1-mundo-de-losmicrocontroladores/ [5] Visual Basic ® 2010 and .NET 4 Bill Sheldon, Billy Hollis, Kent Sharkey, Jonathan Marbutt, Rob Windsor, Gaston C.Hillar. 2010 70