307
PROYECTO FIN DE CARRERA AUTOMATIZACIÓN DE PROCESOS INDUSTRIALES. AUTOR: JAVIER ORDAX CASSÁ MADRID, JUNIO 2005 UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO INFORMÁTICA

proyecto automatizacion

Embed Size (px)

Citation preview

Page 1: proyecto automatizacion

PROYECTO FIN DE CARRERA

AUTOMATIZACIÓN DE PROCESOSINDUSTRIALES.

AUTOR: JAVIER ORDAX CASSÁ

MADRID, JUNIO 2005

UNIVERSIDAD PONTIFICIA COMILLASESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INFORMÁTICA

Page 2: proyecto automatizacion
Page 3: proyecto automatizacion

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

Page 4: proyecto automatizacion

PROYECTO FIN DE CARRERA

AUTOMATIZACIÓN DE PROCESOSINDUSTRIALES.

AUTOR: Javier Ordax CassáDIRECTOR: José Miguel Ordax Cassá

UNIVERSIDAD PONTIFICIA COMILLASESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INFORMÁTICA

Page 5: proyecto automatizacion

• 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.

Page 6: proyecto automatizacion

Automatización de procesos industriales

i

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.

Page 7: proyecto automatizacion

Automatización de procesos industriales

ii

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.

Page 8: proyecto automatizacion

Automatización de procesos industriales

iii

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.

Page 9: proyecto automatizacion

Automatización de procesos industriales

iv

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.

Page 10: proyecto automatizacion

Automatización de procesos industriales

v

Í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....................................................................................................................................161.1 Automatización y evolución histórica .........................................................................................161.2 Servicios y aplicaciones de una instalación automática................................................................18

2. Sistemas automáticos. .....................................................................................................................222.1 Sistemas por corrientes portadoras..............................................................................................222.2 Sistemas por controlador programable. .......................................................................................242.3 Sistema por bus de datos.............................................................................................................25

3. Bus de instalación europeo – EIB...................................................................................................273.1 La EIBA ....................................................................................................................................273.2 Generalidades ............................................................................................................................293.3 Tecnología EIB..........................................................................................................................343.4 Topología de las redes EIB.........................................................................................................393.5 Los telegramas ...........................................................................................................................403.6 Composición de los nodos ..........................................................................................................433.8 Direccionamiento.......................................................................................................................453.9 Cuadro técnico EIB....................................................................................................................463.10 Programación de una instalación EIB (ETS) .............................................................................473.11 Otra tecnología de control distribuida LonWorks (Comparación con EIB).................................49

4. Red domótica EHS..........................................................................................................................534.1 Medios físicos de transmisión.....................................................................................................534.2 Tipos de unidades.......................................................................................................................544.3 Modelos lógicos de comunicación ..............................................................................................574.4 Protocolo de comunicaciones......................................................................................................58

5. Red Batibus.....................................................................................................................................63

Page 11: proyecto automatizacion

Automatización de procesos industriales

vi

6. Convergencia de EHS, EIB Y Batibus............................................................................................64

INTRODUCCIÓN A LA TECNOLOGÍA LONWORKS ..................................... 66

1. Conceptos básico.............................................................................................................................661.1 Red de control............................................................................................................................661.2 La Plataforma LonWorks ...........................................................................................................681.3 Utilización de redes LonWorks...................................................................................................701.4 Alcance del estándar...................................................................................................................721.5 Neuronas y su utilización............................................................................................................731.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................................................................................................. 1013.1 Introducción............................................................................................................................. 1013.2 Potente..................................................................................................................................... 1023.3 Simple ..................................................................................................................................... 1043.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.......................................................................................................121Tipos de autentificación definidos. .................................................................................................122Modos de transporte....................................................................................................................... 123

Dominios de seguridad en Tomcat (server.xml). ........................................................................124tomcat-users.xml............................................................................................................................124Autentificación mediante una Base de Datos .................................................................................. 124

Configuración de una aplicación......................................................................................................128Autentificación BASIC. .................................................................................................................128Autentificación FORM. ...................................................................................................................130

Problemas con Apache y Tomcat ..................................................................................................... 133

EXTENSIBLE MARKUP LENGUAJE (XML)................................................. 134

SISTEMAS EXPERTOS................................................................................. 171

Page 12: proyecto automatizacion

Automatización de procesos industriales

