You are on page 1of 14

Automatizacin de compactadora de PET.

El control de la compacta-dora se lleva acabo desde un software desarrollado y programado en c y c++, el programa tiene la caracterstica de funcionar como servidor y cliente, tomando en cuenta que se puede controlar desde una red local e Internet. Partes de la automatizaci n. !ardware "#omunicaci n entre procesador de la computadora y electrov$lvulas de la compactadora%. &a comunicaci n entre el procesador y las electrov$lvulas, se realiza por medio de un circuito electr nico intermediario, el cual procesa las se'ales del procesador, por medio del puerto paralelo con se'ales de () "* binario% y +) "+ binario%, al igual este las amplifica, por medio de transistores y releva-dores de control, a un m$,imo de --+ ). El circuito esta impreso sobre una tar.eta y cuenta con los elementos soldados. /u comunicaci n es por medio del puerto paralelo, y su alimentaci n es por medio de 0/1 a ().

El circuito electr nico puede enviar * 1yte simult$neamente, y recibir, - 1ytes simult$neamente, el procesamiento de datos genera la salida de activaci n de ( releva dores de control, cada uno con dos salidas 23 y 2#, 4aciendo un total de *+ salidas, de los cuales se utilizan para las siguientes tareas.

Salidas: Para generar una salida, se debe procesar la se'al, para eso se requiere, un amplificador de se'al, "transistor 5IP6*%, y un rel7-vador de control. 8elevador * y -9 #ontrol de la electrov$lvula de doble efecto, para la activaci n del pist n de compactaci n. 8elevador *9 #ontrol del solenoide 3*. 8elevador -9 #ontrol del solenoide 3-. 8elevador : y 69 #ontrol de la electrov$lvula de doble efecto, para la activaci n del pist n de e,pulsi n. 8elevador :9 #ontrol del solenoide 1* 8elevador 69 #ontrol del solenoide 18elevador (9 #ontrol de la banda transportadora. &os solenoides funcionan a -6). Entradas: #uenta con 6 entradas ; bits < * byte. 2o requiere un procesamiento a comparaci n de las salidas, solo requiere una protecci n "8esistencias%. &as entradas no tienen un uso definido, depende a la programaci n y uso de sensores e interruptores de limite. El circuito, tambi7n cuenta con indicadores luminosos "&E=/%. #uenta con salidas de () y tierra, para un uso no definido. Puerto paralelo, (Puerto de comunicacin entre el programa y el hardware de control de las electrov lvulas! &a comunicaci n entre la computadora y la tar.eta electr nica para control de las electrov$lvulas, se realiza por medio del puerto paralelo. 0n puerto paralelo es una interfaz entre una computadora y un perif7rico, cuya principal caracterstica es que los bits de datos via.an .untos, enviando un paquete de byte a la vez.

El puerto paralelo de las computadoras, de acuerdo a la norma #entronics, est$ compuesto por un bus de comunicaci n bidireccional de " #its de datos, adem$s de un con.unto de lneas de protocolo. &as lneas de comunicaci n cuentan con un retenedor que mantiene el >ltimo valor que les fue escrito 4asta que se escribe un nuevo dato, las caractersticas el7ctricas son9 5ensi n de nivel alto9 :,: o ( ). 5ensi n de nivel ba.o9 + ). Intensidad de salida m$,ima9 -,? m3. Intensidad de entrada m$,ima9 -6 m3. &os sistemas operativos basados en =@/ y compatibles gestionan las interfaces de puerto paralelo con los nombres &P5*, &P5- y as sucesivamente, $ni% en cam#io los nom#ra como &dev&lp', &dev&lp(, y dem s. )as direcciones #ase de los dos primeros puertos son: )PT( * '%+,". )PT- * '%-,"

Programacin de la compactadora en c y c.. )engua/e de programacin c. # es un lengua.e de programaci n creado en *AB- por =ennis C. 8itc4ie en los &aboratorios 1ell como evoluci n del anterior lengua.e 1, a su vez basado en 1#P&. 3l igual que 1, es un lengua.e orientado a la implementaci n de /istemas @perativos, concretamente 0ni,. # es apreciado por la eficiencia del c digo que produce y es el lengua.e de programaci n m$s popular para crear software de sistemas, aunque tambi7n se utiliza para crear aplicaciones. /e trata de un lengua.e fuertemente tipificado de medio nivel pero con muc4as caractersticas de ba.o nivel. =ispone de las estructuras tpicas de los lengua.es de alto nivel pero, a su vez, dispone de construcciones del lengua.e que permiten un control a muy ba.o nivel. &os compiladores suelen ofrecer e,tensiones al lengua.e que posibilitan mezclar c digo en ensamblador con c digo # o acceder directamente a memoria o dispositivos perif7ricos.

)engua/e de programacin c.. #++ es un lengua.e de programaci n dise'ado a mediados de los a'os *A;+ por 1.arne /troustrup. &a intenci n de su creaci n fue el e,tender al e,itoso lengua.e de programaci n # con mecanismos que permitan la manipulaci n de ob.etos. En ese sentido, desde el punto de vista de los lengua.es orientados a ob.etos, el #++ es un lengua.e 4brido. Posteriormente se a'adieron facilidades de programaci n gen7rica, que se sum a los otros dos paradigmas que ya estaban admitidos "programaci n estructurada y la programaci n orientada a ob.etos%. Por esto se suele decir que el #++ es un lengua.e de programaci n multiparadigma. 0ompiladores. 0no de los compiladores libres de #++ es el de D20, el compilador D++ "parte del proyecto D##, que engloba varios compiladores para distintos lengua.es%. @tros compiladores comunes son Intel #+ + #ompiler, el compilador de Ecode, el compilador de 1orland #++, el compilador de #odeFarrior #+ +, el compilador g++ de #ygwin, el compilador g++ de CinDF, el compilador de )isual #+ +, #arbide.c++, entre otros. 0n compilador es un programa inform$tico que traduce un programa escrito en un lengua.e de programaci n a otro lengua.e de programaci n, generando un programa equivalente que la m$quina ser$ capaz de interpretar. 0sualmente el segundo lengua.e es lengua.e de m$quina, pero tambi7n puede ser un c digo intermedio "bytecode%, o simplemente te,to. Este proceso de traducci n se conoce como compilaci n. 0n compilador es un programa que permite traducir el c digo fuente de un programa en lengua.e de alto nivel, a otro lengua.e de nivel inferior "tpicamente lengua.e de m$quina%. =e esta manera un programador puede dise'ar un programa en un lengua.e muc4o m$s cercano a como piensa un ser 4umano, para luego compilarlo a un programa m$s mane.able por una computadora. &a compilaci n de un programa # se realiza en varias fases que normalmente son automatizadas y ocultadas por los entornos de desarrollo9 Preprocesado consistente en modificar el c digo fuente en # seg>n una serie de instrucciones "denominadas directivas de preprocesado% simplificando de esta forma el traba.o del compilador. Por e.emplo, una de las acciones m$s importantes es la modificaci n de las inclusiones "Ginclude% por las declaraciones reales e,istentes en el arc4ivo indicado. #ompilaci n que genera el c digo ob.eto a partir del c digo ya preprocesado. Enlazado que une los c digos ob.eto de los distintos m dulos y bibliotecas e,ternas "como las bibliotecas del sistema% para generar el programa e.ecutable final. )engua/e ensam#lador. Es un lengua.e de programaci n de ba.o nivel para los computadores,

microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representaci n simb lica de los c digos de m$quina binarios y otras constantes necesarias para programar una arquitectura dada de #P0 y constituye la representaci n m$s directa del c digo m$quina )engua/e de ma1uina. El lengua.e de m$quina es el sistema de c digos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un aut mata. Este lengua.e est$ compuesto por un con.unto de instrucciones que determinan acciones al ser tomadas por la m$quina. 200 El D20 #ompiler #ollection "colecci n de compiladores D20% es un con.unto de compiladores creados por el proyecto D20. D## es software libre y lo distribuye la Hree /oftware Houndation "H/H% ba.o la licencia general p>blica DP&. Estos compiladores se consideran est$ndar para los sistemas operativos derivados de 02IE, de c digo abierto y tambi7n de propietarios, como Cac @/ E. D## requiere el con.unto de aplicaciones conocido como binutils para realizar tareas como identificar arc4ivos ob.eto u obtener su tama'o para copiarlos, traducirlos o crear listas, enlazarlos, o quitarles smbolos innecesarios. 2.. g++ es el alias tradicional de D20 #++, un con.unto gratuito de compiladores de #++. Horma parte del D##, D20 #ompiler #ollection "del ingl7s, colecci n de compiladores D20%. En sistemas operativos D20, gcc es el comando usado para e.ecutar el compilador de #, mientras que g++ e.ecuta el compilador de #++. 3river o controlador. 0n controlador de dispositivo "llamado normalmente controlador, o, en ingl7s, driver% es un programa inform$tico que permite al sistema operativo interactuar con un perif7rico, 4aciendo una abstracci n del 4ardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. /e puede esquematizar como un manual de instrucciones que le indica c mo debe controlar y comunicarse con un dispositivo en particular. Por tanto, es una pieza esencial, sin la cual no se podra usar el 4ardware.

So4tware de control y driver de la tar/eta electrnica. El software esta programado en c y c++, mediante una programaci n modular y programaci n

