Anda di halaman 1dari 98

REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIN SUPERIOR INSTITUTO UNIVERSITARIO DE TECNOLOGA DR.

FEDERICO RIVERO PALACIO

DESARROLLO DE MODULO DE CONTROL REMOTO PARA LA ACTIVACIN DE CARGAS VA SMS POR MEDIO DEL MICROCONTROLADOR PIC 16F877

Autores: Freites Jhoan Marin Wilber Saab Rimn Velsquez Vicente Seccin II

CARACAS, SEPTIEMBRE DE 2011

INTRODUCCION

Las ecuaciones de Maxwell abrieron camino al desarrollo de reas como la ingeniera, especficamente la electricidad, la electrnica, las telecomunicaciones, la robtica y el control de procesos. Tal ha sido el auge alcanzado que estamos en una era en donde podemos realizar proyectos orientados al control de cualquier cantidad de equipos a distancia. Este salto en el mundo ingenieril es la semilla del proyecto que se expone en el presente informe, el cual trata sobre el control de 4 cargas va remota aplicando la comunicacin serial. Ya que hoy en da contamos con las bondades de la red GSM, podemos tomar control de cualquier equipo (realizando las adaptaciones necesarias) con solo emitir un mensaje de texto. Esto contempla un avance importante ya que el simple hecho de poder activar un motor a distancia, un artefacto electrodomstico o simplemente las luminarias de una casa es un paso adelante para lograr ver ms all de nuestras barreras y poder pensar as en un mundo cada vez ms automatizado y consumiendo la menor cantidad de recursos. En el presente informe se hablan de varios temas como lo es la red GSM, la mensajera de texto, MODEM GSM, microcontrolador PIC 16F877, el rel, brevemente se habla del contacto, el compilador CCS C, protocolo RS232, etc. A su vez, se expone una explicacin concisa acerca de cmo se desarrollo el presente proyecto.

INDICE GENERAL

pp.

Portada ndice General

i ii

INTRODUCCIN

CAPTULO I. GSM Estacin Mvil Subsistema de radio Base (BSS) Subsistema de Conmutacin de Red (NSS) Subsistema de Gestin de Red (NMS) CAPTULO II. SEND MESSAGE SHORT (SMS) Short Messaging Entity (SME) Short Message Service Center (SMSC) SMS-Gateway/Interworking MSC (SMS-GMSC) Funcionamiento de la transmisin en GSM CAPITULO III. MODULADOR/DEMODULADOR (MODEM) CAPITULO IV. MICROCONTROLADOR PIC 16F877 CAPITULO V. COMUNICACIN SERIAL RS232 Protocolo de Comunicacin RS-232 Control de flujo hardware
ii

2 4 4 7 12 15 17 17 18 21 23 27 30 31 33

Control de flujo software CAPITULO VI. EL REL Partes del Rel Clasificacin general de los rels Funcionamiento Tipos de rels segn su funcionamiento Fabricacin Caractersticas

33 34 35 35 35 36 37 37

CAPITULO VII. EL CONTACTOR Partes del contactor Clasificacin de los contactores Funcionamiento Criterios para la seleccin de un contactor Ventajas del uso de contactores CAPITULO VIII. COMPILADOR CCS C CAPITULO IX. DESARROLLO DEL MODULO DE CONTROL REMOTO PARA LA ACTIVACIN DE CARGAS VA SMS POR MEDIO DEL MICROCONTROLADOR PIC 16F877 CONCLUSIONES. BIBLIOGRAFIAS. ANEXOS. ANEXO A ANEXO B Cdigo fuente del programa grabado en el PIC en lenguaje C. Esquemtico del circuito

39 40 45 46 47 47 48 50

58 59 60

iii

CAPITULO I

SISTEMA GLOBAL PARA COMUNICACIONES MVILES (GSM)

La infraestructura de Digitel es la red GSM (Sistema Global para Comunicaciones Mviles), la cual es una tecnologa inalmbrica de tercera generacin (3G) que presta servicios de voz de alta calidad. Es un sistema celular de estndar mundial que opera en bandas de frecuencia de 900 MHz, 1800 MHz y recientemente 1900 MHz, para USA. Est compuesto por cuatro (03) subsistemas bsicos y tres (03) interfaces abiertas.

Air

A
M SC
VL R

M SC

VL R

HL R

O & M

Figura 1. Red GSM

Los sistemas celulares se basan en la divisin del rea de cobertura de un operador en lo que se denomina clulas (cells), estas clulas se caracterizan por su tamao que viene determinado por la potencia del transmisor pero de un modo muy particular ya que lo que se persigue siempre en los sistemas celulares es que la potencia de transmisin sea lo ms baja posible a fin de poder reutilizar el mayor nmero de frecuencias. El porque de tener el mayor nmero de frecuencias disponibles tiene que ver con que a mayor nmero de frecuencias libres mayor es el nmero de usuarios que pueden hacer uso del sistema ya que cada uno puede usar una frecuencia sin interferir en la de otro usuario (realmente no se utiliza una frecuencia por usuario pero la idea general es esta). De este modo todas las bandas de frecuencias se distribuyen sobre las clulas a lo largo del rea de cobertura del operador de manera que todos los canales de radio se encuentran disponibles para ser usados en cada grupo de clulas (clusters) lo cual no sucedera si se produjese una emisin de la seal con una potencia superior ya que se podra interferir en otras clulas adyacentes interfiriendo en las frecuencias disponibles. La distancia que debe existir entre dos clulas debe ser los suficientemente grande como para que no se produzca interferencia entre ellas, hay que decir tambin que hay determinados canales que se reservan para labores de sealizacin y control de toda la red. Todo lo explicado anteriormente se resume en dos condiciones que las clulas deben de verificar para que este sistema funcione: (a)- Por un lado el nivel de potencia del transmisor debe de ser el mnimo para reducir las interferencias con los transmisores de las clulas vecinas. (b)- Las clulas vecinas no pueden compartir los mismos canales, el motivo es similar al anterior, reducir el nivel de interferencias Las clulas se unen las unas a las otras mediante cable (lo ms normal) o bien mediante radio enlaces as como con la red telefnica fija. Una vez que tenemos claro el concepto de clula el siguiente nivel de organizacin que existe en GSM es el de cluster, que no es ms que un conjunto de clulas agrupadas entre

si, estos clusters suelen agrupar conjuntos de 4, 7, 12 o 21 clulas distintas que se distribuyen por todo el rea de cobertura del operador.

Figura 2. Clster de 7 clulas. Estacin Mvil: Es el Terminal porttil de transferencia de voz y datos. Se comunica con la red mvil a travs del interfaz aire (Um). Esta interfaz es bidireccional, ya que posee un enlace ascendente (MS-BTS) y otro descendente (BTS-MS). Cada llamada necesita de una frecuencia para subir (Uplink) y de otra para recibir (Downlink). La estacin mvil o terminal, contiene la tarjeta SIM, la cual contiene las caractersticas del abonado y se puede utilizar en cualquier telfono compatible. En ella se almacena informacin como es el caso del cdigo PIN, cdigo PUK, IMSI (Identificacin internacional del abonado mvil), identificacin temporal del abonado mvil y una serie de algoritmos y claves para la autentificacin. Subsistema de radio Base (BSS): Cumple las siguientes funciones: (a) Se encarga de gestionar y controlar los recursos de radio de la red de acceso.

(b) Establecer la conexin entre el MS y el NSS. (c) Gestin de movilidad del MS. (d) Mantener el contacto con el MS. (e) Encriptamiento de la interfaz de aire. (f) Procesamiento y codificacin de la voz. (g) Sealizacin. (h) Recoleccin de datos estadsticos. La BSS se compone as en tres partes, la BTS (Base Transceiver Station), la BSC (Base Station Controller) y la TRAU (Transcoder and Rate Adaptar Unit). Todos estos

componentes se comunican mediante una interfaz Abis y Asub, lo que permite la nter conectividad de componentes de diferentes fabricantes. En la siguiente figura se muestra como se encuentra constituida una NSS:

A ir

Abis

BT S

B SC

TC

Figura 3. Subsistema de Radio Base (BSS)

La BTS tiene como funcin controlar la conexin radio entre el telfono mvil y la red y es tambin conocida por clula, ya que cubre una determinada rea geogrfica. Cada BSS puede tener una o ms BTS. Las BTS albergan el equipo de transmisin / recepcin (los TRX o transceivers) y gestionan los protocolos de radio con el terminal mvil. En reas urbanas existen ms BTS que en zonas rurales y en algunos casos con caractersticas fsicas o geogrficas particulares. Cada estacin utiliza tcnicas digitales para permitir que varios usuarios se conecten a la red, as como para permitir que hagan y reciban llamadas simultneamente. Esta gestin se denomina de multiplexaje. La filosofa de los sistemas celulares es utilizar estaciones base de pequea o mediana potencia y dar servicio a un rea ms limitada. Esta zona de cobertura a la que dar servicio una estacin base se conoce como celda. En cada celda se puede utilizar un subconjunto de frecuencias, dentro de la banda total que el operador tenga asignada. En GSM se distinguen cuatro tipos diferentes de clulas: Macro clulas (Macrocells): Son clulas de gran tamao utilizadas en reas de terreno muy grandes y donde la distancia entre reas pobladas es muy distantes entre si. Microcelulas (Microcells): Se utilizan por el contrario en reas donde no hay una gran densidad de poblacin, el objetivo al hacer esto es el que comentbamos antes cuando describamos que era una clula, a mayor nmero de clulas mayor nmero de canales disponibles que pueden ser utilizados por ms usuarios simultneamente. Clulas selectivas (Selectived Cells): En muchas ocasiones no interesa que una clula tenga una cobertura de 360 grados sino que interesa que tenga un alcance y un radio de accin determinado, en este caso es donde aparecen las clulas selectivas, el caso ms tpico de clulas de este tipo son aquellas que se

disponen en las entradas de los tneles en los cuales no tiene sentido que la clula tenga un radio de accin total (360 grados) sino un radio de accin que vaya a lo largo del tnel. Clulas Sombrilla (Umbrella Cells): Este tipo de clulas se utilizan en aquellos casos en los que tenemos un elevado nmero de clulas de tamao pequeo y continuamente se estn produciendo cambios (handovers) del terminal de una clula a otra (ms adelante veremos que es el handover ms detalladamente) para evitar que suceda esto lo que hacemos es agrupar conjuntos de microcelulas de modo que aumentamos la potencia de la nueva clula formada y podemos reducir el nmero de handovers que se producen. La BSC (Controlador de Estacin Base) administra los recursos de radio de una o ms BTS. Entre sus funciones se incluyen el handover (que ocurre cuando el usuario se mueve de una clula para otra, permitiendo que la conexin se mantenga), el establecimiento de los canales de radio utilizados, utiliza las interfaces Abis hacia las BTSs y Asub hacia los TC, almacenamiento de Base de datos del Sistema de BSS y cambios de frecuencias. Finalmente, establece la ligacin entre el mvil y el Mobile Service Switching Center (MSC), el corazn del sistema GSM Para cada canal de trfico el TC (Transcoder and Rate Adapter Unit) adapta la tasa de transmisin para voz en la interfaz de radio a la tasa de transmisin estndar de 64 Kbps usada en el conmutador principal o MSC. Subsistema de Conmutacin de Red (NSS): Las funciones que lleva a cabo el NSS son el control de llamadas y del BSS, interconexin con otras redes, manejo de datos y de servicios del suscriptor, manejo de la movilidad y seguridad, sealizacin y recoleccin de datos estadsticos. En otras palabras, este sistema se encarga de administrar las comunicaciones que se realizan entre los diferentes usuarios de la red; para poder hacer este trabajo la NSS se divide en los siguientes sistemas, cada uno con una misin dentro de la red:

A ir

A
MSC MSC
VL R

VL R

HLR

O & M

Figura 4. Subsistema de Conmutacin de Red

El Home Location Register (HLR) contiene toda la informacin administrativa sobre el cliente del servicio y la localizacin actual del terminal. Es a travs del HLR que la red verifica si un mvil que se intenta conectar posee un contrato de servicio vlido. Si la respuesta es afirmativa el MSC enva un mensaje de vuelta al terminal informndole que est autorizado a utilizar la red. El nombre de la operadora aparece entonces en pantalla, informando que se puede efectuar y recibir llamadas. Cuando el MSC recibe una llamada destinada a un mvil l va al HLR a verificar la localizacin. Paralelamente, el terminal de tiempos a tiempos enva un mensaje para la red, para informarla del sitio donde se encuentra (este proceso es denominado polling).