vii

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:................................................................................................................................. 1914.1 Manipular dispositivo............................................................................................................... 1924.2 Activar estado automático del sistema....................................................................................... 1934.3 Activar estado manual del sistema ............................................................................................1954.4 Añadir sensor ...........................................................................................................................1964.5 Eliminar Sensor........................................................................................................................1974.6 Modificar sensor ...................................................................................................................... 1984.7 Añadir dispositivo .................................................................................................................... 1994.8 Eliminar dispositivo .................................................................................................................2004.9 Modificar dispositivo ............................................................................................................... 2014.10 Crear programa ...................................................................................................................... 2024.11 Eliminar un programa.............................................................................................................2044.12 Modificar un programa........................................................................................................... 2054.13 Activar un programa............................................................................................................... 2074.14 Visualización del fichero de log de zona. ................................................................................ 2094.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 ...................................................................................................................... 2177.1 Diagrama de paquetes...............................................................................................................2177.2 Diagrama de clases del paquete: proyecto .................................................................................2187.3 Diagrama de clases del paquete: Dispositivos ........................................................................... 2197.4 Diagrama de clases del paquete: Dispositivos.eventos ............................................................... 2207.5 Diagrama de clases del paquete: Sensores.................................................................................2217.6 Diagrama de clases del paquete: Sensores.Eventos.................................................................... 2227.7 Diagrama de clases del paquete: Programación .........................................................................2237.8 Diagrama de clases del paquete: InterfazGráfico ....................................................................... 2247.9 Diagrama clases del paquete: InterfazGráfico.CreaciónProgramas.............................................2257.10 Diagrama de clases del paquete: InterfazGráfico.Configuración .............................................. 2267.11 Diagrama de clases del paquete: InterfazGráfico.Tabla............................................................ 2277.12 Diagrama de clases del paquete: XML .................................................................................... 2287.13 Diagrama de clases del paquete: Logs .....................................................................................2297.14 Diagrama de clases del paquete: Util....................................................................................... 230

8. Diagramas de secuencia................................................................................................................ 2318.1 Inicio del sistema: Inicio de los dispositivos.............................................................................. 232

Page 13: proyecto automatizacion

Automatización de procesos industriales

viii

8.2 Inicio sistema: Inicio de los sensores ........................................................................................ 2338.3 Inicio del sistema: Inicio de los programas................................................................................ 2348.4 Activar automatización: Activar estado automático. .................................................................. 2358.5 Activar automatización: Activar programa................................................................................ 2368.6 Activar automatización: Cambio en el estado de un sensor. .......................................................2378.7 Activar control manual: Activar estado manual. ........................................................................ 2388.8 Activar control manual: Manipular dispositivo..........................................................................2398.9 Configurar dispositivos: Mostrar configuración dispositivos...................................................... 2408.10 Configurar dispositivos: Agregar un dispositivo. ..................................................................... 2418.11 Configurar dispositivos: Modificar un dispositivo. .................................................................. 2428.12 Configurar dispositivos: Eliminar un dispositivo. .................................................................... 2438.13 Configurar sensores: Mostrar configuración sensor ................................................................. 2448.14 Configurar sensores: Agregar un sensor .................................................................................. 2458.15 Configurar sensores: Modificar un sensor ............................................................................... 2468.16 Configurar sensores: Eliminar un sensor .................................................................................2478.17 Configurar programas: Mostrar tabla de programas................................................................. 2488.18 Configuración de programas: Crear un programa .................................................................... 2498.19 Configuración de programas: Modificar un programa.............................................................. 2508.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

Page 14: proyecto automatizacion

Automatización de procesos industriales

ix

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

Page 15: proyecto automatizacion

Automatización de procesos industriales

1

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.

Page 16: proyecto automatizacion

Automatización de procesos industriales

2

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

Page 17: proyecto automatizacion

Automatización de procesos industriales

3

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.

Page 18: proyecto automatizacion

Automatización de procesos industriales

4

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

Page 19: proyecto automatizacion

Automatización de procesos industriales

5

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

Page 20: proyecto automatizacion

Automatización de procesos industriales

6

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

Page 21: proyecto automatizacion

Automatización de procesos industriales

7

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

Page 22: proyecto automatizacion

Automatización de procesos industriales

8

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.

Page 23: proyecto automatizacion

Automatización de procesos industriales

9

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.

Page 24: proyecto automatizacion

Automatización de procesos industriales

10

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.

Page 25: proyecto automatizacion

Automatización de procesos industriales

11

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.

Page 26: proyecto automatizacion

Automatización de procesos industriales

12

• 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".

Page 27: proyecto automatizacion

Automatización de procesos industriales

13

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.

Page 28: proyecto automatizacion

Automatización de procesos industriales

14

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

Page 29: proyecto automatizacion

Automatización de procesos industriales

15

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.

Page 30: proyecto automatizacion

Automatización de procesos industriales

16

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).

Page 31: proyecto automatizacion

Automatización de procesos industriales

17

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.

Page 32: proyecto automatizacion

