UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INFORMÁTICA
PROYECTO FIN DE CARRERA
AUTOMATIZACIÓN DE PROCESOS INDUSTRIALES.
AUTOR:
JAVIER ORDAX CASSÁ MADRID, JUNIO 2005
Autorizada la entrega del proyecto del alumno: Javier Ordax Cassá
Madrid 23 de Junio del 2005 EL DIRECTOR DEL PROYECTO
Fdo.: José Miguel Ordax Cassá
EL COORDINADOR DEL PROYECTO
Fdo.: David Contreras Bárcena
UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INFORMÁTICA
PROYECTO FIN DE CARRERA
AUTOMATIZACIÓN DE PROCESOS INDUSTRIALES.
AUTOR: Javier Ordax Cassá DIRECTOR: José Miguel Ordax Cassá
•
Gracias a mis padres por haberme traído al mundo, por su cariño, ayuda e impulso en el que me he apoyado para llegar hasta aquí.
•
Gracias a mi hermano José Miguel por toda esa alegría y vitalidad que logra transmitirme y por su apoyo a TODAS horas.
•
Gracias a Cecilia por su cariño y su ayuda en los momentos difíciles.
•
Gracias a Antonio por soportarme y ayudarme.
•
Gracias a Diego por su inestimable colaboración en todas nuestras prácticas.
•
Gracias a David por esa luz que siempre nos ha dejado encendida para guiarnos.
•
Gracias a mis compañeros Javi, Toni, Manu, Ruben, Alex, Jesús, gracias a todos por vuestra gran amistad y colaboración.
Automatización de procesos industriales
Resumen El campo del control y automatización industrial, es un campo implantado con más frecuencia en grandes instalaciones como las cadenas de fabricación de automóviles, las vías férreas o las centrales térmicas y eléctricas, sin embargo en el área de la pequeña y mediana empresa está aun poco desarrollado. Las soluciones desarrolladas para el control y la automatización de pequeñas y medianas instalaciones industriales son poco flexibles y especificas para cada instalación. Este proyecto pretende hacer visible la viabilidad de la implantación de sistemas de control y automatización en este tipo de instalaciones industriales como pueden ser granjas o invernaderos, poniendo énfasis en la replicación. Como principales ventajas de la implantación de sistemas de control y automatización está la reducción de costes, calidad, seguridad así como el aumento y control de la producción, y como ventaja de la replicación la considerable reducción de los costes de diseño, implantación y mantenimiento.
La solución propuesta consiste en un sistema abierto, para el control centralizado de dispositivos electromecánicos. Con capacidad para el control, monitorización y actuación remota haciendo uso de una red TCP/IP como es Internet, sin restricciones en cuanto
al
número
de
dispositivos
o
funcionalidades
que
estos
aporten
independientemente del proveedor de los dispositivos.
El software desarrollado para este propósito recibirá los datos de los dispositivos electrónicos localizados en la instalación industrial, estos datos harán referencia a los distintos parámetros que determinan el estado de la instalación. Con éstos datos tanto el sistema, en modo automático; como el usuario, en modo manual; dispondrán de una información en tiempo real que les permitirá la toma de decisiones adecuadas y eficaces. Una vez tomada la decisión se pondrán en marcha, mediante los controles disponibles en la instalación, los mecanismos necesarios, para corregir o modificar las condiciones requeridas en cada momento con el fin de optimizar su funcionamiento.
i
Automatización de procesos industriales Para cumplir con estos servicios, el sistema tendrá las siguientes funcionalidades: •
Recopilación y acceso en tiempo real de la información referente al estado de la instalación.
•
Actuación de manera inmediata sobre los dispositivos que lo requieren con el fin de mantener el estado optimo de la instalación. Esta actuación sobre los dispositivos puede ser tanto manual como automática. o Modo manual: El usuario a través de los mecanismos proporcionado por el sistema actúa directamente sobre los dispositivos. Esta actuación puede ser: •
Local: Utilizando la aplicación cliente en la propia instalación.
•
Remota: A través de Internet haciendo uso de un navegador.
o Modo automático: Una vez el usuario haya configurado el programa que se encargará del control de la instalación el sistema comunicará los datos recogidos a dicho programa y éste evaluando la situación comunicará al sistema que acciones tomar, en cada momento.
Todas estas funcionalidades están disponibles en modo local y en modo remoto. En la modalidad local el usuario trabajará directamente con el software localizado en la propia instalación mientras que en la modalidad remota el usuario, mediante cualquier navegador y a través de Internet, puede conectar con la aplicación local accediendo así a las funcionalidades proporcionadas por ésta.
Esta automatización en la recogida de datos y en el control de las actuaciones sobre los distintos mecanismos de la instalación permite una reducción en la mano de obra, una utilización adecuada de los materiales, una toma de decisiones eficaz basada en una información histórica completa y en tiempo real así como la realización rápida y eficaz de los procedimientos adoptados. Estas características son las que permiten una mayor cualificación de la mano de obra, la reducción en los costes de materiales de producción y materias primas y un aumento de la producción y con ello de la productividad.
ii
Automatizaciรณn de procesos industriales
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
Automatización de procesos industriales
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
Automatización de procesos industriales
ÍNDICE
AUTOMATIZACIÓN DE PROCESOS INDUSTRIALES. .................................................................i AUTOMATIZACIÓN DE PROCESOS INDUSTRIALES. ...............................................................iv
JUSTIFICACIÓN DEL PROYECTO................................................................... 1 Justificación académica........................................................................................................................1 Justificación económica ........................................................................................................................1
LA AUTOMATIZACIÓN ..................................................................................... 2 1. Introducción......................................................................................................................................2 2. Antecedentes .....................................................................................................................................4 3. Automatización.................................................................................................................................9 4. Tipos de Automatización. ...............................................................................................................11 5. Generalidades del CNC ..................................................................................................................13
TECNOLOGÍA EUROPEAN INSTALLATION BUS (EIB) ............................... 16 1. Introducción.................................................................................................................................... 16 1.1 Automatización y evolución histórica .........................................................................................16 1.2 Servicios y aplicaciones de una instalación automática................................................................18 2. Sistemas automáticos. .....................................................................................................................22 2.1 Sistemas por corrientes portadoras..............................................................................................22 2.2 Sistemas por controlador programable. .......................................................................................24 2.3 Sistema por bus de datos.............................................................................................................25 3. Bus de instalación europeo – EIB ...................................................................................................27 3.1 La EIBA ....................................................................................................................................27 3.2 Generalidades ............................................................................................................................29 3.3 Tecnología EIB..........................................................................................................................34 3.4 Topología de las redes EIB.........................................................................................................39 3.5 Los telegramas ...........................................................................................................................40 3.6 Composición de los nodos ..........................................................................................................43 3.8 Direccionamiento.......................................................................................................................45 3.9 Cuadro técnico EIB....................................................................................................................46 3.10 Programación de una instalación EIB (ETS) .............................................................................47 3.11 Otra tecnología de control distribuida LonWorks (Comparación con EIB).................................49 4. Red domótica EHS..........................................................................................................................53 4.1 Medios físicos de transmisión.....................................................................................................53 4.2 Tipos de unidades.......................................................................................................................54 4.3 Modelos lógicos de comunicación ..............................................................................................57 4.4 Protocolo de comunicaciones...................................................................................................... 58 5. Red Batibus.....................................................................................................................................63
v
Automatización de procesos industriales 6. Convergencia de EHS, EIB Y Batibus............................................................................................64
INTRODUCCIÓN A LA TECNOLOGÍA LONWORKS ..................................... 66 1. Conceptos básico.............................................................................................................................66 1.1 Red de control............................................................................................................................66 1.2 La Plataforma LonWorks ...........................................................................................................68 1.3 Utilización de redes LonWorks...................................................................................................70 1.4 Alcance del estándar................................................................................................................... 72 1.5 Neuronas y su utilización............................................................................................................73 1.6 Protocolo LonWorks ..................................................................................................................74
SISTEMA DE AUTOMATIZACIÓN X10........................................................... 77 1. Introducción.................................................................................................................................... 77 2. Ventajas de x10...............................................................................................................................78 3. Automatización inteligente .............................................................................................................80
LENGUAJE DE PROGRAMACIÓN JAVA ...................................................... 81 1. Introducción a la programación orientada a objetos .....................................................................81 2. Historia de Java ..............................................................................................................................90 3. CARACTERÍSTICAS DE JAVA................................................................................................. 101 3.1 Introducción............................................................................................................................. 101 3.2 Potente..................................................................................................................................... 102 3.3 Simple ..................................................................................................................................... 104 3.4 Interactivo y orientado a red ..................................................................................................... 105 4. Comparativa con otros lenguajes orientados a objeto ................................................................. 111
AUTENTIFICACIÓN MANEJADA POR EL CONTENEDOR EN TOMCAT. . 121 Introducción ..................................................................................................................................... 121 La especificación de Servlets 2.2....................................................................................................... 121 Tipos de autentificación definidos. ................................................................................................. 122 Modos de transporte....................................................................................................................... 123 Dominios de seguridad en Tomcat (server.xml). ........................................................................ 124 tomcat-users.xml............................................................................................................................ 124 Autentificación mediante una Base de Datos .................................................................................. 124 Configuración de una aplicación...................................................................................................... 128 Autentificación BASIC. ................................................................................................................. 128 Autentificación FORM. ................................................................................................................... 130 Problemas con Apache y Tomcat ..................................................................................................... 133
EXTENSIBLE MARKUP LENGUAJE (XML)................................................. 134 SISTEMAS EXPERTOS................................................................................. 171 vi
Automatización de procesos industriales 1. Introducción.................................................................................................................................. 171 2. Definición de Sistema Experto...................................................................................................... 172 3. La reciente historia de los sistemas............................................................................................... 174 4. Usos de un sistema experto........................................................................................................... 176 5. Decisión de aplicación de sistemas expertos ................................................................................. 178 6. Arquitectura y funcionamiento de un sistema experto ................................................................ 180
METODOLOGÍA ............................................................................................ 187 1. Introducción: ................................................................................................................................ 187 2. Metodología de desarrollo: ........................................................................................................... 188 3. Análisis y diseño............................................................................................................................ 191 4. Casos de uso:................................................................................................................................. 191 4.1 Manipular dispositivo............................................................................................................... 192 4.2 Activar estado automático del sistema....................................................................................... 193 4.3 Activar estado manual del sistema ............................................................................................ 195 4.4 Añadir sensor ........................................................................................................................... 196 4.5 Eliminar Sensor........................................................................................................................ 197 4.6 Modificar sensor ...................................................................................................................... 198 4.7 Añadir dispositivo .................................................................................................................... 199 4.8 Eliminar dispositivo ................................................................................................................. 200 4.9 Modificar dispositivo ............................................................................................................... 201 4.10 Crear programa ...................................................................................................................... 202 4.11 Eliminar un programa............................................................................................................. 204 4.12 Modificar un programa........................................................................................................... 205 4.13 Activar un programa............................................................................................................... 207 4.14 Visualización del fichero de log de zona. ................................................................................ 209 4.15 Visualización de los ficheros de log de los dispositivos ........................................................... 210 5. Reglas de negocio.......................................................................................................................... 211 6. Secuencia de eventos:.................................................................................................................... 212 7. Diagramas de Clase ...................................................................................................................... 217 7.1 Diagrama de paquetes............................................................................................................... 217 7.2 Diagrama de clases del paquete: proyecto ................................................................................. 218 7.3 Diagrama de clases del paquete: Dispositivos ........................................................................... 219 7.4 Diagrama de clases del paquete: Dispositivos.eventos ............................................................... 220 7.5 Diagrama de clases del paquete: Sensores................................................................................. 221 7.6 Diagrama de clases del paquete: Sensores.Eventos.................................................................... 222 7.7 Diagrama de clases del paquete: Programación ......................................................................... 223 7.8 Diagrama de clases del paquete: InterfazGráfico ....................................................................... 224 7.9 Diagrama clases del paquete: InterfazGráfico.CreaciónProgramas............................................. 225 7.10 Diagrama de clases del paquete: InterfazGráfico.Configuración .............................................. 226 7.11 Diagrama de clases del paquete: InterfazGráfico.Tabla............................................................ 227 7.12 Diagrama de clases del paquete: XML .................................................................................... 228 7.13 Diagrama de clases del paquete: Logs ..................................................................................... 229 7.14 Diagrama de clases del paquete: Util....................................................................................... 230 8. Diagramas de secuencia................................................................................................................ 231 8.1 Inicio del sistema: Inicio de los dispositivos.............................................................................. 232
vii
Automatización de procesos industriales 8.2 Inicio sistema: Inicio de los sensores ........................................................................................ 233 8.3 Inicio del sistema: Inicio de los programas................................................................................ 234 8.4 Activar automatización: Activar estado automático. .................................................................. 235 8.5 Activar automatización: Activar programa................................................................................ 236 8.6 Activar automatización: Cambio en el estado de un sensor. ....................................................... 237 8.7 Activar control manual: Activar estado manual......................................................................... 238 8.8 Activar control manual: Manipular dispositivo.......................................................................... 239 8.9 Configurar dispositivos: Mostrar configuración dispositivos...................................................... 240 8.10 Configurar dispositivos: Agregar un dispositivo. ..................................................................... 241 8.11 Configurar dispositivos: Modificar un dispositivo. .................................................................. 242 8.12 Configurar dispositivos: Eliminar un dispositivo. .................................................................... 243 8.13 Configurar sensores: Mostrar configuración sensor ................................................................. 244 8.14 Configurar sensores: Agregar un sensor .................................................................................. 245 8.15 Configurar sensores: Modificar un sensor ............................................................................... 246 8.16 Configurar sensores: Eliminar un sensor ................................................................................. 247 8.17 Configurar programas: Mostrar tabla de programas................................................................. 248 8.18 Configuración de programas: Crear un programa .................................................................... 249 8.19 Configuración de programas: Modificar un programa.............................................................. 250 8.20 Configuración de programas: Eliminar un programa ............................................................... 251
DESCRIPCIÓN DEL PROTOPITO ................................................................ 252 1. Dispositivo Bidireccional X10 para PC Modelo CM11A ............................................................. 252 2. Módulo para dispositivos X10 Pro LM14A.................................................................................. 254 3. Módulo de Lámpara casquillo rosca LM15 ................................................................................. 255
PRESUPUESTO ............................................................................................ 257 Fases del desarrollo .......................................................................................................................... 257 Dimensionamiento del equipo .......................................................................................................... 257 Plan de proyecto ............................................................................................................................... 258 Estudio económico............................................................................................................................ 259
CONCLUSIÓN ............................................................................................... 260 BIBLIOGRAFÍA ............................................................................................. 262 APENDICES .................................................................................................. 264 MANUAL DE USUARIO .................................................................................... 1 1. Pantalla principal de la aplicación: ..................................................................................................1 2. Estado manual de la instalación .......................................................................................................3 3. Activar estado automático de la instalación .....................................................................................4 4. Automatización de la instalación......................................................................................................5 5. Configuración de programas............................................................................................................7
viii
Automatización de procesos industriales 6. Creación de programas.....................................................................................................................8 7. Edición de programas.....................................................................................................................14 8. Eliminación de programas..............................................................................................................16 9. Activación de programa..................................................................................................................17 10. Manipulación de dispositivos........................................................................................................19 11. Manipulación de sensores .............................................................................................................21 12. Configuración de dispositivos .......................................................................................................23 13. Configuración de sensores ............................................................................................................27
ix
Automatización de procesos industriales
JUSTIFICACIÓN DEL PROYECTO
Justificación académica 1. Profundizar en los conocimientos sobre Internet 2. Aumentar los conocimientos sobre el manejo del puerto Serie 3. Practicar los conocimientos sobre la comunicación entre aplicaciones 4. Profundizar en la teoría Cliente/Servidor 5. Utilización y estudio del lenguaje Java 6. Desarrollo de aplicaciones en Internet utilizando la plataforma J2EE 7. Aumentar conocimientos sobre la creación de páginas WEB
Justificación económica 1. Mejora en la Utilización de los recursos de producción. 2. Optimización de los costes de las materias primas 3. Reducción en los costes de mano de obra. 4. Mejora en la toma de decisiones 5. Aumento de la eficacia en la consecución de tareas 6. Aumento de la productividad 7. Reducción de riesgos en la producción. 8. Abaratamiento de la solución en base a su replicación.
1
Automatización de procesos industriales
LA AUTOMATIZACIÓN 1. Introducción Por siglos el ser humano ha construido máquinas que imiten las partes del cuerpo humano. Los antiguos egipcios unieron brazos mecánicos a las estatuas de sus dioses. Estos brazos fueron operados por sacerdotes, quienes clamaban que el movimiento de estos era inspiración de sus dioses. Los griegos construyeron estatuas que operaban con sistemas hidráulicas, los cuales se utilizaban para fascinar a los adoradores de los templos. Durante los siglos XVII y XVIII en Europa fueron construidos muñecos mecánicos muy ingeniosos que tenían algunas características de robots. Jacques de Vauncansos construyó varios músicos de tamaño humano a mediados del siglo XVIII. Esencialmente se trataba de robots mecánicos diseñados para un propósito específico: la diversión. En 1805, Henri Maillardert construyó una muñeca mecánica 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 mecánicas de forma humana deben considerarse como inversiones aisladas que reflejan el genio de hombres que se anticiparon a su época. Hubo otras invenciones mecánicas durante la revolución industrial, creadas por mentes de igual genio, muchas de las cuales estaban dirigidas al sector de la producción textil. Entre ellas se puede citar la hiladora giratoria de Hargreaves (1770), la hiladora mecánica de Crompton (1779), el telar mecánico de Cartwright (1785), el telar de Jacquard (1801), y otros. El desarrollo en la tecnología, donde se incluyen las poderosas computadoras electrónicas, los actuadores de control retroalimentados, transmisión de potencia a través de engranes, y la tecnología en sensores han contribuido a flexibilizar los mecanismos autómatas para desempeñar tareas dentro de la industria. Son varios los factores que intervienen para que se desarrollaran los primeros robots en la década de los 50's. La investigación en inteligencia artificial desarrolló maneras de emular el
2
Automatización de procesos industriales procesamiento de información humana con computadoras electrónicas e inventó una variedad de mecanismos para probar sus teorías. Como se ha visto, las tendencias de globalización y segmentación internacional de los mercados son cada vez más acentuadas. Y como estrategia para enfrentar este nuevo escenario, la automatización representa una alternativa que es necesario considerar. Los países de mayor desarrollo, poseen una gran experiencia en cuanto a automatización se refiere y los problemas que ellos enfrentan en la actualidad son de características distintas a los nuestros. Por lo cual es necesario precisar correctamente ambas perspectivas.
3
Automatización de procesos industriales
2. Antecedentes Las ideas y las invenciones de muchos matemáticos, científicos, e ingenieros allanaron el camino para el desarrollo de la computadora moderna. En un sentido, la computadora tiene realmente tres fechas una como calculadora mecánica, cerca de 500 a.c. , otra como concepto (1833), y la tercera del nacimiento como la computadora digital moderna (1946). La primera calculadora mecánica, fue un sistema de barras y de bolas móviles llamados el ábaco, fue ideada en Babilonia alrededor de 500 a.c. El ábaco proporcionó el método más rápido de calcular hasta 1642, cuando el científico francés Pascal Blaise inventó una calculadora hecha de ruedas y de dientes. Cuando la rueda de las unidades se movía una revolución (más allá de diez muescas), se movía la muesca de la rueda de las decenas; cuando la rueda de las decenas se movía una revolución, se movía la muesca de la rueda de los centenares; etcétera. Mejoras en la calculadora mecánica de Pascal fueron llevadas a cabo por los científicos 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 matemático británico Charles Babbage. Su diseño de un "motor analítico" contuvo todos los elementos necesarios de una computadora moderna: dispositivos de entrada de información, un almacén (memoria), un molino (unidad que cómputo), una unidad de control, y dispositivos de salida. El diseño llevó más de 50,000 piezas móviles en una máquina de vapor tan grande como una locomotora. La mayoría de las acciones del motor analítico eran realizadas utilizando tarjetas perforadas, una adaptación al método que ya era usado para controlar máquinas de cosido automático de seda. Aunque Babbage trabajó en el motor analítico por casi 40 años, él nunca construyó realmente una máquina de trabajo. En 1889 Herman Hollerith, inventor americano, patentó una máquina calculadora que contó, comparó y ordenó la información guardada en tarjetas perforadas. Cuando las tarjetas eran colocadas en su máquina, presionaban una serie de contactos del metal que correspondía a la red de perforaciones potenciales. Cuando un contacto encontraba en un agujero (perforado para representar la edad, ocupación, etcétera), cerraba un circuito eléctrico y aumentaba la cuenta para esa categoría. Su
4
Automatización de procesos industriales máquina primero fue utilizada para ayudar a clasificar la información estadística para el censo 1890 de Estados Unidos. En 1896 Hollerith fundó la Compañía de Máquinas de Tabulación para producir máquinas similares. En 1924, después una numerosa fusión, la compañía cambió su nombre a International Bussines Machine Corporation (IBM). IBM hizo de la maquinaria de tarjetas de oficina un negocio dominante en los sistemas de información hasta que tarde en los años 60, cuando una nueva generación de computadoras hizo obsoleta a la máquina de tarjetas. En los últimos 20 y 30 años, varios nuevos tipos de calculadoras fueron construidos. Vannevar Bush, ingeniero americano, desarrolló el analizador diferenciado, la primera calculadora capaz de solucionar ecuaciones diferenciales. Su máquina calculaba con números decimales y por lo tanto requirió centenares de engranajes y ejes para representar los varios movimientos y lazos de los diez dígitos. En 1939 los físicos americanos John V. Atanasoff y Clifford Berry produjeron el prototipo de una computadora en el sistema de numeración binario. Atanasoff pensaba que un número binario era mejor para satisfacer los cómputos que los números decimales porque dos dígitos 1 y 0 pueden ser representados fácilmente por un circuito eléctrico, que sería encendido o apagado.
Además, George Boole, matemático
británico, había 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 investigación montados durante la Segunda Guerra Mundial. Desde 1941 el inventor alemán Konrad Zuse produjo una computadora operacional, la Z3, que fue utilizado en los diseños de aviones y de misiles. El gobierno alemán rechazó ayudarle a refinar la máquina, sin embargo, la computadora nunca alcanzó su potencia completa. Un matemático de Harvard nombrado Howard Aiken dirigió el desarrollo de la Calculadora Controlada de Secuencia Automática de Harvard-IBM, conocida más adelante como la Marca I una computadora electrónica que utilizó 3,304 réles electromecánicos como interruptores encendido-apagado.
Terminada en 1944, su
5
Automatización de procesos industriales función primaria era crear las tablas balísticas para hacer la artillería de la marina más exacta. La primera computadora completamente electrónica, que utilizó los tubos de en vez de los réles mecánicos, era tan secreta que su existencia no fue revelada hasta décadas después de que fuera construida.
Inventada por el matemático inglés Alan
Turing y puesta en operación antes de 1943, el Colossus era la computadora con que los criptógrafos británicos rompían los códigos secretos militares de los alemanes. Como Colossus fue diseñado para solamente una tarea, la distinción como la primera computadora electrónica moderno de uso general pertenece correctamente a ENIAC (Electronic Numerical Integrator and Calculator). Diseñada por dos ingenieros americanos, Juan W. Mauchly y J. Presper Eckert, Jr., ENIAC entró servicio en la universidad de Pennsylvania en 1946. Su construcción era una enorme hazaña de ingeniería la máquina de 30 toneladas contuvo 17,468 tubos de vacío conectados por 500 millas (800 kilómetros) de cableado. ENIAC realizó 100,000 operaciones por segundo. La invención del transistor en 1948 trajo una revolución en el desarrollo de la computadora. Los tubos de vacío calientes, no fiables fueron substituidos por los transistores pequeños del germanio (luego silicio) que generaban poco calor con todo funcionado perfectamente como los interruptores o los amplificadores. El descubrimiento en la miniaturización 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 electrónico. Usando chips de silicio menos costosos, los ingenieros tuvieron éxito en poner más y más componentes electrónicos en cada chip. El desarrollo de la integración en gran escala (LSI) permitió abarrotar centenares de componentes en un chip; la integración a muy gran escala (VLSI) hizo crecer ese número a los centenares de millares; y los ingenieros proyectan que las técnicas de integración ultra grande (ULSI) permitirán ser colocados alrededor de 10 millones de componentes en un microchip el tamaño de una uña. Otra revolución en tecnología del microchip ocurrió en 1971 en que el ingeniero americano Marcian E. Hoff combinó los elementos básicos de una computadora en un
6
Automatización de procesos industriales chip de silicio minúsculo, que llamó microprocesador.
Este microprocesador Intel
4004 y centenares de variaciones que las siguieron son las computadoras dedicadas que hacen funcionar millares de productos modernos y forman el corazón de casi cada computadora electrónica de uso general. A mediados de los años setenta, los microchips y los microprocesadores habían reducido drásticamente el costo de los millares de componentes electrónicos requeridos en un computadora. La primera computadora de escritorio accesible diseñada específicamente 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 electrónico 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 compañía pequeña 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ó drásticamente. La computadora personal de hoy es 200 veces más rápida que ENIAC, 3,000 veces más ligera, y vario millones de dólares más barata. En la rápida sucesión de computadoras se ha contraído del modelo de escritorio a la computadora portátil y finalmente a la del tamaño de la palma. Con algunas computadoras personales la gente puede incluso escribir directamente en una pantalla de cristal líquido usando una aguja electrónica pequeña y las palabras aparecerán en la pantalla en mecanografiado limpio. La investigación en inteligencia artificial está procurando diseñar 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 decisión de humanos expertos, ya existen y exhiben los
7
Automatización de procesos industriales componentes segundos y terceros de la inteligencia. INTERNIST, por ejemplo, es un sistema informático que puede diagnosticar 550 enfermedades y desórdenes humanos con exactitud tal como la de los doctores humanos expertos. Hace veinte años el espacio y la distancia eran obstáculos formidables de lo que podía o no hacerse con la computadora. Pero hoy en día la micro miniaturización y las comunicaciones de datos han eliminado estos obstáculos. La micro miniaturización de la circuitería electrónica ha hecho posible colocar computadoras en relojes de pulsera, y los satélites de comunicaciones permiten que computadoras ubicadas en extremos opuestos del globo se comuniquen e intercambien información una con otra. Estas páginas están disponibles para cualquier persona a través del INTERNET alrededor del mundo. Ahora la puerta está abierta y el futuro es simplemente impredecible. La extraordinaria versatilidad de las computadoras en todos los campos de la actividad humana, así como su progresiva miniaturización han hecho posible traspasar el umbral de los grandes centros de cómputo y el uso restringido de una casta de especialistas de programadores, para convertirse en la herramienta obligada de cualquier persona.
8
Automatización de procesos industriales
3. Automatización La historia de la automatización industrial está caracterizada por períodos de constantes innovaciones tecnológicas. Esto se debe a que las técnicas de automatización están muy ligadas a los sucesos económicos mundiales. El uso de robots industriales junto con los sistemas de diseño asistidos por computadora (CAD), y los sistemas de fabricación asistidos por computadora (CAM), son la última tendencia y luego se cargaban en el robot inicia en automatización de los procesos de fabricación. Éstas tecnologías conducen a la automatización industrial a otra transición, de alcances aún desconocidos. Aunque el crecimiento del mercado de la industria Robótica ha sido lento en comparación con los primeros años de la década de los 80´s, de acuerdo a algunas predicciones, la industria de la robótica está en su infancia. Ya sea que éstas predicciones se realicen completamente, o no, es claro que la industria robótica, 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 precisión. Se refleja el hecho de que en los 80´s las tareas relativamente simples como las máquinas de inspección, transferencia de materiales, pintado automotriz, y soldadura son económicamente viables para ser robotizadas. Los análisis de mercado en cuanto a fabricación predicen que en ésta década y en las posteriores los robots industriales incrementaran su campo de aplicación, esto debido a los avances tecnológicos en sensorica, los cuales permitirán tareas mas sofisticadas como el ensamble de materiales. Como se ha observado la automatización y la robótica son dos tecnologías estrechamente relacionadas. En un contexto industrial se puede definir la automatización como una tecnología que está relacionada con el empleo de sistemas mecánicos-eléctricos basados en computadoras para la operación y control de la producción. En consecuencia la robótica es una forma de automatización industrial. Hay tres clases muy amplias de automatización industrial: Automatización fija, automatización programable, y automatización flexible.
9
Automatización de procesos industriales La automatización fija se utiliza cuando el volumen de producción es muy alto, y por tanto se puede justificar económicamente el alto costo del diseño de equipo especializado para procesar el producto, con un rendimiento alto y tasas de producción elevadas. Además de esto, otro inconveniente de la automatización fija es su ciclo de vida que va de acuerdo a la vigencia del producto en el mercado. La automatización programable se emplea cuando el volumen de producción es relativamente bajo y hay una diversidad de producción a obtener. En este caso el equipo de producción es diseñado para adaptarse a la variaciones de configuración del producto; ésta adaptación se realiza por medio de un programa (Software). Por su parte la automatización flexible es más adecuada para un rango de producción medio. Estos sistemas flexibles poseen características de la automatización fija y de la automatización programada. Los sistemas flexibles suelen estar constituidos por una serie de estaciones de trabajo interconectadas entre si por sistemas de almacenamiento y manipulación de materiales, controlados en su conjunto por una computadora. De los tres tipos de automatización, la robótica coincide más estrechamente con la automatización programable.
10
Automatización de procesos industriales
4. Tipos de Automatización. Existen cinco formas de automatizar en la industria moderna, de modo que se deberá analizar cada situación a fin de decidir correctamente el esquema más adecuado. Los tipos de automatización son: •
Control Automático de Procesos
•
El Procesamiento Electrónico de Datos
•
La Automatización Fija
•
El Control Numérico Computarizado
•
La Automatización Flexible.
El Control Automático de Procesos, se refiere usualmente al manejo de procesos caracterizados de diversos tipos de cambios (generalmente químicos y físicos); un ejemplo de esto lo podría ser el proceso de refinación de petróleo. El Proceso Electrónico de Datos frecuentemente es relacionado con los sistemas de información, centros de cómputo, etc. Sin embargo en la actualidad también se considera dentro de esto la obtención, análisis y registros de datos a través de interfases y computadores. La Automatización Fija, es aquella asociada al empleo de sistemas lógicos tales como: los sistemas de relevadores y compuertas lógicas; sin embargo estos sistemas se han ido flexibilizando al introducir algunos elementos de programación como en el caso de los (PLC'S) O Controladores Lógicos Programables. Un mayor nivel de flexibilidad lo poseen las máquinas de control numérico computarizado. Este tipo de control se ha aplicado con éxito a Máquinas de Herramientas de Control Numérico (MHCN). Entre las MHCN podemos mencionar: •
Fresadoras CNC.
•
Tornos CNC.
11
Automatización de procesos industriales •
Máquinas de Electro-erosionado
•
Máquinas de Corte por Hilo, etc.
El mayor grado de flexibilidad en cuanto a automatización se refiere es el de los Robots industriales que en forma más genérica se les denomina como "Celdas de Manufactura Flexible".
12
Automatización de procesos industriales
5. Generalidades del CNC Actualmente existe un ambiente de grandes expectativas e incertidumbre. Mucho de esto se da por los rápidos cambios de la tecnología actual, pues estos no permiten asimilarla en forma adecuada de modo que es muy difícil sacar su mejor provecho. También surgen cambios rápidos en el orden económico y político los cuales en sociedades como la nuestra (países en desarrollo) inhiben el surgimiento de soluciones autóctonas o propias para nuestros problemas más fundamentales. Entre todos estos cambios uno de los de mayor influencia lo será sin duda el desarrollo de las nuevas políticas mundiales de mercados abiertos y globalización. Todo esto habla de una libre competencia y surge la necesidad de adecuar nuestras industrias a fin de que puedan satisfacer el reto de los próximos años. Una opción o alternativa frente a esto es la reconversión de las industrias introduciendo el elemento de la automatización. Sin embargo se debe hacerse en la forma más adecuada de modo que se pueda absorber gradualmente la nueva tecnología en un tiempo adecuado; todo esto sin olvidar los factores de rendimiento de la inversión y capacidad de producción. Uno de los elementos importantes dentro de este resurgir de la automatización son la Máquinas de Herramientas de Control Numérico Computarizado, las cuales brindan algunas ventajas adicionales que son de importancia considerar detenidamente, lo cual es el propósito de este escrito. Desde el Fortune hasta el OMNI, la riada de artículos sobre logros del CAD/CAM no tiene fin. Con la misma rapidez aparecen los acrónimos relacionados con él, tales como CIM, CAE, CNC, FMS y muchos mas. Como resultado, muchas personas se asustan, están confundidas y algo temerosas de esta nueva tecnología. Los trabajadores de plantas industriales atrasadas intentan competir en un mercado mundial que cada vez ofrece mejor calidad y precios más bajos. Antes del siglo XX, la mayor parte de las tentativas de automatización resultaron un fracaso. Muchas de estas tentativas tropezaron con una fuerte oposición por parte de los trabajadores. Por ejemplo, en Inglaterra a principios del siglo XIX los Luddites destruyeron maquinaria textil como protesta por la reducción de salarios y el desempleo.
13
Automatización de procesos industriales Sin embargo, a la vuelta de un siglo, la producción en masa se convirtió en la esencia del modo de vida americano y ahora está pasando a ser el modo de vida universal. Hoy en día vuelve a haber enemigos de la automatización, y no solamente en la clase trabajadora. Muchos responsables de ingeniería y fabricación están desconcertados ante la realidad de la computerización. Aunque mucha gente usa los término CAD/CAM para las estaciones gráficas, el nombre es un acrónimo derivado del ingles COMPUTER Aided Design y Computer Aided Manufacturing (Diseño Asistido por Computadora y Fabricación Asistida por Computadora). CAD/CAM son disciplinas distintas. En realidad, CAD/CAM es un matrimonio entre numerosas disciplinas de ingeniería y fabricación. En una expresión más simple, es una comunicación computarizada y una función de diseño para y entre ingenieros de fabricación. Si lo llevamos a sus últimos extremos, podemos incluir en él casi todas las etapas de fabricación y gestión. En este caso, quedarían incluidos el marketing, ofimática, contabilidad, control de calidad y casi todo aquello que pudiera tener relación con una base de datos centralizada. En general, podemos interpretar el prefijo CA como Asistido por Computador y sinónimo de automatización. Algunas de las funciones más comunes del CAD son el modelado geométrico, análisis, prueba, delineación, y documentación. El CAM, por su parte, incluye control numérico, robótica, planificación y control de fabricación. Ambas disciplinas están interrelacionadas por una base de datos común. El concepto de tecnología de grupo ha resultado de interese para muy distintas personas: ingenieros de diseño: ingenieros de fabricación, diseñadores y planificadores de procesos industriales e incluso agentes de compra. Permite al ingeniero un acceso inmediato a partes ya diseñadas similares a aquella en la que se encuentran trabajando, de forma que no precisa rediseñarla. El ingeniero de diseño puede estudiar diseños previos y limitarse a menudo a hacer cambios en lugar de uno nuevo. Para el planificador de procesos industriales, los diseños estandarizados hacen que la estructuración y encaminamiento de las partes resulten mucho mas fáciles. Los ingenieros de fabricación comprueban que los costes de estampación y fijado se
14
Automatización de procesos industriales reducen, así como el tiempo de organización. La GT permite que el agente de compras consiga abaratamientos al poder adquirir un gran número de piezas iguales cada vez.
15
Automatización de procesos industriales
TECNOLOGÍA EUROPEAN INSTALLATION BUS (EIB)
1. Introducción 1.1 Automatización y evolución histórica Es frecuente encontrar el término “inteligente” aplicado a un edificio, siendo, en muchas ocasiones, una utilización del término poco apropiada. Los inicios de su uso hay que buscarlos en la ciencia informática, 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 informática en los últimos tiempos: el microprocesador. La incorporación de microprocesadores a distintos equipos ha hecho que se extienda el término “inteligentes” aplicado a los mismos.
Por otro lado,
la paulatina convergencia
de
la
informática
y las
telecomunicaciones, provocada tanto por la aplicación de tecnologías digitales a las comunicaciones (lo que sería la informatización de las telecomunicaciones) como por la necesidad de que los ordenadores puedan transmitir y recibir datos de otros equipos electrónicos, hace que, de hecho, no se hable separadamente de informática y telecomunicaciones, sino del conjunto de ambas como de las Nuevas Tecnologías de la Información (NTI). En este contexto, una vivienda puede ser denominada “inteligente” cuando a sus equipos e instalaciones tradicionales se incorporan nuevas tecnologías de información.
Se utilizan también otros términos para describir este concepto, como el de “vivienda automatizada” o expresiones mucho más genéricas, como la de “sistemas domésticos”. Pero el término más utilizado es el de “domótica”, aún siendo el más ambiguo en cuanto a los sistemas inteligentes se refiere. Es un término que proviene del francés domotique, como unión de la palabra latina domus (casa) y robotique (robótica). 16
Automatización de procesos industriales
Esto es, la robotización de la vivienda, o mejor dicho, la automatización del hogar. Sin embargo, este término no es bien acogido por parte de ciertos sectores. Se debe ante todo a que la domótica no ha evolucionado tan bien como se esperaba en el mercado español, y el término suena también, en algunos casos a fracaso, lujo inútil, sistemas que fallan y alto precio. Pero cada vez el término domótica se incorpora en el vocabulario técnico, además de tener un significado y una definición, (Domótica: concepto de vivienda que integra todos los automatismos en materia de seguridad, gestión de energía, comunicaciones...) por lo que hoy en día está casi plenamente aceptada.
El desarrollo tecnológico y la convergencia entre la informática y las comunicaciones posibilita, de manera sencilla, la implantación de los sistemas domóticos en viviendas y edificios. En poco tiempo, la domótica ha evolucionado considerablemente en base a una serie de factores:
Mayor calidad de vida, aumentando el bienestar y reduciendo el esfuerzo físico, el trabajo rutinario y el trabajo improductivo.
-
La funcionalidad en edificios.
-
El ahorro energético.
-
Comunicación de la vivienda con el exterior.
-
Todas estas ventajas que presenta la instalación domótica debe, además, ir acompañado de una interface de usuario sencillo, de fácil manejo y comprensión.
Dentro de los diferentes sistemas domóticos existentes este trabajo se centra en el estudio del sistema por bus de datos EIB. Pero antes de comentar sus características veremos los diferentes servicios y aplicaciones que debe de cumplir un sistema domótico, para ver si el EIB las cumple, al igual que una pequeña referencia a los otros tipos de sistemas existentes.
17
Automatización de procesos industriales
1.2 Servicios y aplicaciones de una instalación automática. Tal como se ha comentado, existe una gran variedad de servicios y aplicaciones destinados a las viviendas domóticas, lo que dificulta realizar una descripción exhaustiva de todas ellas. Pero todas esas tareas pueden agruparse en cuatro áreas funcionales.
A) La gestión de energía.
Con la gestión de la energía se busca optimizar el consumo energético en la vivienda. Para ello puede disponerse de un sistema de gestión de cargas eléctricas mediante el cual se desconecten de un modo selectivo y programado un cierto número de equipos domésticos según un ciclo preestablecido con el fin de no superar la potencia eléctrica contratada. Así, por ejemplo, si un lavavajillas tuviese una fase crítica en su ciclo de funcionamiento, el sistema de gestión de cargas podría parar momentáneamente el uso de una lavadora hasta que dicha fase no haya terminado.
La ventaja de este sistema es, además de reducir la potencia eléctrica contratada, evitar sobrecargas en el de distribución eléctrica.
También se puede llevar a cabo la utilización de energías renovables generadas en la propia vivienda, tanto con sistemas activos como pasivos, como la utilización de la energía solar a baja temperatura o como la recuperación de energías residuales generadas en el propio edificio, así como la utilización de energías alternativas como la solar o eólica 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 energía eléctrica sea más barata (tarifa nocturna).
18
Automatización de procesos industriales Por otra parte, sistemas eficientes de climatización garantizan el nivel de confort deseado por el usuario con el mínimo gasto de energía. Una sonda de temperatura exterior a la vivienda regulará el ritmo de trabajo de los mismos, mientras que sondas de temperatura interiores permitirán la zonificación de la climatización disponiendo niveles de temperatura distintas para cada una de las estancias de la vivienda. B) Gestión de seguridad.
Tiene como objetivo la protección tanto de personas como de bienes. Las funciones de seguridad que incorporan casi todos los sistemas domóticos se realizan del mismo modo que cualquier otra función que puedan realizar. Es decir, el sistema de control, ya sea centralizado o descentralizado, recibe un conjunto de señales de los detectores periféricos y envía señales a sus actuadotes (activación de una alarma, encendido de una luz, envío de una llamada telefónica...). Físicamente, esta comunicación se realiza dependiendo de la tipología de cableado elegida: punto-apunto, bus o portadoras.
Cuando se produce una intrusión en la vivienda, detectores de presencia distribuidos en lugares estratégicos detectan al intruso, activando el sistema de alarma. Como respuesta a tal intrusión, se activará una sirena, a la vez que un transmisor telefónico avisará al usuario de la intromisión mediante un mensaje hablado que llegará al teléfono indicado. Estos números de teléfono serán particulares, y nunca pueden ser los correspondientes al del servicio de bomberos, ni hospitales, ni policía. Cuando el usuario esté ausente, podrá simular su presencia mediante la activación programada de luces, radio, subida y bajada de persianas... De esta manera, la probabilidad de una intrusión 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-válvula, 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 harán que se activen las alarmas y avisarán, vía red telefónica a los bomberos.
19
Automatización de procesos industriales Dentro de esta área funcional, existen aplicaciones que hacen referencia a la seguridad personal del usuario en cuanto a su salud. Por ejemplo, si un miembro de la familia se encuentra indispuesto, puede utilizar un pulsador portátil o fijo que activará una alarma cuya respuesta sea enviar una llamada telefónica a un número indicado: un vecino, un centro médico... C) Automatización de las tareas domésticas.
Con la automatización de algunas tareas domésticas se pretende aumentar el nivel de confort del usuario. Es un grupo muy grande y recoge aplicaciones de muy distinta índole, como la comprobación del correcto funcionamiento de los sistemas. Por ejemplo, si mientras estamos viendo la televisión llaman a la puerta será posible ver al visitante en una pequeña ventana que se abrirá en una esquina del televisor, y actuar sobre la cerradura eléctrica de la puerta para permitir su entrada, por ejemplo mediante un terminal telefónico.
Las persianas pueden gobernarse cómodamente mediante simples mandos a distancia de forma individual o colectiva. También puede instalarse una red de aspiración centralizada con tomas distribuidas por el inmueble. La iluminación del exterior de la vivienda se activará automáticamente 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 automáticamente según el grado e humedad del suelo y según un horario preestablecido.
D) La comunicación.
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 calefacción o cualquier equipo doméstico de interés para el usuario con una simple llamada telefónica. Además, algunas aplicaciones, como ya explicamos antes, requieren una comunicación hacia el exterior, como el caso de mensajes de auxilio o intrusión.
20
Automatización de procesos industriales Por otra parte, el uso de las redes de telecomunicación actuales permiten disfrutar de servicios telemáticos para el hogar, como el telecontrol, que permiten el control y gestión remotos de algunos sistemas o equipos tanto desde el interior como desde fuera del hogar, incorporando dentro de este concepto aspectos relacionados con la seguridad, alarmas... También la tele-medida del consumo de servicios públicos, tales como agua, gas o energía eléctrica, cuyas aplicaciones pueden permitir el conocimiento de los consumos específicos de los equipos, la limitación en función de las distintas tarifas horarias, etc. Otro servicio sería la tele-formación, mediante el cual programas de educación pueden llegar al hogar a través de distintos medios (vía satélite, radiodifusión, red telefónica, televisión por cable...) y que se pueden complementar con otras herramientas, como el vídeo interactivo, etc.
21
Automatización de procesos industriales
2. Sistemas automáticos. Existen diferentes sistemas domóticos. Dentro de los sistemas actuales los más relevantes son el sistema por corrientes portadoras, el sistema por controlador programable y el sistema por bus de datos. Haremos una pequeña introducción a cada uno de ellos.
2.1 Sistemas por corrientes portadoras. Este tipo de sistema lo podemos estudiar mediante el estándar que más difusión tiene, el X-10. Es un sistema descentralizado y configurable (no programable). La filosofía fundamental de diseño de X-10 es la de que los productos puedan interoperar entre ellos, y la compatibilidad con los productos anteriores de la misma gama, es decir, equipos instalados hace 20 años siguen funcionando con la gama actual. Este sistema ha sido desarrollado para ser flexible y fácil de usar. Se puede empezar con un producto en particular, por ejemplo un mando a distancia, y expandir luego el sistema para incluir la seguridad o el control con el ordenador, siempre que se desee, con componentes fáciles de instalar y que no requieren cableados especiales.
El sistema X-10 proporciona a los usuarios facilidad de manejo, a los instaladores la flexibilidad y capacidad de crecimiento y la solución de problemas economizando proyectos.
Los fundadores de X-10 establecieron ciertos principios estratégicos que permanecen a pesar del paso de los años, como el de diseñar productos que incluyan circuitos integrados propios cumpliendo objetivos de rendimiento o el de diseñar productos para un amplio sector del mercado, con un bajo coste de manufacturación.
Siguiendo estos principios y como X-10 tiene patentes en aspectos claves de la tecnología PLC (Power Line Carrier, transmisión por corrientes portadoras), no han
22
Automatización de procesos industriales tenido competidores desde los primeros productos X-10 introducidos en el mercado en 1978.
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 máximo de 100 seg desde el paso por el cero de la corriente alterna. El máximo retraso entre la entrada de la curva de la señal 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 trifásico.
23
Automatización de procesos industriales
2.2 Sistemas por controlador programable. Uno de estos sistemas es el Simón VIS. Es un sistema centralizado que está orientado a la gestión de pequeñas y medianas instalaciones. El sistema cuenta con una serie de elementos para interconexionarse entre sí, pudiendo instalarse a distancia unos elementos de otros. No es necesario disponer de un cuadro eléctrico exclusivo para los elementos que los componen, sino que se podrán distribuir en distintos cuadros eléctricos.
El Modulo de Control es programable y en él se procesa la información procedente de las entradas y se ejecutarán las acciones definidas en la programación introducida.
La herramienta de programación será un ordenador personal provisto del software terminal Simon VIS (TermVIS). Hay dos tipos de módulos de entradas, uno de 230 V c.a., con 8 entradas con un neutro común, y otro de 24 V c.c., con 16 entradas. De modo similar hay 3 tipos de módulos 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. También existen diversos complementos para incrementar las prestaciones de la instalación, como el módulo de temporizadores o el de módem.
24
Automatización de procesos industriales
2.3 Sistema por bus de datos. El EIB, sistema que analizaremos en este trabajo, es uno de los sistemas por bus de datos más utilizados. Antes de comenzar con su exposición explicaremos algunas de las ventajas e inconvenientes que tienen los buses con respecto a los otros sistemas vistos en los apartados anteriores.
Las redes o buses domóticos, (los sistemas basados en redes de transmisión de información) 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 características exigidas a un sistema domótico y como se adapta el bus.
-
Interacción entre unidades. La característica más importante ofrecida por las redes estriba en la infraestructura de comunicaciones de propósito general que puede ser usada por las diferentes aplicaciones o dispositivos electrodomésticos sin inferir unas con otras. Una red es capaz de reducir enormemente el cableado existente en las instalaciones actuales, además de permitir la interacción entre áreas de aplicación (no existente en sistemas convencionales); con mucho menos cableado se obtiene incluso más funcionalidad.
-
Ampliabilidad. Se quiere indicar la facilidad de añadir nuevos dispositivos al sistema domótico con un mínimo coste económico y de esfuerzo por parte de instaladores y usuarios. Con los buses el problema se reduce drásticamente, 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 conexión al bus o bien empalmar desde cualquiera de los existentes. Incluso es válido un enchufe múltiple donde conectan cuantos dispositivos queramos. Existe una gran flexibilidad a este respecto.
25
Automatización de procesos industriales -
Sencillez de instalación. El coste de instalación de cables y conectores normalizados debe mantenerse en el mínimo posible. Una red debería prestar todos sus servicios a través del menor número de conectores de características distintas. Sería óptimo obtener todos los servicios a través, por ejemplo, de un conector único.
-
Ubicación flexible de los dispositivos. Un bus ofrece una infraestructura de control de propósito 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 ubicación. 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 instalación 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 ubicación.
En el esquema se ve un ejemplo de cómo 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 información de los sensores de presencia y activa la sirena según la programación existente.
26
Automatización de procesos industriales
3. Bus de instalación europeo – EIB El “European Installation Bus” o “Bus de Instalación Europeo” o “EIB”, es el sistema por bus de datos más utilizado y difundido actualmente para el control y la gestión de edificios.
Para el desarrollo y promoción del sistema EIB se ha fundado en Europa una asociación de más de setenta firmas fabricantes de material eléctrico denominada EIBA.
3.1 La EIBA La EIBA (“European Installation Bus Association” o asociación del bus de instalación europeo) es la organización que reúne a las empresas punteras en la técnica de instalación eléctrica 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 según la legislación belga. Más de 70 miembros, que como fabricantes cubren el 80% de la demanda de aparatos de instalación eléctrica 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 símbolo visible de la asociación es la marca registrada "EIB". El cumplimiento por los productos con los estándares requeridos por EIB, se comprueba en laboratorios independientes. El logotipo EIB ofrece de esta forma, todas las garantías de plena compatibilidad, con que se obliga a cada fabricante; así se consigue una plena compatibilidad entre elementos de distintos fabricantes.
27
Automatización de procesos industriales Estas exigencias las realiza la EIBA especialmente, pues ella, según se autodefine: -
fija directrices técnicas para el sistema y los productos, además de establecer prescripciones de calidad e instrucciones de ensayo.
-
pone a disposición de las empresas asociadas y de sus participadas en las que posean la mayoría, así como de las licenciatarias, esto es, los colaboradores EIBA, el "cómo-hacer" (know-how) actual y futuro del sistema.
-
encarga a laboratorios de ensayo la realización de pruebas de calidad.
-
está facultada, en caso de resultados de ensayo positivos, a conceder a los colaboradores EIBA, una licencia de marca "EIB".
-
colabora activamente en la normalización a través de las empresas asociadas, y adapta el sistema de Bus a las normas vigentes.
-
promueve contactos con importantes gremios y proyectos nacionales e internacionales.
Y aunque todos los miembros de la EIBA se han puesto de acuerdo sobre un estándar unitario, se ha mantenido la competencia: los profesionales y los usuarios continúan disponiendo de la libre elección de los productos de diferentes fabricantes y de las soluciones técnicas.
28
Automatización de procesos industriales
3.2 Generalidades El EIB es un sistema de control de instalaciones por Bus de datos.
Dentro del grupo de los equipos domóticos 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 haría caer toda la instalación, 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 según las consignas de actuación que se le hayan programado durante su instalación. 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 electrónica con un microprocesador y las memorias correspondientes.
El sistema EIB nace para hacer frente a los mercados japonés 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 tensión de 24 V en corriente continua. El cometido de este bus es doble:
-
Por una parte, suministra la alimentación a los componentes del sistema, con una tensión adecuada para su funcionamiento.
-
Por otra, a través de él se transmite el telegrama codificado para la comunicación entre los componentes.
Los componentes del sistema EIB se dividen en tres familias: Los sensores, los actuadores y los aparatos básicos y accesorios. Sensores son aquellos que envían ordenes manual o automáticamente a través del bus, por ejemplo pulsadores, termostatos... Los actuadores son los que reciben esas órdenes y las ejecutan, por ejemplo salidas primarias (pequeños contactores), interruptores de persianas, reguladores,... Los aparatos básicos y accesorios no realiza funciones de gobierno ni de
29
Automatización de procesos industriales control, su única misión es la de suministrar energía eléctrica a los componentes a través del bus y servir a la vez como apoyo físico para la propagación de telegramas de órdenes; son, por ejemplo, las fuentes alimentación, boinas, perfiles de datos, conectores,...
La instalación más sencilla puede ser sólo de dos componentes (consenso y un actuado) y una fuente alimentación. La más compleja podría tener hasta 11.520 componentes (64x12x15).
La filosofía de control descentralizado, ha dado pie al concepto de redes de control (LON),con una clara relación a las redes de área local (LAN).Las topologías de conexión y el funcionamiento son similares. En cambio, una LAN está especializada en transmitir una elevada cantidad de información, con necesidad de un gran ancho de banda, y una LON está especializada en la transmisión de señales de control de corta duración, requiriendo una velocidad de transmisión elevada y sin necesidad de un gran ancho de banda en el medio de comunicación. A estos sistemas no centralizados, también 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 iluminación, persianas, toldos, calefacción, seguridad,... es decir, que puede controlarse cualquier elemento que requiera energía eléctrica 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 tecnología 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 tamaño de la instalación y a las funciones exigidas progresivamente, pudiendo incorporarse hasta 10.000 componentes.
30
Automatización de procesos industriales De cara al proyectista, resulta más fácil desarrollar el proyecto, pues el tendido de conductores es más sencillo, se utilizan menos cables, por tanto hay menor riesgo de incendios, los tiempos de montajes son más cortos, las redes de cables menos complejas y, sobre todo, se consigue que las instalaciones sean más fáciles de ampliar o modificar.
De cara al usuario, representa menor coste de energía, mayor confort y más 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.
Otras ventajas que se atribuyen los fabricantes son:
- Es de aplicación universal en edificaciones de cualquier tipo. - Económico en la utilización energética. - Coste de servicio minimizado. - Tiempos de montaje reducidos. - Sencillez de cableado de instalación. - Riesgo de incendio reducido. Menores costes de seguro. - Compatible hacia arriba con otros sistemas de gestión de servicios. - Compatible de sistema orientado al futuro. - Adaptación flexible de la instalación en modificaciones de utilización. - Componentes del sistema diseñados para la práctica normal del instalador electricista. - Asistencia eficaz en la fase de proyecto. - Programa de software pensado para el instalador. - Formación orientada a la práctica. - Mantenimiento sencillo. - Servicios y asesoría de una sola mano.
Inconvenientes:
Uno de los inconvenientes principales de este sistema domótico es el precio, dado que sus componentes son más caros que los de otros equipos centralizados. Pero
31
Automatización de procesos industriales dado que el precio depende de la demanda, a mayor producción, menor precio, en el futuro se prevé una reducción de este coste.
Otro inconveniente a la hora de su instalación, es la necesidad de la instalación del medio físico que intercomunica los distintos nodos, el bus es muy fácil de instalar en una vivienda nueva a la vez que se hace la instalación eléctrica convencional, pero supone un mayor trabajo su instalación 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 intención de ofrecer un producto acabado y de funcionamiento sencillo que se convertía en una ventaja, se convierte en una desventaja cuando limita la flexibilidad del estándar. A nivel de ingeniería, sólo se puede actuar sobre la aplicación del sistema, no se puede optimizar el protocolo para un uso específico.
En España son muy pocas empresas que disponen de productos EIB. En concreto sólo Niessen, Siemens y Jung pueden satisfacer la potencial demanda de cualquier cliente.
Además, aunque existe una asociación española de fabricantes de EIB, EIBA España, en principio encargada de potenciar y difundir la tecnología EIB, aunando esfuerzos y creando productos compatibles entre sí, resulta que la mayoría de estas empresas no tienen productos EIB en el mercado. Y lo que es peor, alguna de estas empresas tienen otros productos domóticos alternativos de fabricación propia, por lo que da la sensación de que en lugar de potenciar productos EIB, están retrasando su producción y difusión mientras las ventas de sus productos actuales siga en aumento.
También hay que tener en cuenta que, cada vez más, la gente demanda productos de control y, al no encontrar en EIB una alternativa real se pone en manos de cualquier otra tecnología alternativa (algunos incluso llegan a instalar basados en el obsoleto BatiBÚS, del que se hablará a continuación).
32
Automatización de procesos industriales Los beneficiados, son algunas empresas serias que continúan realizando sistemas domóticos de control hechos a medida y basados en autómatas, junto con empresas que fabrican sistemas de control domótico estándar.
33
Automatización de procesos industriales
3.3 Tecnología EIB El tendido del la red del Instabús EIB se realiza de un modo coordinado con la instalación eléctrica en el edificio funcional, el Instabús EIB une los distribuidores principales, los pisos, paredes, techos y también los canales de debajo del antepecho de las ventanas.
Los equipos para el bus, por ejemplo los de control para los diferentes consumidores y para la supervisión 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 Instabús EIB hacia los equipos terminales (sensores, aparatos de iluminación,...), 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 disposición clara, con una buena sensibilidad para la puesta en servicio, diagnóstico y mantenimiento. Los equipos del bus se conectan en los distribuidores y canales a través del perfil de datos colocado en el riel de sujeción 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 efectúan de equipo a equipo por medio de borneras a presión, o los equipos se conectan a través de derivaciones o cajas de derivación del bus. No existe limitación para la longitud de las derivaciones mientras no sobrepasen la longitud total admisible de una línea del bus (1000m). Como conductor para el bus se utiliza un cable trenzado, estándar en instrumentación y control.
34
Automatización de procesos industriales Todos los componentes de EIB están, como es natural, conectados al cable bus. Algunos de ellos, además, tienen contacto con la red, generalmente 220 voltios, como por ejemplo algunas entradas binarias en la familia de los sensores y prácticamente todos los actuadores, pues por su propia naturaleza así debe ser, ya que la función que realizan es accionar o regular circuitos de iluminación, fuerza o señalización.
El conductor bus es de 2 x 0,5 mm, a fin de tener un par de reserva para cualquier circuito a baja tensión o bien para ser utilizado en caso de rotura de un hilo. Por la forma de instalación, los componentes pueden dividirse en dos grupos: los que se fijan a presión 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 automáticamente, por el solo hecho de fijarlos en el perfil DIN. En las pistas extremas,1 y 4, hace contacto la fuente de alimentación; en las pistas centrales, 2 y 3, hacen contacto los demás componente a excepción 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 alimentación.
Todos los componentes que se instalan en el perfil DIN son modulares del sistema N.
Alimentación de corriente:
Cada línea tiene su propia alimentación para los componentes que cuelgan de ella. La alimentación típica de una línea son 24 voltios en corriente continua.
Los componentes se agrupan en líneas. En cada línea, se pueden instalar 64 componentes, sean sensores, actuadores o una mezcla de ellos. La tensión nominal del bus es de 28 voltios en corriente continua, aún que los componentes pueden funcionar hasta con un mínimo de 21 voltios. Los componentes consumen normalmente 5 mA por lo que las fuentes de alimentación están diseñadas para dar 64 x 5 = 320mA. Si se
35
Automatización de procesos industriales necesitan corrientes mayores, pueden instalarse dos fuentes de alimentación en paralelo, empleando una bobina común, con lo que la corriente que circula por el bus puede llegar hasta los 500mA.
La fuente de alimentación tiene regulación de tensión 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 absorción 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 alimentación debe ser conectada tierra. Esto implica que la toma de tierra del bus debe ser conectada a la fuente de alimentación.
Separación de datos y alimentación:
Dado que en el conductor bus están superpuestas la información o telegramas de órdenes que son bit y, por tanto, es tensión alterna y la alimentación que es tensión continua, se debe utilizar un procedimiento para separar ambas en cada componente.
Este consiste en emplear un pequeño transformador con el primario partido y un condensador. En una derivación del primario se tiene la tensión continua y en el secundario sólo se induce de información. Este proceso funciona en ambas direcciones, es decir tanto como un emisor como con un receptor o actuador.
36
Automatización de procesos industriales
La señal eléctrica:
El cable que se emplea es un par trenzado de 0,8mm de diámetro, con doble apantallamiento: Uno de plástico y uno metálico. 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 eléctrica de 230 voltios sin problemas.
El bus está formado por un par trenzado dobles del cual sólo van a utilizarse dos hilos, quedando los otros dos como reserva para posibles usos adicionales. La información se transmite de forma simétrica al par de conductores que está en uso. Por tanto al nodo que cuelga de la línea le llega la información de que las variaciones perturbadoras actúan sobre ambos conductores con la misma polaridad, no influyen en la tensión diferencial de la información.
La conexión de los componentes se hace con acoplamientos de bajo valor ómhico, con la que se aumentar la protección frente a perturbación. No se necesita una resistencia de cierre del conductor. La conexión de conductores se efectúa mediante bordes bus sin tornillos. Asimismo, un componente se enchufaría al borne o bus sin que por ello quede interrumpido el conductor bus. Dimensionamiento:
Las dimensiones máximas de la red están limitadas por diversos factores como son las capacidades parásitas, tiempo de preparación, alteraciones,...
La longitud máxima de cada línea de la red, 1000m, está determinada debido al hecho de que el emisor del telegrama (en tensión alterna) queda cargado con la capacidad del conductor. Cada nodo envía únicamente una semi-onda negativa a 9600bps, la bobina de la fuente de alimentación se encarga de generar la semi-onda compensatoria activa. Esta forma de reconstruir la onda es lo que hace que los componentes tengan una máxima distancia hasta la fuente de 350 metros.
37
Automatizaciรณn de procesos industriales Los valores para el conductor PYCYM 2*2*0.8 son 72 W/km. de bucle y 0.2 mF/km. todo esto para una frecuencia de 800Hz. Esto provoca un retraso de: Tv=72x0.12=9ms/km. Si ademรกs tenemos en cuenta que las transiciones en los cambios de nivel no
son instantรกneas, se puede considerar un tiempo de retraso total de
aproximadamente 10 ms cada 700 metros. Retraso y insignificante comparado con la longitud media del telegrama de informaciรณn (cada telegrama ocupa el bus un tiempo comprendido entre 20 y 40 ms).
38
Automatización de procesos industriales
3.4 Topología de las redes EIB La instalación del bus se puede realizar de la manera que se desee: en línea, en árbol o en estrella. Lo que no se permite es cerrar la instalación, es decir, tener una topología de anillo.
La mínima unidad que compone una red EIB se denomina línea. Cada una de estas puede soportar hasta 64 nodos EIB. El sistema permite duplicar tanto la longitud como la capacidad de nodos de la línea, simplemente uniendo dos líneas por medio de un repetidor. Para cada una de estas líneas ampliadas se necesita una fuente de alimentación adicional. En algunos casos, una línea puede tener hasta cuatro segmentos de línea conectados a través de repetidores y, por tanto, la capacidad de la línea se puede ampliar hasta 256 nodos.
Con ayuda de acopladores de línea se pueden conectar hasta 12 líneas para formar una zona EIB. Por tanto, dos mecanismos en diferentes líneas pueden intercambiarse información a través de la línea principal. La longitud de cada línea no puede exceder los 1000 metros, con una separación máxima de 700 metros, y entre la fuente de alimentación y un nodo de trescientos cincuenta metros.
Con ayuda de acopladores de zona pueden llegar a unirse hasta 15. Por tanto, se pueden diseñar redes de hasta 64 x 12 x 15 = 11.520 nodos, y si se dispone de un repetidor en cada una de las líneas se puede llegar hasta un máximo de once mil quinientos veinte por dos igual a 23.040 nodos.
Para realizar la instalación tanto de las diferentes líneas, como de la línea principal o de la el línea de zonas serán necesarios los mismos componentes: una fuente de alimentación para cada línea, un filtro que nos depure la alimentación de 24 voltios y un conector que nos pasen la corriente del bus del perfil DIN al bus cable, además de los posibles acopladores de línea o de área que se necesite. Por último, se colgarán los sensores y actuadores, hasta un máximo de 64 unidades por línea.
39
Automatización de procesos industriales
3.5 Los telegramas El proceso de emisión de un telegrama al bus se produce después de una espera mínima de T1 tras la decisión de emitir. Igualmente, después de la conclusión del telegrama hay un tiempo de espera T2, para comprobar la recepción correcta como corresponde a un protocolo de ventana deslizante.
T1: tiempo libre del bus (50bits). T2: espacio hasta el recibo (13 bits).
La información completa se envía agrupada en palabras de once bit. El bit inicial es “start-bit” que indican el comienzo de cada palabra, después le siguen los ocho bit de datos, a continuación el bit de paridad y se termina con el bit de parada (stop-bit).
Antes de la transmisión de la siguiente “palabra”, han de pasar como mínimo dos bit sin ningún tipo de información.
El telegrama se emite con una velocidad de 9.600bps, enviándose una palabra de once bit (8 de información) 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 simultáneamente el recibo de la recepción.
Un telegrama constante de siete campos que son, de izquierda a derecha: control, dirección de origen, dirección de destino, contador rooting, longitud, datos, comprobación.
40
Automatización de procesos industriales
1. Campo de control: se encargan de indicar las prioridades. Hay cuatro grados. La máxima prioridad se asigna a funciones de autogestión del sistema; el segundo grado se designa a funciones de alarma. Además, el campo de control tiene un bit que si toma el valor cero, indica que el mensaje es una repetición 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. Dirección de origen: es la dirección física del componente de emisor. Como se ha visto anteriormente, se envía información del área y la línea en la que se encuentra dicho elemento. La revisión de la dirección de origen pretende facilitar las tareas de mantenimiento al identificarse fácilmente quien ha emitido el telegrama.
3. Dirección de destino: puede ser la dirección física o la de grupo según el valor que tome el bit 17(si es uno entonces es de grupo).
4. Contador rooting: indica el número de acopladores por los que ha pasado el mensaje. Su función es evitar que un mensaje se pasee mucho tiempo por la red.
5. Longitud: son cuatro bits que indican el número de bytes de información que contiene el campo de datos. El número máximo es 16.
6. Datos: el campo información útil tiene dos partes diferenciadas: la orden y los parámetros de la misma. La primera puede ser de cuatro tipos: escribir, leer, contestación larga y contestación corta. Las tres primeras envían dos bytes mientras que la tercera puede llegar a ocupar los dieciséis bytes disponibles. Todas órdenes leer se solicita el acuse de recibo del componente direccionado.
7. Comprobación: cada "palabra" de once bytes tiene que presentar paridad par (comprobación horizontal), además, 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
Automatización de procesos industriales
Acceso al medio:
Si un nodo quiere enviar un mensaje al bus y éste no está ocupado, lo puede hacer inmediatamente. Si hay emisiones simultáneas 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 detección durante sus envíos 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 emisión y da prioridad a otro nodo.
El componente con prioridad baja, “escucha” el telegrama hasta el final, y a continuación 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 originaría una disminución de la capacidad de transmisión del bus.
42
Automatización de procesos industriales
3.6 Composición de los nodos Cada nodo está formado por un acoplador al bus, un interface de aplicación y el aparato final.
El acoplador al bus recibe telegramas del bus de la instalación, los decodifica y manda la información a la unidad de aplicación (actuador o sensor).
Cuando la unidad de aplicación desea enviar información al bus, el acoplador recibe esta información, la codificar y la transmite al bus, direccionándola hacia un actuado o sensor.
El acoplador al bus y la unidad de aplicación intercambian información por medio de un interface físico externo, al que se accede a través de un conector de 10 pins. El acoplador es un mecanismo multifuncional. Sólo sabrá la función que deberá realizar cuando haya recibido los parámetros necesarios durante la instalación. Los datos de parámetro son automáticamente cargados cuando se produce la puesta en marcha de la instalación 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 periódicamente chequea el corrector de diez pins de los sensores con el fin de localizar cambios en la señal. Si se produce un cambio, se transmite un telegrama a la instalación del bus.
En el caso de los actuadores estos envían los nuevos telegramas por medio de interface físico externo solamente una vez a la unidad de aplicación.
El elemento más importante del acoplador al bus es el controlador.
43
Automatización de procesos industriales El controlador de acoplador al bus contiene el microprocesador con las memorias ROM (no volátil), RAM (volátil) y EEPROM (eléctricamente programable y no volátil). El software específico del sistema vienen grabado en la memoria a ROM por el propio fabricante. La EEPROM se utiliza para grabar la parametrización de las funciones concretas a realizar por el aparato.
El microprocesador deposita los datos actuales en la memoria RAM.
El módulo de transmisión es el elemento del acoplador al bus que se encarga de separar o mezclar la tensión continua y la de la información, producir cinco voltios estabilizados, salvar los datos si la tensión de alimentación se pone por debajo de 18 voltios, controlar la función de reset del procesador y gobernar la emisión/recepción. El acoplador puede tener tres funciones:
- Acoplador de área: enlaza la línea de área con la principal de un área. - Acoplador de línea: enlazan la línea principal con una secundaria. - Amplificador del líneas: duplica el número de elementos de la línea.
Mientras que los dos primeros discriminar el paso de telegramas, el tercero deja pasar todos los que le llegan. Los acopladores de línea y de filtro reciben una tabla de filtro durante la parametrización. Esta memoria se mantiene durante más de diez años con una pila de litio.
44
Automatización de procesos industriales
3.8 Direccionamiento Cada componente está identificado por su dirección física que es exclusiva. Esta dirección sólo se utiliza con fines de diagnóstico 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 línea de área. L=1-12 línea en que se encuentra dentro del área. T=1-64 dirección del componente dentro de la línea.
Para que sensores y actuadores funcionen conjuntamente se asocian mediante la dirección de grupo. Esta es totalmente independiente de la dirección física, y las agrupaciones que realizan son de tipo lógico.
Cada dirección puede coordinar cualquier componente independientemente de la línea en que se halle. La principal aplicación de la dirección del grupo es permitir que un telegrama pueda ir dirigido a varios nodos.
Los acopladores de la línea 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 línea. Durante la parametrización se suministran al acoplador de línea las direcciones de los nodos que se hallan bajo su control: si un mensaje no va dirigido a ninguno de estos nodos, ni tan sólo pasa a la línea. Lo mismo sucede con los acopladores del área.
45
Automatización de procesos industriales
3.9 Cuadro técnico EIB Suministrador Más de 50 miembros Sistema abierto Si Grupo de usuarios EIB Association Standards DIN VDE 0829 Topología Abierta Nº máximo de nodos 64 dispositivos por línea, 12 por línea principal, 15 líneas principales por bus troncal (Backbone). Procedimiento de acceso CSMA/CA Velocidad de transmisión 9.6kbps, 700m por linea Requerimientos de cableado Par trenzado y línea de alimentación. Formato de Datos/Transmisión 24V Detección de Errores CSMA/CA
46
Automatización de procesos industriales
3.10 Programación de una instalación EIB (ETS) Para realizar una instalación EIB, se utiliza un elemento sensor o actuadorcompatible con el estándar, y un interface para acoplarlos al bus; pero, además, se necesita un software de aplicación que identifique y dirija el comportamiento del nodo.
Esta última función la realiza el E.T.S.
El E.T.S. (EIB tool Software) es el software de programación del sistema EIB. Se carga una vez cableada la instalación. El programa sigue un entorno Windows, por lo que su manejo es fácil; basta seguir las instrucciones que la pantalla nos va dando a través de los comandos e iconos.
Es un software dirigido a instaladores, ingenieros y arquitectos, y tiene un doble objetivo:
- Permitir el diseño y planificación de las instalaciones. - Programar las aplicaciones particulares de los dispositivos para cargarlas en la instalación.
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 descripción 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 E.T.S. se compone de dos programas:
-
El programa de administración (ETS-Administration).Tiene un programa CAD que asiste al proyectista en el diseño del esquema de la planta permitiendo colocar mecanismos EIB en la instalación. En este módulo se guarda la información administrativa. También guarda las áreas y líneas físicas que se
47
Automatización de procesos industriales definen durante el diseño y las direcciones del grupo que permiten que varios elementos puedan funcionar conjuntamente.
-
El programa de puesta en marcha y diagnóstico (ETS-Startup & diagnostics). Se utiliza para diseñar (sin soporte gráfico) y para cargar programas en la instalación EIB, es decir, que sus dos principales misiones son programar la instalación nodo a nodo, modificando la programación para añadir nuevas funciones, elementos y líneas y comprobar, en la propia obra, el correcto funcionamiento del diseño mediante el envío de telegramas a la línea 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
Automatización de procesos industriales
3.11 Otra tecnología de control distribuida LonWorks (Comparación con EIB) En el estudio mostrado por este documento, se ponen de manifiesto las ventajas de un sistema de control distribuido. No obstante, se puede apreciar que la funcionalidad de cada nodo EIB queda prefijada por los fabricantes. Al usuario sólo le queda la posibilidad de parametrizar el nodo dentro de la red, esto es, configura el sistema en base a sus necesidades finales, programando su funcionamiento durante la instalación.
Por tanto, la posibilidad de permitir al usuario la opción de que diseñe el funcionamiento de cada nodo, supone un paso adelante en la evolución de sistemas de control descentralizados. Es decir, que el fabricante proporcione un nodo abierto, fácilmente accesible, que permita al usuario especializado y a empresas de desarrollo la posibilidad de crear nuevos productos en base a un estándar de control. Este es uno de los objetivos de la tecnología LonWorks. Pero sus ventajas no se quedan en esto.
Comparar EIB con un sistema LonWorks es comparar un simple sistema domótico con otro mucho más potente y versátil y que además resulta más económico. La tecnología LonWorks está a años luz de cualquier otra, y mucho más de EIB.
LonWorks es un auténtico estándar 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 conexión a cualquiera de los soportes de comunicación conocidos (EIB sólo puede comunicarse vía bus). Todo ello a un coste inferior a cualquiera de sus lejanos competidores.
49
Automatización de procesos industriales Si comparamos ambas tecnologías en base a lo que son sistemas de control distribuidos, tendríamos:
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 además, permite el procesado de datos a alto nivel. 2. EIB es una tecnología más 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 línea (64 nodos) lleva su propia alimentación. LonWorks permite una alimentación por nodo, o puede pasar a una alimentación por la red mediante par trenzado con LinkPower (LPT-10 78kbps 128 nodos).
4. EIB envía los datos mediante un sistema de tensión asimétrica por el mismo bus de alimentación. LonWorks envían los datos por cualquier medio de transmisión (permite par trenzado, coaxial, radio frecuencia, red de alimentación, infrarrojos, fibra óptica, bus). Cuando se usa el LinkPower los datos se envían junto con la alimentación.
5. EIB permite una topología de la red en bus, árbol, estrella y mixta. LonWorks permite además topologías 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 transmisión de datos de 9.600bps. en líneas de hasta 1000m. sin repetidores. Lon permite una velocidad de 78.000bps en líneas de hasta 2.000 m., sin repetidores. además, con par trenzado y con aislamiento por transformador, Lon permite una velocidad de 1.250.000 bps. con topología bus, con 64 nodos y 130 m. de longitud de línea.
7. El chip básico de EIB dispone de un solo microprocesador con RAM, ROM y EEPROM que permite la parametrización 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
Automatización de procesos industriales aplicación (de la que se encarga la tercera CPU). También dispone de memorias RAM, ROM y EEPROM, esta última permite que la aplicación se reprograme a la hora de la instalación.
8. EIB disponen de acopladores de línea y de zona, que actúan como bridges. También dispone de amplificadores con función de repetidor. Por su lado, LonWorks para garantizar la conectividad disponen de repetidores, bridges, Learning Routers y Routers preconfigurados, según el tipo de conectividad requerida entre redes. 9. El direccionamiento de EIB parte de una dirección física (16 bits) que diferencia a cada nodo de la instalación, y una dirección del grupo (15 bits) que empareja, de forma lógica, al conjunto del nodos seleccionado. La dirección lógica permite el acceso gruposubgrupo.
Los Neuron chips disponen de una dirección físicas (48 bits) única en el mundo y grabada en fábrica. Además, permiten tener una dirección lógica de dominio subred y nodo. El direccionamiento lógico LON permite el acceso a dominios, subredes o a nodos (hasta 32 bits). Por si fuera poco, también permite el acceso por grupos de nodos, donde cada nodo puede pertenecer hasta a quince grupos distintos, mientras que una dirección de grupo es de hasta 24 bits.
10. Tanto EIB como LonWorks para transmisión de datos, garantizan el cumplimiento del modelo de referencia OSI de ISO. El EIB tiene un acceso al medio con el sistema de detección de colisiones CSMACA. Por su parte el sistema Lon Talk usa el sistema CSMA predictive persistent, que incluye cualquier característica 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 repetición del mensaje, y sin reconocimiento. Todo queda a elección del programador de la aplicación.
12. LonWorks, a nivel de red, no sólo permite la transmisión de mensajes a múltiples receptores, como hace EIB, sino que tiene un nuevo concepto de variable de
51
Automatización de procesos industriales programación: Las variables de red. La programación de LonWorks se realiza mediante un lenguaje de alto nivel: el Neuron C. LonWorks dispone de un organizador de multitarea y de una gran librería de funciones de control de eventos. LonWorks disponen además de los servicios de una LAN.
13. La instalación para los nodos de EIB se realiza mediante un pin de servicio, y la parametrización se realiza mediante un PC conectado al bus. Los nodos LON se pueden instalar según el grado de aplicación y el tipo de servicios que se desea que ofrezcan, permitiendo el Plug & Play, o instalación manual, mediante el pin de servicio, o Wink.
52
Automatización de procesos industriales
4. Red domótica EHS Una red domótica EHS es un conjunto de unidades lógicas que poseen una cierta funcionalidad dentro del sistema. Una red puede constar de una o varias subredes, entendiendo como tales cada uno de los medios físicos de transmisión existentes en la vivienda. En una misma red puede haber varias subredes basadas en el mismo medio físico.
4.1 Medios físicos de transmisión
En la especificación de EHS se definen seis medios físicos y los protocolos que rigen la comunicación de datos a través de estos medios:
- Par trenzado 1 (TP1): control de propósito general. - Par trenzado 2 (TP2): transferencia de datos, telefonía, voz, etc. - Cable coaxial (CX): audio, radio, TV. - Línea de potencia (PL): control simple. - Radio frecuencia (RF): control sin hilos. - Infrarrojos (IR): control remoto. - La topologías físicas más utilizadas son el tipo bus sencillo, bus extendido serie paralelo, estrella y en anillo, siendo la mas conocida la primera.
53
Automatización de procesos industriales
4.2 Tipos de unidades En los tipos de unidades podemos hacer una primera clasificación en unidades o dispositivos de aplicación y unidades de sistema.
Unidades de aplicación
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. Sólo puede recibir comandos de dispositivos dentro de su subred, nunca de otras subredes.
Su conexión al bus se realizará a través de otra subunidad llamada coordinador de dispositivos.
- Dispositivo muy simple (VSD):
Un VSD es un dispositivo simple cuyas posibilidades de comunicación 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.
- Dispositivo complejo (CoD):
Como dispositivo complejo (CoD) conoceremos una subunidad que, aunque no posee inteligencia del sistema, permite:
54
Automatización de procesos industriales
- Recibir y enviar mensajes a cualquier otro dispositivo de la red (de su subred o de otra).
- Que sólo se use en sistemas inteligentes, en compañía de al menos un controlador de características, pudiendo estar controlado por varios a la vez. La modelización de cada aparato como SiD,VSD o CoD vendrá determinada por el tipo de sistema que queramos definir, si posee inteligencia y el medio físico al que se conecte. Algunos medios físicos, 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 según los requisitos de la especificación EHS.
-Controlador de características (FC):
Los controladores de características sí que dotan de inteligencia al sistema. Son los encargados de utilizar los recursos de aplicación (utilidades, características) 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 automático. Las principales características de un FC son:
- Puede comunicarse con cualquier unidad de la red. - Debe tener capacidad de procesamiento de información, que le permitan conocer que dispositivos están conectados y su funcionalidad. - En todo sistema inteligente debe de haber como mínimo 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
Automatización de procesos industriales medio de controlador de características (FC's). La unión de un DvC con un SiD se comporta como un CoD.
- 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 número fijo y reducido de unidades.
- Ruteadores (R) y gateways(G): Son unidades cuya misión es transportar información de unas subredes a otras, la diferencia entre ruteadores y gateways es que mientras que en los primeros la comunicación es entre subredes similares, en los segundos la comunicación es entre subredes exteriores que no siguen el estándar.
56
Automatización de procesos industriales
4.3 Modelos lógicos de comunicación Básicamente existen dos modelos lógicos de comunicación: el modelo simple y el modelo inteligente.
El modelo simple es el esquema más elemental de comunicación, en el que sólo hay una subred con dispositivos simples que pueden comunicarse entre sí punto a punto.
El modelo inteligente se basa en la constitución de unidades como suma de capas dispuestas en orden jerárquico. 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 información se trasmite de las capas superiores a las inmediatamente inferiores hasta llegar a la última capa (la capa física) que se encarga de enviar el mensaje físicamente por el medio de transmisión.
En cada uno de los saltos, cada capa va añadiendo información al mensaje de la capa inmediatamente superior, de tal forma que cuando esta se transmite por el medio físico, dispone de toda la información necesaria para que la unidad receptora lo reciba y ejecute. Todas las unidades conectadas se pondrán a escuchar lo que circula por el bus, activándose la unidad receptora y poniéndose 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 físico usado.
57
Automatización de procesos industriales
4.4 Protocolo de comunicaciones Según el modo de obtener direcciones las unidades EHS se clasifican en cuatro categorías.
Categoría 1: En las unidades de esta categoría el instalador inicia el proceso de obtención de dirección y el controlador de medio (MdC) negocia con la unidad una dirección. Una vez obtenida la dirección esta se grabara en memoria no volátil (EEPROM). Los dispositivos simples (SiD), los complejos (CoD), los controladores de características (FC), los ruteadores (R) y los gateways (G) son unidades que entran dentro de esta categoría.
Categoría 2: En las unidades pertenecientes a esta categoría la negociación de la dirección de red no necesita la intervención del instalador. Tienen un número de referencia de 32 bits programado por el fabricante que le permite negociar la dirección con el controlador de medio. La dirección de red se almacena en memoria volátil. Los dispositivos simples (SiD), los complejos (CoD) y los controladores de características (FC) entran en esta categoría. Las unidades de esta categoría se utilizan para medios rápidos.
Categoría 3: En las unidades de esta categoría la dirección de red se establece manualmente, pudiendo consultarse las direcciones con un controlador de medio (MdC). En esta categoría sólo se pueden conectar 16 unidades como máximo en cada subred, siendo el tipo de unidades conectadas dispositivos simples (SiD), complejos (CoD) y controladores de características (FC).
Categoría 4: A esta categoría pertenecen las unidades que necesitan unas direcciones específicas debido a las funciones que realizan. A esta categoría pertenecen los controladores de medio (MdC) y el coordinador de dispositivos (DvC)., que precisan un código único y una memoria no volátil para almacenar su estado en cada momento.
58
Automatización de procesos industriales
Mecanismos de asignación de direcciones
Mecanismo “registration”.
El protocolo “registration” lo llevan a cabo unidades de categoría 1 y 2 con el controlador de medio para que éste les conceda una dirección de red. Las unidades de categoría 1 no disponen de ningún tipo de código diferenciador, por lo que su inicialización debe llevarse a de cabo una en una. Esto se consigue con la intervención del instalador.
En las unidades de categoría 2 el protocolo comienza sin intervención directa del instalador. Cada unidad envía un mensaje al controlador de medio (MdC) identificándose con su código único. El controlador de medio (MdC) contesta con otro mensaje donde se especifica este código único de manera que, aunque dicho mensaje lo recibirán las unidades no registradas hasta el momento, únicamente lo interpretará la que tenga el código ú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 categoría es volátil.
Mecanismo “contention”.
Este mecanismo lo usan las unidades de la categoría 4, permitiendo que sólo una unidad de este tipo que realice una determinada acción esté activa. Cuando una unidad de esta categoría se conecta por primera vez envía un mensaje indicando su código único y prioridad. Si no responde ninguna unidad, deberá realizar un número de reintentos durante un período de tiempo pre-establecido para asegurarse que el mensaje ha sido escuchado por todas las unidades presentes en la red que realicen su misma función. Si pasado este tiempo no recibe contestación, quiere decir que no existe otra unidad que realice su misma función en la subred, con lo que la unidad se activará. Si en la subred existen otras unidades que realizan su función, estas enviarán un mensaje con su código único y prioridad, que será recibido en el tiempo preestablecido. La unidad con más prioridad se activará quedando la otra en estado de reposo. 59
Automatización de procesos industriales
Mecanismo “disconection”.
Este mecanismo consiste en avisar a todas las unidades de la desaparición 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 más habitual es que cuando se desconecta una unidad otra unidad se de cuenta de este hecho al no recibir contestación de esta unidad. Si se desconecta un dispositivo complejo (CoD), un controlador de características (FC) se dará cuenta de esta desconexión 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 características (FC), y este al usuario por medio de un interface de usuario. Si se desconecta un controlador de características (FC), el interface de usuario conectado al controlador de características informará directamente al usuario.
Mecanismos de gestión de aplicaciones
Mecanismos “enrolment” y “contracting”.
El mecanismo “enrolment” permite a los controladores de características (FC) saber los recursos que están 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 asociación 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 características (FC).
Mecanismo de “token-passing”.
60
Automatización de procesos industriales
Este mecanismo actúa como un semáforo que asegura que un único controlador de características (FC) pueda acceder a un tiempo al mismo dispositivo con comandos de escritura. Si varios controladores de características (FC's) intentan acceder simultáneamente, sólo accederá aquel que tenga mayor prioridad. De esta manera se asegura que un controlador de características no intente controlar un dispositivo que esta siendo controlado por otro controlador de características. Para garantizar esto el controlador de características (FC) pide un testigo al dispositivo sobre el que quiere actuar. Si el dispositivo no esta siendo controlado por otro controlador de características le pasará el testigo, pudiendo entonces el controlador de características actuar sobre él, por tanto, un controlador de características no puede actuar sobre un dispositivo si no tiene testigo.
Para decidir qué controlador de características tiene prioridad sobre otro a la hora de solicitar permiso para utilizar un recurso determinado existen nueve niveles de prioridad:
- Nivel 1 (Installer): Es la prioridad más alta, no se utiliza en el manejo cotidiano del sistema.
- Nivel 2 (Safety): Está relacionado con la seguridad de las personas.
- Nivel 3 (Security): Está relacionado con la seguridad de los bienes.
- Nivel 4 (Urgent): Implica la llamada de atención del usuario.
- Nivel 5 (Timer): Se utiliza para las acciones relacionadas con la gestión del sistema.
- Nivel 6 (User-Plus): Está relacionado con los dispositivos que maneja directamente el usuario.
- Nivel 7 (User): Es similar a User-Plus pero con menos prioridad.
61
Automatizaciรณn de procesos industriales - Nivel 8 (Blackground): Este nivel se utiliza para una operaciรณn que puede ser interrumpida en cualquier momento.
- Nivel 9 (Idle): Es la prioridad mรกs baja. Se utiliza cuando un dispositivo tiene el testigo pero no estรก realizando ninguna funciรณn.
62
Automatización de procesos industriales
5. Red Batibus -
Emplea como soporte físico un par trenzado sin terminación de línea.
-
Admite una longitud total de bus de hasta 2500 m, sin que la distancia máxima entre la alimentación y el último punto de alimentación supere los 500m.
-
La alimentación de los puntos puede ser local o a través del propio Bus, siendo el número máximo de puntos alimentados respectivamente de 1000 y 75.
-
Puede direccionar 240 posiciones por tipo de punto, con 32 tipos de punto diferente.
-
Admite un máximo de 20 mensajes por segundo.
-
La información se transmite en paquetes de 1 a 25 objetos.
63
Automatización de procesos industriales
6. Convergencia de EHS, EIB Y Batibus En 1997 las asociaciones EHSA, EIBA y BCI (asociaciones de EHS, EIB y Batibus respectivamente) firmaron un documento en el cual acuerdan unificar criterios y crear un estándar europeo que aproveche las ventajas y virtudes de cada protocolo. Las primeras conclusiones a las que se llegaron en el proceso de convergencia han sido:
-
Necesidad de acordar una única nomenclatura., filosofía y procedimientos de trabajo.
-
Conveniencia de acercamiento de otras especificaciones como Lonworks,etc.
-
Establecimiento de grupos especialistas en diferentes dominios de aplicación.
-
Las consecuencias de la transición de cada uno de los tres protocolos deberán ser evaluadas por cada consorcio (EIBA, BCI y EHSA).
La especificación hacia la cual tienden a converger estos tres protocolos recibe el nombre de Convergence System (CS) y tiene las siguientes características, partiendo del protocolo EHS:
-
Contempla tres medios físicos, dos tipos de par trenzado y línea de potencia.
-
Las direcciones tiene una longitud de 2 bytes (EHS utiliza 1 byte), indicando el primero el medio físico o subred donde está instalada la unidad, y el segundo la identificará dentro de la propia subred.
-
l número máximo de subredes es de 255 (en lugar de las 8 de EHS), y la capacidad de cada subred de 255 unidades.
-
El código único es de 6 bytes (en EHS es de 4 bytes).
64
Automatización de procesos industriales -
Se mantiene la estructura de enlaces dinámicos entre unidades del tipo controlador de características y dispositivos complejos definida en EHS, y el mecanismo de asignación de direcciones.
-
Se definen 3 modos de instalación y configuración:
E-mode: configuración sencilla. S-mode: configuración que utiliza una base de datos. A-mode: configuración automática.
Se definen 2 modos de aplicación:
1. Memoria compartida: todos los objetos se mantienen en un espacio de memoria al que puede acceder cualquier unidad.
2. Cliente-servidor: cada objeto reside en su unidad. Utiliza el lenguaje de comandos de EHS.
65
Automatización de procesos industriales
INTRODUCCIÓN A LA TECNOLOGÍA LONWORKS
1. Conceptos básico
1.1 Red de control Una red de control está formada por un grupo de dispositivos llamados nodos, (cada uno, con uno o más sensores o actuadores), que se comunican (a través de uno o varios medios, usando una norma o protocolo de comunicación) para constituir una aplicación de monitorización, una aplicación de control o una aplicación de monitorización y control.
Las redes de control son más comunes de lo que habitualmente creemos. Por ejemplo, nuestro coche puede tener varias redes de control como por ejemplo, el sistema de viso del cinturón de seguridad, el sistema antibloqueo ABS o el sistema de gestión 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 instrumentación para aeronáutica (ambos son ejemplos de redes Lonworks existentes). Es posible controlar una alarma a partir de un simple sensor de ocupación, o gestionar el sistema de tráfico de una ciudad, controlando semáforos, flujo de tráfico, acciones de vehículos de emergencia, distribución de potencia, etc.
Para mucha gente, las redes de control son más fáciles de entender poniendo como ejemplo casas inteligentes o casas demóticas. No obstante, los sistemas donde más extendidas están las redes de control son edificios y fábricas donde se gestionan los ascensores o cadenas de fabricación de vehículos. Las redes Lonworks se usan para todas sas cosas y más. La comunicación 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 cálculo) de los nodos permite la distribución del
66
Automatización de procesos industriales proceso (los sensores pueden funcionar de manera inteligente, por ejemplo, realizando análisis local de os datos y su conversión, e informar sólo de cambios significativos en su entorno). Si las unciones de control son distribuidas, la ejecución y el rendimiento del sistema se mejoran drásticamente.
67
Automatización de procesos industriales
1.2 La Plataforma LonWorks Lonworks es una plataforma de control creada por la compañía norteamericana Echelon. Las redes Lonworks describen de una manera efectiva una solución completa a los problemas de sistemas de control. Al igual que la industria informática, la industria del control fue creada, y en muchos casos todavía lo es, basada en soluciones centralizadas de control punto-a-punto. Esto significa que existe un "maestro" o controlador principal similar a un ordenador, físicamente cableado a cada punto de control particular, como actuadores o sensores, denominados "esclavos". El resultado final es funcional, pero es caro y difícil para mantener, ampliar y gestionar. Igualmente, es menos fiable frente a fallos, ya que la caída del controlador principal provoca la caída de todo el sistema.
El comienzo de las redes Lonworks se basó en conceptos muy simples: 1) los sistemas de control son fundamentalmente idénticos, independientemente de la aplicación final; 2) un sistema de control distribuido es significativamente más potente, flexible, y ampliable que un sistema de control centralizado; y 3) la empresas ahorran más dinero a largo plazo instalando redes distribuidas que instalando redes centralizadas.
La tecnología Lonworks proporciona una solución a los múltiples problemas de diseño, construcción, instalación, y mantenimiento de redes de control; redes que pueden variar en tamaño desde dos a 32,000 dispositivos y se pueden usar en cualquier aplicación desde supermercados a plantas de petrolíferas, desde aviones hasta ferrocarriles, desde medición por láser a máquinas 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 están utilizando sistemas abiertos, chips estándar, sistemas operativos estándar y componentes para construir productos que mejoren la flexibilidad, el costo del sistema y su instalación. La tecnología Lonworks está acelerando la tendencia a
68
Automatización de procesos industriales evitar los sistemas propietarios o los sistemas centralizados, proporcionando interoperabilidad, una tecnología robusta, desarrollos más rápidos y ahorro económico.
En definitiva, en términos de interoperabilidad y compatibilidad, Lonworks es a las redes de control lo que WINDOWS es a los sistemas informáticos. ¿Quién compraría hoy en día una aplicación para facturación, elaboración de nóminas u otras aplicaciones, para un sistema que no fuera compatible con Windows? Otro ejemplo que clarifica la misión de los sistemas estándar lo podemos encontrar en la telefonía móvil. ¿Compraría usted un teléfono móvil que solo pudiera hablar con teléfonos móviles del mismo fabricante?
69
Automatización de procesos industriales
1.3 Utilización de redes LonWorks En teoría, para todas las aplicaciones de control y en todas las industrias. Las aplicaciones para las que se emplean hoy en día las redes Lonworks incluyen: control de producción, seguimiento
de artículos, etiquetado
automático de precios en
supermercados, entornos de trabajo automatizados, integración de instrumentos aeronáuticos, diagnóstico de circuitos electrónicos, control de electrodomésticos, cerraduras
electrónicas,
control de
ascensores,
gestión
de
energía,
control
medioambiental, protección contra incendios, control de Aire Acondicionado y Calefacción, control de peajes en autopistas, sistemas de identificación, máquinas de venta automática, control de riego, control de alumbrado, cuidado de pacientes, automatización de restaurantes, automatización de viviendas y mucho más…
Funcionalidades aportadas por la tecnología base
Los principales proveedores de redes Lonworks son: •
Echelon Corporation – La empresa creadora del estándar. Proporciona herramientas de desarrollo, transceptores, herramientas de gestión de red, soporte y formación.
•
Cypress Semiconductor (desde comienzo del año 2000) y Toshiba - Neuron Chips (cubriendo el suministro a nivel mundial de diversas versiones del Neuron Chip).
•
Adicionalmente, hay más de 4.000 desarrolladores Lonworks en el mundo que ofrecen cualquier tipo de dispositivo, desde transceptores y herramientas de gestión de red, hasta herramientas de desarrollo y aplicaciones de usuario.
Más de 4000 empresas utilizan las redes Lonworks hoy, y el número está creciendo rápidamente. Todas las áreas del campo de control están plenamente cubiertas por
70
Automatización de procesos industriales productos compatibles con Lonworks incluyendo sistemas de detección de incendios, sistemas de climatización, sistemas de seguridad, sistemas de gestión de energía, sistemas de alumbrado, etc.
Entre las compañías que han adoptado este estándar se encuentran los miembros de la Asociación LonUsers España: Fábrica Electrotécnica JOSA (BJC), I.A. Electrónicas del Vallés (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,
Weidmuller, Woodward Governor, y muchas más…
71
Automatización de procesos industriales
1.4 Alcance del estándar Los estándares son muy importantes y a menudo necesarios. Sin embargo, la verdadera fuerza de una tecnología está en su aceptación y uso como un estándar de facto y no en su pedigrí. La plataforma Lonworks forma parte de varios estándares industriales y constituye un estándar de facto en muchos segmentos del mercado del control. Fabricantes, usuarios finales, integradores y distribuidores están presenciando una creciente demanda de soluciones de control que incluyan las capacidades que las redes de control Lonworks poseen. Como resultado, se han instalado millones de dispositivos en miles de instalaciones basadas en Lonworks.
Las redes Lonworks han sido incluidas en varios estándares y propuestas de estándar, incluyendo: •
El protocolo ha sido incluido en la norma EIA-709.1, la especificación 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 Calefacción, Refrigeración y Aire Acondicionado. La referencia para este estándar es conocida como ANSI/ASHRAE 135.
•
Lonworks es además el protocolo estándar para la Federación Internacional de Estaciones de Servicio (todas las estaciones de servicio Europeas).
•
La Asociación Americana de Ferrocarriles ha elegido Lonworks como estándar para los sistemas de frenado neumático.
•
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 instrumentación en su norma E-56.6.
72
Automatización de procesos industriales
1.5 Neuronas y su utilización Todos los dispositivos presentes en una red Lonworks precisan de un chip Neuron. El Neuron está constituido internamente como tres microprocesadores en uno. Dos de los microprocesadores están optimizados para ejecutar el protocolo de comunicaciones, mientras que el tercero está dedicado a ejecutar el programa de control del nodo. Hay por tanto dos procesadores de comunicación y un procesador para la aplicación.
Disponer de dos procesadores dedicados a tareas de comunicación en red y uno dedicado a la aplicación 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 diseño y producción.
Ventajas Técnicas •
El uso del chip Neuron garantiza un entorno de ejecución hardware para el protocolo. Para asegurar suficiente potencia de proceso, el protocolo se implementa como una mezcla de hardware y firmware.
•
Diseñado 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 implementación del protocolo LonTalk más económica que cualquier otra solución propietaria. El resultado neto se traduce en que el chip Neuron es el mejor y más económico procesador Lonworks para cualquier aplicación que precise potencia de proceso de 8 bits.
73
Automatización de procesos industriales
1.6 Protocolo LonWorks Protocolo de comunicaciones
Hoy en día, los protocolos de comunicaciones se diseñan en concordancia con la norma ISO (Modelo de Referencia Abierto para la Interconexión de Sistemas) que engloba un conjunto completo de protocolos, y clasifica a estos según siete categorías 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 modificación casual (o intencionada). Se incluyen características como gestión acceso al medio, reconocimiento y gestión punto a punto, y servicios más avanzados tales como autentificación de remitente, detección de mensajes duplicados, colisión, reintentos automáticos, soporte de cliente-servidor, transmisión de tramas no estándar, normalización y identificación de tipo de dato, difusión unicast/multicast, soporte de medios mixtos y detección de errores.
Fiabilidad
El protocolo LonTalk proporciona principalmente dos técnicas para asegurar el correcto envío y recepción de las transmisiones. La fiabilidad de las transmisiones se asegura mediante una confirmación entre emisor y receptor (la mayoría 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 códigos polinómicos de 16 bits.
74
Automatización de procesos industriales Seguridad
Todas operaciones en la red de control se realizan usando un sistema de "autentificación de remitente" como una Capa de nivel 4 (Nivel de Servicio del modelo OSI).
Esta capa proporciona una garantía de autenticidad del remitente, que no puede ser violada por piratas informáticos ("hackers").
Cada transmisión de paquete proporciona autentificación del remitente. Dado que la implementación de esta característica 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 ocupación para el sistema de climatización, el de alumbrado y el de seguridad de un edificio.
Otro ejemplo posible sería el de tomar determinada actuación en nuestra línea de montaje en base a la información del sistema contra incendios de nuestro edificio. Cuatro Beneficios de la Interoperabilidad • Los productos interoperables permiten a los diseñadores de cada proyecto utilizar el mejor dispositivo para cada sistema o subsistema sin verse forzados a utilizar una línea 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 estaría 75
Automatización de procesos industriales completamente prohibido. De esta manera, los diferentes fabricantes se esfuerzan por disponer de la mejor solución y esto se traduce en una mayor calidad y libertad de elección para el usuario final. •
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 monitorización de las instalaciones utilizando herramientas estándar, sin importar que empresa ha fabricado cada sub-sistema.
76
Automatización de procesos industriales
SISTEMA DE AUTOMATIZACIÓN X10
1. Introducción Automatización X10 es el sistema de Automatización mas extendido y utilizado en los hogares del mundo debido a su sencillez de instalación y a su fácil manejo que se adapta a todas las necesidades actuales de control automático en los hogares. X10 es el "lenguaje" de comunicación que utilizan los productos compatibles X10 para hablarse entre ellos y que le permiten controlar las luces y los electrodomésticos de su hogar, aprovechando para ello la instalación eléctrica 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 Automatización sin instalación. Los productos de Automatización basados en el sistema X10 están diseñados para que puedan ser instalados fácilmente por usted mismo sin necesidad de conocimientos especiales. Cada aparato tiene una dirección a la que responde o envía, existiendo un total de 256 direcciones. Todos los productos de Automatización 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 módulos x10. Y si quiere un consejo empiece por los Kits de Automatización o consúltenos su configuración estaremos encantados de asesorarle.
77
Automatización de procesos industriales
2. Ventajas de x10 Los sistemas de automatización 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 botón. También trabaja con los sistemas de alarma mas extendidos. Controle y compruebe el estado de su casa a distancia.
•
Añade Valor a la Propiedad. Una casa con un sistema automático se cotiza mas alto en el mercado inmobiliario. Su casa es mas fácil de vender. Incorpora características únicas que no tiene la competencia. Es un valor añadido que le da mayor categoría.
•
Calidad de Vida. Piense en todas las operaciones rutinarias que hace todos los días. Entra, enciende la luz de la entrada, luego la de la habitación, apaga la de fuera, enciende el baño, etc... ¿Se imagina que la televisión no tuviera mando a distancia?. ¿Recuerda cuando abría las puertas del coche con la llave.? ¿ Y cuando subía las ventanillas a mano.? Usted se ha gastado un montón 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 día. Al fin y al cabo usted no vive en el coche. (Aunque a veces se lo parezca).
•
Ahorro de Energía. Añadir inteligencia a su casa, además de ahorrar energía, la hace más respetuosa con el medio ambiente. Todo el mundo tiene claro que los cristales dobles ahorran energía. Pues de igual forma, un sistema que supervisa y controla las luces y electrodomésticos apagándolos cuando no son necesarios también ahorra energía.
•
Inversión 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 día que se mude. En cambio todos los productos X10 son tan fáciles de instalar y desinstalar que el día que se cambie de casa u oficina se los lleva consigo, igual que se llevaría la televisión, pues le seguirán sirviendo en su nueva ubicación.
•
Visión de Futuro. Una de la cosas que más preocupa cuando se invierte en tecnología hoy en día 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 (vídeos
78
Automatización de procesos industriales beta, CD vídeo, etc.). De entre los varios sistemas automáticos que tratan de imponerse en la actualidad, el sistema X10 es el único que sigue vigente después de más de 25 años y mas de cien millones de aparatos funcionando por todo el mundo. (Antiguamente solo en EEUU) actualmente ya se ha adaptado el sistema a 220V y se usa por toda Europa. En España, ya forma parte obligatoria en los planes de estudio de FP2 en la rama de electrónica.
79
Automatización de procesos industriales
3. Automatización inteligente No es lo mismo una casa inteligente, que una casa listilla. Es cierto que hoy en día hay programadores, interruptores a distancia, termostatos temporizados, etc. también es verdad que todos tienen el mismo problema. No son inteligentes, no interactúan 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 teléfono desde el coche y conecta la calefacción 2 horas antes de llegar. La gran diferencia del sistema X10, es que este es inteligente y los aparatos interactúan 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 lámparas del salón al 50%. ¿Son más 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 niño que se queda encendida tenuemente. Y todo esto de forma automática. ¿Que hoy no quiere la secuencia automática? Con solo un botón establece el nuevo modo de funcionamiento. Los sábados me voy de fin de semana. No tengo que preparar el programador pues el controlador inteligente pone en marcha el programa de simulación 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 proporcionándole todo lo que necesite para hacer su hogar inteligente.
80
Automatización de procesos industriales
LENGUAJE DE PROGRAMACIÓN JAVA
1. Introducción a la programación orientada a objetos 1.1 Programación Orientada a Objetos La orientación a objetos es un paradigma de programación que facilita la creación de software de calidad por sus factores que potencian el mantenimiento, la extensión y la reutilización del software generado bajo este paradigma. La programación orientada a objetos trata de amoldarse al modo de pensar del hombre y no al de la máquina. Esto es posible gracias a la forma racional con la que se manejan las abstracciones que representan las entidades del dominio del problema, y a propiedades como la jerarquía o el encapsulamiento.
El elemento básico de este paradigma no es la función (elemento básico de la programación estructurada), sino un ente denominado objeto. Un objeto es la representación de un concepto para un programa, y contiene toda la información 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 orientación a objetos como uno de los pilares básicos de su lenguaje.
81
Automatización de procesos industriales 1.2 Los objetos Podemos definir objeto como el "encapsulamiento” de un conjunto de operaciones (métodos) que pueden ser invocados externamente, y de un estado que recuerda el efecto de los servicios". [Piattini et al., 1996]. Un objeto además de un estado interno, presenta una interfaz para poder interactuar con el exterior. Es por esto por lo que se dice que en la programación orientada a objetos "se unen datos y procesos", y no como en su predecesora, la programación estructurada, en la que estaban separados en forma de variables y funciones.
Un objeto consta de: •
Tiempo de vida: La duración de un objeto en un programa siempre está limitada en el tiempo. La mayoría de los objetos sólo existen durante una parte de la ejecución del programa. Los objetos son creados mediante un mecanismo denominado instanciación, 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 métodos, para que el resto de objetos que componen los programas puedan interactuar con él.
El equivalente de un objeto en el paradigma estructurado sería una variable. Así mismo la instanciación de objetos equivaldría a la declaración de variables, y el tiempo de vida de un objeto al ámbito de una variable.
82
Automatización de procesos industriales 1.3 Las clases Las clases son abstracciones que representan a un conjunto de objetos con un comportamiento e interfaz común.
Podemos definir una clase como "un conjunto de cosas (físicas o abstractas) que tienen el mismo comportamiento y características... Es la implementación de un tipo de objeto (considerando los objetos como instancias de las clases)". [Piattini et al., 1996].
Una clase no es más que una plantilla para la creación de objetos. Cuando se crea un objeto (instanciación) se ha de especificar de qué clase es el objeto instanciado, para que el compilador comprenda las características 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 dinámica un espacio para tantas variables como atributos tenga la clase a la que pertenece el objeto.
Los métodos son las funciones mediante las que las clases representan el comportamiento de los objetos. En dichos métodos 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 programación estructurada, una clase se asemejaría a un módulo, los atributos a las variables globales de dicho módulo, y los métodos a las funciones del módulo.
83
Automatización de procesos industriales 1.4 Modelo de objetos Existen una serie de principios fundamentales para comprender cómo se modeliza la realidad al crear un programa bajo el paradigma de la orientación a objetos. Estos principios son: la abstracción, el encapsulamiento, la modularidad, la jerarquía, el paso de mensajes y el poliforfismo.
a.) Principio de Abstracción
Mediante la abstracción la mente humana modeliza la realidad en forma de objetos. Para ello busca parecidos entre la realidad y la posible implementación 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 células. Los humanos entendemos la realidad como objetos con comportamientos bien definidos. No necesitamos conocer los detalles de porqué ni cómo 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 abstracción humana se gestiona de una manera jerárquica, dividiendo sucesivamente sistemas complejos en conjuntos de subsistemas, para así entender más fácilmente la realidad. Esta es la forma de pensar que la orientación a objeto intenta cubrir.
84
Automatización de procesos industriales b.) Principio de Encapsulamiento
El encapsulamiento permite a los objetos elegir qué información es publicada y qué información es ocultada al resto de los objetos. Para ello los objetos suelen presentar sus métodos como interfaces públicas 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 métodos 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 sólo tengan que comprender su interfaz, olvidándose de cómo está implementada, y en definitiva, reduciendo la complejidad de utilización.
c.) Principio de Modularidad
Mediante la modularidad, se propone al programador dividir su aplicación en varios módulos diferentes (ya sea en forma de clases, paquetes o bibliotecas), cada uno de ellos con un sentido propio.
Esta fragmentación 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, además de facilitar la comprensión del programa.
85
Automatización de procesos industriales d.) Principio de Jerarquía
La mayoría de nosotros ve de manera natural nuestro mundo como objetos que se relacionan entre sí de una manera jerárquica. Por ejemplo, un perro es un mamífero, y los mamíferos son animales, y los animales seres vivos...
Del mismo modo, las distintas clases de un programa se organizan mediante la jerarquía. La representación de dicha organización da lugar a los denominados árboles de herencia:
Imagen 1: Ejemplo de árbol de herencia
Mediante la herencia una clase hija puede tomar determinadas propiedades de una clase padre. Así se simplifican los diseños y se evita la duplicación de código al no tener que volver a codificar métodos ya implementados.
Al acto de tomar propiedades de una clase padre se denomina heredar.
86
Automatización de procesos industriales e.) Principio del Paso de Mensajes
Mediante el denominado paso de mensajes, un objeto puede solicitar de otro objeto que realice una acción determinada o que modifique su estado. El paso de mensajes se suele implementar como llamadas a los métodos de otros objetos.
Desde el punto de vista de la programación estructurada, esto correspondería con la llamada a funciones.
f.) Principio de Polimorfismo
Polimorfismo quiere decir "un objeto y muchas formas". Esta propiedad permite que un objeto presente diferentes comportamientos en función del contexto en que se encuentre. Por ejemplo un método puede presentar diferentes implementaciones en función de los argumentos que recibe, recibir diferentes números de parámetros para realizar una misma operación, y realizar diferentes acciones dependiendo del nivel de abstracción en que sea llamado.
87
Automatización de procesos industriales 1.5 Relaciones entre objetos Durante la ejecución de un programa, los diversos objetos que lo componen han de interactuar entre sí para lograr una serie de objetivos comunes.
Existen varios tipos de relaciones que pueden unir a los diferentes objetos, pero entre
ellas
destacan
las
relaciones
de:
asociación,
todo/parte,
y
generalización/especialización.
a.) Relaciones de Asociación
Serían relaciones generales, en las que un objeto realiza llamadas a los servicios (métodos) de otro, interactuando de esta forma con él.
Representan las relaciones con menos riqueza semántica.
b.) Relaciones de Todo/Parte
Muchas veces una determinada entidad existe como conjunción de otras entidades, como un conglomerado de ellas. La orientación al objeto recoge este tipo de relaciones como dos conceptos; la agregación y la composición.
En este tipo de relaciones un objeto componente se integra en un objeto compuesto. La diferencia entre agregación y composición es que mientras que la composición se entiende que dura durante toda la vida del objeto componedor, en la agregación 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).
c.) Relaciones de Generalización/Especialización 88
Automatización de procesos industriales A veces sucede que dos clases tienen muchas de sus partes en común, lo que normalmente se abstrae en la creación de una tercera clase (padre de las dos) que reúne todas sus características comunes.
El ejemplo más extendido de este tipo de relaciones es la herencia, propiedad por la que una clase (clase hija) recoge aquellos métodos y atributos que una segunda clase (clase padre) ha especificado como "heredables".
Este tipo de relaciones es característico de la programación orientada a objetos.
En realidad, la generalización y la especialización son diferentes perspectivas del mismo concepto, la generalización es una perspectiva ascendente (bottom-up), mientras que la especialización es una perspectiva descendente (top-down).
Para más información sobre el modelo de objetos en la programación avanzada, y las relaciones entre objetos véase [García, 1998] o para una información más detallada consulte [Booch, 1996].
89
Automatización de procesos industriales
2. Historia de Java 2.1 ¿Por qué se diseñó Java? Los lenguajes de programación C y Fortran se han utilizado para diseñar algunos de los sistemas más complejos en lenguajes de programación estructurada, creciendo hasta formar complicados procedimientos. De ahí provienen términos como "código de espagueti" o "canguros" referentes a programas con múltiples saltos y un control de flujo difícilmente trazable.
No sólo se necesitaba un lenguaje de programación para tratar esta complejidad, sino un nuevo estilo de programación. Este cambio de paradigma de la programación estructurada a la programación orientada a objetos, comenzó hace 30 años 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 programación. Esta compatibilidad ("hacia atrás") que habitualmente se vende como una característica de C++ es precisamente su punto más débil. No es necesario utilizar un diseño orientado a objetos para programar en C++, razón 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 idénticas para declaración de variables, paso de parámetros, y demás, pero sólo considera las partes de C++ que no estaban ya en C.
90
Automatización de procesos industriales Las principales características que Java no hereda de C++ son: •
Punteros: Las direcciones de memoria son la característica más poderosa de C++. El inadecuado uso de los punteros provoca la mayoría de los errores de colisión de memoria, errores muy difíciles de detectar. Además, casi todos los virus que se han escrito aprovechan la capacidad de un programa para acceder a la memoria volátil (RAM) utilizando punteros. En Java, no existen punteros, evitando el acceso directo a la memoria volátil.
•
Variables globales: Con ellas cualquier función puede producir efectos laterales, e incluso se pueden producir fallos catastróficos cuando algún otro método cambia el estado de la variable global necesaria para la realización de otros procesos. En Java lo único global es el nombre de las clases.
•
goto: Manera rápida de arreglar un programa sin estructurar el código. Java no tiene ninguna sentencia goto. Sin embargo Java tiene las sentencias break y continue que cubren los casos importantes de goto.
•
Asignación de memoria: La función malloc de C, asigna un número especificado de bytes de memoria devolviendo la dirección de ese bloque. La función 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 están 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. Más tarde C++ añadió new y delete, que se usan de forma similar, siendo todavía 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 montículo de memoria. Con new no se obtiene una dirección de memoria sino un descriptor al objeto del montículo. La memoria
91
Automatización de procesos industriales real asignada a ese objeto se puede mover a la vez que el programa se ejecuta, pero sin tener que preocuparse de ello. Cuando no tenga ninguna referencia de ningún objeto, la memoria ocupada estará disponible para que la reutilice el resto del sistema sin tener que llamar a free o delete. A esto se le llama recogida de basura. El recolector de basura se ejecuta siempre que el sistema esté libre, o cuando una asignación solicitada no encuentre asignación suficiente. •
Conversión 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 precaución puesto que no hay nada previsto para detectar si la conversión es correcta en tiempo de ejecución. En Java se puede hacer una comprobación en tiempo de ejecución de la compatibilidad de tipos y emitir una excepción cuando falla.
92
Automatización de procesos industriales 2.2 Comienzos Java fue diseñado en 1990 por James Gosling, de Sun Microsystems, como software para dispositivos electrónicos de consumo. Curiosamente, todo este lenguaje fue diseñado antes de que diese comienzo la era World Wide Web, puesto que fue diseñado para dispositivos electrónicos como calculadoras, microondas y la televisión interactiva.
Imagen 2: Logotipo de la empresa Sun Microsystems
En los primeros años de la década de los noventa, Sun Microsystems decidió intentar introducirse en el mercado de la electrónica de consumo y desarrollar programas para pequeños dispositivos electrónicos. 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 inglés), aunque tuvo que cambiar de denominación, 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
Automatización de procesos industriales Tres de las principales razones que llevaron a crear Java son:
1. Creciente necesidad de interfaces mucho más cómodas e intuitivas que los sistemas de ventanas que proliferaban hasta el momento. 2. Fiabilidad del código y facilidad de desarrollo. Gosling observó que muchas de las características que ofrecían C o C++ aumentaban de forma alarmante el gran coste de pruebas y depuración. Por ello en los sus ratos libres creó un lenguaje de programación donde intentaba solucionar los fallos que encontraba en C++. 3. Enorme diversidad de controladores electrónicos. Los dispositivos electrónicos se controlan mediante la utilización de microprocesadores de bajo precio y reducidas prestaciones, que varían cada poco tiempo y que utilizan diversos conjuntos de instrucciones. Java permite escribir un código común para todos los dispositivos.
Por todo ello, en lugar de tratar únicamente de optimizar las técnicas de desarrollo y dar por sentada la utilización 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 programación lo más sencillo posible, con el objeto de que se pudiese adaptar con facilidad a cualquier entorno de ejecución.
Basándose en el conocimiento y estudio de gran cantidad de lenguajes, este grupo decidió recoger las características esenciales que debía tener un lenguaje de programación moderno y potente, pero eliminando todas aquellas funciones que no eran absolutamente imprescindibles.
Para más información véase [Cuenca, 1997].
94
Automatización 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 consistía en un sistema de control completo de los aparatos electrónicos 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 representación de la casa de forma animada y el control se llevaba a cabo mediante una pantalla sensible al tacto. En el sistema aparecía ya Duke, la actual mascota de Java.
Imagen 3: Icono de Duke, la mascota de Java
Más tarde Java se aplicó a otro proyecto denominado VOD (Video On Demand) en el que se empleaba como interfaz para la televisión interactiva que se pensaba iba a ser el principal campo de aplicación 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 televisión interactiva no iba a ser un gran éxito, instaron a FirstPerson a desarrollar nuevas estrategias que produjeran beneficios. Entre ellas se encontraba la aplicación de Java a Internet, la cual no se consideró productiva en ese momento.
Para más información véase [Froufe, 1997].
95
Automatización de procesos industriales 2.4 Resurgimiento de Java Aunque muchas de las fuentes consultadas señalan que Java no llegó a caer en un olvido, lo cierto es que tuvo que ser Bill Joy (cofundador de Sun y uno de los desarrolladores principales del sistema operativo Unix de Berckley) el que sacó a Java del letargo en que estaba sumido. Joy juzgó que Internet podría llegar a ser el campo adecuado para disputar a Microsoft su primacía en el terreno del software, y vio en Oak el instrumento idóneo para llevar a cabo estos planes.
Para poder presentarlo en sociedad se tuvo que modificar el nombre de este lenguaje de programación y se tuvo que realizar una serie de modificaciones de diseño para poderlo adaptar al propósito mencionado. Así Java fue presentado en sociedad en agosto de 1995.
Algunas de las razones que llevaron a Bill Joy a pensar que Java podría llegar a ser rentable son: •
Java es un lenguaje orientado a objetos: Esto es lo que facilita abordar la resolución de cualquier tipo de problema.
•
Es un lenguaje sencillo, aunque sin duda potente.
•
La ejecución del código 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 operación le sea permitida de forma explícita. De este modo, los datos del usuario quedan a salvo de la existencia de virus escritos en Java. La ejecución segura y controlada del código Java es una característica única, que no puede encontrarse en ninguna otra tecnología.
96
Automatización de procesos industriales •
Es totalmente multiplataforma: Es un lenguaje sencillo, por lo que el entorno necesario para su ejecución es de pequeño tamaño y puede adaptarse incluso al interior de un navegador.
Las consecuencias de la utilización de Java junto a la expansión universal de Internet todavía están comenzando a vislumbrarse.
Para más información véase [Froufe, 1997].
97
Automatización de procesos industriales 2.5 Futuro de Java Existen muchas críticas a Java debido a su lenta velocidad de ejecución, aproximadamente un 20 veces más lento que un programa en lenguaje C. Sun está trabajando intensamente en crear versiones de Java con una velocidad mayor.
El problema fundamental de Java es que utiliza una representación intermedia denominada código de byte para solventar los problemas de portabilidad. Los códigos de byte posteriormente se tendrán que transformar en código máquina en cada máquina en que son utilizados, lo que ralentiza considerablemente el proceso de ejecución.
La solución que se deriva de esto parece bastante obvia: fabricar ordenadores capaces de comprender directamente los códigos de byte. Éstas serían unas máquinas que utilizaran Java como sistema operativo y que no requerirían en principio de disco duro porque obtendrían 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 máquinas ha sido Oracle, que en enero de 1996 presentó en Japón su primer NC (Network Computer), basado en un procesador RISC con 8 Megabytes de RAM. Tras Oracle, han sido compañías del tamaño 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 utilización, ha licenciado Java, lo ha incluido en Internet Explorer (versión 3.0 y posteriores), y ha lanzado un entorno de desarrollo para Java, que se denomina Visual J++.
98
Automatización de procesos industriales El único problema aparente es la seguridad para que Java se pueda utilizar para transacciones críticas. Sun va a apostar por firmas digitales, que serán clave en el desarrollo no sólo de Java, sino de Internet.
Para más información véase [Framiñán, 1997].
99
Automatización de procesos industriales 2.6 Especulación sobre el futuro de Java En opinión de los redactores de este tutorial, Java es una plataforma que le falta madurar, pero que a buen seguro lo va a hacer. La apuesta realizada por empresas con mucho peso específico ha sido tan grande que va a dar un impulso a Java que no le permitirá caer
Además, 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 relación simbiótica que tiene con Internet (y por derivación con las Intranets) es un punto a favor de Java de muy difícil refutación.
100
Automatización de procesos industriales
3. CARACTERÍSTICAS DE JAVA 3.1 Introducción 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 tecnológico: •
Es un lenguaje de programación que ofrece la potencia del diseño orientado a objetos con una sintaxis fácilmente accesible y un entorno robusto y agradable.
•
Proporciona un conjunto de clases potente y flexible.
•
Pone al alcance de cualquiera la utilización de aplicaciones que se pueden incluir directamente en páginas Web (aplicaciones denominadas applets).
Java aporta a la Web una interactividad que se había buscado durante mucho tiempo entre usuario y aplicación.
A lo largo de este apartado se estudian en detalle las principales características de Java.
101
Automatización de procesos industriales 3.2 Potente a.) Orientación a objetos
En este aspecto Java fue diseñado 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 fácil de ampliar. Además se conservan elementos "no objetos", como números, caracteres y otros tipos de datos simples.
b.) Riqueza semántica
Pese a su simpleza se ha conseguido un considerable potencial, y aunque cada tarea se puede realizar de un número reducido de formas, se ha conseguido un gran potencial de expresión e innovación desde el punto de vista del programador.
c.) Robusto
Java verifica su código al mismo tiempo que lo escribe, y una vez más antes de ejecutarse, de manera que se consigue un alto margen de codificación sin errores. Se realiza un descubrimiento de la mayor parte de los errores durante el tiempo de compilación, 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 gestión de memoria, Java libera al programador del compromiso de tener que controlar especialmente la asignación que de ésta hace a sus necesidades específicas. Este lenguaje posee una gestión avanzada de memoria llamada gestión de basura, y un manejo de excepciones orientado a objetos integrados. Estos elementos realizarán muchas tareas antes tediosas a la vez que obligadas para el programador.
102
Automatización de procesos industriales d.) Modelo de objeto rico
Existen varias clases que contienen las abstracciones básicas para facilitar a los programas una gran capacidad de representación. Para ello se contará con un conjunto de clases comunes que pueden crecer para admitir todas las necesidades del programador.
Además la biblioteca de clases de Java proporciona un conjunto único de protocolos de Internet.
El conjunto de clases más complicado de Java son sus paquetes gráficos AWT (Abstract Window Toolkit) y Swing. Estos paquetes implementan componentes de una interfaz de usuario gráfica básica común a todos los ordenadores personales modernos.
103
Automatización de procesos industriales 3.3 Simple a.) Fácil aprendizaje
El único requerimiento para aprender Java es tener una comprensión de los conceptos básicos de la programación 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 más complejo que un lenguaje simple, pero más sencillo que cualquier otro entorno de programación. El único obstáculo que se puede presentar es conseguir comprender la programación orientada a objetos, aspecto que, al ser independiente del lenguaje, se presenta como insalvable.
b.) Completado con utilidades
El paquete de utilidades de Java viene con un conjunto completo de estructuras de datos complejas y sus métodos asociados, que serán de inestimable ayuda para implementar applets y otras aplicaciones más complejas. Se dispone también de estructuras de datos habituales, como pilas y tablas hash, como clases ya implementadas.
Existirá una interfaz Observer/Observable que permitirá la implementación simple de objetos dinámicos cuyo estado se visualiza en pantalla.
El JDK (Java Development Kit) suministrado por Sun Microsystems incluye un compilador, un intérprete de aplicaciones, un depurador en línea de comandos, y un visualizador de applets entre otros elementos.
104
Automatización de procesos industriales 3.4 Interactivo y orientado a red a.) Interactivo y animado
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 debería suceder y cuándo. Para se da soporte a la utilización de múltiples hilos de programación (multithread).
Las aplicaciones de Java permiten situar figuras animadas en las páginas Web, y éstas pueden concebirse con logotipos animados o con texto que se desplace por la pantalla. También pueden tratarse gráficos generados por algún proceso. Estas animaciones pueden ser interactivas, permitiendo al usuario un control sobre su apariencia.
b.) Arquitectura neutral
Java está diseñado 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 compilación en una representación intermedia que recibe el nombre de códigos de byte, que pueden interpretarse en cualquier sistema operativo con un intérprete de Java. La desventaja de un sistema de este tipo es el rendimiento; sin embargo, el hecho de que Java fuese diseñado para funcionar razonablemente bien en microprocesadores de escasa potencia, unido a la sencillez de traducción a código máquina hacen que Java supere esa desventaja sin problemas.
105
Automatización de procesos industriales c.) Trabajo en red
Java anima las páginas Web y hace posible la incorporación de aplicaciones interactivas y especializadas. Aporta la posibilidad de distribuir contenidos ejecutables, de manera que los suministradores de información de la Web pueden crear una página de hipertexto (página Web) con una interacción continuada y compleja en tiempo real; el contenido ejecutable es transferido literalmente al ordenador del usuario.
Los protocolos básicos para trabajar en Internet están 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á diseñado para cumplir los requisitos de entrega de contenidos interactivos mediante el uso de applets insertados en sus páginas HTML. Además, las clases de Java admiten muy bien estos protocolos y formatos. El envío de las clases de Java a través de Internet se realiza con gran facilidad, ya que existe una interfaz unificada, resolviendo así los típicos problemas de diferencia de versiones.
Java proporciona un conjunto de clases para tratar con una abstracción de los conectores de red (sockets) originales de la versión UNIX de Berckley, encapsular la noción de una dirección 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 interés del usuario durante largo tiempo y permite a los programadores convertir la Web en un sistema de entrega de software.
106
Automatización de procesos industriales d.) Applets
Una applet (miniaplicación) es un pequeño programa en Java transferido dinámicamente a través de Internet. Presentan un comportamiento inteligente, pudiendo reaccionar a la entrada de un usuario y cambiar de forma dinámica. 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
Automatización de procesos industriales 3.5 Y mucho más a.) Seguridad
Existe una preocupación lógica 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 diseñado 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.
Los niveles de seguridad que presenta son: •
Fuertes restricciones al acceso a memoria, como son la eliminación de punteros aritméticos y de operadores ilegales de transmisión.
•
Rutina de verificación de los códigos de byte que asegura que no se viole ninguna construcción del lenguaje.
•
Verificación 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.
En futuras versiones se prevé contar también con encriptación y técnicas similares.
108
Automatización de procesos industriales b.) Lenguaje basado en C++
Java fue desarrollado basándose en C++, pero eliminando rasgos del mismo poco empleados, optándose por una codificación comprensible. Básicamente, 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 múltiple.
•
Java maneja argumentos en la línea 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 automático para asignar y liberar memoria, con lo que no es necesario utilizar las funciones previstas con este fin en C y C++.
c.) Gestión de la Entrada/Salida
En lugar de utilizar primitivas como las de C para trabajar con ficheros, se utilizan primitivas similares a las de C++, mucho más elegantes, que permiten tratar los ficheros, sockets, teclado y monitor como flujos de datos.
De este modo se pueden utilizar dichas primitivas para cualquier operación de Entrada/Salida.
109
Automatización de procesos industriales d.) Diferentes tipos de aplicaciones
En Java podemos crear los siguientes tipos de aplicaciones: •
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 gráficamente a otros componentes.
•
JavaScript: Conjunto del lenguaje Java que puede codificarse directamente sobre cualquier documento HTML
•
Servlets: Módulos 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 páginas Web.
110
Automatización de procesos industriales
4. Comparativa con otros lenguajes orientados a objeto 4.1 Introducción En este apartado se va a comparar Java con otros lenguajes de programación orientados a objeto.
En principio Java fue diseñado tomando C y C++ como base para la creación de un nuevo lenguaje con la modificación de todos aquellos aspectos que no eran útiles o dificultosos para la programación de componentes electrónicos de bajo coste. Para ello el nuevo lenguaje debía incluir interfaces cómodas, debía ser fiable y fácil de desarrollar y los programas debían ser portables de un sistema a otro sin ningún tipo de problema.
4.2 Comparación de los tipos de datos a.) Tipos de datos simples (primitivos)
Java es muy parecido a C++ en el juego básico de tipos de datos con algunas pequeñas 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 numéricos, booleanos o caracteres.
111
Automatización de procesos industriales b.) Datos numéricos
Hay cuatro tipos numéricos: byte de 1 byte, short de 2 bytes, int de 4 bytes, y los long de 8 bytes. El tipo más habitual de los cuatro es el tipo int. El byte viene a sustituir el tipo char de C++, ya que Java introduce una interpretación diferente al tipo de datos char.
Las principales diferencias con C++ son: •
No existe un tipo sin signo (unsigned) para los números en Java.
•
Los tipos numéricos reales son el float (8 bytes) y el double (16 bytes).
•
Los números que utilizan coma flotante (por ejemplo 18.96) son considerados double por defecto, y habrá que realiza un moldeado (casting) explícito para que sean float.
c.) Caracteres
Los datos carácter 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 representación del planeta.
El carácter de datos del lenguaje Java proviene del tradicional C. Hay que señalar que los caracteres en C++ eran de sólo 1 byte, con lo que en Java podremos representar muchos más caracteres que en C++.
112
Automatización de procesos industriales d.) Datos booleanos
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 numéricos, y es un tipo de datos básico.
4.3 Operadores relacionales y aritméticos. Se permite en Java los mismos operadores que C++, con la variación de >>> (desplazamiento sin signo) y la utilización del operador + para la concatenación de cadenas de caracteres.
4.4 Vectores Los vectores en Java, a diferencia de C++, son una clase de objetos. Un vector es un objeto real con una representación en tiempo real. Se pueden declarar y almacenar vectores de cualquier tipo, y almacenar también 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:
Las que se obtienen de la clase String, para cadenas de sólo lectura.
113
Automatización de procesos industriales Las que se obtienen de la clase StringBuffer para cadenas que se pueden modificar.
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++ sería como vector de caracteres con el carácter fin de cadena ‘\0’ al final de la misma).
114
Automatización de procesos industriales F. Otras características
a.) Introducción
En este apartado se va a comparar Java con los lenguajes C++ y Smalltalk (primer lenguaje que presentaba un modelo de objeto).
Característica
Java
Smalltalk
C++
Sencillez
Sí
Sí
No
Robustez
Sí
Sí
No
Seguridad
Sí
Algo
No
Interpretado
Sí
Sí
No
Dinamicidad
Sí
Sí
No
Portabilidad
Sí
Algo
No
Neutralidad
Sí
Algo
No
Threads
Sí
No
No
Garbage Collection
Sí
Sí
No
Excepciones
Sí
Sí
Algunas
Representación
Alta
Media
Alta
Tabla 1: Comparación entre Java, SmallTalk y C++
115
Automatización de procesos industriales b.) Sencillez
Java tiene una sencillez que no posee C++ aunque sí Smalltalk. Esto es debido a que una de las razones de la creación de Java es la de obtener un lenguaje parecido a C++ pero reduciendo los errores más comunes de la programación, algo que se logra con mucho éxito puesto que Java reduce un 50% los errores que se comenten en C++ entre los que destacan: •
Eliminación de la aritmética de punteros y de las referencias.
•
Desaparecen los registros (struct), heredados del paradigma estructurado.
•
No se permite ni la definición 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 eliminación de palabras reservadas, y la utilización de un intérprete bastante pequeño.
c.) Robustez
Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como en tiempo de ejecución, 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: •
Verificación del código de byte.
•
Gestión de excepciones y errores.
•
Comprobación de punteros y de límites de vectores.
Se aprecia una clara diferencia con C++ quién no realiza ninguna de estas verificaciones.
116
Automatización de procesos industriales d.) Seguridad
En Java no se permite los accesos ilegales a memoria, algo que sí se permitía en C++. Esto es algo muy importante puesto que este tipo de problema puede ocasionar la propagación de virus y otras clases de programas dañinos por la red.
El código Java pasa muchos tests antes de ejecutarse en una máquina. El código se pasa a través de un verificador de código de byte que comprueba el formato de los fragmentos de código y aplica un probador de teoremas para detectar fragmentos de código ilegal, código 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 códigos de byte si pasan la verificación sin generar ningún mensaje de error son: •
El código no produce desbordamiento de operandos en la pila.
•
El tipo de los parámetros de todos los códigos de operación es conocido y correcto.
•
No ha ocurrido ninguna conversión 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.
•
No hay ningún intento de violar las reglas de acceso y seguridad establecidas.
Por todo esto, y por no permitirlo mediante Java la utilización de métodos de un programa sin los privilegios del núcleo (kernel) del sistema operativo, la obligación de autentificación por clave pública para la realización de modificaciones, se considera
117
Automatización de procesos industriales Java un lenguaje seguro. Todo esto no lo incorporan ni C++ ni Smalltalk, por lo que Java es el único de los tres considerable como seguro.
e.) Lenguaje interpretado
Java es un lenguaje que puede ejecutar el código directamente, es decir es un "lenguaje interpretado". Esto es una característica que sí que posee Smalltalk, aunque no C++. No obstante, y aunque en teoría se consumen menos recursos siendo los lenguajes interpretados, el actual compilador que existe es bastante lento, unas 20 veces menos rápido que C++. Esto normalmente no es vital para la aplicación ni demasiado apreciable por el usuario, y además esta diferencia se está reduciendo con los nuevos compiladores JIT (Just In Time).
f.) Dinamicidad
Para la obtención de un mayor provecho de la tecnología orientada a objetos, Java no intenta conectar todos los módulos que comprenden una aplicación hasta el tiempo de ejecución. Esta característica ya es contemplada por Smalltalk, aunque no C++, que enlaza todos los módulos cuando se compila.
g.) Portabilidad
Un programa Java puede ser ejecutado en diferentes entornos, algo imposible para C++.
118
Automatización de procesos industriales h.) Neutralidad
Se dice que Java tiene una arquitectura neutra puesto que compila su código a un fichero objeto de formato independiente de la arquitectura de la máquina en que se ejecutará.
Cualquier máquina que tenga el sistema de ejecución (JRE o Java Runtime Enviroment) puede ejecutar ese código objeto, sin importar en modo alguno la máquina en que ha sido generado.
Actualmente existen sistemas de ejecución (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 código generado podrá ejecutarse únicamente en la plataforma en la que se generó.
i.) Threads
Java permite múltiples hilos (multithreading) antes de su ejecución y en tiempo de ejecución. La posibilidad de construir pequeños procesos o piezas independientes de un gran proceso permite programar de una forma más sencilla y es una herramienta muy potente que no se ofrece en C++.
119
Automatización de procesos industriales j.) Recolección automática de basura ( Garbage collection )
Java modifica completamente la gestión 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 ejecución difícilmente depurables.
Java tiene operadores nuevos para reservar memoria para los objetos, pero no existe ninguna función explícita para liberarla.
La recolección de basura (objetos ya inservibles) es una parte integral de Java durante la ejecución de sus programas. Una vez que se ha almacenado un objeto en el tiempo de ejecución, 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 vacía ese espacio de memoria para un uso futuro.
Esta gestión de la memoria dinámica hace que la programación en Java sea más fácil.
k.) Representación
Uno de los objetivos perseguidos en el desarrollo de Java era la obtención de programas con interfaces cómodas e intuitivas. Esto también se permite en C++, aunque con unos métodos más costosos, y en ningún caso con interfaces portables como los que Java crea.
Tanto en Java como en C++ se logran unas interfaces con una representación mejor que la que se puede alcanzar con Smalltalk.
120
Automatización de procesos industriales
AUTENTIFICACIÓN MANEJADA POR EL CONTENEDOR EN TOMCAT. Introducción El mayor trabajo para dotar de seguridad a la aplicación está mas en la configuración que en la programación, el trabajo consiste en configurar apropiadamente los ficheros XML necesarios para que Tomcat lleve a cabo la autentificación definida nosotros como se indica la especificación de Servlets 2. La guía a seguir, es la especificación de los Servlets. Tomcat 3.2.* sigue la especificación 2.2, mientras que Tomcat 4.* se esta ajustando a la 2.3, aunque esta aún se esta escribiendo, el trabajo se hace en paralelo. Pero en cuestiones de seguridad la especificación parece que no cambiará demasiado, por eso, la mayor diferencia entre Tomcat 3.* y Tomcat 4.* esta más en el diseño y trabajo interno que en la configuración.
La especificación de Servlets 2.2. La especificación 2.2 de Servlets indica las directrices que los contenedores de Servlets tienen que ofrecer para ser compatibles. Una de estas directrices es la referente a la autentificación de usuarios para proteger los recursos de nuestra aplicación web. Esta directriz hará que sea el servidor el que se ocupe de proteger nuestros recursos de forma automática sin que nosotros escribamos una línea de código, solo tendremos que configurar los descriptores XML, tanto de Tomcat (para decidir el método de autentificación), como de la aplicación (para decidir que recursos son los protegidos). Esta funcionalidad de Tomcat aporta una funcionalidad muy elevada (al igual que todos los servidores que sigan la especificación 2.2 o posterior). El desarrollador de la aplicación web no tiene que preocuparse de nada referente a la autentificación, simplemente indicar los enlaces entre las páginas que necesite. Será el encargado de desplegar la aplicación el que por medio del descriptor XML establezca que recursos
121
Automatización de procesos industriales son los protegidos, y Tomcat, se encargará de que el usuario se autentifique antes de dejarle acceder a ese recurso. La especificación de Servlets 2.2 ofrece cuatro tipos de autentificación : •
BASIC: Es la más sencilla. Consiste en un pop-up en el cual se han de introducir el usuario y la contraseña. Si se da un usuario válido 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 estética de la aplicación, por lo que no se usa en aplicaciones de cara al cliente.
•
FORM: Lo que nos aparecerá en esta ocasión será un formulario diseñado y definido por el programador. Como siempre, si se introduce una pareja usuariocontraseña válida se accede al recurso protegido, y si no, aparece una página de login erroneo que también puede ser definida por el programador. Al estar tan metido dentro de la aplicación (son paginas web, como el resto de la aplicacion), es el método más usado.
•
CLIENT-CERT: Este método requiere un certificado del lado del cliente.
•
DIGEST: Método un poco más avanzado que el método BASIC.
Tipos de autentificación definidos. La especificación también define tres modos para indicar la seguridad del transporte de los datos a través de la Web. •
NONE: Ningún tipo de cifrado.
•
CONFIDENTIAL: Utilización de SSL. Aporta confidencialidad e integridad.
•
INTEGRAL: Aporta integridad del mensaje. Normalmente los servidores usan SSL con el fin de aportar este tipo de autentificación, aunque no es imprescindible.
122
Automatización de procesos industriales Modos de transporte La especificación de Servlets (y de J2EE) basa la autentificación en dos aspectos : usuarios y roles. El termino rol, es una forma de llamar a los grupos de usuarios. La seguridad de J2EE esta basada en estos roles dado que en un sistema habrá un número mucho más pequeño de grupos que de usuarios, por lo que se consigue simplicidad si se
123
Automatización de procesos industriales
Dominios de seguridad en Tomcat (server.xml). Tomcat ofrece dos dominios de seguridad (aunque también esté la posibilidad de crear nuestros propios dominios, de hecho Tomcat 4 ofrece un nuevo dominio que sería el tercero). El termino anglosajón es Security Realms,. Estos dominios son en realidad dos clases que se encargan de recibir los datos del usuario al autentificarse y los contrasta con los datos que tiene Tomcat, se prestan distintas posibilidades: 1. Contra un fichero XML (tomcat-users.xml) 2. Contra una base de datos que disponga un driver JDBC 3. Contra un servidor LDAP con Tomcat4.
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>
Autentificación mediante una Base de Datos Realizar la autentificación por medio de una base de datos JDBC requiere un poco más de trabajo. La base de datos en cuestión requiere tres tablas para que funcione correctamente. Los nombres de las tablas y las columnas se pueden personalizar, pero debido a su uso no es imprescindible. Esta información se puede obtener del fichero JDBCRealm.howto.
124
Automatización de procesos industriales Se da por hecho el uso de una base de datos con drivers JDBC disponible, en el caso utilizado para el ejemplo se usa MySQL, además se ha de tener en cuenta que el driver JDBC para manejar bases de datos MySQL ha de estar en el directorio TOMCAT_HOME\lib. La estructura de las tablas es la siguiente •
Una tabla de usuarios para almacenar los usuarios, con su nombre y password create table usuarios ( nombre_usuario varchar(15) not null primary key, password_usuario varchar(15) not null );
•
Una tabla de roles que contiene el nombre de los mismos. create table roles ( nombre_rol varchar(15) not null primary key );
•
Una tabla que relaciona los usuarios con los roles. create table usuarios_roles ( nombre_usuario varchar(15) not null, nombre_rol varchar(15) not null, primary key( nombre_usuario, nombre_rol ) );
Script de ejemplo para la confeccion de los datos almacenados en las tablas descritas
insert into usuarios values ('tomcat', 'tomcat'); insert into usuarios values ('javahispano', 'javahispano');
insert into roles values ('administrador');
125
Automatización de procesos industriales insert into roles values ('usuario');
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 sección de RequestInterceptor para Tomcat 3 y en la sección 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 configuración por defecto, aunque a continuación se indica como realizar la configuración para utilizar bases de datos. Lo primero es indicar en el fichero de contexto el modo de seguridad para la aplicación. <Realm className="org.apache.catalina.realm.JDBCRealm"
y a continuación configurar el acceso a la base de datos por el servidor de aplicaciones connectionName="tomcat" connectionPassword="tomcat" driverName="com.mysql.jdbc.Driver"
Y por último configurar para los distintos conceptos presentes en la autentificación, usuario, password y rol, su localización indicando, base de datos, tablas y columnas. 126
Automatización de procesos industriales connectionURL="jdbc:mysql://localhost:3306/usuarios" userTable="usuarios" userNameCol="usuario" userCredCol="password" userRoleTable="roles" roleNameCol="rol" />
En función de donde se localice nuestra configuración, refiriéndose a ficheros XML, se estará configurando la para todo el servidor, para un servidor virtual, o para una única aplicación.
127
Automatización de procesos industriales
Configuración de una aplicación. El primer paso es crear una aplicación de la forma que se ha descrito anteriormente Tomcat , actualmente solo ha implementado el modo de autentificación BASIC y FORM. En el ejemplo siguiente, primero se preparará la aplicación para utilizar la autentificación básica, y después se pasará a ver como hacerlo con formularios, que requiere más atención a pesar de que el proceso es muy similar.
Autentificación BASIC. Una vez creada la aplicación 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 están protegidos. Para este ejmplo estarán TODOS
128
Automatización de procesos industriales los ficheros de la aplicacion (se pedirá autentificación con cualquier petición de acceso). Se pueden indicar tantos elementos url-pattern como sean necesarios --> <url-pattern>/*</url-pattern> <!-A continuación se indican los métodos por los que no se puede acceder --> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection>
<!-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. -->
<user-data-constraint> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> </security-constraint>
<!-Por ultimo se idica el método por el que se realizará la autentificación. BASIC. --> <login-config> <auth-method>BASIC</auth-method> <realm-name>Ejemplo de autentificacion basica</realm-name> </login-config>
129
Automatización de procesos industriales </web-app>
Una vez es hayan realizado los pasos indicados, ya se habrá dotado de seguridad( BASIC-NONE) a la aplicación. Cuando se intente acceder a está, se mostrará una pantalla como la aquí mostrada para introducir el usuario y la clave.
Autentificación FORM. La primera acción a realizar es definir los formularios que utilizará la aplicación, 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 diseño distinto al original su error en la autentificación. En realidad no es necesario que este segundo sea también un formulario HTML, puede ser una página 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
Automatizaciรณn de procesos industriales <h3>www.javahispano.com</h3> <br><br> <form method="post" action="j_security_check"> Usuario: <input type="text" name="j_username"><br> Password: <input type="text" name="j_password"><br> </form> </body> </html>
Formulario que se presentarรก cuando los datos sean incorrectos, login_error.html: <html> <head> <title> Login de aplicacion que requiere autentificacion </title> </head> <body> <h2>Login</h2> <br> <h3>www.javahispano.com</h3> <br><br> <font color="#FF0000"> <h3>Datos incorrectos.<br></h3> Por favor vuelva a intentarlo. </font> <br><br> <form method="post" action="j_security_check"> Usuario: <input type="text" name="j_username"><br> Password: <input type="text" name="j_password"><br> <input type="submit" value="Login"> </form> </body> </html>
Se debe prestar atenciรณn en los distintos valores del formulario, ya que estos son estandar definidos en la especificaciรณn 2.2 con el fin de conseguir la portabilidad de las aplicaciones entre los servidores.
131
Automatización de procesos industriales El formulario ha de enviarse por método POST, y la acción que se realizará será j_secutiry_check. Los campos que tienen los datos del usuario deben llamarse j_username y j_password.
En este punto el único cambio necesario frente a lo explicado en el ejemplo anterior es el elemento login-config del descriptor de la aplicación, web.xml para que use la autentificación . <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 raíz de nuestra aplicación. --> <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 atención al caso en el que sea necesario proteger la aplicación completa y usar la autentificación con formulario (aunque no daría problemas con la básica), dado que el formulario de entrada también se convertiría en un recurso protegido, por lo cual Tomcat no podría mostrarlo y produciría un error. Si se desea hacer algo así, simplemente se habrá de grabar la aplicación en un directorio de acceso restringido y dejar los formularios fuera de éste.
132
Automatización de procesos industriales
Problemas con Apache y Tomcat Aunque Tomcat puede servir contenidos estáticos, normalmente se usa en conjunción con un servidor Web, muchas veces Apache, de forma que el servidor web se encarga de servir los contenidos estáticos, y Tomcat de los Servlets y de las páginas JSP. Esto se hace para liberar de trabajo a Tomcat, pero puede ser un problema a la hora de manejar la autentificación por medio del contenedor de Servlets. El problema esta en que al definir las restricciones de seguridad en Tomcat, algunas peticiones, las del contenido estático, no llegan a Tomcat, si no que las satisface el servidor Web directamente. Esto hace, que por ejemplo, la pagina secreta.html sea mostrada sin pedir la autentificación del usuario aunque este en un directorio declarado restringido por Tomcat. Una solución sería transformar todas esas páginas a JSP, con solo cambiar la extensión sería suficiente. Otra solución sería decirle a Apache que le pasase todas las peticiones de nuestra aplicación a Tomcat. Aunque el ejemplo que se mostrará consistirá en pasarle solo las peticiones de los recursos protegidos. Se ha de añadir el directorio o directorios que estén protegidos para que sean administrados por Tomcat, sea contenido estático o dinámico. Simplemente se añade una línea de la forma: JkMount /mi_aplicacion/protegido/* ajp13 Para que Tomcat administrase toda la aplicación y sirviese tanto el contenido estático como el dinámico, se debe sustituir las líneas anteriores por una de la forma: JkMount /mi_aplicacion/* ajp13 Como último punto, si Tomcat no se encarga de servir todas las peticiones a la aplicación, se tendrá que indicar a Apache que le pase a Tomcat otra dirección interesante, la que se encarga de autentificar a los usuarios, que como se ha visto anteriormente es j_security_check. JkMount /mi_aplicacion/j_security_check ajp13
133
Automatización de procesos industriales
EXTENSIBLE MARKUP LENGUAJE (XML) 1. Introducción a XML XML (eXtensible Markup Language) no es, como su nombre podría sugerir, un lenguaje de marcado. XML es un meta-lenguaje que nos permite definir lenguajes de marcado adecuados a usos determinados.
El HTML (HyperText Markup Language) se ha convertido en el lenguaje estándar (o lingua franca) del World Wide Web. En sus casi diez años de andadura, y tras una fase de desarrollo más o menos turbulento, se ha confirmado como un estándar aceptado y aprobado por la industria. HTML se puede considerar una aplicación 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 páginas aprenderemos cómo crear documentos XML bien-formados, y que además sean válidos, es decir, que estén conformes a una Definición de Tipo de Documento (DTD) dada. Además veremos la creación y uso de hojas de estilo (XSL) para la presentación de los datos, así como diferentes aplicaciones actuales de XML.
134
Automatización de procesos industriales 2. Estructura de un documento XML Aunque a primera vista, un documento XML puede parecer similar a HTML, hay una diferencia principal. Un documento XML contiene datos que se autodefinen, exclusivamente. Un documento HTML contiene datos mal definidos, mezclados con elementos de formato. En XML se separa el contenido de la presentación de forma total.
Una forma de entender rápidamente la estructura de un documento XML, es viendo un pequeño 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 gráfica, para comprender mejor la estructura de un documento XML. 135
Automatizaciรณn de procesos industriales
136
Automatización de procesos industriales 3. Documentos XML bien-formados
Existen un número 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.
Estructura jerárquica de elementos
Los documentos XML deben seguir una estructura estrictamente jerárquica con lo que respecta a las etiquetas que delimitan sus elementos. Una etiqueta debe estar correctamente "incluida" en otra. Además, los elementos con contenido, deben estar correctamente "cerrados". En el siguiente ejemplo, la primera línea sería incorrecta en XML, no así la segunda:
<LI>HTML <B>permite <I>esto</B></I>.
<LI>En XML la <B>estructura <I>es</I> jerárquica</B>.</LI>
Etiquetas vacías
HTML permite elementos sin contenido. Como veremos más adelante, XML también, pero la etiqueta debe ser de la siguiente forma: <elemento-sincontenido/> En el siguiente ejemplo, la primera línea sería incorrecta en XML, no así la segunda:
<LI>Esto es HTML<BR>en el que casi todo está permitido</LI>
137
Automatización de procesos industriales <LI>En XML, somos<BR/> más restrictivos.</LI>
Un solo elemento raíz
Los documentos XML sólo permiten un elemento raíz, del que todos los demás sean parte. Es decir, la jerarquía de elementos de un documento XML bien-formado sólo 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 línea sería incorrecta en XML, no así la segunda:
<A HREF=http://www.disney.com/>
<A HREF="http://www.developer.com/">
Tipo de letra, espacios en blanco
El XML es sensible al tipo de letra utilizado, es decir, trata las mayúsculas y minúsculas 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
Automatización de procesos industriales "espacios" (Unicode/ASCII 32), tabuladores (Unicode/ASCII 9), retornos de carro (Unicode/ASCII 13) y los saltos de línea (Unicode/ASCII 10).
La especificación XML 1.0 permite el uso de esos "espacios en blanco" para hacer más legible el código, 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 líneas de párrafos 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 características en común.
Según la especificación XML 1.0
Un nombre [empieza] con una letra o uno o más signos de puntuación, y [continúa] con letras, dígitos, 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 estandarización de esta o de futuras versiones de esta especificación.
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. También se pueden incluir dígitos, guiones y caracteres de punto, pero no se puede empezar por ninguno de ellos. El resto de caracteres, como algunos símbolos, y espacios en blanco, no se pueden usar.
139
AutomatizaciĂłn de procesos industriales
Marcado y datos
Las construcciones como etiquetas, referencias de entidad y declaraciones se denominan "marcas". Ă&#x2030;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
Automatización de procesos industriales 4. El Prólogo Aunque no es obligatorio, los documentos XML pueden empezar con unas línea que describen la versión de XML, el tipo de documento, y otras cosas.
La primera, o "declaración XML", define la versión de XML usada. Hasta ahora sólo hay una, la "1.0" Además, en la "declaración XML" especificamos la codificación del documento, que puede ser, por ejemplo, USASCII (7 bits) o UTF-8 (código 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)
Además, se puede incluir una declaración de documento autónomo ( standalone), que controla qué componentes de la DTD son necesarios para completar el procesamiento del documento.
<?xml version="1.0" encoding="UTF-7" standalone="yes"?>
La segunda, o "declaración de tipo de documento", define qué tipo de documento estamos creando para ser procesado correctamente. Es decir, definimos que Declaración 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 dónde encontrar la información sobre su Definición de Tipo de Documento, mediante un identificador público (PUBLIC) que hace referencia a dicha DTD, o mediante un Identificador Universal de Recursos (URI) precedido por la palabra SYSTEM.
141
Automatizaciรณn de procesos industriales Ejemplos:
<!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
Automatización de procesos industriales
5. Elementos Los elementos XML pueden tener contenido (más elementos, caracteres, o ambos a la vez), o bien ser elementos vacíos.
Un elemento con contenido es, por ejemplo:
<nombre>Fulano Mengánez</nombre>
<aviso tipo="emergencia" gravedad="mortal">Que no cunda el pánico</aviso>
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 símbolo "<" siempre se interpreta como inicio de una etiqueta XML. Si no es el caso, el documento no estará bien-formado. Para usar ciertos símbolos se usan las entidades predefinidas, que se explican más adelante.
Un elemento vacío, es el que no tiene contenido (claro). Por ejemplo:
<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 vacías tipo <hr> o <img src="...">. En HTML reformulado para que sea un documento XML bien-formado, se debería usar <hr/> o <img src="..."/>
143
Automatización de procesos industriales 6. Atributos Como se ha mencionado antes, los elementos pueden tener atributos, que son una manera de incorporar características o propiedades a los elementos de un documento.
Por ejemplo, un elemento "chiste" puede tener un atributo "tipo" y un atributo "calidad", con valores "vascos" y "bueno" respectivamente.
<chiste tipo="vascos" calidad="bueno">Esto es un día que Patxi y Josu van paseando… </chiste>
En una Definición 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.
<verdura clase="zanahoria" longitud='15" y media'>
<cita texto="'Hola buenos días', dijo él">
A veces, un elemento con contenido, puede modelarse como un elemento vacío 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
Automatización de procesos industriales <gato raza="Persa" nombre="Micifú"/>
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 carácter "<" sin que se interprete como el comienzo de una etiqueta XML, por ejemplo.
8. Secciones CDATA Existe otra construcción en XML que permite especificar datos, utilizando cualquier carácter, especial o no, sin que se interprete como marcado XML. La razón de esta construcción llamada CDATA (Character Data) es que a veces es necesario para los autores de documentos XML, poder leerlo fácilmente sin tener que descifrar los códigos 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> &lt;HTML> &lt;HEAD>&lt;TITLE>Rock &amp; Roll&lt;/TITLE>&lt;/HEAD> <![CDATA[ <HTML> <HEAD><TITLE>Rock & Roll</TITLE></HEAD> ]]> </ejemplo>
145
Automatización de procesos industriales Como hemos visto, dentro de una sección CDATA podemos poner cualquier cosa, que no será interpretada como algo que no es. Existe empero una excepción, y es la cadena "]]>" con la que termina el bloque CDATA. Esta cadena no puede utilizarse dentro de una sección CDATA.
9. Comentarios
A veces es conveniente insertar comentarios en el documento XML, que sean ignorados por el procesado de la información 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 prólogo, pero nunca dentro de las declaraciones, etiquetas, u otros comentarios.
146
Automatización de procesos industriales 10. Document Type Definitions (DTDs)
Crear una definición del tipo de documento (DTD) es como crear nuestro propio lenguaje de marcado, para una aplicación específica. Por ejemplo, podríamos crear un DTD que defina una tarjeta de visita. A partir de ese DTD, tendríamos una serie de elementos XML que nos permitirían 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 "válidos". 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 especificación de XML. Un documento "bien-formado" puede además ser "válido" si cumple las reglas de una DTD determinada. También existen documentos XML sin una DTD asociada, en ese caso no son "válidos", pero tampoco "inválidos"… 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 declaración de tipo de documento.
Veamos un ejemplo:
<!DOCTYPE etiqueta[ <!ELEMENT etiqueta (nombre, calle, ciudad, pais, codigo)> <!ELEMENT nombre (#PCDATA)> <!ELEMENT calle (#PCDATA)>
147
Automatización de procesos industriales <!ELEMENT ciudad (#PCDATA)> <!ELEMENT pais (#PCDATA)> <!ELEMENT codigo (#PCDATA)> ]>
<etiqueta> <nombre>Fulano Mengánez</nombre> <calle>c/ Mayor, 27</calle> <ciudad>Valderredible</ciudad> <pais>España</pais> <codigo>39343</codigo> </etiqueta>
La declaración del tipo de documento comienza en la primera línea y termina con "]>". Las declaraciones DTD son las líneas que empiezan con "<!ELEMENT" y se denominan declaraciones de tipo elemento. También 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
Automatización de procesos industriales 11. Declaraciones tipo elemento
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 válido.
Las
declaraciones
de
tipo
de
elemento
deben
empezar
con
"<!ELEMENT" seguidas por el identificador genérico del elemento que se declara. A continuación tienen una especificación de contenido.
Por ejemplo:
<!ELEMENT receta (titulo, ingredientes, procedimiento)>
En este ejemplo, el elemento <receta> puede contener dentro elementos <titulo>, <ingredientes> y <procedimiento>, que, a su vez, estarán definidos también en la DTD y podrán contener más elementos.
Siguiendo la definición de elemento anterior, este ejemplo de documento XML sería válido:
<receta> <titulo>...</titulo> <ingredientes>...</ingredientes> <procedimiento>...</procedimiento> </receta>
Pero no este: <receta> <parrafo>Esto es un párrafo</parrafo> <titulo>...</titulo> <ingredientes>...</ingredientes>
149
Automatizaciรณn de procesos industriales <procedimiento>...</procedimiento> </receta> La especificaciรณn de contenido puede ser de cuatro tipos:
EMPTY
Puede no tener contenido. Suele usarse para los atributos.
<!ELEMENT salto-de-pagina EMPTY>
ANY
Puede tener cualquier contenido. No se suele utilizar, ya que es conveniente estructurar adecuadamente nuestros documentos XML.
<!ELEMENT batiburrillo ANY>
Mixed
Puede tener caracteres de tipo datos o una mezcla de caracteres y sub-elementos especificados en la especificaciรณn de contenido mixto.
<!ELEMENT enfasis (#PCDATA)>
<!ELEMENT parrafo (#PCDATA|enfasis)*>
Por ejemplo, el primer elemento definido en el ejemplo (<enfasis>) puede contener datos de carรกcter (#PCDATA). Y el segundo (<parrafo>) puede contener tanto datos de carรกcter (#PCDATA) como sub-elementos de tipo <enfasis>.
150
Automatizaci贸n de procesos industriales Element
S贸lo puede contener sub-elementos especificados en la especificaci贸n de contenido.
<!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 especificaci贸n de contenido mixto o una de las claves ya descritas.
151
Automatización de procesos industriales 12. Modelos de contenido
Un modelo de contenido es un patrón que establece los sub-elementos aceptados, y el orden en que se acepta.
Un modelo sencillo puede tener un solo tipo de sub-elemento:
<!ELEMENT aviso (parrafo)>
Esto indica que <aviso> sólo puede contener un solo <parrafo>.
<!ELEMENT aviso (titulo, parrafo)>
La coma, en este caso, denota una secuencia. Es decir, el elemento <aviso> debe contener un <titulo> seguido de un <parrafo>.
<!ELEMENT aviso (parrafo | grafico)>
La barra vertical "|" indica una opción. Es decir, <aviso> puede contener o bien un <parrafo> o bien un <grafico>. El número de opciones no está limitado a dos, y se pueden agrupar usando paréntesis.
<!ELEMENT aviso (titulo, (parrafo | grafico))>
En este último caso, el <aviso> debe contener un <titulo> seguido de un <parrafo> o de un <grafico>.
Además, cada partícula de contenido puede llevar un indicador de frecuencia, que siguen directamente a un identificador general, una secuencia o una opción, y no pueden ir precedidos por espacios en blanco. <!ELEMENT aviso (titulo?, (parrafo+, grafico)*)>
152
Automatización de procesos industriales
13. Declaraciones de lista de atributos
Los atributos permiten añadir información 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 añadir información corta, sencilla y desestructurada.
<mensaje prioridad="urgente"> <de>Alfredo Reino</de> <a>Hans van Parijs</a> <texto idioma="holandés"> Hallo Hans, hoe gaat het? ... </texto> </mensaje>
Otra diferencia entre los atributos y los elementos, es que cada uno de los atributos sólo 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> haríamos lo siguiente:
<!ELEMENT mensaje (de, a, texto)> <!ATTLIST mensaje prioridad (normal | urgente) normal> <!ELEMENT texto(#PCDATA)> <!ATTLIST texto idioma CDATA #REQUIRED>
Las declaraciones de los atributos empiezan con "<!ATTLIST", y a
153
Automatización de procesos industriales continuación del espacio en blanco viene el identificador del elemento al que se aplica el atributo. Después viene el nombre del atributo, su tipo y su valor por defecto. En el ejemplo anterior, el atributo "prioridad" puede estar en el elemento <mensaje> y puede tener el valor "normal" o "urgente", siendo "normal" el valor por defecto si no especificamos el atributo.
El atributo "idioma", pertenece al elemento texto, y puede contener datos de carácter (CDATA). Es más, 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 automáticamente un valor por defecto. Para esto se usa la condición "#IMPLIED". Por ejemplo, en una supuesta DTD que defina la etiqueta <IMG> de HTML:
<!ATTLIST IMG URL CDATA #REQUIRED ALT CDATE #IMPLIED>
Es decir, el atributo "URL" es obligatorio, mientras que el "ALT" es opcional (y si se omite, no toma ningún valor por defecto).
154
Automatización de procesos industriales 14. Tipos de atributos
Atributos CDATA y NMTOKEN
Los atributos CDATA (character data) son los más sencillos, y pueden contener casi cualquier cosa. Los atributos NMTOKEN (name token) son parecidos, pero sólo aceptan los caracteres válidos para nombrar cosas (letras, números, puntos, guiones, subrayados y los dos puntos).
<!ATTLIST mensaje fecha CDATA #REQUIRED>
<mensaje fecha="15 de Julio de 1999">
<!ATTLIST mensaje fecha NMTOKEN #REQUIRED>
<mensaje fecha="15-7-1999">
Atributos enumerados y notaciones
Los atributos enumerados son aquellos que sólo pueden contener un valor de entre un número reducido de opciones.
<!ATTLIST mensaje prioridad (normal | urgente) normal>
Existe otro tipo de atributo parecido, llamado de notación (NOTATION). Este tipo de atributo permite al autor declarar que su valor se ajusta a una notación declarada.
<!ATTLIST
mensaje
fecha
NOTATION
(ISO-DATE
|
EUROPEAN-DATE)
#REQUIRED>
Para declarar las notaciones, se utiliza "<!NOTATION", con una definición externa de la notación. La definición externa puede ser pública o un
155
Automatización de procesos industriales identificador del sistema para la documentación de la notación, una especificación formal o un asistente de la aplicación que contenga objetos representados en la notación.
<!NOTATION HTML SYSTEM "http://www.w3.org/Markup">
<!NOTATION HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
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 hipervínculos 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"> haría referencia a un <capitulo referencia="seccion-3">, de forma que el procesador XML lo podría convertir en un hipervínculo, u otra cosa.
156
Automatización de procesos industriales 15. Declaración de entidades
XML hace referencia a objetos (ficheros, páginas web, imágenes, cualquier cosa) que no deben ser analizados sintácticamente según las reglas de XML, mediante el uso de entidades. Se declaran en la DTD mediante el uso de "<!ENTITY"
Una entidad puede no ser más que una abreviatura que se utiliza como una forma corta de algunos textos. Al usar una referencia a esta entidad, el analizador sintáctico reemplaza la referencia con su contenido. En otras ocasiones es una referencia a un objeto externo o local.
Las entidades pueden ser:
Internas Analizadas
o
Externas o
No
analizadas Generales o Parámetro
Entidades generales internas
Son las más sencillas. Son básicamente abreviaturas definidas en la sección 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.
<!DOCTYPE texto[ <!ENTITY alf "Alien Life Form"> ]>
<texto><titulo>Un día en la vida de un &alf;</titulo></texto>
157
Automatización de procesos industriales Entidades generales externas analizadas
Las entidades externas obtienen su contenido en cualquier otro sitio del sistema, ya sea otro archivo del disco duro, una página 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)
<!ENTITY intro SYSTEM "http://www.miservidor.com/intro.xml">
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 debería intentar interpretarlo como si fuera texto XML. Este tipo de entidades siempre son generales y externas.
<!ENTITY logo SYSTEM "http://www.miservidor.com/logo.gif">
Entidades parámetro internas y externas
Se denominan entidades parámetro a aquellas que sólo 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 parámetro de las generales, en que para hacer referencia a ellas, se usa el símbolo "%" en lugar de "&" tanto como para declararlas como para usarlas.
<!DOCTYPE texto[ <!ENTITY % elemento-alf "<!ELEMENT ALF (#PCDATA)>">
%elemento-alf; ]>
158
Automatización de procesos industriales También puede ser externa:
<!DOCTYPE texto[ <!ENTITY % elemento-alf SYSTEM "alf.ent"> ... %elemento-alf; ]>
EJEMPLO DE DTD
Un ejemplo de DTD que puede servir para resumir todo lo visto hasta ahora podría ser un DTD que nos defina un lenguaje de marcado para una base de datos de personas con direcciones e-mail.
El fichero LISTIN.DTD podría ser algo así:
<?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>
Basándonos en este DTD, podríamos escribir nuestro primer listín en XML de la siguiente manera:
<?xml version="1.0"?>
159
Automatizaciรณn de procesos industriales <!DOCTYPE listin SYSTEM "LISTIN.DTD"> <listin> <persona sexo="hombre" id="ricky"> <nombre>Ricky Martin</nombre> <email>ricky@puerto-rico.com</email> <relacion amigo-de="laetitia"> </persona> <persona sexo="mujer" id="laetitia"> <nombre>Laetitia Casta</nombre> <email>castal@micasa.com</email> </persona> </listin>
160
Automatización de procesos industriales 16. XML SCHEMAS
Un "schema XML" es algo similar a un DTD, es decir, que define qué elementos puede contener un documento XML, cómo están 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 número entero, o una cadena de texto, o una fecha, etc. Los DTDs no nos permiten hacer estas cosas.
Veamos un ejemplo de un documento XML, y su schema correspondiente:
<documento xmlns="x-schema:personaSchema.xml"> <persona id="fulano"> <nombre>Fulano Menganez</nombre> </persona> </documento>
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 sintáctico XML (parser) que valide el documento contra el schema "personaSchema.xml".
El schema sería algo parecido a esto:
161
Automatizaciรณn de procesos industriales
<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
Asigna un tipo y condiciones a un atributo.
attribute
Declara que un atributo previamente definido por AttributeType puede aparecer como atributo de un elemento determinado.
162
Automatizaciรณn de procesos industriales element
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 mรกs profundamente anidados dentro de la estructura jerรกrquica 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
Automatización de procesos industriales 17. Extended Style Language (XSL) El XSL es un lenguaje que nos permite definir una presentación o formato para un documento XML. Un mismo documento XML puede tener varias hojas de estilo XSL que lo muestren en diferentes formatos (HTML, PDF, RTF, VRML, PostScript, sonido, etc.)
La aplicación 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).
Básicamente, XSL es un lenguaje que define una transformación entre un documento XML de entrada, y otro documento XML de salida.
Una hoja de estilo XSL es una serie de reglas que determinan cómo va a ocurrir la transformación. Cada regla se compone de un patrón (pattern) y una acción 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 también transformado. La hoja de estilo tiene una regla raíz que, además de ser procesada, llama a las reglas adecuadas para los elementos hijos.
Vamos a ver un ejemplo de todo esto:
<libro> <titulo>Un título cualquiera</titulo> <capitulos>
<capitulo> <titulo>Capítulo 1</titulo>
164
Automatización de procesos industriales <parrafo>....</parrafo> <parrafo>....</parrafo> </capitulo>
<capitulo> <titulo>Capítulo 2</titulo> ... </capitulo>
</capitulos> </libro>
Queremos convertir este documento XML en HTML bien-formado, de la siguiente manera:
<HTML> <HEAD> <TITLE>Un título cualquiera</TITLE> </HEAD> <BODY> <H1>Un título cualquiera</H1> <HR> <H2>Capítulo 1</H2> <P>...</P> <P>...</P>
<HR> <H2>Capítulo 2</H2> <P>...</P>
</BODY> </HTML> 165
AutomatizaciĂłn de procesos industriales
La hoja de estilo XSL necesaria serĂa algo parecido a lo siguiente:
<?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>
<xsl:template match="capitulos"> <xsl:process select="capitulo"> </xsl:template>
<xsl:template match="capitulo"> <HR/> <H2><xsl:process select="titulo"/></H2> <xsl:process select="parrafo"/> </xsl:template>
<xsl:template match="parrafo"> <P><xsl:process-children/></P> </xsl:template> </xsl:stylesheet>
166
Automatización de procesos industriales 18. XML Document Object Model y Java Como ya hemos podido suponer, el empleo de tecnología XML, al ser un estándar internacional y público, no nos ata a una plataforma o sistema de desarrollo concreto. Lo mismo se puede usar Perl bajo UNIX para generar documentos XML a partir de una base de datos, como usar Python en Windows NT para servir documentos HTML4 a navegadores web a partir de un documento XML.
Dicho esto, hay que decir que JAVA se posiciona como una opción 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 sintácticamente el XML, y que genere un árbol DOM (Document Object Model). Una vez generado el árbol DOM, podemos ir extrayendo la información 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 sintáctico XML. Usamos el objeto com.ibm.xml.Parser para ello.
Parser parser = new Parser("xslparse.err");
El fichero "xslparse.err" será el registro de cualquier error que ocurra mientras procesamos el documento XML, que debe ser convertido a un InputStream.
ByteArrayInputStream bais = new ByteArrayInputStream(xmlString.getBytes());
167
Automatización de procesos industriales Ahora le decimos al parser que ignore las declaraciones de tipo de documento, los comentarios, etc.
parser.setWarningNoXMLDecl(false); parser.setWarningNoDoctypeDecl(false); parser.setKeepComment(false); parser.setProcessNamespace(false);
Analizamos el documento, y cerramos el InputStream.
doc = parser.readStream; bais.close();
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 métodos que tenemos para navegar el DOM (definidos en org.w3c.dom.Node) •
getDocumentElement() Devuelve el elemento raíz
•
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
un objeto
string
que
representa el valor de un atributo.
168
Automatización de procesos industriales 19. Lenguaje de enlace XML (XLINK) XLink es una aplicación XML que intenta superar las limitaciones que tienen los enlaces de hipertexto en HTML. Es una especificación que todavía está en desarrollo, y que todavía no tiene "rodaje" en el mundo real.
Los enlaces en HTML tienen una serie de limitaciones, que los hacen bastante pobres. Por ejemplo, sólo tienen dos extremos, la terminación origen y la destino, y son unidireccionales.
Si yo creo un enlace en mi página web personal que me lleve hasta la página principal de Coca-Cola, estoy creando un "vínculo" entre esta página y la mía.
<a href="http://www.coca-cola.com/">Coca-Cola</a>
Este vínculo es unidireccional, porque un visitante cualquiera que entre en la página de Coca-Cola, no tiene forma de saber que mi página (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 podría hacer anotaciones a los apuntes que un profesor tiene disponibles en la red, por el método de insertar un enlace desde los apuntes (a los que no tiene acceso de escritura o modificación) y su propia página de anotaciones y comentarios.
O bien, podremos vincular dos páginas 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 más que eso.
169
Automatización de procesos industriales
En el momento actual, la tecnología 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 podrán visitar la página web del proveedor y hacer enlaces externos a comentarios sobre las especificaciones de tal producto. Cuando otro compañero de la empresa visite la página, el servidor de enlaces de nuestra empresa le mostrará la página junto con los enlaces externos creados, y mostrar nuestros comentarios como si fueran parte del documento original.
170
Automatización de procesos industriales
SISTEMAS EXPERTOS 1. Introducción 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 más fácilmente. Antes de la aparición del ordenador, el hombre ya se preguntaba si se le arrebataría 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 creación de máquinas que razonan como el hombre, restringiéndose a un espacio de conocimientos limitado. En teoría pueden razonar siguiendo los pasos que seguiría un experto humano (médico, analista, empresario, etc.) para resolver un problema concreto. Este tipo de modelos de conocimiento por ordenador ofrece un extenso campo de posibilidades en resolución 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 enseñar de forma práctica el funcionamiento y construcción de un sistema experto. A lo largo de la serie de artículos se demostrará que los sistemas expertos son útiles y prácticos, y que, además, son realizables. También se analizará la problemática de la adquisición y representación del conocimiento, así como los métodos para tratar la incertidumbre.
171
Automatización de procesos industriales
2. Definición de Sistema Experto Los sistemas expertos se pueden considerar como el primer producto verdaderamente operacional de la inteligencia artificial. Son programas de ordenador diseñados para actuar como un especialista humano en un dominio particular o área de conocimiento. En este sentido, pueden considerarse como intermediarios entre el experto humano, que transmite su conocimiento al sistema, y el usuario que lo utiliza para resolver un problema con la eficacia del especialista. El sistema experto utilizará para ello el conocimiento que tenga almacenado y algunos métodos de inferencia. A la vez, el usuario puede aprender observando el comportamiento del sistema. Es decir, los sistemas expertos se pueden considerar simultáneamente como un medio de ejecución y transmisión del conocimiento. Lo que se intenta, de esta manera, es representar los mecanismos heurísticos que intervienen en un proceso de descubrimiento. Estos mecanismos forman ese conocimiento difícil de expresar que permite que los expertos humanos sean eficaces calculando lo menos posible. Los sistemas expertos contienen ese "saber hacer". La característica fundamental de un sistema experto es que separa los conocimientos almacenados (base de conocimiento) del programa que los controla (motor de inferencia). Los datos propios de un determinado problema se almacenan en una base de datos aparte (base de hechos). Una característica adicional deseable, y a veces fundamental, es que el sistema sea capaz de justificar su propia línea de razonamiento de forma inteligible por el usuario. Los sistemas expertos siguen una filosofía diferente a los programas clásicos. Esto queda reflejado en la tabla 1, que resume las diferencias entre ambos tipos de procesamiento.
172
Automatización de procesos industriales Sistema clásico. Conocimiento y procesamiento combinados en un programa Base de conocimiento separada del mecanismo de procesamiento No contiene errores Puede contener errores No da explicaciones, los datos sólo se usan o escriben Una parte del sistema experto la forma el módulo de explicación Los cambios son tediosos Los cambios en las reglas son fáciles El sistema sólo opera completo El sistema puede funcionar con pocas reglas Se ejecuta paso a paso La ejecución usa heurísticas y lógica Necesita información completa para operar Puede operar con información incompleta Representa y usa datos Representa y usa conocimiento
173
Automatización de procesos industriales
3. La reciente historia de los sistemas Los sistemas expertos proceden inicialmente de la inteligencia artificial a mediados de los años sesenta. En ese período se creía que bastaban unas pocas leyes de razonamiento junto con potentes ordenadores para producir resultados brillantes. Un intento en ese sentido fue el llevado a cabo por los investigadores Alan Newell y Herbert Simon que desarrollaron un programa denominado GPS (General Problem Solver; solucionador general de problemas). Podía trabajar con criptoaritmética, con las torres de Hanoi y con otros problemas similares. Lo que no podía hacer el GPS era resolver problemas del mundo real, tales como un diagnóstico médico. Algunos investigadores decidieron entonces cambiar por completo el enfoque del problema restringiendo su ambición a un dominio específico e intentando simular el razonamiento de un experto humano. En vez de dedicarse a computerizar la inteligencia general, se centraron en dominios de conocimiento muy concretos. De esta manera nacieron los sistemas expertos. A partir de 1965, un equipo dirigido por Edward Feigenbaum, comenzó a desarrollar
sistemas
expertos
utilizando
bases
de
conocimiento
definidas
minuciosamente. En 1967 se construye DENDRAL, que se considera como el primer sistema experto. Se utilizaba para identificar estructuras químicas moleculares a partir de su análisis espectrográfico. Entre 1970 y 1980 se desarrolló MYCIN para consulta y diagnóstico de infecciones de la sangre. Este sistema introdujo nuevas características: utilización de conocimiento impreciso para razonar y posibilidad de explicar el proceso de razonamiento. Lo más importante es que funcionaba de manera correcta, dando conclusiones análogas a las que un ser humano daría tras largos años 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 vacío o shell (concha). Así surgió EMYCIN (MYCIN Esencial) con el que se construyó SACON, utilizado para
174
Automatización de procesos industriales estructuras de ingeniería, PUFF para estudiar la función pulmonar y GUIDON para elegir tratamientos terapéuticos. En esa época se desarrollaron también: HERSAY, que intentaba identificar la palabra hablada, y PROSPECTOR, utilizado para hallar yacimientos de minerales. De este último derivó el shell KAS (Knowledge Adquisition System). A partir de 1980 se ponen de moda los sistemas expertos, numerosas empresas de alta tecnología investigan en este área de la inteligencia artificial, desarrollando sistemas expertos para su comercialización. Se llega a la conclusión de que el éxito de un sistema experto depende casi exclusivamente de la calidad de su base de conocimiento. El inconveniente es que codificar la pericia de un experto humano puede resultar difícil, largo y laborioso. Un ejemplo de sistema experto moderno es CASHVALUE, que evalúa proyectos de inversión y VATIA, que asesora acerca del impuesto sobre el valor añadido o I.V.A.
175
Automatización de procesos industriales
4. Usos de un sistema experto Un sistema experto es muy eficaz cuando tiene que analizar una gran cantidad de información, interpretándola y proporcionando una recomendación a partir de la misma. Un ejemplo es el análisis financiero, donde se estudian las oportunidades de inversión, dependiendo de los datos financieros de un cliente y de sus propósitos. Para detectar y reparar fallos en equipos electrónicos, se utilizan los sistemas expertos de diagnóstico y depuración, que formulan listas de preguntas con las que obtienen los datos necesarios para llegar a una conclusión. Entonces recomiendan las acciones adecuadas para corregir los problemas descubiertos. Este tipo de sistemas se utilizan también en medicina (ej. MYCIN y PUFF), y para localizar problemas en sistemas informáticos grandes y complejos. Los sistemas expertos son buenos para predecir resultados futuros a partir del conocimiento que tienen. Los sistemas meteorológicos y de inversión en bolsa son ejemplos de utilización en este sentido. El sistema PROSPECTOR es de este tipo. La planificación es la secuencia de acciones necesaria para lograr una meta. Conseguir una buena planificación a largo plazo es muy difícil. Por ello, se usan sistemas expertos para gestionar proyectos de desarrollo, planes de producción de fábricas, estrategia militar y configuración de complejos sistemas informáticos, entre otros. Cuando se necesita controlar un proceso tomando decisiones como respuesta a su estado y no existe una solución algorítmica adecuada, es necesario usar un sistema experto. Este campo comprende el supervisar fábricas automatizadas, factorías químicas o centrales nucleares. Estos sistemas son extraordinariamente críticos porque normalmente tienen que trabajar a tiempo real. El diseño requiere una enorme cantidad de conocimientos debido a que hay que tener en cuenta muchas especificaciones y restricciones. En este caso, el sistema experto ayuda al diseñador a completar el diseño de forma competente y dentro de los límites de costes y de tiempo. Se diseñan circuitos electrónicos, circuitos integrados, tarjetas de circuito impreso, estructuras arquitectónicas, coches, piezas mecánicas, etc.
176
Automatización de procesos industriales Por último, un sistema experto puede evaluar el nivel de conocimientos y comprensión de un estudiante, y ajustar el proceso de aprendizaje de acuerdo con sus necesidades. En la tabla 2 se muestran los modelos funcionales de los sistemas expertos, junto al tipo de problema que intentan resolver y algunos de los usos concretos a que se destinan.
Categoría tipo de problema uso •
Interpretación Deducir situaciones a partir de datos observados Análisis de imágenes, reconocimiento del habla, inversiones financieras
•
Predicción Inferir posibles consecuencias a partir de una situación Predicción meteorológica, previsión del tráfico, evolución de la Bolsa Diagnóstico Deducir fallos a partir de sus efectos Diagnóstico médico, detección de fallos en electrónica
•
Diseño Configurar objetos bajo ciertas especificaciones Diseño de circuitos, automóviles, edificios, etc.
•
Planificación Desarrollar planes para llegar a unas metas Programación de proyectos e inversiones. Planificación militar
•
Monitorización o supervisión
•
Controlar situaciones donde hay planes vulnerables Control de centrales nucleares y factorías químicas
•
Depuración Prescribir remedios para funcionamientos erróneos Desarrollo de software y circuitos electrónicos
•
Reparación Efectuar lo necesario para hacer una corrección Reparar sistemas informáticos, automóviles, etc.
•
Instrucción Diagnóstico, depuración y corrección de una conducta Corrección de errores, enseñanza
•
Control Mantener un sistema por un camino previamente trazado. Interpreta, predice y supervisa su conducta Estrategia militar, control de tráfico aéreo
•
Enseñanza Recoger el conocimiento y mostrarlo Aprendizaje de experiencia
177
Automatización de procesos industriales
5. Decisión de aplicación de sistemas expertos El acceso al conocimiento y al juicio de un experto es extremadamente valioso en muchas ocasiones (prospecciones petrolíferas, manejo de valores bursátiles, diagnóstico de enfermedades, etc.), sin embargo, en la mayoría de los campos de actividad existen más problemas por resolver que expertos para resolverlos. Para solucionar este desequilibrio es necesario utilizar un sistema experto. En general, actuará como ayudante para los expertos humanos y como consultor cuando no se tiene otro acceso a la experiencia. Un sistema experto, además, mejora la productividad al resolver y decidir los problemas más rápidamente. Esto permite ahorrar tiempo y dinero. A veces sin esa rapidez las soluciones obtenidas serían inútiles. Los valiosos conocimientos de un especialista se guardan y se difunden, de forma que, no se pierden aunque desaparezca el especialista. En los sistemas expertos se guarda la esencia de los problemas que se intenta resolver y se programa cómo aplicar los conocimientos para su resolución. Ayudan a entender cómo se aplican los conocimientos para resolver un problema. Esto es útil porque normalmente el especialista da por ciertos sus conocimientos y no analiza cómo los aplica. Se pueden utilizar personas no especializadas para resolver problemas. Además si una persona utiliza regularmente un sistema experto aprenderá de el, y se aproximará a la capacidad del especialista. Con un sistema experto se obtienen soluciones más fiables gracias al tratamiento automático de los datos, y más contrastadas, debido a que se suele tener informatizado el conocimiento de varios expertos. Debido a la separación entre la base de conocimiento y el mecanismo de inferencia, los sistemas expertos tienen gran flexibilidad, lo que se traduce en una mejor modularidad, modificabilidad y legibilidad del conocimiento. Otra ventaja es que este tipo de sistemas pueden utilizar razonamiento aproximado para hacer deducciones y que pueden resolver problemas sin solución algorítmica.
178
Automatización de procesos industriales Los sistemas expertos también tienen inconvenientes. El conocimiento humano es complejo de extraer y, a veces, es problemático representarlo. Si un problema sobrepasa la competencia de un sistema experto, sus prestaciones se degradan de forma notable. Además, las estrategias de razonamiento de los motores de inferencia suelen estar programadas procedimentalmente y se adaptan mal a las circunstancias. Están limitados para tratar problemas con información incompleta. Un experto humano no estudia progresivamente una hipótesis, sino que decide de inmediato cuando se enfrenta a una situación análoga a otra ocurrida en el pasado Los sistemas expertos no utilizan este razonamiento por analogía. Los costes y duración del desarrollo de un sistema experto son bastante considerables (aunque se suelen amortizar rápidamente) y su campo de aplicación actual es restringido y específico. Finalmente, hay que tener en cuenta los problemas sociales que acarrean al ser susceptibles de influir en la estructura y número de empleos.
179
Automatización de procesos industriales
6. Arquitectura y funcionamiento de un sistema experto No existe una estructura de sistema experto común. Sin embargo, la mayoría de los sistemas expertos tienen unos componentes básicos: base de conocimientos, motor de inferencia, base de datos e interfaz con el usuario. Muchos tienen, además, un módulo de explicación y un módulo de adquisición del conocimiento. La figura 1 muestra la estructura de un sistema experto ideal. La base de conocimientos contiene el conocimiento especializado extraído del experto en el dominio. Es decir, contiene conocimiento general sobre el dominio en el que se trabaja. El método más común para representar el conocimiento es mediante reglas de producción. El dominio de conocimiento representado se divide, pues, en pequeñas fracciones de conocimiento o reglas SI . . . ENTONCES . . . Cada regla constará de una parte denominada condición y de una parte denominada acción, y tendrá la forma: SI condición ENTONCES acción. Como ejemplo se puede considerar la siguiente regla médica: 1. SI el termómetro marca 39º 2. Y el termómetro funciona correctamente 3. ENTONCES el paciente tiene fiebre Una característica muy importante es que la base de conocimientos es independiente del mecanismo de inferencia que se utiliza para resolver los problemas. De esta forma, cuando los conocimientos almacenados se han quedado obsoletos, o cuando se dispone de nuevos conocimientos, es relativamente fácil añadir reglas nuevas, eliminar las antiguas o corregir errores en las existentes. No es necesario reprogramar todo el sistema experto. Las reglas suelen almacenarse en alguna secuencia jerárquica lógica, pero esto no es estrictamente necesario. Se pueden tener en cualquier secuencia y el motor de inferencia las usará en el orden adecuado que necesite para resolver un problema. Una base de conocimientos muy ingenua, para identificar vehículos, podría ser la siguiente:
180
Automatización de procesos industriales •
Regla 1: SI tiene 2 ruedas Y utiliza motor ENTONCES es una motocicleta
•
Regla 2:
SI tiene 2 ruedas Y es movido por el hombre ENTONCES es una bicicleta •
Regla 3:
SI tiene 4 ruedas Y utiliza motor Y pesa menos de 3500 Kg. ENTONCES es un coche Existen reglas de producción que no pertenecen al dominio del problema. Estas reglas se llaman metarreglas (reglas sobre otras reglas) y su función 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 resolución de un problema. Contiene conocimiento sobre el caso concreto en que se trabaja. También se
181
Automatización de procesos industriales registrarán en ella las conclusiones intermedias y los datos generados en el proceso de inferencia. Al memorizar todos los resultados intermedios, conserva el vestigio de los razonamientos efectuados; por lo tanto, se puede utilizar explicar las deducciones y el comportamiento del sistema. El motor de inferencias es un programa que controla el proceso de razonamiento que seguirá el sistema experto. Utilizando los datos que se le suministran, recorre la base de conocimientos para alcanzar una solución. La estrategia de control puede ser de encadenamiento progresivo o de encadenamiento regresivo. En el primer caso se comienza con los hechos disponibles en la base de datos, y se buscan reglas que satisfagan esos datos, es decir, reglas que verifiquen la parte SI. Normalmente, el sistema sigue los siguientes pasos: 1. Evaluar las condiciones de todas las reglas respecto a la base de datos, identificando el conjunto de reglas que se pueden aplicar (aquellas que satisfacen su parte condición) 2. Si no se puede aplicar ninguna regla, se termina sin éxito; en caso contrario se elige cualquiera de las reglas aplicables y se ejecuta su parte acción (esto último genera nuevos hechos que se añaden a la base de datos) 3. Si se llega al objetivo, se ha resuelto el problema; en caso contrario, se vuelve al primer paso A este enfoque se le llama también guiado por datos, porque es el estado de la base de datos el que identifica las reglas que se pueden aplicar. Cuando se utiliza este método, el usuario comenzará introduciendo datos del problema en la base de datos del sistema. Al encadenamiento regresivo se le suele llamar guiado por objetivos, ya que, el sistema comenzará por el objetivo (parte acción de las reglas) y operará retrocediendo para ver cómo se deduce ese objetivo partiendo de los datos. Esto se produce directamente o a través de conclusiones intermedias o subobjetivos. Lo que se intenta es probar una hipótesis a partir de los hechos contenidos en la base de datos y de los obtenidos en el proceso de inferencia.
182
Automatización de procesos industriales En la mayoría de los sistemas expertos se utiliza el encadenamiento regresivo. Este enfoque tiene la ventaja de que el sistema va a considerar únicamente las reglas que interesan al problema en cuestión. El usuario comenzará declarando una expresión E y el objetivo del sistema será establecer la verdad de esa expresión. Para ello se pueden seguir los siguientes pasos: 1. Obtener las reglas relevantes, buscando la expresión E en la parte acción (éstas serán las que puedan establecer la verdad de E) 2. Si no se encuentran reglas para aplicar, entonces no se tienen datos suficientes para resolver el problema; se termina sin éxito o se piden al usuario más datos 3. Si hay reglas para aplicar, se elige una y se verifica su parte condición C con respecto a la base de datos. 4. Si C es verdadera en la base de datos, se establece la veracidad de la expresión E y se resuelve el problema 5. Si C es falsa, se descarta la regla en curso y se selecciona otra regla 6. Si C es desconocida en la base de datos (es decir, no es verdadera ni falsa), se le considera como subobjetivo y se vuelve al paso 1 (C será ahora la expresión E) Existen también enfoques mixtos en los que se combinan los métodos guiados por datos con los guiados por objetivos. El interfaz de usuario permite que el usuario pueda describir el problema al sistema experto. Interpreta sus preguntas, los comandos y la información ofrecida. A la inversa, formula la información generada por el sistema incluyendo respuestas a las preguntas, explicaciones y justificaciones. Es decir, posibilita que la respuesta proporcionada por el sistema sea inteligible para el interesado. También puede solicitar más información si le es necesaria al sistema experto. En algunos sistemas se utilizan técnicas de tratamiento del lenguaje natural para mejorar la comunicación entre el usuario y el sistema experto. La mayoría de los sistemas expertos contienen un módulo de explicación, diseñado para aclarar al usuario la línea de razonamiento seguida en el proceso de inferencia. Si el usuario pregunta al sistema cómo ha alcanzado una conclusión, éste le presentará la secuencia completa de reglas usada. Esta posibilidad de explicación es
183
Automatización de procesos industriales especialmente valiosa cuando se tiene la necesidad de tomar decisiones importantes amparándose en el consejo del sistema experto. Además, de esta forma, y con el tiempo suficiente, los usuarios pueden convertirse en especialistas en la materia, al asimilar el proceso de razonamiento seguido por el sistema. El subsistema de explicación también puede usarse para depurar el sistema experto durante su desarrollo. El módulo de adquisición del conocimiento permite que se puedan añadir, eliminar o modificar elementos de conocimiento (en la mayoría de los casos reglas) en el sistema experto. Si el entorno es dinámico es muy necesario, puesto que, el sistema funcionará correctamente sólo si se mantiene actualizado su conocimiento. El módulo de adquisición permite efectuar ese mantenimiento, anotando en la base de conocimientos los cambios que se producen.
184
Automatización de procesos industriales 7. Funcionamiento del motor de inferencia Para ilustrar cómo trabajan los procedimientos de inferencia, se supondrá un sistema que contiene las siguientes reglas en la base de conocimiento: R1: SI abrigo ENTONCES bingo R2: SI chaqueta ENTONCES dentista R3: SI bingo ENTONCES esposa -Enfoque guiado por datos (o encadenamiento hacia adelante): El problema es determinar si se da esposa sabiendo que se cumplen abrigo y chaqueta. Lo primero que se hace es introducir en la base de datos abrigo y chaqueta: B.D. = {abrigo, chaqueta} El sistema identifica las reglas aplicables: R = {R1, R2} Selecciona R1 y la aplica. Esto genera bingo que se añade a la base de datos: B.D. = {abrigo, chaqueta, bingo} Como no se ha solucionado el problema, vuelve a identificar un conjunto de reglas aplicables (excepto la ya aplicada, que no cambiaría el estado de la base de datos): R = {R2, R3} Selecciona y aplica R2 quedando: B.D. = {abrigo, chaqueta, bingo, dentista} El problema todavía no se ha solucionado, luego el sistema selecciona otro conjunto de reglas aplicables:
185
Automatización de procesos industriales R = {R3} Seleccionando y aplicando R3, la base de datos queda: B.D. = {abrigo, chaqueta, bingo, dentista, esposa} Como esposa se encuentra en ella, se ha llegado a la solución del problema. -Enfoque guiado por objetivos (o encadenamiento hacia atrás): Se quiere determinar si se cumple esposa teniendo en la base de datos abrigo y chaqueta: B.D. = {abrigo, chaqueta}. El conjunto de reglas aplicables en este caso será: R = {R3} (R3 es la única que tiene esposa en su parte derecha). Se selecciona R3 y se genera bingo. Como no se encuentra en la base de datos ( no es verdadero ni falso) se le considera como subobjetivo. El sistema intentará ahora probar bingo. Identifica las reglas aplicables: R = {R1}. Aplica R1 y se obtiene abrigo que es verdadero en la base de datos. De esta forma, se prueba el subobjetivo, y al probar éste, se prueba esposa resolviendo el problema
186
Automatización de procesos industriales
METODOLOGÍA
1. Introducción: Para un determinado problema se pueden construir diferentes algoritmos de resolución o programas. La elección del más adecuado se debe basar en una serie de requisitos de calidad que adquieren gran importancia a la hora de evaluar el coste de su diseño y mantenimiento.
Las características generales que debe reunir un programa son las siguientes: •
Legibilidad: Ha de ser claro y sencillo, de tal forma que facilite su lectura y comprensión.
•
Fiabilidad: Ha de ser robusto, es decir, capaz de recuperarse frente a errores o usos inadecuados.
•
Portabilidad: Su diseño debe permitir la codificación en diferentes lenguajes de programación, así como su instalación en diferentes sistemas.
•
Modificabilidad: Ha de facilitar su mantenimiento, esto es, las modificaciones y actualizaciones necesarias para adaptarlo a una nueva situación.
•
Eficiencia: Se deben aprovechar al máximo los recursos de la computadora, minimizando la memoria utilizada y el tiempo de proceso y ejecución, siempre que no sea a costa de los requisitos anteriores.
Por tanto, una metodología, es un conjunto de métodos y técnicas disciplinadas que ayudan al desarrollo de unos programas que cumplan los requisitos anteriormente descritos.
187
Automatización de procesos industriales
2. Metodología de desarrollo: La metodología de desarrollo empleada en este proyecto, se divide en las siguientes etapas:
Identificación de necesidades
Es una etapa que no suele aparecer, como tal, en diferentes metodologías, sino que aparece como una actividad más a realizar al comienzo del proyecto. Sirve como soporte a la petición 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 política empresarial.
En esta etapa se utiliza básicamente la técnica de la entrevista, donde participan el usuario y el analista.
La información recogida durante esta etapa se especifica en un Documento de Conceptos de Sistema.
Análisis 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 más o menos en el conocimiento del sistema actual.
188
Automatización de procesos industriales Además de los objetivos mencionados, existe otro, conseguir la aprobación del usuario, en lo referente al nuevo sistema.
Estudio de viabilidad.
El objetivo de esta fase es definir las posibles soluciones que satisfagan tanto los requerimientos como las restricciones de diseño.
Cada alternativa deberá dar una visión externa del sistema, los requerimientos físicos que deben ser considerados, así como los aspectos organizativos, operativos, técnicos y económicos asociados. En estos factores nos fijaremos para elegir una de las opciones propuestas.
Por tanto, debemos especificar la tecnología hardware, software y de comunicaciones de cada alternativa; evaluar cada alternativa en sus aspectos organizativos, operativos, técnicos y económicos; seleccionar una alternativa y obtener la aprobación del usuario.
Diseño
En esta fase se completa la definición de especificaciones del sistema a mecanizar, obteniéndose el nuevo modelo de procesos.
Se introducen en el modelo los requerimientos del sistema, se diseñan las entradas y salidas del sistema, se especifican los procesos, se realiza una estimación de volúmenes y se confecciona la arquitectura del sistema, formando los programas y módulos que constituirán el software del sistema.
Programación
En esta etapa se desarrollan los módulos y programas especificados en la etapa anterior.
189
Automatización de procesos industriales Por tanto, se deben codificar los programas en los lenguajes establecidos, desarrollar los procedimientos catalogados o ficheros de control de programas y verificar que los productos hardware y software necesarios para el nuevo sistema están disponibles.
También se realizan las guías de explotación y de uso.
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 integración de módulos, programas, cadenas y transacciones; se realizan las pruebas de impacto en el centro de explotación y se establece la aprobación de las pruebas del sistema con el usuario.
Implantación.
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 Producción, para realizar la explotación del sistema.
El objetivo final de esta fase es obtener la aprobación final del usuario.
Mantenimiento
El mantenimiento, al igual que en otras metodologías, no se considera parte integrante del ciclo de desarrollo de esta aplicación.
190
Automatización de procesos industriales
3. Análisis y diseño El análisis y diseño de este programa, se realiza mediante casos de uso y OID’s (Object Interaction Diagrams).
4. Casos de uso: •
Manipular dispositivo
•
Activar estado automático del sistema
•
Activar estado manual del sistema
•
Añadir sensor-Eliminar sensor
•
Modificar sensor
•
Añadir dispositivo
•
Eliminar dispositivo
•
Modificar dispositivo
•
Crear programa
•
Eliminar programa
•
Modificar programa
•
Activar un programa
•
Visualizar Log del sistema
•
Visualizar Log de dispositivo
191
Automatización de procesos industriales
4.1 Manipular dispositivo Actor primario: Usuario. Actor secundario: Trigger: Precondiciones: -
Escenario Primario:
1. El usuario introduce la orden en el dispositivo que desea manipular 2. El sistema muestra el resultado de la operación (RN001) 3. El sistema almacena las nuevas operaciones realizadas
Extensiones:
1a. El sistema está en modo automático. 1. El sistema indica al usuario la imposibilidad de actuar de forma manual sobre los dispositivos estando el sistema en modo automático. 2. Salir del caso de uso.
Descripción de los datos:
Resultado de la operación:
En la sección correspondiente a el estado de la instalación industrial se muestra una etiqueta con el valor numérico de la operación realizada y se desplaza el indicador del “slider” hasta la posición correspondiente al valor de la operación.
192
Automatización de procesos industriales
4.2 Activar estado automático del sistema Actor primario: Usuario. Actor secundario: Trigger: Precondiciones: -
Escenario Primario:
1. El usuario activa el estado automático del sistema 2. El sistema valida la viabilidad del estado automático 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:
2a. El sistema no dispone de los sensores requeridos por el programa activado.
1. El sistema indica al usuario la imposibilidad de iniciar el estado automático debido a la ausencia de sensores. 2. Salir del caso de uso.
2b. El sistema no dispone de los dispositivos requeridos por el programa activado
1. El sistema indica al usuario la imposibilidad de iniciar el estado automático debido a la ausencia de dispositivos. 2. Salir del caso de uso.
193
Automatización de procesos industriales
4a. El sistema no dispone de programas cargados
1. El sistema comunica la necesidad de cargar como mínimo 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
1. Fin del caso de uso
Descripción de los datos:
Resultado de la operación:
En la sección correspondiente al estado de la instalación industrial se muestra una etiqueta con el valor numérico de la operación realizada y se desplaza el indicador del “slider” hasta la posición correspondiente al valor de la operación.
194
Automatizaciรณn de procesos industriales
4.3 Activar estado manual del sistema Actor primario: Usuario. Actor secundario: Trigger: Precondiciones: -
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 programaciรณn establecida para la zona 4. El sistema activa el estado manual del sistema 5. El sistema indica que estรก en estado manual
195
Automatización de procesos industriales
4.4 Añadir sensor Actor primario: Usuario. Actor secundario: Trigger: Selección del usuario de configuración de sensores Precondiciones: -
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:
2.a Ya existe un sensor en la zona con el identificador introducido
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
Descripción de datos:
Datos del sensor: •
Identificador del sensor
•
Tipo de sensor(tipo1 o tipo2)
•
Descripción del sensor
196
Automatización de procesos industriales
4.5 Eliminar Sensor Actor primario: Usuario. Actor secundario: Trigger: Selección del usuario de configuración de sensores Precondiciones: -
Escenario primario:
1. El sistema muestra la información 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 automático y el sensor a eliminar es tenido en cuenta por el programa cargado en zona
1. El sistema pide al usuario confirmación de la eliminación 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
Descripción de datos:
Información de los sensores. •
Identificador del sensor
•
Tipo de sensor(tipo1 o tipo2)
•
Descripción del sensor
197
Automatización de procesos industriales
4.6 Modificar sensor Actor primario: Usuario. Actor secundario: Trigger: Selección por parte del usuario de configuración de sensores Precondiciones: -
Escenario primario:
1. El sistema muestra la información 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.
Descripción de datos:
Información de los sensores. •
Identificador del sensor
•
Tipo de sensor(tipo1 o tipo2)
•
Descripción del sensor
Nuevos datos del sensor: •
Tipo de sensor(tipo1 o tipo2)
•
Descripción del sensor
198
Automatización de procesos industriales
4.7 Añadir dispositivo Actor primario: Usuario. Actor secundario: Trigger: Selección por parte del usuario de configuración de dispositivos Precondiciones: -
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:
2.a Ya existe un dispositivo en la zona con el identificador introducido
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
Descripción de datos:
Datos del dispositivo: •
Identificador del dispositivo
•
Tipo de dispositivo (discreto o Go-NoGo)
•
Descripción del dispositivo
199
Automatización de procesos industriales
4.8 Eliminar dispositivo Actor primario: Usuario. Actor secundario: Trigger: Selección por parte del usuario de configuración de dispositivos Precondiciones: -
Escenario primario:
1. El sistema muestra la información 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 automático y el dispositivo a eliminar es tenido en cuenta por el programa cargado en zona
1. El sistema solicita confirmación 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
Descripción de datos:
Información de los dispositivos. •
Identificador del dispositivo
•
Tipo de dispositivo (discreto o Go-NoGo)
•
Descripción del dispositivo
200
Automatización de procesos industriales
4.9 Modificar dispositivo Actor primario: Usuario. Actor secundario: Trigger: Selección por parte del usuario de configuración de dispositivos Precondiciones: -
Escenario primario:
1. El sistema muestra la información 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.
Descripción de datos:
Información de los dispositivos. •
Identificador del dispositivo
•
Tipo de dispositivo (discreto o Go-NoGo)
•
Descripción del dispositivo
Nuevos datos del dispositivo: •
Tipo de sensor(discreto o Go-NoGo)
•
Descripción del dispositivo
201
Automatización de procesos industriales
4.10 Crear programa Actor primario: Usuario. Actor secundario: Trigger: Selección por parte del usuario de gestión de PLA Precondiciones:
Escenario primario:
1. El usuario introduce los datos del programa 2. El usuario introduce las líneas 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 Decisión 1. El sistema comunica al usuario que no se introducido ninguna decisión 2. Volver al paso dos del escenario primario
2b No se ha introducido un valor correcto para la acción 1. El sistema comunica al usuario que no se introducido un valor correcto para la acción indicada 2. Volver al paso dos escenario primario
202
Automatización de procesos industriales
Descripción de datos:
Datos del programa •
Identificador del programa
•
Descripción del programa
Líneas del programa •
Regla o Sensor o Operador o Valor
•
Decisión o Dispositivo o Orden o Valor
203
Automatización de procesos industriales
4.11 Eliminar un programa Actor primario: Usuario. Actor secundario: Trigger: Selección por parte del usuario de gestión de PLA Precondiciones:
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
3.a El programa está activo en la zona
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
Descripción de datos
Datos de los programas: •
Identificador del programa
•
Descripción del programa
204
Automatización de procesos industriales
4.12 Modificar un programa Actor primario: Usuario. Actor secundario: Trigger: Selección por parte del usuario de gestión de PLA Precondiciones:
Escenario primario:
1. El sistema muestra las líneas del programa que forman el programa seleccionado 2. El usuario selecciona la línea de programa a modificar 3. El usuario introduce los datos del programa 4. El usuario introduce las líneas 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 Decisión 3. El sistema comunica al usuario que no se introducido ninguna decisión 4. Volver al paso dos del escenario primario
3c No se ha introducido un valor correcto para la acción 3. El sistema comunica al usuario que no se introducido un valor correcto para la acción indicada 4. Volver al paso dos escenario primario
Descripción de datos:
205
Automatización de procesos industriales
Datos del programa •
Identificador del programa
•
Descripción del programa
Líneas del programa •
Regla o Sensor o Operador o Valor
•
Decisión o Dispositivo o Orden o Valor
206
Automatización de procesos industriales
4.13 Activar un programa Actor primario: Usuario. Actor secundario: Trigger: Selección por parte del usuario de activación de programa Precondiciones:
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 automático 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 automático 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
Automatización de procesos industriales 3c La zona está en estado automático y no dispone de los dispositivos necesarios para ejecutar el programa
1. El sistema comunica al usuario que el programa necesita de dispositivos no disponibles en la zona 2. Fin del caso de uso
Descripción de datos:
Datos del programa •
Identificador del programa
•
Descripción del programa
Programa de zona:
Aquel programa que será activado cuando el sistema esté en estado automático.
208
Automatización de procesos industriales
4.14 Visualización del fichero de log de zona. Actor primario: Usuario. Actor secundario: Trigger: Selección por parte del usuario de visualización del log de Zona Precondiciones: -
Escenario primario.
1. El sistema muestra el contenido del fichero configurado como log de la zona.
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.
Descripción de datos
Contenido del fichero de logZona: •
Fecha inicio aplicación
•
Valor de los sensores de la zona
•
Ordenes enviadas a los dispositivos
209
Automatizaciรณn de procesos industriales
4.15 Visualizaciรณn de los ficheros de log de los dispositivos Actor primario: Usuario. Actor secundario: Trigger: Selecciรณn del usuario de visualizaciรณn de logs para los dispositivos Precondiciones: -
Escenario primario
1. El sistema muestra la informaciรณn 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
Automatización de procesos industriales
5. Reglas de negocio (RN001)
El resultado de la operación 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 línea de un programa ha de componerse como mínimo por una condición y una acción.
(RN004)
El identificador de un sensor solo se puede especificar al añadirlo a la zona, una vez añadido el identificador se considera un valor no modificable.
211
Automatización de procesos industriales
6. Secuencia de eventos: Estado de la zona: • •
Estado manual Estado automático
Activar estado automático Activar estado manual
212
Automatizaciรณn de procesos industriales Manipulaciรณn de dispositivos โ ข
Manipulaciรณn manual de los dispositivos de la zona
Manipulaciรณn manual de dispositivos
213
Automatización de procesos industriales Gestión PLA: • • • •
Eliminar Programa Modificar Programa Crear Programa o Definición del programa o Definición de sensores y dispositivos o Definición de reglas
Nuevo Programa
Definición Sensores/dispositivos
Eliminar programa Definición de reglas Modificar Programa
214
Automatización de procesos industriales Configuración • •
Configuración dispositivos Configuración sensores
Añadir dispositivo Eliminar dispositivo Modificar dispositivo
Añadir sensor Eliminar sensor Modificar sensor
215
Automatizaciรณn de procesos industriales Visualizaciรณn de logs โ ข
Log de dispositivo
Selecciรณn dispositivo
216
Automatizaciรณn de procesos industriales
7. Diagramas de Clase 7.1 Diagrama de paquetes.
217
Automatizaciรณn de procesos industriales
7.2 Diagrama de clases del paquete: proyecto
218
Automatizaciรณn de procesos industriales
7.3 Diagrama de clases del paquete: Dispositivos
219
Automatizaciรณn de procesos industriales
7.4 Diagrama de clases del paquete: Dispositivos.eventos
220
Automatizaciรณn de procesos industriales
7.5 Diagrama de clases del paquete: Sensores
221
Automatizaciรณn de procesos industriales
7.6 Diagrama de clases del paquete: Sensores.Eventos
222
Automatizaciรณn de procesos industriales
7.7 Diagrama de clases del paquete: Programaciรณn
223
Automatizaciรณn de procesos industriales
7.8 Diagrama de clases del paquete: InterfazGrรกfico
224
Automatizaciรณn de procesos industriales
7.9 Diagrama clases del paquete: InterfazGrรกfico.CreaciรณnProgramas
225
Automatizaciรณn de procesos industriales
7.10 Diagrama de clases del paquete: InterfazGrรกfico.Configuraciรณn
226
Automatizaciรณn de procesos industriales
7.11 Diagrama de clases del paquete: InterfazGrรกfico.Tabla
227
Automatizaciรณn de procesos industriales
7.12 Diagrama de clases del paquete: XML
228
Automatizaciรณn de procesos industriales
7.13 Diagrama de clases del paquete: Logs
229
Automatizaciรณn de procesos industriales
7.14 Diagrama de clases del paquete: Util
230
Automatización de procesos industriales
8. Diagramas de secuencia. Inicio del sistema: • • •
Inicio de los dispositivos Inicio de los sensores Inicio de los programas
Activar automatización: • • •
Activar el estado automático Activar programa Cambio de estado de los sensores
Activar control manual: • •
Activar estado manual Manipular dispositivo
Gestionar dispositivos: • • • •
Mostrar configuración de dispositivos Agregar un dispositivo Modificar un dispositivo Eliminar un dispositivo
Gestionar Sensores: • • • •
Mostrar configuración 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
Automatizaciรณn de procesos industriales
8.1 Inicio del sistema: Inicio de los dispositivos
232
Automatizaciรณn de procesos industriales
8.2 Inicio sistema: Inicio de los sensores
233
Automatizaciรณn de procesos industriales
8.3 Inicio del sistema: Inicio de los programas
234
Automatizaciรณn de procesos industriales
8.4 Activar automatizaciรณn: Activar estado automรกtico.
235
Automatizaciรณn de procesos industriales
8.5 Activar automatizaciรณn: Activar programa.
236
Automatizaciรณn de procesos industriales
8.6 Activar automatizaciรณn: Cambio en el estado de un sensor.
237
Automatizaciรณn de procesos industriales
8.7 Activar control manual: Activar estado manual.
238
Automatizaciรณn de procesos industriales
8.8 Activar control manual: Manipular dispositivo.
239
Automatizaciรณn de procesos industriales
8.9 Configurar dispositivos: Mostrar configuraciรณn dispositivos.
240
Automatizaciรณn de procesos industriales
8.10 Configurar dispositivos: Agregar un dispositivo.
241
Automatizaciรณn de procesos industriales
8.11 Configurar dispositivos: Modificar un dispositivo.
242
Automatizaciรณn de procesos industriales
8.12 Configurar dispositivos: Eliminar un dispositivo.
243
Automatizaciรณn de procesos industriales
8.13 Configurar sensores: Mostrar configuraciรณn sensor
244
Automatizaciรณn de procesos industriales
8.14 Configurar sensores: Agregar un sensor
245
Automatizaciรณn de procesos industriales
8.15 Configurar sensores: Modificar un sensor
246
Automatizaciรณn de procesos industriales
8.16 Configurar sensores: Eliminar un sensor
247
Automatizaciรณn de procesos industriales
8.17 Configurar programas: Mostrar tabla de programas
248
Automatizaciรณn de procesos industriales
8.18 Configuraciรณn de programas: Crear un programa
249
Automatizaciรณn de procesos industriales
8.19 Configuraciรณn de programas: Modificar un programa
250
Automatizaciรณn de procesos industriales
8.20 Configuraciรณn de programas: Eliminar un programa
251
Automatización de procesos industriales
DESCRIPCIÓN DEL PROTOPITO
1. Dispositivo Bidireccional X10 para PC Modelo CM11A
Descripción:
El controlador CM11A está diseñado para permitir el intercambio de información con un ordenador haciendo uso de un cable RS-232 – RJ45.
Realiza la conversión de órdenes enviadas desde el ordenado y transmite éstas sobre el cableado de la instalación para el control de dispositivos electrónicos conectados a módulos 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 baterías estándar modelo AAA, mediante estas baterías el dispositivo mantiene en funcionamiento su reloj interno, realiza la programación de los eventos programados y control las macros definidas durante un tiempo de quinientas horas incluso si la electricidad de la instalación deja de estar disponible. Esto permite desconectar el controlador CM11A de la toma de corriente y colocarlo en el lugar mas útil.
252
Automatización de procesos industriales El controlador viene previsto de un enchufe para una toma de corriente alterna en su parte delantera para la conexión eléctrica del PC. Se incluye el cable de conexión entre el puerto serie del PC y la salida RJ-45 del dispositivo
Este controlador es full-duplex, permite la transmisión de comandos X10 así como la recepción de estos, comunicándoselos, en caso de estar disponible, al PC para su correspondiente tratamiento.
253
Automatización de procesos industriales
2. Módulo para dispositivos X10 Pro LM14A
Descripción:
Este dispositivo es el encargado de interpretar los comandos X10 transmitidos por la red y tomar las acciones correspondientes a los eventos ordenados.
Esta versión permite la comunicación en ambas direcciones, recibiendo ordenes X10 a través de la red y transmitiendo estados a ésta para su recepción por el controlador CM11A y su posterior comunicación al PC a través del cable RS232- RJ45.
Tiene una función de arranque progresivo que aumenta la tensión desde cero por ciento hasta alcanzar la última tensión 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 tensión automáticamente a la máxima 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 tensión.
254
Automatización de procesos industriales
3. Módulo de Lámpara casquillo rosca LM15 Descripción:
El
Módulo
de
Lámpara
–
casquillo rosca- LM15 es un dispositivo del Sistema X-10, que se instala en el casquillo
E-27
tradicional
de
las
lámparas, y en él se enrosca la bombilla.
Al recibir a través de la red eléctrica las ordenes destinadas a él, enciende
o
apaga
la
bombilla
incandescente que tenga conectada.
Detalles:
El Módulo de Lámpara LM15 recibe las señales X10 inyectadas en la red eléctrica a través 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 asignación de Códigos de Casa y de Unidad del Sistema X-10. Por defecto responde en el código A1.
No requiere ningún tipo de instalación.
El Módulo de Lámpara LM15 permite el encendido / apagado de bombillas de incandescencia hasta de 150 W ( 60 W. En caso de lámparas cerradas)
255
Automatización de procesos industriales El Módulo de Lámpara LM15 responde a los mensajes de control de la forma estándar X-10, esto es: “Todas las Luces encendidas” o “Todas las Luces apagadas” desde cualquier mando a distancia establecido en el “House Code” correspondiente, sin tener en cuenta el “Unit code”, o alternativamente controlando de forma individual cada unidad mediante “On”, “Off”.
Tensión de Alimentación:
230 V ± 10% 50 Hz.
Carga permitida:
Hasta 150 W en pantallas abiertas y 60 W en pantallas cerradas (Lámparas incandescentes)
256
Automatización de procesos industriales
PRESUPUESTO
Fases del desarrollo 1. 2. 3. 4. 5. 6. 7. 8.
Toma de especificaciones Análisis y diseño Prototipado Construcción y desarrollo Validación y pruebas Documentación Instalación y puesta en marcha Garantía a tres meses
Dimensionamiento del equipo Personas 1 1 2
Perfiles Director de proyecto Analista programador Programadores
257
Automatización de procesos industriales
Plan de proyecto
Toma especificaciones Análisis y diseño Prototipado Codificación Validación y pruebas Documetanción Instalación y puesta en marcha Sem
Sem
Sem
Sem
Sem
Sem
Sem
Sem
Sem
Sem
Sem
Sem
258
Automatización de procesos industriales
Estudio económico Contingencias
3%
Beneficio antes de impuestos
20%
Equipo humano Per. Director de proyecto Analista Programador Programador TOTALES
1 1 2
€/h coste 45,00 € 40,00 € 30,00 €
€/h Precio
Total h 480 480 800
90,00 80,00 70,00
Coste 21.600,00 € 19.200,00 € 24.000,00 € 64.800,00 €
Precio 43.200,00 38.400,00
44.496,00 39.552,00
56.000,00
67.200,00
137.600,00
151.248,00
Occupancy Per. 4
Persona TOTAL
€/mes 1.000,00 €
Meses 3
Coste 12.000,00 € 12.000,00 €
Precio
Contingencias
14.400,00
14.832,00
14.400,00
14.832,00
Transporte Per. Director del proyecto 1 Analista Programador 1 Programador 2 TOTAL Coste periodo garantía Per. Programador 1 TOTAL
€/día 9,00 € 9,00 € 9,00 €
€/mes 4.800,00 €
Días 60 60 100
Meses 3
Coste 540,00 € 540,00 € 900,00 € 1.980,00 €
Precio
Coste 14.400,00 € 14.400,00 €
Precio
Contingencia
648,00
667,44
648,00
667,44
1.080,00
1.112,40
2.376,00
2.447,28
Contingencias
17.280,00
17.798,40
17.280,00
17.798,40
Resumen Equipo humano Occupancy Transportes Garantía
151.248,00 14.832,00 2.447,28 17.798,40
186.325,68 TOTAL
Contingenci as
+ IVA
259
Automatización de procesos industriales
CONCLUSIÓN En un contexto industrial se puede definir la automatización como una tecnología que está relacionada con el empleo de sistemas mecánicos-eléctricos basados en computadoras para la operación y control de la producción.
La historia de la automatización industrial está caracterizada por períodos de constantes innovaciones tecnológicas. Esto se debe a que las técnicas de automatización están muy ligadas a los sucesos económicos mundiales.
Aunque el crecimiento del mercado de la automatización industrial ha sido lento en comparación con los primeros años de la década de los 80´s, de acuerdo a algunas predicciones, este tipo de sistemas están en su infancia y por lo tanto les queda mucho recorrido todavía por delante.
En la actualidad el uso de automatismos industriales está concentrado en operaciones muy simples, como tareas repetitivas que no requieren tanta precisión. Las tareas relativamente simples como recogida de datos mediante sensores o activación de dispositivos, son económicamente viables para ser automatizadas. Los análisis de mercado en cuanto a fabricación predicen que en ésta década y en las posteriores los sistemas de automatización industrial incrementaran su campo de aplicación.
La introducción de sistemas de automatización en pequeñas 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 producción, es decir, se reducen los costes de producción, 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 gestión de las instalaciones con estos sistemas de automatización para poder dar acceso a todo tipo de empresas a estas ventajas. Dado la relativa juventud de automatización industrial, lo que
260
Automatización de procesos industriales hace que tenga un elevado precio, su uso está restringido sobre todo para las grandes industrias.
Este proyecto hace visible la viabilidad de la implantación de sistemas de control y automatización en todo tipo de instalaciones industriales como pueden ser granjas o invernaderos, poniendo énfasis en la replicación, con el fin de abaratar sus costes.
La solución demostrada consiste en un sistema abierto, para el control centralizado de dispositivos electromecánicos.
Con capacidad para el control,
monitorización y actuación remota haciendo uso de una red TCP/IP como es Internet, sin restricciones en cuanto al número de dispositivos o funcionalidades que estos aporten independientemente del proveedor de los dispositivos.
En resumen la automatización en la recogida de datos y en la ejecución de procesos es una tecnología 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 también a todo tipo de empresas.
261
Automatización de procesos industriales
BIBLIOGRAFÍA Libros:
[FLA02]
David Flanagan Java In A Nutshell Fourth Edition, O’REILLY 2002
[SCH02]
Schildt, Herbert Java(tm)2: A Beginner's Guide, McGraw-Hill 2002
[BRU01]
Bruce Eckel Thinking in Java Second Edition 2001
[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 Microsystem’s 2002
[PER03]
Perrone, Paul J2EE Developer's Handbook, Sam’s publishing 2003
[CAM84]
Joe Campbell The RS-232 solution, SYBEX 1984
[SELL88]
Martin D. Séller Complete Guide to Rs-232 and Parallel Connections, SYBEX 1988
[BUC03]
Robert N. Bucceri Latest Technology in Automated Home Control, Silent Servant 2003
[TEC05]
Technica Pacifica Easy X10 Projects, Indy-Tech Publishing, March 2005
[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]
Hans Bergsten JavaServer Pages, 3rd Edition, O’REILLY 2003
262
Automatización de procesos industriales
[PER04]
Bruce W. Perry Java Servlet & JSP Cookbook, O’REILLY 2004
[CAV04]
Chuck Cavaness Programming Jakarta Struts, 2nd Edition, O’REILLY 2004
[GAR01]
Giarratano, Joseph y Riley, Gary Sistemas Expertos. Principios y programación, 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
Automatizaciรณn de procesos industriales
APENDICES
264
Automatización de procesos industriales
MANUAL DE USUARIO
1. Pantalla principal de la aplicación:
Esta es la pantalla principal de la aplicación, desde ella podemos acceder a todas las funcionalidades disponibles.
Podemos distinguir cuatro zonas:
1. Sección manual: Esta es la sección dedicada al control manual de los dispositivos. Cuando el sistema se encuentra en estado manual, el usuario podrá manipular los dispositivos presentes en la instalación y visibles en está zona
A-1
Automatización de procesos industriales 2. Sección automática: Esta es la sección en donde se muestra el programa activo en la instalación y las reglas disparadas dependiendo del estado de ésta. Para que un programa esté activo la instalación ha de estar en estado automático.
3. Sección gráfica. Esta sección es donde se visualiza el estado de la instalación de una forma gráfica.
4. Sección estado de la instalación: Esta sección esta dedicada a visualizar el estado de la instalación 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
Automatización de procesos industriales
2. Estado manual de la instalación
1 2 5
3
4
6
Con la activación del estado manual (1) los controles de los dispositivos se habilitarán, una vez habilitados el usuario puede manipular manualmente los dispositivos disponibles en la instalación.
Las acciones realizadas se reflejaran en el gráfico (2), en la base de los controles (3) y en la zona inferior derecha (6), zona dedicada a mostrar detalladamente el estado de la instalación.
A la misma vez que se habilitan los controles manuales se deshabilita el control automático de la instalación dejando de estar operativos los sensores y la programación configurada. (4)
Los dispositivos disponibles serán aquellos que estén previamente configurados y que aparecen en la zona superior izquierda (5), zona dedicada al control manual de dispositivos. A-3
Automatización de procesos industriales
3. Activar estado automático de la instalación
1
4 5
6 2 3
Con la activación del estado automático (1) de la instalación se activa el control automático y se deshabilita el control manual (4).
Las reglas disparadas por el programa se marcan coloreando la línea correspondiente a la regla disparada (2).
Las acciones tomadas sobre los dispositivos se reflejan en:
1. La sección manual (4) en el dispositivo correspondiente a la acción reflejando el valor de la acción tanto gráficamente en su correspondiente gráfico de dispositivo como en un indicador situado en su parte inferior(6). 2. En la sección de estados (3) en el mismo formato que en la sección manual 3. En la sección gráfica (5) mostrando gráficamente el estado completo de la zona de una forma visual.
A-4
Automatización de procesos industriales
4. Automatización de la instalación.
La automatización de la instalación 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 aplicación ha de tener en cuanta cuando se active el estado automático de la instalación.
Cada regla está formada por un conjunto de condiciones sobre el estado de los sensores, las condiciones responden a tres tipos de operadores lógicos: •
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: Activación del dispositivos a una tensión del 100%
•
Off: Desactivación del dispositivo
•
Dim X: Activación del dispositivo a una tensión del X%.
Las reglas están ordenadas por prioridad, ejecutándose según 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
Automatizaciรณn de procesos industriales 2. Que el dispositivo o dispositivos afectados por sus acciones no hayan sido foco de otras reglas con origen en el mismo evento.
La aplicaciรณn 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
Automatización de procesos industriales
5. Configuración de programas.
Mediante la barra de menús situada en la parte superior de la pantalla se puede acceder a las distintas opciones de configuración de la instalación, en este caso PLA que es la que nos concierne.
Esta sección está dedicada a todo lo que se refiere a la configuración de la programación por parte del usuario y es accedida seleccionando Gestión PLA o Nuevo programa.
Una vez seleccionada la opción se nos muestran las distintas posibilidades.
5
1
4
2
3 1. Selección de programas. 2. Creación de programas. 3. Edición de programas. 4. Eliminación de programas. 5. Lista
de
programas
ya
cargados
en
la
zona
A-7
Automatización de procesos industriales
6. Creación de programas.
Pulsando sobre el botón “Crear Programa” comenzaremos el proceso de creación:
1. Indicar número de sensores y dispositivos que emplea la zona 2. Selección de tipo e identificador de los dispositivos del programa 3. Creación de líneas del programa
1. Indicar número de sensores y dispositivos que emplea la zona
Esta es la primera pantalla del proceso de creación de programas, en ella hemos de especificar la descripción y el identificador que deseemos darle al programa.
Igualmente hay que indicar tanto el número de sensores como el número de dispositivos que van a ser utilizados en algún momento del programa.
A-8
Automatización de procesos industriales
Estos números 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 automático permitiendo únicamente el estado manual de control de dispositivos.
Por defecto vienen establecidos un sensor y un dispositivo, ésta es la cantidad mínima de sensores y dispositivos para que un programa tenga sentido.
A-9
Automatización de procesos industriales 2. Selección de tipo e identificador de los dispositivos del programa
Una vez que se ha establecido el número de sensores y dispositivos se ha de indicar: •
Identificadores asociados a los sensores
•
Identificadores asociados a los dispositivos
•
Descripción del sensor
•
Descripción 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
Automatización de procesos industriales El tipo de dispositivo: •
Discreto: el usuario podrá manipular el dispositivo eligiendo la tensión que llega al dispositivo. Los valores tomados oscilarán 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 tensión mientras que encenderlo se corresponde con el cien por ciento de la tensión.
A-11
Automatización de procesos industriales 3. Creación de líneas del programa.
6
1 4 2
3
1. Valores de la línea a. identificador de la línea b. prioridad de la línea dentro del programa 2. Regla a. Operación aritmética b. Valor del sensor 3. Acción a. Operación a realizar b. Valor 4. Añadir la regla al programa
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 lógicos: •
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: Activación del dispositivos a una tensión del 100%
•
Off: Desactivación del dispositivo
•
Dim X: Activación del dispositivo a una tensión del X%.
A-12
Automatización de procesos industriales 2.1 Configuración de las líneas de programa.
1
3 4
2
5 Una vez añadida la línea de programa ésta aparecerá dentro del conjunto de líneas que forman el programa (1). Las líneas están ordenadas por prioridad ya que es por este orden por el que se ejecutarán.
Una línea puede ser modificada, si seleccionamos la línea por su identificador y le damos al botón de modificar (2). Acto seguido aparecerán los campos de configuración de la línea rellenados con los valores de la línea que se ha seleccionado. Todos los valores son modificables menos el identificador de línea.
Una vez modificado el valor deseado se volverá a pulsar al botón añadir (4) y la línea quedará modificada.
También se pueden eliminar las líneas que conforman un programa, primero se seleccionarla la línea a borra y después se pulsará el botón de eliminar (3). Acto seguido la línea quedará eliminada del programa y no se mostrará en el conjunto de líneas (1).
Cuando el programa ya esté totalmente construido se presionará el botón Aceptar (5) para concluir la operación de creación del programa.
A-13
Automatización de procesos industriales
7. Edición de programas
Pulsando sobre el botón “Modificar” comenzaremos el proceso de modificación del programa seleccionado.
Ventana de modificación:
En esta ventana se muestran las líneas que componen el programa, para modificarlo hemos de seleccionar la línea por su identificador y le dar al botón de modificar (2).
Acto seguido aparecerán los campos de configuración de la línea rellenados con los valores de la línea que se ha seleccionado. Todos los valores son modificables menos el identificador de línea.
A-14
Automatización de procesos industriales Una vez modificado el valor deseado se volverá a pulsar al botón añadir (4) y la línea quedará modificada.
También se pueden eliminar las líneas que conforman un programa, primero se seleccionarla la línea a borra y después se pulsará el botón de eliminar (3). Acto seguido la línea quedará eliminada del programa y no se mostrará en el conjunto de líneas (1).
Cuando el programa ya esté totalmente modificado se presionará el botón Aceptar (5) para concluir la operación de modificación del programa. En caso de que el programa esté activo en la zona el sistema le comunicará la situación al usuario, en caso de seguir con la operación las modificaciones tendrán efecto inmediato sobre la zona.
A-15
Automatización de procesos industriales
8. Eliminación de programas
Se selecciona el programa a eliminar y se pulsa el botón “Eliminar”.
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.
Las acciones a tomar son:
1. Paso a control manual de los dispositivos de la instalación. 2. Configuración del PLA. 3. Eliminación del programa.
A-16
Automatización de procesos industriales
9. Activación de programa.
Mediante la activación de un programa configuramos que programa es el que queremos que se ocupe de la automatización de la zona.
Una vez seleccionada la opción de activar programa se nos muestra la lista de programas disponibles. En esta lista de puede ver el identificador de programa y su descripción.
Seleccionamos el programa que deseamos activar en la instalación y pulsamos el botón “Seleccionar”
Con la opción de activar programa únicamente estamos configurando que programa ha de hacerse cargo de la automatización de la zona.
A-17
Automatizaciรณn de procesos industriales Si queremos pasar al estado automรกtico hemos de pulsar el botรณn de automรกtico de la pantalla principal.
A-18
Automatización de procesos industriales
10. Manipulación de dispositivos.
1 2 5
3
4
6
Si el estado manual (1) está activado, los controles de los dispositivos estarán habilitados y podrán ser manipulados por el usuario.
Hay dos tipos de dispositivos a manipular: •
Discreto: el usuario podrá manipular el dispositivo eligiendo la tensión que llega al dispositivo. Los valores tomados oscilarán 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 tensión mientras que encenderlo se corresponde con el cien por ciento de la tensión.
A-19
Automatización de procesos industriales Las acciones realizadas se reflejaran en el gráfico (2), en la base de los controles (3) y en la zona inferior derecha (6), zona dedicada a mostrar detalladamente el estado de la instalación. Los dispositivos disponibles serán aquellos que estén previamente configurados y que aparecen en la zona superior izquierda (5), zona dedicada al control manual de dispositivos.
A-20
Automatizaciรณn de procesos industriales
11. Manipulaciรณn de sensores
1
4 5
7 2 6
3
Los sensores se corresponden a simulaciรณn de dispositivos sensores.
Si la instalaciรณn se encuentra en estado automรกtico (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 lรญnea correspondiente a la regla disparada (2).
Las acciones tomadas sobre los dispositivos se reflejan en: 1. La secciรณn manual (4) en el dispositivo correspondiente a la acciรณn reflejando el valor de la acciรณn tanto grรกficamente en su correspondiente grรกfico de dispositivo como en un indicador situado en su parte inferior(7). 2. En la secciรณn de estados (6) en el mismo formato que en la secciรณn manual
A-21
Automatizaciรณn de procesos industriales 3. En la secciรณn grรกfica (5) mostrando grรกficamente el estado completo de la zona de una forma visual.
A-22
Automatización de procesos industriales
12. Configuración de dispositivos
Con la configuración de dispositivos podremos gestionar los dispositivos existentes en la instalación.
La ventana nos muestra una lista de los dispositivos actuales de la instalación ordenados por su identificador. También se muestra el tipo de dispositivo y la descripción que se le haya dado a este.
A-23
Automatización de procesos industriales
Hay dos tipos de dispositivos: •
Discreto: el usuario podrá manipular el dispositivo eligiendo la tensión que llega al dispositivo. Los valores tomados oscilarán 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 tensión mientras que encenderlo se corresponde con el cien por ciento de la tensión.
Podemos realizar tres tipos de operaciones:
1. Añadir 2. Modificar 3. Eliminar
A-24
Automatización de procesos industriales 1. Añadir un dispositivo
Para añadir un nuevo dispositivo hemos de rellenar los campos solicitados: •
Identificador
•
Tipo
•
Descripción
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 añadir el nuevo dispositivo.
El identificador también 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 botón “Modificar” y automáticamente se rellenarán los campos.
El único campo no modificable es el campo del identificador.
Cuando se hayan modificado todos los campos se pulsará al botón “Añadir” y el dispositivo quedará modificado.
3. Eliminar un dispositivo
Para eliminar un dispositivo hemos de seleccionarlo y pulsar al botón “Eliminar”
Automáticamente quedará eliminado de los dispositivos disponibles en la zona.
A-25
Automatizaciรณn de procesos industriales Tanto para modificar como para eliminar, los dispositivos 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 operaciรณn solicitada.
A-26
Automatización de procesos industriales
13. Configuración de sensores
Con la configuración de sensores podremos gestionar los sensores existentes en la instalación.
La ventana nos muestra una lista de los sensores actuales de la instalación ordenados por su identificador. También se muestra el tipo de sensores y la descripción que se le haya dado a este.
Hay dos tipos de sensores: •
Tipo1: se podrán simular distintas cantidades discretas entre cero y cien
•
Tipo2: El usuario únicamente podrá seleccionar entre dos estados, apagado y encendido.
A-27
Automatización de procesos industriales
Podemos realizar tres tipos de operaciones:
1. Añadir 2. Modificar 3. Eliminar
1. Añadir un sensor
Para añadir un nuevo sensor hemos de rellenar los campos solicitados: •
Identificador
•
Tipo
•
Descripción
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 añadir el nuevo dispositivo.
El identificador también 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 botón “Modificar” y automáticamente se rellenarán los campos.
El único campo no modificable es el campo del identificador.
Cuando se hayan modificado todos los campos se pulsará al botón “Añadir” y el sensor quedará modificado.
A-28
Automatización de procesos industriales 3. Eliminar un sensor
Para eliminar un sensor hemos de seleccionarlo y pulsar al botón “Eliminar”
Automáticamente quedará eliminado de los sensor disponibles en la zona.
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 operación solicitada.
A-29