HLR

Figura 5. Home Local Register (HLR)

El Visitor Location Register (VLR) es una Base de Datos temporal que contiene la ubicacin, en cada momento, de los suscriptores que se encuentran dentro del rea de cobertura de dicho VLR/MSC. El VLR es utilizado para controlar el tipo de conexiones que un terminal puede hacer. Por ejemplo, si un usuario posee restricciones en las llamadas internacionales el VLR impide que estas sean hechas, bloquendolas y enviando un mensaje de vuelta al telfono mvil informando al usuario. El Equipment Identity Register (EIR) y el Authentication Center (AC) son utilizados ambos para garantizar la seguridad del sistema. El EIR posee una lista de IMEI de terminales que han sido declarados como robados o que no son compatibles con la red GSM. Si el telfono mvil est en esa lista negra, el EIR no permite que se conecte a la red. Dentro del AC hay una copia del cdigo de seguridad del SIM. Cuando ocurre la

autorizacin el AC genera un nmero aleatorio que es enviado para el mvil. Los dos aparatos, de seguida, utilizan ese nmero, junto al cdigo del SIM y un algoritmo de encriptacin denominado A3, para crear otro nmero que es enviado de nuevo para el AC. Si el nmero enviado por el terminal es igual al calculado por el AC, el usuario es autorizado a usar la red. Una vez vista la arquitectura de red que tenemos en GSM vamos a ver dos aspectos que son fundamentales dentro del funcionamiento normal de una red GSM, como lo son el handover y el roadming.

El concepto de handover, como ya se explico, consiste en la transicin que se produce cuando pasamos del rango de accin de una clula al rango de accin de otra. Esto se produce sobre todo cuando viajamos. El handover, por tanto, es el responsable de mantener el servicio de manera constante y de que las transiciones entre una clula y otra sean lo suficientemente pequeas como para pasar desapercibidas por los usuarios. Hay distintos tipos de handover en funcin de las clulas que intervengan en el proceso. Segn esto podemos hablar de cuatro tipos diferentes de handover, que pueden producirse: (a) Handover de canales en la misma clula. (b) Handover de clulas controladas por el mismo BSC. (c) Handover de clulas que pertenecen al mismo MSC, pero controladas por diferentes BSC. (d) Handover de clulas de diferentes MSC. En las siguientes figuras se ilustran estos cuatro tipos de handover:

A ir
B SC BT S TC

Figura 6. Handover de canales en la misma clula.

10

Air
BTS BSC TC

BTS

Old Cell / BTS

New Cell / BTS

Figura 7. Handover de canales en la misma clula.


New Cell / BTS

Air

BTS

BSC

TC

MSC
BTS BSC TC

VLR

Old Cell / BTS

Figura 8. Handover de clulas que pertenecen al mismo MSC, pero controladas por diferentes BSC.

11

New Cell / BTS

Air

BTS

BSC

TC

MSC

VLR

BTS

BSC

TC

MSC

VLR

Old Cell / BTS

Figura 9. Handover de clulas de diferentes MSC. El roadming se produce siempre que nos estamos validando dentro de la red GSM y el terminal no es capaz de encontrar la red en la cual somos clientes; esto pasa fundamentalmente cuando salimos de viaje al extranjero, donde existe la red, pero no es la de nuestro operador; en este caso, el roadming consiste en la utilizacin de la red que se encuentre disponible y con la que nuestro operador tiene un acuerdo de colaboracin. De este modo, podemos seguir conectados con nuestro mvil a la red independientemente de que estemos fuera del alcance de nuestro operador habitual. Existe un problema con el roadming que tenemos que tener en cuenta y es que cuando nuestro terminal se encuentra en roadming sucede que en el caso de que alguien nos llame, el coste de la llamada se divide de manera que la persona que nos llama paga la parte nacional de la llamada y nosotros corremos con los gastos de la parte internacional; esto es debido a que en el roadming nuestro operador no sabe de antemano donde nos encontramos, ya que estamos en una red que no le pertenece y por tanto no puede establecer la tarifa que debe aplicar. NMS: Este subsistema est conectado tanto al NSS como al BSS, especficamente a la BSC, con el propsito de controlar y monitorear toda la red. Este subsistema tambin se encarga de supervisar el trfico de la BSS al momento de una sobrecarga del mismo. El OSS est
12

al tanto de cualquier eventualidad ocurrida en la red en forma tal que est en capacidad de controlar situaciones de mal funcionamiento de la misma en forma remota. Aqu se vigila el rendimiento de las distintas interfaces entre los distintos elementos de la red, entre los cuales destacan: Interfaz Abis. Es un enlace PCM entre la BSC y la BTSE. Los timeslots del PCM pueden usarse como canales de sealizacin (16 o 64 kbit/s) canales de trfico (16 kbit/s). Las funciones implementadas en esta interfaz son: (a) Sub-multiplexacin de los canales de trfico (4x16kbit/s canales en fullrate (Velocidad de transmisin completa) a un canal de 64kbit/s y 8x8kbit/s canales en halfrate (Velocidad de transmisin media) a un canal de 64kbit/s) (b) Trfico de voz/datos (c) Sealizacin entre la BSC y la BTS (d) Transporte de la informacin de sincronismo de la BTS Interfaz Asub. Es un enlace PCM entre la BSC y la TRAU, en el cual se encuentran multiplexados cuatro canales de 16Kbit/s en un timeslot de 64kbit/s. Interfaz A. Es la interfaz entre la TRAU y el MSC, y est formada por mximo cuatro enlaces PCM. Estos transportan canales de trfico y canales de sealizacin por Canal Comn (CCSS7) en timeslots de 64kbit/s. Esta interfaz se especifica en las Recomendaciones ETSI GSM 08.01 a la 08.20. Entre las funciones que implementan las aplicaciones del BSS sobre la interfaz A son: (a) Trfico de voz / datos. (b) Gestin del BSS (un canal asignado para tal fin). (c) Control de la llamada. (d) Gestin de la movilidad.
13

(e) Servicios agregados. (f) Servicio de mensajes cortos. (g) Sealizacin multifrecuencia.

Figura 10. Interfaces UM, ABIS, ASUB Y A DEL BSS

14

CAPITULO II

SEND MESSAGE SHORT (SMS):

Es un sistema para enviar y recibir mensajes de texto, para y desde telfonos mviles. El texto puede estar compuesto de palabras, nmeros o una combinacin alfanumrica de hasta 160 caracteres cuando se usa el alfabeto latino, y 70 caracteres si se usa otro alfabeto como el rabe o el chino. Hay varias caractersticas nicas del servicio de mensajes cortos (SMS), segn lo definido dentro del estndar digital de telefona mvil GSM: (a) Los mensajes cortos no se envan directamente del remitente al receptor, sino que se envan a travs de un centro de SMS. Cada red de telefona mvil que utiliza SMS tiene uno o ms centros de mensajera para manejar los mensajes cortos. (b) El servicio de mensajes cortos se caracteriza por la confirmacin de mensaje de salida. Esto significa que el usuario que enva el mensaje, recibe posteriormente otro mensaje notificndole si su mensaje ha sido enviado o no. (c) Los mensajes cortos se pueden enviar y recibir simultneamente a la voz, datos y llamadas del fax. Esto es posible porque mientras que la voz, los datos y las llamadas del fax asumen el control de un canal de radio dedicado durante la llamada, los mensajes cortos viajan sobre un canal dedicado a sealizacin independiente de los de trfico.

15

(d) Hay formas de enviar mltiples mensajes cortos. La concatenacin SMS (que encadena varios mensajes cortos juntos) y la compresin de SMS (que consigue ms de 160 caracteres de informacin dentro de un solo mensaje corto) han sido definidas e incorporadas en los estndares del GSM SMS. (e) Para utilizar el servicio de mensajes cortos, los usuarios necesitan la suscripcin y el hardware especfico: (e.1) Una suscripcin a una red de telefona mvil que soporte SMS. (e.2) Un telfono mvil que soporte SMS (e.3) Conocimiento de cmo enviar o leer mensajes cortos usando su terminal mvil. (e.4) Un destino para enviar el mensaje, o dnde recibir el mensaje. ste es generalmente otro telfono mvil pero puede ser una mquina de fax, un PC o un buzn de e-mail. A continuacin, se muestra la estructura bsica de la red SMS:

Figura 11. Estructura bsica de la red SMS.

16

SME (Short Messaging Entity): Son todos los elementos capaces de recibir y enviar mensajes cortos. Las entidades de mensajes cortos, pueden estar localizadas en una red de comunicaciones fija, una estacin mvil, u otro centro de servicio. SMSC (Shor Message Service Center): El SMSC, es el responsable de la transmisin y el almacenamiento de un mensaje corto, entre el SME y una estacin mvil. SMS-Gateway/Interworking MSC (SMS-GMSC): Es una central de conmutacin mvil (MSC) capaz de recibir un mensaje corto de un SMSC, interrogando al HLR (Home Location Register) sobre la informacin de encaminamiento y enviando el mensaje corto al MSC visitado, de la estacin mvil receptora. El "SMS-Gateway/Interworking MSC" es un MSC capaz de recibir un mensaje corto de la red mvil y enviarlo hacia el SMSC correspondiente. El SMS Gateway Mobile Switching Center / SMS Interworking Mobile Switching Center (SMS-GMSC/SMSIWMSC), se encuentra normalmente en el mismo SMSC. Los pasos para el envo de mensajes de texto son: (a) El mensaje corto es enviado desde el SME al SMSC. (b) Despus de completar su proceso interno, el SMSC interroga al HLR y recibe del mismo, informacin de enrutamiento para el subscriptor mvil. (c) El SMSC enva el mensaje corto al MSC usando el mecanismo forward Short Message de GSM. (d) El MSC interroga al VLR, para extraerle informacin del usuario. Esta operacin puede incluir un procedimiento de autentificacin. (e) El MSC transfiere el mensaje corto a la estacin mvil destinataria (MS).

17

(f) El MSC devuelve al SMSC el resultado de la operacin que se est llevando a cabo, es decir, de la transferencia del mensaje corto. (g) Si lo solicita el SME, el SMSC enva un reporte indicando que el mensaje corto fue entregado al destinatario.

SME

Figura 12. Pasos para el envo de mensajes de texto

Los pasos para la recepcin de mensajes de texto son: (a) La estacin mvil (MS), despus de ser autentificada por el VLR, enva el mensaje corto al MSC. (b) El MSC interroga al VLR para verificar que la transferencia del mensaje cumpla con los servicios suplementarios o las restricciones impuestas. (c) El MSC enva el mensaje corto al SMSC, usando el mecanismo Forward Short Message. (d) El SMSC entrega el mensaje corto al SME.

18

(e) El SMSC confirma la entrega al MSC, utilizando la operacin Forward Short Message. (f) El MSC le devuelve a la estacin mvil (MS) el resultado de la operacin del envo (Mobile Originated Short Message). Las principales aplicaciones basadas en SMS son: (a) Simples mensajes de persona a persona. (b) Notificaciones del buzn de voz y fax. Cuando un nuevo mensaje nos llega a nuestro buzn, una alerta en forma de SMS, nos informa de este hecho. (c) Alertas de e-mail - Uniendo el correo electrnico con SMS, los usuarios pueden ser notificados cada vez que reciben un e-mail. (d) Descarga de Melodas. (e) Chat basado en SMS, se trata de una aplicacin que est emergiendo. (f) Servicios de Informacin - Solicitas a una fuente pblica o privada que te enve peridicamente informacin sobre algn tema en concreto a tu terminal mvil.

Figura 13. Pasos para la recepcin de mensajes de texto

19