Automatización de procesos industriales

18

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).

Page 33: proyecto automatizacion

Automatización de procesos industriales

19

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-a-

punto, 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.

Page 34: proyecto automatizacion

Automatización de procesos industriales

20

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.

Page 35: proyecto automatizacion

Automatización de procesos industriales

21

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.

Page 36: proyecto automatizacion

Automatización de procesos industriales

22

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

Page 37: proyecto automatizacion

Automatización de procesos industriales

23

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.

Page 38: proyecto automatizacion

Automatización de procesos industriales

24

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.

Page 39: proyecto automatizacion

Automatización de procesos industriales

25

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.

Page 40: proyecto automatizacion

Automatización de procesos industriales

26

- 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.

Page 41: proyecto automatizacion

Automatización de procesos industriales

27

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.

Page 42: proyecto automatizacion

Automatización de procesos industriales

28

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.

Page 43: proyecto automatizacion

Automatización de procesos industriales

29

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

Page 44: proyecto automatizacion

Automatización de procesos industriales

30

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.

Page 45: proyecto automatizacion

Automatización de procesos industriales

31

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

Page 46: proyecto automatizacion

Automatización de procesos industriales

32

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).

Page 47: proyecto automatizacion

Automatización de procesos industriales

33

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.

Page 48: proyecto automatizacion

Automatización de procesos industriales

34

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.

Page 49: proyecto automatizacion

Automatización de procesos industriales

35

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

Page 50: proyecto automatizacion

Automatización de procesos industriales

36

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.

Page 51: proyecto automatizacion

Automatización de procesos industriales

37

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.

Page 52: proyecto automatizacion

Automatización de procesos industriales

38

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).

Page 53: proyecto automatizacion

Automatización de procesos industriales

39

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.

Page 54: proyecto automatizacion

Automatización de procesos industriales

40

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.

Page 55: proyecto automatizacion

Automatización de procesos industriales

41

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).

Page 56: proyecto automatizacion

Automatización de procesos industriales

42

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.

Page 57: proyecto automatizacion

Automatización de procesos industriales

43

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.

Page 58: proyecto automatizacion

Automatización de procesos industriales

44

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.

Page 59: proyecto automatizacion

Automatización de procesos industriales

45

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.

Page 60: proyecto automatizacion

Automatización de procesos industriales

46

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

Page 61: proyecto automatizacion

Automatización de procesos industriales

47

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

Page 62: proyecto automatizacion

Automatización de procesos industriales

48

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.

Page 63: proyecto automatizacion

Automatización de procesos industriales

49

3.11 Otra tecnología de control distribuida LonWorks (Comparacióncon 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.

Page 64: proyecto automatizacion

Automatización de procesos industriales

50

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

Page 65: proyecto automatizacion

Automatización de procesos industriales

51

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

Page 66: proyecto automatizacion

Automatización de procesos industriales

52

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.

Page 67: proyecto automatizacion

Automatización de procesos industriales

53

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.

Page 68: proyecto automatizacion

Automatización de procesos industriales

54

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:

Page 69: proyecto automatizacion

Automatización de procesos industriales

55

- 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

Page 70: proyecto automatizacion

Automatización de procesos industriales

56

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.

Page 71: proyecto automatizacion

Automatización de procesos industriales

57

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.

Page 72: proyecto automatizacion

Automatización de procesos industriales

58

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.

Page 73: proyecto automatizacion

Automatización de procesos industriales

59

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.

Page 74: proyecto automatizacion

Automatización de procesos industriales

60

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”.

Page 75: proyecto automatizacion

Automatización de procesos industriales

61

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.

Page 76: proyecto automatizacion

Automatización de procesos industriales

62

- 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.

Page 77: proyecto automatizacion

Automatización de procesos industriales

63

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.

Page 78: proyecto automatizacion

Automatización de procesos industriales

64

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).

Page 79: proyecto automatizacion

Automatización de procesos industriales

65

- 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.

Page 80: proyecto automatizacion

Automatización de procesos industriales

66

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

Page 81: proyecto automatizacion

Automatización de procesos industriales

67

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.

Page 82: proyecto automatizacion

Automatización de procesos industriales

68

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

Page 83: proyecto automatizacion

Automatización de procesos industriales

69

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?

Page 84: proyecto automatizacion

Automatización de procesos industriales

70

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

Page 85: proyecto automatizacion

Automatización de procesos industriales

71

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…

Page 86: proyecto automatizacion

Automatización de procesos industriales

72

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.

Page 87: proyecto automatizacion

Automatización de procesos industriales

73

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.

Page 88: proyecto automatizacion

Automatización de procesos industriales

74

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.

Page 89: proyecto automatizacion

