Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AUTOR:
Gracias a mis padres por haberme trado al mundo, por su cario, ayuda e impulso en el que me he apoyado para llegar hasta aqu.
Gracias a mi hermano Jos Miguel por toda esa alegra y vitalidad que logra transmitirme y por su apoyo a TODAS horas.
Gracias a David por esa luz que siempre nos ha dejado encendida para guiarnos.
Gracias a mis compaeros Javi, Toni, Manu, Ruben, Alex, Jess, gracias a todos por vuestra gran amistad y colaboracin.
Resumen
El campo del control y automatizacin industrial, es un campo implantado con ms frecuencia en grandes instalaciones como las cadenas de fabricacin de automviles, las vas frreas o las centrales trmicas y elctricas, sin embargo en el rea de la pequea y mediana empresa est aun poco desarrollado. Las soluciones desarrolladas para el control y la automatizacin de pequeas y medianas instalaciones industriales son poco flexibles y especificas para cada instalacin. Este proyecto pretende hacer visible la viabilidad de la implantacin de sistemas de control y automatizacin en este tipo de instalaciones industriales como pueden ser granjas o invernaderos, poniendo nfasis en la replicacin. Como principales ventajas de la implantacin de sistemas de control y automatizacin est la reduccin de costes, calidad, seguridad as como el aumento y control de la produccin, y como ventaja de la replicacin la considerable reduccin de los costes de diseo, implantacin y mantenimiento.
La solucin propuesta consiste en un sistema abierto, para el control centralizado de dispositivos electromecnicos. Con capacidad para el control, monitorizacin y actuacin remota haciendo uso de una red TCP/IP como es Internet, sin restricciones en cuanto al nmero de dispositivos o funcionalidades que estos aporten
El software desarrollado para este propsito recibir los datos de los dispositivos electrnicos localizados en la instalacin industrial, estos datos harn referencia a los distintos parmetros que determinan el estado de la instalacin. Con stos datos tanto el sistema, en modo automtico; como el usuario, en modo manual; dispondrn de una informacin en tiempo real que les permitir la toma de decisiones adecuadas y eficaces. Una vez tomada la decisin se pondrn en marcha, mediante los controles disponibles en la instalacin, los mecanismos necesarios, para corregir o modificar las condiciones requeridas en cada momento con el fin de optimizar su funcionamiento.
Recopilacin y acceso en tiempo real de la informacin referente al estado de la instalacin. Actuacin de manera inmediata sobre los dispositivos que lo requieren con el fin de mantener el estado optimo de la instalacin. Esta actuacin sobre los dispositivos puede ser tanto manual como automtica. o Modo manual: El usuario a travs de los mecanismos proporcionado por el sistema acta directamente sobre los dispositivos. Esta actuacin puede ser: Local: Utilizando la aplicacin cliente en la propia instalacin. Remota: A travs de Internet haciendo uso de un navegador.
o Modo automtico: Una vez el usuario haya configurado el programa que se encargar del control de la instalacin el sistema comunicar los datos recogidos a dicho programa y ste evaluando la situacin comunicar al sistema que acciones tomar, en cada momento.
Todas estas funcionalidades estn disponibles en modo local y en modo remoto. En la modalidad local el usuario trabajar directamente con el software localizado en la propia instalacin mientras que en la modalidad remota el usuario, mediante cualquier navegador y a travs de Internet, puede conectar con la aplicacin local accediendo as a las funcionalidades proporcionadas por sta.
Esta automatizacin en la recogida de datos y en el control de las actuaciones sobre los distintos mecanismos de la instalacin permite una reduccin en la mano de obra, una utilizacin adecuada de los materiales, una toma de decisiones eficaz basada en una informacin histrica completa y en tiempo real as como la realizacin rpida y eficaz de los procedimientos adoptados. Estas caractersticas son las que permiten una mayor cualificacin de la mano de obra, la reduccin en los costes de materiales de produccin y materias primas y un aumento de la produccin y con ello de la productividad.
ii
Abstract
The field of the control and industrial automation is a field implanted with more frequency in big facilities like cars manufacture chains, the ferroviary routes and the thermal and electrical plants, however, in the field of the small and medium companies it is still little developed. The solutions developed for the control and the automation of small and medium industrial facilities are slightly flexible and quite specific. The aim of this project is to realize the viability of introducing the industrial control and automation in this type of industrial facilities like farms or greenhouses, focusing on the replication. The main advantages of control and automation introduction are the reduction of costs as well as a increase of quality and safety and an improvement in production quantity and control, the main advantage of replication would be a considerable reduction in design, implantation and maintenance costs.
The proposed solution consists of an open system for centralized control of electromechanical devices with capacity for control, monitor and remote performance of it using a TCP/IP net like the Internet without restrictions in the number of devices and functionalities that these give, with independence of the supplier.
The software developed for this purpose will receive the information from electronic devices located in the industrial installation; this data will refer the different parameters that determine the state of the installation. With these data both the system, in automatic way, as the user, in manual way, will have a real time information that will allow suitable and effective decisions. Once taken the decision the necessary mechanisms, to correct or to modify the required conditions, will be started, through the installation available controls, in order to optimize its functioning.
iii
In order to meet these requites, the system will implement the following functionalities: Real time information access and store for data concerning the installation. Immediate performance on the devices that need it in order to maintain the ideal state of the installation. This performance on the devices may be both manual and automatic o Manual mode: The user acts directly on the devices through the mechanisms provided in the system. This actuation may be: Local: using the client application in the installation itself Remote: using it through the Internet, by means of a web browser.
Automatic Mode: Once the user has configured the program that will take control of the installation, the system will send the information gathered to that program that will evaluate the actual state of the installation and report back to the system the actions to take at each moment.
All these functionalities will be available in both local and remote mode. While in local mode, the user will employ directly with the software located in the installation itself whereas in the remote modality the user, using any web browser through the Internet, will connect with the local application, accessing this way to the functionalities provided by it.
This automation in data gathering and control over the different mechanisms of the installation will allow a reduction in manpower, a suitable use of the materials, an effective decision taking based on complete historical and real time information as well as a fast and effective accomplishment of the adopted procedures. These characteristics are those that allow a major qualification of the manpower, a notable cost reduction in materials of production and prime matters and an increase of the production and, consequently, the productivity.
iv
NDICE
LA AUTOMATIZACIN ..................................................................................... 2
1. Introduccin......................................................................................................................................2 2. Antecedentes .....................................................................................................................................4 3. Automatizacin.................................................................................................................................9 4. Tipos de Automatizacin. ...............................................................................................................11 5. Generalidades del CNC ..................................................................................................................13
vii
CONCLUSIN ............................................................................................... 260 BIBLIOGRAFA ............................................................................................. 262 APENDICES .................................................................................................. 264 MANUAL DE USUARIO .................................................................................... 1
1. Pantalla principal de la aplicacin: ..................................................................................................1 2. Estado manual de la instalacin .......................................................................................................3 3. Activar estado automtico de la instalacin .....................................................................................4 4. Automatizacin de la instalacin......................................................................................................5 5. Configuracin de programas............................................................................................................7
viii
ix
Justificacin acadmica
1. Profundizar en los conocimientos sobre Internet 2. Aumentar los conocimientos sobre el manejo del puerto Serie 3. Practicar los conocimientos sobre la comunicacin entre aplicaciones 4. Profundizar en la teora Cliente/Servidor 5. Utilizacin y estudio del lenguaje Java 6. Desarrollo de aplicaciones en Internet utilizando la plataforma J2EE 7. Aumentar conocimientos sobre la creacin de pginas WEB
Justificacin econmica
1. Mejora en la Utilizacin de los recursos de produccin. 2. Optimizacin de los costes de las materias primas 3. Reduccin en los costes de mano de obra. 4. Mejora en la toma de decisiones 5. Aumento de la eficacia en la consecucin de tareas 6. Aumento de la productividad 7. Reduccin de riesgos en la produccin. 8. Abaratamiento de la solucin en base a su replicacin.
LA AUTOMATIZACIN
1. Introduccin
Por siglos el ser humano ha construido mquinas que imiten las partes del cuerpo humano. Los antiguos egipcios unieron brazos mecnicos a las estatuas de sus dioses. Estos brazos fueron operados por sacerdotes, quienes clamaban que el movimiento de estos era inspiracin de sus dioses. Los griegos construyeron estatuas que operaban con sistemas hidrulicas, los cuales se utilizaban para fascinar a los adoradores de los templos. Durante los siglos XVII y XVIII en Europa fueron construidos muecos mecnicos muy ingeniosos que tenan algunas caractersticas de robots. Jacques de Vauncansos construy varios msicos de tamao humano a mediados del siglo XVIII. Esencialmente se trataba de robots mecnicos diseados para un propsito especfico: la diversin. En 1805, Henri Maillardert construy una mueca mecnica que era capaz de hacer dibujos. Una serie de levas se utilizaban como ` el programa ' para el dispositivo en el proceso de escribir y dibujar. Estas creaciones mecnicas de forma humana deben considerarse como inversiones aisladas que reflejan el genio de hombres que se anticiparon a su poca. Hubo otras invenciones mecnicas durante la revolucin industrial, creadas por mentes de igual genio, muchas de las cuales estaban dirigidas al sector de la produccin textil. Entre ellas se puede citar la hiladora giratoria de Hargreaves (1770), la hiladora mecnica de Crompton (1779), el telar mecnico de Cartwright (1785), el telar de Jacquard (1801), y otros. El desarrollo en la tecnologa, donde se incluyen las poderosas computadoras electrnicas, los actuadores de control retroalimentados, transmisin de potencia a travs de engranes, y la tecnologa en sensores han contribuido a flexibilizar los mecanismos autmatas para desempear tareas dentro de la industria. Son varios los factores que intervienen para que se desarrollaran los primeros robots en la dcada de los 50's. La investigacin en inteligencia artificial desarroll maneras de emular el
2. Antecedentes
Las ideas y las invenciones de muchos matemticos, cientficos, e ingenieros allanaron el camino para el desarrollo de la computadora moderna. En un sentido, la computadora tiene realmente tres fechas una como calculadora mecnica, cerca de 500 a.c. , otra como concepto (1833), y la tercera del nacimiento como la computadora digital moderna (1946). La primera calculadora mecnica, fue un sistema de barras y de bolas mviles llamados el baco, fue ideada en Babilonia alrededor de 500 a.c. El baco proporcion el mtodo ms rpido de calcular hasta 1642, cuando el cientfico francs Pascal Blaise invent una calculadora hecha de ruedas y de dientes. Cuando la rueda de las unidades se mova una revolucin (ms all de diez muescas), se mova la muesca de la rueda de las decenas; cuando la rueda de las decenas se mova una revolucin, se mova la muesca de la rueda de los centenares; etctera. Mejoras en la calculadora mecnica de Pascal fueron llevadas a cabo por los cientficos e inventores tales Gottfried Wilhelm Leibniz, W.T. Odhner, Dorr E. Felt, Frank S. Baldwin y Jay R. Monroe. El concepto de la computadora moderna primero fue contorneado en 1833 por el matemtico britnico Charles Babbage. Su diseo de un "motor analtico" contuvo todos los elementos necesarios de una computadora moderna: dispositivos de entrada de informacin, un almacn (memoria), un molino (unidad que cmputo), una unidad de control, y dispositivos de salida. El diseo llev ms de 50,000 piezas mviles en una mquina de vapor tan grande como una locomotora. La mayora de las acciones del motor analtico eran realizadas utilizando tarjetas perforadas, una adaptacin al mtodo que ya era usado para controlar mquinas de cosido automtico de seda. Aunque Babbage trabaj en el motor analtico por casi 40 aos, l nunca construy realmente una mquina de trabajo. En 1889 Herman Hollerith, inventor americano, patent una mquina calculadora que cont, compar y orden la informacin guardada en tarjetas perforadas. Cuando las tarjetas eran colocadas en su mquina, presionaban una serie de contactos del metal que corresponda a la red de perforaciones potenciales. Cuando un contacto encontraba en un agujero (perforado para representar la edad, ocupacin, etctera), cerraba un circuito elctrico y aumentaba la cuenta para esa categora. Su
britnico, haba ideado ya un sistema completo de la lgebra binaria que se pudo aplicar a los circuitos de la computadora. La computadora moderna creci fuera de los esfuerzos intensos de la investigacin montados durante la Segunda Guerra Mundial. Desde 1941 el inventor alemn Konrad Zuse produjo una computadora operacional, la Z3, que fue utilizado en los diseos de aviones y de misiles. El gobierno alemn rechaz ayudarle a refinar la mquina, sin embargo, la computadora nunca alcanz su potencia completa. Un matemtico de Harvard nombrado Howard Aiken dirigi el desarrollo de la Calculadora Controlada de Secuencia Automtica de Harvard-IBM, conocida ms adelante como la Marca I una computadora electrnica que utiliz 3,304 rles electromecnicos como interruptores encendido-apagado. Terminada en 1944, su
Turing y puesta en operacin antes de 1943, el Colossus era la computadora con que los criptgrafos britnicos rompan los cdigos secretos militares de los alemanes. Como Colossus fue diseado para solamente una tarea, la distincin como la primera computadora electrnica moderno de uso general pertenece correctamente a ENIAC (Electronic Numerical Integrator and Calculator). Diseada por dos ingenieros americanos, Juan W. Mauchly y J. Presper Eckert, Jr., ENIAC entr servicio en la universidad de Pennsylvania en 1946. Su construccin era una enorme hazaa de ingeniera la mquina de 30 toneladas contuvo 17,468 tubos de vaco conectados por 500 millas (800 kilmetros) de cableado. ENIAC realiz 100,000 operaciones por segundo. La invencin del transistor en 1948 trajo una revolucin en el desarrollo de la computadora. Los tubos de vaco calientes, no fiables fueron substituidos por los transistores pequeos del germanio (luego silicio) que generaban poco calor con todo funcionado perfectamente como los interruptores o los amplificadores. El descubrimiento en la miniaturizacin de la computadora vino en 1958, cuando Jack Kilby, ingeniero americano, dise el primer circuito integrado verdadero. Su prototipo consisti en una oblea del germanio que incluy los transistores, las resistencias y los condensadores, los componentes principales del trazado de circuito electrnico. Usando chips de silicio menos costosos, los ingenieros tuvieron xito en poner ms y ms componentes electrnicos en cada chip. El desarrollo de la integracin en gran escala (LSI) permiti abarrotar centenares de componentes en un chip; la integracin a muy gran escala (VLSI) hizo crecer ese nmero a los centenares de millares; y los ingenieros proyectan que las tcnicas de integracin ultra grande (ULSI) permitirn ser colocados alrededor de 10 millones de componentes en un microchip el tamao de una ua. Otra revolucin en tecnologa del microchip ocurri en 1971 en que el ingeniero americano Marcian E. Hoff combin los elementos bsicos de una computadora en un
4004 y centenares de variaciones que las siguieron son las computadoras dedicadas que hacen funcionar millares de productos modernos y forman el corazn de casi cada computadora electrnica de uso general. A mediados de los aos setenta, los microchips y los microprocesadores haban reducido drsticamente el costo de los millares de componentes electrnicos requeridos en un computadora. La primera computadora de escritorio accesible diseada especficamente para el uso personal fue llamada la Altair 8800 y vendida por Micro Instrumentation Telemetry Systems en 1974. En 1977 Tandy Corporation se convirti en la primera firma principal del elemento electrnico para producir una computadora personal. Agregaron un teclado y un CRT a su computadora y ofrecieron medios de guardar programas en una grabadora. Pronto, una compaa pequea llamada Apple Computer, fundado por el ingeniero Stephen Wozniak y los trabajos de Steven Jobs, comenzaron a producir una computadora superior. La IBM introdujo su computadora personal, o PC, en 1981. Como resultado de la competencia de los fabricantes de clones (computadoras que funcionaron exactamente como una PC IBM), el precio de computadoras personales cay drsticamente. La computadora personal de hoy es 200 veces ms rpida que ENIAC, 3,000 veces ms ligera, y vario millones de dlares ms barata. En la rpida sucesin de computadoras se ha contrado del modelo de escritorio a la computadora porttil y finalmente a la del tamao de la palma. Con algunas computadoras personales la gente puede incluso escribir directamente en una pantalla de cristal lquido usando una aguja electrnica pequea y las palabras aparecern en la pantalla en mecanografiado limpio. La investigacin en inteligencia artificial est procurando disear una computadora que pueda imitar los procesos y las habilidades propias del pensamiento del ser humano como el razonamiento, solucionar problemas, toma de decisiones y aprender. Se cree que la inteligencia humana tiene tres componentes principales: sentido, capacidad de clasificar y de conservar conocimiento, y capacidad de hacer elecciones basadas en la experiencia acumulada. Los sistemas expertos o los programas de computadora que simulan los procedimientos de toma de decisin de humanos expertos, ya existen y exhiben los
3. Automatizacin
La historia de la automatizacin industrial est caracterizada por perodos de constantes innovaciones tecnolgicas. Esto se debe a que las tcnicas de automatizacin estn muy ligadas a los sucesos econmicos mundiales. El uso de robots industriales junto con los sistemas de diseo asistidos por computadora (CAD), y los sistemas de fabricacin asistidos por computadora (CAM), son la ltima tendencia y luego se cargaban en el robot inicia en automatizacin de los procesos de fabricacin. stas tecnologas conducen a la automatizacin industrial a otra transicin, de alcances an desconocidos. Aunque el crecimiento del mercado de la industria Robtica ha sido lento en comparacin con los primeros aos de la dcada de los 80s, de acuerdo a algunas predicciones, la industria de la robtica est en su infancia. Ya sea que stas predicciones se realicen completamente, o no, es claro que la industria robtica, en una forma o en otra, permanecer. En la actualidad el uso de los robots industriales est concentrado en operaciones muy simples, como tareas repetitivas que no requieren tanta precisin. Se refleja el hecho de que en los 80s las tareas relativamente simples como las mquinas de inspeccin, transferencia de materiales, pintado automotriz, y soldadura son econmicamente viables para ser robotizadas. Los anlisis de mercado en cuanto a fabricacin predicen que en sta dcada y en las posteriores los robots industriales incrementaran su campo de aplicacin, esto debido a los avances tecnolgicos en sensorica, los cuales permitirn tareas mas sofisticadas como el ensamble de materiales. Como se ha observado la automatizacin y la robtica son dos tecnologas estrechamente relacionadas. En un contexto industrial se puede definir la automatizacin como una tecnologa que est relacionada con el empleo de sistemas mecnicos-elctricos basados en computadoras para la operacin y control de la produccin. En consecuencia la robtica es una forma de automatizacin industrial. Hay tres clases muy amplias de automatizacin industrial: Automatizacin fija, automatizacin programable, y automatizacin flexible.
10
4. Tipos de Automatizacin.
Existen cinco formas de automatizar en la industria moderna, de modo que se deber analizar cada situacin a fin de decidir correctamente el esquema ms adecuado. Los tipos de automatizacin son:
Control Automtico de Procesos El Procesamiento Electrnico de Datos La Automatizacin Fija El Control Numrico Computarizado La Automatizacin Flexible.
El Control Automtico de Procesos, se refiere usualmente al manejo de procesos caracterizados de diversos tipos de cambios (generalmente qumicos y fsicos); un ejemplo de esto lo podra ser el proceso de refinacin de petrleo. El Proceso Electrnico de Datos frecuentemente es relacionado con los sistemas de informacin, centros de cmputo, etc. Sin embargo en la actualidad tambin se considera dentro de esto la obtencin, anlisis y registros de datos a travs de interfases y computadores. La Automatizacin Fija, es aquella asociada al empleo de sistemas lgicos tales como: los sistemas de relevadores y compuertas lgicas; sin embargo estos sistemas se han ido flexibilizando al introducir algunos elementos de programacin como en el caso de los (PLC'S) O Controladores Lgicos Programables. Un mayor nivel de flexibilidad lo poseen las mquinas de control numrico computarizado. Este tipo de control se ha aplicado con xito a Mquinas de Herramientas de Control Numrico (MHCN). Entre las MHCN podemos mencionar:
11
El mayor grado de flexibilidad en cuanto a automatizacin se refiere es el de los Robots industriales que en forma ms genrica se les denomina como "Celdas de Manufactura Flexible".
12
13
14
15
1. Introduccin
1.1 Automatizacin y evolucin histrica
Es frecuente encontrar el trmino inteligente aplicado a un edificio, siendo, en muchas ocasiones, una utilizacin del trmino poco apropiada. Los inicios de su uso hay que buscarlos en la ciencia informtica, donde se habla de terminales tontos (dumb) y de terminales inteligentes (smart) para diferenciar los que disponen de capacidad propia de proceso de datos de aquellos que no la tienen. Esta capacidad de proceso est asociada a la disponibilidad del elemento que constituye la base del desarrollo acelerado de la informtica en los ltimos tiempos: el microprocesador. La incorporacin de microprocesadores a distintos equipos ha hecho que se extienda el trmino inteligentes aplicado a los mismos.
la paulatina convergencia
de
la
informtica
y las
telecomunicaciones, provocada tanto por la aplicacin de tecnologas digitales a las comunicaciones (lo que sera la informatizacin de las telecomunicaciones) como por la necesidad de que los ordenadores puedan transmitir y recibir datos de otros equipos electrnicos, hace que, de hecho, no se hable separadamente de informtica y telecomunicaciones, sino del conjunto de ambas como de las Nuevas Tecnologas de la Informacin (NTI). En este contexto, una vivienda puede ser denominada inteligente cuando a sus equipos e instalaciones tradicionales se incorporan nuevas tecnologas de informacin.
Se utilizan tambin otros trminos para describir este concepto, como el de vivienda automatizada o expresiones mucho ms genricas, como la de sistemas domsticos. Pero el trmino ms utilizado es el de domtica, an siendo el ms ambiguo en cuanto a los sistemas inteligentes se refiere. Es un trmino que proviene del francs domotique, como unin de la palabra latina domus (casa) y robotique (robtica). 16
Esto es, la robotizacin de la vivienda, o mejor dicho, la automatizacin del hogar. Sin embargo, este trmino no es bien acogido por parte de ciertos sectores. Se debe ante todo a que la domtica no ha evolucionado tan bien como se esperaba en el mercado espaol, y el trmino suena tambin, en algunos casos a fracaso, lujo intil, sistemas que fallan y alto precio. Pero cada vez el trmino domtica se incorpora en el vocabulario tcnico, adems de tener un significado y una definicin, (Domtica: concepto de vivienda que integra todos los automatismos en materia de seguridad, gestin de energa, comunicaciones...) por lo que hoy en da est casi plenamente aceptada.
El desarrollo tecnolgico y la convergencia entre la informtica y las comunicaciones posibilita, de manera sencilla, la implantacin de los sistemas domticos en viviendas y edificios. En poco tiempo, la domtica ha evolucionado considerablemente en base a una serie de factores:
Mayor calidad de vida, aumentando el bienestar y reduciendo el esfuerzo fsico, el trabajo rutinario y el trabajo improductivo.
La funcionalidad en edificios. El ahorro energtico. Comunicacin de la vivienda con el exterior. Todas estas ventajas que presenta la instalacin domtica debe, adems, ir acompaado de una interface de usuario sencillo, de fcil manejo y comprensin.
Dentro de los diferentes sistemas domticos existentes este trabajo se centra en el estudio del sistema por bus de datos EIB. Pero antes de comentar sus caractersticas veremos los diferentes servicios y aplicaciones que debe de cumplir un sistema domtico, para ver si el EIB las cumple, al igual que una pequea referencia a los otros tipos de sistemas existentes.
17
A) La gestin de energa.
Con la gestin de la energa se busca optimizar el consumo energtico en la vivienda. Para ello puede disponerse de un sistema de gestin de cargas elctricas mediante el cual se desconecten de un modo selectivo y programado un cierto nmero de equipos domsticos segn un ciclo preestablecido con el fin de no superar la potencia elctrica contratada. As, por ejemplo, si un lavavajillas tuviese una fase crtica en su ciclo de funcionamiento, el sistema de gestin de cargas podra parar momentneamente el uso de una lavadora hasta que dicha fase no haya terminado.
La ventaja de este sistema es, adems de reducir la potencia elctrica contratada, evitar sobrecargas en el de distribucin elctrica.
Tambin se puede llevar a cabo la utilizacin de energas renovables generadas en la propia vivienda, tanto con sistemas activos como pasivos, como la utilizacin de la energa solar a baja temperatura o como la recuperacin de energas residuales generadas en el propio edificio, as como la utilizacin de energas alternativas como la solar o elica ante imprevistos.
Otra forma de ahorro es incorporando un contador con doble tarifa, que haga funcionar, mediante programadores horarios, distintos receptores dentro del horario donde la energa elctrica sea ms barata (tarifa nocturna).
18
Tiene como objetivo la proteccin tanto de personas como de bienes. Las funciones de seguridad que incorporan casi todos los sistemas domticos se realizan del mismo modo que cualquier otra funcin que puedan realizar. Es decir, el sistema de control, ya sea centralizado o descentralizado, recibe un conjunto de seales de los detectores perifricos y enva seales a sus actuadotes (activacin de una alarma, encendido de una luz, envo de una llamada telefnica...). Fsicamente, esta comunicacin se realiza dependiendo de la tipologa de cableado elegida: punto-apunto, bus o portadoras.
Cuando se produce una intrusin en la vivienda, detectores de presencia distribuidos en lugares estratgicos detectan al intruso, activando el sistema de alarma. Como respuesta a tal intrusin, se activar una sirena, a la vez que un transmisor telefnico avisar al usuario de la intromisin mediante un mensaje hablado que llegar al telfono indicado. Estos nmeros de telfono sern particulares, y nunca pueden ser los correspondientes al del servicio de bomberos, ni hospitales, ni polica. Cuando el usuario est ausente, podr simular su presencia mediante la activacin programada de luces, radio, subida y bajada de persianas... De esta manera, la probabilidad de una intrusin se reduce considerablemente.
En muchas ocasiones, un escape de agua no es detectable hasta que produce efectos irreparables. Con un sensor de humedad en la cocina y aseos, es posible actuar sobre una electro-vlvula, interrumpiendo el suministro de agua al detectar un escape.
Lo propio puede ocurrir al detectar una fuga de gas. De igual manera, al detectar un incendio, detectores de humo y fuego harn que se activen las alarmas y avisarn, va red telefnica a los bomberos.
19
Con la automatizacin de algunas tareas domsticas se pretende aumentar el nivel de confort del usuario. Es un grupo muy grande y recoge aplicaciones de muy distinta ndole, como la comprobacin del correcto funcionamiento de los sistemas. Por ejemplo, si mientras estamos viendo la televisin llaman a la puerta ser posible ver al visitante en una pequea ventana que se abrir en una esquina del televisor, y actuar sobre la cerradura elctrica de la puerta para permitir su entrada, por ejemplo mediante un terminal telefnico.
Las persianas pueden gobernarse cmodamente mediante simples mandos a distancia de forma individual o colectiva. Tambin puede instalarse una red de aspiracin centralizada con tomas distribuidas por el inmueble. La iluminacin del exterior de la vivienda se activar automticamente al detectar la presencia de una persona cuando el grado de luminosidad ambiente sea inferior a un valor programado. Del mismo modo, las viviendas con zonas ajardinadas pueden disponer de un sistema de riego que se active automticamente segn el grado e humedad del suelo y segn un horario preestablecido.
D) La comunicacin.
Otro grupo de aplicaciones viene dado por las comunicaciones entre personas y entre personas y equipos, dentro y fuera de la vivienda. As, por ejemplo, pueden activarse la calefaccin o cualquier equipo domstico de inters para el usuario con una simple llamada telefnica. Adems, algunas aplicaciones, como ya explicamos antes, requieren una comunicacin hacia el exterior, como el caso de mensajes de auxilio o intrusin.
20
21
2. Sistemas automticos.
Existen diferentes sistemas domticos. Dentro de los sistemas actuales los ms relevantes son el sistema por corrientes portadoras, el sistema por controlador programable y el sistema por bus de datos. Haremos una pequea introduccin a cada uno de ellos.
El sistema X-10 proporciona a los usuarios facilidad de manejo, a los instaladores la flexibilidad y capacidad de crecimiento y la solucin de problemas economizando proyectos.
Los fundadores de X-10 establecieron ciertos principios estratgicos que permanecen a pesar del paso de los aos, como el de disear productos que incluyan circuitos integrados propios cumpliendo objetivos de rendimiento o el de disear productos para un amplio sector del mercado, con un bajo coste de manufacturacin.
Siguiendo estos principios y como X-10 tiene patentes en aspectos claves de la tecnologa PLC (Power Line Carrier, transmisin por corrientes portadoras), no han
22
Las transmisiones X-10 se sincronizan con el paso por el cero de la corriente alterna. Los interfaces Power Line proporcionan a onda cuadrada de 50 Hz con un retraso mximo de 100 seg desde el paso por el cero de la corriente alterna. El mximo retraso entre la entrada de la curva de la seal y de cruce por la salida de los pulsos de 120 KHz es de 50 seg.
Un 1 binario se representa por un pulso de 120 KHz durante un milisegundo, en el punto cero, y el 0 binario se representa por la ausencia de ese pulso de 120 KHz. Estos pulsos de un milisegundo se transmiten tres veces para que coincidan con el paso por cero en las tres fases en un sistema trifsico.
23
El Modulo de Control es programable y en l se procesa la informacin procedente de las entradas y se ejecutarn las acciones definidas en la programacin introducida.
La herramienta de programacin ser un ordenador personal provisto del software terminal Simon VIS (TermVIS). Hay dos tipos de mdulos de entradas, uno de 230 V c.a., con 8 entradas con un neutro comn, y otro de 24 V c.c., con 16 entradas. De modo similar hay 3 tipos de mdulos de salidas: uno de 230 V c.a., con 8 salidas rel distribuidas en dos grupos de 4 salidas cada uno; otro de 400 V c.a., con 8 salidas de rel, y otro de 24 V c.c., con 8 salidas s transistor.
En total gestiona 128 entradas y 128 salidas y dispone de 128 programadores semanales. Tambin existen diversos complementos para incrementar las prestaciones de la instalacin, como el mdulo de temporizadores o el de mdem.
24
Las redes o buses domticos, (los sistemas basados en redes de transmisin de informacin) comparten un canal de control o cableado nico al que se conectan tanto los sensores como los bloques actuadores y la unidad central, que es capaz de hablar individualizada o colectivamente con esos dispositivos. Vamos a analizar las caractersticas exigidas a un sistema domtico y como se adapta el bus.
Interaccin entre unidades. La caracterstica ms importante ofrecida por las redes estriba en la infraestructura de comunicaciones de propsito general que puede ser usada por las diferentes aplicaciones o dispositivos electrodomsticos sin inferir unas con otras. Una red es capaz de reducir enormemente el cableado existente en las instalaciones actuales, adems de permitir la interaccin entre reas de aplicacin (no existente en sistemas convencionales); con mucho menos cableado se obtiene incluso ms funcionalidad.
Ampliabilidad. Se quiere indicar la facilidad de aadir nuevos dispositivos al sistema domtico con un mnimo coste econmico y de esfuerzo por parte de instaladores y usuarios. Con los buses el problema se reduce drsticamente, ya que se emplea un solo cable para conectar todos los dispositivos. Se pueden prever a lo largo del hogar una serie de tomas de conexin al bus o bien empalmar desde cualquiera de los existentes. Incluso es vlido un enchufe mltiple donde conectan cuantos dispositivos queramos. Existe una gran flexibilidad a este respecto.
25
Ubicacin flexible de los dispositivos. Un bus ofrece una infraestructura de control de propsito general, lo que quiere decir que no importa en que lugar del cable se conecte un dispositivo, la funcionalidad va a ser totalmente independiente de su ubicacin. Imaginemos una lavadora inteligente que inicialmente est instalada en la cocina donde est funcionando perfectamente, pero, por problemas de espacio se decide cambiar al garaje. El proceso de instalacin quedar reducido a desconectar la lavadora de la cocina y conectarla al garaje. Las rdenes de puesta en marcha, etc., que manda el controlador a la lavadora le seguir llegando ahora en su nueva ubicacin.
En el esquema se ve un ejemplo de cmo funciona un bus. Los elementos son una unidad central, sensores de presencia y una sirena. Estos comparten el mismo canal de control, es decir, el mismo cableado. La unidad central recoge la informacin de los sensores de presencia y activa la sirena segn la programacin existente.
26
Para el desarrollo y promocin del sistema EIB se ha fundado en Europa una asociacin de ms de setenta firmas fabricantes de material elctrico denominada EIBA.
3.1 La EIBA
La EIBA (European Installation Bus Association o asociacin del bus de instalacin europeo) es la organizacin que rene a las empresas punteras en la tcnica de instalacin elctrica para impulsar el desarrollo de sistemas de edificios y conseguir ofrecer en el mercado europeo un sistema fiable.
La EIBA tiene sus sede en Bruselas, y es una Sociedad Cooperativa segn la legislacin belga. Ms de 70 miembros, que como fabricantes cubren el 80% de la demanda de aparatos de instalacin elctrica en Europa, pertenecen a la sociedad, entre los que se encuentran Bosch-Jaeger, ABB, Elektro,... Los nuevos asociados e incluso licenciatarios suelen ser aceptados.
El smbolo visible de la asociacin es la marca registrada "EIB". El cumplimiento por los productos con los estndares requeridos por EIB, se comprueba en laboratorios independientes. El logotipo EIB ofrece de esta forma, todas las garantas de plena compatibilidad, con que se obliga a cada fabricante; as se consigue una plena compatibilidad entre elementos de distintos fabricantes.
27
pone a disposicin de las empresas asociadas y de sus participadas en las que posean la mayora, as como de las licenciatarias, esto es, los colaboradores EIBA, el "cmo-hacer" (know-how) actual y futuro del sistema.
est facultada, en caso de resultados de ensayo positivos, a conceder a los colaboradores EIBA, una licencia de marca "EIB".
colabora activamente en la normalizacin a travs de las empresas asociadas, y adapta el sistema de Bus a las normas vigentes.
Y aunque todos los miembros de la EIBA se han puesto de acuerdo sobre un estndar unitario, se ha mantenido la competencia: los profesionales y los usuarios continan disponiendo de la libre eleccin de los productos de diferentes fabricantes y de las soluciones tcnicas.
28
3.2 Generalidades
El EIB es un sistema de control de instalaciones por Bus de datos.
Dentro del grupo de los equipos domticos el EIB se encuadra entre los sistemas descentralizados. Es decir, que frente a los sistemas centralizados que dirigen el control del edificio de forma centralizada, de tal modo que un error del ordenador central hara caer toda la instalacin, el EIB es un sistema de control distribuido. En estos sistemas cada nodo (sensores y actuadores) tiene inteligencia propia, es decir, puede actuar por s mismo segn las consignas de actuacin que se le hayan programado durante su instalacin. No hay central de control que pueda dejar inservible el sistema y, si cae un nodo, el resto de la red funciona perfectamente. Todos los componentes trabajan independientemente, sin necesidad de que otro elemento central vigile o coordine sus funciones. Esto se consigue gracias a que cada componente tiene su propia electrnica con un microprocesador y las memorias correspondientes.
El sistema EIB nace para hacer frente a los mercados japons y americano, basa su potencia y versatilidad en que a todos los componentes les llega un bus de datos que consta de dos hilos y que funciona a una tensin de 24 V en corriente continua. El cometido de este bus es doble:
Por una parte, suministra la alimentacin a los componentes del sistema, con una tensin adecuada para su funcionamiento.
Por otra, a travs de l se transmite el telegrama codificado para la comunicacin entre los componentes.
Los componentes del sistema EIB se dividen en tres familias: Los sensores, los actuadores y los aparatos bsicos y accesorios. Sensores son aquellos que envan ordenes manual o automticamente a travs del bus, por ejemplo pulsadores, termostatos... Los actuadores son los que reciben esas rdenes y las ejecutan, por ejemplo salidas primarias (pequeos contactores), interruptores de persianas, reguladores,... Los aparatos bsicos y accesorios no realiza funciones de gobierno ni de
29
La instalacin ms sencilla puede ser slo de dos componentes (consenso y un actuado) y una fuente alimentacin. La ms compleja podra tener hasta 11.520 componentes (64x12x15).
La filosofa de control descentralizado, ha dado pie al concepto de redes de control (LON),con una clara relacin a las redes de rea local (LAN).Las topologas de conexin y el funcionamiento son similares. En cambio, una LAN est especializada en transmitir una elevada cantidad de informacin, con necesidad de un gran ancho de banda, y una LON est especializada en la transmisin de seales de control de corta duracin, requiriendo una velocidad de transmisin elevada y sin necesidad de un gran ancho de banda en el medio de comunicacin. A estos sistemas no centralizados, tambin se les llama redes de control.
El sistema EIB pueden utilizarse tanto en viviendas como en edificios del sector terciario para las funciones de mando y control de, por ejemplo, la iluminacin, persianas, toldos, calefaccin, seguridad,... es decir, que puede controlarse cualquier elemento que requiera energa elctrica para su funcionamiento. No sirve, por supuesto, para comunicaciones audiovisuales o para procesos de datos en trabajos con ordenadores de oficinas.
Ventajas:
Se trata de una tecnologa claramente orientada hacia los instaladores, esto implica que su puesta en funcionamiento es relativamente sencilla, basta con parametrizar y dar direcciones.
El bus se adapta al tamao de la instalacin y a las funciones exigidas progresivamente, pudiendo incorporarse hasta 10.000 componentes.
30
De cara al usuario, representa menor coste de energa, mayor confort y ms seguridad, sin olvidar lo ya dicho de la facilidad de modificaciones (sin tener en cuenta la posible obra de empotramiento del bus) o ampliaciones y la sencillez en el mantenimiento.
- Es de aplicacin universal en edificaciones de cualquier tipo. - Econmico en la utilizacin energtica. - Coste de servicio minimizado. - Tiempos de montaje reducidos. - Sencillez de cableado de instalacin. - Riesgo de incendio reducido. Menores costes de seguro. - Compatible hacia arriba con otros sistemas de gestin de servicios. - Compatible de sistema orientado al futuro. - Adaptacin flexible de la instalacin en modificaciones de utilizacin. - Componentes del sistema diseados para la prctica normal del instalador electricista. - Asistencia eficaz en la fase de proyecto. - Programa de software pensado para el instalador. - Formacin orientada a la prctica. - Mantenimiento sencillo. - Servicios y asesora de una sola mano.
Inconvenientes:
Uno de los inconvenientes principales de este sistema domtico es el precio, dado que sus componentes son ms caros que los de otros equipos centralizados. Pero
31
Otro inconveniente a la hora de su instalacin, es la necesidad de la instalacin del medio fsico que intercomunica los distintos nodos, el bus es muy fcil de instalar en una vivienda nueva a la vez que se hace la instalacin elctrica convencional, pero supone un mayor trabajo su instalacin en viviendas ya habilitadas.
Por otra parte, y de cara a los fabricantes, hay que tener en cuenta que para fabricar productos compatibles EIB, es necesario pertenecer a EIBA, o lo que es lo mismo, pagar por ello.
La intencin de ofrecer un producto acabado y de funcionamiento sencillo que se converta en una ventaja, se convierte en una desventaja cuando limita la flexibilidad del estndar. A nivel de ingeniera, slo se puede actuar sobre la aplicacin del sistema, no se puede optimizar el protocolo para un uso especfico.
En Espaa son muy pocas empresas que disponen de productos EIB. En concreto slo Niessen, Siemens y Jung pueden satisfacer la potencial demanda de cualquier cliente.
Adems, aunque existe una asociacin espaola de fabricantes de EIB, EIBA Espaa, en principio encargada de potenciar y difundir la tecnologa EIB, aunando esfuerzos y creando productos compatibles entre s, resulta que la mayora de estas empresas no tienen productos EIB en el mercado. Y lo que es peor, alguna de estas empresas tienen otros productos domticos alternativos de fabricacin propia, por lo que da la sensacin de que en lugar de potenciar productos EIB, estn retrasando su produccin y difusin mientras las ventas de sus productos actuales siga en aumento.
Tambin hay que tener en cuenta que, cada vez ms, la gente demanda productos de control y, al no encontrar en EIB una alternativa real se pone en manos de cualquier otra tecnologa alternativa (algunos incluso llegan a instalar basados en el obsoleto BatiBS, del que se hablar a continuacin).
32
33
Los equipos para el bus, por ejemplo los de control para los diferentes consumidores y para la supervisin del edificio, pueden montarse tanto en los distribuidores como en los mismos equipos termina. El montaje centralizado de los equipos del bus en los distribuidores ofrece un mejor acceso que el montaje en los equipos terminales.
Sin embargo, en el montaje centralizado debe aceptarse un cableado radial hacia los equipos terminales.
El tendido directo del Instabs EIB hacia los equipos terminales (sensores, aparatos de iluminacin,...), simplifica, en cambio, el cableado tanto del bus como de los conductores de fuerza. El montaje de los equipos de bus en los canales del antepecho de las ventanas, combina las ventajas del cableado simple y una disposicin clara, con una buena sensibilidad para la puesta en servicio, diagnstico y mantenimiento. Los equipos del bus se conectan en los distribuidores y canales a travs del perfil de datos colocado en el riel de sujecin DIN.
Al enganchar los equipos sobre el riel se establece forzosamente el contacto con el perfil de datos. Para el resto de equipos del bus, las conexiones se efectan de equipo a equipo por medio de borneras a presin, o los equipos se conectan a travs de derivaciones o cajas de derivacin del bus. No existe limitacin para la longitud de las derivaciones mientras no sobrepasen la longitud total admisible de una lnea del bus (1000m). Como conductor para el bus se utiliza un cable trenzado, estndar en instrumentacin y control.
34
El conductor bus es de 2 x 0,5 mm, a fin de tener un par de reserva para cualquier circuito a baja tensin o bien para ser utilizado en caso de rotura de un hilo. Por la forma de instalacin, los componentes pueden dividirse en dos grupos: los que se fijan a presin en perfil DIN y los que se instalan fuera de los armarios en cajas de mecanismos o junto a los aparatos que se van a controlar o accionar. Respecto a los que se instalan en armario, se debe fijar previamente en el perfil DIN un perfil de datos autoadesible en cuatro pistas conductoras en las cuales hacen contacto los componentes automticamente, por el solo hecho de fijarlos en el perfil DIN. En las pistas extremas,1 y 4, hace contacto la fuente de alimentacin; en las pistas centrales, 2 y 3, hacen contacto los dems componente a excepcin de la bobina o filtro que es el nico aparato que hace contacto con las cuatro pistas, comunicando la pista 1 con la 2 y la 4 con la 3. La bobina evitar que los telegramas de rdenes se anulen o cortocircuiten en la fuente de alimentacin.
Todos los componentes que se instalan en el perfil DIN son modulares del sistema N.
Alimentacin de corriente:
Cada lnea tiene su propia alimentacin para los componentes que cuelgan de ella. La alimentacin tpica de una lnea son 24 voltios en corriente continua.
Los componentes se agrupan en lneas. En cada lnea, se pueden instalar 64 componentes, sean sensores, actuadores o una mezcla de ellos. La tensin nominal del bus es de 28 voltios en corriente continua, an que los componentes pueden funcionar hasta con un mnimo de 21 voltios. Los componentes consumen normalmente 5 mA por lo que las fuentes de alimentacin estn diseadas para dar 64 x 5 = 320mA. Si se
35
La fuente de alimentacin tiene regulacin de tensin y de intensidad, por lo que es resistente a cortocircuitos. Al tener un tiempo de reserva de 100 ms est protegido frente a los microcortes de la red. La absorcin de potencia de cada nodo es de 5 x 28 = 140 mW, aunque algunos nodos, los que incorporan LED's, pueden llegar a consumir hasta 200 mW.
Por motivos funcionales, la fuente de alimentacin debe ser conectada tierra. Esto implica que la toma de tierra del bus debe ser conectada a la fuente de alimentacin.
Dado que en el conductor bus estn superpuestas la informacin o telegramas de rdenes que son bit y, por tanto, es tensin alterna y la alimentacin que es tensin continua, se debe utilizar un procedimiento para separar ambas en cada componente.
Este consiste en emplear un pequeo transformador con el primario partido y un condensador. En una derivacin del primario se tiene la tensin continua y en el secundario slo se induce de informacin. Este proceso funciona en ambas direcciones, es decir tanto como un emisor como con un receptor o actuador.
36
La seal elctrica:
El cable que se emplea es un par trenzado de 0,8mm de dimetro, con doble apantallamiento: Uno de plstico y uno metlico. Este ltimo hace las funciones de toma de tierra que debe ser trasladada a la fuente. Estas protecciones permiten que el bus pueda circular junto a la red elctrica de 230 voltios sin problemas.
El bus est formado por un par trenzado dobles del cual slo van a utilizarse dos hilos, quedando los otros dos como reserva para posibles usos adicionales. La informacin se transmite de forma simtrica al par de conductores que est en uso. Por tanto al nodo que cuelga de la lnea le llega la informacin de que las variaciones perturbadoras actan sobre ambos conductores con la misma polaridad, no influyen en la tensin diferencial de la informacin.
La conexin de los componentes se hace con acoplamientos de bajo valor mhico, con la que se aumentar la proteccin frente a perturbacin. No se necesita una resistencia de cierre del conductor. La conexin de conductores se efecta mediante bordes bus sin tornillos. Asimismo, un componente se enchufara al borne o bus sin que por ello quede interrumpido el conductor bus. Dimensionamiento:
Las dimensiones mximas de la red estn limitadas por diversos factores como son las capacidades parsitas, tiempo de preparacin, alteraciones,...
La longitud mxima de cada lnea de la red, 1000m, est determinada debido al hecho de que el emisor del telegrama (en tensin alterna) queda cargado con la capacidad del conductor. Cada nodo enva nicamente una semi-onda negativa a 9600bps, la bobina de la fuente de alimentacin se encarga de generar la semi-onda compensatoria activa. Esta forma de reconstruir la onda es lo que hace que los componentes tengan una mxima distancia hasta la fuente de 350 metros.
37
aproximadamente 10 ms cada 700 metros. Retraso y insignificante comparado con la longitud media del telegrama de informacin (cada telegrama ocupa el bus un tiempo comprendido entre 20 y 40 ms).
38
La mnima unidad que compone una red EIB se denomina lnea. Cada una de estas puede soportar hasta 64 nodos EIB. El sistema permite duplicar tanto la longitud como la capacidad de nodos de la lnea, simplemente uniendo dos lneas por medio de un repetidor. Para cada una de estas lneas ampliadas se necesita una fuente de alimentacin adicional. En algunos casos, una lnea puede tener hasta cuatro segmentos de lnea conectados a travs de repetidores y, por tanto, la capacidad de la lnea se puede ampliar hasta 256 nodos.
Con ayuda de acopladores de lnea se pueden conectar hasta 12 lneas para formar una zona EIB. Por tanto, dos mecanismos en diferentes lneas pueden intercambiarse informacin a travs de la lnea principal. La longitud de cada lnea no puede exceder los 1000 metros, con una separacin mxima de 700 metros, y entre la fuente de alimentacin y un nodo de trescientos cincuenta metros.
Con ayuda de acopladores de zona pueden llegar a unirse hasta 15. Por tanto, se pueden disear redes de hasta 64 x 12 x 15 = 11.520 nodos, y si se dispone de un repetidor en cada una de las lneas se puede llegar hasta un mximo de once mil quinientos veinte por dos igual a 23.040 nodos.
Para realizar la instalacin tanto de las diferentes lneas, como de la lnea principal o de la el lnea de zonas sern necesarios los mismos componentes: una fuente de alimentacin para cada lnea, un filtro que nos depure la alimentacin de 24 voltios y un conector que nos pasen la corriente del bus del perfil DIN al bus cable, adems de los posibles acopladores de lnea o de rea que se necesite. Por ltimo, se colgarn los sensores y actuadores, hasta un mximo de 64 unidades por lnea.
39
T1: tiempo libre del bus (50bits). T2: espacio hasta el recibo (13 bits).
La informacin completa se enva agrupada en palabras de once bit. El bit inicial es start-bit que indican el comienzo de cada palabra, despus le siguen los ocho bit de datos, a continuacin el bit de paridad y se termina con el bit de parada (stop-bit).
Antes de la transmisin de la siguiente palabra, han de pasar como mnimo dos bit sin ningn tipo de informacin.
El telegrama se emite con una velocidad de 9.600bps, envindose una palabra de once bit (8 de informacin) cada trece bit, es decir 1,35 ms.
Si se tiene en cuenta los encabezamientos T1 y T2 , cada telegrama ocupa el bus un tiempo comprendido entre 20 y 40 ms.
Todos los nodos a los que van dirigido el telegrama dan simultneamente el recibo de la recepcin.
Un telegrama constante de siete campos que son, de izquierda a derecha: control, direccin de origen, direccin de destino, contador rooting, longitud, datos, comprobacin.
40
1. Campo de control: se encargan de indicar las prioridades. Hay cuatro grados. La mxima prioridad se asigna a funciones de autogestin del sistema; el segundo grado se designa a funciones de alarma. Adems, el campo de control tiene un bit que si toma el valor cero, indica que el mensaje es una repeticin porque no se ha recibido el acknowledge; con esto se evita que los elementos que ya hayan ejecutado la orden la vuelvan a repetir.
2. Direccin de origen: es la direccin fsica del componente de emisor. Como se ha visto anteriormente, se enva informacin del rea y la lnea en la que se encuentra dicho elemento. La revisin de la direccin de origen pretende facilitar las tareas de mantenimiento al identificarse fcilmente quien ha emitido el telegrama.
3. Direccin de destino: puede ser la direccin fsica o la de grupo segn el valor que tome el bit 17(si es uno entonces es de grupo).
4. Contador rooting: indica el nmero de acopladores por los que ha pasado el mensaje. Su funcin es evitar que un mensaje se pasee mucho tiempo por la red.
5. Longitud: son cuatro bits que indican el nmero de bytes de informacin que contiene el campo de datos. El nmero mximo es 16.
6. Datos: el campo informacin til tiene dos partes diferenciadas: la orden y los parmetros de la misma. La primera puede ser de cuatro tipos: escribir, leer, contestacin larga y contestacin corta. Las tres primeras envan dos bytes mientras que la tercera puede llegar a ocupar los diecisis bytes disponibles. Todas rdenes leer se solicita el acuse de recibo del componente direccionado.
7. Comprobacin: cada "palabra" de once bytes tiene que presentar paridad par (comprobacin horizontal), adems, al acoger cada bit de todas las "palabras" del telegrama (bit 0 de todos los campos, bit uno de todos los campos,...), tiene que sumar 1(paridad impar vertical).
41
Acceso al medio:
Si un nodo quiere enviar un mensaje al bus y ste no est ocupado, lo puede hacer inmediatamente. Si hay emisiones simultneas de varios nodos, entonces el acceso de stos se regula con el procedimiento CSMA-CA (Carrier Sense Multiple Access with Collision Avoidance). Con el fin de evitar las colisiones, los dispositivos esperan en modo de deteccin durante sus envos al bus como si estuviesen escuchando lo que sucede en el bus para detectar si est libre o no. Si hay corriente en el conductor, interrumpe la emisin y da prioridad a otro nodo.
El componente con prioridad baja, escucha el telegrama hasta el final, y a continuacin emite.
El objetivo de este procedimiento es que aunque haya varios dispositivos con mensajes a enviar, el bus siempre est ocupado por alguno. Con esto se evita tener el bus desocupado lo que originara una disminucin de la capacidad de transmisin del bus.
42
El acoplador al bus recibe telegramas del bus de la instalacin, los decodifica y manda la informacin a la unidad de aplicacin (actuador o sensor).
Cuando la unidad de aplicacin desea enviar informacin al bus, el acoplador recibe esta informacin, la codificar y la transmite al bus, direccionndola hacia un actuado o sensor.
El acoplador al bus y la unidad de aplicacin intercambian informacin por medio de un interface fsico externo, al que se accede a travs de un conector de 10 pins. El acoplador es un mecanismo multifuncional. Slo sabr la funcin que deber realizar cuando haya recibido los parmetros necesarios durante la instalacin. Los datos de parmetro son automticamente cargados cuando se produce la puesta en marcha de la instalacin por medio de las herramientas de ETS.
El acoplador no necesita ser programado. Ya tiene instalado en el firmware el modo de funcionamiento del protocolo de comunicaciones.
El acoplador al bus peridicamente chequea el corrector de diez pins de los sensores con el fin de localizar cambios en la seal. Si se produce un cambio, se transmite un telegrama a la instalacin del bus.
En el caso de los actuadores estos envan los nuevos telegramas por medio de interface fsico externo solamente una vez a la unidad de aplicacin.
43
El mdulo de transmisin es el elemento del acoplador al bus que se encarga de separar o mezclar la tensin continua y la de la informacin, producir cinco voltios estabilizados, salvar los datos si la tensin de alimentacin se pone por debajo de 18 voltios, controlar la funcin de reset del procesador y gobernar la emisin/recepcin. El acoplador puede tener tres funciones:
- Acoplador de rea: enlaza la lnea de rea con la principal de un rea. - Acoplador de lnea: enlazan la lnea principal con una secundaria. - Amplificador del lneas: duplica el nmero de elementos de la lnea.
Mientras que los dos primeros discriminar el paso de telegramas, el tercero deja pasar todos los que le llegan. Los acopladores de lnea y de filtro reciben una tabla de filtro durante la parametrizacin. Esta memoria se mantiene durante ms de diez aos con una pila de litio.
44
3.8 Direccionamiento
Cada componente est identificado por su direccin fsica que es exclusiva. Esta direccin slo se utiliza con fines de diagnstico para saber si el mecanismo est bien programado o no. Tiene una longitud de 16 bits divididas en tres campos:
F=1-15 rea en que se encuentra el mecanismo. F=0 lnea de rea. L=1-12 lnea en que se encuentra dentro del rea. T=1-64 direccin del componente dentro de la lnea.
Para que sensores y actuadores funcionen conjuntamente se asocian mediante la direccin de grupo. Esta es totalmente independiente de la direccin fsica, y las agrupaciones que realizan son de tipo lgico.
Cada direccin puede coordinar cualquier componente independientemente de la lnea en que se halle. La principal aplicacin de la direccin del grupo es permitir que un telegrama pueda ir dirigido a varios nodos.
Los acopladores de la lnea juegan un papel muy importante en el correcto funcionamiento de las direcciones de grupo, ya que son los que deciden si un telegrama puede o no pasar a la lnea. Durante la parametrizacin se suministran al acoplador de lnea las direcciones de los nodos que se hallan bajo su control: si un mensaje no va dirigido a ninguno de estos nodos, ni tan slo pasa a la lnea. Lo mismo sucede con los acopladores del rea.
45
46
El E.T.S. (EIB tool Software) es el software de programacin del sistema EIB. Se carga una vez cableada la instalacin. El programa sigue un entorno Windows, por lo que su manejo es fcil; basta seguir las instrucciones que la pantalla nos va dando a travs de los comandos e iconos.
- Permitir el diseo y planificacin de las instalaciones. - Programar las aplicaciones particulares de los dispositivos para cargarlas en la instalacin.
Para el correcto funcionamiento del E.T.S., es necesario instalar un disquete con una base de datos de los productos EIBA que contiene su descripcin y precio. Es necesario un PC que admita el sistema operativo MS-DOS 5.0 con un entorno Windows 3.1 o versiones posteriores.
El programa de administracin (ETS-Administration).Tiene un programa CAD que asiste al proyectista en el diseo del esquema de la planta permitiendo colocar mecanismos EIB en la instalacin. En este mdulo se guarda la informacin administrativa. Tambin guarda las reas y lneas fsicas que se
47
El programa de puesta en marcha y diagnstico (ETS-Startup & diagnostics). Se utiliza para disear (sin soporte grfico) y para cargar programas en la instalacin EIB, es decir, que sus dos principales misiones son programar la instalacin nodo a nodo, modificando la programacin para aadir nuevas funciones, elementos y lneas y comprobar, en la propia obra, el correcto funcionamiento del diseo mediante el envo de telegramas a la lnea de bus.
Antes de comenzar con el programa debemos conectar el cable de comunicaciones desde el puerto serie del PC al interface serie, mediante al cable adecuado.
48
Por tanto, la posibilidad de permitir al usuario la opcin de que disee el funcionamiento de cada nodo, supone un paso adelante en la evolucin de sistemas de control descentralizados. Es decir, que el fabricante proporcione un nodo abierto, fcilmente accesible, que permita al usuario especializado y a empresas de desarrollo la posibilidad de crear nuevos productos en base a un estndar de control. Este es uno de los objetivos de la tecnologa LonWorks. Pero sus ventajas no se quedan en esto.
Comparar EIB con un sistema LonWorks es comparar un simple sistema domtico con otro mucho ms potente y verstil y que adems resulta ms econmico. La tecnologa LonWorks est a aos luz de cualquier otra, y mucho ms de EIB.
LonWorks es un autntico estndar abierto que permite que cualquier desarrollador haga productos a su medida, con la posibilidad de comunicarse con cualquier otro producto realizado por fabricantes diferentes. Posibilita la transferencia de un gran volumen de datos y permite la conexin a cualquiera de los soportes de comunicacin conocidos (EIB slo puede comunicarse va bus). Todo ello a un coste inferior a cualquiera de sus lejanos competidores.
49
1. EIB y LonWorks son sistemas de control distribuido, es decir cada nodo de la red tiene capacidad propia de tomar decisiones, sin depender de una central de control.
LonWorks adems, permite el procesado de datos a alto nivel. 2. EIB es una tecnologa ms cerrada. Hay que pertenecer a EIBA para desarrollar productos EIB, y pagar los royalties correspondientes. LonWorks permite que cualquier persona, sin necesidad de pagar por ello, pueda desarrollar productos compatibles.
3. En EIB cada lnea (64 nodos) lleva su propia alimentacin. LonWorks permite una alimentacin por nodo, o puede pasar a una alimentacin por la red mediante par trenzado con LinkPower (LPT-10 78kbps 128 nodos).
4. EIB enva los datos mediante un sistema de tensin asimtrica por el mismo bus de alimentacin. LonWorks envan los datos por cualquier medio de transmisin (permite par trenzado, coaxial, radio frecuencia, red de alimentacin, infrarrojos, fibra ptica, bus). Cuando se usa el LinkPower los datos se envan junto con la alimentacin.
5. EIB permite una topologa de la red en bus, rbol, estrella y mixta. LonWorks permite adems topologas en anillo y libre. LonWorks tiene capacidad de filtrar paquetes repetidos y de realizar un control tipo LAN de manejo de la red.
6. EIB permite una velocidad de transmisin de datos de 9.600bps. en lneas de hasta 1000m. sin repetidores. Lon permite una velocidad de 78.000bps en lneas de hasta 2.000 m., sin repetidores. adems, con par trenzado y con aislamiento por transformador, Lon permite una velocidad de 1.250.000 bps. con topologa bus, con 64 nodos y 130 m. de longitud de lnea.
7. El chip bsico de EIB dispone de un solo microprocesador con RAM, ROM y EEPROM que permite la parametrizacin de nodos. Por su porte, el Neuron chip disponen de tres CPU's, dos de las cuales se ocupan de hacer transparente la red a la
50
8. EIB disponen de acopladores de lnea y de zona, que actan como bridges. Tambin dispone de amplificadores con funcin de repetidor. Por su lado, LonWorks para garantizar la conectividad disponen de repetidores, bridges, Learning Routers y Routers preconfigurados, segn el tipo de conectividad requerida entre redes. 9. El direccionamiento de EIB parte de una direccin fsica (16 bits) que diferencia a cada nodo de la instalacin, y una direccin del grupo (15 bits) que empareja, de forma lgica, al conjunto del nodos seleccionado. La direccin lgica permite el acceso gruposubgrupo.
Los Neuron chips disponen de una direccin fsicas (48 bits) nica en el mundo y grabada en fbrica. Adems, permiten tener una direccin lgica de dominio subred y nodo. El direccionamiento lgico LON permite el acceso a dominios, subredes o a nodos (hasta 32 bits). Por si fuera poco, tambin permite el acceso por grupos de nodos, donde cada nodo puede pertenecer hasta a quince grupos distintos, mientras que una direccin de grupo es de hasta 24 bits.
10. Tanto EIB como LonWorks para transmisin de datos, garantizan el cumplimiento del modelo de referencia OSI de ISO. El EIB tiene un acceso al medio con el sistema de deteccin de colisiones CSMACA. Por su parte el sistema Lon Talk usa el sistema CSMA predictive persistent, que incluye cualquier caracterstica del CSMA y no se queda corto para aplicaciones de control.
11. EIB siempre lanzar un mensaje de reconocimiento de los telegramas enviados. LonWorks puede disponer de hasta cuatro tipos de mensajes: con reconocimiento, con respuesta, sin reconocimiento pero con repeticin del mensaje, y sin reconocimiento. Todo queda a eleccin del programador de la aplicacin.
12. LonWorks, a nivel de red, no slo permite la transmisin de mensajes a mltiples receptores, como hace EIB, sino que tiene un nuevo concepto de variable de
51
13. La instalacin para los nodos de EIB se realiza mediante un pin de servicio, y la parametrizacin se realiza mediante un PC conectado al bus. Los nodos LON se pueden instalar segn el grado de aplicacin y el tipo de servicios que se desea que ofrezcan, permitiendo el Plug & Play, o instalacin manual, mediante el pin de servicio, o Wink.
52
En la especificacin de EHS se definen seis medios fsicos y los protocolos que rigen la comunicacin de datos a travs de estos medios:
- Par trenzado 1 (TP1): control de propsito general. - Par trenzado 2 (TP2): transferencia de datos, telefona, voz, etc. - Cable coaxial (CX): audio, radio, TV. - Lnea de potencia (PL): control simple. - Radio frecuencia (RF): control sin hilos. - Infrarrojos (IR): control remoto. - La topologas fsicas ms utilizadas son el tipo bus sencillo, bus extendido serie paralelo, estrella y en anillo, siendo la mas conocida la primera.
53
Unidades de aplicacin
Son los equipos inherentes a la casa, que suministran prestaciones de manera directa al usuario.
- Dispositivo simple (SiD): Un dispositivo simple es una subunidad que no posee inteligencia. Su funcionamiento ser:
- Un SiD comprender y ejecutar comandos apropiados a su funcionalidad. Slo puede recibir comandos de dispositivos dentro de su subred, nunca de otras subredes.
Un VSD es un dispositivo simple cuyas posibilidades de comunicacin se restringen a mensajes cortos, lo que le imposibilita para mandar mensajes a unidades fuera de su subred y manejar direcciones de subunidad, por lo que en toda unidad con un VSD, ste ser la nica subunidad presente.
Como dispositivo complejo (CoD) conoceremos una subunidad que, aunque no posee inteligencia del sistema, permite:
54
- Recibir y enviar mensajes a cualquier otro dispositivo de la red (de su subred o de otra).
- Que slo se use en sistemas inteligentes, en compaa de al menos un controlador de caractersticas, pudiendo estar controlado por varios a la vez. La modelizacin de cada aparato como SiD,VSD o CoD vendr determinada por el tipo de sistema que queramos definir, si posee inteligencia y el medio fsico al que se conecte. Algunos medios fsicos, por ejemplo solo soportan mensajes del tipo VST.
Unidades de sistema
Las unidades de sistema tienen como objeto realizar las funciones de la red que permitan el funcionamiento de sta segn los requisitos de la especificacin EHS.
Los controladores de caractersticas s que dotan de inteligencia al sistema. Son los encargados de utilizar los recursos de aplicacin (utilidades, caractersticas) puestos en servicio por parte de los CoD en un sistema inteligente.
El modo de funcionamiento de los FC puede ser manual, a las rdenes del usuario final, o automtico. Las principales caractersticas de un FC son:
- Puede comunicarse con cualquier unidad de la red. - Debe tener capacidad de procesamiento de informacin, que le permitan conocer que dispositivos estn conectados y su funcionalidad. - En todo sistema inteligente debe de haber como mnimo un FC. - Coordinador de dispositivos (DvC): El coordinador de dispositivos es un tipo de unidad artificial que se introduce en un sistema inteligente con el fin de poder controlar dispositivos simples (SiD's) por
55
- Controlador del medio (MdC) Un controlador del medio gestiona y asigna direcciones de red al resto de unidades conectadas en una misma subred. Normalmente existir un MdC en cada subred, pudiendo ser eliminado en sistemas con un nmero fijo y reducido de unidades.
- Ruteadores (R) y gateways(G): Son unidades cuya misin es transportar informacin de unas subredes a otras, la diferencia entre ruteadores y gateways es que mientras que en los primeros la comunicacin es entre subredes similares, en los segundos la comunicacin es entre subredes exteriores que no siguen el estndar.
56
El modelo simple es el esquema ms elemental de comunicacin, en el que slo hay una subred con dispositivos simples que pueden comunicarse entre s punto a punto.
El modelo inteligente se basa en la constitucin de unidades como suma de capas dispuestas en orden jerrquico. Cada capa se puede comunicar con la inmediatamente inferior y superior. Entre capas se encuentra la interfase.
Cuando una unidad se quiere comunicar con otra, la informacin se trasmite de las capas superiores a las inmediatamente inferiores hasta llegar a la ltima capa (la capa fsica) que se encarga de enviar el mensaje fsicamente por el medio de transmisin.
En cada uno de los saltos, cada capa va aadiendo informacin al mensaje de la capa inmediatamente superior, de tal forma que cuando esta se transmite por el medio fsico, dispone de toda la informacin necesaria para que la unidad receptora lo reciba y ejecute. Todas las unidades conectadas se pondrn a escuchar lo que circula por el bus, activndose la unidad receptora y ponindose en reposo el resto. El mensaje, una vez que llega a la unidad receptora, ir pasando a las capas superiores. Las capas superiores no dependen del medio fsico usado.
57
Categora 1: En las unidades de esta categora el instalador inicia el proceso de obtencin de direccin y el controlador de medio (MdC) negocia con la unidad una direccin. Una vez obtenida la direccin esta se grabara en memoria no voltil (EEPROM). Los dispositivos simples (SiD), los complejos (CoD), los controladores de caractersticas (FC), los ruteadores (R) y los gateways (G) son unidades que entran dentro de esta categora.
Categora 2: En las unidades pertenecientes a esta categora la negociacin de la direccin de red no necesita la intervencin del instalador. Tienen un nmero de referencia de 32 bits programado por el fabricante que le permite negociar la direccin con el controlador de medio. La direccin de red se almacena en memoria voltil. Los dispositivos simples (SiD), los complejos (CoD) y los controladores de caractersticas (FC) entran en esta categora. Las unidades de esta categora se utilizan para medios rpidos.
Categora 3: En las unidades de esta categora la direccin de red se establece manualmente, pudiendo consultarse las direcciones con un controlador de medio (MdC). En esta categora slo se pueden conectar 16 unidades como mximo en cada subred, siendo el tipo de unidades conectadas dispositivos simples (SiD), complejos (CoD) y controladores de caractersticas (FC).
Categora 4: A esta categora pertenecen las unidades que necesitan unas direcciones especficas debido a las funciones que realizan. A esta categora pertenecen los controladores de medio (MdC) y el coordinador de dispositivos (DvC)., que precisan un cdigo nico y una memoria no voltil para almacenar su estado en cada momento.
58
Mecanismo registration.
El protocolo registration lo llevan a cabo unidades de categora 1 y 2 con el controlador de medio para que ste les conceda una direccin de red. Las unidades de categora 1 no disponen de ningn tipo de cdigo diferenciador, por lo que su inicializacin debe llevarse a de cabo una en una. Esto se consigue con la intervencin del instalador.
En las unidades de categora 2 el protocolo comienza sin intervencin directa del instalador. Cada unidad enva un mensaje al controlador de medio (MdC) identificndose con su cdigo nico. El controlador de medio (MdC) contesta con otro mensaje donde se especifica este cdigo nico de manera que, aunque dicho mensaje lo recibirn las unidades no registradas hasta el momento, nicamente lo interpretar la que tenga el cdigo nico, que pasar al estado registrado. Este procedimiento se realizar cada vez que se inicialice la unidad, debido a que la memoria de los dispositivos en esta categora es voltil.
Mecanismo contention.
Este mecanismo lo usan las unidades de la categora 4, permitiendo que slo una unidad de este tipo que realice una determinada accin est activa. Cuando una unidad de esta categora se conecta por primera vez enva un mensaje indicando su cdigo nico y prioridad. Si no responde ninguna unidad, deber realizar un nmero de reintentos durante un perodo de tiempo pre-establecido para asegurarse que el mensaje ha sido escuchado por todas las unidades presentes en la red que realicen su misma funcin. Si pasado este tiempo no recibe contestacin, quiere decir que no existe otra unidad que realice su misma funcin en la subred, con lo que la unidad se activar. Si en la subred existen otras unidades que realizan su funcin, estas enviarn un mensaje con su cdigo nico y prioridad, que ser recibido en el tiempo preestablecido. La unidad con ms prioridad se activar quedando la otra en estado de reposo. 59
Mecanismo disconection.
Este mecanismo consiste en avisar a todas las unidades de la desaparicin de una unidad.
Cuando una unidad se desconecta puede informar ella misma al coordinador de dispositivos este hecho, pero normalmente esto no ocurre as, sino que lo ms habitual es que cuando se desconecta una unidad otra unidad se de cuenta de este hecho al no recibir contestacin de esta unidad. Si se desconecta un dispositivo complejo (CoD), un controlador de caractersticas (FC) se dar cuenta de esta desconexin porque el dispositivo complejo no responde a su mensaje y entonces comunicar este hecho al usuario por medio de un interface de usuario. Si se desconecta un dispositivo simple (SiD), un coordinador de dispositivos (DvC) avisar al controlador de caractersticas (FC), y este al usuario por medio de un interface de usuario. Si se desconecta un controlador de caractersticas (FC), el interface de usuario conectado al controlador de caractersticas informar directamente al usuario.
El mecanismo enrolment permite a los controladores de caractersticas (FC) saber los recursos que estn disponibles en el sistema. Estos recursos los pueden proporcionar los dispositivos complejos (CoD), o los simples (SiD) en conjunto con un coordinador de sistemas (DvC).
El mecanismo contracting establece la asociacin entre un dispositivo simple (SiD) y un coordinador de sistemas (DvC), pudiendo asociarse este a su vez por medio de un enrolment a un controlador de caractersticas (FC).
Mecanismo de token-passing.
60
Este mecanismo acta como un semforo que asegura que un nico controlador de caractersticas (FC) pueda acceder a un tiempo al mismo dispositivo con comandos de escritura. Si varios controladores de caractersticas (FC's) intentan acceder simultneamente, slo acceder aquel que tenga mayor prioridad. De esta manera se asegura que un controlador de caractersticas no intente controlar un dispositivo que esta siendo controlado por otro controlador de caractersticas. Para garantizar esto el controlador de caractersticas (FC) pide un testigo al dispositivo sobre el que quiere actuar. Si el dispositivo no esta siendo controlado por otro controlador de caractersticas le pasar el testigo, pudiendo entonces el controlador de caractersticas actuar sobre l, por tanto, un controlador de caractersticas no puede actuar sobre un dispositivo si no tiene testigo.
Para decidir qu controlador de caractersticas tiene prioridad sobre otro a la hora de solicitar permiso para utilizar un recurso determinado existen nueve niveles de prioridad:
- Nivel 5 (Timer): Se utiliza para las acciones relacionadas con la gestin del sistema.
- Nivel 6 (User-Plus): Est relacionado con los dispositivos que maneja directamente el usuario.
61
- Nivel 9 (Idle): Es la prioridad ms baja. Se utiliza cuando un dispositivo tiene el testigo pero no est realizando ninguna funcin.
62
5. Red Batibus
Emplea como soporte fsico un par trenzado sin terminacin de lnea.
Admite una longitud total de bus de hasta 2500 m, sin que la distancia mxima entre la alimentacin y el ltimo punto de alimentacin supere los 500m.
La alimentacin de los puntos puede ser local o a travs del propio Bus, siendo el nmero mximo de puntos alimentados respectivamente de 1000 y 75.
Puede direccionar 240 posiciones por tipo de punto, con 32 tipos de punto diferente.
63
Las consecuencias de la transicin de cada uno de los tres protocolos debern ser evaluadas por cada consorcio (EIBA, BCI y EHSA).
La especificacin hacia la cual tienden a converger estos tres protocolos recibe el nombre de Convergence System (CS) y tiene las siguientes caractersticas, partiendo del protocolo EHS:
Contempla tres medios fsicos, dos tipos de par trenzado y lnea de potencia.
Las direcciones tiene una longitud de 2 bytes (EHS utiliza 1 byte), indicando el primero el medio fsico o subred donde est instalada la unidad, y el segundo la identificar dentro de la propia subred.
l nmero mximo de subredes es de 255 (en lugar de las 8 de EHS), y la capacidad de cada subred de 255 unidades.
64
E-mode: configuracin sencilla. S-mode: configuracin que utiliza una base de datos. A-mode: configuracin automtica.
1. Memoria compartida: todos los objetos se mantienen en un espacio de memoria al que puede acceder cualquier unidad.
65
1. Conceptos bsico
Las redes de control son ms comunes de lo que habitualmente creemos. Por ejemplo, nuestro coche puede tener varias redes de control como por ejemplo, el sistema de viso del cinturn de seguridad, el sistema antibloqueo ABS o el sistema de gestin de encendido. Una red de control puede tener 3, 300 30,000 nodos y poseer una complejidad variable desde un sistema inteligente de alumbrado hasta un sistema de instrumentacin para aeronutica (ambos son ejemplos de redes Lonworks existentes). Es posible controlar una alarma a partir de un simple sensor de ocupacin, o gestionar el sistema de trfico de una ciudad, controlando semforos, flujo de trfico, acciones de vehculos de emergencia, distribucin de potencia, etc.
Para mucha gente, las redes de control son ms fciles de entender poniendo como ejemplo casas inteligentes o casas demticas. No obstante, los sistemas donde ms extendidas estn las redes de control son edificios y fbricas donde se gestionan los ascensores o cadenas de fabricacin de vehculos. Las redes Lonworks se usan para todas sas cosas y ms. La comunicacin entre los nodos puede ser punto a punto (control distribuido) o maestro-esclavo (control centralizado); en uno u otro caso, la inteligencia capacidad de proceso y clculo) de los nodos permite la distribucin del
66
67
El comienzo de las redes Lonworks se bas en conceptos muy simples: 1) los sistemas de control son fundamentalmente idnticos, independientemente de la aplicacin final; 2) un sistema de control distribuido es significativamente ms potente, flexible, y ampliable que un sistema de control centralizado; y 3) la empresas ahorran ms dinero a largo plazo instalando redes distribuidas que instalando redes centralizadas.
La tecnologa Lonworks proporciona una solucin a los mltiples problemas de diseo, construccin, instalacin, y mantenimiento de redes de control; redes que pueden variar en tamao desde dos a 32,000 dispositivos y se pueden usar en cualquier aplicacin desde supermercados a plantas de petrolferas, desde aviones hasta ferrocarriles, desde medicin por lser a mquinas de mecanizado, desde rascacielos a viviendas particulares.
Actualmente, en casi todas las industrias hay una tendencia a evitar los sistemas propietarios o los esquemas de control basados en sistemas centralizados. Los fabricantes estn utilizando sistemas abiertos, chips estndar, sistemas operativos estndar y componentes para construir productos que mejoren la flexibilidad, el costo del sistema y su instalacin. La tecnologa Lonworks est acelerando la tendencia a
68
En definitiva, en trminos de interoperabilidad y compatibilidad, Lonworks es a las redes de control lo que WINDOWS es a los sistemas informticos. Quin comprara hoy en da una aplicacin para facturacin, elaboracin de nminas u otras aplicaciones, para un sistema que no fuera compatible con Windows? Otro ejemplo que clarifica la misin de los sistemas estndar lo podemos encontrar en la telefona mvil. Comprara usted un telfono mvil que solo pudiera hablar con telfonos mviles del mismo fabricante?
69
supermercados, entornos de trabajo automatizados, integracin de instrumentos aeronuticos, diagnstico de circuitos electrnicos, control de electrodomsticos, cerraduras electrnicas, control de ascensores, gestin de energa, control
medioambiental, proteccin contra incendios, control de Aire Acondicionado y Calefaccin, control de peajes en autopistas, sistemas de identificacin, mquinas de venta automtica, control de riego, control de alumbrado, cuidado de pacientes, automatizacin de restaurantes, automatizacin de viviendas y mucho ms
Echelon Corporation La empresa creadora del estndar. Proporciona herramientas de desarrollo, transceptores, herramientas de gestin de red, soporte y formacin.
Cypress Semiconductor (desde comienzo del ao 2000) y Toshiba - Neuron Chips (cubriendo el suministro a nivel mundial de diversas versiones del Neuron Chip).
Adicionalmente, hay ms de 4.000 desarrolladores Lonworks en el mundo que ofrecen cualquier tipo de dispositivo, desde transceptores y herramientas de gestin de red, hasta herramientas de desarrollo y aplicaciones de usuario.
Ms de 4000 empresas utilizan las redes Lonworks hoy, y el nmero est creciendo rpidamente. Todas las reas del campo de control estn plenamente cubiertas por
70
Entre las compaas que han adoptado este estndar se encuentran los miembros de la Asociacin LonUsers Espaa: Fbrica Electrotcnica JOSA (BJC), I.A. Electrnicas del Valls (ELVA), ISDE Ing, K-Lon, TAC Building Automation y Kieback&Peter, y otras empresas como:
ABB, Acromag, Action Instruments, Advance Transformer, AEG, Ahlstrom Elari, Allen-Bradley, American Sports Timing, AMP, AT&T, Bally Systems, Barrington Systems, Bell Northern Research, BTE, British Petroleum, British Telecom, Brooks Instrument, Card Monroe, Carrier Corp., Controlli S.P.A., Danfoss Automatic Controls, Detroit Edison, EG&G Idaho, EIL Instruments, Fabrisys (Alcatel Cable), Ferag AG, Goldstar Industrial Systems, Helvar, Hewlett- Packard, Honeywell, Hubbell, ITT Barton, Jet Propulsion Laboratory, Jonson Controls, Keene Widelite, Kollmorgen, Legrand, Lakewood Instruments, Landis & Gyr Powers, Leax, Legrand, Leviton Manufacturing, Lithonia Lighting, Litton Poly-Scientific, McQuay International, Metra Corporation, MK Electric, Molex, Montgomery Elevator, NASA, Nippon Steel, Olivetti, Orr Safety, Pensar Corporation, Philips Lighting, Potter Electric Signal, Raychem, Scitronix Corporation, Shlumberger Industries, Sea Hornet Marine, Sentrol, Siebe Environmental Controls, Solus Technology, Square D, Staefa Control Systems, Toshiba Lighting, Trans-Lite, Trend Control Systems, Tru-Measur, Unisys,
71
Las redes Lonworks han sido incluidas en varios estndares y propuestas de estndar, incluyendo:
El protocolo ha sido incluido en la norma EIA-709.1, la especificacin del Protocolo de Redes de Control est disponible en http://global.ihs.com/
El protocolo ha sido adoptado como parte de la norma de control BACnet de la Sociedad Americana de Ingenieros de Calefaccin, Refrigeracin y Aire Acondicionado. La referencia para este estndar es conocida como ANSI/ASHRAE 135.
Lonworks es adems el protocolo estndar para la Federacin Internacional de Estaciones de Servicio (todas las estaciones de servicio Europeas).
La Asociacin Americana de Ferrocarriles ha elegido Lonworks como estndar para los sistemas de frenado neumtico.
SEMI (Semiconductor Equipment Materials International Internacional de Materiales para Equipos con Semiconductores) especifica al sistema Lonworks como un bus de sensores para interconectar sensores simples y complejos, actuadores y equipos de instrumentacin en su norma E-56.6.
72
Disponer de dos procesadores dedicados a tareas de comunicacin en red y uno dedicado a la aplicacin asegura que la complejidad del programa no afecta negativamente a la respuesta de la red y viceversa. Adicionalmente, el hecho de encapsular ambas funciones en un solo chip ahorra tiempos de diseo y produccin.
Ventajas Tcnicas
El uso del chip Neuron garantiza un entorno de ejecucin hardware para el protocolo. Para asegurar suficiente potencia de proceso, el protocolo se implementa como una mezcla de hardware y firmware.
Diseado para un amplio rango de aplicaciones, y fabricados en masa por dos de los mayores fabricantes de semiconductores del mundo, el chip Neuron ofrece una implementacin del protocolo LonTalk ms econmica que cualquier otra solucin propietaria. El resultado neto se traduce en que el chip Neuron es el mejor y ms econmico procesador Lonworks para cualquier aplicacin que precise potencia de proceso de 8 bits.
73
Hoy en da, los protocolos de comunicaciones se disean en concordancia con la norma ISO (Modelo de Referencia Abierto para la Interconexin de Sistemas) que engloba un conjunto completo de protocolos, y clasifica a estos segn siete categoras funcionales (conocidas como "capas"). De ah se establece el conocido como Modelo OSI de 7 capas.
El protocolo LonTalk implementa las siete capas del modelo OSI, y los hace usando una mezcla de hardware y firmware sobre un chip de silicio, evitando cualquier posibilidad de modificacin casual (o intencionada). Se incluyen caractersticas como gestin acceso al medio, reconocimiento y gestin punto a punto, y servicios ms avanzados tales como autentificacin de remitente, deteccin de mensajes duplicados, colisin, reintentos automticos, soporte de cliente-servidor, transmisin de tramas no estndar, normalizacin y identificacin de tipo de dato, difusin unicast/multicast, soporte de medios mixtos y deteccin de errores.
Fiabilidad
El protocolo LonTalk proporciona principalmente dos tcnicas para asegurar el correcto envo y recepcin de las transmisiones. La fiabilidad de las transmisiones se asegura mediante una confirmacin entre emisor y receptor (la mayora de los protocolos pueden asegurar que un paquete fue transmitido con xito, pero no que fue recibido por el destinatario). La integridad de los datos se garantiza por el hecho que todas las transmisiones disponen de un control de errores basado en cdigos polinmicos de 16 bits.
74
Todas operaciones en la red de control se realizan usando un sistema de "autentificacin de remitente" como una Capa de nivel 4 (Nivel de Servicio del modelo OSI).
Esta capa proporciona una garanta de autenticidad del remitente, que no puede ser violada por piratas informticos ("hackers").
Cada transmisin de paquete proporciona autentificacin del remitente. Dado que la implementacin de esta caracterstica se encuentra a nivel de chip, por una parte no puede ser modificada y por otra est garantizada en todos los productos, independientemente del fabricante del mismo.
Interoperabilidad
Echelon define la interoperabilidad como la capacidad de integrar productos de distintos fabricantes en sistemas flexibles y funcionales sin necesidad de desarrollar hardware, software o herramientas a medida. Por integrar no se entiende el hecho de poder ver a otro dispositivo, sino la capacidad de hacer cosas como utilizar un nico sensor de ocupacin para el sistema de climatizacin, el de alumbrado y el de seguridad de un edificio.
Otro ejemplo posible sera el de tomar determinada actuacin en nuestra lnea de montaje en base a la informacin del sistema contra incendios de nuestro edificio. Cuatro Beneficios de la Interoperabilidad Los productos interoperables permiten a los diseadores de cada proyecto utilizar el mejor dispositivo para cada sistema o subsistema sin verse forzados a utilizar una lnea entera de productos de un mismo fabricante.
Los productos interoperables incrementan la oferta del mercado permitiendo a diferentes fabricantes competir en un segmento que de otra manera les estara 75
La interoperabilidad reduce los costos de los proyectos al no depender de manera exclusiva de un solo fabricante.
Los sistemas interoperables permiten a los responsables de mantenimiento de los edificios y plantas industriales la monitorizacin de las instalaciones utilizando herramientas estndar, sin importar que empresa ha fabricado cada sub-sistema.
76
1. Introduccin
Automatizacin X10 es el sistema de Automatizacin mas extendido y utilizado en los hogares del mundo debido a su sencillez de instalacin y a su fcil manejo que se adapta a todas las necesidades actuales de control automtico en los hogares. X10 es el "lenguaje" de comunicacin que utilizan los productos compatibles X10 para hablarse entre ellos y que le permiten controlar las luces y los electrodomsticos de su hogar, aprovechando para ello la instalacin elctrica existente de 220V de su casa, y evitando tener que instalar cables. Este es el principal motivo por el que X10 se considera un sistema de Automatizacin sin instalacin. Los productos de Automatizacin basados en el sistema X10 estn diseados para que puedan ser instalados fcilmente por usted mismo sin necesidad de conocimientos especiales. Cada aparato tiene una direccin a la que responde o enva, existiendo un total de 256 direcciones. Todos los productos de Automatizacin X10 son compatibles entre si por lo que se pueden combinar para formar el sistema mas adecuado a sus preferencias. Si quiere hacer su casa u oficina inteligente, solo tiene que instalar unos cuantos mdulos x10. Y si quiere un consejo empiece por los Kits de Automatizacin o consltenos su configuracin estaremos encantados de asesorarle.
77
2. Ventajas de x10
Los sistemas de automatizacin no son un mero capricho, si no que tienen las siguientes ventajas: Protege su Hogar y su familia. Simula su presencia cuando no esta. Encienda todas las luces con solo un botn. Tambin trabaja con los sistemas de alarma mas extendidos. Controle y compruebe el estado de su casa a distancia. Aade Valor a la Propiedad. Una casa con un sistema automtico se cotiza mas alto en el mercado inmobiliario. Su casa es mas fcil de vender. Incorpora caractersticas nicas que no tiene la competencia. Es un valor aadido que le da mayor categora. Calidad de Vida. Piense en todas las operaciones rutinarias que hace todos los das. Entra, enciende la luz de la entrada, luego la de la habitacin, apaga la de fuera, enciende el bao, etc... Se imagina que la televisin no tuviera mando a distancia?. Recuerda cuando abra las puertas del coche con la llave.? Y cuando suba las ventanillas a mano.? Usted se ha gastado un montn de dinero en algo que solo disfruta cuando usa el coche. En cambio en su hogar puede disfrutar de las mismas comodidades tanto usted como su familia durante todo el da. Al fin y al cabo usted no vive en el coche. (Aunque a veces se lo parezca). Ahorro de Energa. Aadir inteligencia a su casa, adems de ahorrar energa, la hace ms respetuosa con el medio ambiente. Todo el mundo tiene claro que los cristales dobles ahorran energa. Pues de igual forma, un sistema que supervisa y controla las luces y electrodomsticos apagndolos cuando no son necesarios tambin ahorra energa. Inversin Protegida. Una de las grandes ventajas que tiene el sistema X10 es que es totalmente universal y por lo tanto transportable. Si usted cambia la puerta de su casa, lo mas normal es que no se la lleve el da que se mude. En cambio todos los productos X10 son tan fciles de instalar y desinstalar que el da que se cambie de casa u oficina se los lleva consigo, igual que se llevara la televisin, pues le seguirn sirviendo en su nueva ubicacin. Visin de Futuro. Una de la cosas que ms preocupa cuando se invierte en tecnologa hoy en da es su vida til. Todos conocemos ya cual es la vigencia de un ordenador. O lo que pasa con los formatos que no son universales (vdeos
78
79
3. Automatizacin inteligente
No es lo mismo una casa inteligente, que una casa listilla. Es cierto que hoy en da hay programadores, interruptores a distancia, termostatos temporizados, etc. tambin es verdad que todos tienen el mismo problema. No son inteligentes, no interactan unos con otros y no se adaptan a los cambios del entorno. Por ejemplo, un programador que simule nuestra presencia no es capaz de adaptarse a los cambios de los horarios. Tampoco detectar si estamos o no en casa. Se limitar a encender y apagar las luces siguiendo un programa establecido. Que decide irse este fin de semana a su chalet en el campo? pues llama por telfono desde el coche y conecta la calefaccin 2 horas antes de llegar. La gran diferencia del sistema X10, es que este es inteligente y los aparatos interactan entre si. Por ejemplo al entrar en su casa por la tarde, el sensor de presencia puede encenderle secuencialmente el recibidor, el pasillo, el dormitorio, apagar el recibidor conectar el calentador y encender dos lmparas del saln al 50%. Son ms de las 11 y el sensor no lo detecta? Apaga el brasero para evitar que se quede encendido y apaga todas las luces menos la del cuarto del nio que se queda encendida tenuemente. Y todo esto de forma automtica. Que hoy no quiere la secuencia automtica? Con solo un botn establece el nuevo modo de funcionamiento. Los sbados me voy de fin de semana. No tengo que preparar el programador pues el controlador inteligente pone en marcha el programa de simulacin que el solo ha aprendido observando mi rutina diaria. Estos son solos algunos ejemplos de las infinitas posibilidades existentes. El futuro ya esta aqu y nosotros se lo ponemos a su alcance proporcionndole todo lo que necesite para hacer su hogar inteligente.
80
El elemento bsico de este paradigma no es la funcin (elemento bsico de la programacin estructurada), sino un ente denominado objeto. Un objeto es la representacin de un concepto para un programa, y contiene toda la informacin necesaria para abstraer dicho concepto: los datos que describen su estado y las operaciones que pueden modificar dicho estado, y determinan las capacidades del objeto.
Java incorpora el uso de la orientacin a objetos como uno de los pilares bsicos de su lenguaje.
81
Tiempo de vida: La duracin de un objeto en un programa siempre est limitada en el tiempo. La mayora de los objetos slo existen durante una parte de la ejecucin del programa. Los objetos son creados mediante un mecanismo denominado instanciacin, y cuando dejan de existir se dice que son destruidos.
Estado: Todo objeto posee un estado, definido por sus atributos. Con l se definen las propiedades del objeto, y el estado en que se encuentra en un momento determinado de su existencia.
Comportamiento: Todo objeto ha de presentar una interfaz, definida por sus mtodos, para que el resto de objetos que componen los programas puedan interactuar con l.
El equivalente de un objeto en el paradigma estructurado sera una variable. As mismo la instanciacin de objetos equivaldra a la declaracin de variables, y el tiempo de vida de un objeto al mbito de una variable.
82
Podemos definir una clase como "un conjunto de cosas (fsicas o abstractas) que tienen el mismo comportamiento y caractersticas... Es la implementacin de un tipo de objeto (considerando los objetos como instancias de las clases)". [Piattini et al., 1996].
Una clase no es ms que una plantilla para la creacin de objetos. Cuando se crea un objeto (instanciacin) se ha de especificar de qu clase es el objeto instanciado, para que el compilador comprenda las caractersticas del objeto.
Las clases presentan el estado de los objetos a los que representan mediante variables denominadas atributos. Cuando se instancia un objeto el compilador crea en la memoria dinmica un espacio para tantas variables como atributos tenga la clase a la que pertenece el objeto.
Los mtodos son las funciones mediante las que las clases representan el comportamiento de los objetos. En dichos mtodos se modifican los valores de los atributos del objeto, y representan las capacidades del objeto (en muchos textos se les denomina servicios).
Desde el punto de vista de la programacin estructurada, una clase se asemejara a un mdulo, los atributos a las variables globales de dicho mdulo, y los mtodos a las funciones del mdulo.
83
Mediante la abstraccin la mente humana modeliza la realidad en forma de objetos. Para ello busca parecidos entre la realidad y la posible implementacin de objetos del programa que simulen el funcionamiento de los objetos reales.
Los seres humanos no pensamos en las cosas como un conjunto de cosas menores; por ejemplo, no vemos un cuerpo humano como un conjunto de clulas. Los humanos entendemos la realidad como objetos con comportamientos bien definidos. No necesitamos conocer los detalles de porqu ni cmo funcionan las cosas; simplemente solicitamos determinadas acciones en espera de una respuesta; cuando una persona desea desplazarse, su cuerpo le responde comenzando a caminar.
Pero la abstraccin humana se gestiona de una manera jerrquica, dividiendo sucesivamente sistemas complejos en conjuntos de subsistemas, para as entender ms fcilmente la realidad. Esta es la forma de pensar que la orientacin a objeto intenta cubrir.
84
El encapsulamiento permite a los objetos elegir qu informacin es publicada y qu informacin es ocultada al resto de los objetos. Para ello los objetos suelen presentar sus mtodos como interfaces pblicas y sus atributos como datos privados e inaccesibles desde otros objetos.
Para permitir que otros objetos consulten o modifiquen los atributos de los objetos, las clases suelen presentar mtodos de acceso. De esta manera el acceso a los datos de los objetos es controlado por el programador, evitando efectos laterales no deseados.
Con el encapsulado de los datos se consigue que las personas que utilicen un objeto slo tengan que comprender su interfaz, olvidndose de cmo est implementada, y en definitiva, reduciendo la complejidad de utilizacin.
Mediante la modularidad, se propone al programador dividir su aplicacin en varios mdulos diferentes (ya sea en forma de clases, paquetes o bibliotecas), cada uno de ellos con un sentido propio.
Esta fragmentacin disminuye el grado de dificultad del problema al que da respuesta el programa, pues se afronta el problema como un conjunto de problemas de menor dificultad, adems de facilitar la comprensin del programa.
85
La mayora de nosotros ve de manera natural nuestro mundo como objetos que se relacionan entre s de una manera jerrquica. Por ejemplo, un perro es un mamfero, y los mamferos son animales, y los animales seres vivos...
Del mismo modo, las distintas clases de un programa se organizan mediante la jerarqua. La representacin de dicha organizacin da lugar a los denominados rboles de herencia:
Mediante la herencia una clase hija puede tomar determinadas propiedades de una clase padre. As se simplifican los diseos y se evita la duplicacin de cdigo al no tener que volver a codificar mtodos ya implementados.
86
Mediante el denominado paso de mensajes, un objeto puede solicitar de otro objeto que realice una accin determinada o que modifique su estado. El paso de mensajes se suele implementar como llamadas a los mtodos de otros objetos.
Desde el punto de vista de la programacin estructurada, esto correspondera con la llamada a funciones.
Polimorfismo quiere decir "un objeto y muchas formas". Esta propiedad permite que un objeto presente diferentes comportamientos en funcin del contexto en que se encuentre. Por ejemplo un mtodo puede presentar diferentes implementaciones en funcin de los argumentos que recibe, recibir diferentes nmeros de parmetros para realizar una misma operacin, y realizar diferentes acciones dependiendo del nivel de abstraccin en que sea llamado.
87
Existen varios tipos de relaciones que pueden unir a los diferentes objetos, pero entre ellas destacan las relaciones de: asociacin, todo/parte, y
generalizacin/especializacin.
Seran relaciones generales, en las que un objeto realiza llamadas a los servicios (mtodos) de otro, interactuando de esta forma con l.
Muchas veces una determinada entidad existe como conjuncin de otras entidades, como un conglomerado de ellas. La orientacin al objeto recoge este tipo de relaciones como dos conceptos; la agregacin y la composicin.
En este tipo de relaciones un objeto componente se integra en un objeto compuesto. La diferencia entre agregacin y composicin es que mientras que la composicin se entiende que dura durante toda la vida del objeto componedor, en la agregacin no tiene por qu ser as.
Esto se puede implementar como un objeto (objeto compuesto) que cuenta entre sus atributos con otro objeto distinto (objeto componente).
El ejemplo ms extendido de este tipo de relaciones es la herencia, propiedad por la que una clase (clase hija) recoge aquellos mtodos y atributos que una segunda clase (clase padre) ha especificado como "heredables".
En realidad, la generalizacin y la especializacin son diferentes perspectivas del mismo concepto, la generalizacin es una perspectiva ascendente (bottom-up), mientras que la especializacin es una perspectiva descendente (top-down).
Para ms informacin sobre el modelo de objetos en la programacin avanzada, y las relaciones entre objetos vase [Garca, 1998] o para una informacin ms detallada consulte [Booch, 1996].
89
2. Historia de Java
2.1 Por qu se dise Java?
Los lenguajes de programacin C y Fortran se han utilizado para disear algunos de los sistemas ms complejos en lenguajes de programacin estructurada, creciendo hasta formar complicados procedimientos. De ah provienen trminos como "cdigo de espagueti" o "canguros" referentes a programas con mltiples saltos y un control de flujo difcilmente trazable.
No slo se necesitaba un lenguaje de programacin para tratar esta complejidad, sino un nuevo estilo de programacin. Este cambio de paradigma de la programacin estructurada a la programacin orientada a objetos, comenz hace 30 aos con un lenguaje llamado Simula67.
El lenguaje C++ fue un intento de tomar estos principios y emplearlos dentro de las restricciones de C. Todos los compiladores de C++ eran capaces de compilar programas de C sin clases, es decir, un lenguaje capaz de interpretar dos estilos diferentes de programacin. Esta compatibilidad ("hacia atrs") que habitualmente se vende como una caracterstica de C++ es precisamente su punto ms dbil. No es necesario utilizar un diseo orientado a objetos para programar en C++, razn por la que muchas veces las aplicaciones en este lenguaje no son realmente orientadas al objeto, perdiendo as los beneficios que este paradigma aporta.
As Java utiliza convenciones casi idnticas para declaracin de variables, paso de parmetros, y dems, pero slo considera las partes de C++ que no estaban ya en C.
90
Punteros: Las direcciones de memoria son la caracterstica ms poderosa de C++. El inadecuado uso de los punteros provoca la mayora de los errores de colisin de memoria, errores muy difciles de detectar. Adems, casi todos los virus que se han escrito aprovechan la capacidad de un programa para acceder a la memoria voltil (RAM) utilizando punteros. En Java, no existen punteros, evitando el acceso directo a la memoria voltil.
Variables globales: Con ellas cualquier funcin puede producir efectos laterales, e incluso se pueden producir fallos catastrficos cuando algn otro mtodo cambia el estado de la variable global necesaria para la realizacin de otros procesos. En Java lo nico global es el nombre de las clases.
goto: Manera rpida de arreglar un programa sin estructurar el cdigo. Java no tiene ninguna sentencia goto. Sin embargo Java tiene las sentencias break y continue que cubren los casos importantes de goto.
Asignacin de memoria: La funcin malloc de C, asigna un nmero especificado de bytes de memoria devolviendo la direccin de ese bloque. La funcin free devuelve un bloque asignado al sistema para que lo utilice. Si se olvida de llamar a free para liberar un bloque de memoria, se estn limitando los recursos del sistema, ralentizando progresivamente los programas. Si por el contrario se hace un free sobre un puntero ya liberado, puede ocurrir cualquier cosa. Ms tarde C++ aadi new y delete, que se usan de forma similar, siendo todava el programador, el responsable de liberar el espacio de memoria. Java no tiene funciones malloc ni free. Se utiliza el operador new para asignar un espacio de memoria a un objeto en el montculo de memoria. Con new no se obtiene una direccin de memoria sino un descriptor al objeto del montculo. La memoria
91
Conversin de tipos insegura: Los moldeados de tipo (type casting) son un mecanismo poderoso de C y C++ que permite cambiar el tipo de un puntero. Esto requiere extremada precaucin puesto que no hay nada previsto para detectar si la conversin es correcta en tiempo de ejecucin. En Java se puede hacer una comprobacin en tiempo de ejecucin de la compatibilidad de tipos y emitir una excepcin cuando falla.
92
En los primeros aos de la dcada de los noventa, Sun Microsystems decidi intentar introducirse en el mercado de la electrnica de consumo y desarrollar programas para pequeos dispositivos electrnicos. Tras unos comienzos dudosos, Sun decidi crear una filial, denominada FirstPerson Inc., para dar margen de maniobra al equipo responsable del proyecto.
Inicialmente Java se llam Oak (roble en ingls), aunque tuvo que cambiar de denominacin, debido a que dicho nombre ya estaba registrado por otra empresa. Se dice este nombre se le puso debido a la existencia de tal rbol en los alrededores del lugar de trabajo de los promotores del lenguaje.
93
1. Creciente necesidad de interfaces mucho ms cmodas e intuitivas que los sistemas de ventanas que proliferaban hasta el momento. 2. Fiabilidad del cdigo y facilidad de desarrollo. Gosling observ que muchas de las caractersticas que ofrecan C o C++ aumentaban de forma alarmante el gran coste de pruebas y depuracin. Por ello en los sus ratos libres cre un lenguaje de programacin donde intentaba solucionar los fallos que encontraba en C++. 3. Enorme diversidad de controladores electrnicos. Los dispositivos electrnicos se controlan mediante la utilizacin de microprocesadores de bajo precio y reducidas prestaciones, que varan cada poco tiempo y que utilizan diversos conjuntos de instrucciones. Java permite escribir un cdigo comn para todos los dispositivos.
Por todo ello, en lugar de tratar nicamente de optimizar las tcnicas de desarrollo y dar por sentada la utilizacin de C o C++, el equipo de Gosling se plante que tal vez los lenguajes existentes eran demasiado complicados como para conseguir reducir de forma apreciable la complejidad de desarrollo asociada a ese campo. Por este motivo, su primera propuesta fue idear un nuevo lenguaje de programacin lo ms sencillo posible, con el objeto de que se pudiese adaptar con facilidad a cualquier entorno de ejecucin.
Basndose en el conocimiento y estudio de gran cantidad de lenguajes, este grupo decidi recoger las caractersticas esenciales que deba tener un lenguaje de programacin moderno y potente, pero eliminando todas aquellas funciones que no eran absolutamente imprescindibles.
94
Automatizacin de procesos industriales 2.3 Primeros proyectos en que los que se aplic Java
El proyecto Green fue el primero en el que se aplic Java, y consista en un sistema de control completo de los aparatos electrnicos y el entorno de un hogar. Con este fin se construy un ordenador experimental denominado *7 (Star Seven). El sistema presentaba una interfaz basada en la representacin de la casa de forma animada y el control se llevaba a cabo mediante una pantalla sensible al tacto. En el sistema apareca ya Duke, la actual mascota de Java.
Ms tarde Java se aplic a otro proyecto denominado VOD (Video On Demand) en el que se empleaba como interfaz para la televisin interactiva que se pensaba iba a ser el principal campo de aplicacin de Java. Ninguno de estos proyectos se convirti nunca en un sistema comercial, pero fueron desarrollados enteramente en un Java primitivo.
Una vez que en Sun se dieron cuenta de que a corto plazo la televisin interactiva no iba a ser un gran xito, instaron a FirstPerson a desarrollar nuevas estrategias que produjeran beneficios. Entre ellas se encontraba la aplicacin de Java a Internet, la cual no se consider productiva en ese momento.
95
Para poder presentarlo en sociedad se tuvo que modificar el nombre de este lenguaje de programacin y se tuvo que realizar una serie de modificaciones de diseo para poderlo adaptar al propsito mencionado. As Java fue presentado en sociedad en agosto de 1995.
Algunas de las razones que llevaron a Bill Joy a pensar que Java podra llegar a ser rentable son:
Java es un lenguaje orientado a objetos: Esto es lo que facilita abordar la resolucin de cualquier tipo de problema.
Es un lenguaje sencillo, aunque sin duda potente. La ejecucin del cdigo Java es segura y fiable: Los programas no acceden directamente a la memoria del ordenador, siendo imposible que un programa escrito en Java pueda acceder a los recursos del ordenador sin que esta operacin le sea permitida de forma explcita. De este modo, los datos del usuario quedan a salvo de la existencia de virus escritos en Java. La ejecucin segura y controlada del cdigo Java es una caracterstica nica, que no puede encontrarse en ninguna otra tecnologa.
96
Es totalmente multiplataforma: Es un lenguaje sencillo, por lo que el entorno necesario para su ejecucin es de pequeo tamao y puede adaptarse incluso al interior de un navegador.
Las consecuencias de la utilizacin de Java junto a la expansin universal de Internet todava estn comenzando a vislumbrarse.
97
El problema fundamental de Java es que utiliza una representacin intermedia denominada cdigo de byte para solventar los problemas de portabilidad. Los cdigos de byte posteriormente se tendrn que transformar en cdigo mquina en cada mquina en que son utilizados, lo que ralentiza considerablemente el proceso de ejecucin.
La solucin que se deriva de esto parece bastante obvia: fabricar ordenadores capaces de comprender directamente los cdigos de byte. stas seran unas mquinas que utilizaran Java como sistema operativo y que no requeriran en principio de disco duro porque obtendran sus recursos de la red.
A los ordenadores que utilizan Java como sistema operativo se les llama Network Computer, WebPC o WebTop. La primera gran empresa que ha apostado por este tipo de mquinas ha sido Oracle, que en enero de 1996 present en Japn su primer NC (Network Computer), basado en un procesador RISC con 8 Megabytes de RAM. Tras Oracle, han sido compaas del tamao de Sun, Apple e IBM las que han anunciado desarrollos similares.
La principal empresa en el mundo del software, Microsoft, que en los comienzos de Java no estaba a favor de su utilizacin, ha licenciado Java, lo ha incluido en Internet Explorer (versin 3.0 y posteriores), y ha lanzado un entorno de desarrollo para Java, que se denomina Visual J++.
98
99
Adems, el parque de productos (entornos de desarrollo, bibliotecas, elementos de conectividad...) ya disponible en la actualidad es tan amplio que es improbable que se quede en nada.
Por otra parte, la relacin simbitica que tiene con Internet (y por derivacin con las Intranets) es un punto a favor de Java de muy difcil refutacin.
100
3. CARACTERSTICAS DE JAVA
3.1 Introduccin
No es arriesgado afirmar que Java supone un significativo avance en el mundo de los entornos software, y esto viene avalado por tres elementos claves que diferencian a este lenguaje desde un punto de vista tecnolgico:
Es un lenguaje de programacin que ofrece la potencia del diseo orientado a objetos con una sintaxis fcilmente accesible y un entorno robusto y agradable.
Proporciona un conjunto de clases potente y flexible. Pone al alcance de cualquiera la utilizacin de aplicaciones que se pueden incluir directamente en pginas Web (aplicaciones denominadas applets).
Java aporta a la Web una interactividad que se haba buscado durante mucho tiempo entre usuario y aplicacin.
101
En este aspecto Java fue diseado partiendo de cero, no siendo derivado de otro lenguaje anterior y no tiene compatibilidad con ninguno de ellos.
En Java el concepto de objeto resulta sencillo y fcil de ampliar. Adems se conservan elementos "no objetos", como nmeros, caracteres y otros tipos de datos simples.
Pese a su simpleza se ha conseguido un considerable potencial, y aunque cada tarea se puede realizar de un nmero reducido de formas, se ha conseguido un gran potencial de expresin e innovacin desde el punto de vista del programador.
c.) Robusto
Java verifica su cdigo al mismo tiempo que lo escribe, y una vez ms antes de ejecutarse, de manera que se consigue un alto margen de codificacin sin errores. Se realiza un descubrimiento de la mayor parte de los errores durante el tiempo de compilacin, ya que Java es estricto en cuanto a tipos y declaraciones, y as lo que es rigidez y falta de flexibilidad se convierte en eficacia. Respecto a la gestin de memoria, Java libera al programador del compromiso de tener que controlar especialmente la asignacin que de sta hace a sus necesidades especficas. Este lenguaje posee una gestin avanzada de memoria llamada gestin de basura, y un manejo de excepciones orientado a objetos integrados. Estos elementos realizarn muchas tareas antes tediosas a la vez que obligadas para el programador.
102
Existen varias clases que contienen las abstracciones bsicas para facilitar a los programas una gran capacidad de representacin. Para ello se contar con un conjunto de clases comunes que pueden crecer para admitir todas las necesidades del programador.
El conjunto de clases ms complicado de Java son sus paquetes grficos AWT (Abstract Window Toolkit) y Swing. Estos paquetes implementan componentes de una interfaz de usuario grfica bsica comn a todos los ordenadores personales modernos.
103
El nico requerimiento para aprender Java es tener una comprensin de los conceptos bsicos de la programacin orientada a objetos. As se ha creado un lenguaje simple (aunque eficaz y expresivo) pudiendo mostrarse cualquier planteamiento por parte del programador sin que las interioridades del sistema subyacente sean desveladas.
Java es ms complejo que un lenguaje simple, pero ms sencillo que cualquier otro entorno de programacin. El nico obstculo que se puede presentar es conseguir comprender la programacin orientada a objetos, aspecto que, al ser independiente del lenguaje, se presenta como insalvable.
El paquete de utilidades de Java viene con un conjunto completo de estructuras de datos complejas y sus mtodos asociados, que sern de inestimable ayuda para implementar applets y otras aplicaciones ms complejas. Se dispone tambin de estructuras de datos habituales, como pilas y tablas hash, como clases ya implementadas.
Existir una interfaz Observer/Observable que permitir la implementacin simple de objetos dinmicos cuyo estado se visualiza en pantalla.
El JDK (Java Development Kit) suministrado por Sun Microsystems incluye un compilador, un intrprete de aplicaciones, un depurador en lnea de comandos, y un visualizador de applets entre otros elementos.
104
Uno de los requisitos de Java desde sus inicios fue la posibilidad de crear programas en red interactivos, por lo que es capaz de hacer varias cosas a la vez sin perder rastro de lo que debera suceder y cundo. Para se da soporte a la utilizacin de mltiples hilos de programacin (multithread).
Las aplicaciones de Java permiten situar figuras animadas en las pginas Web, y stas pueden concebirse con logotipos animados o con texto que se desplace por la pantalla. Tambin pueden tratarse grficos generados por algn proceso. Estas animaciones pueden ser interactivas, permitiendo al usuario un control sobre su apariencia.
Java est diseado para que un programa escrito en este lenguaje sea ejecutado correctamente independientemente de la plataforma en la que se est actuando (Macintosh, PC, UNIX). Para conseguir esto utiliza una compilacin en una representacin intermedia que recibe el nombre de cdigos de byte, que pueden interpretarse en cualquier sistema operativo con un intrprete de Java. La desventaja de un sistema de este tipo es el rendimiento; sin embargo, el hecho de que Java fuese diseado para funcionar razonablemente bien en microprocesadores de escasa potencia, unido a la sencillez de traduccin a cdigo mquina hacen que Java supere esa desventaja sin problemas.
105
Java anima las pginas Web y hace posible la incorporacin de aplicaciones interactivas y especializadas. Aporta la posibilidad de distribuir contenidos ejecutables, de manera que los suministradores de informacin de la Web pueden crear una pgina de hipertexto (pgina Web) con una interaccin continuada y compleja en tiempo real; el contenido ejecutable es transferido literalmente al ordenador del usuario.
Los protocolos bsicos para trabajar en Internet estn encapsulados en unas cuantas clases simples. Se incluyen implementaciones ampliables de los protocolos FTP, HTTP, NNTP y SMTP junto con conectores de red de bajo nivel e interfaces de nombrado. Esto le permite interactuar con esos servicios de red poderosos sin tener que comprender realmente los detalles de bajo nivel de esos protocolos. Este lenguaje est diseado para cumplir los requisitos de entrega de contenidos interactivos mediante el uso de applets insertados en sus pginas HTML. Adems, las clases de Java admiten muy bien estos protocolos y formatos. El envo de las clases de Java a travs de Internet se realiza con gran facilidad, ya que existe una interfaz unificada, resolviendo as los tpicos problemas de diferencia de versiones.
Java proporciona un conjunto de clases para tratar con una abstraccin de los conectores de red (sockets) originales de la versin UNIX de Berckley, encapsular la nocin de una direccin de Internet o conectar sockets con flujos de datos de Entrada/Salida.
Con todas estas posibilidades aumenta el dinamismo y competitividad de la Web, puesto que es capaz de captar el inters del usuario durante largo tiempo y permite a los programadores convertir la Web en un sistema de entrega de software.
106
Una applet (miniaplicacin) es un pequeo programa en Java transferido dinmicamente a travs de Internet. Presentan un comportamiento inteligente, pudiendo reaccionar a la entrada de un usuario y cambiar de forma dinmica. Sin embargo, la verdadera novedad es el gran potencial que Java proporciona en este aspecto, haciendo posible que los programadores ejerzan un control sobre los programas ejecutables de Java que no es posible encontrar en otros lenguajes.
107
Existe una preocupacin lgica en Internet por el tema de la seguridad: virus, caballos de Troya, y programas similares navegan de forma usual por la red, constituyendo una amenaza palpable. Java ha sido diseado poniendo un nfasis especial en el tema de la seguridad, y se ha conseguido lograr cierta inmunidad en el aspecto de que un programa realizado en Java no puede realizar llamadas a funciones globales ni acceder a recursos arbitrarios del sistema, por lo que el control sobre los programas ejecutables no es equiparable a otros lenguajes.
Fuertes restricciones al acceso a memoria, como son la eliminacin de punteros aritmticos y de operadores ilegales de transmisin.
Rutina de verificacin de los cdigos de byte que asegura que no se viole ninguna construccin del lenguaje.
Verificacin del nombre de clase y de restricciones de acceso durante la carga. Sistema de seguridad de la interfaz que refuerza las medidas de seguridad en muchos niveles.
108
Java fue desarrollado basndose en C++, pero eliminando rasgos del mismo poco empleados, optndose por una codificacin comprensible. Bsicamente, encontramos las siguientes diferencias con C++:
Java no soporta los tipos struct, union ni punteros. No soporta typedef ni #define. Se distingue por su forma de manejar ciertos operadores y no permite una sobrecarga de operadores.
No soporta herencia mltiple. Java maneja argumentos en la lnea de comandos de forma diversa a como lo hacen C o C++.
Tiene una clase String que es parte del paquete java.lang y se diferencia de la matriz de caracteres terminada con un nulo que usan C y C++.
Java cuenta con un sistema automtico para asignar y liberar memoria, con lo que no es necesario utilizar las funciones previstas con este fin en C y C++.
En lugar de utilizar primitivas como las de C para trabajar con ficheros, se utilizan primitivas similares a las de C++, mucho ms elegantes, que permiten tratar los ficheros, sockets, teclado y monitor como flujos de datos.
De este modo se pueden utilizar dichas primitivas para cualquier operacin de Entrada/Salida.
109
Aplicaciones: Se ejecutan sin necesidad de un navegador. Applets: Se pueden descargar de Internet y se observan en un navegador. JavaBeans: Componentes software Java, que se puedan incorporar grficamente a otros componentes.
JavaScript: Conjunto del lenguaje Java que puede codificarse directamente sobre cualquier documento HTML
Servlets: Mdulos que permiten sustituir o utilizar el lenguaje Java en lugar de programas CGI (Common Gateway Interface) a la hora de dotar de interactividad a las pginas Web.
110
En principio Java fue diseado tomando C y C++ como base para la creacin de un nuevo lenguaje con la modificacin de todos aquellos aspectos que no eran tiles o dificultosos para la programacin de componentes electrnicos de bajo coste. Para ello el nuevo lenguaje deba incluir interfaces cmodas, deba ser fiable y fcil de desarrollar y los programas deban ser portables de un sistema a otro sin ningn tipo de problema.
Java es muy parecido a C++ en el juego bsico de tipos de datos con algunas pequeas modificaciones.
En Java se distingue entre tipos de datos primitivos y clases, aunque existen unas clases especiales (envoltorios o wrappers) que permiten modificar los tipos de datos primitivos.
Los tipos de datos primitivos (o simples) pueden ser numricos, booleanos o caracteres.
111
Hay cuatro tipos numricos: byte de 1 byte, short de 2 bytes, int de 4 bytes, y los long de 8 bytes. El tipo ms habitual de los cuatro es el tipo int. El byte viene a sustituir el tipo char de C++, ya que Java introduce una interpretacin diferente al tipo de datos char.
No existe un tipo sin signo (unsigned) para los nmeros en Java. Los tipos numricos reales son el float (8 bytes) y el double (16 bytes). Los nmeros que utilizan coma flotante (por ejemplo 18.96) son considerados double por defecto, y habr que realiza un moldeado (casting) explcito para que sean float.
c.) Caracteres
Los datos carcter en Java se basan en los de C++ que a su vez son heredados de C. Los caracteres son Unicode de 2 bytes. Los caracteres Unicode son valores de 2 bytes sin signo, con lo que se define obtiene un rango de 65535 caracteres diferentes, que son suficientes para las los diferentes lenguajes y sistemas de representacin del planeta.
El carcter de datos del lenguaje Java proviene del tradicional C. Hay que sealar que los caracteres en C++ eran de slo 1 byte, con lo que en Java podremos representar muchos ms caracteres que en C++.
112
En Java se definen para las variables con valores Verdadero/Falso o S/No, en definitiva, valores bi-estado. Una variable booleana puede tener los valores true (verdadero) o false (falso). Son parecidos a los de C++, aunque en cualquier caso, y a diferencia de C++ estas variables no pueden ser convertidas a datos numricos, y es un tipo de datos bsico.
4.4 Vectores
Los vectores en Java, a diferencia de C++, son una clase de objetos. Un vector es un objeto real con una representacin en tiempo real. Se pueden declarar y almacenar vectores de cualquier tipo, y almacenar tambin vectores de vectores para obtener matrices (vectores con varias dimensiones). En este ltimo aspecto no existe diferencia con C++.
4.5 Cadenas
Las cadenas en Java son objetos del lenguaje, no existen seudo-arrays de caracteres (cadenas) como era el caso de C++. Existen dos tipos de cadenas de objetos:
113
Al igual que C++, el compilador de Java entiende que una cadena de caracteres rodeada de dobles comillas es una cadena, y es iniciada como un objeto de tipo String (en C++ sera como vector de caracteres con el carcter fin de cadena \0 al final de la misma).
114
a.) Introduccin
En este apartado se va a comparar Java con los lenguajes C++ y Smalltalk (primer lenguaje que presentaba un modelo de objeto).
Caracterstica Sencillez Robustez Seguridad Interpretado Dinamicidad Portabilidad Neutralidad Threads Garbage Collection Excepciones Representacin
Java S S S S S S S S S S Alta
115
Java tiene una sencillez que no posee C++ aunque s Smalltalk. Esto es debido a que una de las razones de la creacin de Java es la de obtener un lenguaje parecido a C++ pero reduciendo los errores ms comunes de la programacin, algo que se logra con mucho xito puesto que Java reduce un 50% los errores que se comenten en C++ entre los que destacan:
Eliminacin de la aritmtica de punteros y de las referencias. Desaparecen los registros (struct), heredados del paradigma estructurado. No se permite ni la definicin de tipos (typedef) ni la de macros (#define). Ya no es necesario liberar memoria (free o delete).
De todas formas, lo que Java hace, en realidad, es la eliminacin de palabras reservadas, y la utilizacin de un intrprete bastante pequeo.
c.) Robustez
Java realiza verificaciones en busca de problemas tanto en tiempo de compilacin como en tiempo de ejecucin, lo que hace que se detecten errores lo antes posible, normalmente en el ciclo de desarrollo. Algunas de estas verificaciones que hacen que Java sea un lenguaje robusto son:
Verificacin del cdigo de byte. Gestin de excepciones y errores. Comprobacin de punteros y de lmites de vectores.
Se aprecia una clara diferencia con C++ quin no realiza ninguna de estas verificaciones.
116
En Java no se permite los accesos ilegales a memoria, algo que s se permita en C++. Esto es algo muy importante puesto que este tipo de problema puede ocasionar la propagacin de virus y otras clases de programas dainos por la red.
El cdigo Java pasa muchos tests antes de ejecutarse en una mquina. El cdigo se pasa a travs de un verificador de cdigo de byte que comprueba el formato de los fragmentos de cdigo y aplica un probador de teoremas para detectar fragmentos de cdigo ilegal, cdigo que falsea punteros, viola derechos de acceso sobre objetos o intenta cambiar el tipo o clase de un objeto.
Algunos de los conocimientos que podemos obtener de los cdigos de byte si pasan la verificacin sin generar ningn mensaje de error son:
El cdigo no produce desbordamiento de operandos en la pila. El tipo de los parmetros de todos los cdigos de operacin es conocido y correcto.
No ha ocurrido ninguna conversin ilegal de datos, tal como convertir enteros en punteros.
El acceso a los campos de un objeto se sabe si es legal mediante las palabras reservadas public, private y protected.
Por todo esto, y por no permitirlo mediante Java la utilizacin de mtodos de un programa sin los privilegios del ncleo (kernel) del sistema operativo, la obligacin de autentificacin por clave pblica para la realizacin de modificaciones, se considera
117
Java es un lenguaje que puede ejecutar el cdigo directamente, es decir es un "lenguaje interpretado". Esto es una caracterstica que s que posee Smalltalk, aunque no C++. No obstante, y aunque en teora se consumen menos recursos siendo los lenguajes interpretados, el actual compilador que existe es bastante lento, unas 20 veces menos rpido que C++. Esto normalmente no es vital para la aplicacin ni demasiado apreciable por el usuario, y adems esta diferencia se est reduciendo con los nuevos compiladores JIT (Just In Time).
f.) Dinamicidad
Para la obtencin de un mayor provecho de la tecnologa orientada a objetos, Java no intenta conectar todos los mdulos que comprenden una aplicacin hasta el tiempo de ejecucin. Esta caracterstica ya es contemplada por Smalltalk, aunque no C++, que enlaza todos los mdulos cuando se compila.
g.) Portabilidad
Un programa Java puede ser ejecutado en diferentes entornos, algo imposible para C++.
118
Se dice que Java tiene una arquitectura neutra puesto que compila su cdigo a un fichero objeto de formato independiente de la arquitectura de la mquina en que se ejecutar.
Cualquier mquina que tenga el sistema de ejecucin (JRE o Java Runtime Enviroment) puede ejecutar ese cdigo objeto, sin importar en modo alguno la mquina en que ha sido generado.
Actualmente existen sistemas de ejecucin (JRE) para Solaris 2.x, SunOs 4.1.x, Windows 95, Windows NT, Linux, Irix, Aix, Mac, Apple y probablemente haya grupos de desarrollo trabajando el portado a otras plataformas.
No es as para C++ y para Smalltalk, donde el cdigo generado podr ejecutarse nicamente en la plataforma en la que se gener.
i.) Threads
Java permite mltiples hilos (multithreading) antes de su ejecucin y en tiempo de ejecucin. La posibilidad de construir pequeos procesos o piezas independientes de un gran proceso permite programar de una forma ms sencilla y es una herramienta muy potente que no se ofrece en C++.
119
Java modifica completamente la gestin de la memoria que se hace en C/C++. En C/C++ se utilizan punteros, reservas de memoria (con las ordenes malloc, new, free, delete...) y otra serie de elementos que dan lugar a graves errores en tiempo de ejecucin difcilmente depurables.
Java tiene operadores nuevos para reservar memoria para los objetos, pero no existe ninguna funcin explcita para liberarla.
La recoleccin de basura (objetos ya inservibles) es una parte integral de Java durante la ejecucin de sus programas. Una vez que se ha almacenado un objeto en el tiempo de ejecucin, el sistema hace un seguimiento del estado del objeto, y en el momento en que se detecta que no se va a volver a utilizar ese objeto, el sistema vaca ese espacio de memoria para un uso futuro.
Esta gestin de la memoria dinmica hace que la programacin en Java sea ms fcil.
k.) Representacin
Uno de los objetivos perseguidos en el desarrollo de Java era la obtencin de programas con interfaces cmodas e intuitivas. Esto tambin se permite en C++, aunque con unos mtodos ms costosos, y en ningn caso con interfaces portables como los que Java crea.
Tanto en Java como en C++ se logran unas interfaces con una representacin mejor que la que se puede alcanzar con Smalltalk.
120
121
BASIC: Es la ms sencilla. Consiste en un pop-up en el cual se han de introducir el usuario y la contrasea. Si se da un usuario vlido se accede al recurso protegido, y si no, nos aparece una pantalla de error. Se puede definir una pantalla de error para ese tipo de error, pero el propio cuadro que aparece rompe la esttica de la aplicacin, por lo que no se usa en aplicaciones de cara al cliente.
FORM: Lo que nos aparecer en esta ocasin ser un formulario diseado y definido por el programador. Como siempre, si se introduce una pareja usuariocontrasea vlida se accede al recurso protegido, y si no, aparece una pgina de login erroneo que tambin puede ser definida por el programador. Al estar tan metido dentro de la aplicacin (son paginas web, como el resto de la aplicacion), es el mtodo ms usado.
CLIENT-CERT: Este mtodo requiere un certificado del lado del cliente. DIGEST: Mtodo un poco ms avanzado que el mtodo BASIC.
NONE: Ningn tipo de cifrado. CONFIDENTIAL: Utilizacin de SSL. Aporta confidencialidad e integridad. INTEGRAL: Aporta integridad del mensaje. Normalmente los servidores usan SSL con el fin de aportar este tipo de autentificacin, aunque no es imprescindible.
122
123
tomcat-users.xml
Como se muestra en el ejemplo, en este fichero se indica a Tomcat cuales son los usuarios que pueden tener acceso a los recursos. Como se pude ver claramente en el ejemplo el procedimiento consiste en definir dentro de la etiqueta <tomcat-users> todos los usuarios que tiene acceso, para esto se indica el nombre, su password y el grupo al que pertenece. As tendremos tantas lines <user> dentro de <tomcat-user> como usuarios tengan permiso.
<tomcat-users> <user name="tomcat" password="tomcat" roles="administrador, usuario_ /> <user name="javahispano" password="javahispano" roles="usuario" /> </tomcat-users>
124
Script de ejemplo para la confeccion de los datos almacenados en las tablas descritas
125
insert into usuarios_roles values ('tomcat', 'administrador'); insert into usuarios_roles values ('tomcat', 'usuario'); insert into usuarios_roles values ('javahispano', 'usuario');
El fichero donde se indica a Tomcat que tipo de dominio de seguridad usar es el fichero server.xml, en la seccin de RequestInterceptor para Tomcat 3 y en la seccin Realm para Tomcat 4. Por defecto Tomcat 3 est configurado para usar el fichero XML para autentificar los usuarios. La parte que lo indica es la siguiente:
<!- Comprobar permisos usando el fichero xml. --> <RequestInterceptor className="org.apache.tomcat.request.SimpleRealm" debug="0" />
Y Tomcat 4 no tiene configuracin por defecto, aunque a continuacin se indica como realizar la configuracin para utilizar bases de datos. Lo primero es indicar en el fichero de contexto el modo de seguridad para la aplicacin.
<Realm className="org.apache.catalina.realm.JDBCRealm"
Y por ltimo configurar para los distintos conceptos presentes en la autentificacin, usuario, password y rol, su localizacin indicando, base de datos, tablas y columnas. 126
En funcin de donde se localice nuestra configuracin, refirindose a ficheros XML, se estar configurando la para todo el servidor, para un servidor virtual, o para una nica aplicacin.
127
Autentificacin BASIC.
Una vez creada la aplicacin web se proceder a editar su descriptor de despliegue
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<!-En este punto empieza lo relativo a la autentificacion. Son las llamadas restricciones de seguridad. --> <security-constraint>
<!-Con tantos elementos web-resource-collection como sean necesarios se indicaran las distintas zonas. --> <web-resource-collection> <web-resource-name>Nombre de la zona</web-resource-name> <!-Usando url-pattern se indica que ficheros o directorios estn protegidos. Para este ejmplo estarn TODOS
128
<!-Lo siguiente es indicar que roles tienen permitido el acceso, en este caso solo el administrador. Tantos _role-name_ sean necesarios. --> <auth-constraint> <role-name>administrador</role-name> </auth-constraint>
<!-El siguiente paso es indicar el valor de seguridad en el Transporte. Como ya se ha explicado, los posibles valores son : NONE, CONFIDENTIAL, INTEGRAL. -->
<!-Por ultimo se idica el mtodo por el que se realizar la autentificacin. BASIC. --> <login-config> <auth-method>BASIC</auth-method> <realm-name>Ejemplo de autentificacion basica</realm-name> </login-config>
129
Una vez es hayan realizado los pasos indicados, ya se habr dotado de seguridad( BASIC-NONE) a la aplicacin. Cuando se intente acceder a est, se mostrar una pantalla como la aqu mostrada para introducir el usuario y la clave.
Autentificacin FORM.
La primera accin a realizar es definir los formularios que utilizar la aplicacin, uno para el primer intento, y otro para el resto. No se obliga a que stos sean dos distintos, pero resulta mas indicativo para el usuario indicarle con un diseo distinto al original su error en la autentificacin. En realidad no es necesario que este segundo sea tambin un formulario HTML, puede ser una pgina que informe del error. El fichero de login, login.html:
<html> <head> <title> Login de aplicacion que requiere autentificacion </title> </head> <body> <h2>Login</h2> <br>
130
Se debe prestar atencin en los distintos valores del formulario, ya que estos son estandar definidos en la especificacin 2.2 con el fin de conseguir la portabilidad de las aplicaciones entre los servidores.
131
En este punto el nico cambio necesario frente a lo explicado en el ejemplo anterior es el elemento login-config del descriptor de la aplicacin, web.xml para que use la autentificacin .
<login-config> <auth-method>FORM</auth-method> <realm-name> Ejemplo de autentificacion por medio de formulario </realm-name> <form-login-config> <!
Formulariose en el directori raz de nuestra aplicacin. --> <form-login-page>/login.html</form-login-page> <form-error-page>/login_error.html</form-error-page> </form-login-config> </login-config>
Se ha de prestar atencin al caso en el que sea necesario proteger la aplicacin completa y usar la autentificacin con formulario (aunque no dara problemas con la bsica), dado que el formulario de entrada tambin se convertira en un recurso protegido, por lo cual Tomcat no podra mostrarlo y producira un error. Si se desea hacer algo as, simplemente se habr de grabar la aplicacin en un directorio de acceso restringido y dejar los formularios fuera de ste.
132
133
El HTML ( HyperText Markup Language) se ha convertido en el lenguaje estndar (o lingua franca) del World Wide Web. En sus casi diez aos de andadura, y tras una fase de desarrollo ms o menos turbulento, se ha confirmado como un estndar aceptado y aprobado por la industria. HTML se puede considerar una aplicacin de SGML ( Standard Generalised Markup Language) Hay que desterrar ideas del tipo "XML es HTML mejorado" o "XML es HTML ampliable y personalizable."
Los fundamentos de XML son muy sencillos. En las siguientes pginas aprenderemos cmo crear documentos XML bien-formados, y que adems sean vlidos, es decir, que estn conformes a una Definicin de Tipo de Documento (DTD) dada. Adems veremos la creacin y uso de hojas de estilo (XSL) para la presentacin de los datos, as como diferentes aplicaciones actuales de XML.
134
Una forma de entender rpidamente la estructura de un documento XML, es viendo un pequeo ejemplo:
<?xml version="1.0"?> <!DOCTYPE MENSAJE SYSTEM "mensaje.dtd"> <mensaje> <remite> <nombre>Alfredo Reino</nombre> <email>alf@ibium.com</email> </remite> <destinatario> <nombre>Bill Clinton</nombre> <email>president@whitehouse.gov</email> </destinatario> <asunto>Hola Bill</asunto> <texto> <parrafo>Hola qu tal? Hace <enfasis>mucho</enfasis> que no escribes. A ver si llamas y quedamos para tomar algo.</parrafo> </texto> </mensaje>
Este mismo documento puede ser visto de forma grfica, para comprender mejor la estructura de un documento XML. 135
136
Existen un nmero de diferencias entre la sintaxis de HTML y XML. Es til, para aquellos que saben HTML y quieren usar XML, conocerlas perfectamente, para poder crear documentos XML bien-formados.
Los documentos XML deben seguir una estructura estrictamente jerrquica con lo que respecta a las etiquetas que delimitan sus elementos. Una etiqueta debe estar correctamente "incluida" en otra. Adems, los elementos con contenido, deben estar correctamente "cerrados". En el siguiente ejemplo, la primera lnea sera incorrecta en XML, no as la segunda:
Etiquetas vacas
HTML permite elementos sin contenido. Como veremos ms adelante, XML tambin, pero la etiqueta debe ser de la siguiente forma: <elemento-sincontenido/> En el siguiente ejemplo, la primera lnea sera incorrecta en XML, no as la segunda:
137
Los documentos XML slo permiten un elemento raz, del que todos los dems sean parte. Es decir, la jerarqua de elementos de un documento XML bien-formado slo puede tener un elemento inicial.
Valores de atributos
Los valores de atributos en XML, al contrario de HTML, siempre deben estar encerradas en comillas simples ( ' ) o dobles ( " ). En el siguiente ejemplo, la primera lnea sera incorrecta en XML, no as la segunda:
<A HREF=http://www.disney.com/>
<A HREF="http://www.developer.com/">
El XML es sensible al tipo de letra utilizado, es decir, trata las maysculas y minsculas como caracteres diferentes. Si un elemento de XML est definido como "ELEMENTO", no podemos usar "elemento", ni "Elemento", ni "eleMENto" para referirnos.
Existe un conjunto de caracteres denominados "espacios en blanco" que los procesadores XML tratan de forma diferente en el marcado XML. Estos caracteres son los 138
La especificacin XML 1.0 permite el uso de esos "espacios en blanco" para hacer ms legible el cdigo, y en general son ignorados por los procesadores XML.
En otros casos, sin embargo, los "espacios en blanco" resultan muy significativos, por ejemplo, para separar las palabras en un texto, o separar lneas de prrafos diferentes.
Nombrando cosas
Al utilizar XML, es necesario asignar nombres a las estructuras, tipos de elementos, entidades, elementos particulares, etc. En XML los nombres tienen algunas caractersticas en comn.
Un nombre [empieza] con una letra o uno o ms signos de puntuacin, y [contina] con letras, dgitos, guiones, rayas, dos puntos o puntos, denominados de forma global como caracteres de nombre. Los nombres que empiezan con la cadena "xml", se reservan para la estandarizacin de esta o de futuras versiones de esta especificacin.
Resumiendo, no se pueden crear nombres que empiecen con la cadena "xml", "xMl", "XML" o cualquier otra variante. Las letras y rayas se pueden usar en cualquier parte del nombre. Tambin se pueden incluir dgitos, guiones y caracteres de punto, pero no se puede empezar por ninguno de ellos. El resto de caracteres, como algunos smbolos, y espacios en blanco, no se pueden usar.
139
Marcado y datos
Las construcciones como etiquetas, referencias de entidad y declaraciones se denominan "marcas". stas son las partes del documento que el procesador XML espera entender. El resto del documento que se encuentra entre las marcas, son los datos que resultan entendibles por las personas.
Es sencillo reconocer las marcas en un documento XML. Son aquellas porciones que empiezan con "<" y acaban con ">", o bien, en el caso de las referencias de entidad, empiezan por "&" y acaban con ";".
140
La primera, o "declaracin XML", define la versin de XML usada. Hasta ahora slo hay una, la "1.0" Adems, en la "declaracin XML" especificamos la codificacin del documento, que puede ser, por ejemplo, USASCII (7 bits) o UTF-8 (cdigo Unicode del que el ASCII es un subconjunto), UCS-2, EUC-JP, Shift_JIS, Big5, ISO-8859-1 hasta ISO8859-7. En general, y para uso con lenguajes europeos (incluyendo el juego de caracteres especiales del castellano, usamos UTF-7 o ISO8859-1)
Adems, se puede incluir una declaracin de documento autnomo ( standalone), que controla qu componentes de la DTD son necesarios para completar el procesamiento del documento.
La segunda, o "declaracin de tipo de documento", define qu tipo de documento estamos creando para ser procesado correctamente. Es decir, definimos que Declaracin de Tipo de Documento (DTD Document Type Definition) valida y define los datos que contiene nuestro documento XML.
En ella se define el tipo de documento, y dnde encontrar la informacin sobre su Definicin de Tipo de Documento, mediante un identificador pblico (PUBLIC) que hace referencia a dicha DTD, o mediante un Identificador Universal de Recursos (URI) precedido por la palabra SYSTEM.
141
<!DOCTYPE MENSAJE SYSTEM "mensaje.dtd"> <!DOCTYPE HTML PUBLIC "-/ /W3C/ /DTD HTML 3.2 Final/ /EN"> <!DOCTYPE LABEL SYSTEM "http://www.empresa.com/dtds/label.dtd">
142
5. Elementos
Los elementos XML pueden tener contenido (ms elementos, caracteres, o ambos a la vez), o bien ser elementos vacos.
<nombre>Fulano Mengnez</nombre>
Siempre empieza con una <etiqueta> que puede contener atributos o no, y termina con una </etiqueta> que debe tener el mismo nombre. Al contrario que HTML, en XML siempre se debe "cerrar" un elemento.
Hay que tener en cuenta que el smbolo "<" siempre se interpreta como inicio de una etiqueta XML. Si no es el caso, el documento no estar bien-formado. Para usar ciertos smbolos se usan las entidades predefinidas, que se explican ms adelante.
<identificador DNI="23123244"/>
<linea-horizontal/>
Al no tener una etiqueta de "cierre" que delimite un contenido, se utiliza la forma <etiqueta/>, que puede contener atributos o no. La sintaxis de HTML permite etiquetas vacas tipo <hr> o <img src="...">. En HTML reformulado para que sea un documento XML bien-formado, se debera usar <hr/> o <img src="..."/>
143
Por ejemplo, un elemento "chiste" puede tener un atributo "tipo" y un atributo "calidad", con valores "vascos" y "bueno" respectivamente.
En una Definicin de Tipo de Documento, se especifican los atributos que puede tener cada tipo de elemento, as como sus valores y tipos de valor posible.
Al igual que en otras cadenas literales de XML, los atributos pueden estar marcados entre comillas verticales ( ' ) o dobles ( " ). Cuando se usa uno para delimitar el valor del atributo, el otro tipo se puede usar dentro.
A veces, un elemento con contenido, puede modelarse como un elemento vaco con atributos. Un concepto se puede representar de muy diversas formas, pero una vez elegida una, es aconsejable fijarla en el DTD, y usar siempre la misma consistentemente dentro de un documento XML.
<gato><nombre>Micif</nombre><raza>Persa</raza></gato>
<gato raza="Persa">Micif</gato>
144
7. Entidades predefinidas
En XML 1.0, se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado por el procesador XML. Es decir, que as podemos usar el carcter "<" sin que se interprete como el comienzo de una etiqueta XML, por ejemplo.
8. Secciones CDATA
Existe otra construccin en XML que permite especificar datos, utilizando cualquier carcter, especial o no, sin que se interprete como marcado XML. La razn de esta construccin llamada CDATA (Character Data) es que a veces es necesario para los autores de documentos XML, poder leerlo fcilmente sin tener que descifrar los cdigos de entidades. Especialmente cuando son muchas.
Como ejemplo, el siguiente (primero usando entidades predefinidas, y luego con un bloque CDATA)
<parrafo>Lo siguiente es un ejemplo de HTML.</html> <ejemplo> <HTML> <HEAD><TITLE>Rock & Roll</TITLE></HEAD> <![CDATA[ <HTML> <HEAD><TITLE>Rock & Roll</TITLE></HEAD> ]]> </ejemplo>
145
9. Comentarios
A veces es conveniente insertar comentarios en el documento XML, que sean ignorados por el procesado de la informacin y las reproducciones del documento. Los comentarios tienen el mismo formato que los comentarios de HTML. Es decir, comienzan por la cadena "<!--" y terminan con "-->".
<?xml version="1.0"?> <!-- Aqu va el tipo de documento --> <!DOCTYPE EJEMPLO [ <!-- Esto es un comentario --> <!ELEMENTO EJEMPLO (#PCDATA)> <!-- Eso es todo por ahora! --> ]>
<EJEMPLO>texto texto texto bla bla bla <!-- Otro comentario --> </EJEMPLO> <!-- Ya acabamos -->
Se pueden introducir comentarios en cualquier lugar de la instancia o del prlogo, pero nunca dentro de las declaraciones, etiquetas, u otros comentarios.
146
Crear una definicin del tipo de documento (DTD) es como crear nuestro propio lenguaje de marcado, para una aplicacin especfica. Por ejemplo, podramos crear un DTD que defina una tarjeta de visita. A partir de ese DTD, tendramos una serie de elementos XML que nos permitiran definir tarjetas de visita.
La DTD define los tipos de elementos, atributos y entidades permitidas, y puede expresar algunas limitaciones para combinarlos.
Los documentos XML que se ajustan a su DTD, se denominan "vlidos". El concepto de "validez" no tiene nada que ver con el de estar "bien-formado". Un documento "bien- formado" simplemente respeta la estructura y sintaxis definidas por la especificacin de XML. Un documento "bien-formado" puede adems ser "vlido" si cumple las reglas de una DTD determinada. Tambin existen documentos XML sin una DTD asociada, en ese caso no son "vlidos", pero tampoco "invlidos" simplemente "bien-formados" o no.
La DTD puede residir en un fichero externo, y quiz compartido por varios (puede que miles) de documentos. O bien, puede estar contenida en el propio documento XML, como parte de su declaracin de tipo de documento.
Veamos un ejemplo:
<!DOCTYPE etiqueta[ <!ELEMENT etiqueta (nombre, calle, ciudad, pais, codigo)> <!ELEMENT nombre (#PCDATA)> <!ELEMENT calle (#PCDATA)>
147
<etiqueta> <nombre>Fulano Mengnez</nombre> <calle>c/ Mayor, 27</calle> <ciudad>Valderredible</ciudad> <pais>Espaa</pais> <codigo>39343</codigo> </etiqueta>
La declaracin del tipo de documento comienza en la primera lnea y termina con "]>". Las declaraciones DTD son las lneas que empiezan con "<!ELEMENT" y se denominan declaraciones de tipo elemento. Tambin se pueden declarar atributos, entidades y anotaciones para una DTD.
En el ejemplo anterior, todas las declaraciones DTD que definen "etiqueta" residen dentro del documento. Sin embargo, la DTD se puede definir parcial o completamente en otro lugar. Por ejemplo:
<?xml version="1.0"?> <!DOCTYPE coche SYSTEM "http://www.sitio.com/dtd/coche.dtd"> <coche> <modelo>...</modelo> ... </coche>
148
Los elementos son la base de las marcas XML, y deben ajustarse a un tipo de documento declarado en una DTD para que el documento XML sea considerado vlido.
Las
declaraciones
de
tipo
de
elemento
deben
empezar
con
"<!ELEMENT" seguidas por el identificador genrico del elemento que se declara. A continuacin tienen una especificacin de contenido.
Por ejemplo:
En este ejemplo, el elemento <receta> puede contener dentro elementos <titulo>, <ingredientes> y <procedimiento>, que, a su vez, estarn definidos tambin en la DTD y podrn contener ms elementos.
Siguiendo la definicin de elemento anterior, este ejemplo de documento XML sera vlido:
149
EMPTY
ANY
Puede tener cualquier contenido. No se suele utilizar, ya que es conveniente estructurar adecuadamente nuestros documentos XML.
Mixed
Puede tener caracteres de tipo datos o una mezcla de caracteres y sub-elementos especificados en la especificacin de contenido mixto.
Por ejemplo, el primer elemento definido en el ejemplo (<enfasis>) puede contener datos de carcter (#PCDATA). Y el segundo (<parrafo>) puede contener tanto datos de carcter (#PCDATA) como sub-elementos de tipo <enfasis>.
150
<!ELEMENT mensaje (remite, destinatario, texto)> Para declarar que un tipo de elemento tenga contenido de elementos se especifica un modelo de contenido en lugar de una especificacin de contenido mixto o una de las claves ya descritas.
151
Un modelo de contenido es un patrn que establece los sub-elementos aceptados, y el orden en que se acepta.
La coma, en este caso, denota una secuencia. Es decir, el elemento <aviso> debe contener un <titulo> seguido de un <parrafo>.
La barra vertical "|" indica una opcin. Es decir, <aviso> puede contener o bien un <parrafo> o bien un <grafico>. El nmero de opciones no est limitado a dos, y se pueden agrupar usando parntesis.
En este ltimo caso, el <aviso> debe contener un <titulo> seguido de un <parrafo> o de un <grafico>.
Adems, cada partcula de contenido puede llevar un indicador de frecuencia, que siguen directamente a un identificador general, una secuencia o una opcin, y no pueden ir precedidos por espacios en blanco. <!ELEMENT aviso (titulo?, (parrafo+, grafico)*)>
152
Los atributos permiten aadir informacin adicional a los elementos de un documento. La principal diferencia entre los elementos y los atributos, es que los atributos no pueden contener sub-atributos. Se usan para aadir informacin corta, sencilla y desestructurada.
<mensaje prioridad="urgente"> <de>Alfredo Reino</de> <a>Hans van Parijs</a> <texto idioma="holands"> Hallo Hans, hoe gaat het? ... </texto> </mensaje>
Otra diferencia entre los atributos y los elementos, es que cada uno de los atributos slo se puede especificar una vez, y en cualquier orden.
En el ejemplo anterior, para declarar la lista de atributos de los elementos <mensaje> y <texto> haramos lo siguiente:
<!ELEMENT mensaje (de, a, texto)> <!ATTLIST mensaje prioridad (normal | urgente) normal> <!ELEMENT texto(#PCDATA)> <!ATTLIST texto idioma CDATA #REQUIRED>
153
El atributo "idioma", pertenece al elemento texto, y puede contener datos de carcter (CDATA). Es ms, la palabra #REQUIRED significa que no tiene valor por defecto, ya que es obligatorio especificar este atributo.
A menudo interesa que se pueda omitir un atributo, sin que se adopte automticamente un valor por defecto. Para esto se usa la condicin "#IMPLIED". Por ejemplo, en una supuesta DTD que defina la etiqueta <IMG> de HTML:
Es decir, el atributo "URL" es obligatorio, mientras que el "ALT" es opcional (y si se omite, no toma ningn valor por defecto).
154
Los atributos CDATA (character data) son los ms sencillos, y pueden contener casi cualquier cosa. Los atributos NMTOKEN (name token) son parecidos, pero slo aceptan los caracteres vlidos para nombrar cosas (letras, nmeros, puntos, guiones, subrayados y los dos puntos).
<mensaje fecha="15-7-1999">
Los atributos enumerados son aquellos que slo pueden contener un valor de entre un nmero reducido de opciones.
Existe otro tipo de atributo parecido, llamado de notacin (NOTATION). Este tipo de atributo permite al autor declarar que su valor se ajusta a una notacin declarada.
<!ATTLIST #REQUIRED>
mensaje
fecha
NOTATION
(ISO-DATE
EUROPEAN-DATE)
Para declarar las notaciones, se utiliza "<!NOTATION", con una definicin externa de la notacin. La definicin externa puede ser pblica o un
155
Atributos ID e IDREF
El tipo ID permite que un atributo determinado tenga un nombre nico que podr ser referenciado por un atributo de otro elemento que sea de tipo IDREF. Por ejemplo, para implementar un sencillo sistema de hipervnculos en un documento:
<!ELEMENT enlace EMPTY> <!ATTLIST enlace destino IDREF #REQUIRED> <!ELEMENT capitulo (parrafo)*> <!ATTLIST capitulo referencia ID #IMPLIED>
En este caso, una etiqueta <enlace destino="seccion-3"> hara referencia a un <capitulo referencia="seccion-3">, de forma que el procesador XML lo podra convertir en un hipervnculo, u otra cosa.
156
XML hace referencia a objetos (ficheros, pginas web, imgenes, cualquier cosa) que no deben ser analizados sintcticamente segn las reglas de XML, mediante el uso de entidades. Se declaran en la DTD mediante el uso de "<!ENTITY"
Una entidad puede no ser ms que una abreviatura que se utiliza como una forma corta de algunos textos. Al usar una referencia a esta entidad, el analizador sintctico reemplaza la referencia con su contenido. En otras ocasiones es una referencia a un objeto externo o local.
Internas Analizadas
Externas o No
Son las ms sencillas. Son bsicamente abreviaturas definidas en la seccin de la DTD del documento XML. Son siempre entidades analizadas, es decir, una vez reemplazada la referencia a la entidad por su contenido, pasa a ser parte del documento XML y como tal, es analizada por el procesador XML.
157
Las entidades externas obtienen su contenido en cualquier otro sitio del sistema, ya sea otro archivo del disco duro, una pgina web o un objeto de una base de datos. Se hace referencia al contenido de una entidad as mediante la palabra SYSTEM seguida de un URI (Universal Resource Identifier)
Entidades no analizadas
Evidentemente, si el contenido de la entidad es un archivo MPG o una imagen GIF o un fichero ejecutable EXE, el procesador XML no debera intentar interpretarlo como si fuera texto XML. Este tipo de entidades siempre son generales y externas.
Se denominan entidades parmetro a aquellas que slo pueden usarse en la DTD, y no en el documento XML. Se pueden utilizar para agrupar ciertos elementos del DTD que se repitan mucho. Se diferencian las entidades parmetro de las generales, en que para hacer referencia a ellas, se usa el smbolo "%" en lugar de "&" tanto como para declararlas como para usarlas.
%elemento-alf; ]>
158
EJEMPLO DE DTD
Un ejemplo de DTD que puede servir para resumir todo lo visto hasta ahora podra ser un DTD que nos defina un lenguaje de marcado para una base de datos de personas con direcciones e-mail.
<?xml encoding="UTF-8"?> <!ELEMENT listin (persona)+> <!ELEMENT persona (nombre, email*, relacion?)> <!ATTLIST persona id ID #REQUIRED> <!ATTLIST persona sexo (hombre | mujer) #IMPLIED> <!ELEMENT nombre (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT relacion EMPTY> <!ATTLIST relacion amigo-de IDREFS #IMPLIED enemigo-de IDREFS #IMPLIED>
Basndonos en este DTD, podramos escribir nuestro primer listn en XML de la siguiente manera:
<?xml version="1.0"?>
159
160
Un " schema XML " es algo similar a un DTD, es decir, que define qu elementos puede contener un documento XML, cmo estn organizados, y que atributos y de qu tipo pueden tener sus elementos.
La ventaja de los schemas con respecto a los DTDs son: Usan sintaxis de XML, al contrario que los DTDs. Permiten especificar los tipos de datos. Son extensibles.
Por ejemplo, un schema nos permite definir el tipo del contenido de un elemento o de un atributo, y especificar si debe ser un nmero entero, o una cadena de texto, o una fecha, etc. Los DTDs no nos permiten hacer estas cosas.
Como podemos ver en el documento XML anterior, se hace referencia a un espacio de nombres (namespace) llamado "x-
schema:personaSchema.xml". Es decir, le estamos diciendo al analizador sintctico XML ( parser) que valide el documento contra el schema "personaSchema.xml".
161
<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"> <AttributeType name='id' dt:type='string' required='yes'/> <ElementType name='nombre' content='textOnly'/> <ElementType name='persona' content='mixed'> <attribute type='id'/> <element type='nombre'/> </ElementType> <ElementType name='documento' content='eltOnly'> <element type='persona'/> </ElementType> </Schema>
El primer elemento del schema define dos espacios de nombre. El primero " xml-data" le dice al analizador que esto es un schema y no otro documento XML cualquiera. El segundo " datatypes" nos permite definir el tipo de elementos y atributos utilizando el prefijo "dt".
ElementType
Define el tipo y contenido de un elemento, incluyendo los subelementos que pueda contener.
AttributeType
attribute
Declara que un atributo previamente definido por AttributeType puede aparecer como atributo de un elemento determinado.
162
Declara que un elemento previamente definido por ElementType puede aparecer como contenido de otro elemento.
Tal como hemos visto, es necesario empezar el schema definiendo los elementos ms profundamente anidados dentro de la estructura jerrquica de elementos del documento XML. Es decir, tenemos que trabajar "de dentro hacia fuera".
Visto de otra manera, las declaraciones de tipo ElementType y AttributeType deben preceder a las declaraciones de contenido element y attribute correspondientes.
163
La aplicacin de una hoja de estilo XSL a un documento XML puede ocurrir tanto en el origen (por ejemplo, un servlet que convierta de XML a HTML para que sea mostrado a un navegador conectado a un servidor de web), o en el mismo navegador (como es el caso del MS IE5, y en breve, Netscape 5).
Bsicamente, XSL es un lenguaje que define una transformacin entre un documento XML de entrada, y otro documento XML de salida.
Una hoja de estilo XSL es una serie de reglas que determinan cmo va a ocurrir la transformacin. Cada regla se compone de un patrn ( pattern) y una accin o plantilla (template).
De este modo, cada regla afecta a uno o varios elementos del documento XML. El efecto de las reglas es recursivo, para que un elemento situado dentro de otro elemento pueda ser tambin transformado. La hoja de estilo tiene una regla raz que, adems de ser procesada, llama a las reglas adecuadas para los elementos hijos.
164
</capitulos> </libro>
<HTML> <HEAD> <TITLE>Un ttulo cualquiera</TITLE> </HEAD> <BODY> <H1>Un ttulo cualquiera</H1> <HR> <H2>Captulo 1</H2> <P>...</P> <P>...</P>
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="libro"> <HTML> <HEAD> <TITLE><xsl:process select="titulo"/></TITLE> </HEAD> <BODY> <H1><xsl:process select="titulo"/></H1> <xsl:process select="capitulos"/> </BODY> </HTML> </xsl:template>
166
Dicho esto, hay que decir que JAVA se posiciona como una opcin interesante a la hora de desarrollar aplicaciones usando XML.
Por ejemplo, a partir de fuentes de datos en XML, podemos escribir un servlet que analice sintcticamente el XML, y que genere un rbol DOM (Document Object Model). Una vez generado el rbol DOM, podemos ir extrayendo la informacin que contiene e ir generando un documento HTML de acuerdo con ciertas reglas de formato, de modo que pueda ser visualizado por un navegador web.
Vamos a suponer que nuestro servlet carga ese fichero XML en un objeto string de Java, que nos vamos a disponer a analizar.
Lo primero que debemos hacer es crear un analizador sintctico XML. Usamos el objeto com.ibm.xml.Parser para ello.
El fichero "xslparse.err" ser el registro de cualquier error que ocurra mientras procesamos el documento XML, que debe ser convertido a un InputStream.
167
Ahora contenemos el rbol DOM en el objeto "doc", y lo que tenemos que hacer es movernos por el rbol DOM e ir sacando los datos que contiene.
Vamos a ver los mtodos que tenemos para navegar el DOM (definidos en org.w3c.dom.Node)
getDocumentElement() Devuelve el elemento raz getFirstChild() Devuelve el nodo que es el primer "hijo" de este nodo. getNextSibling() Devuelve el nodo que es el siguiente "hermano" de este nodo. getLastChild() Devuelve el nodo que es el ltimo "hijo" de este nodo. getPreviousSibling() Devuelve el nodo que es el ltimo "hermano" de este nodo. getAttribute(java.lang.String attrName) Devuelve representa el valor de un atributo. un objeto string que
168
Los enlaces en HTML tienen una serie de limitaciones, que los hacen bastante pobres. Por ejemplo, slo tienen dos extremos, la terminacin origen y la destino, y son unidireccionales.
Si yo creo un enlace en mi pgina web personal que me lleve hasta la pgina principal de Coca-Cola, estoy creando un "vnculo" entre esta pgina y la ma.
<a href="http://www.coca-cola.com/">Coca-Cola</a>
Este vnculo es unidireccional, porque un visitante cualquiera que entre en la pgina de Coca-Cola, no tiene forma de saber que mi pgina (as como otros cientos de miles) enlaza con ella.
El objetivo de XLink es crear enlaces entre recursos, de una forma de la que HTML no es capaz.
Por ejemplo, un estudiante podra hacer anotaciones a los apuntes que un profesor tiene disponibles en la red, por el mtodo de insertar un enlace desde los apuntes (a los que no tiene acceso de escritura o modificacin) y su propia pgina de anotaciones y comentarios.
O bien, podremos vincular dos pginas cualesquiera, por ejemplo enlazando el texto de una noticia en un diario on-line, con el texto de la noticia equivalente en el diario competidor. Y no hay porqu quedarse en enlaces con dos extremos. Los enlaces extendidos permiten mucho ms que eso.
169
En el momento actual, la tecnologa para poder mantener una base de datos de enlaces mundial, no est desarrollada, pero se puede hacer a nivel local.
Por ejemplo, nuestra empresa quiere comprar ciertos productos de un suministrador. Los trabajadores de la empresa podrn visitar la pgina web del proveedor y hacer enlaces externos a comentarios sobre las especificaciones de tal producto. Cuando otro compaero de la empresa visite la pgina, el servidor de enlaces de nuestra empresa le mostrar la pgina junto con los enlaces externos creados, y mostrar nuestros comentarios como si fueran parte del documento original.
170
SISTEMAS EXPERTOS
1. Introduccin
Los sistemas expertos son programas que reproducen el proceso intelectual de un experto humano en un campo particular, pudiendo mejorar su productividad, ahorrar tiempo y dinero, conservar sus valiosos conocimientos y difundirlos ms fcilmente. Antes de la aparicin del ordenador, el hombre ya se preguntaba si se le arrebatara el privilegio de razonar y pensar. En la actualidad existe un campo dentro de la inteligencia artificial al que se le atribuye esa facultad: el de los sistemas expertos. Estos sistemas permiten la creacin de mquinas que razonan como el hombre, restringindose a un espacio de conocimientos limitado. En teora pueden razonar siguiendo los pasos que seguira un experto humano (mdico, analista, empresario, etc.) para resolver un problema concreto. Este tipo de modelos de conocimiento por ordenador ofrece un extenso campo de posibilidades en resolucin de problemas y en aprendizaje. Su uso se extender ampliamente en el futuro, debido a su importante impacto sobre los negocios y la industria. El objetivo de este curso es ensear de forma prctica el funcionamiento y construccin de un sistema experto. A lo largo de la serie de artculos se demostrar que los sistemas expertos son tiles y prcticos, y que, adems, son realizables. Tambin se analizar la problemtica de la adquisicin y representacin del conocimiento, as como los mtodos para tratar la incertidumbre.
171
172
173
minuciosamente. En 1967 se construye DENDRAL, que se considera como el primer sistema experto. Se utilizaba para identificar estructuras qumicas moleculares a partir de su anlisis espectrogrfico. Entre 1970 y 1980 se desarroll MYCIN para consulta y diagnstico de infecciones de la sangre. Este sistema introdujo nuevas caractersticas: utilizacin de conocimiento impreciso para razonar y posibilidad de explicar el proceso de razonamiento. Lo ms importante es que funcionaba de manera correcta, dando conclusiones anlogas a las que un ser humano dara tras largos aos de experiencia. En MYCIN aparecen claramente diferenciados motor de inferencia y base de conocimientos. Al separar esas dos partes, se puede considerar el motor de inferencias aisladamente. Esto da como resultado un sistema vaco o shell (concha). As surgi EMYCIN (MYCIN Esencial) con el que se construy SACON, utilizado para
174
175
176
177
178
179
180
SI tiene 4 ruedas Y utiliza motor Y pesa menos de 3500 Kg. ENTONCES es un coche Existen reglas de produccin que no pertenecen al dominio del problema. Estas reglas se llaman metarreglas (reglas sobre otras reglas) y su funcin es indicar bajo qu condiciones deben considerarse unas reglas en vez de otras. Un ejemplo de metaregla es: 1. SI hay reglas que usan materias baratas 2. Y hay reglas que usan materias caras 3. ENTONCES usar antes las primeras que las segundas La base de datos o base de hechos es una parte de la memoria del ordenador que se utiliza para almacenar los datos recibidos inicialmente para la resolucin de un problema. Contiene conocimiento sobre el caso concreto en que se trabaja. Tambin se
181
182
183
184
185
186
METODOLOGA
1. Introduccin:
Para un determinado problema se pueden construir diferentes algoritmos de resolucin o programas. La eleccin del ms adecuado se debe basar en una serie de requisitos de calidad que adquieren gran importancia a la hora de evaluar el coste de su diseo y mantenimiento.
Las caractersticas generales que debe reunir un programa son las siguientes:
Legibilidad: Ha de ser claro y sencillo, de tal forma que facilite su lectura y comprensin. Fiabilidad: Ha de ser robusto, es decir, capaz de recuperarse frente a errores o usos inadecuados. Portabilidad: Su diseo debe permitir la codificacin en diferentes lenguajes de programacin, as como su instalacin en diferentes sistemas. Modificabilidad: Ha de facilitar su mantenimiento, esto es, las modificaciones y actualizaciones necesarias para adaptarlo a una nueva situacin. Eficiencia: Se deben aprovechar al mximo los recursos de la computadora, minimizando la memoria utilizada y el tiempo de proceso y ejecucin, siempre que no sea a costa de los requisitos anteriores.
Por tanto, una metodologa, es un conjunto de mtodos y tcnicas disciplinadas que ayudan al desarrollo de unos programas que cumplan los requisitos anteriormente descritos.
187
2. Metodologa de desarrollo:
La metodologa de desarrollo empleada en este proyecto, se divide en las siguientes etapas:
Identificacin de necesidades
Es una etapa que no suele aparecer, como tal, en diferentes metodologas, sino que aparece como una actividad ms a realizar al comienzo del proyecto. Sirve como soporte a la peticin que el usuario o cliente nos realiza, para determinar las pautas generales de sus necesidades y del contexto del sistema.
El objetivo de esta fase, es exponer el entorno global del problema en estudio, especificando: el mbito del sistema, las restricciones, los antecedentes y los objetivos dentro de la poltica empresarial.
En esta etapa se utiliza bsicamente la tcnica de la entrevista, donde participan el usuario y el analista.
Anlisis de requerimientos
El objetivo de esta fase es alcanzar un conocimiento suficiente del sistema, definiendo las necesidades, problemas y requerimientos del usuario. Todo ello debe ser expresado mediante el modelo de procesos.
La palabra suficiente indica que dependiendo del sistema en estudio, profundizaremos ms o menos en el conocimiento del sistema actual.
188
Estudio de viabilidad.
El objetivo de esta fase es definir las posibles soluciones que satisfagan tanto los requerimientos como las restricciones de diseo.
Cada alternativa deber dar una visin externa del sistema, los requerimientos fsicos que deben ser considerados, as como los aspectos organizativos, operativos, tcnicos y econmicos asociados. En estos factores nos fijaremos para elegir una de las opciones propuestas.
Por tanto, debemos especificar la tecnologa hardware, software y de comunicaciones de cada alternativa; evaluar cada alternativa en sus aspectos organizativos, operativos, tcnicos y econmicos; seleccionar una alternativa y obtener la aprobacin del usuario.
Diseo
En esta fase se completa la definicin de especificaciones del sistema a mecanizar, obtenindose el nuevo modelo de procesos.
Se introducen en el modelo los requerimientos del sistema, se disean las entradas y salidas del sistema, se especifican los procesos, se realiza una estimacin de volmenes y se confecciona la arquitectura del sistema, formando los programas y mdulos que constituirn el software del sistema.
Programacin
189
Pruebas
Una vez desarrollados y probados cada uno de los programas que forman el software del sistema, deben realizarse una serie de pruebas para conseguir integrar todo el sistema.
Para ello, se hacen pruebas de integracin de mdulos, programas, cadenas y transacciones; se realizan las pruebas de impacto en el centro de explotacin y se establece la aprobacin de las pruebas del sistema con el usuario.
Implantacin.
Una vez probada la integridad del software del sistema, llega el momento en que se debe transferir el software producido en el Centro de Desarrollo al Centro de Produccin, para realizar la explotacin del sistema.
Mantenimiento
El mantenimiento, al igual que en otras metodologas, no se considera parte integrante del ciclo de desarrollo de esta aplicacin.
190
3. Anlisis y diseo
El anlisis y diseo de este programa, se realiza mediante casos de uso y OIDs (Object Interaction Diagrams).
4. Casos de uso:
Manipular dispositivo Activar estado automtico del sistema Activar estado manual del sistema Aadir sensor-Eliminar sensor Modificar sensor Aadir dispositivo Eliminar dispositivo Modificar dispositivo Crear programa Eliminar programa Modificar programa Activar un programa Visualizar Log del sistema Visualizar Log de dispositivo
191
Escenario Primario:
1. El usuario introduce la orden en el dispositivo que desea manipular 2. El sistema muestra el resultado de la operacin (RN001) 3. El sistema almacena las nuevas operaciones realizadas
Extensiones:
1a. El sistema est en modo automtico. 1. El sistema indica al usuario la imposibilidad de actuar de forma manual sobre los dispositivos estando el sistema en modo automtico. 2. Salir del caso de uso.
Resultado de la operacin:
En la seccin correspondiente a el estado de la instalacin industrial se muestra una etiqueta con el valor numrico de la operacin realizada y se desplaza el indicador del slider hasta la posicin correspondiente al valor de la operacin.
192
Escenario Primario:
1. El usuario activa el estado automtico del sistema 2. El sistema valida la viabilidad del estado automtico con el programa seleccionado. 3. El sistema deshabilita el control manual de los dispositivos 4. El sistema habilita el programa cargado para la zona 5. El sistema muestra las acciones disparadas para los valores de la zona y las reglas del programa (RN002) 6. El sistema muestra el resultado de las operaciones (RN001)
Extensiones:
1. El sistema indica al usuario la imposibilidad de iniciar el estado automtico debido a la ausencia de sensores. 2. Salir del caso de uso.
1. El sistema indica al usuario la imposibilidad de iniciar el estado automtico debido a la ausencia de dispositivos. 2. Salir del caso de uso.
193
1. El sistema comunica la necesidad de cargar como mnimo un programa en la zona a ejecutarse 2. Fin del caso de uso
5a. Las acciones disparadas por el programador son iguales a las ltimas rdenes emitidas
Resultado de la operacin:
En la seccin correspondiente al estado de la instalacin industrial se muestra una etiqueta con el valor numrico de la operacin realizada y se desplaza el indicador del slider hasta la posicin correspondiente al valor de la operacin.
194
Escenario primario:
1. El usuario activa el estado manual del sistema 2. El sistema habilita los controles manuales del sistema 3. El sistema deshabilita la programacin establecida para la zona 4. El sistema activa el estado manual del sistema 5. El sistema indica que est en estado manual
195
Escenario primario:
1. El usuario introduce los datos del sensor 2. El sistema valida el identificador del sensor 3. El sistema da de alta el sensor en la zona
Extensiones:
1. El sistema comunica al usuario que ya hay un sensor en la zona con el identificador introducido 2. Volver a solicitar un identificador para el nuevo sensor
Descripcin de datos:
196
Escenario primario:
1. El sistema muestra la informacin de los sensores disponibles en la zona ordenados por su identificador. 2. El usuario selecciona el sensor a eliminar. 3. El sistema elimina el sensor de la zona.
Extensiones:
3a. La zona est en estado automtico y el sensor a eliminar es tenido en cuenta por el programa cargado en zona
1. El sistema pide al usuario confirmacin de la eliminacin 2. El sistema cambia a estado manual 3. El sistema comunica al usuario el cambio de estado 4. Vuelve al paso tres del escenario primario
Descripcin de datos:
197
Escenario primario:
1. El sistema muestra la informacin de los sensores disponibles en la zona ordenados por su identificador. 2. El usuario selecciona el sensor a modificar. 3. El usuario introduce los nuevos datos del sensor. (RN004) 4. El sistema modifica el sensor de la zona.
Descripcin de datos:
198
Escenario primario:
1. El usuario introduce los datos del dispositivo 2. El sistema valida el identificador del dispositivo 3. El sistema da de alta el dispositivo en la zona
Extensiones:
1. El sistema comunica al usuario que ya hay un dispositivo en la zona con el identificador introducido 2. Volver a solicitar un identificador para el nuevo dispositivo
Descripcin de datos:
Identificador del dispositivo Tipo de dispositivo (discreto o Go-NoGo) Descripcin del dispositivo
199
Escenario primario:
1. El sistema muestra la informacin de los dispositivos disponibles en la zona ordenados por su identificador. 2. El usuario selecciona el sensor a eliminar. 3. El sistema elimina el dispositivo de la zona.
Extensiones:
3a. La zona est en estado automtico y el dispositivo a eliminar es tenido en cuenta por el programa cargado en zona
1. El sistema solicita confirmacin al usuario 2. El sistema pasa a estado manual 3. El sistema comunica al usuario el cambio de estado 4. Vuelve al paso tres del escenario primario
Descripcin de datos:
Identificador del dispositivo Tipo de dispositivo (discreto o Go-NoGo) Descripcin del dispositivo
200
Escenario primario:
1. El sistema muestra la informacin de los dispositivos disponibles en la zona ordenados por su identificador. 2. El usuario selecciona el dispositivo a modificar. 3. El usuario introduce los nuevos datos del dispositivo. (RN003) 4. El sistema modifica el dispositivo de la zona.
Descripcin de datos:
Identificador del dispositivo Tipo de dispositivo (discreto o Go-NoGo) Descripcin del dispositivo
201
Escenario primario:
1. El usuario introduce los datos del programa 2. El usuario introduce las lneas del programa (RN003)
Extensiones
1a En zona ya hay un programa con el identificador del programa 1. El sistema comunica al usuario que el identificador introducido ya existe 2. Volver al paso uno del escenario primario
2a No se ha introducido ninguna Regla 1. El sistema comunica al usuario que no se introducido ninguna regla 2. Volver al paso dos del escenario primario
2b No se ha introducido ninguna Decisin 1. El sistema comunica al usuario que no se introducido ninguna decisin 2. Volver al paso dos del escenario primario
2b No se ha introducido un valor correcto para la accin 1. El sistema comunica al usuario que no se introducido un valor correcto para la accin indicada 2. Volver al paso dos escenario primario
202
Descripcin de datos:
203
Escenario primario:
1. El sistema muestra ordenado por identificador del programa los datos de los programas 2. El usuario selecciona y elimina un programa 3. El sistema suprime de la lista de programas el programa eliminado
Extensiones
1. El sistema comunica al usuario que el programa no puede ser eliminado al encontrarse activo en la zona 2. Salir del caso de uso
Descripcin de datos
204
Escenario primario:
1. El sistema muestra las lneas del programa que forman el programa seleccionado 2. El usuario selecciona la lnea de programa a modificar 3. El usuario introduce los datos del programa 4. El usuario introduce las lneas del programa (RN003)
Extensiones
3a No se ha introducido ninguna Regla 3. El sistema comunica al usuario que no se introducido ninguna regla 4. Volver al paso dos del escenario primario
3b No se ha introducido ninguna Decisin 3. El sistema comunica al usuario que no se introducido ninguna decisin 4. Volver al paso dos del escenario primario
3c No se ha introducido un valor correcto para la accin 3. El sistema comunica al usuario que no se introducido un valor correcto para la accin indicada 4. Volver al paso dos escenario primario
Descripcin de datos:
205
206
Escenario primario:
1. El sistema muestra ordenado por identificador del programa los datos de los programas 2. El usuario selecciona el programa a activar en el sistema 3. El sistema establece el programa como programa de zona
Extensiones
3a La zona esta en estado automtico y ya est ejecutando el programa que el usuario desea activar
1. El sistema comunica al usuario que el programa ya est siendo ejecutado en la zona 2. Fin del caso de uso
3b La zona est en estado automtico y no dispone de los sensores necesarios para ejecutar el programa
1. El sistema comunica al usuario que el programa necesita de sensores no disponibles en la zona 2. Fin del caso de uso
207
1. El sistema comunica al usuario que el programa necesita de dispositivos no disponibles en la zona 2. Fin del caso de uso
Descripcin de datos:
Programa de zona:
Aquel programa que ser activado cuando el sistema est en estado automtico.
208
Escenario primario.
Extensiones:
1a El fichero no se encuentra 1. El sistema comunica al usuario que el fichero configurado como log de la zona no es encuentra disponible 2. Salir del caso de uso.
Descripcin de datos
Fecha inicio aplicacin Valor de los sensores de la zona Ordenes enviadas a los dispositivos
209
Escenario primario
1. El sistema muestra la informacin de los dispositivos en zona ordenador por el identificador de los dispositivos 2. El usuario selecciona el dispositivo 3. El sistema muestra el contenido del fichero configurado como log de ese dispositivo
Extensiones
3a El fichero no se encuentra 1. El sistema comunica al usuario que el fichero configurado como log de el dispositivo no es encuentra disponible 2. Salir del caso de uso.
210
5. Reglas de negocio
(RN001)
El resultado de la operacin es confirmado cuando el interfaz CM11A, dispositivo puente entre el ordenador y los dispositivos X-10, confirma el envi de las ordenes.
(RN002)
Las reglas de un programa son evaluadas en acuerdo a su prioridad. Para que una regla se cumpla y se lleven a cabo todas sus acciones deben de cumplirse todas las acciones de la zona.
(RN003)
Toda lnea de un programa ha de componerse como mnimo por una condicin y una accin.
(RN004)
El identificador de un sensor solo se puede especificar al aadirlo a la zona, una vez aadido el identificador se considera un valor no modificable.
211
6. Secuencia de eventos:
Estado de la zona: Estado manual Estado automtico
212
213
Nuevo Programa
Definicin Sensores/dispositivos
214
215
Seleccin dispositivo
216
7. Diagramas de Clase
7.1 Diagrama de paquetes.
217
218
219
220
221
222
223
224
225
226
227
228
229
230
8. Diagramas de secuencia.
Inicio del sistema: Inicio de los dispositivos Inicio de los sensores Inicio de los programas
Activar automatizacin: Activar el estado automtico Activar programa Cambio de estado de los sensores
Gestionar dispositivos: Mostrar configuracin de dispositivos Agregar un dispositivo Modificar un dispositivo Eliminar un dispositivo
Gestionar Sensores: Mostrar configuracin de sensores Agregar un sensor Modificar un sensor Eliminar un sensor
Gestionar Programas: Mostrar la tabla de programas Crear un programa Modificar un programa Eliminar un programa
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
Descripcin:
El controlador CM11A est diseado para permitir el intercambio de informacin con un ordenador haciendo uso de un cable RS-232 RJ45.
Realiza la conversin de rdenes enviadas desde el ordenado y transmite stas sobre el cableado de la instalacin para el control de dispositivos electrnicos conectados a mdulos X-10.
Detalles:
Este controlador mantiene su funcionalidad sin necesidad de que el ordenador est encendido, incluso sin la necesidad de que el cable est conectado al ordenador. Una vez que el dispositivo ha sido programado, el ordenador deja de ser necesario.
Hace uso de dos bateras estndar modelo AAA, mediante estas bateras el dispositivo mantiene en funcionamiento su reloj interno, realiza la programacin de los eventos programados y control las macros definidas durante un tiempo de quinientas horas incluso si la electricidad de la instalacin deja de estar disponible. Esto permite desconectar el controlador CM11A de la toma de corriente y colocarlo en el lugar mas til.
252
Este controlador es full-duplex, permite la transmisin de comandos X10 as como la recepcin de estos, comunicndoselos, en caso de estar disponible, al PC para su correspondiente tratamiento.
253
Descripcin:
Este dispositivo es el encargado de interpretar los comandos X10 transmitidos por la red y tomar las acciones correspondientes a los eventos ordenados.
Esta versin permite la comunicacin en ambas direcciones, recibiendo ordenes X10 a travs de la red y transmitiendo estados a sta para su recepcin por el controlador CM11A y su posterior comunicacin al PC a travs del cable RS232- RJ45.
Tiene una funcin de arranque progresivo que aumenta la tensin desde cero por ciento hasta alcanzar la ltima tensin programada. Cuando una orden X10 es enviada, el dispositivo ira incrementando la potencia desde su valor de inicio. Las versiones anteriores de este dispositivo iniciaban la tensin automticamente a la mxima potencia programada con anterioridad. El intervalo de tiempo entre el apagado o el encendido completo es de dos segundos.
Para realizar estas funciones incorpora otra mejora y es el almacenamiento de el ltimo estado programado incluyendo su nivel de tensin.
254
El
Mdulo
de
Lmpara
casquillo rosca- LM15 es un dispositivo del Sistema X-10, que se instala en el casquillo E-27 tradicional de las
Al recibir a travs de la red elctrica las ordenes destinadas a l, enciende o apaga la bombilla
Detalles:
El Mdulo de Lmpara LM15 recibe las seales X10 inyectadas en la red elctrica a travs de los diferentes sistemas X-10 (Mando a distancia y Transceptor, Mini Programador, Modulo de control desde PC...) y enciende o apaga la bombilla incandescente que tenga conectada.
Mediante secuencias de pulsaciones es posible la asignacin de Cdigos de Casa y de Unidad del Sistema X-10. Por defecto responde en el cdigo A1.
El Mdulo de Lmpara LM15 permite el encendido / apagado de bombillas de incandescencia hasta de 150 W ( 60 W. En caso de lmparas cerradas)
255
Tensin de Alimentacin:
Carga permitida:
256
PRESUPUESTO
257
Plan de proyecto
Toma especificaciones Anlisis y diseo Prototipado Codificacin Validacin y pruebas Documetancin Instalacin y puesta en marcha
Sem Sem Sem Sem Sem Sem Sem Sem Sem Sem Sem Sem
258
Estudio econmico
Contingencias 3% 20%
Per. Director de proyecto Analista Programador Programador TOTALES Occupancy Persona TOTAL Transporte Per. Director del proyecto 1 Analista Programador 1 Programador 2 TOTAL Coste periodo garanta Per. Programador 1 TOTAL Resumen
Equipo humano Occupancy Transportes Garanta TOTAL
/h Precio
90,00 80,00 70,00
Contingenci as
44.496,00 39.552,00 67.200,00 151.248,00
1 1 2
Per. 4
/mes 1.000,00
Meses 3
Contingencias
14.832,00 14.832,00
Das 60 60 100
Precio
648,00 648,00 1.080,00 2.376,00
Contingencia
667,44 667,44 1.112,40 2.447,28
/mes 4.800,00
Meses 3
Precio
17.280,00 17.280,00
Contingencias
17.798,40 17.798,40
186.325,68
+ IVA
259
CONCLUSIN
En un contexto industrial se puede definir la automatizacin como una tecnologa que est relacionada con el empleo de sistemas mecnicos-elctricos basados en computadoras para la operacin y control de la produccin.
La historia de la automatizacin industrial est caracterizada por perodos de constantes innovaciones tecnolgicas. Esto se debe a que las tcnicas de automatizacin estn muy ligadas a los sucesos econmicos mundiales.
Aunque el crecimiento del mercado de la automatizacin industrial ha sido lento en comparacin con los primeros aos de la dcada de los 80s, de acuerdo a algunas predicciones, este tipo de sistemas estn en su infancia y por lo tanto les queda mucho recorrido todava por delante.
En la actualidad el uso de automatismos industriales est concentrado en operaciones muy simples, como tareas repetitivas que no requieren tanta precisin. Las tareas relativamente simples como recogida de datos mediante sensores o activacin de dispositivos, son econmicamente viables para ser automatizadas. Los anlisis de mercado en cuanto a fabricacin predicen que en sta dcada y en las posteriores los sistemas de automatizacin industrial incrementaran su campo de aplicacin.
La introduccin de sistemas de automatizacin en pequeas y medianas empresas har posible a stas el aprovecharse de las ventajas proporcionadas por estos sistemas. Con el uso de automatismos se consigue mejorar la productividad de la empresa, las condiciones de trabajo y todo lo relacionado con los produccin, es decir, se reducen los costes de produccin, se aumenta la calidad y se mejoran las condiciones de trabajo personal suprimiendo trabajos innecesarios y aumentando la seguridad.
Se hace por lo tanto necesario sistemas capaces de integrar la gestin de las instalaciones con estos sistemas de automatizacin para poder dar acceso a todo tipo de empresas a estas ventajas. Dado la relativa juventud de automatizacin industrial, lo que
260
Este proyecto hace visible la viabilidad de la implantacin de sistemas de control y automatizacin en todo tipo de instalaciones industriales como pueden ser granjas o invernaderos, poniendo nfasis en la replicacin, con el fin de abaratar sus costes.
La solucin demostrada consiste en un sistema abierto, para el control centralizado de dispositivos electromecnicos. Con capacidad para el control,
monitorizacin y actuacin remota haciendo uso de una red TCP/IP como es Internet, sin restricciones en cuanto al nmero de dispositivos o funcionalidades que estos aporten independientemente del proveedor de los dispositivos.
En resumen la automatizacin en la recogida de datos y en la ejecucin de procesos es una tecnologa que aporta innumerables ventajas a la empresa y que aunque en un principio estuviese restringido a las grandes industrias, en la actualidad se puede disponer de sistemas sencillos y baratos que posibilitan el acceso, no solo a las grandes industrias, si no tambin a todo tipo de empresas.
261
BIBLIOGRAFA
Libros:
[FLA02]
[SCH02]
[BRU01]
[CRU04]
James L. Weaver / Kevin Mukhar / James P. Crume Beginning J2EE 1.4: From Novice to Professional, Apress 2004
[STE02]
Stephanie Bodoff, Dale Green, Kim Haase, Eric Jendrock, Monica Pawlan, Beth Stearns The J2EE Tutorial, Sun Microsystems 2002
[PER03]
[CAM84]
[SELL88]
Martin D. Sller Complete Guide to Rs-232 and Parallel Connections, SYBEX 1988
[BUC03]
Robert N. Bucceri Latest Technology in Automated Home Control, Silent Servant 2003
[TEC05]
[SAU02]
Thilo Sauter, Dietmar Dietrich, Wolfgang Kastner EIB : Installation Bus System, WILEY 2002
[LOY01]
Dietmar Loy, Dietmar Dietrich, Hans-Joerg Schweinz Open Control Networks: Lonworks/Eia 709 Technology, Kluwer 2001
[BER03]
262
[PER04]
[CAV04]
[GAR01]
Giarratano, Joseph y Riley, Gary Sistemas Expertos. Principios y programacin, Thomson Editores 2001
Direcciones de Internet
JDK 1.4.2_06 (http://java.sun.com/) Eclipse R3.0.1 (http://www.eclipse.org/) Web Tools Project 1.0 (http://www.eclipse.org/webtools/index.html ) EclipseUML Studio 1.1.0 (http://www.omondo.com/ ). Apache 2.0.52 (http://httpd.apache.org/ ). Tomcat 4.1.31 (http://jakarta.apache.org/tomcat/index.html ). MySQL 4.1.21 (http://www.mysql.com/ ). FireFox 1.0 (http://www.mozilla.org/ ). Struts (http://struts.apache.org/)
263
APENDICES
264
MANUAL DE USUARIO
Esta es la pantalla principal de la aplicacin, desde ella podemos acceder a todas las funcionalidades disponibles.
1. Seccin manual: Esta es la seccin dedicada al control manual de los dispositivos. Cuando el sistema se encuentra en estado manual, el usuario podr manipular los dispositivos presentes en la instalacin y visibles en est zona
A-1
3. Seccin grfica. Esta seccin es donde se visualiza el estado de la instalacin de una forma grfica.
4. Seccin estado de la instalacin: Esta seccin esta dedicada a visualizar el estado de la instalacin de una forma detallada. Se pude ver el estado de los sensores y de los dispositivos configurados para la zona y el estado en el que se encuentran.
A-2
1 2 5
Con la activacin del estado manual (1) los controles de los dispositivos se habilitarn, una vez habilitados el usuario puede manipular manualmente los dispositivos disponibles en la instalacin.
Las acciones realizadas se reflejaran en el grfico (2), en la base de los controles (3) y en la zona inferior derecha (6), zona dedicada a mostrar detalladamente el estado de la instalacin.
A la misma vez que se habilitan los controles manuales se deshabilita el control automtico de la instalacin dejando de estar operativos los sensores y la programacin configurada. (4)
Los dispositivos disponibles sern aquellos que estn previamente configurados y que aparecen en la zona superior izquierda (5), zona dedicada al control manual de dispositivos. A-3
4 5
6 2 3
Con la activacin del estado automtico (1) de la instalacin se activa el control automtico y se deshabilita el control manual (4).
Las reglas disparadas por el programa se marcan coloreando la lnea correspondiente a la regla disparada (2).
1. La seccin manual (4) en el dispositivo correspondiente a la accin reflejando el valor de la accin tanto grficamente en su correspondiente grfico de dispositivo como en un indicador situado en su parte inferior(6). 2. En la seccin de estados (3) en el mismo formato que en la seccin manual 3. En la seccin grfica (5) mostrando grficamente el estado completo de la zona de una forma visual.
A-4
4. Automatizacin de la instalacin.
La automatizacin de la instalacin responde a un conjunto de reglas y acciones programadas. Este conjunto de reglas y acciones se denomina programa.
En una zona el usuario es el que indica que programa es el que la aplicacin ha de tener en cuanta cuando se active el estado automtico de la instalacin.
Cada regla est formada por un conjunto de condiciones sobre el estado de los sensores, las condiciones responden a tres tipos de operadores lgicos:
Las acciones se asocian a una regla y son ejecutadas cuando las condiciones que componen las reglas se cumplen. Hay tres tipos de acciones:
On: Activacin del dispositivos a una tensin del 100% Off: Desactivacin del dispositivo Dim X: Activacin del dispositivo a una tensin del X%.
Las reglas estn ordenadas por prioridad, ejecutndose segn los siguientes criterios.
1. Si se dan varias reglas cuyas condiciones se cumplan para un mismo evento se ejecuta en primer lugar aquella de mayor prioridad.
A-5
La aplicacin dispone de un generador de programas mediante el cual los usuarios pueden configurar sus propias reglas y acciones para generar sus propios programas.
A-6
5. Configuracin de programas.
Mediante la barra de mens situada en la parte superior de la pantalla se puede acceder a las distintas opciones de configuracin de la instalacin, en este caso PLA que es la que nos concierne.
Esta seccin est dedicada a todo lo que se refiere a la configuracin de la programacin por parte del usuario y es accedida seleccionando Gestin PLA o Nuevo programa.
1 2 1. Seleccin de programas. 2. Creacin de programas. 3. Edicin de programas. 4. Eliminacin de programas. 5. Lista de programas ya cargados en la 3
zona
A-7
6. Creacin de programas.
1. Indicar nmero de sensores y dispositivos que emplea la zona 2. Seleccin de tipo e identificador de los dispositivos del programa 3. Creacin de lneas del programa
Esta es la primera pantalla del proceso de creacin de programas, en ella hemos de especificar la descripcin y el identificador que deseemos darle al programa.
Igualmente hay que indicar tanto el nmero de sensores como el nmero de dispositivos que van a ser utilizados en algn momento del programa.
A-8
Estos nmeros no han de corresponderse con el estado de dispositivos de la zona dado que en caso de ausencia de sensores o dispositivo en la zona, sta lo detectar e impedir el establecimiento del estado automtico permitiendo nicamente el estado manual de control de dispositivos.
Por defecto vienen establecidos un sensor y un dispositivo, sta es la cantidad mnima de sensores y dispositivos para que un programa tenga sentido.
A-9
Identificadores asociados a los sensores Identificadores asociados a los dispositivos Descripcin del sensor Descripcin del dispositivo Tipo de dispositivo
Cuando se active un programa est comprobar los identificadores tanto de los sensores como de los dispositivos instalados y configurados en la zona y los har corresponder con los dispositivos y sensores del programa utilizando como correspondencia que tengan el mismo identificador. Como ya se ha indicado en el punto anterior en caso de que la zona no disponga de los medios utilizados en el programa, ste no podr activarse.
A-10
Discreto: el usuario podr manipular el dispositivo eligiendo la tensin que llega al dispositivo. Los valores tomados oscilarn entre el cero por ciento y el cien por ciento.
ON OFF: El usuario nicamente puede encender o apagar el dispositivo, apagarlo se corresponde con pasarle el cero por ciento de tensin mientras que encenderlo se corresponde con el cien por ciento de la tensin.
A-11
1 4 2 1. Valores de la lnea a. identificador de la lnea b. prioridad de la lnea dentro del programa 2. Regla a. Operacin aritmtica b. Valor del sensor 3. Accin a. Operacin a realizar b. Valor 4. Aadir la regla al programa 3
Como se ve cada est formada por un conjunto de condiciones sobre el estado de los sensores identificados para este programa en los pasos anteriores, las condiciones responden a tres tipos de operadores lgicos: Menor Igual Mayor
Las acciones se asocian a una regla y son ejecutadas cuando las condiciones que componen las reglas se cumplen. Hay tres tipos de acciones: On: Activacin del dispositivos a una tensin del 100% Off: Desactivacin del dispositivo Dim X: Activacin del dispositivo a una tensin del X%.
A-12
1 2
3 4 5 Una vez aadida la lnea de programa sta aparecer dentro del conjunto de lneas que forman el programa (1). Las lneas estn ordenadas por prioridad ya que es por este orden por el que se ejecutarn.
Una lnea puede ser modificada, si seleccionamos la lnea por su identificador y le damos al botn de modificar (2). Acto seguido aparecern los campos de configuracin de la lnea rellenados con los valores de la lnea que se ha seleccionado. Todos los valores son modificables menos el identificador de lnea.
Una vez modificado el valor deseado se volver a pulsar al botn aadir (4) y la lnea quedar modificada.
Tambin se pueden eliminar las lneas que conforman un programa, primero se seleccionarla la lnea a borra y despus se pulsar el botn de eliminar (3). Acto seguido la lnea quedar eliminada del programa y no se mostrar en el conjunto de lneas (1).
Cuando el programa ya est totalmente construido se presionar el botn Aceptar (5) para concluir la operacin de creacin del programa.
A-13
7. Edicin de programas
Pulsando sobre el botn Modificar comenzaremos el proceso de modificacin del programa seleccionado.
Ventana de modificacin:
En esta ventana se muestran las lneas que componen el programa, para modificarlo hemos de seleccionar la lnea por su identificador y le dar al botn de modificar (2).
Acto seguido aparecern los campos de configuracin de la lnea rellenados con los valores de la lnea que se ha seleccionado. Todos los valores son modificables menos el identificador de lnea.
A-14
Tambin se pueden eliminar las lneas que conforman un programa, primero se seleccionarla la lnea a borra y despus se pulsar el botn de eliminar (3). Acto seguido la lnea quedar eliminada del programa y no se mostrar en el conjunto de lneas (1).
Cuando el programa ya est totalmente modificado se presionar el botn Aceptar (5) para concluir la operacin de modificacin del programa. En caso de que el programa est activo en la zona el sistema le comunicar la situacin al usuario, en caso de seguir con la operacin las modificaciones tendrn efecto inmediato sobre la zona.
A-15
8. Eliminacin de programas
El programa quedar eliminado de la lista de programas disponibles para la zona y desaparecer de la lista mostrada.
En caso de que el programa est activo en la zona no podr ser eliminado. Si este es el caso el sistema comunica al usuario que el programa est activo en la zona y que no puede ser eliminado.
1. Paso a control manual de los dispositivos de la instalacin. 2. Configuracin del PLA. 3. Eliminacin del programa.
A-16
9. Activacin de programa.
Mediante la activacin de un programa configuramos que programa es el que queremos que se ocupe de la automatizacin de la zona.
Una vez seleccionada la opcin de activar programa se nos muestra la lista de programas disponibles. En esta lista de puede ver el identificador de programa y su descripcin.
Con la opcin de activar programa nicamente estamos configurando que programa ha de hacerse cargo de la automatizacin de la zona.
A-17
A-18
1 2 5
Si el estado manual (1) est activado, los controles de los dispositivos estarn habilitados y podrn ser manipulados por el usuario.
Discreto: el usuario podr manipular el dispositivo eligiendo la tensin que llega al dispositivo. Los valores tomados oscilarn entre el cero por ciento y el cien por ciento.
ON OFF: El usuario nicamente puede encender o apagar el dispositivo, apagarlo se corresponde con pasarle el cero por ciento de tensin mientras que encenderlo se corresponde con el cien por ciento de la tensin.
A-19
A-20
4 5
7 2 6
Si la instalacin se encuentra en estado automtico (1) podremos hacer uso de los sensores(3) variando su valor y observando como el programa activado lleva a cabo las acciones programadas.
Las reglas disparadas por el programa se marcan coloreando la lnea correspondiente a la regla disparada (2).
Las acciones tomadas sobre los dispositivos se reflejan en: 1. La seccin manual (4) en el dispositivo correspondiente a la accin reflejando el valor de la accin tanto grficamente en su correspondiente grfico de dispositivo como en un indicador situado en su parte inferior(7). 2. En la seccin de estados (6) en el mismo formato que en la seccin manual
A-21
A-22
La ventana nos muestra una lista de los dispositivos actuales de la instalacin ordenados por su identificador. Tambin se muestra el tipo de dispositivo y la descripcin que se le haya dado a este.
A-23
Discreto: el usuario podr manipular el dispositivo eligiendo la tensin que llega al dispositivo. Los valores tomados oscilarn entre el cero por ciento y el cien por ciento.
ON OFF: El usuario nicamente puede encender o apagar el dispositivo, apagarlo se corresponde con pasarle el cero por ciento de tensin mientras que encenderlo se corresponde con el cien por ciento de la tensin.
A-24
El identificador ha de ser nico, en caso de que ya exista un dispositivo con el identificador propuesto el sistema comunicara el fallo y la imposibilidad de aadir el nuevo dispositivo.
El identificador tambin se usa como medio de correspondencia con los identificadores indicados en los programas.
2. Modificar un dispositivo
Primero hemos de seleccionar el dispositivo a modificar, una vez lo tengamos seleccionado pulsamos el botn Modificar y automticamente se rellenarn los campos.
Cuando se hayan modificado todos los campos se pulsar al botn Aadir y el dispositivo quedar modificado.
3. Eliminar un dispositivo
A-25
A-26
La ventana nos muestra una lista de los sensores actuales de la instalacin ordenados por su identificador. Tambin se muestra el tipo de sensores y la descripcin que se le haya dado a este.
Tipo1: se podrn simular distintas cantidades discretas entre cero y cien Tipo2: El usuario nicamente podr seleccionar entre dos estados, apagado y encendido.
A-27
1. Aadir un sensor
El identificador ha de ser nico, en caso de que ya exista un sensor con el identificador propuesto el sistema comunicara el fallo y la imposibilidad de aadir el nuevo dispositivo.
El identificador tambin se usa como medio de correspondencia con los identificadores indicados en los programas.
2. Modificar un sensor
Primero hemos de seleccionar el sensor a modificar, una vez lo tengamos seleccionado pulsamos el botn Modificar y automticamente se rellenarn los campos.
Cuando se hayan modificado todos los campos se pulsar al botn Aadir y el sensor quedar modificado.
A-28
Tanto para modificar como para eliminar, los sensores no han de estar siendo usados por el programa activo en la zona, en dicho caso el sistema comunicar al usuario la imposibilidad de llevar a cabo la operacin solicitada.
A-29