Para proveer un servicio de mensaje corto punto a punto, es necesario realizar las siguientes operaciones bsicas MAP: (a) Solicitud de Informacin de Ruta: Antes de entregar un mensaje corto, el SMSC debe conocer la ruta de ubicacin del MSC que sirve a la estacin mvil destino, para esto el SMSC interroga al HLR. (b) Entrega de Mensaje Corto Punto a Punto: Es un mecanismo que permite al SMSC transferir un mensaje corto al MSC que sirve al rea donde se encuentra la estacin mvil, el MSC entrega el mensaje corto a la estacin mvil, sin importar donde se haya registrado y aunque se encuentre ocupada. El mecanismo de entrega del mensaje corto provee una respuesta de confirmacin de entrega o falla en el envo. (c) Indicacin de Espera de Mensaje Corto: Esta operacin est activa cuando falla el intento de enviar un mensaje corto por un SMSC, debido a que la estacin mvil no est activa en la red. Cuando el mvil se vuelve activo, el HLR se lo indica al SMSC. (d) Centro de Servicios de Alerta: En esta operacin el HLR indica al SMSC que el mensaje corto previamente enviado fue fallido. Elementos de Servicio: SMS contempla algunos elementos de servicio, relacionados con la recepcin y aceptacin de mensajes cortos: (a) Perodo de Validez: Indica el tiempo que el SMSC guardar el mensaje corto antes de entregarlo al recipiente seleccionado.

20

(b) Prioridad: Es el elemento de informacin suministrado por la entidad de mensajes cortos (SME) para indicar la prioridad del mensaje. (c) Tiempo de Marca (Time Stamp): Es una informacin suministrada por el SMS, que indica el tiempo en que acepta el mensaje e indica al mvil si tiene ms mensajes. Funcionamiento de la transmisin en GSM: El sistema GSM 900 utiliza dos conjuntos de frecuencias en la banda de los 900 MHz, el primer en los 890-915MHz, utilizado para las transmisiones del terminal y el segundo en los 935-960MHZ, para las transmisiones de la red. El mtodo utilizado por el GSM para administrar las frecuencias es una combinacin de dos tecnologas: el TDMA (Time Division Multiple Access) y el FDMA (Frequency Division Multiple Access). El FDMA divide los 25 MHz disponibles de frecuencia en 124 canales con una anchura de 200 kHz y una capacidad de transmisin de datos de alrededor 270 Kbps. Una o ms de estas frecuencias es atribuida a cada estacin base y dividida de nuevo en cuestin de tiempo, utilizando el TDMA, en ocho espacios de tiempo (timeslots). El terminal utiliza un timeslot para recepcin y otro para emisin. Ellos estn separados temporalmente para que el mvil no reciba y transmita al mismo tiempo. Esta divisin de tiempo tambin es denominada full rate. Las redes tambin pueden dividir las frecuencias en 16 espacios, proceso designado halfrate, pero la calidad de transmisin es inferior. La voz es codificada de una forma compleja, para que los errores en la transmisin puedan ser detectados y corregidos. Luego es enviada en los timeslots, cada uno con una duracin de 577 milisegundos y una capacidad de 116 bits codificados. Cada terminal posee una agilidad de frecuencia, pudiendo desplazarse entre los timeslots utilizados para el envo, recepcin y control dentro de un frame completo. Asimismo, un telfono mvil

21

verifica otros canales para determinar si la seal es ms fuerte y cambiar la transmisin para los mismos, si la respuesta es afirmativa.

22

CAPITULO III

MODULADOR/DEMODULADOR (MODEM)

MODEM es la contraccin de Modulador y Demodulador, que representan las operaciones de transmisin y recepcin en un sistema de transmisin punto a punto. Un MODEM es un dispositivo que convierte las seales digitales en seales analgicas para poder transmitirlas a travs de una red telefnica. No obstante, en el proceso de recepcin, se realiza el proceso inverso convirtiendo las seales analgicas en seales digitales. Cuando un MODEM llama a otro, el protocolo negocian la velocidad de lnea telefnica, el modo de compresin de datos y el de correccin de errores; y establecen comunicacin a esa velocidad y dems parmetros configurados. La mayora de los MODEMs se controlan y responden a caracteres enviados a travs de un puerto serial. El lenguaje de comandos para MODEM ms extendido es el de los comandos Hayes conocido como Comandos AT (del ingls Attention). Los comandos AT se envan al Mdem para realizar una funcin concreta. Todos los comandos de este protocolo comienzan por AT y acaban por CR (del ingls Carry Return), aunque este ltimo carcter es configurable.

23

Existen dos tipos principales de comandos: (a) Comandos que ejecutan acciones inmediatas. Ejemplo: ATD (marcacin), ATA

(contestacin) o ATH (desconexin). (b) Comandos que cambian algn parmetro del MODEM. Ejemplo: ATE0 (cancelacin de eco de data). Este MODEM es de tamao reducido, su peso es de aproximadamente 130 gramos, y su alimentacin de + 5Vcc a 32Vcc. Las ventajas que brinda este MODEM se describen a continuacin: (a) Con el mdem WM0D2 se pueden realizar llamadas as como recibir de la manera (b) Con el mdem WM0D2 su terminal o PC estar capacitado para comunicarse en datos utilizando un software de comunicaciones tipo hyperterminal, siendo posible establecer una comunicacin transparente. (c) El mdem WM0D2 permite el envo y recepcin de faxes, utilizando el puerto serie RS 232. (d) EL mdem WM0D2 ofrece las prestaciones ms avanzadas para comunicarse va Telefona Mvil GSM. Adems de ser el mdem ms pequeo del mercado, entre sus prestaciones estn las posibilidades del envo de mensajes cortos SMS: (d.1) Mensajes de 160 caracteres de texto (Standard GSM) (d.2) Confirmacin de envo y recepcin. (d.3) Confeccin rpida de mensajes. (d.4) Velocidad de envo instantnea. (d.5) Posibilidad de envo de paquetes de mensajes.

24

A pesar de ser bastante estndar, los comandos difieren en funcin del tipo del MODEM. En la siguiente figura se muestra el MODEM GSM de la marca Wavecom Dual Band (900/1800 MHz).

Figura 14. Mdem GSM WMOD2 G900/1800 banda doble puerto serie

Conector de SDM

Conector de Alimentacin

Conector DB-15

Figura 15. Descripcin externa 1 del MODEM Wavecom.

25

Botn para extraer la SIM CARD

Bandeja para insercin de la SIM CARD

Led Indicador del Status del MODEM

Figura 16. Descripcin externa 2 del MODEM Wavecom. Los MODEMs Dual Band permiten la utilizacin de las dos redes: GSM 900 y GSM 1800. La conmutacin entre las dos redes se hace automticamente cuando una de las redes est saturada o no tiene cobertura. Los Mdems Dual Band son ventajosos en relacin con los Mdems GSM normales, ya que la red GSM 900 est cada vez ms saturada.

26

CAPITULO IV

MICROCONTROLADOR PIC 16F877

El microcontrolador PIC 16F877 de la marca MICROCHIP es un circuito integrado de 40 terminales que posee las siguientes caractersticas: (a) Frecuencia de operacin mxima 20MHz. 200ns ciclos por instruccin (b) 8 niveles de apilamiento (Hardware Stack) (c) Direccionamiento directo e indirecto de la memoria (d) Reinicio por encendido (Power On-Reset) (e) Perro Guardin (Watch Dog Timer) (f) 3 Timers con prescaladores: 2 timers de 8bits y 1 timer de 16bits (g) Mdulo PWM con resolucin de 10bits (h) 5 puertos paralelos (i) Puerto serial asincrnico (USART) (j) Puerto serial sincrnico (MSSP I2C/SPI)

(k) Convertidor Analgico Digital con resolucin de 10bit (l) Voltaje de operacin 2,0V a 5,5V

27

(m) Corriente mxima de salida por los puertos 25mA (n) 256 bytes de EEPROM (o) 368 bytes de RAM (p) Bajo consumo de energa. Las conexiones bsicas del microcontrolador se muestran en la Figura 17:

Figura 17. Microcontrolador 16F877

28

El terminal 1 es el que representa el Reset por hardware del microcontrolador. El circuito asociado a l lo conforma bsicamente un pulsador que al ser presionado reinicializa el dispositivo. Los terminales 11,12, 31 y 32 corresponden a terminales de alimentacin y tierra del dispositivo, los terminales 13 y 14 son empleados para conectar un sistema oscilador que generar los pulsos de reloj necesarios para la operacin regular del microcontrolador y el resto de los terminales actan como entradas o salidas digitales. Como se puede apreciar, el PIC 16F877 consta nicamente de un puerto serial el cual est acoplado para interactuar con el MODEM externo o PC.

29

CAPITULO V

COMUNICACIN SERIAL RS232

La principal ventaja de la comunicacin serial es el uso de menos lneas cuando lo comparamos con la comunicacin paralela. Efectivamente un enlace serial puede ser realizado con apenas tres lneas, una para transmisin, una para recepcin y una tercera comn a las dos anteriores o retorno. Las cadenas seriales de bits generadas por los puertos serie usan una forma muy simple de codificacin. Un bit se transmite durante cada periodo baud, con un bit "1" representado por un voltaje alto TTL y un "0" por un voltaje bajo TTL. As la velocidad en baudios (baud rate, 1/(periodo baud)) de un puerto serie es igual al nmero de bits por segundo que se transmiten o reciben. Para enviar informacin codificada de esta manera, el transmisor y receptor registran el tiempo, el cual define el periodo baud, deben estar a la misma frecuencia y estar sincronizados. Los bits se transmiten como grupos separados, con una longitud tpia de 8 bits, llamados caracteres. El nombre carcter se usa porque cada grupo de bits representan una letra del alfabeto cuando el texto esta codificado en ASCII. Cada carcter se enva en una trama (frame) consistiendo de un bit "0" llamado un bit de inicio, seguido por el carcter mismo, seguido opcionalmente por un bit de paridad, y despus un bit "1" llamado bit de paro. La lgica del bit de inicio le dice al receptor que est empezando una trama, y la lgica del bit alto de paro indica el final de la trama.

30

La comunicacin serial puede ser sncrona o asncrona, siendo esta ultima la que se empleara para el desarrollo del modulo de consulta del SG va SMS. La comunicacin asncrona define una serie de reglas a fin de estandarizar la tcnica de comunicacin, en esta caso se establece un bit de comienzo activo a 0 y un bit de parada lgico activo 1. Tambin se contempla la velocidad de transmisin de datos, la cual puede ser de:75, 110, 150, 300, 600, 1200,2400, 4800, 9600 y 19200 bit/seg. Diferentes parmetros deben ser especificados cuando configuramos un puerto serial, donde los ms comunes son: (a) Bits por carcter, usualmente de 8 bits por carcter. (b) Nmero de Stop bit, usualmente 1 o 2. (c) Bit de paridad, usado para detectar un error en un nico bit , puede ser especificado como par, impar o sin paridad. (d) Velocidad de Transmisin. Protocolo de Comunicacin RS-232: Es un protocolo desarrollado para manejar la interconexin entre Terminales y MODEMS. La caracterstica ms resaltante de este estndar, es que los niveles lgicos no son compatibles con TTL. La lgica TTL es usada en la mayora de los microprocesadores y microcontroladores, por lo que es necesario la conversin de seales RS-232 a TTL y viceversa para su interconexin con dispositivo que emplee un puerto serial. Un receptor RS-232 interpreta un voltaje ms negativo que -3V como un 1 lgico, y un voltaje ms positivo que +3V como un 0 lgico. Un transmisor RS-232 debe tener como salida un voltaje mas negativo que-5V para un 1 lgico y un voltaje ms positivo que +5V para un cero lgico. Los valores tpicos RS-232 para un 0 1 lgico esta entre +/- 10V a +/- 12V. Las caractersticas elctricas del estndar RS-232 permite mayores distancias para los cables de conexin y una mayor inmunidad a ruidos.
31