Automatización de procesos industriales

75

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 sub-

sistema 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

Page 90: proyecto automatizacion

Automatización de procesos industriales

76

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.

Page 91: proyecto automatizacion

Automatización de procesos industriales

77

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.

Page 92: proyecto automatizacion

Automatización de procesos industriales

78

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

Page 93: proyecto automatizacion

Automatización de procesos industriales

79

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.

Page 94: proyecto automatizacion

Automatización de procesos industriales

80

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.

Page 95: proyecto automatizacion

Automatización de procesos industriales

81

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.

Page 96: proyecto automatizacion

Automatización de procesos industriales

82

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.

Page 97: proyecto automatizacion

Automatización de procesos industriales

83

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.

Page 98: proyecto automatizacion

Automatización de procesos industriales

84

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.

Page 99: proyecto automatizacion

Automatización de procesos industriales

85

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.

Page 100: proyecto automatizacion

Automatización de procesos industriales

86

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.

Page 101: proyecto automatizacion

Automatización de procesos industriales

87

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.

Page 102: proyecto automatizacion

Automatización de procesos industriales

88

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

Page 103: proyecto automatizacion

Automatización de procesos industriales

89

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].

Page 104: proyecto automatizacion

Automatización de procesos industriales

90

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.

Page 105: proyecto automatizacion

Automatización de procesos industriales

91

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

Page 106: proyecto automatizacion

Automatización de procesos industriales

92

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.

Page 107: proyecto automatizacion

Automatización de procesos industriales

93

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.

Page 108: proyecto automatizacion

Automatización de procesos industriales

94

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].

Page 109: proyecto automatizacion

Automatización de procesos industriales

95

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].

Page 110: proyecto automatizacion

Automatización de procesos industriales

96

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.

Page 111: proyecto automatizacion

Automatización de procesos industriales

97

• 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].

Page 112: proyecto automatizacion

Automatización de procesos industriales

98

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++.

Page 113: proyecto automatizacion

Automatización de procesos industriales

99

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].

Page 114: proyecto automatizacion

Automatización de procesos industriales

100

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.

Page 115: proyecto automatizacion

Automatización de procesos industriales

101

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.

Page 116: proyecto automatizacion

Automatización de procesos industriales

102

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.

Page 117: proyecto automatizacion

Automatización de procesos industriales

103

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.

Page 118: proyecto automatizacion

Automatización de procesos industriales

104

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.

Page 119: proyecto automatizacion

Automatización de procesos industriales

105

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.

Page 120: proyecto automatizacion

Automatización de procesos industriales

106

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.

Page 121: proyecto automatizacion

Automatización de procesos industriales

107

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.

Page 122: proyecto automatizacion

Automatización de procesos industriales

108

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.

Page 123: proyecto automatizacion

Automatización de procesos industriales

109

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.

Page 124: proyecto automatizacion

Automatización de procesos industriales

110

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.

Page 125: proyecto automatizacion

Automatización de procesos industriales

111

4. Comparativa con otros lenguajes orientados a objeto4.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.

Page 126: proyecto automatizacion

Automatización de procesos industriales

112

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++.

Page 127: proyecto automatizacion

Automatización de procesos industriales

113

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.

Page 128: proyecto automatizacion

Automatización de procesos industriales

114

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).

Page 129: proyecto automatizacion

Automatización de procesos industriales

115

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++

Page 130: proyecto automatizacion

Automatización de procesos industriales

116

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.

Page 131: proyecto automatizacion

Automatización de procesos industriales

117

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

Page 132: proyecto automatizacion

Automatización de procesos industriales

118

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++.

Page 133: proyecto automatizacion

Automatización de procesos industriales

119

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++.

Page 134: proyecto automatizacion

Automatización de procesos industriales

120

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.

Page 135: proyecto automatizacion

Automatización de procesos industriales

121

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

Page 136: proyecto automatizacion

Automatización de procesos industriales

122

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 usuario-

contraseñ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.

Page 137: proyecto automatizacion

Automatización de procesos industriales

123

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

Page 138: proyecto automatizacion

Automatización de procesos industriales

124

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.

Page 139: proyecto automatizacion

Automatización de procesos industriales

125

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');

Page 140: proyecto automatizacion

Automatización de procesos industriales

126

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.

Page 141: proyecto automatizacion

Automatización de procesos industriales

127

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.

Page 142: proyecto automatizacion

Automatización de procesos industriales

128

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

Page 143: proyecto automatizacion

Automatización de procesos industriales

129

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>

Page 144: proyecto automatizacion

Automatización de procesos industriales

130

</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>

Page 145: proyecto automatizacion

Automatización de procesos industriales

131

<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.

Page 146: proyecto automatizacion

