automatización de procesos industriales. - IIT

Transcription

automatización de procesos industriales. - IIT
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>[email protected]</email>
</remite>
<destinatario>
<nombre>Bill Clinton</nombre>
<email>[email protected]</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". É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>[email protected]</email>
<relacion amigo-de="laetitia">
</persona>
<persona sexo="mujer" id="laetitia">
<nombre>Laetitia Casta</nombre>
<email>[email protected]</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