Como ya se menciono con anterioridad, el estndar RS-232 fue desarrollado originalmente para la interconexin entre un MODEM, denominado "Data Communication Equipment" o DCE, y un Terminal denominado "Data Terminal Equipment" o DTE. En la interconexin entre un dispositivo y un microcontrolador, se debe considerar al primero como DTE y al segundo como DCE. Tambin debe tenerse en cuenta, que las seales RTS, CTS, DSR, CD, DTR y RI son activas bajo, es decir cero. A continuacin se describen estas seales: (a) DTR (Data Terminal Ready) El DTE indica al DCE que esta listo para recibir datos. (b) DSR (Data Signal Receiber) Afirmada por el DCE en respuesta a una seal DTE. (c) RTS (Request to Send) Enviado por el DTE cuando este desea enviar informacin sobre el enlace. DCD (Data Carrier Detect) Enviado por el DCE cuando este recibe una portadora del enlace de comunicacin. (d) CTS (Clear to Send) Afirmado por el DCE despus de recibir la seal RTS, indica que el DTE puede transmitir. (e) TX (Transmitted Data) Lnea de datos desde DTE al DCE. (f) RX (Received Data) Lnea de datos desde DCE al DTE. La secuencia para el establecimiento de la comunicacin es la siguiente: (a) DTR (b) DSR (c) RTS (d) DCD (e) CTS 0 0 0 0 0 DTE encendido y funcionando. DCE encendido y funcionando. DTE listo para comenzar a transmitir. DCE Detect portadora (tono). DCE listo para comenzar a transmitir.

32

El control de flujo es un mecanismo por el cual mdem y ordenador gestionan los intercambios de informacin. Estos mecanismos permiten detener el flujo cuando uno de los elementos no puede procesar ms informacin y reanudar el proceso no mas vuelve a estar disponible. Los mtodos ms comunes de control de flujo son: Control de flujo hardware: Donde RTS y CTS permiten al PC y al mdem parar el flujo de datos que se establece entre ellos de forma temporal. Este sistema es el ms seguro y el que soporta una operacin adecuada a altas velocidades. Control de flujo software: XON/XOFF: Aqu se utilizan para el control dos caracteres especiales XON y XOFF (en vez de las lneas hardware RTS y CTS) que controlan el flujo. Cuando el PC quiere que el mdem pare su envo de datos, enva XOFF. Cuando el PC quiere que el mdem le enve ms datos, enva XON. Los mismos caracteres utiliza el mdem para controlar los envos del PC. Este sistema no es adecuado para altas velocidades.

33

CAPITULO VI

EL REL

Es un dispositivo interruptor, generalmente electromagntico, cuyos contactos operan debido a la presin que ejerce sobre ellos la armadura de un electroimn, para controlar las condiciones existentes en otro. Sus usos ms comunes son el control remoto, conmutacin y proteccin de aparatos. En general consta de: el elemento operador (la bobina), un elemento mvil (la armadura) y un juego de contactos que funcionan como switch.

Figura 18. Rel elctrico

34

Partes del rel: a) La bobina: es el arrollado que hace las veces de electroimn. b) La Armadura: mecanismo de metal que sirve como contacto mvil. Esta es atrada magnticamente por la bobina abriendo y/o cerrando uno o varios contactos de acuerdo a la fabricacin de los mismos. c) Contactos: son dispositivos mecnicos que sirven para conectar circuitos adicionales segn un diseo funcional. Clasificacin general de los rels: a) Auxiliares: son rels repetidores, es decir, les llega una seal y abren y cierran un contacto. b) De proteccin: A partir de una seal elctrica protegen un circuito. En funcionamiento debe asegurar la buena utilizacin del objeto a proteger, pero tambin desconectar automticamente cuando se sobrepasa la cantidad admisible de la seal que sensan (temperatura en rels trmicos, corriente en rels de sobre corrientes, etc). c) Especiales: Se fabrican de acuerdo al uso que se le va a dar. Segn esto tenemos: termostatos, contactores, detectores de proximidad, etc. Todos ellos abren o cierran un circuito al recibir la seal propia de cada caso. Por ejemplo: seales de nivel, de presin, de temperatura, etc. Funcionamiento: El funcionamiento depende del tipo de rel y la fuente de suministro. Pero en general, se basan en principios comunes. Los de corriente continua utilizan la fuerza magntica que produce el paso de la corriente a travs de la bobina. As, cuando conectamos una batera a los extremos de una bobina, ste atrae una armadura (rel excitado).

35

El movimiento de la armadura hace cambiar la posicin inicial de los contactos del rel, los cuales se utilizan como switch. Es por esto la importancia de dichos contactos, quienes pueden conectarse a un circuito independiente y de esta forma dicho circuito queda controlado por el rel. Los de corriente alterna funcionan por la accin de los campos magnticos, haciendo desplazar un anillo metlico. Son como motores a escala reducida cuyo rotor acciona los contactos. Los de carga electrnica son rels con base semiconductora, con separacin galvnica entre el circuito de mando y el de conmutacin. El circuito de mando consta de un elemento de acoplamiento opto-electrnico que proporciona la separacin galvnica. En el circuito de conmutacin un triac o los tiristores se encargan de conmutar la carga. Tipos de rels segn su funcionamiento: a) Rels electromagnticos: funcionan con la fuerza electromagntica que hace accionar los contactos. b) Rels monoestables: son rels que vuelven a la posicin de reposo una vez terminada la corriente de excitacin. c) Rels biestables: son rels que permanecen en la ltima posicin una vez desconectada la corriente de excitacin. d) Rels neutros: son rels en los que el sentido de la corriente de excitacin no afecta la posicin de reposo o trabajo. e) Rels monoestables neutros: son rels monoestables que trabajan

independientemente del sentido de la corriente. f) Rels biestables neutros: son rels biestables en los que el trnsito de la posicin de reposo a la de trabajo es independiente al sentido de la corriente de la excitacin. g) Rels polarizados: son los rels en los que el sentido de la corriente de excitacin influye en el trnsito de la posicin de reposo a la posicin de trabajo. h) Rels monoestables polarizados: son rels monoestables que adoptan la posicin de trabajo segn sentido de la corriente de excitacin.

36

i) Rels biestables polarizados: son rels biestables que adoptan una posicin de conmutacin a una corriente de excitacin determinada y adopta la otra posicin a una corriente de sentido contrario. Fabricacin: Cada rel se fabrica de acuerdo al trabajo que va a realizar. Segn esto se construye: a) Rels sin ningn tipo de proteccin fsica. b) Rels protegidos del polvo. c) Rels protegidos del agua. d) Rels miniaturas. e) Rels sellados. f) Rels de vaco. g) Rels de carga electrnica. Caractersticas: Representan la identificacin tcnica de cada rel. Son todos aquellos detalles que diferencian un rel de otro y son caractersticas de fabricacin. Dentro las caractersticas comunes tenemos: a) La tensin nominal: es la tensin de funcionamiento permanente del rel. Se escoge dependiendo del uso que se le dar y la tensin disponible en el sitio donde trabajar el rel. b) La corriente nominal: es la corriente mxima que puede circular por los contactos sin que estos se deterioren o se daen. Esto depender de la potencia del equipo que estar bajo el control del rel. c) El tiempo de funcionamiento: es el tiempo mnimo empleado por el rel desde el instante en que la corriente de la bobina operadora alcanza el valor de calibrado mnimo y el instante en que actan los contactos. d) Los contactos: en ellos se estipula la potencia al cierre y la apertura. Hay que distinguir entre la sobrecarga con contactos cerrados y la sobre carga al conectar.

37

Cuanto ms corta sea la sobrecarga de intensidad, ms alta ser la sobrecarga soportable.

38

CAPITULO VII

EL CONTACTOR

Definicin y generalidades: Podemos definir un contactor como un aparato mecnico de conexin y desconexin elctrica, accionado por cualquier forma de energa, menos manual, capaz de establecer, soportar e interrumpir corrientes en condiciones normales del circuito, incluso las de sobrecarga. Las energas utilizadas para accionar un contactor pueden ser muy diversas: mecnicas, magnticas, neumticas, fludricas, etc. Los contactores corrientemente utilizados en la industria son accionados mediante la energa magntica proporcionada por una bobina. Un contactor accionado por energa magntica, consta de un ncleo magntico y de una bobina capaz de generar un campo magntico suficientemente grande como para vencer la fuerza de los muelles antagonistas que mantienen separada del ncleo una pieza, tambin magntica, solidaria al dispositivo encargado de accionar los contactos elctricos. As pues, caracterstica importante de un contactor ser la tensin a aplicar a la bobina de accionamiento, as como su intensidad potencia. Segn sea el fabricante, dispondremos de una extensa gama de tensiones de accionamiento, tanto en continua como en alterna siendo las ms comnmente utilizadas, 24, 48, 220, y 380. La intensidad y potencia de la bobina, naturalmente dependen del tamao del contador.

39

El tamao de un contactor, depende de la intensidad que es capaz de establecer, soportar e interrumpir, as como del nmero de contactos de que dispone (normalmente cuatro). El tamao del contactor tambin depende de la tensin mxima de trabajo que puede soportar, pero esta suele ser de 660 V. para los contactores de normal utilizacin en la industria. Referente a la intensidad nominal de un contactor, sobre catlogo y segn el fabricante, podremos observar contactores dentro de una extensa gama, generalmente comprendida entre 5 A y varios cientos de amperios. Esto equivale a decir que los contactores son capaces de controlar potencias dentro de un amplio margen; as, por ejemplo, un contactor para 25 A. conectado en una red bifsica de 380 V. es capaz de controlar receptores de hasta 380 25=9.500 VA. Y si es trifsica 3 220 25=16.454 VA. Naturalmente nos referimos a receptores cuya carga sea puramente resistiva (cos = 1), ya que de lo contrario, las condiciones de trabajo de los contactos quedan notablemente modificadas. Partes del contactor:

Figura 19. Partes del contactor.

40

Carcaza: La carcaza es el elemento en el cual se fijan todos los componentes conductores del contactor, para lo cual es fabricada en un material no conductor con propiedades como la resistencia al calor, y un alto grado de rigidez. Uno de los ms utilizados materiales es la fibra de vidrio pero tiene un inconveniente y es que este material es quebradizo y por lo tanto su manipulacin es muy delicada. En caso de quebrarse alguno de los componentes no es recomendable el uso de pegantes. Electroimn: Tambin es denominado circuito electromagntico, y es el elemento motor del contactor. Esta compuesto por una serie de elementos cuya finalidad es transformar la energa elctrica en un campo magntico muy intenso mediante el cual se produce un movimiento mecnico aprovechando las propiedades electromagnticas de ciertos materiales. Bobina: Consiste en un arrollamiento de alambre de cobre con unas caractersticas muy especiales con un gran nmero de espiras y de seccin muy delgada para producir un campo magntico. El flujo magntico produce un par magntico que vence los pares resistentes de los muelles de manera que la armadura se puede juntar con el ncleo estrechamente. Bobina energizada con CA: Para el caso cuando una bobina se energiza con corriente alterna, se produce una corriente de magnitud muy alta puesto que solo se cuenta con la resistencia del conductor, ya que la reactancia inductiva de la bobina es muy baja debido al gran entrehierro que existe entre la armadura y el ncleo, esta corriente tiene factor de potencia por consiguiente alto, del orden de 0.8 a 0.9 y es llamada corriente de llamada.

41