Automatización de procesos industriales

132

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.

Page 147: proyecto automatizacion

Automatización de procesos industriales

133

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

Page 148: proyecto automatizacion

Automatización de procesos industriales

134

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.

Page 149: proyecto automatizacion

Automatización de procesos industriales

135

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.

Page 150: proyecto automatizacion

Automatización de procesos industriales

136

Page 151: proyecto automatizacion

Automatización de procesos industriales

137

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-sin-

contenido/> 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>

Page 152: proyecto automatizacion

Automatización de procesos industriales

138

<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

Page 153: proyecto automatizacion

Automatización de procesos industriales

139

"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.

Page 154: proyecto automatizacion

Automatización de procesos industriales

140

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 ";".

Page 155: proyecto automatizacion

Automatización de procesos industriales

141

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, US-

ASCII (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 ISO-

8859-7. En general, y para uso con lenguajes europeos (incluyendo el

juego de caracteres especiales del castellano, usamos UTF-7 o ISO-

8859-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.

Page 156: proyecto automatizacion

Automatización de procesos industriales

142

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">

Page 157: proyecto automatizacion

Automatización de procesos industriales

143

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="..."/>

Page 158: proyecto automatizacion

Automatización de procesos industriales

144

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>

Page 159: proyecto automatizacion

Automatización de procesos industriales

145

<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>

Page 160: proyecto automatizacion

Automatización de procesos industriales

146

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.

Page 161: proyecto automatizacion

Automatización de procesos industriales

147

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)>

Page 162: proyecto automatizacion

Automatización de procesos industriales

148

<!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>

Page 163: proyecto automatizacion

Automatización de procesos industriales

149

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>

Page 164: proyecto automatizacion

Automatización de procesos industriales

150

<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>.

Page 165: proyecto automatizacion

Automatización de procesos industriales

151

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.

Page 166: proyecto automatizacion

Automatización de procesos industriales

152

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)*)>

Page 167: proyecto automatizacion

Automatización de procesos industriales

153

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

Page 168: proyecto automatizacion

Automatización de procesos industriales

154

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).

Page 169: proyecto automatizacion

Automatización de procesos industriales

155

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

Page 170: proyecto automatizacion

Automatización de procesos industriales

156

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.

Page 171: proyecto automatizacion

Automatización de procesos industriales

157

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 o Externas

Analizadas 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>

Page 172: proyecto automatizacion

Automatización de procesos industriales

158

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;

]>

Page 173: proyecto automatizacion

Automatización de procesos industriales

159

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"?>

Page 174: proyecto automatizacion

Automatización de procesos industriales

160

<!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>

Page 175: proyecto automatizacion

Automatización de procesos industriales

161

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:

Page 176: proyecto automatizacion

Automatización de procesos industriales

162

<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 sub-

elementos 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.

Page 177: proyecto automatizacion

Automatización de procesos industriales

163

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.

Page 178: proyecto automatizacion

Automatización de procesos industriales

164

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>

Page 179: proyecto automatizacion

Automatización de procesos industriales

165

<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>

Page 180: proyecto automatizacion

Automatización de procesos industriales

166

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>

Page 181: proyecto automatizacion

Automatización de procesos industriales

167

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());

Page 182: proyecto automatizacion

Automatización de procesos industriales

168

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.

Page 183: proyecto automatizacion

Automatización de procesos industriales

169

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.

Page 184: proyecto automatizacion

Automatización de procesos industriales

170

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.

Page 185: proyecto automatizacion

Automatización de procesos industriales

171

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.

Page 186: proyecto automatizacion

Automatización de procesos industriales

172

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.

Page 187: proyecto automatizacion

Automatización de procesos industriales

173

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

Page 188: proyecto automatizacion

Automatización de procesos industriales

174

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

Page 189: proyecto automatizacion

Automatización de procesos industriales

175

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.

Page 190: proyecto automatizacion

Automatización de procesos industriales

176

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.

Page 191: proyecto automatizacion

Automatización de procesos industriales

177

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

Page 192: proyecto automatizacion

Automatización de procesos industriales

178

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.

Page 193: proyecto automatizacion

Automatización de procesos industriales

179

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.

Page 194: proyecto automatizacion

Automatización de procesos industriales

180

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:

Page 195: proyecto automatizacion

Automatización de procesos industriales

181

• 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

Page 196: proyecto automatizacion

Automatización de procesos industriales

182

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.

Page 197: proyecto automatizacion

Automatización de procesos industriales

183

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

Page 198: proyecto automatizacion

Automatización de procesos industriales

184

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.

Page 199: proyecto automatizacion

Automatización de procesos industriales

185

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:

Page 200: proyecto automatizacion

