CONCLUSIONES Mediante la realización de un estudio a la formación académica universitaria que involucra dos fases de conocimientos teórica/practica; debidos a las mismas responden a los avances tecnológicos impuestos y a la necesidad de formar un profesional integro en el marco de la ingeniería. Así mismo nace la necesidad de desarrollar un simulador de proceso para la medición y control de nivel, permitiendo así concretar los objetivos que se definieron al inicio de la Investigación. En relación con las fases desarrolladas en los objetivos específicos, se llego a las siguientes determinaciones. Ø Se realizo el análisis de proceso de control de nivel con la finalidad de determinar el problema existente en el mismo por ello se consiguió alcanzar el primer objetivo especifico de este estudio que es la situación de la medición y control como paso fundamental de la Investigación. Ø Se determinaron los parámetros electrónicos y físicos adecuados para la medición de nivel con el fin de establecer las especificaciones de los componentes y equipos. En tal sentido, la información obtenida abarca las características y distribución de los instrumentos que se seleccionaron para las distintas señales que requiere el proceso de medición y control. Ø Se diseño una estrategia de control para la medición de nivel en los tanques, 163 164 Asegurando así la correcta utilización de los elementos y al mismo tiempo conocer los niveles aceptables que estos puedan soportar referente a los parámetros más importantes, como lo son el voltaje y la corriente. Así mismo, se elaboraron diagrama de bloques del sistema, tablas de comparación y una serie de pruebas variando los niveles para la comprobación de que el mismo funciona correctamente, tambien es importante destacar que se realizaron pruebas a los equipos y herramientas para el montaje del simulador. En este sentido se puede concluir que los sistemas de medición y control son y serán efectivos en los procesos, disminuyendo fallas y ejecutando acciones de mayor alcance en costo/tiempo. Así mismo, la facilidad de implantación de este diseño se fundamenta en los elementos necesarios y mínimos para su construcción, ya que se utilizaron equipos básicos en el área de la instrumentación donde los mismos están en capacidad de detectar el nivel en el tanque y proporcionar al operador información continua de la cantidad de litros disponible y el proceso de llenado y vaciado. 165 RECOMENDACIONES En función de los resultados obtenidos en este estudio, se considera pertinente plantear las siguientes recomendaciones. - proponer a las actividades de la Universidad Rafael Belloso Chacín la implementación de este equipo a los laboratorios. - Incorporar al simulador, al desarrollo de un proyecto para la medición y control de otras variables, donde este debe involucrar un estudio integral de las acciones tendientes de los equipos a utilizar. Utilizar una pantalla LCD 2x16 para así lograr muestrear mas palabras en la misma. 166 REFERENCIAS BIBLIOGRAFICAS - KUO, BENJAMIN, Sistema de control automático séptima edición Prentice Hall 1996. - OGATA, KATSUHIKO, Ingeniería de control moderna tercera edición Prentice Hall 1998. - ANGULO, IGNACIO, Diseño practico de microcontroladores PIC tercera edición Mcgraw-Hill 1999. - CREUS, ANTONIO, Instrumentación industrial quinta edición Alfa Omega 1998. - CORRIPIO, SMITH, Control Automático de proceso Limusa 1995. - SERWAY, REYMOND, Física para ciencia e Ingeniería Mcgraw-Hill 2002. - SABINO, CARLOS El Proceso de Investigación Panapo 2000 REFERENCIA ELECTRÓNICA EN LÍNEA - www.ISA.org - www.matheworks.com - www.microchip.com 167 ANEXOS 168 ;******************************************************************* ********* LIST P=16F877 RADIX HEX ;******************************************************************* ********* ;ETIQUETAS DEL PROGRAMA ;******************************************************************* ********* INCLUDE "P16F877.INC" ; Etiquetas genericas para el PIC 16F877 ;******************************************************************* ********* L_RS EQU 0X0 ;PORTE(BIT 0) L_RW EQU 0X1 ;PORTE(BIT 1) L_E EQU 0X2 ;PORTE(BIT 2) ;-------------------------------------L_DATA EQU 0X8 ;PORTD L_TRIS EQU 0X88 ;TRISD L_CTRL EQU 0X9 ;PORTE BUZZER EQU 0X2 ;--------------------------------------------------------------------------TX1 EQU 0X1 ;BIT(1) PORTB RX1 EQU 0X0 ;BIT(0) PORTB RS232B EQU 0X6 ;PORTB ;--------------------------------------------------------------------------INTF EQU 0X1 INTCON EQU 0XB OPCION EQU 0X81 ;--------------------------------------------------------------------------BOMBA1 EQU 0X0 BOMBA2 EQU 0X1 ;******************************************************************* ********* ORG 0X20 L_TEMP RES 1 LTS RES 1 LTS1 RES 1 TEMPO RES 1 RESDIV RES 1 DELAY RES 1 X_DELAY RES 1 DDO RES 1 MULPLR RES 1 MULCND RES 1 L_BYTE RES 1 B_BYTE RES 1 H_BYTE RES 1 A_BYTE RES 1 RG1 RES 1 RG2 RES 1 169 RG3 RES 1 RG4 RES 1 CONTA RES 1 CONTA1 RES 1 CONTA2 RES 1 CONTA3 RES 1 ENTRA RES 1 ESTADO RES 1 ;..................... AN01 RES 1 AN02 RES 1 AN03 RES 1 ;..................... RECEPC RES 1 TRANSM RES 1 RETARD RES 1 PILA1 RES 1 PILA2 RES 1 BOMB1 RES 1 BOMB2 RES 1 ;************************************************* ; RUTINA PRINCIPAL ;************************************************* ORG 0X0 GOTO PPORT ORG 0X4 ;************************************************* ; RUTINA DE INTERRUPCION ;************************************************* EXPUL MOVWF PILA1 ;W --> PILA1 MOVF STATUS,W ;W --> SATATUS MOVWF PILA2 ;W --> PILA2 ;----------------------CALL RXM MOVLW 0XAA SUBWF RECEPC,W BTFSC STATUS,Z GOTO FUERA ;----------------------RM1 MOVLW 0XA1 ;ON BOMBA1 SUBWF RECEPC,W BTFSS STATUS,Z GOTO RM2 BSF PORTC,BOMBA1 BSF BOMB1,0 BSF ESTADO,0 GOTO FUERA ;----------------------RM2 MOVLW 0XA3 ;OFF BOMBA1 SUBWF RECEPC,W BTFSS STATUS,Z GOTO RM3 BCF PORTC,BOMBA1 BCF BOMB1,0 170 BCF ESTADO,0 GOTO FUERA ;----------------------RM3 MOVLW 0XA5 ;ON BOMBA2 SUBWF RECEPC,W BTFSS STATUS,Z GOTO RM4 BSF PORTC,BOMBA2 BSF BOMB2,0 BSF ESTADO,1 GOTO FUERA ;----------------------RM4 MOVLW 0XA6 ;OFF BOMBA2 SUBWF RECEPC,W BTFSS STATUS,Z GOTO FUERA BCF PORTC,BOMBA2 BCF BOMB2,0 BCF ESTADO,1 ;----------------------FUERA MOVF LTS,W CALL TXM CALL TL1 MOVF ESTADO,W CALL TXM ;----------------------BCF INTCON,INTF MOVF PILA2,W MOVWF STATUS MOVF PILA1,W RETFIE ;******************************************************************* ********* ; PROGRAMA PRINCIPAL ;******************************************************************* ********* PPORT BSF STATUS,RP0 ; Seleccion del banco 1 BCF STATUS,RP1 MOVLW 0XE MOVWF ADCON1 MOVLW 0X0 ;XXXX X000 MOVWF TRISE MOVLW 0X3F ;XX11 1111 MOVWF TRISA MOVLW 0XFD ;1111 1101 MOVWF TRISB MOVLW 0XF8 ;1111 1000 MOVWF TRISC MOVLW 0XFF ;1111 1111 MOVWF TRISD MOVLW 0X0 MOVWF OPCION BCF STATUS,RP0 171 ;******************************************************************* ********* CALL DESINT INIC CLRF PORTE CLRF PORTC BSF RS232B,TX1 ;COLOCAR LINEA EN ALTO CLRF PORTD CLRF BOMB1 CLRF BOMB2 CLRF ESTADO ;******************************************************************* ********* INI0 CALL WRITE CALL LCDINI ;............................... INI2 CALL PANT1 CALL READ ;............................... INI3 CALL ACTINT ;............................... INI4 CALL LEEAD0 CALL MOST2 CALL T1S GOTO INI4 ;******************************************************************* ********* LCDINI CLRF L_CTRL MOVLW 0X1E CALL X_DEL5 MOVLW 0X38 CALL P_CMD MOVLW 0X0 CALL L_DMODE CALL L_CLEAR MOVLW 0X2 CALL L_DMODE MOVLW 0X4 CALL L_EMODE RETURN ;******************************************************************* ********* L_BUSY BSF STATUS,RP0 MOVLW 0XFF MOVWF L_TRIS BCF STATUS,RP0 BCF L_CTRL,L_RS BSF L_CTRL,L_RW BSF L_CTRL,L_E MOVF L_DATA,W BCF L_CTRL,L_E ANDLW 0X80 BTFSS STATUS,Z GOTO L_BUSY LN_BUSY BCF L_CTRL,L_RW 172 BSF STATUS,RP0 MOVLW 0X0 MOVWF L_TRIS BCF STATUS,RP0 RETURN ;******************************************************************* ********* L_CLEAR MOVLW 0X1 CALL P_CMD RETURN ;******************************************************************* ********* L_HOME MOVLW 0X2 CALL P_CMD RETURN ;******************************************************************* ********* L_DMODE ANDLW 0X3 IORLW 0X4 CALL P_CMD RETURN ;******************************************************************* ********* L_EMODE ANDLW 0X7 IORLW 0X8 CALL P_CMD RETURN ;******************************************************************* ********* P_DATO MOVWF L_TEMP CALL L_BUSY BCF L_CTRL,L_RW BSF L_CTRL,L_RS BSF L_CTRL,L_E MOVF L_TEMP,W MOVWF L_DATA BCF L_CTRL,L_E RETURN ;******************************************************************* ********* P_CMD MOVWF L_TEMP CALL L_BUSY BCF L_CTRL,L_RW BCF L_CTRL,L_RS BSF L_CTRL,L_E MOVF L_TEMP,W MOVWF L_DATA BCF L_CTRL,L_E RETURN ;******************************************************************* ********* DEL5 MOVLW .165 MOVWF DELAY LOOP5 DECFSZ DELAY,F 173 GOTO LOOP5 RETURN ;******************************************************************* ********* X_DEL5 MOVWF X_DELAY XLP5 CALL DEL5 DECFSZ X_DELAY,F GOTO XLP5 RETURN ;******************************************************************* ********* LEEAD0 BSF STATUS,RP0 ;Seleccion del banco 1 BCF STATUS,RP1 BSF PIE1,ADIE ;ACTIVA LA BANDERA DE INTERRUPCION DEL A/D BCF STATUS,RP0 ;MOVERSE AL BANCO 0 MOVLW 0X1 ;CONFIGURA EL REGISTRO MOVWF ADCON0 ;ADCON0 BCF PIR1,ADIF ;BORRAR EL SEÑALIZADOR ADIF CALL T25M ;RETARDO BSF ADCON0,GO ;INICIA CONVERSION NOP ;TIEMPO DE ESPERA NOP ;PARA ADQUISICIÓN NOP NOP NOP NOP NOP NOP ESPER BTFSS PIR1,ADIF GOTO ESPER ;CONVERSION FINALICE ;.......................... MOVF ADRESH,W MOVWF LTS MOVWF L_BYTE CLRF H_BYTE ;.................................. CALL HEXDEC MOVF RG1,W MOVWF AN01 MOVF RG2,W MOVWF AN02 MOVF RG3,W MOVWF AN03 RETURN ;-------------------------------------------------------------------------;******************************************************************* ********* HEXDEC MOVF L_BYTE,W MOVWF B_BYTE MOVF H_BYTE,W MOVWF A_BYTE CALL MOSRE RETURN 174 ;******************************************************************* ********* MOSRE CLRF RG1 CLRF RG2 CLRF RG3 CLRF RG4 OTRA BCF STATUS,C MOVLW 0X3 SUBWF A_BYTE,W BTFSC STATUS,C GOTO SI GOTO NO SI MOVLW 0XE8 SUBWF B_BYTE,W BTFSC STATUS,C GOTO SI1 GOTO NO1 SI1 MOVLW 0XE8 SUBWF B_BYTE,F MOVLW 0X3 SUBWF A_BYTE,F INCF RG4,F GOTO OTRA NO1 MOVLW 0X3 SUBWF A_BYTE,W BTFSS STATUS,Z GOTO SI2 GOTO NO SI2 MOVLW 0XE8 SUBWF B_BYTE,F MOVLW 0X4 SUBWF A_BYTE,F INCF RG4,F GOTO OTRA NO MOVF B_BYTE,W MOVWF L_BYTE MOVF A_BYTE,W MOVWF H_BYTE MOVLW 0X64 MOVWF DDO CALL DIVISA MOVF RESDIV,W MOVWF RG3 MOVLW 0XA MOVWF DDO CALL DIVISA MOVF RESDIV,W MOVWF RG2 MOVLW 0X1 MOVWF DDO CALL DIVISA MOVF RESDIV,W MOVWF RG1 RETURN 175 ;******************************************************************* ********* DIVISA CLRF RESDIV DIVI MOVF H_BYTE,W IORWF L_BYTE,W BTFSS STATUS,Z GOTO SEGUIR RETURN SEGUIR MOVF DDO,W SUBWF L_BYTE,W BTFSS STATUS,C GOTO REVISA GOTO SEPUEDE SEPUEDE MOVF DDO,W SUBWF L_BYTE,F INCF RESDIV,F GOTO DIVI REVISA MOVLW 0X0 SUBWF H_BYTE,W BTFSS STATUS,Z GOTO SG1 RETURN SG1 MOVF DDO,W SUBWF L_BYTE,F INCF RESDIV,F DECF H_BYTE,F GOTO DIVI ;************************************************* MULTI MOVWF MULPLR MOVF TEMPO,W MOVWF MULCND CLRF H_BYTE CLRF L_BYTE MOVLW 0X0 SUBWF MULPLR,W BTFSC STATUS,Z RETURN MOVLW 0X0 SUBWF MULCND,W BTFSC STATUS,Z RETURN MOVLW 8 MOVWF CONTA MOVF MULCND, W BCF STATUS, C LOOP RRF MULPLR, F BTFSC STATUS, C ADDWF H_BYTE, F RRF H_BYTE, F RRF L_BYTE, F DECFSZ CONTA, F GOTO LOOP RETURN ;************************************************* 176 PANT1 CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL L_CLEAR 0X80 P_CMD 'B' P_DATO '1' P_DATO ':' P_DATO '0' P_DATO MOVLW ' ' CALL P_DATO MOVLW CALL MOVLW CALL MOVLW CALL 'B' P_DATO '2' P_DATO ':' P_DATO MOVLW 0XC0 CALL P_CMD MOVLW '0' CALL P_DATO MOVLW ' ' CALL P_DATO ;******************************** MOVLW 'L' CALL P_DATO MOVLW 'T' CALL P_DATO MOVLW '=' CALL P_DATO MOVLW '0' CALL P_DATO MOVLW '0' CALL P_DATO MOVLW '0' CALL P_DATO RETURN ;************************************************* MOST2 MOVLW 0X83 CALL P_CMD MOVF BOMB1,W ADDLW 0X30 CALL P_DATO MOVLW CALL MOVF ADDLW CALL 0XC0 P_CMD BOMB2,W 0X30 P_DATO 177 MOVLW 0XC5 CALL P_CMD MOVF AN03,W ADDLW 0X30 CALL P_DATO MOVF AN02,W ADDLW 0X30 CALL P_DATO MOVF AN01,W ADDLW 0X30 CALL P_DATO RETURN ;************************************************* READ BSF STATUS,RP0 MOVLW 0XFF MOVWF TRISD BCF STATUS,RP0 RETURN ;******************************************************************* ******** WRITE BSF STATUS,RP0 MOVLW 0X0 MOVWF TRISD BCF STATUS,RP0 RETURN ;******************************************************************* ******** TL1 MOVLW .4 MOVWF CONTA1 PL1 MOVLW .82 MOVWF CONTA PL2 DECFSZ CONTA,F GOTO PL2 DECFSZ CONTA1,F GOTO PL1 RETURN ;******************************************************************* ******** T25M MOVLW .35 ;25.03 ms (a 4MHz) MOVWF CONTA1 LP1A MOVLW .237 MOVWF CONTA LP2A DECFSZ CONTA,F GOTO LP2A DECFSZ CONTA1,F GOTO LP1A RETURN ;******************************************************************* ******** T1S MOVLW .40 MOVWF CONTA2 LOOP4 CALL T25M DECFSZ CONTA2,F 178 GOTO LOOP4 RETURN ;******************************************************************* ******** T125M MOVLW .5 MOVWF CONTA2 LOP6 CALL T25M DECFSZ CONTA2,F GOTO LOP6 RETURN ;******************************************************************* ******** UNBIT MOVLW .165 ;PARA UN BIT DE RETARDO MOVWF RETARD ;RUTINA 1200 BAUDIOS REDO NOP NOP DECFSZ RETARD,F GOTO REDO NOP RETURN ;******************************************************************* ******** UNMED MOVLW .248 ;PARA UNO Y MEDIO BIT DE RETARDO MOVWF RETARD ;RUTINA DE RETARDO REDO1 NOP NOP DECFSZ RETARD,F GOTO REDO1 RETURN ;******************************************************************* ******** TXM MOVWF TRANSM ;CARGA DATO EN REGISTRO DE TRANSMISION XMRT MOVLW 0X8 ;CARGAR EL NUMERO DE BITS MOVWF CONTA ;CARGAR EL CONTADOR BCF RS232B,TX1 ;COLOCAR LINEA DE TX1 EN BAJO CALL UNBIT ;GENERAR BIT DE ARRANQUE XNEXT BCF RS232B,TX1 ;COLOCAR LINEA DE TX1 EN BAJO BCF STATUS,C ;LIMPIAR CARRY RRF TRANSM,F ;ROTAR REGISTRO DE TRANSMISION BTFSC STATUS,C ;PREGUNTAR POR EL CARRY BSF RS232B,TX1 ;SI ES UNO, COLOCAR LINEA EN ALTO CALL UNBIT ;LLAMAR RETARDO DE 1 BIT DECFSZ CONTA,F ;DECREMENTAR CONTADOR, SALTAR SI ES CERO GOTO XNEXT ;REPETIR HASTA TRANSMITIR TODO EL DATO BSF RS232B,TX1 ;COLOCAR LINEA EN ALTO CALL UNBIT ;RETARDO DE 1 BIT, BIT DE STOP RETURN ;******************************************************************* ******** RXM CLRF RECEPC ;LIMPIA REGISTRO DE RECEPCION CALL UNMED ;LLAMAR RUTINA UNO Y MEDIO BITS RCVR MOVLW 0X8 ;CARGAR CONTADOR CON EL NUMERO MOVWF CONTA ;DE BITS 179 RNEXT BCF STATUS,C ;LIMPIAR CARRY BTFSC RS232B,RX1 ;PREGUNTAR POR EL ESTADO DE LA LÍNEA BSF STATUS,C ;ACTIVAR CARRY SI ESTÁ EN ALTO "1" RRF RECEPC,F ;ROTAR REGISTRO DE RECEPCION CALL UNBIT ;LLAMAR RUTINA DE UN BIT DECFSZ CONTA,F ;DECREMENTAR CONTA, SALTAR SI ES CERO GOTO RNEXT ;REPETIR HASTA COMPLETAR DATO RETURN ;******************************************************************* ******** ACTINT MOVLW b'10010000' ;GIE=1, INTE=1 MOVWF INTCON RETURN ;************************************************* ; RUTINA DE DESHABILITACIÓN DE INTERRUPCION ;************************************************* DESINT MOVLW b'00000000' ;GIE=0, INTE=0 MOVWF INTCON RETURN ;************************************************* END 180 VERSION 5.00 Object = "{65E121D4-0C60-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCHRT20.OCX" Begin VB.Form SIMULADOR BackColor = &H00800000& Caption = "SIMULADOR" ClientHeight = 3195 ClientLeft = 60 ClientTop = 345 ClientWidth = 4680 LinkTopic = "Form1" ScaleHeight = 3195 ScaleWidth = 4680 StartUpPosition = 3 'Windows Default WindowState = 2 'Maximized Begin VB.Timer Timer2 Interval = 1000 Left = 360 Top = 360 End Begin VB.Timer Timer1 Interval = 1000 Left = 960 Top = 360 End Begin MSChart20Lib.MSChart MSChart1 Height = 4095 Left = 6600 OleObjectBlob = "SIMULADOR.frx":0000 TabIndex = 17 Top = 3720 Width = 4935 End Begin VB.CommandButton VACIAR Caption = "&VACIADO" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 495 Left = 7320 Style = 1 'Graphical TabIndex = 12 Top = 1800 Width = 1095 End Begin VB.CommandButton LLENAR Caption = "&LLENADO" 181 BeginProperty Font Name Size Charset Weight Underline Italic Strikethrough EndProperty Height = Left = Style = TabIndex = Top = Width = = = = = = = = "MS Sans Serif" 8.25 0 700 0 'False 0 'False 0 'False 495 5040 1 'Graphical 11 1800 1095 End Begin VB.HScrollBar HS2 Height = 255 Left = 1200 Max = 1000 TabIndex = 4 Top = 3480 Width = 1695 End Begin VB.HScrollBar HS1 Height = 255 Left = 1200 Max = 100 TabIndex = 1 Top = 5400 Width = 1695 End Begin VB.CommandButton SALIR Caption = "&SALIR" BeginProperty Font Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 495 Left = 9480 TabIndex = 0 Top = 1800 Width = 1095 End Begin VB.Label Label9 Alignment = 2 'Center BackStyle = 0 'Transparent BorderStyle = 1 'Fixed Single Caption = "SIMULADOR Y GRAFICA DEL SISTEMA" 182 BeginProperty Font Name Size Charset Weight Underline Italic Strikethrough EndProperty ForeColor = Height = Left = TabIndex = Top = Width = End Begin VB.Label Label8 Alignment = BackStyle = Caption = BeginProperty Font Name Size Charset Weight Underline Italic Strikethrough EndProperty ForeColor = Height = Left = TabIndex = Top = Width = End Begin VB.Label Label7 Alignment = BackColor = BorderStyle = Caption = BeginProperty Font Name Size Charset Weight Underline Italic Strikethrough EndProperty Height = Left = TabIndex = Top = = = = = = = = "MS Sans Serif" 9.75 0 700 0 'False 0 'False 0 'False &H00FFFF00& 5175 4080 16 3000 7695 2 'Center 0 'Transparent "LITROS" = = = = = = = "MS 12 0 700 0 0 0 Sans Serif" 'False 'False 'False &H0000FFFF& 375 3720 15 6720 2775 2 'Center &H80000009& 1 'Fixed Single "0" = = = = = = = "MS 24 0 700 0 0 0 615 4200 14 7200 Sans Serif" 'False 'False 'False 183 Width = End Begin VB.Shape Shape2 FillColor = FillStyle = Height = Left = Shape = Top = Width = End Begin VB.Shape Shape1 FillColor = FillStyle = Height = Left = Shape = Top = Width = End Begin VB.Label Label6 Alignment = BackStyle = BorderStyle = Caption = BeginProperty Font Name Size Charset Weight Underline Italic Strikethrough EndProperty ForeColor = Height = Left = TabIndex = Top = Width = End Begin VB.Label Label4 Alignment = BackStyle = BorderStyle = Caption = BeginProperty Font Name Size Charset Weight Underline Italic Strikethrough 1815 &H0000FF00& 0 'Solid 255 4200 4 'Rounded Rectangle 6360 1815 &H000000FF& 0 'Solid 2895 4200 4 'Rounded Rectangle 3720 1815 2 'Center 0 'Transparent 1 'Fixed Single "ACCION DEL SISTEMA" = = = = = = = "MS Sans Serif" 9.75 0 700 0 'False 0 'False 0 'False &H00FFFF00& 1455 4080 13 1200 7695 2 'Center 0 'Transparent 1 'Fixed Single "SIMULADOR DE LLENADO Y VACIADO DE TANQUE" = = = = = = = "MS 12 0 700 0 0 0 Sans Serif" 'False 'False 'False 184 EndProperty ForeColor Height Left TabIndex Top Width = = = = = = End Begin VB.Label Label5 Alignment = BackStyle = Caption = BeginProperty Font Name Size Charset Weight Underline Italic Strikethrough EndProperty ForeColor = Height = Left = TabIndex = Top = Width = End Begin VB.Label LITROS Alignment = BackColor = BorderStyle = Caption = BeginProperty Font Name Size Charset Weight Underline Italic Strikethrough EndProperty Height = Left = TabIndex = Top = Width = End Begin VB.Label Label3 Alignment = BackStyle = BorderStyle = Caption = BeginProperty Font &H0000FFFF& 615 240 10 240 11535 2 'Center 0 'Transparent "LITROS" = = = = = = = "MS 12 0 700 0 0 0 Sans Serif" 'False 'False 'False &H0000FFFF& 375 720 9 6120 2775 2 'Center &H80000009& 1 'Fixed Single "0" = = = = = = = "MS 24 0 700 0 0 0 Sans Serif" 'False 'False 'False 615 1200 8 6600 1695 2 'Center 0 'Transparent 1 'Fixed Single "PARAMETROS DEL SISTEMA" 185 Name Size Charset Weight Underline Italic Strikethrough EndProperty ForeColor = Height = Left = TabIndex = Top = Width = End Begin VB.Label Label2 Alignment = BackStyle = Caption = BeginProperty Font Name Size Charset Weight Underline Italic Strikethrough EndProperty ForeColor = Height = Left = TabIndex = Top = Width = End Begin VB.Label Label1 Alignment = BackStyle = Caption = BeginProperty Font Name Size Charset Weight Underline Italic Strikethrough EndProperty ForeColor = Height = Left = TabIndex = Top = Width = = = = = = = = "MS Sans Serif" 9.75 0 700 0 'False 0 'False 0 'False &H00FFFF00& 6975 240 7 1200 3495 2 'Center 0 'Transparent "SET POINT %" = = = = = = = "MS 12 0 700 0 0 0 Sans Serif" 'False 'False 'False &H0000FFFF& 375 720 6 4200 2775 2 'Center 0 'Transparent "CAPACIDAD LTS" = = = = = = = "MS 12 0 700 0 0 0 Sans Serif" 'False 'False 'False &H0000FFFF& 375 600 5 2280 2775 186 End Begin VB.Label LTS Alignment = 2 'Center BackColor = &H80000009& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 24 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 615 Left = 1200 TabIndex = 3 Top = 2760 Width = 1695 End Begin VB.Label SP Alignment = 2 'Center BackColor = &H80000009& BorderStyle = 1 'Fixed Single Caption = "0%" BeginProperty Font Name = "MS Sans Serif" Size = 24 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 615 Left = 1200 TabIndex = 2 Top = 4680 Width = 1695 End End Attribute VB_Name = "SIMULADOR" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Private Declare Sub vbOut Lib "C:\WIN95IO.DLL" (ByVal nPort As Integer, ByVal nData As Integer) Private Declare Sub vbOutw Lib "C:\WIN95IO.DLL" (ByVal nPort As Integer, ByVal nData As Integer) Private Declare Function vbInp Lib "C:\WIN95IO.DLL" (ByVal nPort As Integer) As Integer 187 Private Declare Function vbInpw Lib "C:\WIN95IO.DLL" (ByVal nPort As Integer) As Integer Private Sub Form_Load() Timer1.Enabled = False Timer2.Enabled = False End Sub Private Sub HS1_Change() SP.Caption = Str(HS1.Value) + "%" SP.Refresh LITROS.Caption = Str(Int((HS1.Value / 100) * HS2.Value)) LITROS.Refresh End Sub Private Sub HS1_Scroll() SP.Caption = Str(HS1.Value) + "%" SP.Refresh LITROS.Caption = Str(Int((HS1.Value / 100) * HS2.Value)) LITROS.Refresh End Sub Private Sub HS2_Change() LTS.Caption = HS2.Value LTS.Refresh LITROS.Caption = Str(Int((HS1.Value / 100) * HS2.Value)) LITROS.Refresh End Sub Private Sub HS2_Scroll() LTS.Caption = HS2.Value LTS.Refresh LITROS.Caption = Str(Int((HS1.Value / 100) * HS2.Value)) LITROS.Refresh End Sub Private Sub LLENAR_Click() If LLENAR.BackColor = &H8000000F Then LLENAR.BackColor = &HFF00& Timer1.Enabled = True Else End If End Sub Private Sub SALIR_Click() End End Sub Private Sub Timer1_Timer() LLENAR.BackColor = &H8000000F Timer1.Enabled = False End Sub 188 Private Sub Timer2_Timer() VACIAR.BackColor = &H8000000F Timer2.Enabled = False End Sub Private Sub VACIAR_Click() If VACIAR.BackColor = &H8000000F Then VACIAR.BackColor = &HFF00& Timer2.Enabled = True Else End If End Sub