orientada a ob.etos. Huncionamiento. El operador de la compactadora, puede controlarla por medio del software cliente, ya sea consola o versi n gr$fica, el cual realiza una serie de procesos y automatizaci n, el cual los traduce a comandos, para enviarlas cifradas al servidor, "ya sea por medio local o Internet%, el servidor traduce los comandos generados por el cliente, y este recolecta los elementos ya programados de la compacta-dora "1anda transportadora o electrov$lvulas%, para enviarle las se'ales al driver, y este generar, salidas o procesar entradas del circuito electr nico. El servidor y cliente son los encargados de la comunicaci n y control a distancia de la compacta-dora.

=river El driver es el elemento central encargado de controlar la tar.eta electr nica, tambi7n es el encargado de obtener permisos para la comunicaci n entre el puerto +,:B; "Puerto paralelo%, obtiene entradas y salidas, y adem$s el estado de la tar.eta electr nica. &a programaci n del driver o controlador genera funciones que ser$n utilizadas por otros programas, ocultando las funciones b$sicas de entrada y salida de comunicaci n del puerto paralelo. Hunciones del driver9 int obtPerm"% Esta funci n es la encargada de obtener los permisos del puerto paralelo +,:B;, retorna un valor entero mayor a +, si la operaci n se realiz correctamente. Para activar esta funci n se requiere de que el usuario tenga permisos de root o s>per usuario "D20I&inu,%. void outPar"int dat% Esta funci n es la encargada de enviar datos de salida a la tar.eta electr nica, los datos que se envan, son tomados como un valor entero, pero son traducidos a binario, para uso del 4ardware. E.emplo9 int dat < B equivale en binario a ++*** El valor m$,imo que puede procesar el circuito electr nico de la compacta-dora es :* decimal ***** binario. int inPar"%J Hunci n, encargada de obtener y procesar los datos de entrada de la tar.eta electr nica, los datos son procesados en binario y traducidos en decimalJ retorna el valor de la se'al obtenida.