Automatización de procesos industriales

186

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

Page 201: proyecto automatizacion

Automatización de procesos industriales

187

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.

Page 202: proyecto automatizacion

Automatización de procesos industriales

188

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.

Page 203: proyecto automatizacion

Automatización de procesos industriales

189

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.

Page 204: proyecto automatizacion

Automatización de procesos industriales

190

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.

Page 205: proyecto automatizacion

Automatización de procesos industriales

191

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

Page 206: proyecto automatizacion

Automatización de procesos industriales

192

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.

Page 207: proyecto automatizacion

Automatización de procesos industriales

193

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.

Page 208: proyecto automatizacion

Automatización de procesos industriales

194

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.

Page 209: proyecto automatizacion

Automatización de procesos industriales

195

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

Page 210: proyecto automatizacion

Automatización de procesos industriales

196

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

Page 211: proyecto automatizacion

Automatización de procesos industriales

197

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

Page 212: proyecto automatizacion

Automatización de procesos industriales

198

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

Page 213: proyecto automatizacion

Automatización de procesos industriales

199

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

Page 214: proyecto automatizacion

Automatización de procesos industriales

200

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

Page 215: proyecto automatizacion

Automatización de procesos industriales

201

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

Page 216: proyecto automatizacion

Automatización de procesos industriales

202

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

Page 217: proyecto automatizacion

Automatización de procesos industriales

203

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

Page 218: proyecto automatizacion

Automatización de procesos industriales

204

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

Page 219: proyecto automatizacion

Automatización de procesos industriales

205

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:

Page 220: proyecto automatizacion

Automatización de procesos industriales

206

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

Page 221: proyecto automatizacion

Automatización de procesos industriales

207

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

Page 222: proyecto automatizacion

Automatización de procesos industriales

208

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.

Page 223: proyecto automatizacion

Automatización de procesos industriales

209

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

Page 224: proyecto automatizacion

Automatización de procesos industriales

210

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.

Page 225: proyecto automatizacion

Automatización de procesos industriales

211

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.

Page 226: proyecto automatizacion

Automatización de procesos industriales

212

6. Secuencia de eventos:

Estado de la zona:

• Estado manual• Estado automático

Activar estado automático

Activar estadomanual

Page 227: proyecto automatizacion

Automatización de procesos industriales

213

Manipulación de dispositivos

• Manipulación manual de los dispositivos de la zona

Manipulación manual de dispositivos

Page 228: proyecto automatizacion

Automatización de procesos industriales

214

Gestión PLA:

• Eliminar Programa• Modificar Programa• Crear Programa•

o Definición del programao Definición de sensores y dispositivoso Definición de reglas

Eliminar programa

Modificar Programa

Nuevo Programa

DefiniciónSensores/dispositivos

Definición de reglas

Page 229: proyecto automatizacion

Automatización de procesos industriales

215

Configuración

• Configuración dispositivos• Configuración sensores

Añadir dispositivoEliminar dispositivoModificar dispositivo

Añadir sensorEliminar sensorModificar sensor

Page 230: proyecto automatizacion

Automatización de procesos industriales

216

Visualización de logs

• Log de dispositivo

Seleccióndispositivo

Page 231: proyecto automatizacion

Automatización de procesos industriales

217

7. Diagramas de Clase

7.1 Diagrama de paquetes.

Page 232: proyecto automatizacion

Automatización de procesos industriales

218

7.2 Diagrama de clases del paquete: proyecto

Page 233: proyecto automatizacion

Automatización de procesos industriales

219

7.3 Diagrama de clases del paquete: Dispositivos

Page 234: proyecto automatizacion

Automatización de procesos industriales

220

7.4 Diagrama de clases del paquete: Dispositivos.eventos

Page 235: proyecto automatizacion

Automatización de procesos industriales

221

7.5 Diagrama de clases del paquete: Sensores

Page 236: proyecto automatizacion

Automatización de procesos industriales

222

7.6 Diagrama de clases del paquete: Sensores.Eventos

Page 237: proyecto automatizacion

Automatización de procesos industriales

223

7.7 Diagrama de clases del paquete: Programación

Page 238: proyecto automatizacion

Automatización de procesos industriales

224

7.8 Diagrama de clases del paquete: InterfazGráfico

Page 239: proyecto automatizacion

Automatización de procesos industriales

225

7.9 Diagrama clases del paquete: InterfazGráfico.CreaciónProgramas

Page 240: proyecto automatizacion

Automatización de procesos industriales

226

7.10 Diagrama de clases del paquete: InterfazGráfico.Configuración

Page 241: proyecto automatizacion

Automatización de procesos industriales

227