Esta corriente elevada produce un campo magntico muy grande capaz de vencer el par ejercido por los muelles o resorte que los mantiene separados y de esta manera se cierra el circuito magntico unindose la armadura con el ncleo trayendo como consecuencia el aumento de la reactancia inductiva y as la disminucin de hasta aproximadamente diez veces la corriente producindose entonces una corriente llamada corriente de mantenimiento con un factor de potencia ms bajo pero capaz de mantener el circuito magntico cerrado. Para que todo este procedimiento tenga xito las bobinas deben ser dimensionadas para trabajar con las corrientes bajas de mantenimiento pues si no se acciona el mecanismo de cierre del circuito magntico la corriente de llamada circular un tiempo ms grande del previsto pudiendo as deteriorar la bobina. Bobina energizada con CC: En este caso no se presenta el fenmeno anterior puesto que las corrientes de llamada y de mantenimiento son iguales. La nica resistencia presente es la resistencia de la bobina misma por lo cual las caractersticas y la construccin de estas bobinas son muy especiales. La bobina puede ser energizada por la fuente de alimentacin o por una fuente independiente. El ncleo: Su funcin es concentrar y aumentar el flujo magntico con el fin de atraer la armadura eficientemente. Est construido de lminas de acero al silicio superpuestas y unidas firmemente unas con otras con el fin de evitar las corrientes parsitas. El pequeo entrehierro entre la armadura y el ncleo se crea con el fin de eliminar los magnetismos remanentes. Cuando circula una corriente alterna por la bobina es de suponerse que cuando la corriente pasa por el valor cero, el ncleo se separa de la armadura puesto que el flujo tambin es cero pero como esto sucede 120 veces en un segundo (si la frecuencia es de

42

60Hz) por lo cual en realidad no hay una verdadera separacin pero esto sin embargo genera vibraciones y un zumbido adems del aumento de la corriente de mantenimiento; por esto las bobinas que operan con corriente alterna poseen unos dispositivos llamados espiras de sombra las cuales producen un flujo magntico desfasado con el principal de manera que se obtiene un flujo continuo similar al producido por una corriente continua. Armadura: Es un elemento mvil muy parecido al ncleo pero no posee espiras de sombra, su funcin es la de cerrar el circuito magntico ya que en estado de reposo se encuentra separada del ncleo. Este espacio de separacin se denomina entrehierro o cota de llamada. Tanto el cierre como la apertura del circuito magntico suceden en un espacio de tiempo muy corto (10 milisegundos aproximadamente), todo debido a las caractersticas del muelle, por esto se pueden presentar dos situaciones. Cuando el par resistente es mayor que el par electromagntico, no se logra atraer la armadura. Si el par resistente es dbil no se lograra la separacin rpida de la armadura. Cada una de las acciones de energizar o desenergizar la bobina y por consiguiente la atraccin o separacin de la armadura, es utilizada para accionar los contactos que obran como interruptores, permitiendo o interrumpiendo el paso de la corriente. Estos contactos estn unidos mecnicamente (son solidarios) pero son separados elctricamente. Contactos: El objeto de estos elementos es permitir o interrumpir el paso de la corriente, son elementos conductores, los cuales se accionan tan pronto se energiza o se desenergiza la bobina por lo que se les denomina contactos instantneos. Esta funcin la cumplen tanto en el circuito de potencia como en el circuito de mando.

43

Los contactos estn compuestos por tres partes dos de las cuales son fijas y se encuentran ubicadas en la carcaza y una parte mvil que une estas dos y posee un resorte para garantizar el contacto Las partes que entran en contacto deben tener unas caractersticas especiales puesto que al ser accionados bajo carga, se presenta un arco elctrico el cual es proporcional a la corriente que demanda la carga, estos arcos producen sustancias que deterioran los contactos pues traen como consecuencia la corrosin, tambin las caractersticas mecnicas de estos elementos son muy importantes.

Figura 20. Contactos Contactos principales: Son los encargados de permitir o interrumpir el paso de la corriente en el circuito principal, es decir que acta sobre la corriente que fluye de la fuente hacia la carga. Contactos secundarios: Estos contactos secundarios se encuentran dimensionados para corrientes muy pequeas porque estos actan sobre la corriente que alimenta la bobina del contactor o sobre elementos de sealizacin. Dado que en ocasiones deben trabajar con los PLC estos contactos deben tener una confiabilidad muy alta.

44

Gran parte de la versatilidad de los contactores depende del correcto uso y funcionamiento de los contactos auxiliares. Normalmente los contactos auxiliares son: Instantneos: Actan tan pronto se energiza la bobina del contactor. De apertura lenta: La velocidad y el desplazamiento del contacto mvil es igual al de la armadura. De apertura positiva: Los contactos abiertos y cerrados no pueden coincidir cerrados en ningn momento. Sin embargo se encuentran contactores auxiliares con adelanto al cierre o a la apertura y con retraso al cierre o a la apertura. Estos contactos actan algunos milisegundos antes o despus que los contactos instantneos. Existen dos clases de contactos auxiliares: (a) Contacto normalmente abierto: (NA o NO), llamado tambin contacto instantneo de cierre: contacto cuya funcin es cerrar un circuito, tan pronto se energice la bobina del contactor. En estado de reposo se encuentra abierto. (b) Contacto normalmente cerrado: (NC), llamado tambin contacto instantneo de apertura, contacto cuya funcin es abrir un circuito, tan pronto se energice la bobina del contactor. En estado de reposo se encuentra cerrado. Clasificacin de los contactores: Los contactores se pueden clasificar de acuerdo con: (a) Por su construccin (b) Contactores electromecnicos: Son aquellos ya descritos que funcionan de acuerdo a principios elctricos, mecnicos y magnticos. (c) Contactores estticos o de estado slido: Estos contactores se construyen a base de tiristores. Estos presentan algunos inconvenientes como: (d) Su dimensionamiento debe ser muy superior a lo necesario. (e) La potencia disipada es muy grande (30 veces superior). (f) Son muy sensibles a los parsitos internos y tiene una corriente de fuga importante.

45

(g) Su costo es muy superior al de un contactor electromecnico equivalente. (h) Por el tipo de corriente elctrica que alimenta la bobina. (i) Contactores para AC. (j) Contactores para DC. (k) Por los contactos que tiene. (l) Contactores principales. (m) Contactores auxiliares. (n) Por la carga que pueden maniobrar (categora de empleo). Tiene que ver con la corriente que debe maniobrar el contactor bajo carga. Funcionamiento del contactor: Cuando la bobina se energiza genera un campo magntico intenso, de manera que el ncleo atrae a la armadura, con un movimiento muy rpido. Con este movimiento todos los contactos del contactor, principales y auxiliares, cambian inmediatamente y de forma solidaria de estado. Existen dos consideraciones que debemos tener en cuenta en cuanto a las caractersticas de los contactores: (a) Poder de cierre: Valor de la corriente independientemente de la tensin, que un contactor puede establecer en forma satisfactoria y sin peligro que sus contactos se suelden. (b) Poder de corte: Valor de la corriente que el contactor puede cortar, sin riesgo de dao de los contactos y de los aislantes de la cmara apaga chispas. La corriente es ms dbil en cuanto ms grande es la tensin. Para que los contactos vuelvan a su posicin anterior es necesario desenergizar la bobina. Durante esta desenergizacin o desconexin de la bobina (carga inductiva) se producen sobre-tensiones de alta frecuencia, que pueden producir interferencias en los aparatos electrnicos. Desde el punto de vista del funcionamiento del contactor las bobinas tienen la mayor importancia y en cuanto a las aplicaciones los contactos tienen la mayor importancia.

46

Criterios para la seleccin de un contactor: Para elegir el contactor que ms se ajusta a nuestras necesidades, se debe tener en cuenta los siguientes criterios: (a) Tipo de corriente, tensin de alimentacin de la bobina y la frecuencia. (b) Potencia nominal de la carga. (c) Condiciones de servicio ya sea ligera, normal, dura, extrema. Existen maniobras que modifican la corriente de arranque y de corte. (d) Si es para el circuito de potencia o de mando y el nmero de contactos auxiliares que necesita. (e) Para trabajos silenciosos o con frecuencias de maniobra muy altas es recomendable el uso de contactores estticos o de estado slido. (f) Por la categora de empleo. Ventajas del uso de los contactores: Los contactores presentan ventajas en cuanto a los siguientes aspectos y por los cuales es recomendable su utilizacin. (a) Automatizacin en el arranque y paro de motores. (b) Posibilidad de controlar completamente una mquina, desde barios puntos de maniobra o estaciones. (c) Se pueden maniobrar circuitos sometidos a corrientes muy altas, mediante corrientes muy pequeas. (d) Seguridad del personal, dado que las maniobras se realizan desde lugares alejados del motor u otro tipo de carga, y las corrientes y tensiones que se manipulan con los aparatos de mando son o pueden ser pequeos. (e) Control y automatizacin de equipos y mquinas con procesos complejos, mediante la ayuda de los aparatos auxiliares de mando, como interruptores de posicin, detectores inductivos, presstatos, temporizadores, etc.

47

CAPITULO VIII

COMPILADOR CCS C

El compilador CCS C ha sido desarrollado especficamente para PIC MCU, obteniendo la mxima optimizacin del compilador con estos dispositivos. Dospone de una amplia librera de funciones predefenidas, comandos de procesado y ejemplos. Adems, suministra los controladores (drivers) para diversos dispositivos como LCD, convertidores AD, relojes en tiempo real, EEPROM, comunicacin serial, comunicacin USB, etc. Las caractersticas generales de este compilador y ms informacin se pueden encontrar en la direccin http://www.ccsinfo.com. Un compilador convierte el lenguaje de alto nivel a instrucciones en cdigo mquina; un cross compiler es un compilador que funciona en un procesador (normalmente en un PC) diferente al procesador objeto. El compilador CCS C es un cross compile. Los programas son editados y compilados a instrucciones mquina en el entorno de trabajo del PC, el cdigo mquina puede ser cargado del PC al sistema PIC mediante el ICD2 (o mediante cualquier otro programador) y puede ser depurado (paso a paso) desde el entorno de trabajo del PC. El CCS C es C estndar y, adems de las directivas estndar (#include, etc.), suministra unas directivas especificas para PIC (#device, etc.); adems incluye funciones especficas (bit_set(), etc). Se suministra con un editor que permite controlar la sintaxis del programa.

48

Para escribir un programa en C con CCS C se deben tener en cuenta una serie de elementos bsicos de su estructura: (a) Directivas de procesado: controlan la conversin del programa a cdigo mquina por parte del compilador. (b) Programas o funciones: conjunto de instrucciones. Puede haber uno o varios; en cualquier caso siempre debe haber uno definido como principal mediante la inclusin de la llamada main(). (c) Instrucciones: indican cmo debe comportar el PIC en todo momento. (d) Comentarios: permiten describir lo que significa cada lnea del programa. A continuacin se ilustra el entorno de desarrollo del compilador CCS C:

Figura 21. Entorno de desarrollo de CCS C

49

CAPITULO IX

DESARROLLO DEL MODULO DE CONTROL REMOTO PARA LA ACTIVACIN DE CARGAS VA SMS POR MEDIO DEL MICROCONTROLADOR PIC 16F877

La tecnologa de microcontroladores PIC tiene una gran cantidad de funciones y un gran nmero de dispositivos. Una de las virtudes de estos circuitos integrados es su versatilidad para interactuar con un importante nmero de equipos lo que facilita el desarrollo de proyectos de varias escalas, es decir, desde simples circuitos de laboratorio con fines acadmicos como proyectos de gran envergadura con fines innovadores que impulsen el desarrollo tecnolgico. En tal sentido, se aprovecho una de las bondades ms importantes con las que cuenta estos dispositivos como lo es la comunicacin serial bajo el protocolo de comunicacin RS232 y la posibilidad de contar con una operadora con una red GSM robusta. El PIC que se eligi es el 16F877 quien cuenta con un puerto serial y 5 puertos lo que permite una gran flexibilidad a la hora de manejar una cantidad mayor de perifricos. Para la realizacin de este proyecto se requiri de una librera llamada LCD9.c la cual fue adaptada con el fin de controlar una pantalla display de manera de que sea ms amigable el desarrollo. En la siguiente figura se muestra el diagrama de conexin del PIC y la pantalla LCD:

50

Figura 22 Diagrama de conexin entre el PIC y la pantalla LCD

A su vez, debido al hecho de que los niveles de tensin que maneja el protocolo RS232 son distintos a los que maneja el PIC por ser de tecnologa TTL, es necesario emplear una interfaz de acople entre el MODEM y el microcontrolador 16F7877. Por tal motivo, se eligi el dispositivo MAX232 el cual tiene dicha capacidad. En la siguiente figura se muestra el circuito integrado MAX232:

51

Figura 23 Circuito Integrado MAX232 (Vista Interna) Las conexiones de los puertos seriales del microcontrolador PIC con el Mdem a travs del driver MAX232 se muestran en la Figura 23.

Figura 24 Conexiones del driver MAX232.

De esta manera, se pueden enviar SMS desde un telfono celular sin importar la operadora al nmero de la SIM CARD que se encuentra en el MODEM, y ste a su vez, en-

52

va la data al PIC va serial para que ste ltimo la procese. Dependiendo del mensaje que se reciba, el PIC proceder a la activacin o desactivacin de la carga deseada. El

conexionado del PIC con el MAX232 se muestra en la siguiente figura:

Figura 25 Conexin del PIC con el MAX232

Para el control de las 4 cargas se emplearon 4 rels de 12 voltios DC con el fin de activar un contactor que tiene como fin arrancar una carga determinada una vez que el PIC reciba un SMS de activacin. En caso de requerirse, tambin es posible solicitarle la desactivacin de la misma. El conexionado se ilustra en la siguiente imagen:

53

Figura 26 Conexin del PIC con los rels El cdigo del programa que maneja la activacin de los rels se muestra a continuacin: //**********************************************************************// //------------------------------Rutina de Accin de Control de la Carga ----------------------------// //**********************************************************************// if((Carga=='C')&&(Tipo=='1')&&(Opcion=='1')){ sentido horario lcd_putc("\f"); lcd_putc("Carga 1 Activa"); output_high(PIN_C5); Send_SMS_Activa_Carga1(); } //Activar Motor1, velocidad alta y

//Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD

54

if((Carga=='C')&&(Tipo=='1')&&(Opcion=='2')){ sentido horario lcd_putc("\f"); lcd_putc(" Carga 1");

//Activar Motor1, velocidad alta y //Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD //Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD

lcd_putc("\n"); lcd_putc(" No Activa"); output_low(PIN_C5); Send_SMS_No_Activa_Carga1(); } if((Carga=='C')&&(Tipo=='2')&&(Opcion=='1')){ y sentido horario lcd_putc("\f"); lcd_putc("Carga 2 Activa"); LCD output_high(PIN_C4); Send_SMS_Activa_Carga2(); } if((Carga=='C')&&(Tipo=='2')&&(Opcion=='2')){ y sentido horario lcd_putc("\f"); lcd_putc(" LCD Carga 2");

//Activar Motor1, velocidad alta //Limpia la pantalla LCD //Se enva mensaje a la pantalla

//Activar Motor1, velocidad alta //Limpia la pantalla LCD //Se enva mensaje a la pantalla //Limpia la pantalla LCD

lcd_putc("\n"); lcd_putc(" No Activa"); output_low(PIN_C4); Send_SMS_No_Activa_Carga2(); }

55

if((Carga=='C')&&(Tipo=='3')&&(Opcion=='1')){ sentido horario lcd_putc("\f"); lcd_putc("Carga 3 Activa"); output_high(PIN_D3); Send_SMS_Activa_Carga3(); } if((Carga=='C')&&(Tipo=='3')&&(Opcion=='2')){ sentido horario lcd_putc("\f"); lcd_putc(" Carga 3");

//Activar Motor1, velocidad alta y //Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD

//Activar Motor1, velocidad alta y //Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD //Limpia la pantalla LCD

lcd_putc("\n"); lcd_putc(" No Activa"); output_low(PIN_D3); Send_SMS_No_Activa_Carga3(); } if((Carga=='C')&&(Tipo=='4')&&(Opcion=='1')){ sentido horario lcd_putc("\f"); lcd_putc("Carga 4 Activa"); output_high(PIN_D2); Send_SMS_Activa_Carga4(); } if((Carga=='C')&&(Tipo=='4')&&(Opcion=='2')){ sentido horario lcd_putc("\f"); lcd_putc(" Carga 4");

//Activar Motor1, velocidad alta y //Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD

//Activar Motor1, velocidad alta y //Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD

56

lcd_putc("\n"); lcd_putc(" No Activa"); output_low(PIN_D2); Send_SMS_No_Activa_Carga4(); }

//Limpia la pantalla LCD

En los anexos se encuentran tanto el diagrama el cdigo fuente del programa grabado en el PIC en lenguaje C y el esquemtico del circuito de control.

57

CONCLUSIONES

El proyecto presentado cumple las expectativas iniciales ya que permite controlar un total de 4 cargas por medio de la emisin de mensajes de texto desde un telfono mvil independientemente de la operadora. Esto permite fundamentar los conceptos adquiridos en cuanto al funcionamiento de la Red GSM, el de los microcontroladores PIC lo cuales tienen un impresionante nmero de aplicativos, MODEM GSM, las Leyes de Maxwell, la forma de operar del rel y del contactor (muy empleados hoy en da en la industria moderna). En tal sentido, el modulo desarrollado viene siendo desde una tarjeta electrnica que puede ser empleada con fines didcticos a nivel universitario como tambin puede abrirse cmodamente espacios en el mbito industrial y domstico. Las comunicaciones inalmbricas, representa una de las vas a la hora de seleccionar un medio para la manipulacin de distintos tipos de equipos, dando total comodidad y confiabilidad ya que el servicio de mensajera es muy prctico y robusto permitiendo as la creacin de este tipo de proyectos.

58

BIBLIOGRAFIAS

Fraile Mora, Jess. (2008). Mquinas Elctricas (6 ed). Madrid: Editorial McGraw-Hill Chapman, Stephen J. (1996). Mquinas Elctricas (2 ed). Mxico: Editorial McGraw-Hill Angulo, J., Angulo I. (1999). Microcontroladores <PIC>. Diseo prctico de aplicaciones (2 ed). Madrid: Editorial McGraw-Hill/Interamericana.

(http://www.microchip.com)

59

REPBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIN SUPERIOR INSTITUTO UNIVERSITARIO DE TECNOLOGA DR. FEDERICO RIVERO PALACIO EDO. MIRANDA

ANEXOS

60

ANEXO A CONTENIDO PGINA

1. Cdigo fuente del programa grabado en el PIC en lenguaje C

62

61

//***********************************************************************************************// //-------------------------Programa de Control Remoto de Cargas va SMS--------------------------// //***********************************************************************************************// #include <16f877.h> #byte PORTA=0X05 #byte PORTB=0X06 #byte PORTC=0X07 #byte PORTD=0X08 #byte PORTE=0X09 #byte PIR1=0X0C #byte RCREG=0X1A #byte TXREG=0X19 #byte RCSTA=0X18 #byte TXSTA=0X98 #byte SPBRG=0X99 #byte INTCON=0X0B #FUSES NOWDT #FUSES HS #FUSES PUT #FUSES NOPROTECT #FUSES BROWNOUT #FUSES NOLVP #FUSES NOCPD //Posicin del registro PORTA //Posicin del registro PORTB //Posicin del registro PORTC //Posicin del registro PORTD //Posicin del registro PORTE //Posicin del registro PIR1 //Posicin del registro RCREG //Posicin del registro TXREG //Posicin del registro RCSTA //Posicin del registro TXSTA //Posicin del registro SPBRG //Posicin del registro INTCON //No Watch Dog Timer //High speed Osc (> 4mhz) //Power Up Timer //Code not protected from reading //Reset when brownout detected //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O //No EE protection

62

#FUSES NOWRT #FUSES NODEBUG

//Program memory not write protected //No Debug mode for ICD

#use delay(clock=20000000) #use standard_io(c) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) #include <LCD9.C> #define ALL_OUT 0X00 #define ALL_INPUT 0XFF #define buffer_full 89 //Se define el valor 0X00 como ALL_OUT //Se define el valor 0XFF como ALL_INPUT //Se define el valor 89 como buffer_full

setup_adc_ports(NO_ANALOG); //Se configuran los puertos como digitales (No Analgicos) //***********************************************************************************************// //------------------------------------Declaracin de Variables-----------------------------------// //***********************************************************************************************// int1 Modem_Ini,Err,Ok,Delet_SMS,Input_SMS,Read_Input_SMS,Send_Msj,Send_OK,Conmutar,Err_Msj,Flag_Falla1,Cont_Falla1,Flag_Fall a2,Cont_Falla2,Flag_Falla3,Cont_Falla3,Flag_Falla4,Cont_Falla4; int8 i,j,size_buffer,Position,Cont_Rx,Cont_Tx,Indice_SMS,Valor; char Carga, Tipo, Opcion; char Datos_Recibidos[90]; char Voice_Number[14]; //***********************************************************************************************// //------------------------------------Declaracin de Funciones-----------------------------------// //***********************************************************************************************// void Inicializacion(); //Funcin inicializacin del MODEM

void Test_Ok_and_Error(); //Funcin que verifica la recepcin del dato OK y ERROR void clear_buffer(); //Funcin que limpia el buffer

63

void Delete_SMS(); void Test_Input_SMS(); void Read_SMS(); void Send_SMS();

//Funcin para borrar SMS //Funcin para verificar la llegada de un SMS //Funcin para leer un SMS //Funcin para enviar un SMS

void Send_SMS_Activa_Carga1(); void Send_SMS_No_Activa_Carga1(); void Send_SMS_Activa_Carga2(); void Send_SMS_No_Activa_Carga2(); void Send_SMS_Activa_Carga3(); void Send_SMS_No_Activa_Carga3(); void Send_SMS_Activa_Carga4(); void Send_SMS_No_Activa_Carga4(); void Send_SMS_Falla1(); void Send_SMS_Falla2(); void Send_SMS_Falla3(); void Send_SMS_Falla4(); //***********************************************************************************************// //--------------------Vector de Interrupcin Recepcin de Comunicacin Serial--------------------// //***********************************************************************************************// #int_RDA RDA_isr() { if(kbhit()) { Datos_Recibidos[Cont_Rx]=getc();

64

Cont_Rx+=1; } if (bit_test(RCSTA,1)) { bit_clear(RCSTA,4); bit_set(RCSTA,4); } } //***********************************************************************************************// //----------------------------------------Programa Principal-------------------------------------// //***********************************************************************************************// void main(void){ set_tris_a(ALL_OUT); set_tris_b(ALL_OUT); set_tris_c(0b10001100); set_tris_d(0b00000011); set_tris_e(ALL_OUT); setup_adc(ADC_OFF); TXSTA = 0b00100100; //Se coloca inactivo el conversor analgico digital del pic //Activacin del BIT de transmisin y configuracin //Se configura el puerto A como salida //Se configura el puerto B como salida //Se configuran los pines RC0:RC6 como salida y RC7 como entrada //Se configura el puerto D como salida

//en modo asncrono a alta velocidad RCSTA = 0b10010000; SPBRG=129; TXREG=0X00; RCREG=0X00; //Activacin del puerto serial de recepcin continua //Baud rates para alta velocidad (9600 baudios) //Se limpia el registro TXREG //Se limpia el registro RCREG

setup_timer_0( RTCC_8_BIT|RTCC_DIV_16); //Se configura el TIMER 0

65

set_timer0(135); setup_timer_2(T2_DIV_BY_16,255,1); //Se configura el TIMER 2 setup_ccp1(CCP_PWM); //Se configura el modulo PWM1

enable_interrupts(INT_RDA); //Se habilita la interrupcin por recepcin serial enable_interrupts(GLOBAL); //Se habilitan todas las interrupciones //***********************************************************************************************// //--------------------------------------Inicializacin de Variables------------------------------// //***********************************************************************************************// i=0; j=0; Ok=0; Err=0; Err_Msj=0; Modem_Ini=0; Delet_SMS=0; Input_SMS=0; Read_Input_SMS=0; Send_Msj=0; Send_OK=0; Cont_Rx=0; Cont_Tx=0; Indice_SMS=0; Conmutar=0; Position=0; size_buffer=0;

66

Valor=0; Flag_Falla1=0; Cont_Falla1=0; Flag_Falla2=0; Cont_Falla2=0; Flag_Falla3=0; Cont_Falla3=0; Flag_Falla4=0; Cont_Falla4=0; Voice_Number[0]='"'; Voice_Number[1]=0X30; Voice_Number[2]=0X00; Voice_Number[3]=0X00; Voice_Number[4]=0X00; Voice_Number[5]=0X00; Voice_Number[6]=0X00; Voice_Number[7]=0X00; Voice_Number[8]=0X00; Voice_Number[9]=0X00; Voice_Number[10]=0X00; Voice_Number[11]=0X00; Voice_Number[12]='"'; Voice_Number[13]='\r';

67

//***********************************************************************************************// //------------------------------------------Programa Principal-----------------------------------// //***********************************************************************************************// output_low(PIN_C5); output_low(PIN_C4); output_low(PIN_D3); output_low(PIN_D2); lcd_init(); lcd_putc("\f"); //Inicializa la pantalla LCD //Limpia la pantalla LCD

lcd_putc("Sist de Control" );//Se enva mensaje a la pantalla LCD lcd_putc("\n"); //Salto de lnea

lcd_putc(" de Potencia"); //Se enva mensaje a la pantalla LCD delay_ms(3000); lcd_putc("\f"); //El mensaje anterior se muestra por un lapso de 3s //Limpia la pantalla LCD

lcd_putc(" Inicializando" ); //Se enva mensaje a la pantalla LCD lcd_putc("\n"); //Salto de lnea