"Esta funci n puede ser utilizada, para el procesamiento de sensores e interruptores en la tar.eta electr nica de control.% void circuitoPrueba"%J Hunci n, e,tra, encargada de probar, y verificar el funcionamiento del 4ardware. void quitPerm"%J Hunci n, encargada de quitar los permisos de la comunicaci n por medio del puerto +,:B; "Puerto paralelo%. 0na vez e.ecutada la funci n, no se podr$, enviar ni recibir datos. int estado"%J @btiene los estados de la tar.eta electr nica, y retorna el estado en decimal. E.emplo **++*<-(, "8elevador *,6,( activado%. Codulo de programaci n de elementos de la compacta-dora. Es el encargado de controlar y verificar cada uno de los elementos de la compacta-dora, y posteriormente, enva las se'ales al driver. /u programaci n es orientada a ob.etos en #++. Este modulo es el que realiza las operaciones l gicas y binarias para el procesamiento por el driver. Ka que para enviar una se'al diferente, se requiere 4acer una suma o resta en binario y comprobaciones l gicas. E.emplo. #omprobar que el pist n 1 no este accionado. El estado del pist n 1 accionado es. ++*++<6J y todas sus posibilidades, 6, ?, *-, -+, --, -;, :+ if"est<<6 LL est<<? LL est<<*- LL est<<*6 LL est<<-+ LL est<<-- LL est<<-; LL est<<:+% II#omprobar si el pist n 1 no esta accionado E.emplo -9 #omprobar que el v$stago del pist n 3, este contrado. +++*+<-J y todas sus posibilidades. if"est<<- LL est<<*+ LL est<<*; LL est<<-?% II#omprobar si el v$stago esta contrado

=escripci n de funciones y clases. class compactadora9 clase que contiene todos los elementos de la compacta-dora.

#lass pist n 39 #lase encargada de controlar el pist n 3 "pist n de compactaci n%. Hunciones9 int e,pulsar"%J Hunci n encargada de e,pulsar el pist n 3, dentro de su programaci n cuenta con sentencias l gicas, para comprobar si no se encuentra ya accionado el pist n 1, retorna * si la acci n se realiz con 7,ito o + de lo contrario. void contraer"%J Hunci n encargada de contraer el pist n 3. void detener"%J Esta funci n detiene el pist n 3, en su totalidad.

#lass pist n 19 #lase encargada de controlar el pist n 1 "pist n de compactaci n%. Hunciones9 int e,pulsar"%J Hunci n encargada de e,pulsar el pist n 1, dentro de su programaci n cuenta con sentencias l gicas, para comprobar si no se encuentra ya accionado el pist n 3, retorna * si la acci n se realiz con 7,ito o + de lo contrario. void contraer"%J Hunci n encargada de contraer el pist n 1. void detener"%J Esta funci n detiene el pist n 1, en su totalidad. class 1transp9 #lase encargada de controlar la banda transportadora. Hunciones9

void iniciar"%J Hunci n para iniciar la banda transportadora. void detener"%J Hunci n para detener la banda transportadora. Programa *9 /ervidor9 software programado con el fin de preparar el equipo y la comunicaci n entre el modulo de los elementos de la compacta dora. /e caracteriza, por traba.ar como un servidor, en el puerto **(A o **B-, es capaz de resolver peticiones por medio de una red local e internet, por el protocolo 5#PIIP, el servidor, espera a un cliente, para que este controle la compacta-dora remotamente, o local.

0tiliza el modulo socMNserv, el cual tiene la programaci n necesaria para realizar una cone,i n servidor-cliente, y el modulo, criptaci n, para que los datos via.en cifrados, y seguros. &a comunicaci n entre el servidor y cliente se realiza por medio de estos mensa.es o comandos. =atos que procesa el servidor. *--E,pulsar pist n 3 **-#ontraer pist n 3 *+-=etener pist n 3 ---E,pulsar pist n 1 -*-#ontraer pist n 1 -+-=etener pist n 1 :*-Iniciar banda transportadora. :+-=etener banda transportadora. AA-#errar cone,i n cliente. =atos de envo por el servidorJ ;+-Error pist n 3 ;*-Error pist n 1 B+-@M

;--#omando no e,iste, y cone,i n cerrada. A+-cone,i n establecida. El servidor recibe el comando, lo descifra, lo procesa, y le enva la se'al al modulo elementos de la compacta-dora, "compacNelem%. 8ecibe respuesta del modulo, lo cifra y se la enva al cliente remoto. Codulo criptaci n Este modulo, esta programado, con un algoritmo de encriptaci n, el cual guarda el mensa.e, genera una llave y lo cifra con esa llave. Este modulo es necesario, ya que entre el servidor y cliente 4ay una comunicaci n, por comandos, y se requiere cierta seguridad, para que no cualquiera controle la compacta-dora.

En criptografa, un ataque man-in-t4e-middle es un ataque en el que el enemigo adquiere la capacidad de leer, insertar y modificar a voluntad, los mensa.es entre dos partes sin que ninguna de ellas conozca que el enlace entre ellos 4a sido violado. El atacante debe ser capaz de observar e interceptar mensa.es entre las dos vctimas. Hunciones9 void llaveDen"const c4ar llaveO?P%J Denera llave de encriptaci n. const c4ar Qllave@bt"%J @btiene llave de encriptaci n. void d1orrar"%J 1orra los datos. void m#ifrar"%J #ifra el mensa.e. void m=escifrar"%J =escifra el mensa.e. void mDuardar"const c4ar Qmsg%J Duarda mensa.e .

const c4arQ m@btener"%J @btiene mensa.e . int long@bt"% Rreturn mNlongJS 8etorna longitud mensa.e. Programa -9 cliente consola. Este programa es el encargado de interactuar con el operador o usuario de la compacta-dora, con un entorno no gr$fico. El programa solicita al usuario una direcci n IP del servidor y su puerto de comunicaci n. 0na vez establecida la cone,i n, se muestra un men>, de las opciones de la compacta-dora. O*P Iniciar compactaci n9 Inicia una compactaci n automatizada. O-P Iniciar compactaci n9 "por pasos%9 8ealiza una compactaci n por pasos y sin temporizadores. O:P Iniciar compactaci n manual9 El operador manipula directamente los elementos. O6P 8einiciar.9 8einicia todos los elementos de la compacta-dora. O(P =esconectar del servidor y salir9 /e desconecta y sale del servidor.

Hunciones9 void manual#omp"%J #ompactaci n manual , se manipulan directamente los componentes de la compacta-dora. O*-PPiston 39 E,pulsar. O**PPiston 39 contraer. O*+PPiston 39 =etener. O--PPiston 19 E,pulsar. O-*PPiston 19 contraer. O-+PPiston 19 =etener. O:*P1anda transportadora9 Iniciar. O:+P1anda transportadora9 =etener. void mostrarCenu"%J Cuestra men> de compactaci n. int iniciar#omp"int opc%J Inicia la compactaci n automatizada. void restart"%J 8einicia compacta-dora.

int resp/erv"%J 8ecibe la primer respuesta del servidor "A+% de cone,i n establecida. int enviar#md"int opc%J Enva comando al servidor. void procesarCenu"int cmd%J Procesa la opci n del men>. Programa :9 cliente Dr$fico. El cliente gr$fico, es un programa de interacci n entre compacta-dora, de manera gr$fica. ")ersi n mas simple del anterior%.