7.11 Diagrama de clases del paquete: InterfazGráfico.Tabla

Page 242: proyecto automatizacion

Automatización de procesos industriales

228

7.12 Diagrama de clases del paquete: XML

Page 243: proyecto automatizacion

Automatización de procesos industriales

229

7.13 Diagrama de clases del paquete: Logs

Page 244: proyecto automatizacion

Automatización de procesos industriales

230

7.14 Diagrama de clases del paquete: Util

Page 245: proyecto automatizacion

Automatización de procesos industriales

231

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

Page 246: proyecto automatizacion

Automatización de procesos industriales

232

8.1 Inicio del sistema: Inicio de los dispositivos

Page 247: proyecto automatizacion

Automatización de procesos industriales

233

8.2 Inicio sistema: Inicio de los sensores

Page 248: proyecto automatizacion

Automatización de procesos industriales

234

8.3 Inicio del sistema: Inicio de los programas

Page 249: proyecto automatizacion

Automatización de procesos industriales

235

8.4 Activar automatización: Activar estado automático.

Page 250: proyecto automatizacion

Automatización de procesos industriales

236

8.5 Activar automatización: Activar programa.

Page 251: proyecto automatizacion

Automatización de procesos industriales

237

8.6 Activar automatización: Cambio en el estado de un sensor.

Page 252: proyecto automatizacion

Automatización de procesos industriales

238

8.7 Activar control manual: Activar estado manual.

Page 253: proyecto automatizacion

Automatización de procesos industriales

239

8.8 Activar control manual: Manipular dispositivo.

Page 254: proyecto automatizacion

Automatización de procesos industriales

240

8.9 Configurar dispositivos: Mostrar configuración dispositivos.

Page 255: proyecto automatizacion

Automatización de procesos industriales

241

8.10 Configurar dispositivos: Agregar un dispositivo.

Page 256: proyecto automatizacion

Automatización de procesos industriales

242

8.11 Configurar dispositivos: Modificar un dispositivo.

Page 257: proyecto automatizacion

Automatización de procesos industriales

243

8.12 Configurar dispositivos: Eliminar un dispositivo.

Page 258: proyecto automatizacion

Automatización de procesos industriales

244

8.13 Configurar sensores: Mostrar configuración sensor

Page 259: proyecto automatizacion

Automatización de procesos industriales

245

8.14 Configurar sensores: Agregar un sensor

Page 260: proyecto automatizacion

Automatización de procesos industriales

246

8.15 Configurar sensores: Modificar un sensor

Page 261: proyecto automatizacion

Automatización de procesos industriales

247

8.16 Configurar sensores: Eliminar un sensor

Page 262: proyecto automatizacion

Automatización de procesos industriales

248

8.17 Configurar programas: Mostrar tabla de programas

Page 263: proyecto automatizacion

Automatización de procesos industriales

249

8.18 Configuración de programas: Crear un programa

Page 264: proyecto automatizacion

Automatización de procesos industriales

250

8.19 Configuración de programas: Modificar un programa

Page 265: proyecto automatizacion

Automatización de procesos industriales

251

8.20 Configuración de programas: Eliminar un programa

Page 266: proyecto automatizacion

Automatización de procesos industriales

252

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.

Page 267: proyecto automatizacion

Automatización de procesos industriales

253

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.

Page 268: proyecto automatizacion

Automatización de procesos industriales

254

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.

Page 269: proyecto automatizacion

Automatización de procesos industriales

255

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)

Page 270: proyecto automatizacion

Automatización de procesos industriales

256

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)

Page 271: proyecto automatizacion

Automatización de procesos industriales

257

PRESUPUESTO

Fases del desarrollo

1. Toma de especificaciones2. Análisis y diseño3. Prototipado4. Construcción y desarrollo5. Validación y pruebas6. Documentación7. Instalación y puesta en marcha8. Garantía a tres meses

Dimensionamiento del equipo

Personas Perfiles1 Director de proyecto1 Analista programador2 Programadores

Page 272: proyecto automatizacion

Automatización de procesos industriales

258

Plan de proyecto

Sem Sem Sem Sem

Toma especificaciones

Sem

Prototipado

Sem Sem Sem Sem Sem

Análisis ydiseño

Instalación y puestaen marcha

Codificación

Documetanción

SemSem

Validación y pruebas

Page 273: proyecto automatizacion

Automatización de procesos industriales

259

Estudio económico

Contingencias 3%Beneficio antes de

impuestos 20%

Equipo humanoPer. €/h coste €/h Precio Total h Coste Precio Contingenci

