<’ UNIDAD: IZTAPWA DIVISION: CBI ‘-CARRERA: , ’ ING. PROYECTO DE INGENIERIA ELECTRONICA I1 MATERIA: TITULO: FECHA: EN COMUNICACIONES /SISTEMA DE ADQUISICIÓN DE DATOS Y CONTROL DE PROCESOS e AGOSTO DE 1998 __L- ALUMNO: /CÓRDOVA HERNÁNDEZ RICARDO -7 MATRICUWI: 91320248 ASESOR: DONAC ,, Z VAZQUEZ PROYECTO DE tNGENtERlA ELECTRONICA It SlSTEMA D E ADQUlClCIUN D E DATUS Y C U N T R U L D E PRUCESUS PRESENTA: CORDOVA HERNANbEZ R f C A R D O A O O S T O DE I S 9 6 A DIOS DOY CRrlCL4S POR PERMmRME CONCLUIR SAT1SFAUORMMEWEMIS ESTUDIOS Y NO DESAMPME ENLOS MOMENTOS MAS DlFlClL.ES A mis padres: Salomé Córdma y Romana Hemániiéz Casa abierta ai tiempo SISTEMA DE ADQumcloN DE D A W Y CONTROL DE PROCFSOG INDICE: I. OBJETIVO 11. INTRODUCCI~N III. DESCRZPCI~N DEL PROYECTO IV. DESCFWCIÓN DEL SISTEMA EN LA PC V. INTERFACE PROGRAMABLE VI. DECODIFICACI~NDE PUERTOS VII. CONVERSIÓN NUMERICA VIII. OSCILADOR Y VOLTAJE% DE REFERENCIAS Ix. SOFTWARE DEL SISTEMA X. LIBRERÍA DEL S1STEMA.H XI. CORRIDA DEL PROGRAMA MI. BlBLIOGRAFIA Casa abierta ai tiempo OBJETIVO: Proporcionar una mayor familiarización con las interfaces que faciliten la adquisición de señales analógicas y el uso de los sensores apropiados, que nos ayuden a resolver un problema, así como la utilización de lenguajes de programación para la manipulación de los datos y poder controlar procesos o anticipar resultados. Se ha diseñado un sistema que permite el control de procesos mediante el monitoreo de los mismos, así como la creación de un software de uso especifico para esta aplicación, en la cual pueden variarse alguno parametro de entrada y salida, para que dicho control pueda ser manipulado de forma automática o manual. Algunos de las señales que son manipuladas en este sistema son entradas analógicas generadas por los sensores de temperatura, sensores de sensibilidad de luz, niveles de volumen, sensor de movimiento, fotoceldas, relevador indicador y oscilador local que son adquiridas por la tarjeta y manipuladas por medio del programa. El presente reporte tiene como finalidad documentar la arquitectura del sistema, así como las rutinas del programa para la mejora de lo que aquí se expone y sirva para auxiliar o como etapa adicional para otros proyectos, de tal forma que puedan desarrollarse sistemas más complejos que se requieran para la solución de problemas. DESCWPCIdNDEL PROYECTO : El sistema consta de una tarjeta que es insertada en el Bus tipo ISA ( Arquitectura Industrial Estandar ) de la PC, esta tarjeta se direcciona en el rango Ox310-0x31F de dirección de puertos de 1/0 para tarjetas prototipo usado por los dispositivos estándares de IBM PC. Esta tarjeta tiene como función recibir 8 señales analógicas y guardar los datos digitalizados para luego mediante programa, manipularlos para tomar decisiones en algún proceso de control, también puede adquirir señales y procesarlos datos en tiempo real y tomar decisiones de control. La codificación de los puertos se realiza usando un comparador de magnitud de 8 bits (74LS688), el cual fija el valor del puerto 031xx, dando así el direccionamiento de los puertos de 1/0 del 0310-031F. La salida del comparador habilita a un interfaz periférica programable (PPI 8255A), que proporciona tres puertos de entrada o salida según se le programe, para nuestros propósitos se han programado al puerto A y C de salida y al puerto B de entrada. La conversión de las señales analógicas la realiza un convertidor analógico digital multiplexado ( ADC0808 ) el cual está alimentado por un circuito que mantiene el voltaje regulado y libre de ruido ya que utiliza un amplificador operacional de bajo ruido ( LM308 ) por lo que dicho circuito es también utilizado como referencia, además de utilizar un oscilador local diseñado mediante el CI 74C14 que sirve como base de tiempo. Las entradas de señal pueden seleccionarse mediante el programa, a si como el tiempo en que deben tomarse las muestras de los procesos. Casa abierta ai tiempo S~DEADQUISICIUNDEDATOG Y CONTROLDEPRo(3Eso6 También mediante programa se puede decidir si se desea encuestar todas las señales de entrada o si se encuesta guardando en memoria externa ( memoria incluida en la tarjeta ) , esta memoria se incluye para poder correr otra aplicación en la PC sin que el proceso de adquisición interfiera, esto puede hacerse ya que el direccionamiento de la memoria lo realiza un contador binario (74LS393 ), el cual solo necesita habilitarse. A continuación se muestra un diagrama del sistema de 1/0 del sistema. ADC0808 8255A DO-D7 td d vi U trl t5 '9 cd 0 A 3 u3 m 40 41 r B C PUERTO B Q VIN1-VIN7 ENTRADA DE SEÑALES ANALOGICAS Casaabhtaaitiempo SISTEMA DE -1CiON DE D A W Y CONlRaDE PRocEcioG Las señales que entran a la tageta de adquisición de datos se utilizan en diversas aplicaciones, como son los sensores de volumen que sensa la cantidad de fluido en un tanque de almacenamiento previniendo así posibles derrames o escasez de los mismos, por otro lado se controla la temperatura de la estación de sistemas enviando una palabra de control para activar el sistema de enfriamiento, se utiliza un sistema de control de entradas mediante celdas fotoeléctricas y un sistema de alarma que utiliza sensores de movimiento que favorece la seguridad de las instalaciones, las aplicaciones adicionales se explicaran a detalle mas adelante. El siguiente bloque algunas de las aplicaciones, ya que el sistema puede soportar muchas más. APLICACIONES *-SENSOR DE MOVIMlENTO *-SENSOR DE VOLUMEN *-CELDAS FOTOELECTRICAS *-OSCLADOR LOCAL *-SENSOR DE TEMPERATURA 1 *-SENSOR DE TEMPERATURA 2 *-SENSOR DE INTENSIDAD DE LUZ *-ALARMA DE SEGURIDAD *-SISTEMA DE ENFRIAMIENTO *-CAMBIO DE OSCEADOR *-CONTROL DE LUCES Casa abiertaal tiempo SISTEMA DE ADQulsIcloNDE D A W Y CONTROL DE PRocEsoG DESCRIPCION DE SISTEMA DE ENTRADA EN LA PC ( BUS ISA ) El Bus ISA (Arquitectura Industríal Estándar) es un bus de datos de 16 bits, basado en un diseño de expansión de 98 patas, para la cual fue diseñada la tarjeta de adquisición donde el lado de los componentes proporcionan las salidas nombradas como Al-> A31, Cl->C18 , para la cual A2->A9 son las ocho primeras y C11-> C18 el segundo juego de ocho líneas de Datos, seleccionando las primeras ocho líneas para nuestra aplicación al igual que las 1/0 de direccionamiento correspondientes y las señales lectura, escritura, alimentacion etc. Por otra parte el reverso del Bus contiene conexiones llamadas Bl->B31 y Dl->D18 que son pocas las utilizadas en este sistema. líneas de Datos El ISA representa el camino de comunicación de PC y la tarjeta de adquisición por lo que sea tenido cuidado al trabajar en esta interface ya que de lo contrario se interrupe el funcionamiento total de la PC, por tal motivo se han seleccionado componentes de bajo ruido y anchos de banda adecuados para que pueda funcionar en cualquier tipo de PC’s que contenga Bus ISA. Para intervenir en el canal de 1/0 de la PC se muestra todas las señales que proporciona el BUS ISA. B GND RESET DRV +5v IRQ2 LADO A A l l VOCHCK I D7 I D6 I D1 t"" A10 I10 CHRDY Al5 p A l4 Al3 I AlO I A4 INTERFACE PROGRAMABLE (PPI 8255) La interface periférica programable tiene 24 terminales para E/S programables por grupos de 12 terminales, utilizado en tres modos diferentes de funcionamiento a su tres puertos de E/S, marcados con PA, PB, PC como se muestra en el cto siguiente. 34 33 8256 L 32 $ D3 PW 3 PR2 2 PFli 291g Ete:m 27 D7 pa7 at, pc6 AA PC7 Las conexiones del grupo A PA7-PA0 y la mitad superior del puerto C (PC7-PC4); el grupo B consiste en el puerto B PB7-PBO y la mitad inferior del puerto C PC3-PCO. El 8255 se selecciona con su terminal CS para programarlo o para leer o escribir en un puerto. La selección se sus registros se logran por medio de las terminales Al y AO, que seleccionan un registro interno para programación u operación a continuación se muestran la asignación de puertos de E/S para el 8255. Al A0 FTJNCIOBJ O n- O 1 1 O PUERTO A PUERTO B PUERTO C REGISTRO DE COMANDOS 1 1 Casaabiertaaltiempo SIsTEMADEADQulslcIoNDEDATosY coNTRaDEPRocEsoG La entrada de RESET del 8255 l o inicializa siempre que se inicializa el el microprocesador, esta entrada hace que se los puertos de entrada en modo de funcionamiento O. Debido a que las terminales de los puertos son programadas como terminales de entrada, al aplicar RESET, esto para evitar daños cuando se aplica corriente por primera vez en el sistema. Después de un reset el programa de la tarjeta adquisición de datos envía nuevamente las instrucciones que programan al 8255 la instrucción del byte comando para e3, registro de control de puertos esta dado por las siguientes selección. inicialicen todos Byte Comando 7 6 1 O 3 6 5 2 O O O 1 1 L Grupo B I I Grupo A ~ - Puerto C (P3-PO) Puerto B Puerto B 1= Entrada 2 = Salida Modo OO= Modo O . Puerto C (P3-PO) 1= Entrada 2 =Salida 01=Modo 1 1= Entrada 2 = salida Modo 00= Modo O 01= Modo 1 Casa abiexta ai tiempo SISTEMA DE ADQUíSICIONDE D A W Y CONTROL DE PROCESOG Para programar el 8255 en modo O con los puertos A y C de salida y el puerto B de entrada se logra enviando el valor de Ox82H como byte de control y enviando la activación de CS mediante la salida del comparador de magnitud el cual proporciona una salida baja cuando se envía la codificación del puerto 0x310 al Ox31F. ,2345 6 7 8 9 I I Bus ISR ! I IBM I/O CHFiNNEL I I I 658985 =TUDA DEL CODIPICADOR DE PUERTO cp I 74LS688 i INTERFRCE PERIFERICQ 8256 casaabiertaaltiempo SlSTEMA DE ADQulsIQONDE DATOS Y CONTRaDE PRocEsoG DECODIFICACIbN DE PUERTOS La unidad de codificación de puertos tiene como propósito el desacoplar los circuitos de la tarjeta de las lineas del bus y de proporcionar la señal de decodificación de los puertos para los diversos circuitos. La decodificación se realiza mediante la fijación del puer a la entrada de un comparador de magnitud de 8 bits en el cual se selecciona el valor de 0x31 de entradas fijas el cual es comparada con los valores que se envían por el bus de tal madera que cuando se envía por programa el valor de 0x310 el CI 74LS688 envía una salida baja que sirve para activar la interface periferica y circuitos adicionales de memorias de almacenamiento de datos, al igual que l o s contadores de dirección. activar BUS ISFi SALIDA AL CS DEL 8255 Casaabiertaaltiempo SIsreJlADEADQuIsiCIONDEDATosYCQNTROLDEPRocEsoG CONVERSI~N NUMÉRICA (ADC,DAC) La etapa de conversión consiste en un convertidor A/D que está contenido en la tarjeta del circuito impreso que se inserta dentro del canal de expansión de la PC (bus ISA). EL componente de adquisición ADC0808 con una conversión de 8 bits analógico compatible con digital control cuenta lógico con 8 canales multiplexados mediante microprocesadores y conversión mediante aproximaciones sucesivas que nos proporciona mayor rapidez. Los ocho canales de entrada analógica son utilizadas para diversas aplicaciones con es la señal de cambios de temperatura, volumen, sensores de movimiento entre otras aplicaciones que pueden ser controladas por la salida de control del puerto A y C del 8255. Podemos seleccionar cada una de las entradas por separado o sensar las ocho entradas analógicas al mismo tiempo esto con la ayuda del software que nos permite diferentes opciones. Se debe los valores del convertidor esta referenciados a un nivel de 5 volt que es proporcionando por una etapa de referencia que utiliza componentes de alta precisión para tener un menor grado de error, también esta etapa de referencia sirve para alimentar al convertidor logrando así una mayor estabilidad tomar en cuenta que Casa abierta ai tiempo La selección de la entrada analógica se realiza mediante la mitad del puerto C (PCO-PC3) cuyos valores son fijados en el programa, dando la opción de seleccionar el tipo de señal que se desea censar. 'ERFFiZ pB8 -1 I.47 48 I 1 9 16 pB2 20 5: PB3 ' 21 -4 E 24 1s Pg7 25 21 CONVERTIDOR W C D0 g; 23 pc4 PC5 PC6 D6 D7 IN7. g2SS PC7 $ 24 ENTRADAS ANAL OGICAS IN2 '-' IN3 m4 STFIRT l3 l2 IN1 O3 D4 3 FIO n il rm IN5 IN6 REF+ REFCLK iz l0 l0 DECOD IB ICADO R RELOJ 4 -0 RPBPRENCIA OSCILADOR Y VOLTAJES DE REFERENCIAS La unidad de temporización tiene como elemento fundamental al CI 74LS14 de intel, Su función principal e s proporcionar el reloj al convertidor ADC0808. La unidad de referencia utiliza elementos de bajo ruido como el CI LM308 al igual que el LM329 esta salida de referencia puede ser ajustada a un valor muy preciso utilizando la resistencia variable que también es de precisión. 74LS14 E 4 '1 :e% 9CLK 0.r= --I vcc 12v IK LM3i-9 REP t RBI o - Casa abierta ai tiempo SISTEMA DE ADQursIQoNDE DATOG Y CONTROLDE PRocE4soG - SOFTWARE DEL SISTEMA PROGRAMA PRINCIPAL: El programa del sistema tiene por nombre sistema.exe auxiliado por una librería sistema.h que permite utilizar funciones en cualquier parte del programa lo que permite que la programación sea mas fácil de manipular #include #include #include #include #include #include #include #include #include #include "sistema.h" <graphics.h> <time.h> <stdlib.h> <stdio.h> <dos.h> <conio.h> <math.h> <ctype.h> <string.h> void menu(char *opc) / / función del menú principal I cuadro(); / / función que dibuja un cuadro gráfico en la pantalla do I setcolor (WHITE); outtextxy(100,100," SELECCIONE EL MODO DE OPERACION DEL EL SISTEMA"); setcolor (LIGHTRED); outtextxy (100,200, a) .- CONTROL MAWAL") ; outtextxy(100,240," b) .- CONTROL AUTOMATICO"); outtextxy(100,280," c) .- SALIR"); *opc=toupper(getcheO 1 ; ). while(*opc!= 'A'&& *opc!='B'&& *opc!='C'); cleardevice ( 1 ; } Casa abiezta al tiempo SIsTEMADEAOQULSECIONDEDAMGYCONI;ROLDEPROCESOG I settextstyle (2,HORIZ_DIR,6) ; outtextxy(460,15," VALOR ENVIADO ' I ) ; enviapos (manda,62O,15,1) ; settextstyle(TRIPLEX-FONT,HORIZ-DIR, 1 ) ; 1 1 void main() / / programa principal del sistema total I int valor [ l O O O I ; int posy,xpos,ypos,i; int cantidad-recibe=lO; int retardo_envia=300; int retardo-recibe=500; int 1lave; int nun; int entrada; char tecla,nm-in; int recibido; inicializa-graficoso; / / función de inicialización gráfica presentaciono; / / función de presentación contenida en la librería sistem.h clave (&llave); if(llave==l) //Dos opciones t do I cuadro ( ; menu (&tecla)i switch (tecla) I case 'A': do t menumanual (&tecla); Casa abierta al tiempo S~D13ADQursIcloNDEDAToGYcoNTROLDEPRocEsoG switch (tecla) { case I l l : ventana ( ) ; outtextxy(100,100, VALOR A ENVIAR : ' I ) ; gotoxy(55,7); scanf (It%d", mum); outtextxy1100,300," VALOR ENVIADO ; envia-pos (nun,300,300,2000) ; break; case ' 2 ' : ventana ( ) ; setcolor (WHITE); outtextxy(50,80,'I SELECCIONE LA SEYAL A MONITOREAR : setcolor (RED); outtextxy(50,120, "a) .- TEMPERATURA 1 ' I ) ; outtextxy (50,140,If,) .- MOVIMIENTO " ) ; outtextxy(50,160,"c) INTENSIDAD DE LUZ ; outtextxy (50,180,I'd) - ALARMA DE PUERTA ' I ) ; ; outtextxy(50,200,"e).- VOLUMEN DEL TANQUE 'I) .. I') 'I) outtextxy ( 50,22O, It f) .- TEMPERATURA I1 ' I ) ; "); outtextxy (50,240,I 1 g ).- OSCILADOR LOCAL outtextxy(50,260,"h) .- CELDA FOTO ELECTRICA nun-in=toupper(getcheO ) ; switch (nu-in) ( case 'A':entrada=OxOO; break; case vB':entrada=OxO1; break; case 'C':entrada=OxOZ; break; case 1D1:entrada=Ox03; break; case 1Er:entrada=O~04; break; case 'F1:entrada=Ox05; break; "); 'I) ; case 'G':entrada=OxOG; break; case 'H':entrada=Ox07; break; 1 dibuja-ventana ( ) ; outtextxy(50,10Oiff NUMERO DE MUESTRAS : I f ) ; gotoxy (55,7 ; scanf ( I f %d",&cantidad-recibe); outtextxy(50,200,If TIEMPO EN milisegundo PARA TOMAR MUESTRAS : " ) ; gotoxy(70,13); scanf ("%d",&retardo-recibe) ; dibuja-ventana ( ; coordenadas( 1 ; recibe-guarda(entrada,cantidadrecibe,valor,retardo-recibe); grafica-onda ( ) ; break; 1 1 while(tecla!='3'); break; case 'B': ventana ( ) ; outtextxy(50,200," TIEMPO EN milisegundo PARA TOMAR MUESTRAS : "1; gotoxy(70,13) ; scanf ("%d",&retardo-recibe) ; POsy=7o ; while ( ! kbhit ( 1 ) { ventana-multiple ( 1 ; while (posy<460) { hora (10,posy); recibido=recibepos (130,posy, O x 0 0 , l ) decide (recibido,15,l); ; Casaabiertaaltiempo sLsTEMADEADQuIsICIONw1DATosYCONTROLDEPRWBCS void menumanual(char *opc) / / menú modo funcionamiento manual t cuadro ( ; do I setcolor (WHITE); outtextxy (100,100,"SISTEMA MANüAL") ; setcolor (YELLOW); outtextxy(100,200," 1 ) .- ENVIAR DATOS DE CONTROL"); outtextxy (100,240, 2 ) MONITOREAR LINEAS DE ENTRADA") ; outtextxy(100,280,If 3) .- REGRESAR"); .- *opc=toupper(getche( 1 1 ; 1 while(*opc!= Ill&& *opc!='2'&& *opc!='3'); cleardevice( 1 ; 1 void menu-monitorear(char *opt) / / función modo de funcionamiento automático t cuadro ( ) ; do I setcolor (WHITE); outtextxy(100,100, "SELECCIONE LA LA ENTRADA DE SEYAL A MONITOREAR"); setcolor(YELL0W); outtextxy(100,200," 1 ) .- ENVIAR DATOS DE CONTROL"); outtextxy(100,240,If 2) .- MONITOREAR LINEAS DE ENTRADA") ; outtextxy(100,280," 3) .- REGRESAR") ; *opc=toupper(getcheO 1 ; 1 while(*opc!= '1'&& *opc!='2'&& *OpC!='3'); cleardevice ( ) ; 1 void decide(int numero,int referencia,int manda) / / función que permite / / decidir el control de los procesos t if(numero>referencial Casa abi- ai tiempo SISTEMADEADQucTCIONDEDAToGYcoNTRoLDEP~ recibido=recibe-pos (220,posy, OxO1,l) ; decide ( r e c i b i d o , 1 0 0 , 2 ) ; recibido=recibe-pos (28O,posy, OxO2,l) ; decide ( r e c i b i d o , 254,3) ; r e c i b i d o = r e c i b e g o s (390,posyr OxO3,l) ; decide ( r e c i b i d o , 254,4) ; r e c i b i d o = r e c i b e g o s (480, posy, Ox04,l) ; decide ( r e c i b i d o , 100,l) ; r e c i b i d o = r e c i b e p o s (550, posy, OxO5,l) ; decide ( r e c i b i d o , 254,6) ; delay(retard0-recibe); pos y=posy+2 o ; i f (kbhit ( 1 ) break; i f (posy>43 O ) t i f (kbhit ( 1 break; posy=70; ventanamultiple ( ) ; 1 1 1 break; 11 while(tecla!='C') ; 1 else { cuadro ( ) ; outtextxy ( 1 0 0 , 1 0 0 , delay ( 1 0 0 0 ) ; 1 1 " CONTRASEYA INCORRECTA") ; casaabiertaaltiempo SISTEMA DE ADQuIsIcIoNDE DATOS Y CONTROL DE PROCESOG LIBREHA SISTEM H El programa principal del programa cuenta la librería sistema.h que permite que el programa sea más fácil del interpretar. L a librería se forma con las hciones más utilizadas en el sistema. #include <graphics.h> #include <time.h> #include #include #include #include #include #include <stdlib.h> <stdio.h> <dos.h> <conio.h> <math.h> <string.h> void coordenadas0 / / E"CION PARA DIBUJAR LAS COORDENADAS DE LAS GRAFICAS t int i,j; setcolor ( 6 ); rectangle (6,66,500, 445); setcolor ( 1 1 ); for ( j = i O O ; j<400;j+=iO) for(i=40;i<475;i+=3) //cuadro para la gráfica //ejes x ( putpixel (i,j ,1 1 ) ; / * Cambiar a color 11 * / 1 setlinestyle (DOTTED-LINE,O, 1 ) ; for(i=45;i<475;i+=10) //líneas punteadas / / ejes y I line (i,100,i,400); / * Cambiar a color 11 * / 1 setfillstyle(SOL1D-FILL,CYAN); setlinestyle(SOLiD~LINE,O,l); //cambiar setcolor ( 2 ) ; a lineas solidas Casa abierta ai tiempo S ~ D E A D Q u I s I C i ~ D E D A T ocoNTRoLDEPRocEsoG sY rectangle (500,66,635,96); //cuadro para poner datos floodfill (505,67,2); setcolor (11); outtextxy(S30,8O,"DATOS"); rectangle (500,96,565,126); //cuadro para poner time rectangle(565,96,635,126); //cuadro para poner valor ) ; outtextxy ( 52O I 1O 6I iiTIME" outtextxy(580,106,"VALOR"); line (40,300,475,300); / * Eje X * / line (45,100,45,395); / * Eje Y * / 1 void presentacion0 / / EVNCION DE PRESENTACION DEL SISTEMA { setbkcolor ( O ); rectangle (10,10,630,470); rectangle (20,20,620,460); settextstyle (TRIPLEX-FONT,HORIZ-DIR, 2 ) ; setcolor (YELLOW); settextjustify ( 1I 1 ) ; outtextxy(300,100," UNIVERSIDAD AUTONOMA METROPOLITANA"); setcolor (LIGHTRED); outtextxy (300,200,"SISTEMA DE ADQUISICION DE DATOS"); outtextxy (300,250,'' PROYECTO DE INGENIERIA 11"); setcolor (WHITE); settexts ty1e ( TRIPLEX-FONT ,HORI Z-DI R,1) ; outtextxy(300,340," ALUMNO : ' I ) ; outtextxy (300,360, Córdova Hernandez Ricardo"); delay (1000); cleardevice ( ) ; settextjustify(0,l); 'I 1 void cuadro 0 / / EVNCION PARA DIBUJAR UN CUADRO GRAFICO EN LA PANTALLA I cleardevice ( 1 ; setcolor (WHITE); rectangle (10,10,630,470); rectangle (20,20,62O,460); setcolor (LIGHTRED);1 casa abierta al tiempo void dibuja-ventana0 SISTEMA DE ADQUiSICiON DE DATOS Y CONTROL DE PROCESOG / / FüNCION PARA DIBUJAR VENTANA DE TRABAJO I char hora [40],fecha [401; cleardevice(); //borra la pantalla setcolor (15); rectangle (5,5,635,475); //cuadro de la pantalla setcolor (1 ; setfillstyle(SOLID-FILL,BLUE) ; rectangle (5,5,635,35); //barra de sistema de adquisición floodfill (6,7,1); setcolor (WHITE); settextstyle(TRIPLEX-FONT,HORIZ-DIR, 1 ) ; -strdate (fecha); outtextxy(520,15,fecha); outtextxy(l50,15," SISTEMA DE ADQUISICION DE DATOS"); setcolor ( 1 ) ; setfillstyle(SOLID-FILL,LIGHTBLUE); bar3d (5,35,210,65,2I 1 ) ; //cuadro para poner tiempo setcolor (4); -strtime (hora); outtextxy (120,50,hora); outtextxy(40,50," TIME: ' I ) ; setfillstyle(SOL1D-FILL,LIGHTBLüE); setcolor (1) ; bar3d(210,35,420,65,2,1); //cuadro para poner pto setcolor (4); outtextxy (340,50,"0x311"); outtextxy (260,50, PTO:( I ) ; setcolor (1); setfillstyle (SOLID-FILL,LIGHTBLUE); bar3dí42Ol35,634,65,2,1); / / cuadro para poner frecuencia setcolor (4); outtextxy (440,50,'I FRECUENCIA : ' I ) ; setcolor (15); setfillstyle (SOLID-FILL,BLUE) ; rectangle (5,445,635,445); floodfill (7,447,151; //barra del menú Casa abiata ai tiempo SiSiEMA DE ADQUISIQON DE DATOS Y C0"ROL DE PRocBsoG setcolor ( 14); outtextxy(60,460,"S: Salir"); outtextxy (250,460,'IR: Regresar"); outtextxy(450,460,"A: Ayuda") ; 1 void ventana ( ) I char hora[401 ,fecha[40]; cleardevice(); //borra la pantalla setcolor (15); rectangle (5,5,635,475): //cuadro de la pantalla setcolor ( 1 ; setfillstyle(SOLID-FILL,BLUE); rectangle (5,5,635,35); //barra de sistema de adquisición floodfill (6,7,1); setcolor(WH1TE); settextstyle(TRIPLEX-FONT,HORIZ-DIR, 1); -strdate (fecha); outtextxy(520,15,fecha); outtextxy(l50,15," SISTEMA DE ADQUISICION DE DATOS") ; setcolor ( 1 ) ; setfillstyle(SOL1D-FILL,LIGHTBLUE); bar3d(5,35,21OI65,2,1); setcolor (4); -strtime (hora); //cuadro para poner tiempo outtextxy(l20,50,hora); outtextxy(40,50," TIME: ' I ) ; setfillstyle(SOL1D-FILL,LIGHTBLUE); setcolor ( 1) ; bar3d(210,35,420,65,2,1) ; //cuadro para poner pto setcolor (4); outtextxy(340,50,"0x310"); outtextxy(210,50, PTO: SALIDA"); setcolor (1); setfillstyle(SOLID-FILL,LIGHTBLUE); bar3d(42OI35,634,65,2,1); / / cuadro para poner frecuencia setcolor (4); outtextxy (440,50,"PT0:ENTRADA OX311"); Casa abierta ai tiempo SISTEMA DE ADQuLsIcIoN DE DATOS Y CONTROL DE PRocEsoG setcolor (15); setfi11style ( SOLID-FILL ,BLUE ) ; //barra del menú rectangle (5,445,635,445); floodfill (7,447,15); setcolor ( 14); 1 void ventana-multiple0 / / VENTANA PARA LA ADQUISICION DE DATOS I cleardevice ( 1 ; settextstyle ( 2 ,HORIZ-DIR, 4); setcolor (YELLOW); outtextxy(10,30," SENSANDO DATOS DE LAS SIGUIENTES VARIABLES: ' I ) ; Presione una tecla para terminar rectangle (5,O, 635,475); //cuadro de datos ... setcolor (WHITE); rectangle (5,50,635,475); //cuadro de datos outtextxy (10,60,"HORA TEMPERATURA MOVIMIENTO OSCILADOR line (120,50,120,475); line (210,50,210,475); line (270,50,270,475); line (380,50,380,475); line (470,50,470,475); line (540,50,540,475); VOLUMEN ALARMA SENSOR DE LUZ l,); settextstyle(TRIPLEX_FO"ORIZ_DIR,1); 1 void envia-pos(int valor,int x,int y,int retardo)// FUNCION PARA ENVIAR DATOS I int ptoprogram=Ox313; int ptoout=Ox310; int signo,puntdec; //no se usan char *val; //apuntador de carácter para convertir el valor enviado / / en caracter / / envia el valor 0x82 para programar e l 8255 outportb(ptoprogram,Ox82); / / pto A:salida pto B: entrada pto C: salida outportb (ptoout,valor) ; / / envia el valor de control al pto A val=fcvt (valor,O, &puntdec,&signo); outtextxy(x,y,val); delay(retard0); Casaabicrtaaltimpo void cuadro-datos SISTEMA DE ADQUISICIONDE DATOS Y CONTROLDE PRocEsoG () { setcolor (14 ; rectangle (501,126,634,445); //cuadro para los datos floodfill (510,130,14); 1 void recibe-guarda(int entrada,int numdato,int dato[lOOO],int retardo) { / / FUNCION PARA GUARDAR LA INFORMACION / / RECIBIDA EN DISCO int ptoprogram=Ox313; int ptoin=Ox311; int ptocontrol=Ox312; int puntdec, signo,i=O; int posy=150; char *val; char hora [ 40I ; outportb (ptoprogram,0x82); outportb (ptocontrol,entrada); setfillstyle(SOL1D-FILL,BLACK); cuadro-datos ( 1 ; while (i<=numdato) { ' dato [ il =inportb (ptoin); val=fcvt (dato[il ,O, &puntdec,&signo); outtextxy(600,posy,val) ; -strtime (hora); outtextxy (505,posy,hora); posy=posy+20; delay(retard0); i++ ; 1 1 // A abiertaal A casa tiempo SLsTEMADEADQuIsIcIoNDEDAMGYcoNTRoLDEPRocEsoG void hora(int posx,int posy) / / FUNCION PARA ADQUIRIR HORA DEL SISTEMA t int puntdec, signo,i=O; char *val; char hora[401; settextstyle(2,HORIZ_DIR,5 ) ; -strtime (hora); outtextxy (posx,posy,hora); settextstyle (TRIPLEX-FONT,HORIZ-DIR, 1 ) ; 1 int recibe-pos(int posx,int posy,int ent,int retardo) { int ptoprogram=Ox313; int ptoin=Ox311; int ptocontrol=Ox312; int valor; char *val; int puntdec,signo; settextstyle(2, HORIZ-DIR, 5 ) ; outportb (ptoprogram,0x82); outportb (ptocontro1,ent); valor=inportb(ptoin); val=fcvt (valor,O, &puntdec,&signo); outtextxy (posx,posy,val) ; delay(retardo1; settextstyle(TRIPLEX-FONT,HORIZ-DIR, 1); return (valor); 1 void envia(int valor,int retardo) I int ptoprogram=Ox313; int ptoout=Ox310; outportb (ptoprogram,0x82 ; outportb (ptoout,valor) ; delay(retardo1; Casa abierta ai ticmjm SISTEMADEADQulsIQoNDEDAToGY~~DEPRocEsoG / * Se inicializan los gráficos * / int inicializa-graficos0 I int gdriver=DETECT, gmode,errorcode; detectgraph (&gdriver,&gmodel ; initgraph (&gdriver,&pode,"C:\\tc\\bgi"); errorcode=graphresult ( 1 ; / * Código de error=resultado de inc.*/ / * Si código de error != O * / if ( errorcode != grOk ) { printf ("\nError de inicialización en gráficos"); grapherrormsg (errorcode)) ; / * Mensaje de error * / printf (rf\n%slt, getch ( 1 ; /* en gráficos */ return (O); 1 return (1); / * Regresa 1 de inicialización * / 1 void clave(int *bandera) / / función para I char palabra [ Z O I int intentos=O; cleardevice( 1 ; do asegurar sistema con clave de acceso ; 1 cuadro ( ) ; outtextxy (100,100," INTRODUZCA CONTRASERA 'I) ; gotoxy(55,7); gets (palabra); intentos++; 1 while (intentos<4 & & strcmp (palabra,"proyecto")) ; if (intentos>3) *bandera=O; else *bandera=l; 1 Casa abierta ai tiempo CORRIDA DEL PROGRAMA PRINCIPAL PRESENTACIÓNDEL PROGRAMA 1. .. . . ALUMNO: Cbrdova Hernandez Ricardo 9 SISTEMA DE ADQuIsICiON DE DATOS Y CONTROLDE PROCEW6 VENTANA DE ENTRADA PARA CONTRASEÑA DEL SISTEMA SISTEMA DE SEGURIDAD xxxxxxx Casaabiataaititmpo SISTEMA DE ADQuIsIcIoN DE DATOS Y CONTROL DE PROCESOG SELECCIONE EL MODO IIE OPERAUON DEL EL SIsTEEdA Casa abierta at tiempo SISTEMADE ADQuIsIcIoN DE D A W Y CONTROL,DE PROCESOG VENTANA PARA ANOTAR EL TIEMPO EN QUE SERAN TOMADAS LAS MUESTRAS TIEMPO EN m i l i s e m PARA TOMAR MUESTRAS : 1000 SISTEMA DE ADQuIsIclouDE DATOS Y CONTROL DE PROCESOG casaabiercaaltiempo MODO DE O P E R A C I ~ NDEL SISTEMA AUTOMATICO: Corrida prueba del programa principal para comprobar la lectura de datos y niveles de voltajes a la entrada de la tarjeta de adquisición, en esta corrida se comprueba la entrada y salida de las variables con un tiempo de muestre0 de 1 segundo por lo que está prueba resulta favorable asegurando así el buen funcionamiento del programa y tarjeta, los valores mostrados a continuación son lo pronosticados cuando no hay conectado ningún subsistema a la tarjeta, de igual forma la salidas de control fueron recibidas conforme cada funcionalidad de los subsistemas. SENSANW DATOS HORA 12:42:50 12: 42:51 12:42:53 12: 42:54 12: 42:55 12:42:56 12:42:57 12:42:58 12: 42:59 12:43:00 12:43:01 12:43:02 12:43:03 12:43:04 12: 43:05 12: 43:06 12:43:07 12:43:08 VALOR ENUIFtOü DE LAS SIGUIENTES UARIhBLEC: TEMPERñTURfi FiLARrlñ 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 Presione una tecla para terminar HOUIHIENTO 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 OSCI 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 m UOLüNEN 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 ... SEHSOñ DE 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 1 LUZ Casa abierta ai tiempo SISTEMA DE ADQuIsIcToNDE DATOS Y CXMTROL DE P VENTANA DE L MODO DE OPERACI~NMANUAL 1): ENVIAR D A X E DE CONTROL 2 ) - MOMTOREAR UNEAS 3).- REGRESM DE ENTRADA m Casa abierta ai tiempo SISTEMA DE ADQUIsICiONDE DATOS Y CONTROL DE PRocEsoG MODO DE OPERACI~NMANUAL SELECCI~N DE VARIABLEDE ENTRADAAL SISTEMA SELEOCIONE LA S&AL A MONITOREAR : Casa abierta al tiempo MONITOREO DE DATOS EN MODO DE OPERACI~NMANUAL ...".............................................................................................................................................. . . ,.............. . . . . ................,.. . . . ...,......... . . . ....... . . .. .....,.................. .....<..... ,..... ....................... , . . . O I I I . I < I . I . . . . . . . < . . I ( .. . . .. . . .. . . .. . . .y . . . I , . . . , , . < I < . . . . . . . I . . I . . . . , . . . . I . I , . . , . c . . . C.".. ....................... . . . . . ............ . . . ................... . . ....... ..-............. I ... . .. *................,............_.f......,............... . . . . . . . . . . . . . "....... ................... ........ . .. .... .....,...... ...........,........... ..,...........- ........"....................................................... .............,......... ... ...... , ..... >... ,,..~..,... . . . . . ................. . . . . .)......... . .......-..... . . . . ................,.. . . . . . . ................. . . . . . . ........ ..... (....._..(......... ........ . ",.................. , ..,... ,.., ... <.. . ............ . . . ".......................... . . . . . . . .. ..... . .......-...... . . . . . . . . . . . . ........ . ........... .\.....*.. .....................,.. . . . $..'..,..* . . ....,.. .. ..,.." . . . . . . . . . . . . . . . . . . . . . . . . . . .... .. ..I. . . . ..,... ........ ........,.............,.........,..... . * ........-.. ...... ..,......... . .. ..,..<.. ..,... ..,...\.. . ......................... . . . ..,.. . . .,...... ."... . ...,...,..,.. , . .......... ....... . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , . . . . . . ............ * ...........-............ . . .. ,. ...,.... ......."............. ........................... I , . . I I I . . .....s.. , < I , I - , . I . I I > I , . l . . , . ' . . <. , . . < . . . I I I ..A . . . I . < . . . I ~ . , . . < < I . , I I . . . , I . . . , . < , . . .I . . . . , I . . . . 1 1 . I I , . > . . 1 . . . , . . * . . I . . i 1 1 . I s . . , ..A. i i . . ..A. . *..a < I I . . . I I . < l l l , 1 1 1 . I I . I . . , . I , . , . . . , I I I . I , , , . l f ..hi.... l.., ~ . . I I , I I . . . I . 1 I . I . 1 e.., I I . I . r. . . . I . .*..A ..Ii .& ..&..I. L. , i . < 1..1..*..\ , ii,...<.i#..I I . < . O 1 0 , , , , < , I . . 0 . , , l 1 . . , . ,..,..I.. 1 . I..,. . I . . , %..I..,.. h . . , . . , . . * . I..h..&..l.. . . , . . . l I O l . . I < . . I ~ , . . . . I I * . . I I I < . I..., ..I..,..., . . l . . h . . \ . . l . < . I.., . . I . . . . . .I. . h i . . . . . . . . * , < . , I . . . I . . .I <- ... * I l I . . .1...1..1..~...,..1..l...,. .....I.. , < . .I.* I < I . . ~ #..Ai. I . . L . . . . . , I . . . . ! . . + . . L I,.,...,. . < , . I i . r t i i l . . D . . . ~ . . ~ . . ~ , . . < . . ~ . . ~ . . ~ . . ~ . . ~ . . . ~ . . l , . , . . . ~ . . ~ . . J . . . < . . l . . ~ . . . ~ . . l . . ~ . . . ~ . . l . ~ ~ . . . ) . . ~ . . ~ . . ) . , ~ . . ~ . . . <I. .. . . % . , . . I I . , I . . I I . I < . . , , , . . . . ,...,..I . . , . I I . . I , . , . . ,..I , , . < . I . . I I . . . < . I. . I . . . . . . I . . A . < I I I < . I I . .I..,.. . , < , . I J. . , 1 , , , , , , I ............................... + ..,..,...).. ..........._.................. ........................ ..........._.... .... .. ............................................................ ..................................... . . . . . . ._. . ... . ....._. . ....... . .._..... . . ..._. . ............ . . .... .,.. ....... ........" ........ . ............ *..... "...................,....... ........... "........ ........ ................................ ..,..~..,...,..,..,...,..,..,...*.. ........ ...................................... * . . I 1 I . , . . . I . . . I . . . < . I..,...,..,..,... *..o I I , * . . I . . I . I . . I . . . I . I I ..I...,.. I , , , .I..,...,..,.. I . . ~ 1 . 1 < . , , . h , . , . < . . . , , I , , , , , . . , , . . I , . ~ I I . , . , . . . . , , . . . . , , . . , . . i ~ . . J . . . ~ . . ~ . . ~ . . . ~ . . 1 . i ) . . . 1 . . 1 . . * . . . ~ . . ~ . . , . . . ~ . . ~ . . ~ . . . ~ . . ~ . . , . . . ~ . . ' . . , . . . ~ . . ~ . . , . . . ~ . . ~ . . , . . . ~ . . ~ . . ,.I.. ...~..~..,..~. . 1 . ... . l , . 1 . ~ 1 . . . . . . , . , > I . < I . I I < > . I . . < . . I < . . 1 . 1 . . . . . ~ . ~ I C... I . . . I I . . . . . . . . . . I . , . . . I . . ,.... ................................................ I . I . 1 . . 1 . 1 , . . , . , . , I . , . , , . , , , . _ < . . . . . . . ..~,.~..A..~..~..I~... .~..~ I..~. ...~ I..l. ..~,< ..~.. ,~..I ~... I~..~ ,..~I ...~I..~. I.~.. ,.~. ..l.. ,~.., .~.. I~..~ < .. I . I I . I . I . . I < , , < I . . . I I I . I I . I I . . < . 1 . . 1 < 1 . . - . . . . . . . . . . 1 < . . I , I . I I . . . ................................................. , . . , . , . , , . , . . . , < . , . ...................................... "........... .,.."...........T. ....-..... , , I I . , . I , . . , . O I I I . I , , , ........................................... S: Salir RrRegresar A! Ayuda 25E 25E 25E 25E 255 25E 25E 255 255 255 255 B IB LI O G R A F IA: ARQUITECTURA DE COMPUTADORAS MORRISMANO ED. PRE"ICE HALL COMPUTER ORGANIZATION AND ARQUITECTURE JOHN P. HAYES ED. PREN'TICE HALL LOS MICROPROCESADORES DE INTEL BARRY B. BREY ED. PRENTICE HALL MANUAL DE REFE3ENCiA DE TURBO C ++ MANUAL DE ESPECIFICACIONES TECNICAS NATIONAL MOTOROLA ,INTEL, SEMICONDUCTOR,