View
5
Download
0
Category
Preview:
Citation preview
D edicado a mis mamá
Amparo, a mi hermano
H ector Iván; y a mis amigos
por su apoyo inc ond icional.
AUTOMATIZACIÓN DE UN SISTEMA DE DOSIFICACIÓN DE LÍQUIDOS
VIVIAN R ENAT A BASTIDAS MARTÍNEZ
UNIVERSIDAD DE LOS ANDES
F ACULTAD DE INGENIERIA
DEPARTAMENTO DE INGENIERIA ELEC TRICA Y ELECTRONICA
BOGOTA, D.C.
2006 - I
AUTOMATIZACIÓN DE UN SISTEMA DE DOSIFICACIÓN DE LÍQUIDOS
VIVIAN R ENAT A BASTIDAS MARTÍNEZ
Proyecto de Grado para op tar al título de
Ingeniera Electrónica
Director:
Iván Castillo Contreras
Ingeniero Electrónico
UNIVERSIDAD DE LOS ANDES
F ACULTAD DE INGENIERIA
DEPARTAMENTO DE INGENIERIA ELEC TRICA Y ELECTRONICA
BOGOTA, D.C.
2006 - I
IEL2-I-06-08
4
AGRAD ECIMIENTOS
El autor agradece a :
Iv án Castillo Contreras, ingen iero elec trón ico y prof esor, por su direcc ión, apoyo y ayuda a lo largo
de es te proyecto.
A mis compañeros y amigos Germán Torres, Jesús Caro y Ja ime Ramírez, por todo su apoyo y la
ayuda prestada durante e l p royecto.
IEL2-I-06-08
5
C ONTENID O
INTRODUCCIÓN..................................................................................................................................................................................9 OBJETIVO PRINCIPAL..................................................................................................................................................................11 OBJETIVOS ESPECÍFICOS.......................................................................................................................................................12 1. DISEÑO.........................................................................................................................................................................................13
1.1 DISEÑOS PRELIMINARES........................................................................................................................................13 1.2 CARAC TERÍSTICAS DEL BOTTLETOP BURET MODEL 25................................................................15
1.2 .1 Generalidades........................................................................................................................................................15 1.2 .2 Principio básic o de f uncionamiento...........................................................................................................16
1.3 DESCR IPCIÓN DEL PROCESO.............................................................................................................................19 1.4 DISEÑO DE INGEN IERIA ...........................................................................................................................................21
1.4 .1 Diseño de l hardware ..........................................................................................................................................21 1.4 .2 Diseño de l s of tware............................................................................................................................................30
2. IMPLEMENTACIÓN...............................................................................................................................................................45 1.5 PSoC ........................................................................................................................................................................................45 1.6 ...........................................................................................................................................................................................................45 1.7 5.2 ADAPTACIÓN DEL BOTTLETOP BURET................................................................................................45 1.8 5.3 IMPLEMENTAC IÓN DE LOS SUBSISTEMAS.......................................................................................48 1.9 5.4 RESU MEN....................................................................................................................................................................49
6. PRUEBAS Y VALIDACIÓN....................................................................................................................................................50 1.10 6.1 PRUEBAS DEL SOFTWARE Y HARDWARE...................................................................................50 1.11 6.2 PRUEBAS DE VERIF IC ACION DEL SISTEMA...............................................................................54
8. PRESUPUESTO...........................................................................................................................................................................56 CONCLUSIONES ..............................................................................................................................................................................57 BIBLIOGRAFIA Y R EFERENCIAS..........................................................................................................................................58
IEL2-I-06-08
6
LISTA DE ANEXOS
Anexo A. Cod igo PSoC............................................................................................................ 59
Anexo B. Cod igo Formularios - Microsoft Visual Bas ic 6.0......................................................... 63
Anexo C. Cod igo Module - Micros of t Visual Bas ic 6.0 ............................................................... 69
IEL2-I-06-08
7
LISTA D E TABL AS
Tab la 1 . Características e léctricas del CNY70........................................................................... 26
Tab la 2 . Conf igurac ión de las entradas y salidas del L293B....................................................... 28
Tab la 3 . Presupuesto de adqu is ición del s istema....................................................................... 56
IEL2-I-06-08
8
L ISTA DE FIGURAS
Figura 1. Metodolog ía de Trabajo.............................................................................................................................................10 Figura 2. Alternativa 1 de diseño...............................................................................................................................................13 Figura 3. Alternativa 3 de diseño...............................................................................................................................................14 Figura 4. Alternativa 4 de diseño...............................................................................................................................................14 Figura 5. Bottletop Buret de Brinkmann................................................................................................................................15 Figura 6. Componentes del Bottle Buret Model 25.........................................................................................................16 Figura 7. Purga de aire....................................................................................................................................................................17 Figura 8. Proceso de dosific ación.............................................................................................................................................17 Figura 9. Curva de las Cantidades Dosif icadas en conteo.........................................................................................18 Figura 10 . Curv a de las Cantidades Dos ificadas en el tiempo.................................................................................19 Figura 11 . Desc ripc ión de l p roceso..........................................................................................................................................20 Figura 12 . P&D del proceso..........................................................................................................................................................20 Figura 13 . Sistema completo defin ido como ca ja negra ..............................................................................................21 Figura 14 . Diagrama de P irbhay del sistema......................................................................................................................22 Figura 15 . Visualización de la in te rfaz con el usuario....................................................................................................23 Figura 16 . Imagen v is ua lizada por e l usuario de la selección de c antidad.......................................................24 Figura 17 . Sensor Óptico CYN70..............................................................................................................................................24 Figura 18 . Dis ipación de Potenc ia del CNY70...................................................................................................................25 Figura 19 . Circu ito implementado para e l CNY70...........................................................................................................25 Figura 20 . Imagen v is ua lizada por e l usuario del estado de l proceso.................................................................27 Figura 21 . Circu ito de montaje del L293B............................................................................................................................28 Figura 22 . Diagrama interno de un MC78xx.......................................................................................................................29 Figura 23 . Circu ito de montaje del MC7805 y el MC7812 ..........................................................................................30 Figura 24 . Esquema de la Norma GEMMA .........................................................................................................................30 Figura 25 . Proced imiento de f uncionamiento en norma GEMMA ..........................................................................31 Figura 26 . Proced imiento de paro en norma GEMMA..................................................................................................31 Figura 27 . Proced imiento de f allo en norma GEMMA ...................................................................................................32 Figura 28 . Diagrama de bloques del proceso en el PSoC..........................................................................................33 Figura 29 . Implementac ión f inal de bloques en e l PSoC.............................................................................................36 Figura 30 . Diagrama de pines de PSoC................................................................................................................................36 Figura 25 . Sistema de control de dosif icac ión de líqu idos..........................................................................................45 Figura 26 . Adaptación f ísica del volante de la planta....................................................................................................46 Figura 27 . Sistema de adaptación del vo lante con el motorreductor....................................................................46 Figura 28 . Ensamble de l tanque de almacenaje con la planta (modelo)............................................................47 Figura 29 . Ensamble de l tanque de almacenaje con la planta (real)....................................................................47 Figura 30 . Modelo genera l del s istema ..................................................................................................................................48 Figura 31 . Implementac ión ob tenida del sistema.............................................................................................................48 Figura 32 . Sistema de a limentac ión.........................................................................................................................................49 Figura 33 . Sistema de a limentac ión de l sis tema..............................................................................................................49 Figura 34 . Error de inicialización del proceso.....................................................................................................................50 Figura 35 . Se lecc ión y apertura correcta del puerto seria l.........................................................................................51 Figura 36 . Se lecc ión incorrecta de la c antidad a dosific ar..........................................................................................52 Figura 37 . Av iso del estado actual del proceso.................................................................................................................53 Figura 38 . Fina lización correc ta del proceso.....................................................................................................................53 Figura 39 . Cantidad dosificada vs. Tiempo del proceso r equerido.............................................................54
IEL2-I-06-08
9
INTRODUCCIÓN
En la actua lidad, en las industrias colombianas y ex trajeras, se ev idenc ia un claro problema en
cuanto a la dispensac ión y env asado de produc tos líquidos. El a lto índic e de enf ermedades
presentado en los operarios de está área, el incorrecto manejo de materias primas y la inexacta
cantidad f ina l dosif ic ada en a lgunos sistemas genera desconf ianza en los sistemas actua les
utilizados en los d iferentes campos de la industria [1 ].
En procesos actuales se ha d iseñado e imp lementado s is temas d ispens adores de c af é y gaseosa,
env asado de ac eite, agua, cerveza y para procesos químicos. PETRECO, EFD Company ,
DOSATRON, TECNUM, EUROTEK AUTOMATIZACIÓN son algunas de estas empresas que han
diseñado y of recen es tos sistemas [2].
En Colombia, a lmacenes de c adena, empresas de café y restaurantes de comidas rápidas poseen
actua lmente sistemas dos ificadores de líquidos en sus procesos . ÉXITO y HOMECEN TER
adquirie ron un sistema de dos if icación para la mezcla de pinturas. Por med io de un sof tware
especia lizado en donde el clien te s elecciona el c olor deseado, y un sistema electro-mec ánic o de
combinac ión de bombas y medidores de f lujo se efectúa la dos if icación ex acta del co lor. Su
inconvenien te, el alto costo de adquisición . Por o tro lado, NESC AFE posee un s is tema de
dos ificación para la producc ión de dife rentes pres entaciones de café . Se dosific a productos
lácteos, agua, esencias y tinto, con la f inalidad de obtener la mezc la c orrespond iente al producto
seleccionado. Su inconven iente, la inexactitud de las cantidades dosif icadas de cada produc to .
McDonalds tiene un s istema dis pensador de gaseos a automático. Su inexactitud en la c antidad de
gas eosa dosificada y su alto costo de adqu is ición hace de este sis tema una solución poco v iable
para las pequeñas y medianas empresas.
Todos estos s istemas presentan una soluc ión aceptab le a la prob lemática, s in embargo,
des pliegan d if icu ltades e inconv enientes que los hacen poco adsequib les. El alto costo de
adquisición y la inexactitud en la c antidad final dosif icada de algunos de es tos sistemas son los
principa les problemas que aún no han s ido so lucionados, además de ser necesaria en a lgunos
procesos la dos ificación de varios productos para ob tener el producto f inal [3 ].
IEL2-I-06-08
10
Es por esta razón, es te proyecto consis te en el desarro llo de un prototipo de la automatización del
proceso de dos ificación de vo lumen en mililitros de líqu idos, teniendo en cuenta una so lución a los
problemas anteriormente ex puestos . Este prototipo, a futuro, podrá ser utilizado con f ines
indus triales, c omo en el área de la f armacéutica, perfumerías, o refinerías.
Este proy ecto esta orientado a l diseño, iniciando c on una etapa de investigac ión de procesos de
dos ificación actúa les, de los cuales s e partirán para generar un dis eño v ersá til [5 ]. Posteriormente
se in icia con el diseño graf ico preliminar y la selección del p roceso a imp lementar. Una vez
seleccionado e l proceso a implementar, se realizara el d iseño de ingeniería de l hardware y
sof tware. Consec uentemente se realizara la implementac ión. Finalmente se rea lizarán las pruebas
y validación de l p ro totipo . Es to deberá lograrse por med io de una metodo logía de d iseño [4] que
cumpla las ex pectativas .
El s iguien te esquema describe claramente los pasos que se s iguieron a lo largo del p royecto y los
cua les se estud ian detenidamente a lo largo de es te doc umento.
Figur a 1. Metodología de Trabajo
A través de este documento se ex plica cada una de las etapas del proyecto, de manera que e l
lector pueda comprender cada una de las ramas de la ingeniería que influyeron en el d iseño de
este sistema y de igual fo rma, pueda obtener sus propias conclus iones sobre la ef ectiv idad y
aplicabilidad de l mis mo.
IEL2-I-06-08
11
OBJ ETIVO PRINCIPAL Esté proy ecto busca desarrollar una automatización en un sistema de dosif icac ión de v olumen en
mililitros de líqu idos . El prototipo será versátil, económic o y ef ectiv o para soluc ionar la problemática
de dosificac ión de líquidos que se presenta actua lmente tanto en las industrias colombianas como
extranjeras, apoyado en conocimientos de Ingeniería Electrónic a e Ingeniería Mecánica , haciendo
uso de herramientas de programación c omo Visual Basic, aprov echando tecnologías actúales a las
cua les tenemos acc eso como el circuito in tegrado PSoC y sis temas de giro c ontrolados
electrónicamente.
IEL2-I-06-08
12
OBJETIVOS ESPECÍFICOS
Para alcanzar el ob je tiv o plan teado previamente, es necesario cumplir cada uno de los s iguientes
propósitos:
• Conocer la importancia de las v ariables presentes en el tema de dosif icac ión de líquidos y
a partir de esto, def inir las que s e van a us ar c omo base para el desarrollo del contro lador.
• Comple ta adquisición de datos de un sistema de dosif icac ión con la ayuda de instrumentos
de medic ión, para que, luego de caracterizar y comparar con datos f uturos, pueda
eva luarse la efectiv idad del sistema.
• Mode laje, simulac ión, diseño e implementac ión de l c ontrolador del sistema.
• Diseño, implementación, calibrac ión y validación del s istema de giro, necesario para e l
mode la je y diseño del controlador.
• Acoplamiento e in tegración del sistema de contro l y del s istema de g iro en integración en
caja negra para pruebas.
• Diseño e implementac ión de l sis tema de inte rf az con e l usuario.
• Acoplamiento del sistema de control (caja negra) y e l s is tema de in te rf az con e l usuario .
• Adquisición de nuev os datos para eva luar la ef ectividad de l sis tema de control.
IEL2-I-06-08
13
1. DISEÑO
2.1 DISEÑOS PRELIMINARES Durante la búsqueda y se lecc ión de la soluc ión más viable se encontraron 5 pos ibles d is eños, cada
uno de ellos f ue surgiendo a partir de los inconv enientes y p roblemas presentados en los sistemas
actua les y f inalmente se e ligió la soluc ión que cumple con las expectativas de clien te .
In ic ialmente , se buscó una so lución empleando una bomba dosif ic adora. E l proces o de dosif icac ión
se realizaba por medio de una base giratoria conec tada con la bomba dosificadora (v er Figura 2).
Este diseño pres entaba el inconven iente de la construcción y contro l de l giro y s uministro de
productos , además de un problema de san idad, y del elev ado cos to de adquisic ión de la bomba
dos ificadora. Todo esto hac ia que esté sis tema no fuera versátil y de c os tos ba jos.
Figur a 2. Altern ativa 1 de diseño
Debido a los inc onv enientes encontrados en e l primer diseño, se c ambia este sistema giratorio y se
bos que ja uno en donde los tanques se enc uentren conec tados a una tubería principal (ver Figura
3).
IEL2-I-06-08
14
Figur a 3. Altern ativa 3 de diseño
Tanto en la alte rnativa 2 c omo en la a lte rnativ a 1, se esta presentando un problema de sanidad, ya
que por la misma tubería f luyen líqu idos dif erentes los c ual podría llegar a contaminar las
cantidades aun a lmacenadas y el producto final. Además, se puede pres entar un problema de
represamiento de produc tos en la tubería , lo c ual podría dar como resultado una incorrecta
compos ic ión del producto fina l. Adic ionalmente, en a lgunos proc esos es necesario realizar la
dos ificación para e l envasado de mas de un recipiente y deb ido al d is eño de la tubería no se
tendría la seguridad que c ada uno de los recipientes s e llenara con la cantidad exac ta de cada uno
de los produc tos, por lo que s eria nec esario inc luir un medidor de f lujo en la boqu illa de expulsión ,
lo cual elevaría considerablemente los costos de l sistema, teniendo en cuenta que estas
alte rnativas fueron diseñadas y planeadas c on bombas dosif icadoras.
Se buscó una alterna tiva que reemplazara las bombas dosif icadoras , y un nuev o diseño para la
tubería, que f uera de menor costo y que lograra realizar la misma ta rea. Se determinó rea lizar la
dos ificación de cada uno de los productos independientemente, de esta forma ev itábamos
problemas de contaminación de produc tos, represamiento de productos en la tubería y una
cantidad de env asado incorrecta. De igual forma, se reemplazaron las bombas dos if icadoras por un
sistema de vá lv ulas de f lu jo y med idores de flujo.
Figur a 4. Altern ativa 4 de diseño
Aunque está alte rnativa so lucionada los problemas de sanidad y el de una inc orrecta cantidad
dos ificada, aun no reducía los costos de adquisic ión. El medidor adec uado para la unidad de
medida nec esitada, mililitros, pos ee un s istema muy especializado de medida, y además es un
IEL2-I-06-08
15
instrumento de importación, por lo que su valor en el mercado es muy elevado, y por lo tan to esta
alte rnativa f ue de igua l f orma descartada.
Durante la búsqueda de los instrumentos adecuados para el p roceso, encontramos la ex istenc ia en
el merc ado un instrumento , el Bottle top Buret Mode l 25 de Brinkmann [5], que cumplía con las
nec esidades y caracterís tic as requeridas en el proyec to . Su costo de adqu is ición es
considerablemente menor al de las otras alte rnativas eva luadas, y una v ez analizado su principio
bás ico de f uncionamiento, encontramos que este era una s oluc ión aceptable y adecuada para ser
utilizado en la imp lementación del p ro to tipo. Pres entaba una soluc ión correc ta a l prob lema de
san idad, al de repres amiento de productos y adicionalmente s u adaptac ión e implementación es
más senc illa y menos cos tosa.
Figur a 5. Bottle top Bur et d e Brin kmann1.
2.2 CARACTERÍSTICAS DEL BOTTLETOP BURET MODEL 25
1.1.1 Genera lidades
A continuac ión se presenta inf ormación re levante sobre es té Bottletop Buret Model 252:
Índice de dispensado : 2,500 µl por rotación
Rango de l Display : 0.01 ml hasta 99 .9 ml
Coeficiente de Variación : ±0 .2%; ±50 µl
Imprecisión : ≤0.1%
Rango de Temperatura : 15°C hasta 40°C
Este instrumento es utilizable para la mayoría de los líqu idos , con las s iguien tes excepciones : 1 To mada de [6 ] 2 Información p rovenien te de [7]
IEL2-I-06-08
16
Soluc iones ác idas f luorh ídricas.
Soluc iones que tienden a cristalizars e o que contienen o forman partículas sólidas.
Sus tanc ias inestables que reaccionan c atalític amente con e l irid io del platino (e .g. H 2
O 2).
Líquidos que atacan el c rista l del borosilic ate, PFA, ETFE, PTFE, iridio de l platino ,
FEP.
Soluc iones inorgán icas oxidables que pueden prec ipita r los óx idos de metal (e .g .
reactivo del biuret).
El Bottletop Buret posee una cánula de salida te lescóp ic a regulab le de 142 a 220 mm
horizontalmente y de 10 a 200 mm verticalmente. Esta d iseñado para colocar s obre f rascos y
permite ser girado 360° sobre e l f rasc o para su ajuste . Es de us o manual y f unciona con 2 baterías
AA estándar, las cuales son suf icientes para dosif icar aproximadamente 4.5 litros de líqu ido.
Figura 6 . Co mpon entes d el Bottle Buret Model 25
1.1.2 Principio básico de f unc ionamiento
Antes de iniciar cua lquier p roceso de dos ificado es necesario tener en cuenta la sigu iente
recomendación del f abric ante. Es necesario purgar el a ire , hasta que e l cilindro y la cánula de
valoración estén libres de burbu jas. Para esto se rea liza un llenado del aparato , la ve locidad de g iro
del volante debe ser moderada, evitando la f ormac ión de burbujas. U na vez es te lleno, s e realiza
IEL2-I-06-08
17
una compens ación de la holgura en un rec ip iente dif erente al del proc eso, s e liberan gotas para
verific ar la no exis tencias de burbujas.
Figura 7 . Purg a de air e
Ya realizada la purga de aire, e l p roceso de dosif icación es in iciado al g irar el volante del Bottletop
Buret. El líquido es abs orbido de l tanque de almacenaje por una v álvula succionadora . El líqu ido
viaja a trav és de la tubería interna, y el s is tema de medición , el c ua l tiene un embolo que es
controlado por el giro del v olante, mues tra al usuario por medio del d isplay, la cantidad dos if icada
has ta e l momento. S imultáneamente, al g iro de l vo lante, la vá lvula ey ectora v a expulsando la
cantidad de liqu ido med ido ac tualmente por el embolo y mos trado en e l display .
Figura 8. Proceso de dosificación
IEL2-I-06-08
18
Esté sistema de dosif icac ión, al igual que o tros sistemas también puede llegar a pres entar errores
en el volumen dosif icado. Estos pueden pres entarse durante la titu lación de líquidos con una a lta
presión del vapor o c on una densidad considerablemente dif erente a la del agua, por lo que los
líqu idos ha utilizar deben c umplir las carac terís ticas mencionadas anteriormente. De igual fo rma,
también puede presentarse errores c ausados por en trada de aire en el sistema, para lo cual es
nec esario rea lizar a l inicio del p roceso una purga en el sistema y de igual forma, se debe procurar
mantener e l tanque de almacenamiento lleno.
Antes de empezar con e l diseño electrónico en sí, era v ital hacer una caracterización de l
comportamiento de la planta para la cual se está diseñando el s istema; es por esto que se
programaron mediciones en d iferentes cantidades, para vis ualizar el c omportamiento de las
variables re levantes .
Giro de l Volante
0
20
40
60
80
100
120
0 5000 10000 15000
Numer o de Ran ura s
Mi l il i tr os
Figura 9 . Curva de las Cantidades Dosificadas en con teo
En la figura 9 , se aprec ia las cantidades de mililitros dos ificados realizando en conteo de ranuras
nec esarias. Se observó un patrón s imila r en cada una de las cantidades, se realizaron 40 pruebas ,
en donde aproximadamente 1ml equ iv alen a 150 ranuras c ontadas, y por ende, la lectura y e l
control de este conteo es un f actor muy relevante a la hora de escoger los componentes de l
sistema.
IEL2-I-06-08
19
De igua l f orma, en algunos cas os se presenc ió un porcentaje de error considerable, en cuanto a l
volumen dosific ado ten iendo en cuenta el número de ranuras contadas, los c uales revelan la
presencia de aire en el sis tema como una perturbación.
Tiempo de Dosific ado
0
20
40
60
80
100
120
0 100 200 300
Se gun do s
Mil il i t ros
Figura 10. Curva de las Cantidad es Do sificadas en el tiempo
En cuanto al tiempo transcurrido en cada una de las titulaciones realizadas , a una ve locidad
promedio de 3 rpm, s e observa en la figura 10 que en e l 2% de las cantidades permitidas e l rango
de tiempo requerido no es muy alto, ten iendo en cuenta que este proc eso se realiza de f orma
manual.
Para conclu ir el análisis de los da tos de estas c antidades, se demues tra que el giro del volante de
la p lanta debe ser continuo hasta lograr la cantidad solicitada. De igual fo rma, se obs erva de la
figura 9 que al requerir c antidades superio res a 20 ml, el tiempo necesario que debe transcurrir
para ob tener es ta cantidad de líqu ido es a lto, generando cansancio en e l operario e interrumpiendo
la titu lación del líquido, c ausando es to , retraso en todo el p roceso y en a lgunos casos se hace
nec esario inic ia r de nuevo y que, por ende, es necesario tomar acción c orrectiva s obre este tema.
2.3 DESCRIPCIÓN DEL PROCESO
Una v ez identif icadas las neces idades del c liente y según la p roblemática actual, se estab leció una
estructura del p roceso, cuya desc ripción se plas ma en la f igura 11.
IEL2-I-06-08
20
F igura 11. Descr ipción del proceso
En la f igura 12, se observa el P&D del p roceso, en e l cual se d if erencias las conex iones al proceso, las señales eléc tricas y la conex ión de sof tware.
F igura 12. P&D del proceso
IEL2-I-06-08
21
2.4 DISEÑO DE INGENIERIA
Con una completa caracterizac ión y un c onocimiento de l comportamiento del Bottletop Bure t, se
puede dar inicio a la e tapa de diseño de l d is positiv o para tratar este prob lema.
1.1.3 Diseño del hardware
El sis tema completo puede vis ualizars e como una ca ja negra con entradas y sa lidas como se
mues tra en la F igura 13, que in te rnamente está c ompues ta , a su v ez, por dif erentes subsistemas
con f unción específ ica.
F igur a 13. Sistema completo definido como caja negra
En es te c aso cinco subsistemas princ ipales que deberán funcionar con juntamente para garantizar
la conf iab ilidad y ef ectiv idad del sistema g loba l:
i. In te rf az con e l usuario
ii. Procesamiento de entrada
iii. Sistema de control y proces amiento de datos.
iv . Procesamiento de s alida
v . Alimentac ión
El o rden en que f ueron enunc iados los cuatro primeros sis temas evidencia la s ecuencia que siguen
los eventos de l proc eso de control comple to , iniciando por una interf az con e l usuario, una
eva luac ión de la cantidad actua l dosif icada, procesada por el contro lador para tomar la decisiones ,
y la activac ión el sistema de giro para que se inicie la dosific ación del líquido teniendo en cuenta
los datos de entrada del sensor, para que de es ta f orma el controlador pueda tomar la dec is ión
adecuada.
Mirando hacia adentro de la caja negra , s e puede v er la f orma en que se enc uentran organ izados
los subsistemas por medio de un diagrama de Pirbhay (v er F igura 14) para v isua lizar la inf luencia
de cada uno de ellos sobre el sistema completo.
IEL2-I-06-08
22
Figur a 14. Diagrama de Pirbhay del sistema
Cada uno de los subs is temas ya mencionados, los cuales , al igua l que el sistema completo, tienen
sus propios c omponentes internos que les permite funcionar de manera adecuada. Cada uno de
estos componentes será analizado indiv idualmente para as í poder mos trar y ex plicar cada una de
sus partes y su func ionamiento, de manera que se logré obtener una v isión global de l
funcionamiento del sistema completo.
1.1.3.1 Sistema de interfaz con el usuario
Tal v ez una de los subsistemas más importantes de este proyecto es la interf az con el usuario ,
pues los operadores o us uarios que utilic en este sistema querrán e legir la cantidad que se desea
dos ificar y saber el estado en que se encuentra el proceso.
Se buscó d iseñar una interf az v isua l senc illa, donde e l usuario pueda in iciar un proc eso fácilmente
y de igua l f orma pueda s aber cuando el p roceso iniciado anteriormente ha terminado correcta o
incorrectamente. Por med io de es ta in te rf az, el us uario podrá se lecc ionar la cantidad que se desea
dos ificar y ob tener inf ormación acerca de l proces o, c uanta cantidad de liquido sea ha dosif icado.
De igual f orma, en caso de presentarse errores en e l proc es o esta interf az brinda la inf ormac ión
correspondiente.
Está interfaz se realizo en Mic rosoft V is ua l Basic 6.0 con la ay uda del p rograma realizado por
Alejandro Lav arello [9 ], en donde se establece como medio de comunic ación el puerto serial en tre
el dis pos itivo y el computador, por esta razón es neces ario un d ispositivo con capacidad de
IEL2-I-06-08
23
comunicars e serialmente con un computador a través del puerto serial. Esta comunicación puede
ser p rogramada en d ife rentes ve locidades, teniendo en cuenta la v eloc idad de l dispositivo
electrónico que se use.
Figura 15. Visualización de la inter faz con el usuario
La interfaz diseñada presenta con la opción de se lecc ionar el puerto serial del computador que
utilizará y e l es tado del mismo y la v eloc idad a la cual esta transmitiendo y recibiendo. Tiene un
botón de ayuda, el cual b rinda una asesoria al cliente de cómo u tilizar esta herramienta. Además
cuenta con una pos ibilidad de rea lizar una parada de emergencia.
1.1.3.2 Sistema de proc esamiento de entrada
El módulo de procesamiento de entrada esta compuesto por una etapa de selección de la cantidad
de referenc ia y un sensor óp tico, que permita llevar una adquisición de datos adecuada para su
pos terio r análisis en e l s is tema de control.
Cantidad de referencia
La se lecc ión de la c antidad de ref erencia es tablece cual es la cantidad f inal dosif icada des eada por
le usuario . Cabe aclara que esta v ariable es esencia l para realizar un proceso de dosif icación.
Para es tablecer esta variab le se utilizó la in te rfaz con e l usuario , en donde el usuario tiene acceso
a la se lecc ión de la cantidad de ref erencia (ver f igura 16). El v alor seleccionado es env iado a l
IEL2-I-06-08
24
dispositivo electrónico por medio de la comunic ación RS-232, en donde es te dispositivo realiza la
correspondiente v erif icación de la cantidad.
Figura 16. Imagen v isualizada por el usuar io d e la selección de can tidad
Sensor óptico
El giro del vo lante es una fo rma de cuantif icar la cantidad de líqu ido dosif icado. Para rea lizar la
medición de es ta variable que controla el g iro de l v olan te, se dec id ió u tilizar un sensor óptico . De
esta f orma, se realiza uno conteo de los grados que ha girado hasta el momento el v olan te .
Debido a que s e busca que el sistema de adquis ic ión sea de producción masiva, es c onven iente
utilizar sensores que sigan patrones de ba jo consumo, de tal modo que se puedan acop lar
fácilmente a dis positiv os de procesamiento (mic rocontro ladores, e tc .) sin mucho d iseño elec trón ico
complejo. Se implemento un s ens or de ba jo consumo y alta reso lución : el sens or óptico CNY70.
Figur a 17. Sensor Óptico CYN703
3 To mado de [10]
IEL2-I-06-08
25
El CNY70 es un sens or óptic o reflexivo que tiene una cons trucción compacta donde el emisor de
luz y el receptor s e co locan en la misma d irección para detectar la presenc ia de un objeto utilizando
la ref lex ión de l inf rarro jo sobre e l objeto. Su detector consiste en un f ototrans istor.
Por ser un sens or que no necesita ningún ambiente especial, por ser de bajo costo, bajo consumo
de potencia y buena reso lución , es te sensor es el indicado para la aplicación que se está
des arro llando.
Figura 18. D isip ación de Potencia del CNY704
Este mismo c ircuito de ca lib ración (Figura 19) es e l que se usa en la ta rjeta de adquisic ión de datos
del modulo de procesamiento de entrada.
Figura 19. Circuito implemen tado para el CNY705
4 To mado de [10] 5 To mado de [11]
IEL2-I-06-08
26
Tabla 1. Características e léctricas del CNY706
En la Tab la 1, s e resumen a lgunas de las principa les c aracterísticas del CNY70.
1.1.3.3 Sistema de contro l y p rocesamiento de datos
El sis tema de c ontrol y p rocesamientos de datos requiere de un s istema capaz de comparar los
datos recibidos con los da tos de ref erencial y tenga la capacidad de tomar dec is iones con respecto
a las acciones que hay que llevar a cabo para obtener la cantidad de líquido solicitada.
El d is positiv o debe ser programable de tal forma que la implementac ión de l controlador sea senc illa
y que igualmente lo sea la generac ión de seña les de s alida para el contro l de l s is tema de g iro e
infe rf az con e l usuario .
Para suplir todas estas nec esidades se necesita un dis positiv o versá til, sencillo y eficaz. Por esta
razón s e se lecc ionó e l dis pos itivo PSoC (Programmable Sy stem on Chip) CY8C27443 de Cypress
Mic rosy stems .
El PSoC de Cypress Microsystems es un microcontrolador c on un con junto de recursos ana lógic os
y dig itales c onfigurables según las neces idades de la ap lic ac ión a desarrollar. Posee un
mic rocontro lador de 8 bits, un procesador con una ve locidad máxima de 24 MHz, un oscilador
in te rno programable. Puede operar con un vo lta je de 3.0 V hasta 5.25 V. Es tas son algunas de las
carac terís ticas que hacen del PSoC un dis pos itivo programable versátil y robusto.
De igua l f orma v iene con un kit de des arro llo y p rogramación f ácil de manejar, e l c ual es de bajo
costo lo que lo hac e de fácil adquisic ión. Su arquitectura hace pos ib le implementar desde
configuraciones comple jas hasta requerimientos s imples donde so lo sea nec esaria la utilizac ión de l
mic rocontro lador.
6 To mada de [10]
IEL2-I-06-08
27
1.1.3.4 Sistema de proc esamiento de salida
El s is tema de procesamiento de salida requ iere las señales de ac tiv ación del sistema mecánic o de
giro y e l estado del proc eso. Este modu lo debe ser capaz de enviar las seña les correspondien tes a
las decisiones tomas por el control y proces amiento de datos; para que de esta fo rma las acciones
realizadas c onc uerden con las decis iones tomadas anterio rmente.
Estado del proc es o
Permitir la v isualización de l estado del p roceso al usuario u operario y cual ha sido la cantidad
dos ificada hasta el momento se utilizara la interf az con e l usuario an terio rmente desc rita.
Desde el dispositiv o s e env ia rá la inf ormación c orrespond iente al c omputador por medio de l
protoco lo RS-232.
Figura 20. Imag en visualizada por el usuario del estado d el pro ceso
Sistema mecán ico de giro
El s is tema mecán ic o de g iro esta compuesto inicialmente por un motorreductor, pero debido a que
el dis pos itivo e lectrónico no tiene la capacidad de proveerle al motorreductor el voltaje ni la
corriente que neces ita para func ionar correctamente , f ue necesario realizar un sistema de potenc ia.
IEL2-I-06-08
28
Se us o un puente H, el L293B, para el sistema de potencia del motorreduc tor. Cuenta con voltaje
de alimentación de las cargas y de la lógic a has ta de 36 voltios independientes, y con una corriente
de sa lida has ta de 1 Amperio por canal, de ta l f orma que la corriente y el voltaje del motorreduc tor
serán provistos por la fuente de a limentac ión directamente. Ahora , c omo s on necesarios 12 V para
activar el v oltaje de a limentac ión del motorreductor, de igual f orma es necesario que su f uente de
alimentac ión sea de 12 V.
Pos ee cuatro canales de s alida, cada uno de ellos es contro lado por señales de entrada
compatibles TTL, dispon iendo para cada par de c ana les con una señal de hab ilitación que
desconec ta las salidas de los mis mos . En la tabla 2 mues tra las posibles conf igurac iones según e l
valor de la seña l de entrada y del habilitador c orrespond iente a e llas.
Tab la 2 . Configuración de las en tradas y salidas del L293B7
Este mismo c ircuito de ca lib ración , f igura 21, es el que se usa en la tarje ta del sistema mec ánico de
giro .
Figura 21. Circuito de montaje del L293B8
7 To mada de [12] 8 To mada de [13]
IEL2-I-06-08
29
1.1.3.5 Sistema de mantenimiento
Por s er un proy ecto de prototipo se esc ogió c omo f uente de alimentación un adaptador que f uese
capaz de suplir las necesidades del mode lo y, a su vez, del dispos itivo e lectrónic o. Con la ay uda de
dos reguladores MC78xx se d iseñó es té s istema.
El MC78xx es un regulador de voltaje c apaz de alcanzar una corriente de sa lida de 1A. Su rango
de voltaje de sa lida es amplio, de 5 has ta 24 voltios. Internamente posee un generador de
corriente y un s istema de protección e l cual lo hac e prácticamente indes truc tib le . En la f igura 22 se
presenta el diagrama interno de la f amilia de reguladores MC78xx.
F igur a 22. Diagrama interno d e un MC78xx9
Para regulación del v oltaje de alimentación del d ispositiv o, la c ual era 5 V, se u tilizo e l MC7805,
mientras para la alimentación del s istema de potencia de l motorreductor se utilizo el MC7812, de
esta f orma teniendo los voltajes independientes se pro tegió la integridad del dispositivo.
En la f igura 23 se presenta el circuito de montaje utilizado de igual fo rma para cada uno de los
reguladores implementados , el MC7805 y el MC7812.
9 To mada de [14]
IEL2-I-06-08
30
Figura 23. Circuito de montaje del MC7805 y e l MC781210
1.1.4 Diseño del software
1.1.4.1 Metodología GEMMA
El d iseño del software tuv o en cuenta los parámetros de la Norma GEMMA11. De acuerdo a está, e l
proceso de automatizac ión de un sistema de dosif icac ión es taría dado por el siguiente esquema:
Figura 24. Esqu ema de la Norma GEMMA
10 Tomada de [14 ] 11 Tomada de [8]
IEL2-I-06-08
31
Procedimiento de funcionamiento
Es la operación normal de l sistema de dosific ación. En es te caso, e l proc esamiento de
funcionamiento es el proc eso en el cual se realiza la dos ificación de la cantidad se lecc ionada pro e l
usuario .
Figur a 25. Procedimiento de fun cionamiento en n orma GEMMA
Este modulo inicia con la s elección c orrecta de la cantidad a dos if icar hasta que se indica que e l proceso ha terminado. Una vez se termina el p roceso, se el sistema queda en espera de una nueva se lección de la cantidad. La permanencia en es te estado es hasta cuando el PSoC ind ica que el proceso ha terminado ó has ta cuando el operario de la autorizac ión de una para de emergenc ia . Procedimiento de paro
Figur a 26. Procedimiento de paro en norma GEMMA
Tiene tres estados principales . El primero es el estado inicial, donde se espera la in ic ializac ión de l proceso por parte del operario, paro en estado in ic ial. El segundo cons is te en el estado de f in de ciclo, demanda de paro a f in de ciclo, e l en trar a es te c iclo indica que e l proces o total de dos ificación ha te rminado correctamente y se queda a la espera de la nueva inicialización de un proceso. El te rc er estado consis te en la preparación del sistema des pués de un f allo en el proc eso. Procedimiento de fa llo
IEL2-I-06-08
32
En es te proced imiento hay un ev ento de gran importancia. Paro de emergencia, el cual se activa por o rden de l operario y da lugar a la desactivación de todas las acc iones del sistema. Se des activan las señales eléctricas para el s ensor y el motor, y al interf az con e l us uario es des activada del PSoC .
Figur a 27. Procedimiento de fallo en norma GEMMA
1.1.4.2 PSoC
La programación del PSoC se realizó usando dif erentes componentes para rea lizar todos los
procesos enunc iados en s ecc iones anteriores, y una f recuencia de reloj de 12 MHz.
In ic ialmente s e implementará un contador a 8 bits que tenga la capacidad de generar una señal de
re lo j interna para la UART encargada de la transmis ión seria l.
Este contador se ac tiv a indefinidamente y se c onf igura de manera que se genere una seña l de relo j
de 153.6kHz aproximadamente, para que así la U ART envíe da tos a una ve locidad adecuada para
que e l computador reciba satisfactoriamente lo que se le ha env iado. En este c aso se conf iguró
esta UART a una tasa de 19200bps. Igua lmente, es por esta razón que se escogió que la
frecuencia de trabajo de l dis pos itivo fuera de 12MHz.
Finalmente, s e generaron rutinas de prueba del sistema de dosif icac ión para poder v erificar al inicio
del proceso si es te s istema func iona correctamente, para continuar luego c on cada uno de los
procesos indicados en la Figura 28, donde s e puede v er c laramente cada uno de los procesos que
se llevaron a cabo y como s e pasa de un proc eso a otro a lo la rgo del programa.
IEL2-I-06-08
33
Figur a 28. Diagrama de bloques del proceso en e l PSoC
La programac ión del PSoC se realizó en lengua je C. Internamente cuenta c on c uatro func iones, a l
primera de ellas cumple la ta rea de recib ir, analizar y va lidar a l cantidad a dos if icar se lecc ionada
por el usuario des de el PC por medio de la interf az con el usuario.
void r ecibir _r x(int dator ){
if ((UART_1_bReadRxSt atus() & UART_1_RX_REG _F ULL)) { //ver ific ac ión de ex istencia de dat o en pin conectado c on el puert o s erial.
cantidad_pc = UART_1_bReadRxData(); //lect ur a del dat o enviado desde la interfaz
dat or= 1; cantidad_ingr esada_1 = (int)c antidad_pc; //conver sión del dat o r ecibido en ent er o
if(( cantidad_ingresada_1 > = 1)&&(cantidad_ingresada_1 < = 20)) { // v erificac ión s i la cantidad es corr ect a
Dat o_1= 1; env iar _tx (D at o_1); //envia el aviso de cantidad correcta
IEL2-I-06-08
34
conteo_final=cant idad_ingres ada_1; act ivar_giro_m ot or( c onteo_f inal); // inicia pr oceso de dosif ic ación
}
els e{ Dat o_1= 2;
env iar _tx (D at o_1); //envia el aviso de cantidad inc orr ect a
recibir _r x _2(dator); // est a a la es pera par a una nuev a v er ificación
}
}
}
En el caso en el que el usuario ha seleccionado una cantidad incorrecta, f uera de los parámetros
estab lecidos por e l f abricante del s istema, la segunda f unción realiza la misma tarea que la
primera , pero con la d iferencia que es te ya es el segundo intento por inic ia r un proceso.
void r ecibir _r x_2(int dator) {
if ((UART_1_bReadRxSt atus() & UART_1_RX_REG _F ULL)) { //ver ific ac ión de existencia de dat o en pin conect ado c on
el puert o s erial. cantidad_pc = UART_1_bReadRxData();//lect ura del dato enviado des de la int erf az
cantidad_ingr esada_1 = (int)c antidad_pc; //conver sión del dat o r ecibido en ent er o
dat or= 2; if(( cantidad_ingresada_1 > = 1)&&(cantidad_ingresada_1 < = 20)) { // v erificac ión s i la cantidad es corr ect a
Dat o_1= 1;
env iar _tx (D at o_1); //envia el avis o de cantidad correcta
conteo_final=cant idad_ingres ada_1;
act ivar_giro_m ot or( c onteo_f inal); // env ia el aviso de cantidad cor recta
} els e{
Dat o_1= 2;
env iar _tx (D at o_1); //envia el aviso de cantidad inc orr ect a recibir _r x(dator); //esta a la espera par a una nuev a v er ific ación
}
} }
La tercera de las func iones es la encargada de env iar datos del proceso a l PC, y de esta f orma por
medio de la in te rf az con e l usuario , ind ic arle al mismo el estado de l p roceso.
void env iar _tx (int dato_enviar){
dat o_transmit ir[0] = 0; itoa( dat o_tr ansmitir, dato_enviar, 10); // se conviert e el dat o a enviar en char
contador _env iar = 0;
while (dato_tr ansmiti r[ contador _enviar]){ while (!(bUART_1_R eadT xS tat us() & UART _1_T X_BUFF ER_EMPTY) ) {}//se ev it a err or
UART_1_SendData( dato_tr ansmitir[ c ontador _enviar]);//s e env ia el dato
contador _env iar+ +; }
}
IEL2-I-06-08
35
La cuarta y ú ltima f unción que compone es te programa, es la encargada de realizar el contro l de l
proceso. Es ta f unción rea liza la activación y desactivación del sistema de giro del vo lante, realiza y
ana liza la lectura del número de ranuras por med io del sensor, y es la encargada de l control to ta l
del proceso.
void act ivar _giro_motor(cont eo_final) { ret ar do_motor=0;
act ivar_gir o=0;
dat o_sensor_new = (PRT 2DR&0x 01);//prim er a lect ura del sens or dat o_sensor_old = (PRT2DR&0x01);// pr imera lectur a del sensor
contador _s ens or = 0;
conteo_inic ial= 0; while( conteo_inicial < cont eo_final){ //contr ol de no s uper ar el c ont eo requerido
while (activ ar _giro < numero_gir o){
if ((UART_1_bReadRxSt atus() & UART_1_RX_REG _F ULL)) {//v er ific ación de dat o en pin
cantidad_pc = UART_1_bReadRxData(); //lect ur a del dat o
cantidad_ingr esada[ 0]= cantidad_pc; par o_er = at oi(cantidad_ingr esada); //conversión a ent ero del dato
}
if( par o_er = = 0){ //ver ific ac ión de activación de par ada de emergencia act ivar_giro = numer o_giro + 1;// desactiv a el giro del mot or
conteo_inic ial = c ont eo_final + 1;// des actva el proces o
} //si no hay par a de emergencia se continua con el pr oc eso
PRT1DR=0x00; // act ivacion del gir o del mot or
dat o_sensor_new =(PRT2DR&0x01); //lectura act ual del s ens or if(( dat o_s ensor _new )!= (dato_sens or_old) ){ //v erificac ion de c ont eo de ranur as
act ivar_giro++ ; //aumenta el numero de r anuras act uales
dat o_sensor_old= dato_sens or_new; // act ualiz acion del dat o }
//retar do
cualquier a= 0; while( cualquier a < 1000){
cualquier a+ +;
}
}
act ivar_gir o = 0; conteo_inic ial+ +; //aum ent o en lso m il ilitr os act ualment e dosif ic ados
enviar _tx (c ont eo_inicial);// envio de inf ormación del estado del pr oc es o
par o_er = 1;
}
conteo_inic ial = 0;
act ivar_gir o=0; PRT1DR=0xF F;//desactivacion de motor
conteo_final=0;
} En el anexo A encuentra el programa completo de l PSoC.
IEL2-I-06-08
36
Tanto la organización de cada uno de los b loques que f orman parte del sistema de procesamiento
completo como la p rogramación de cada uno de ellos se pres entan en la Figura 29; de igua l f orma
en la Figura 30 se presenta la d istribución fina l de pines del circu ito integrado CY 8C27443.
Figur a 29. Implemen tación final de bloques en el PSoC
F igura 30. Diagrama d e pines de PSoC
IEL2-I-06-08
37
1.1.4.3 In te rfaz con el usuario
La programac ión de la interfaz con el usuario , al igua l que la programación del PSoC , cuenta con
una descripción interna de las rutinas que se generan. La f igura 31 mues tra claramente cada una
de al ru tinas que se llev an a c abo y el orden de ejecuc ión de las mismas .
F igura 31. Diagrama d e bloqu es del proceso de la in terfaz con el usuario
La programación de la interfaz con e l us uario tiene in te rnamente f unciones las cuales s erán
descritas a continuación. Cada uno de los vinc ulos, bo tones y demás observ ados en la interf az son
programados individualmente.
Botón para abrir e l puerto serial
El usuario elige el puerto serial que desea u tilizar para el p roceso, una v ez se lecc ionado, se
preparan los parámetros de c omunicación e inten to abrir el puerto . Si no ex iste o si ya esta siendo
IEL2-I-06-08
38
utilizado por otro programa, ocurre un error y la etiqueta de manejar erro res es activ ada. De lo
contrario, se ac tiv a el mens aje el cua l indica que la apertura del puerto esta correcta . Una v ez la
apertura de l puerto es correc ta, s e activa e l mensa je de in icio del proc eso, y se indica a l usuario
que debe seleccionar una cantidad a dosif icar.
Privat e Sub B ot on_Abr ir_Click( )
'A l puls ar aquí abr e un puert o s er ial
On E rror G oT o m anejar_err ores
MSComm1.CommPort = nr o_puert o 'P as o 1: eli jo el puerto
Figur a 32. Bo tón par a abrir puer to seria l
MSComm1.Sett ings = S tr$( velocidad) + ",N,8,1" 'P as o 2: ' prepar o par ámetr os de c omunicación
MSComm1.PortOpen = True ' Paso 3: I nt ento abrir el
'puert o. Puedo no lograrlo: si no ex ist e, o si otr o 'pr ograma lo está us ando. Aquí puede oc urr ir un err or
'y s altarí a a la etiquet a " manejar _er ror es "
MsgBox ( "Puert o COM" + Str$(nr o_puert o) + ": abierto O K") E tiq_Puerto.Caption = "CO M" + Str$(nr o_puert o) + ":"
E tiq_Velocidad.Capt ion = S tr$(veloc idad) + " bauds"
E tiq_Estado.For eC olor = &HFF00& 'C olor v er de E tiq_Estado.Capt ion = "Abierto"
GoT o Sal ir 'T odo Ok, continuar.
Figura 33. Mensaje de aper tura correcta del puerto serial
manejar_er r or es:
MsgB ox ("E rror al int ent ar abr ir
CO M" + Str$(nr o_puert o))
MsgB ox ("E rror detectado por
Vis ual Basic: " + E rr.Des cr ipt ion) Resume Sal ir ' Resume me permit e
cont inuar con el programa.
Fig ura 34. Men saje de apertura incorrecta del puer to ser ial
Salir: MsgB ox "Por fav or seleccione la c antidad que se quier e dosific ar"
'Aquí puedo poner algo que quier a que se ejec ute en
'c ualquier situación. End Sub
Privat e Sub B ot on_Ac ept ar_Click()
End Sub
Figur a 35. Men saje d e seleccion ar cantidad
IEL2-I-06-08
39
Botón de ay uda
Este bo tón brinda la apertura de un arch iv o de tex to, e l c ual brindara ayuda al operador del objetivo
de es te programa y de como utilizarlo.
Privat e Sub B ot on_Ay uda_C lick ()
'Abre el texto Leeme.txt que se encuentr a en el m ismo 'dir ectorio que el ejecut able "E jemplo de us o de MSCO MM.EXE"
Dim r uta_leeme As String
rut a_leeme = " " + App.Path + "\" + "leeme.txt " On E rror G oT o E rror_Abriendo
Shel l "C:\W indows\ not epad.exe" + ruta_leeme, v bN ormalFoc us
GoTo Seguir Error_Abriendo:
MsgBox "No se pudo abrir LEEME.T XT en el B loc de Notas"
MsgBox "V is ual Basic detectó: " + E rr.Description Res ume S eguir
Figura 36. Botón de ayud a
Botón de cerrar puerto seria l
Cuando el proc eso ha finalizado y el operador des ea apagar el sistema, para evitar daños en e l
puerto, da la decisión de cerrar el puerto.
Privat e Sub B ot on_Cerrar _C lick () 'A l pulsar aquí cierr a un puerto serial
On E rror G oT o m anejar_err ores 'P rot ejo fr ent e al er ror.
MSComm1.PortOpen = Fals e 'Puede haber err or s i
'intento cerrar un puert o que está en us o por otr o
'programa, entr e otr as caus as.
Figura 37. Botón de cerrar el puerto serial
MsgB ox ("Puert o COM" + S tr$(nr o_puerto) + ": c err ado O K")
E tiq_Estado.For eC olor = &HFF& 'Rojo E tiq_Estado = "CERRADO"
G oT o Salir
F igur a 38. Men saje de puerto serial cerrado correctamente
Botón de enviar de informac ión al PSoC
Una vez el usuario selecciona la cantidad, debe enviar este valo r hacia el PSoC . El valor escrito
por el usuario es convertido en tipo Byte y posteriormente es enviando. Se ac tiv an el mensaje que
indica que la cantidad ha sido seleccionada. En el caso que e l usuario desea s eleccionar una
cantidad pero aun no ha seleccionado e l puerto seria se activara e l e rror de envio.
IEL2-I-06-08
40
Privat e Sub B ot on_Env iar _C lick ()
' La propiedad Output r equiere un Var iant Dim text o_sal ida As Byte
texto_salida = Val(s eleccion_cant idad.T ext)
Figur a 39. Bo tón de enviar cantidad a dosificar al PSoC
Text o_M ensajes.Text = "Env iando..."
MsgB ox "H a s elecc ionado la cant idad a dosificar " 'A l escribir en la propiedad O utput, s e envian
'los dat os desde el puert o al ext er ior.
'debo pr ot eger fr ent e a err or es par a que el pr ogr ama 'no abort e.
On E rror G oT o E rror_Enviando
MSComm1.Output = Chr (texto_salida) GoTo Salir
Error_Enviando: MsgBox "Ocurr ió un er r or al intentar enviar el t ext o. V is ual Basic detectò: " + E rr.D es cr iption
' MsgB ox "Visual Bas ic det ect ó: " + Err.Desc ript ion
Texto_Mens ajes.T ext = "O cur rió er r or al enviar, por f avor s eleccione y abrà el puerto " Res ume Sal ir
Salir:
End Sub
Lista de selección del puerto seria l
En la lis ta s e han predeterminado has ta cuatro posib les puertos seriales. Privat e Sub C om bo_Puert o_Click () 'Aquí selec ciona el numer o del puert o a us ar.
Dim viejo_puert o As Int eger
viejo_puert o = nr o_puert o 'M e fi jo si el usuario
'intent a c ambiar de puerto.
nr o_puerto = Combo_Puert o.ListI ndex nr o_puerto = Combo_Puert o.It emDat a(nro_puerto)
'G racias a la v ar iable mensajes _c ambios puedo suprim ir 'el mens aje c uando ar ranca el programa.
If (nr o_puerto <> viejo_puert o) And (mensajes _cambios = T rue) _
Then Ms gB ox "D ebe abr ir este puert o antes de usarlo"
End Sub
IEL2-I-06-08
41
Botón de Emergenc ia
Existe la posibilidad que el usuario nec esite o requ iera parar e l proceso y este botón brinda esta
opc ión. Una vez el usuario lo pres ione, la in te rf az da avis o al PSoC, y pos teriormente cierra e l
puerto seria l para evitar daños. Finalmente la in te rf az quedara como si no s e hubiera dando inic io ,
y será necesario empezar de nuevo.
F igura 40. Botón de parad a de emerg encia
Privat e Sub Emergenc ia_Cl ick()
' La propiedad Output r equiere un Var iant Dim text o_sal ida_er As Variant
texto_salida_er = "0" Text o_f inal = "Oc urr io un err or, el pr oces o no t erm ino c orr ect amente, por f avor inicie de nuev o"
Text o_dosif ic ada = "ERROR"
'A l escribir en la propiedad O utput, se envian 'los dat os desde el puert o al ext er ior.
'debo pr ot eger fr ent e a err or es par a que el pr ogr ama
'no abort e. On E rror G oT o E rror_Enviando
MSComm1.Output = text o_sal ida_er
Text o_M ensajes = " " Text o_dosif ic ada = " "
Text o_f inal = " "
Text o_c antidad = " "
'A l pulsar aquí cierr a un puerto serial
On E rror G oT o m anejar_err ores 'P rot ejo fr ent e al er ror.
MSComm1.PortOpen = Fals e 'Puede haber err or s i 'intent o c err ar un puert o que est á en uso por otro
'pr ograma, entr e otr as c ausas.
MsgBox ("Puert o COM" + S tr$(nr o_puerto) + ": cerr ado O K") E tiq_Estado.For eC olor = &HFF& 'Rojo
E tiq_Estado = "CERRADO"
G oT o Salir Error_Enviando:
MsgBox "Ocurr ió un er r or al intentar enviar el t ext o"
MsgBox "Vis ual Basic det ect ó: " + Err.Descr iption Texto_Mens ajes.T ext = "O cur rió er r or al enviar "
GoTo Sal ir
manejar _er ror es: MsgBox ("Err or al intent ar c err ar COM" + Str$(nro_puert o))
MsgBox ("Vis ual basic detectó: " + E rr.Des cr iption)
Res ume S al ir
IEL2-I-06-08
42
Salir: End Sub
Configuración de la comunicación serial
Esta rutina del programa realiza la conf igurac ión de l al comunicación, la v e locidad de transmisión ,
así como también prepara a l programa para recibir y transmitir datos .
Privat e Sub F orm_Load( )
'**** P rogr ama de demostrac ión del c ontrol MSCOMM **** ' Se usa el MSCOMM en su f orma más sim ple:
' 1) Sólo en modo "t ext o" ( no "binario")
' 2) Sólo se manejan los ev ent os de r ecepción y ' transmis ión (ignora err ores de datos, ring del
' modem, etc.)
' Var iables globales, definidas en Module1:
' mensajes _cambios as boolean S uprime mensajes al iniciar pr ogr ama.
' v elocidad As I nteger Bauds ' nro_puert o As I nt eger Cual puerto us o
' inc luy e_s alt o_c ar r o As Boolean Enviar o no CR+ LF (0x0D y 0x0A)
' c adena_entr ada As Variant R ec ibe el texto del contr ol.
mens ajes_cambios = Fals e
veloc idad = 19200
nr o_puerto = 9600
cant idad = 1 Combo_Puert o. ListI ndex = 0
mens ajes_cambios = True
'*** P repar ación del objet o MSCOMM1 par a r ecibir *******
'*** y transmiti r ******* MSComm1.InputLen = 0 ' E l valor 0 hac e que se lea t odo
' el cont enido del buffer de r ecepcion que pos ee
' el contr ol MSComm. ' S i Input Len v al iera 6, se r ecibir ian los prim er os 6
'caracter es de es e buff er, ignor ando el r est o.
MSComm1.RThres hold = 1 ' al rec ibir uno o m as caracteres 'se gener ará el ev ento OnComm y la pr opiedad
'CommEvent c ont endr á el valor comEvR ec eiv e.
'La constant e comEvReceive vale 2 .
MSComm1.SThr eshold = 1 ' al enviar uno o mas caracter es
'se gener ar á el ev ent o OnComm y la propiedad 'ComEvent c ontendr á el v alor comEvSend
'La const ant e c omEvSend vale 1.
'*** Par a tr abajar con MSCO MM, falt an los siguient es pas os:
' 1) E specif ic ar c ual port va a usar:
' MSComm1.C ommPort = 1
IEL2-I-06-08
43
' 2) E stablecer parámetr os de la c om unicación: ' MSComm1.S ettings = "9600,N, 8, 1"
' veloc idad= 9600, paridad= No usada,
' cant idad de bits= 8, ' cant idad de bits de par ada (stop bits) = 1
' 19200 baudios, sin paridad, 8 bits de datos y 1 bit de par ada.
' 3) A br ir el puerto:
' MSComm1.PortOpen = True
' Estos 3 pasos s e l lev an a c abo en el botón llamado
' Bot on_A br ir '
MsgB ox "Por f av or s eleccione y abra el puert o antes de empez ar a ut iliz arlo"
Etiq_Est ado.F or eColor = &HFF & 'Rojo Etiq_Est ado.C aption = "CERRADO"
'Boton_Ay uda_O culto.SetFocus
End Sub
Privat e Sub MSC omm1_OnComm()
'Aqui se int er c eptan los ev entos que se pr oducen
'durante la comunic ación RS 232. 'Cada vez que pasa algo r elativ o al puerto CO M
'en us o, cambia el v alor de la pr opiedad CommEvent
'E jem plo: S i s uena el t elef ono, y el modem 'está conectado a la linea, y se est á uti lizando el
'puert o COM c orr es pondient e al m odem, s e generar á el
' evento O nComm y la pr opiedad CommEv ent valdr á 6 . ' ( 6 es el v alor de la const ant e c ommEvRing, y a def inida
' inter nament e por V is ual Basic ).
Dim envio As Boolean envio = False
If MSComm1.CommEvent = comEvR ec eiv e T hen
'Label1 = " "
text o_llego = Int(MSComm1.Input )
' Label1 = texto_llego
If text o_l lego = "98" Then Texto_final = "Ocurrio un error, el pr oces o no term ino c orr ect ament e, por fav or inicie de nuev o"
av iso_recibido = 0
End If
If avis o_r ecibido = 2 Then
If text o_l lego = cantidad_ej T hen Texto_dosificada = S tr$(texto_l lego) + " MILILITROS"
Texto_final = "El proc es o ha t erm inado ex it osamente"
avis o_rec ibido = 0
End If
If text o_l lego < cantidad_ej T hen Texto_dosificada = S tr$(texto_l lego) + " MILILITROS"
Texto_final = "El proc es o se enc uentr a aun en ejecutación"
IEL2-I-06-08
44
avis o_rec ibido = aviso_r ec ibido End If
End If
If avis o_r ecibido = 1 Then If text o_l lego = "1" T hen
Texto_cant idad = "Es v alida. El P roces o c ontinua satisfact oriament e"
avis o_rec ibido = aviso_r ec ibido + 1
End If
If text o_l lego = "2" T hen
Texto_cant idad = "No es v alida. Por f avor ingr ese de nuev o la c antidad s olicitada" avis o_rec ibido = 0
End If
End If 'Label2 = avis o_rec ibido
End If
If MSComm1.CommEvent = comEvSend T hen Texto_Mens ajes = "Se ha inic iado el proces o c on la cantidad selec cionada"
Texto_dosif icada = " "
Texto_final = " " Texto_cantidad = " "
avis o_recibido = avis o_r ecibido + 1
cantidad_ej = Int( selecc ion_c antidad) End If
End Sub
IEL2-I-06-08
45
2. IMPLEMENTACIÓN Una v ez se lecc ionado la instrumentación, y teniendo ya e l diseño del hardware y del software que
se va a proseguir con la implementac ión de l proy ecto , y teniendo en c uenta la desc ripción de l
proceso que se requiere obtener, podemos proc eder a rea lizar la implementación de l d ispositiv o.
In ic iando con la implementación del d ispositiv o elec trón ico PSoC, posteriormente realizando la
adaptación física de la plan ta a l sis tema y finalizando con la imp lementación de los subsistemas
restantes.
2.5 PSoC
Como resultado f inal se ob tuvo entonc es un d ispositivo compuesto por una etapa de acople de l
PSoC c on el sis tema de v entilación y una segunda parte que incorpora los s ubs istemas de control,
de interfaz con el usuario y de proces amiento de datos de entrada. E l s istema completo se puede
ver en al f igura 41 .
Figura 41. Sistema de control d e dosificación de líquido s
2.6 AD APTACIÓN DEL BOTTLETOP BUR ET Ten iendo un conocimiento básico sobre e l comportamiento de l Bottle top Buret y sobre la
instrumentación y software por adoptar, se proced ió a evaluar sus carac terís ticas físic as de l
Bottletop Buret.
Se realizó un mode lamiento de la p lanta c on la ay uda de un Ingeniero Mecánico y una Diseñadora
Indus trial para realizar su adaptac ión al hardware . El objetivo, la adaptación de la planta a la
automatización no realizará daños f ísicos que pud ieran perjud icar en un f uturo s u proceso manual.
Para es to , se busco una so lución económic a, de fácil manipu lación humana y que en un futuro no
perjudic ara el estado f ís ico de l v olante y del Bottle top Bure t.
IEL2-I-06-08
46
Tomando las medidas de l Bottletop Buret, se modeló un sistema mecánico res is tente a la fuerza
del motorreductor necesaria para realizar el movimiento del vo lante, y que a su vez es té se pudiera
adaptar a l sis tema elec trónico dis eñado anterio rmente. Se modeló un c ilindro de diámetro igual a l
del volan te (2” de diámetro), y se f ijo esté al v olan te por medio de ay uda de una abrazadera
metálica, de esta fo rma se f ija e l c ilindro a l Bottletop Buret.
Figur a 42. Ad aptación física del volante de la planta
El modelo obtenido cumplía las c arac terísticas solicitadas, ya que s i es necesario realizar un
proceso manualmente, el operario simplemente sue lta la abrazadera metá lica y se ob tiene
nuevamente la plan ta para us o manual. Otra fo rma de v isualizar la ef ectiv idad de este modelo, es
que debido a l material del cilindro, en este c aso s e escog ió PVC, esté no causa ningún tipo de
des gaste o deterioro sobre el vo lante de l Bottletop Buret.
Figur a 43. Sistema de ad aptación del volante con e l motorreductor
De igual fo rma se modelo la planta con su respec tiv o tanque de almacenamiento. Para ev itar la
entrada de aire como una perturbación en el sistema, fue necesario adquirir un tanque de
almacenamiento para líqu idos que a justara perf ec tamente con e l Bottletop Buret.
IEL2-I-06-08
47
F igur a 44. Ensamble d el tanque de almacenaje con la plan ta (mod elo)
F igur a 45. Ensamble d el tanque de almacenaje con la plan ta (r eal)
Adicionalmente, c omo s e debe conservar el estado f ís ico de la p lanta en perfecto estado, s e diseñó
la ins ta lación del s ensor a la planta por medio de plastilina, de esta fo rma aseguramos que e l
materia l u tilizado es no toxico, no conductor y de f ácil separac ión, para el caso de quererse realizar
un proc eso de f orma manua l.
Finalmente se modeló e l sistema de automatización completo en su estado f ís ico, el cua l s e realizó
pensando en las neces idades del c liente.
IEL2-I-06-08
48
Figura 46. Modelo general de l sis tema
Figur a 47. Implementación obtenida del sistema
Todos los mode los se rea lizaron en Microstation.
2.7 IMPL EMENTACIÓN DE LOS SUBSISTEMAS
Finalmente para realizar las v alidac iones corres pondien tes del sistema era necesario imp lementar
el s istema de mantenimiento. La f igura 31 muestra el sistema de alimentación obten ido.
IEL2-I-06-08
49
F igura 48. Sistema de alimentación
2.8 RESUMEN
Finalmente s e obtuv o el sistema mostrado en la figura 49. Tiene dimensiones de 20cm de
prof und idad, 40c m de ancho y 40 cm. de alto y un peso aproximado de 5 Kg. Por s us
carac terís ticas f ís icas es de fácil trans portac ión.
Figur a 49. Sistema d e alimentación del sistema
IEL2-I-06-08
50
3. VAL IDACIÓN DE PROTOTIPO
2.9 PRUEBAS DEL SOF TWARE Y HARDWARE
Para la comprobación de l buen funcionamiento de l software y del hardware diseñados e
imp lementados, se rea lizaron pruebas ten iendo en cuenta mal uso de l software por parte de l
usuario , la dos ificación del produc to en d ife rentes cantidades y el caso de ser nec esario una
parada de emergencia.
Para el primero de los c asos, asumimos como primer erro r, que el usuario no se lecc ionaba ni abría
correctamente el puerto s erial del PC que se va a ser usado durante e l proces o. Como res ultado e l
sof tware dio avis o al usuario de l error y posterio rmente dio indicaciones . Las figuras 50 y 51
mues tran cuando s e intenta inicializar un proceso sin haber realizado la apertura y se lecc ión de l
puerto seria l correspondiente, una v ez es correcto e l puerto, s e da las s iguientes ind ic ac iones para
al continuac ión del proc eso.
Figura 50. Error d e inic ia lización del pro ceso
IEL2-I-06-08
51
Figura 51. Selección y aper tura correcta del puerto serial
El segundo de los errores posibles tomados en cuenta , es cuando el usuario selecciona una
cantidad invá lida. Inmediatamente el software analiza y da av is o del error y posteriormente de las
indicaciones que debe s egu ir para poder realizar un proceso de dosif icac ión. Ver figura 52.
IEL2-I-06-08
52
Figura 52. Selección incorrecta de la can tidad a dosificar
En el segundo de los casos , una vez el usuario se lecc iona c orrectamente la cantidad a dosif icar, e l
sistema, da inf ormac ión al usuario de la condic ión actua l de l proces o y de igual fo rma ind ica
cuando e l proceso a te rminado y s i f ue un proceso ex itoso o no . Las f iguras 53 y 54 muestran
como es la inte rf az v isua lizada por el usuario mientras un proces o esta en e jecución y cuando e l
mismo f inaliza.
IEL2-I-06-08
53
F igura 53. Aviso d el estado actual del proceso
Figur a 54. Finalización correcta del proceso
IEL2-I-06-08
54
El tercer caso analizado, es cuando el usuario rea liza una parada de emergenc ia. El sistema se
enc uentra realizando la dosif icación en estado normal y una vez activada es ta opc ión, e l s is tema
de giro s e des activó y el software para ev ita r daños f uturos inactiva y cierra e l puerto seria l
utilizado.
2.10 6 .2 PRUEBAS DE VERIF ICACION DEL SISTEMA.
Para realizar las pruebas y v alidac iones del sistema completo se u tilizó tres dif eren tes líqu idos ,
agua, leche y k umis, de esta fo rma verific ábamos la exac titud del p roceso cuando la densidad de l
fluido cambia.
Se realizaron pruebas se lecc ionando c antidades de 2ml, 8ml, 13ml, 18ml, 23ml, 28ml, 36ml y
40ml.
0
20
40
60
80
100
120
0 10 20 30 40 50
Mililitros
Segu
ndos Kumis
AguaLeche
F igura 55. Cantidad dosificad a vs. Tiempo del proceso r equ erido
Como podemos v er en la f igura 38, los tiempos obten idos de dosific ado c on los d ife rentes líquidos
presentaron resultados simila res para los tres líquidos. Sin embargo es necesario tener en cuenta
que estas pruebas se hicieron c on los líqu idos a temperatura ambiente .
Igualmente en las pruebas se obtuvo en promedio un porcenta je de error de menos de 0.05 ml.
Adicionalmente se presento una pertu rbación en las pruebas, en algunos casos el tubo telescóp ico
succionador tomaba aire, generando en estas mediciones un porcentaje de error cons iderab le .
Esta perturbación es causada por el bajo niv el de líquido en el tanque almac enador o por e l cie rre y
apertura de la palanca de la v álvu la. Una so lución ef ic az a esta perturbación , es diseñar un s is tema
de contro l realimentado, para lo cual es necesario realizar una medic ión de niv el sobre e l envase
IEL2-I-06-08
55
fina l de l líquido , ya s ea por med io de un proces amiento de imágenes o por una re lación peso-
mililitros.
IEL2-I-06-08
56
4. PRESUPEST O
Una v ez realizada toda la imp lementación del sistema, identificamos e l cos to total de inversión para
la rea lización de es te pro totipo. La tabla 3 muestra un resumen de la instrumentación necesario y
su correspondiente costo.
Tabla 3. Presupuesto d e adquisición d el s is tema
C omentario: Horas d e ingeniería
IEL2-I-06-08
57
CONCL USIONES
Como primera conclusión, se cumplió el objetivo princ ipal de este proy ec to y cada uno de s us
objetivos espec íf icos, pues to que se desarrolló un dispos itivo efectivo y versátil, dado que las
pruebas lo demos traron y , a s u vez, es adaptab le a nuevas mod if icaciones gracias a los elementos
que s e eligieron para su implementación.
Se realizo una revis ión de l estado del arte en cuanto los sistemas de dosif icación de líquidos .
Se logró una caracterizac ión de ta llada y conf iable del c omportamiento de v ariables de un s is tema
de dosificac ión, entradas, salidas y pos ibles pertu rbaciones, demostrando así la necesidad de una
acc ión correctiv a y al mismo tiempo, dando una base para in ic iar e l dis eño del dispositivo.
Se implementó un dispositivo con recursos suf icientes para hacerlo adaptable a nuev as
tecno logías .
Se realizaron pruebas de va lidac ión satisf ac torias que demuestran que el d is positiv o puede ser
imp lementado en proces os reales para hacer nuev as pruebas y concluir def in itivamente si es
aplicable a la problemática de la Indus tria.
Se realizo un diseño de bajo c osto de adquisic ión, comparado con los sistemas actuales.
Se abrió camino para pos ib les nuev as líneas de inves tigación que bus quen mejorar el d ispositivo y
que lo hagan ver como un d ispositiv o de posib le p roducción.
IEL2-I-06-08
58
BIBLIOGRAFIA Y REF ERENCIAS [1] La nuev a plan ta de jarabes de C.I. Súper de A limentos S .A. El dulc e sabor de Co lombia.
http://www.c olciencias .gov .c o/agenda/pdfs/pn_35.pdf [2 ]
PETRECO: http://www.c -a-m.com/ EFD: http://www.efd-inc.com/espano l/xyz/ DOSATRON: http ://www.dosatron.com.mx /docs/HYGSP20050113.pdf TECNUM: h ttp://www.tecnum.com.ve/tc%5Cnosotros_proy ectos.htm#s ubir EUROTEK AUTOMATIZACION:
http://www.interempresas.net/Quimica /FeriaVirtual/Res eny aProduc to .asp?R=9836 [3 ] http://www.dosatron .com.mx /docs/HYGSP20050113.pdf [4 ] Cas tillo C ontreras, Iv án. Soto Sánchez, Jhon Jairo. Metodología para el Desarrollo de
Diseños en Ingen iería . Bogota D.C., 2002, 72 paginas. Proyecto Espec ia l. Univ ersidad de ls o Andes . Facu ltad de Ingenierpia. Departamento de Ingeniería Elec trón ica y Electrica .
[5 ] http://www.latinpack .com/sp/produ its /p roduits06.html [6 ] http://brinkmann.c om/products/buret_bottletop_de.as p [7 ] Brinkmann Bottle Top Buret 25/50, Instruction Manual. [8 ] Cas tillo Contreras ., Iván. METODOLOGIA GEMMA [9 ] http://www.geoc ities .com/ejemplo_mscomm/index.html [10] http://acm.asoc.f i.upm.es/sigbot/docus /cny 70.pdf [11] http://www.x -robotics.com/robots _simples_ ing.htm [12] http://www.terra .es/personal/fremiro/Archiv os/L293b.pdf#search=%22L293B%22 [13] http://www.s t.com/stonline /books/pdf /docs/1328.pdf#search=%22L293%22 [14]
http://www.lou tre.org/schemas _chaine_hif i/data_sheet_composants/MC78XX.pdf #search=%22MC7805%22
IEL2-I-06-08
59
Anexo A. Co digo PSoC
//---- ------ --- --- ------------- --- --- ------ --- --- --------- --- --- ------ --- --- --
// C main line
//---- ------ --- --- ------------- --- --- ------ --- --- --------- --- --- ------ --- --- --
#include <m8c.h> // part spec ific const ant s and macr os
#include "PSoCAPI.h" // PSoC API def init ions f or all User Modu #include "st dl ib. h"
//dec lar acion de var iables y f unciones
int Dato, dator;
char cantidad_ingresada[ 1]; int cantidad_ingr es ada_1;
int i, numer o_gir o, D at o_1,c antidad; unsigned giro;
char cantidad_pc;
unsigned int dat o_11, par o_er; int v erifica_c antidad;
char dat o_transmit ir[20];
int dato_enviar; int c ontador_enviar;
int c antidad_dosific ar;
int c onteo_sens or; int c onteo_inicial;
char dat o_sensor _old;
char dat o_sensor _new; int dato_fin;
char dat o_new;
char dat o_old; int c ontador_sensor;
int activ ar _giro;
int r etar do_mot or, c ualquiera; int c onteo_final;
int c onteo_actual;
int accionar_mot or; int c ontr ol_inicial;
int f in_dosific acion;
void identificar(int);
void r ecibir _r x(int );
void r ecibir _r x_2(int); void env iar _tx (int);
void act ivar _giro_motor(int);
void main( ){
//inic ial iz acion del PSoC Counter 8_1_W rit ePeriod( 156);
Count er 8_1_DisableInt();
IEL2-I-06-08
60
Counter 8_1_S tart(); UART_1_S tart (UART_PARITY_NONE);
M8C_EnableG Int ;
verific a_cantidad = 0; conteo_inic ial= 0;
contador _s ens or=0;
numero_gir o = 120;
ac cionar _m ot or = 0;
control_inic ial = 0;
conteo_s ensor = 0; control_inic ial = 0;
ret ar do_motor = 0;
dat or=0; par o_er= 1;
PRT1DR=0xF F;
whi le (1) { //sist ema pr epar ado para r ec ibir la cantidad a dosific ar
recibir _r x(dat or);
} }
void r ecibir _r x(int dator ){
if ((UART_1_bReadRxSt atus() & UART_1_RX_REG _F ULL)) { //ver ific ac ión de ex istencia de dat o en pin conectado c on el puert o s erial.
cantidad_pc = UART_1_bReadRxData(); //lect ur a del dat o enviado desde la interfaz
dat or= 1; cantidad_ingr esada_1 = (int)c antidad_pc; //conver sión del dat o r ecibido en ent er o
if(( cantidad_ingresada_1 > = 1)&&(cantidad_ingresada_1 < = 20)) { // v erificac ión s i la cantidad es corr ect a
Dat o_1= 1; env iar _tx (D at o_1); //envia el aviso de cantidad correcta
conteo_final=cant idad_ingres ada_1;
act ivar_giro_m ot or( c onteo_f inal); // inicia pr oceso de dosif ic ación }
els e{
Dat o_1= 2;
env iar _tx (D at o_1); //envia el aviso de cantidad inc orr ect a
recibir _r x _2(dator); // est a a la es pera par a una nuev a v er ificación }
}
} void r ecibir _r x_2(int dator) {
if ((UART_1_bReadRxSt atus() & UART_1_RX_REG _F ULL)) { //ver ific ac ión de existencia de dat o en pin conect ado c on
el puert o s erial. cantidad_pc = UART_1_bReadRxData();//lect ura del dato enviado des de la int erf az
cantidad_ingr esada_1 = (int)c antidad_pc; //conver sión del dat o r ecibido en ent er o
dat or= 2; if(( cantidad_ingresada_1 > = 1)&&(cantidad_ingresada_1 < = 20)) { // v erificac ión s i la cantidad es corr ect a
Dat o_1= 1;
env iar _tx (D at o_1); //envia el avis o de cantidad correcta conteo_final=cant idad_ingres ada_1;
act ivar_giro_m ot or( c onteo_f inal); // env ia el aviso de cantidad cor recta
} els e{
Dat o_1= 2;
IEL2-I-06-08
61
env iar _tx (D at o_1); //envia el aviso de cantidad inc orr ect a recibir _r x(dator); //esta a la espera par a una nuev a v er ific ación
}
} }
void env iar _tx (int dato_enviar){
dat o_transmit ir[0] = 0;
itoa( dat o_tr ansmitir, dato_enviar, 10); // se conviert e el dat o a enviar en char
contador _env iar = 0;
while (dato_tr ansmiti r[ contador _enviar]){ while (!(bUART_1_R eadT xS tat us() & UART _1_T X_BUFF ER_EMPTY) ) {}//se ev it a err or
UART_1_SendData( dato_tr ansmitir[ c ontador _enviar]);//s e env ia el dato
contador _env iar+ +; }
}
void act ivar _giro_motor(cont eo_final) { ret ar do_motor=0;
act ivar_gir o=0;
dat o_sensor_new = (PRT 2DR&0x 01);//prim er a lect ura del sens or dat o_sensor_old = (PRT2DR&0x01);// pr imera lectur a del sensor
contador _s ens or = 0;
conteo_inic ial= 0; while( conteo_inicial < cont eo_final){ //contr ol de no s uper ar el c ont eo requerido
while (activ ar _giro < numero_gir o){
if ((UART_1_bReadRxSt atus() & UART_1_RX_REG _F ULL)) {//v er ific ación de dat o en pin cantidad_pc = UART_1_bReadRxData(); //lect ur a del dat o
cantidad_ingr esada[ 0]= cantidad_pc;
par o_er = at oi(cantidad_ingr esada); //conversión a ent ero del dato }
if( par o_er = = 0){ //ver ific ac ión de activación de par ada de emergencia
act ivar_giro = numer o_giro + 1;// desactiv a el giro del mot or conteo_inic ial = c ont eo_final + 1;// des actva el proces o
}
//si no hay par a de emergencia se continua con el pr oc eso
PRT1DR=0x00; // act ivacion del gir o del mot or
dat o_sensor_new =(PRT2DR&0x01); //lectura act ual del s ens or if(( dat o_s ensor _new )!= (dato_sens or_old) ){ //v erificac ion de c ont eo de ranur as
act ivar_giro++ ; //aumenta el numero de r anuras act uales
dat o_sensor_old= dato_sens or_new; // act ualiz acion del dat o }
//retar do
cualquier a= 0; while( cualquier a < 1000){
cualquier a+ +;
}
}
act ivar_gir o = 0; conteo_inic ial+ +; //aum ent o en lso m il ilitr os act ualment e dosif ic ados
enviar _tx (c ont eo_inicial);// envio de inf ormación del estado del pr oc es o
par o_er = 1; }
conteo_inic ial = 0;
IEL2-I-06-08
62
act ivar_gir o=0; PRT1DR=0xF F;//desactivacion de motor
conteo_final=0;
}
IEL2-I-06-08
63
Anexo B. Codigo Formu larios - Microsoft Visual Basic 6 .0
Privat e Sub B ot on_Abr ir_Click( )
'A l puls ar aquí abr e un puert o s er ial
On E rror G oT o m anejar_err ores MSComm1.CommPort = nr o_puert o 'P as o 1: eli jo el puerto
MSComm1.Sett ings = S tr$( velocidad) + ",N,8,1" 'P as o 2:
' prepar o par ámetr os de c omunicación MSComm1.PortOpen = True ' Paso 3: I nt ento abrir el
'puert o. Puedo no lograrlo: si no ex ist e, o si otr o
'pr ograma lo está us ando. Aquí puede oc urr ir un err or 'y s altarí a a la etiquet a " manejar _er ror es "
MsgBox ( "Puert o COM" + Str$(nr o_puert o) + ": abierto O K")
E tiq_Puerto.Caption = "CO M" + Str$(nr o_puert o) + ":" E tiq_Velocidad.Capt ion = S tr$(veloc idad) + " bauds"
E tiq_Estado.For eC olor = &HFF00& 'C olor v er de E tiq_Estado.Capt ion = "Abierto"
GoT o Sal ir 'T odo Ok, continuar.
manejar _er ror es:
MsgBox ("Err or al intent ar abr ir COM" + S tr$( nr o_puerto) ) MsgBox ("Err or det ectado por Vis ual Basic: " + Err.Descr iption)
Res ume S al ir ' R es ume me permit e continuar con el programa.
Salir:
MsgB ox "Por fav or seleccione la c antidad que se quier e dosific ar"
'Aquí puedo poner algo que quier a que se ejec ute en 'c ualquier situación.
End Sub
Privat e Sub B ot on_Ac ept ar_Click()
End Sub
Privat e Sub B ot on_Ay uda_C lick ()
'Abre el texto Leeme.txt que se encuentr a en el m ismo
'dir ectorio que el ejecut able "E jemplo de us o de MSCO MM.EXE"
Dim r uta_leeme As String
rut a_leeme = " " + App.Path + "\" + "leeme.txt " On E rror G oT o E rror_Abriendo
Shel l "C:\W indows\ not epad.exe" + ruta_leeme, v bN ormalFoc us
GoTo Seguir
Error_Abriendo:
MsgBox "No se pudo abrir LEEME.T XT en el B loc de Notas" MsgBox "V is ual Basic detectó: " + E rr.Description
Res ume S eguir
Seguir:
'Cont inuar con el pr ograma
IEL2-I-06-08
64
End Sub
Privat e Sub B ot on_Cerrar _C lick ()
'A l pulsar aquí cierr a un puerto serial On E rror G oT o m anejar_err ores 'P rot ejo fr ent e al er ror.
MSComm1.PortOpen = Fals e 'Puede haber err or s i
'intent o c err ar un puert o que est á en uso por otro
'pr ograma, entr e otr as c ausas.
MsgBox ("Puert o COM" + S tr$(nr o_puerto) + ": cerr ado O K")
E tiq_Estado.For eC olor = &HFF& 'Rojo E tiq_Estado = "CERRADO"
G oT o Salir
manejar _er ror es:
MsgBox ("Err or al intent ar c err ar COM" + Str$(nro_puert o))
MsgBox ("Vis ual basic detectó: " + E rr.Des cr iption) Res ume S al ir
Salir:
End Sub
Privat e Sub B ot on_Env iar _C lick ()
' La propiedad Output r equiere un Var iant
Dim text o_sal ida As Byte texto_salida = Val(s eleccion_cant idad.T ext)
Text o_M ensajes.Text = "Env iando..."
MsgB ox "H a s elecc ionado la cant idad a dosificar " 'A l escribir en la propiedad O utput, s e envian
'los dat os desde el puert o al ext er ior.
'debo pr ot eger fr ent e a err or es par a que el pr ogr ama 'no abort e.
On E rror G oT o E rror_Enviando
MSComm1.Output = Chr (texto_salida)
GoTo Salir
Error_Enviando:
MsgBox "Ocurr ió un er r or al intentar enviar el t ext o. V is ual Basic detectò: " + E rr.D es cr iption ' MsgB ox "Visual Bas ic det ect ó: " + Err.Desc ript ion
Texto_Mens ajes.T ext = "O cur rió er r or al enviar, por f avor s eleccione y abrà el puerto "
Res ume Sal ir
Salir:
End Sub
Privat e Sub C om bo_C ant idad_Cl ic k() Dim viejo_c antidad As Int eger
viejo_cantidad = cantidad 'Me f ijo si el usuario 'intent a c ambiar la c antidad s eleccionada.
cant idad = Combo_Cantidad.ListI ndex
IEL2-I-06-08
65
cant idad = (Combo_Cant idad.It emData(cantidad)) End Sub
Privat e Sub C om bo_Puert o_Click () 'Aquí selec ciona el numer o del puert o a us ar.
Dim viejo_puert o As Int eger
viejo_puert o = nr o_puert o 'M e fi jo si el usuario
'intent a c ambiar de puerto.
nr o_puerto = Combo_Puert o.ListI ndex nr o_puerto = Combo_Puert o.It emDat a(nro_puerto)
'G racias a la v ar iable mensajes _c ambios puedo suprim ir 'el mens aje c uando ar ranca el programa.
If (nr o_puerto <> viejo_puert o) And (mensajes _cambios = T rue) _
Then Ms gB ox "D ebe abr ir este puert o antes de usarlo"
End Sub
Privat e Sub Emergenc ia_Cl ick()
' La propiedad Output r equiere un Var iant Dim text o_sal ida_er As Variant
texto_salida_er = "0"
Text o_f inal = "Oc urr io un err or, el pr oces o no t erm ino c orr ect amente, por f avor inicie de nuev o" Text o_dosif ic ada = "ERROR"
'A l escribir en la propiedad O utput, s e envian
'los dat os desde el puert o al ext er ior. 'debo pr ot eger fr ent e a err or es par a que el pr ogr ama
'no abort e.
On E rror GoTo E r ror _Enviando MSComm1.Output = text o_sal ida_er
Text o_M ensajes = " "
Text o_dosif ic ada = " "
Text o_f inal = " "
Text o_c antidad = " " 'A l pulsar aquí cierr a un puerto serial
On E rror G oT o m anejar_err ores 'P rot ejo fr ent e al er ror.
MSComm1.PortOpen = Fals e 'Puede haber err or s i 'intent o c err ar un puert o que est á en uso por otro
'pr ograma, entr e otr as c ausas.
MsgBox ("Puert o COM" + S tr$(nr o_puerto) + ": cerr ado O K") E tiq_Estado.For eC olor = &HFF& 'Rojo
E tiq_Estado = "CERRADO"
G oT o Salir
Error_Enviando: MsgBox "Ocurr ió un er r or al intentar enviar el t ext o"
MsgBox "Vis ual Basic det ect ó: " + Err.Descr iption
Texto_Mens ajes.T ext = "O cur rió er r or al enviar " GoTo Sal ir
IEL2-I-06-08
66
manejar _er ror es: MsgBox ("Err or al intent ar c err ar COM" + Str$(nro_puert o))
MsgBox ("Vis ual basic detectó: " + E rr.Des cr iption)
Res ume S al ir
Salir:
End Sub
Privat e Sub F orm_Load( ) '**** P rogr ama de demostrac ión del c ontrol MSCOMM ****
' Se usa el MSCOMM en su f orma más sim ple:
' 1) Sólo en modo "t ext o" ( no "binario") ' 2) Sólo se manejan los ev ent os de r ecepción y
' transmis ión (ignora err ores de datos, ring del
' modem, etc.)
' Var iables globales, definidas en Module1:
' mensajes _cambios as boolean S uprime mensajes al iniciar pr ogr ama. ' v elocidad As I nteger Bauds
' nro_puert o As I nt eger Cual puerto us o
' inc luy e_s alt o_c ar r o As Boolean Enviar o no CR+ LF (0x0D y 0x0A) ' c adena_entr ada As Variant R ec ibe el texto del contr ol.
mens ajes_cambios = Fals e
veloc idad = 19200
nr o_puerto = 9600 cant idad = 1
Combo_Puert o. ListI ndex = 0
mens ajes_cambios = True
'*** P repar ación del objet o MSCOMM1 par a r ecibir *******
'*** y transmiti r *******
MSComm1.InputLen = 0 ' E l valor 0 hac e que se lea t odo ' el cont enido del buffer de recepcion que posee
' el contr ol MSComm.
' S i Input Len v al iera 6, se r ecibir ian los prim er os 6 'caracter es de es e buff er, ignor ando el r est o.
MSComm1.RThres hold = 1 ' al rec ibir uno o m as caracteres
'se gener ará el ev ento OnComm y la propiedad 'CommEvent c ont endr á el valor comEvR ec eiv e.
'La constant e comEvReceive vale 2 .
MSComm1.SThr eshold = 1 ' al enviar uno o mas caracter es
'se gener ar á el ev ent o OnComm y la propiedad
'ComEvent c ontendr á el v alor comEvSend 'La const ant e c omEvSend vale 1.
'*** Par a tr abajar con MSCO MM, falt an los siguient es pas os:
' 1) E specif ic ar c ual port va a usar: ' MSComm1.C ommPort = 1
' 2) E stablecer parámetr os de la c om unicación:
IEL2-I-06-08
67
' MSComm1.S ettings = "9600,N, 8, 1" ' veloc idad= 9600, paridad= No usada,
' cant idad de bits= 8,
' cant idad de bits de par ada (stop bits) = 1 ' 19200 baudios, sin paridad, 8 bits de datos y 1 bit de par ada.
' 3) A br ir el puerto:
' MSComm1.PortOpen = True
' Estos 3 pasos s e l lev an a c abo en el botón llamado
' Bot on_A br ir
' MsgB ox "Por f av or s eleccione y abra el puert o antes de empez ar a ut iliz arlo"
Etiq_Est ado.F or eColor = &HFF & 'Rojo
Etiq_Est ado.C aption = "CERRADO" 'Boton_Ay uda_O culto.SetFocus
End Sub
Privat e Sub Image1_C l ic k()
End Sub
Privat e Sub MSC omm1_OnComm() 'Aqui se int er c eptan los ev entos que se pr oducen
'durante la comunic ación RS 232.
'Cada vez que pasa algo r elativ o al puerto CO M 'en us o, cambia el v alor de la pr opiedad CommEvent
'E jem plo: S i s uena el t elef ono, y el modem
'está conectado a la linea, y se est á uti lizando el 'puert o COM c orr es pondient e al m odem, s e generar á el
' evento O nComm y la pr opiedad CommEv ent valdr á 6 .
' ( 6 es el v alor de la const ant e c ommEvRing, y a def inida ' inter nament e por V is ual Basic ).
Dim envio As Boolean
envio = False
If MSComm1.CommEvent = comEvR ec eiv e T hen 'Label1 = " "
text o_llego = Int(MSComm1.Input )
' Label1 = texto_llego
If text o_l lego = "98" Then
Texto_final = "Ocurrio un err or, el proces o no term ino c orr ect ament e, por favor inicie de nuev o" av iso_recibido = 0
End If
If avis o_r ecibido = 2 Then
If text o_l lego = cantidad_ej T hen
Texto_dosificada = S tr$(texto_l lego) + " MILILITROS" Texto_final = "El proc es o ha t erm inado ex it osamente"
avis o_rec ibido = 0
End If
If text o_l lego < cantidad_ej T hen
IEL2-I-06-08
68
Texto_dosificada = S tr$(texto_l lego) + " MILILITROS" Texto_final = "El proc es o se enc uentr a aun en ejecutación"
avis o_rec ibido = aviso_r ec ibido
End If End If
If avis o_r ecibido = 1 Then
If text o_l lego = "1" T hen
Texto_cant idad = "Es v alida. El P roces o c ontinua satisfact oriament e"
avis o_rec ibido = aviso_r ec ibido + 1
End If If text o_l lego = "2" T hen
Texto_cant idad = "No es v alida. Por f avor ingr ese de nuev o la c antidad s olicitada"
avis o_rec ibido = 0 End If
End If
'Label2 = avis o_rec ibido End If
If MSComm1.CommEvent = comEvSend T hen Texto_Mens ajes = "Se ha inic iado el proces o c on la cantidad selec cionada"
Texto_dosif icada = " "
Texto_final = " " Texto_cantidad = " "
avis o_recibido = avis o_r ecibido + 1
cantidad_ej = Int( selecc ion_c antidad) End If
End Sub
Privat e Sub T ext o_c antidad_dosificada_Change()
End Sub
IEL2-I-06-08
69
An exo C. Codigo Module - Microsoft V isual Basic 6.0
Public v eloc idad As In teger ' Bauds
Public nro_puerto As Integer 'Cua l puerto us o
Public c antidad As Integer
Public inc luye_salto_c arro As Boo lean 'nv iar o no CR+LF (0x0D y 0x 0A)
Public c adena_entrada As Variant ' Texto recibido por el puerto seria l
Public mensa jes_cambios As Boo lean 'Suprime mensajes al in ic iar p rograma.
Public aviso_recibido As Integer
Public tex to_llego As Integer
Public c antidad_e j As In teger
Recommended