asDirector de proyecto 1 45,00 € 90,00 480 21.600,00 € 43.200,00 44.496,00 Analista Programador 1 40,00 € 80,00 480 19.200,00 € 38.400,00 39.552,00 Programador 2 30,00 € 70,00 800 24.000,00 € 56.000,00 67.200,00 TOTALES 64.800,00 € 137.600,00 151.248,00

OccupancyPer. €/mes Meses Coste Precio Contingencias

Persona 4 1.000,00 € 3 12.000,00 € 14.400,00 14.832,00 TOTAL 12.000,00 € 14.400,00 14.832,00

TransportePer. €/día Días Coste Precio Contingencia

Director del proyecto 1 9,00 € 60 540,00 € 648,00 667,44 Analista Programador 1 9,00 € 60 540,00 € 648,00 667,44 Programador 2 9,00 € 100 900,00 € 1.080,00 1.112,40 TOTAL 1.980,00 € 2.376,00 2.447,28

Coste periodo garantíaPer. €/mes Meses Coste Precio Contingencias

Programador 1 4.800,00 € 3 14.400,00 € 17.280,00 17.798,40 TOTAL 14.400,00 € 17.280,00 17.798,40

ResumenEquipo humano 151.248,00 Occupancy 14.832,00 Transportes 2.447,28 Garantía 17.798,40

TOTAL186.325,68

+ IVA

Page 274: proyecto automatizacion

Automatización de procesos industriales

260

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

Page 275: proyecto automatizacion

Automatización de procesos industriales

261

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.

Page 276: proyecto automatizacion

Automatización de procesos industriales

262

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

Page 277: proyecto automatizacion

Automatización de procesos industriales

263

[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/)

Page 278: proyecto automatizacion

Automatización de procesos industriales

264

APENDICES

Page 279: proyecto automatizacion

Automatización de procesos industriales

A-1

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

Page 280: proyecto automatizacion

Automatización de procesos industriales

A-2

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.

Page 281: proyecto automatizacion

Automatización de procesos industriales

A-3

2. Estado manual de la instalación

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.

1

2

3

4

5

6

Page 282: proyecto automatizacion

Automatización de procesos industriales

A-4

3. Activar estado automático de la instalación

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.

1

4

2

5

3

6

Page 283: proyecto automatizacion

Automatización de procesos industriales

A-5

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.

Page 284: proyecto automatizacion

Automatización de procesos industriales

A-6

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.

Page 285: proyecto automatizacion

Automatización de procesos industriales

A-7

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.

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

2

4

3

1

5

Page 286: proyecto automatizacion

Automatización de procesos industriales

A-8

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.

Page 287: proyecto automatizacion

Automatización de procesos industriales

A-9

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.

Page 288: proyecto automatizacion

Automatización de procesos industriales

A-10

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.

Page 289: proyecto automatizacion

Automatización de procesos industriales

A-11

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.

Page 290: proyecto automatizacion

Automatización de procesos industriales

A-12

3. Creación de líneas del programa.

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%.

41

23

6

Page 291: proyecto automatizacion

Automatización de procesos industriales

A-13

2.1 Configuración de las líneas de programa.

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.

5

3

2

1

4

Page 292: proyecto automatizacion

Automatización de procesos industriales

A-14

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.

Page 293: proyecto automatizacion

Automatización de procesos industriales

A-15

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.

Page 294: proyecto automatizacion

Automatización de procesos industriales

A-16

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.

Page 295: proyecto automatizacion

Automatización de procesos industriales

A-17

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.

Page 296: proyecto automatizacion

Automatización de procesos industriales

A-18

Si queremos pasar al estado automático hemos de pulsar el botón de automático

de la pantalla principal.

Page 297: proyecto automatizacion

Automatización de procesos industriales

A-19

10. Manipulación de dispositivos.

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.

1

5

3

4

2

6

Page 298: proyecto automatizacion

Automatización de procesos industriales

A-20

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.

Page 299: proyecto automatizacion

Automatización de procesos industriales

A-21

11. Manipulación de sensores

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

1

4

2

5

6

3

7

Page 300: proyecto automatizacion

Automatización de procesos industriales

A-22

3. En la sección gráfica (5) mostrando gráficamente el estado completo de la zona

de una forma visual.

Page 301: proyecto automatizacion

Automatización de procesos industriales

A-23

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.

Page 302: proyecto automatizacion

Automatización de procesos industriales

A-24

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

Page 303: proyecto automatizacion

Automatización de procesos industriales

A-25

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.

Page 304: proyecto automatizacion

Automatización de procesos industriales

A-26

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.

Page 305: proyecto automatizacion

Automatización de procesos industriales

A-27

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.

Page 306: proyecto automatizacion

Automatización de procesos industriales

A-28

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.

Page 307: proyecto automatizacion

Automatización de procesos industriales

A-29

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.