lcd_putc("Espere por favor");//Se enva mensaje a la pantalla LCD Inicializacion(); Delete_SMS(); while(true){ lcd_putc("\f"); //Se llama a la funcion de Inicializacion del Modem //Se llama a la funcion de Borrado de SMS //Ciclo infinito //Limpia la pantalla LCD

lcd_putc("Sistema Activo"); //Se enva mensaje a la pantalla LCD Test_Input_SMS(); lcd_putc("\f"); //Se llama a la rutina de recepcin de SMS //Limpia la pantalla LCD

lcd_putc("SMS recibido" ); //Se enva mensaje a la pantalla LCD

68

Read_SMS(); lcd_putc("\f");

//Se llama a la funcion de leer SMS //Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD mientras se procesa //la solicitud recibida

lcd_putc("Procesando..." );

Delete_SMS(); delay_ms(3000);

//Se llama a la funcion de borrar SMS //Retardo de 3 segundo mientras antes de enviar SMS de //confirmacin

//***********************************************************************************************// //---------------------------Rutina de Accin de Control de la Carga ----------------------------// //***********************************************************************************************// if((Carga=='C')&&(Tipo=='1')&&(Opcion=='1')){ lcd_putc("\f"); lcd_putc("Carga 1 Activa"); output_high(PIN_C5); Send_SMS_Activa_Carga1(); } if((Carga=='C')&&(Tipo=='1')&&(Opcion=='2')){ lcd_putc("\f"); lcd_putc(" Carga 1"); //Activar Motor1, velocidad alta y sentido horario //Activar Motor1, velocidad alta y sentido horario

//Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD

//Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD //Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD

lcd_putc("\n"); lcd_putc(" No Activa"); output_low(PIN_C5); Send_SMS_No_Activa_Carga1(); }

if((Carga=='C')&&(Tipo=='2')&&(Opcion=='1')){

//Activar Motor1, velocidad alta y sentido horario

69

lcd_putc("\f"); lcd_putc("Carga 2 Activa"); output_high(PIN_C4); Send_SMS_Activa_Carga2(); }

//Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD

if((Carga=='C')&&(Tipo=='2')&&(Opcion=='2')){ lcd_putc("\f"); lcd_putc(" Carga 2");

//Activar Motor1, velocidad alta y sentido horario

//Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD //Limpia la pantalla LCD

lcd_putc("\n"); lcd_putc(" No Activa"); output_low(PIN_C4); Send_SMS_No_Activa_Carga2(); }

if((Carga=='C')&&(Tipo=='3')&&(Opcion=='1')){ lcd_putc("\f"); lcd_putc("Carga 3 Activa"); output_high(PIN_D3); Send_SMS_Activa_Carga3(); } if((Carga=='C')&&(Tipo=='3')&&(Opcion=='2')){ lcd_putc("\f"); lcd_putc(" Carga 3");

//Activar Motor1, velocidad alta y sentido horario

//Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD

//Activar Motor1, velocidad alta y sentido horario

//Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD //Limpia la pantalla LCD

lcd_putc("\n"); lcd_putc(" No Activa"); output_low(PIN_D3);

70

Send_SMS_No_Activa_Carga3(); } if((Carga=='C')&&(Tipo=='4')&&(Opcion=='1')){ lcd_putc("\f"); lcd_putc("Carga 4 Activa"); output_high(PIN_D2); Send_SMS_Activa_Carga4(); } if((Carga=='C')&&(Tipo=='4')&&(Opcion=='2')){ lcd_putc("\f"); lcd_putc(" Carga 4"); //Activar Motor1, velocidad alta y sentido horario //Activar Motor1, velocidad alta y sentido horario

//Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD

//Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD //Limpia la pantalla LCD

lcd_putc("\n"); lcd_putc(" No Activa"); output_low(PIN_D2); Send_SMS_No_Activa_Carga4(); } } }

//***********************************************************************************************// //---------------------------------Rutina de Inicializacin del Modem----------------------------// //***********************************************************************************************// void Inicializacion() { while (Modem_Ini==0) { //Hacer mientras Modem_Ini sea igual a cero (0)

71

printf("AT\r"); delay_ms(5000); Test_Ok_and_Error(); Cont_Rx=0; if (Err==1) { Err=0; delay_ms(5000); } if (Ok==1) { Ok=0; Modem_Ini=1; } } Modem_Ini=0; }

//Se transmite el comando AT al MODEM //Retardo de 5s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si existe un error se vuelve a enviar el comando

//Se limpia la bandera Err //Retardo de 5s para volver enviar el comando en caso de error

//Si no existe un error se valida el OK

//Se limpia la bandera Ok //Se iguala a uno (1) Modem_Ini para salir del ciclo while

//Se vuelve a inicializar la bandera Modem_Ini

//***********************************************************************************************// //------------------------------Rutina de Borrado de SMS de la SIM CARD--------------------------// //***********************************************************************************************// void Delete_SMS() { while (Delet_SMS==0) { printf("AT+CMGD=5,4\r"); //Se transmite el comando AT+CMGD=5,4 al MODEM //Hacer mientras Delete_SMS sea igual a cero (0)

72

delay_ms(10000); Test_Ok_And_Error(); Cont_Rx=0; if (Err==1) { Err=0; delay_ms(5000); } if (Ok==1) { Ok=0; Delet_SMS=1; } } Delet_SMS=0; }

//Retardo de 10s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si existe un error se vuelve a enviar el comando

//Se limpia la bandera Err //Retardo de 5s para volver enviar el comando en caso de error

//Si no existe un error se valida el OK

//Se limpia la bandera Ok //Se iguala a uno (1) Delete_SMS para salir del ciclo while

//Se vuelve a inicializar la bandera Delete_SMS

//***********************************************************************************************// //---------------------------------Rutina de Verificacin de OK y Error--------------------------// //***********************************************************************************************// void Test_Ok_and_Error() { wait_data: Position=0; wait_ok: if (Datos_Recibidos[Position]=='O') //Si el dato recibido es OK se procede a llamar a //Se iguala a cero (0) el contador

73

{ Position+=1;

//la funcion clear_buffer() para limpiar el buffer

if (Datos_Recibidos[Position]=='K') { Ok=1; clear_buffer(); } } else { //Si el dato recibido es ERROR se procede a llamar a //la funcion clear_buffer() para limpiar el buffer if (Datos_Recibidos[Position]=='E') { Position+=1; if (Datos_Recibidos[Position]=='R') { Position+=1; if (Datos_Recibidos[Position]=='R') { Position+=1; if (Datos_Recibidos[Position]=='O') { Position+=1; if (Datos_Recibidos[Position]=='R') { Err=1;

74

clear_buffer(); } } } } } if ((Position==buffer_full) && (Err==0) && (Ok==0)) //Si no se ha recibido ningun dato se sigue esperando { Position=0; goto wait_data; } if (Err==0) { Position+=1; goto wait_ok; } } } //***********************************************************************************************// //------------------------------Rutina de Borrado de Buffer de Entrada---------------------------// //***********************************************************************************************// void clear_buffer() { for (size_buffer=0;size_buffer<=buffer_full;size_buffer++) //Se limpia el buffer { //Si el mensaje recibido no es ERROR se verifica que sea OK

75

Datos_Recibidos[size_buffer]=0x00; } } //***********************************************************************************************// //--------------------------------Rutina para Detectar un SMS Entrante---------------------------// //***********************************************************************************************// void Test_Input_SMS() { while (Input_SMS==0) { //Se verifica que se haya recibido +CMTI if ((Datos_Recibidos[2]=='+') && (Datos_Recibidos[3]=='C') && (Datos_Recibidos[4]=='M') && (Datos_Recibidos[5]=='T') && (Datos_Recibidos[6]=='I')) { delay_ms(1000); Cont_Rx=0; clear_buffer(); Input_SMS=1; } if (input(PIN_D1)){ Flag_Falla1=1; output_low(PIN_C5); if (Cont_Falla1==0){ if(Flag_Falla1 == 1){ lcd_putc("\f"); lcd_putc("Falla Carga 1"); //Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD //Retardo de 1s //Se limpia el contador //Se procede a limpiar el buffer //Se iguala a uno (1) Input_SMS para salir del ciclo while //Hacer mientras Input_SMS sea igual a cero (0)

76

delay_ms(3000); Send_SMS_Falla1(); Flag_Falla1=0; Cont_Falla1+=1; } } }else{ Cont_Falla1=0; }

if (input(PIN_D0)){ Flag_Falla2=1; output_low(PIN_C4); if (Cont_Falla2==0){ if(Flag_Falla2 == 1){ lcd_putc("\f"); lcd_putc("Falla Carga 2"); delay_ms(3000); Send_SMS_Falla2(); Flag_Falla2=0; Cont_Falla2+=1; } } }else{ Cont_Falla2=0; //Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD

77

if (input(PIN_C3)){ Flag_Falla3=1; output_low(PIN_D3); if (Cont_Falla3==0){ if(Flag_Falla3 == 1){ lcd_putc("\f"); lcd_putc("Falla Carga 3"); delay_ms(3000); Send_SMS_Falla3(); Flag_Falla3=0; Cont_Falla3+=1; } } }else{ Cont_Falla3=0; } if (input(PIN_C2)){ Flag_Falla4=1; output_low(PIN_D2); if (Cont_Falla4==0){ if(Flag_Falla4 == 1){ lcd_putc("\f"); lcd_putc("Falla Carga 4"); //Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD //Limpia la pantalla LCD //Se enva mensaje a la pantalla LCD

78

delay_ms(3000); Send_SMS_Falla4(); Flag_Falla4=0; Cont_Falla4+=1; } } }else{ Cont_Falla4=0; } } Input_SMS=0; } //***********************************************************************************************// //--------------------------------Rutina para Detectar un SMS Entrante---------------------------// //***********************************************************************************************// void Read_SMS() { while (Read_Input_SMS==0) { printf("AT+CMGR=1\r"); delay_ms(2500); //Se transmite el comando AT+CMGR=1 al MODEM //Retardo de 2.5s //Hacer mientras Read_Input_SMS sea igual a cero (0) //Se vuelve a inicializar la bandera Input_SMS

//Se verifica que se haya recibido +CMGR if ((Datos_Recibidos[12]=='+') && (Datos_Recibidos[13]=='C') && (Datos_Recibidos[14]=='M') && (Datos_Recibidos[15]=='G') && (Datos_Recibidos[16]=='R')) { if ((Datos_Recibidos[34]=='5') && (Datos_Recibidos[35]=='8')) //Se verifica que se haya recibido el cdigo 58

79

{ Voice_Number[0]='"'; delay_ms(1000); Voice_Number[1]=0X30; delay_ms(1000); Voice_Number[2]=Datos_Recibidos[36]; delay_ms(1000); Voice_Number[3]=Datos_Recibidos[37]; delay_ms(1000); Voice_Number[4]=Datos_Recibidos[38]; delay_ms(1000); Voice_Number[5]=Datos_Recibidos[39]; delay_ms(1000); Voice_Number[6]=Datos_Recibidos[40]; delay_ms(1000); Voice_Number[7]=Datos_Recibidos[41]; delay_ms(1000); Voice_Number[8]=Datos_Recibidos[42]; delay_ms(1000); Voice_Number[9]=Datos_Recibidos[43]; delay_ms(1000); Voice_Number[10]=Datos_Recibidos[44]; delay_ms(1000); Voice_Number[11]=Datos_Recibidos[45]; delay_ms(1000); //Se procede a grabar el nmero de voz que pertenece a la SIM CARD que envo el SMS

80

Voice_Number[12]='"'; delay_ms(1000); Voice_Number[13]='\r'; delay_ms(1000); }

if (Datos_Recibidos[72]==0X0A) { Carga = Datos_Recibidos[73]; Tipo = Datos_Recibidos[74]; Opcion = Datos_Recibidos[75]; Test_Ok_and_Error(); Cont_Rx=0; } } if (Err==1) { Err=0; } if (Ok==1) { Ok=0; Read_Input_SMS=1; } }

//Se verifica que se haya recibido el salto de lnea en la posicin 72

//Se graba en comando recibido de la tarjeta 1

//Se procede a validar la respuesta del MODEM //Se limpia el contador

//Si existe un error se vuelve a enviar el comando

//Se limpia la bandera Err

//Si no existe un error se valida el OK

