/CÓRDOVA HERNÁNDEZ RICARDO

Anuncio
<’
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,
Descargar