//Se limpia la bandera Ok //Se iguala a uno (1) Read_Input_SMS para salir del ciclo while

81

Read_Input_SMS=0; }

//Se vuelve a inicializar la bandera Read_Input_SMS

//***********************************************************************************************// //----------------------------------Rutina para enviar un SMS------------------------------------// //***********************************************************************************************// void Send_SMS() { Position = 0; while (Send_Msj==0) { printf("AT+CMGS="); Voice_Number[0]='"'; for (j=0;j<=13;j++) { printf("%c",Voice_Number[j]); delay_ms(500); } delay_ms(5000); wait_send_msj: //Se transmite el comando AT+CMGS= al MODEM //Se transmite el nmero de voz la SIM CARD de la tarjeta 1 //Se limpia el contador //Hacer mientras Send_Msj sea igual a cero (0)

if ((Datos_Recibidos[24]=='>')&&(Datos_Recibidos[25]==0X20)) //Al recibir los caracteres '>' y ' ' { Send_Msj=1; } else //De lo contrario se espera a recibir dichos caracteres //Se coloca en uno (1) la bandera Send_Msj para salir //del ciclo while

82

{ goto wait_send_msj; } } Send_Msj=0; } //***********************************************************************************************// //----------------Funcion para enviar Msj al Administrador Carga 1 Activada----------------------// //***********************************************************************************************// void Send_SMS_Activa_Carga1() { while (Send_OK==0) { Send_SMS(); Cont_Rx = 0; printf("Carga 1 Activada"); printf("%c",0x1A); delay_ms(5000); Test_Ok_and_Error(); Cont_Rx=0; if (Ok==1) { Ok=0; Send_OK=1; } //Se limpia la bandera Ok //Se iguala a uno (1) Send_OK para salir del ciclo while //Se llama a la funcin Send_SMS() //Se limpia el contador //Se enva el mensaje R de recibido //Se enva el limitador de caracteres //Retardo de 5s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si no existe un error se valida el OK //Hacer mientras Send_OK sea igual a cero (0) //Se vuelve a inicializar la bandera Send_Msj

83

} Send_OK=0; } //***********************************************************************************************// //----------------Funcion para enviar Msj al Administrador Carga 1 No Activada-------------------// //***********************************************************************************************// void Send_SMS_No_Activa_Carga1() { while (Send_OK==0) { //Hacer mientras Send_OK sea igual a cero (0) //Se vuelve a inicializar la bandera Read_Input_SMS

Send_SMS(); Cont_Rx = 0; printf("Carga 1 Desactivada"); printf("%c",0x1A); delay_ms(5000); Test_Ok_and_Error(); Cont_Rx=0; if (Ok==1) { Ok=0; Send_OK=1; } } Send_OK=0;

//Se llama a la funcin Send_SMS() //Se limpia el contador //Se enva el mensaje R de recibido //Se enva el limitador de caracteres //Retardo de 5s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si no existe un error se valida el OK

//Se limpia la bandera Ok //Se iguala a uno (1) Send_OK para salir del ciclo while

//Se vuelve a inicializar la bandera Read_Input_SMS

84

} //***********************************************************************************************// //----------------Funcion para enviar Msj al Administrador Carga 2 Activada----------------------// //***********************************************************************************************// void Send_SMS_Activa_Carga2() { while (Send_OK==0) { //Hacer mientras Send_OK sea igual a cero (0)

Send_SMS(); Cont_Rx = 0; printf("Carga 2 Activada"); printf("%c",0x1A); delay_ms(5000); Test_Ok_and_Error(); Cont_Rx=0; if (Ok==1) { Ok=0; Send_OK=1; } } Send_OK=0; }

//Se llama a la funcin Send_SMS() //Se limpia el contador //Se enva el mensaje R de recibido //Se enva el limitador de caracteres //Retardo de 5s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si no existe un error se valida el OK

//Se limpia la bandera Ok //Se iguala a uno (1) Send_OK para salir del ciclo while

//Se vuelve a inicializar la bandera Read_Input_SMS

85

//***********************************************************************************************// //----------------Funcion para enviar Msj al Administrador Carga 2 No Activada-------------------// //***********************************************************************************************// void Send_SMS_No_Activa_Carga2() { while (Send_OK==0) { //Hacer mientras Send_OK sea igual a cero (0)

Send_SMS(); Cont_Rx = 0; printf("Carga 2 Desactivada"); printf("%c",0x1A); delay_ms(5000); Test_Ok_and_Error(); Cont_Rx=0; if (Ok==1) { Ok=0; Send_OK=1; } } Send_OK=0; }

//Se llama a la funcin Send_SMS() //Se limpia el contador //Se enva el mensaje R de recibido //Se enva el limitador de caracteres //Retardo de 5s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si no existe un error se valida el OK

//Se limpia la bandera Ok //Se iguala a uno (1) Send_OK para salir del ciclo while

//Se vuelve a inicializar la bandera Read_Input_SMS

86

//***********************************************************************************************// //----------------Funcion para enviar Msj al Administrador Carga 3 Activada----------------------// //***********************************************************************************************// void Send_SMS_Activa_Carga3() { while (Send_OK==0) { Send_SMS(); Cont_Rx = 0; printf("Carga 3 Activada"); printf("%c",0x1A); delay_ms(5000); Test_Ok_and_Error(); Cont_Rx=0; if (Ok==1) { Ok=0; Send_OK=1; } } Send_OK=0; } //***********************************************************************************************// //----------------Funcion para enviar Msj al Administrador Carga 3 No Activada-------------------// //***********************************************************************************************// //Se vuelve a inicializar la bandera Read_Input_SMS //Se limpia la bandera Ok //Se iguala a uno (1) Send_OK para salir del ciclo while //Se llama a la funcin Send_SMS() //Se limpia el contador //Se enva el mensaje R de recibido //Se enva el limitador de caracteres //Retardo de 5s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si no existe un error se valida el OK //Hacer mientras Send_OK sea igual a cero (0)

87

void Send_SMS_No_Activa_Carga3() { while (Send_OK==0) { Send_SMS(); Cont_Rx = 0; printf("Carga 3 Desactivada"); printf("%c",0x1A); delay_ms(5000); Test_Ok_and_Error(); Cont_Rx=0; if (Ok==1) { Ok=0; Send_OK=1; } } Send_OK=0; } //***********************************************************************************************// //----------------Funcion para enviar Msj al Administrador Carga 4 Activada----------------------// //***********************************************************************************************// void Send_SMS_Activa_Carga4() { while (Send_OK==0) //Hacer mientras Send_OK sea igual a cero (0) //Se vuelve a inicializar la bandera Read_Input_SMS //Se limpia la bandera Ok //Se iguala a uno (1) Send_OK para salir del ciclo while //Se llama a la funcin Send_SMS() //Se limpia el contador //Se enva el mensaje R de recibido //Se enva el limitador de caracteres //Retardo de 5s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si no existe un error se valida el OK //Hacer mientras Send_OK sea igual a cero (0)

88

{ Send_SMS(); Cont_Rx = 0; printf("Carga 4 Activada"); printf("%c",0x1A); delay_ms(5000); Test_Ok_and_Error(); Cont_Rx=0; if (Ok==1) { Ok=0; Send_OK=1; } } Send_OK=0; } //***********************************************************************************************// //----------------Funcion para enviar Msj al Administrador Carga 4 No Activada-------------------// //***********************************************************************************************// void Send_SMS_No_Activa_Carga4() { while (Send_OK==0) { Send_SMS(); Cont_Rx = 0; //Se llama a la funcin Send_SMS() //Se limpia el contador //Hacer mientras Send_OK sea igual a cero (0) //Se vuelve a inicializar la bandera Read_Input_SMS //Se limpia la bandera Ok //Se iguala a uno (1) Send_OK para salir del ciclo while //Se llama a la funcin Send_SMS() //Se limpia el contador //Se enva el mensaje R de recibido //Se enva el limitador de caracteres //Retardo de 5s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si no existe un error se valida el OK

89

printf("Carga 4 Desactivada"); printf("%c",0x1A); delay_ms(5000); Test_Ok_and_Error(); Cont_Rx=0; if (Ok==1) { Ok=0; Send_OK=1; } } Send_OK=0; }

//Se enva el mensaje R de recibido //Se enva el limitador de caracteres //Retardo de 5s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si no existe un error se valida el OK

//Se limpia la bandera Ok //Se iguala a uno (1) Send_OK para salir del ciclo while

//Se vuelve a inicializar la bandera Read_Input_SMS

//***********************************************************************************************// //---------Funcion para enviar Msj al Administrador por Falla Detectada en la Carga 1------------// //***********************************************************************************************// void Send_SMS_Falla1() { while (Send_OK==0) { Send_SMS(); Cont_Rx = 0; printf("Falla Carga 1"); printf("%c",0x1A); delay_ms(5000); //Se llama a la funcin Send_SMS() //Se limpia el contador //Se enva el mensaje R de recibido //Se enva el limitador de caracteres //Retardo de 5s //Hacer mientras Send_OK sea igual a cero (0)

90

Test_Ok_and_Error(); Cont_Rx=0; if (Ok==1) { Ok=0; Send_OK=1; } } Send_OK=0; }

//Se procede a validar la respuesta del MODEM //Se limpia el contador //Si no existe un error se valida el OK

//Se limpia la bandera Ok //Se iguala a uno (1) Send_OK para salir del ciclo while

//Se vuelve a inicializar la bandera Read_Input_SMS

//***********************************************************************************************// //---------Funcion para enviar Msj al Administrador por Falla Detectada en la Carga 2------------// //***********************************************************************************************// void Send_SMS_Falla2() { while (Send_OK==0) { Send_SMS(); Cont_Rx = 0; printf("Falla Carga 2"); printf("%c",0x1A); delay_ms(5000); Test_Ok_and_Error(); Cont_Rx=0; if (Ok==1) //Se llama a la funcin Send_SMS() //Se limpia el contador //Se enva el mensaje R de recibido //Se enva el limitador de caracteres //Retardo de 5s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si no existe un error se valida el OK //Hacer mientras Send_OK sea igual a cero (0)

91

{ Ok=0; Send_OK=1; } } Send_OK=0; } //***********************************************************************************************// //---------Funcion para enviar Msj al Administrador por Falla Detectada en la Carga 3------------// //***********************************************************************************************// void Send_SMS_Falla3() { while (Send_OK==0) { Send_SMS(); Cont_Rx = 0; printf("Falla Carga 3"); printf("%c",0x1A); delay_ms(5000); Test_Ok_and_Error(); Cont_Rx=0; if (Ok==1) { Ok=0; Send_OK=1; //Se limpia la bandera Ok //Se iguala a uno (1) Send_OK para salir del ciclo while //Se llama a la funcin Send_SMS() //Se limpia el contador //Se enva el mensaje R de recibido //Se enva el limitador de caracteres //Retardo de 5s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si no existe un error se valida el OK //Hacer mientras Send_OK sea igual a cero (0) //Se vuelve a inicializar la bandera Read_Input_SMS //Se limpia la bandera Ok //Se iguala a uno (1) Send_OK para salir del ciclo while

92

} } Send_OK=0; } //***********************************************************************************************// //---------Funcion para enviar Msj al Administrador por Falla Detectada en la Carga 4------------// //***********************************************************************************************// void Send_SMS_Falla4() { while (Send_OK==0) { Send_SMS(); Cont_Rx = 0; printf("Falla Carga 4"); printf("%c",0x1A); delay_ms(5000); Test_Ok_and_Error(); Cont_Rx=0; if (Ok==1) { Ok=0; Send_OK=1; } } Send_OK=0; } //Se vuelve a inicializar la bandera Read_Input_SMS //Se limpia la bandera Ok //Se iguala a uno (1) Send_OK para salir del ciclo while //Se llama a la funcin Send_SMS() //Se limpia el contador //Se enva el mensaje R de recibido //Se enva el limitador de caracteres //Retardo de 5s //Se procede a validar la respuesta del MODEM //Se limpia el contador //Si no existe un error se valida el OK //Hacer mientras Send_OK sea igual a cero (0) //Se vuelve a inicializar la bandera Read_Input_SMS

93

ANEXO B. CONTENIDO 1. Esquemtico del circuito PGINA 95

94

95

Anda mungkin juga menyukai