Diseno e implementaci˜ on de un´ sistema de llamada ... · El presente proyecto trata sobre la...

79
Dise ˜ no e implementaci ´ on de un sistema de llamada combinada para una maqueta a escala de tres ascensores usando dos PLC CJ1M de OMRON Proyecto Fin de Grado presentado para optar al T´ ıtulo de Ingeniero en Electr ´ onica Industrial por ´ Alvaro Lacasa Majo Bajo la supervisi ´ on de: Dr. Emilio Jos´ e S´ anchez Tapia San Sebasti ´ an - Donostia Diciembre, 2014

Transcript of Diseno e implementaci˜ on de un´ sistema de llamada ... · El presente proyecto trata sobre la...

Diseno e implementacion de unsistema de llamada combinada para

una maqueta a escala de tresascensores usando dos PLC CJ1M de

OMRON

Proyecto Fin de Grado presentado para optar al Tıtulo deIngeniero en Electronica Industrial por

Alvaro Lacasa Majo

Bajo la supervision de:

Dr. Emilio Jose Sanchez Tapia

San Sebastian - Donostia Diciembre, 2014

II

Resumen

El presente proyecto trata sobre la programacion de una maqueta a escala de tresascensores existente en la Escuela de Ingenieros de San Sebastian (TECNUN) para laimplementacion de una llamada combinada. Dicha maqueta consta de dos PLCs deforma que un PLC controla dos cabinas y el otro controla a la tercera. Por ello, una parteimportante del presente proyecto ha sido establecer la comunicacion entre dichos PLCs.Dicha comunicacion se ha elegido realizando una comparativa entre las tecnologıasEthernet y Ethernet/IP para ver cual se adapta mejor a este caso. En cuanto a laprogramacion, los PLCs CJ1M empleados de la marca OMRON estan preparados parautilizar el lenguaje Ladder, pero permite la programacion en Texto Estructurado. Con ellose busca averiguar si es posible una programacion optimizada en Texto Estructuradode las tres cabinas de forma combinada ante llamadas exteriores. Para completar elsistema, la maniobra se monitoriza mediante un SCADA en el que graficamente unoperario puede supervisar todo el proceso e interactuar con el.

III

IV 0. Resumen

Indice general

Resumen III

1. Introduccion 1

1.1. Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2. Estado del arte 5

2.1. Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2. Tipos de actuadores encontrados en los ascensores . . . . . . . . . . . . . . 7

2.2.1. Elevadores de traccion electrica . . . . . . . . . . . . . . . . . . . . . 7

2.2.2. Elevadores hidraulicos . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3. Logica de control de los ascensores . . . . . . . . . . . . . . . . . . . . . . . 10

2.3.1. Algoritmo convencional (Principio de control colectivo) . . . . . . . . 10

2.3.2. Logica difusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3.3. Redes neuronales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3. Descripcion del prototipo 15

3.1. PLC CJ1M (automatas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2. Otros elementos que componen el prototipo . . . . . . . . . . . . . . . . . . 18

4. Interconexion de PLCs: Ethernet vs Ethernet/IP 23

5. Programacion 31

5.1. Arquitectura del software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

V

VI INDICE GENERAL

5.2. Modulos del software de los PLCs . . . . . . . . . . . . . . . . . . . . . . . . 36

5.2.1. Posicion de la cabina . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.2.2. Motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5.2.3. Apertura y cierre de puertas . . . . . . . . . . . . . . . . . . . . . . . 40

5.2.4. Respuesta ante llamadas . . . . . . . . . . . . . . . . . . . . . . . . . 42

5.2.5. Logica empleada en la asignacion de las llamadas exteriores a lacabina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.2.6. Comunicaciones entre los PLCs . . . . . . . . . . . . . . . . . . . . . 46

5.3. Optimizacion del espacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6. SCADA 53

7. Testeo y uso de automata de simulacion 59

8. Conclusiones y futuros trabajos 65

8.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

8.2. Futuros trabajos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Indice de figuras

1.1. Prototipo empleado en el Laboratorio de Robotica de la Escuela . . . . . . 2

1.2. Estructura que siguen los programas empleados de la marca OMRON . . 4

2.1. Primer ascensor accionado por una maquina. Derby, Inglaterra . . . . . . 5

2.2. Distribucion de elevadores en rascacielos . . . . . . . . . . . . . . . . . . . 6

2.3. Esquema de un elevador electromecanico . . . . . . . . . . . . . . . . . . . 8

2.4. Elevador electromecanico sin cuarto de maquinas . . . . . . . . . . . . . . 9

2.5. Esquema de un elevador hidraulico . . . . . . . . . . . . . . . . . . . . . . . 10

2.6. Partes de una celula neuronal . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.7. Neurona artificial inspirada en una biologica . . . . . . . . . . . . . . . . . 13

3.1. Plataforma sobre la que se asienta el ascensor . . . . . . . . . . . . . . . . 15

3.2. Modulo CJ1M-CPU11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3. Rango de salida del modulo Mad42 (valores en hexadecimal) . . . . . . . . 17

3.4. Prototipos de ascensores de 4 plantas . . . . . . . . . . . . . . . . . . . . . . 18

3.5. Funcionamiento de interruptores reed ante un campo magnetico . . . . . 20

3.6. Diagrama de las conexiones del prototipo . . . . . . . . . . . . . . . . . . . 21

4.1. Modificacion de la direccion IP del PLC . . . . . . . . . . . . . . . . . . . . . 24

4.2. Modificacion del nodo ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.3. Montaje de una red Ethernet/IP basica . . . . . . . . . . . . . . . . . . . . . 26

4.4. Red de dos PLCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.5. Funcionamiento de los tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

VII

VIII INDICE DE FIGURAS

4.6. Colocacion de las sondas del osciloscopio en los PLCs . . . . . . . . . . . . 28

4.7. Visualizacion en el osciloscopio de la entrada (senal 1) de un PLC y lasalida (senal 2) del otro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.1. Ciclo scan en un PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.2. Idea general de la programacion GEMMA . . . . . . . . . . . . . . . . . . . . 33

5.3. Grafcet del modo mantenimiento . . . . . . . . . . . . . . . . . . . . . . . . 35

5.4. Grafcet del modo bomberos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.5. Asignacion de la posicion en funcion de los sensores activados . . . . . . . 37

5.6. Grafcet que sigue el movimiento del motor . . . . . . . . . . . . . . . . . . . 39

5.7. Valores que toma la variable de la velocidad en la subida . . . . . . . . . . 40

5.8. Grafcet que sigue el movimiento de la puerta de cada cabina . . . . . . . . 41

5.9. Grafcet que da las ordenes al motor en funcion de los vectores ascensor yascensorext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.10. Posibles posiciones de las cabinas A y B en funcion de la planta de lallamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.11. Posibles posiciones de las cabinas A, B y C en funcion de la planta de lallamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.12. Comunicacion de datos que se modifican en ambos PLCs . . . . . . . . . . 48

5.13. Ejemplo de diferencia de espacio entre Ladder y Texto Estructurado . . . . 49

5.14. Ejemplo de diferencia de espacio entre contadores Ladder y Texto Estruc-turado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.1. SCADA del movimiento de las tres cabinas automaticamente . . . . . . . . 54

6.2. Cabinas B y C en modo mantenimiento . . . . . . . . . . . . . . . . . . . . . 55

6.3. SCADA del estado de las alarmas . . . . . . . . . . . . . . . . . . . . . . . . 56

6.4. SCADA de las variables controlables de la maniobra . . . . . . . . . . . . . 57

6.5. SCADA de los sensores que se encuentran funcionando en ese momento . 57

7.1. Creacion de una pantalla de simulacion . . . . . . . . . . . . . . . . . . . . 60

7.2. Simulacion inicial de solo dos cabinas . . . . . . . . . . . . . . . . . . . . . 61

7.3. Simulacion completa de la maniobra de las tres cabinas . . . . . . . . . . . 62

Indice de tablas

5.1. Organizacion de las variables del programa . . . . . . . . . . . . . . . . . . 34

5.2. Localizacion y lenguaje de la posicion de las cabinas . . . . . . . . . . . . . 37

5.3. Relaciones entre los posibles valores dados al motor, los voltajes queproducen y las velocidades que generan . . . . . . . . . . . . . . . . . . . . 38

5.4. Localizacion y lenguaje del control del motor . . . . . . . . . . . . . . . . . . 40

5.5. Localizacion y lenguaje de la apertura y cierre de las puertas . . . . . . . . 42

5.6. Localizacion y lenguaje de la logica empleada para atender las llamadas . 44

5.7. Localizacion y lenguaje de la posicion de las cabinas . . . . . . . . . . . . . 46

5.8. Localizacion y lenguaje de la programacion encargada de la comunicacion 48

5.9. Ahorro de pasos eliminando la condicion =TRUE . . . . . . . . . . . . . . . 50

5.10. Ahorro de pasos eliminando la condicion =FALSE . . . . . . . . . . . . . . . 50

IX

X INDICE DE TABLAS

Capıtulo 1

Introduccion

1.1. Motivacion

Desde la revolucion industrial, la produccion en masa ha ido evolucionando paraser mas competente en precios y cantidad de produccion. Fueron apareciendo diferentestecnologıas que permiten automatizar los procesos y ser mas eficientes en la produccion.Se busco un sistema en el que aplicar un automatizado industrial. Buscando porTECNUN, se llego hasta el prototipo de un ascensor con dos cabinas controladas porun automata programable de la marca OMRON.

En concreto, este tipo de PLC (Programmable Logic Controller) es programadonormalmente mediante lenguaje Ladder que se asemeja a un circuito electrico, perotambien es posible emplear Texto Estructurado que se puede equiparar a “C” [1]. A lolargo del Grado, se le ha dado mucha importancia al lenguaje en “C” y sus derivados,por lo que Texto Estructurado es un lenguaje en el que el autor se siente mas comodo ala hora de realizar programaciones complejas.

Se ha querido llevar a la practica toda la informacion disponible sobre los diferenteslenguajes de programacion de los PLCs. Se sabe que Ladder es mas eficiente que TextoEstructurado, pero se va a intentar utilizar este segundo para conocer de primera manolas limitaciones en la programacion de estos controladores.

La mejor forma de conseguir tal informacion es realizando pruebas, y que mejorforma de probarlo que realizando la automatizacion del medio de transporte queprobablemente sea el mas utilizado: el ascensor. A lo largo de la memoria se puedenver los problemas encontrados y las soluciones propuestas a la hora de desarrollar elprograma de la maniobra de las cabinas. Este se ha elaborado en su gran mayorıa enTexto Estructurado, pero no todo, debido a que estos automatas solo permiten el uso deciertos recursos unicamente en Ladder.

Con el fin de hacer un estudio mas profundo, se utilizo otra maqueta de unascensor de una cabina para ası establecer una comunicacion para la realizacion deuna maniobra combinada entre las tres cabinas. Entre todas las tecnologıas existentespara realizar la conexion entre ambos PLCs, se eligieron Ethernet y Ethernet/IP, de lasque posteriormente se realizo una comparativa con el fin de determinar cual de ellas

1

2 Chapter 1. Introduccion

garantizaba la mejor conexion.

Con objeto de desarrollar un automatizado completo, se llevo a cabo un SCADA(Supervisory Control And Data Adquisition) a traves del cual, un operario puedesupervisar e interactuar con la maniobra que se esta ejecutando. De esta forma, seconsiguen maximizar todas las funcionalidades que ofrecen los PLCs de OMRON.

1.2. Objetivos

El objetivo general de este Proyecto es realizar el control de la posicion de treselevadores mediante el empleo de dos automatas de OMRON y la supervision de todoel proceso mediante un SCADA. Buscando lograr el correcto funcionamiento de loselevadores en llamada combinada se han empleado los programas: CX-Programmer(gestor de la programacion de los automatas), CX-Designer (simulador del programa)y CX-Supervisor (interfaz hombre-maquina). Para ello, se han puesto en practica losconocimientos obtenidos sobre la automatizacion de procesos industriales.

Figura 1.1: Prototipo empleado en el Laboratorio de Robotica de la Escuela

Se han empleado prototipos de tres ascensores ya existentes en la Escuela (Figu-ra 1.1), alrededor de los cuales se desarrolla todo el proyecto con los siguientes objetivosparticulares:

• Determinar que tecnologıa de comunicacion se adapta mejor. Dentro de toda la

Section 1.2. Objetivos 3

gama de modulos de comunicacion de OMRON (EtherCAT, EtherNet, EtherNet/IP,CompoNet, DeviceNet, CompoBus/s), se han elegido las tecnologıas de EtherNet yEtherNet/IP para realizar la comparativa al ser las tecnologıas mas comunmenteutilizadas en la Escuela.

• Desarrollar el codigo de control, buscando la forma mas eficiente de programarloentre las diferentes opciones que permite CX-Programmer. Las opciones que permiteOMRON en sus automatas son: Ladder (diagrama de reles), Texto Estructurado (ST)o por SFC (Secuential Function Chart)

• Crear un simulador, en CX-Designer, para el programa de control mientras seencuentra en las fases de desarrollo, con el fin de evitar averıas en el prototipo.

• Anadirle la funcionalidad completa con su correspondiente monitorizacion, es decir,realizar el software hombre-maquina (HMI, Human Machine Interface). Realizardicho SCADA con el programa CX-Supervisor.

• Testeo: Comprobar que todas las partes funcionan como se habıa propuesto.

El documento se estructura en varios capıtulos. En el primer de ellos se puedeencontrar el estado del arte en el que se habla de la evolucion de los sistemas deelevacion, ası como las diferentes tecnologıas que se pueden aplicar a la programacionde los ascensores (2). Despues se describe el prototipo que se ha empleado parala realizacion del proyecto con todas sus caracterısticas tecnicas (3), continuandocon una comparativa de dos tecnologıas distintas de comunicacion y explicando elfuncionamiento de la seleccionada para la comunicacion de los PLCs (4). En lossiguientes capıtulos se puede encontrar como se ha llevado a cabo la creacion del sistemade elevacion, separado en funcion principalmente del programa que se ha empleado parala realizacion del mismo. Por ello, todo lo referente a CX-Programmer empleado en laprogramacion de los PLCs se encuentra en el capıtulo 5, el SCADA realizado con CX-Supervisor en el 6 y las pruebas realizadas para comprobar el correcto funcionamientoantes de verlo funcionar fısicamente elaborado en el CX-Designer se ve en el capıtulo 7.

Para comprender mejor el documento, hay que conocer la estructura (ver Figura 1.2)en la que se ejecutan los programas empleados a lo largo del proyecto. La programacionde los PLCs se ha llevado a cabo mediante el programa CX-Programmer. Una vezrealizada, se puede optar por transferir el programa a un PLC real o simular elfuncionamiento de un PLC en el ordenador. Cuando se transfiere el programa a unPLC real, este comenzara a ejecutarse1 pudiendo monitorizar la maniobra que realizadesde un programa realizado en CX-Supervisor. En el caso de que se desee comprobarel funcionamiento del programa sin introducirlo en el PLC real, CX-Programmer arrancaCX-Simulator que crea un PLC virtual donde ejecutar dicho programa. En la simulacionque realiza solo se ven cambiar los valores de los registros dentro de CX-Programmer, porlo que para ver la simulacion mas graficamente se crea una interfaz grafica disenada enCX-Designer. En esta ventana interactiva se crean los actuadores que compondran elPLC real con el fin de poder simular las alteraciones que sufrirıan en la realidad. CX-Designer simplemente lee o modifica los valores que tiene el PLC virtual, por lo que paraobtenerlos se conecta al CX-Simulator. En cuanto a la interaccion hombre-maquina, se

1El PLC ha de estar en modo monitorizacion o en modo run para ejecutarse.

4 Chapter 1. Introduccion

emplea el CX-Supervisor para crear el SCADA de la maniobra. Este puede monitorizar elPLC real o el PLC virtual. Para este ultimo, necesita que este el PLC virtual funcionando,es decir, el CX-Simulator funcionando.

CX-Designer

CX-Programmer

CX-Simulator PLC Real

CX-Supervisor

Figura 1.2: Estructura que siguen los programas empleados de la marca OMRON

Para concluir este proyecto, en el ultimo capıtulo se han descrito las conclusionesfinales del proyecto y los posibles trabajos futuros que se pueden realizar.

Capıtulo 2

Estado del arte

2.1. Historia

A lo largo de la historia, se han ido construyendo edificaciones cada vez de mayoraltura dificultando, ası, su acceso. Para poder elevar los materiales, objetos o personashasta dichos lugares con la menor energıa fısica posible, el hombre se ha visto en lanecesidad de crear elementos de elevacion. Ası es como aparecen las primeras formasde elevacion [2]. En el comienzo eran muy rudimentarias, como es el caso de laspalancas, pero posteriormente fueron perfeccionandose surgiendo las gruas elevadoraspropulsadas por personas o por accion del agua. Mas adelante, se fue introduciendoel motor con la invencion de la maquina de vapor rotatoria y los motores electricosrotatorios (Figura 2.1). Paralelamente a las mejoras del motor, se inicio la teorıa de laseguridad del pasajero en los ascensores, siendo Elisha G. Otis el pionero.

Figura 2.1: Primer ascensor accionado por una maquina. Derby, Inglaterra

Actualmente, gran parte de la poblacion vive o trabaja en grandes estructuras

5

6 Chapter 2. Estado del arte

debido en parte al fervor por construir el edificio mas alto del mundo, o meramentepor cuestiones de espacio debido al crecimiento de la poblacion. Es en estas grandesedificaciones donde se pueden encontrar sistemas elevadores muy seguros y con unagran eficacia a la hora de mover un gran numero de personas.

A la hora de implantar un sistema de elevacion vertical en un edificio, son varios losaspectos a tener en cuenta para elegir la combinacion que mejor se adapte. Algunos delos mas importantes serıan: el numero de pisos, el numero de personas que lo emplearıay el tipo de edificio que sea (oficinas o residencial. . . ). Por ejemplo, si se va a implantarun sistema de elevacion en un bloque residencial de pocas alturas, se colocara una solacabina que llegara a todas las plantas y tendra una logica de control convencional (2.3.1).Por el contrario, en un edificio de oficinas con muchas alturas el abanico de posibilidadesen la distribucion de los ascensores se amplıa. A continuacion se describen algunas deellas.

En el caso de edificios de menos de 50 alturas, se pueden emplear ascensores queparen en todas las plantas. Al contrario, en edificios de mas de 50 alturas, se colocanvarios vestıbulos en los que hay ascensores que van directos para que se pueda llegarcon mas rapidez a la ultima planta. Como se aprecia en la Figura 2.2, se colocan variosascensores a los que se les asigna un rango de alturas diferentes a los que llegar. Porejemplo, si una persona desea ir al piso 132, primero tendra que coger el ascensor que lelleve directo al segundo vestıbulo en la planta 100 para allı coger otro que le transportea la 132.

Figura 2.2: Distribucion de elevadores en rascacielos

En este tipo de ascensores se suele encontrar en cada planta un dispositivo queorganiza automaticamente el trafico de los ascensores. La persona selecciona el piso alque se quiere dirigir y una pantalla le indica que ascensor debe coger.

Section 2.2. Tipos de actuadores encontrados en los ascensores 7

Los elevadores Twin (gemelos) son sistemas de elevacion en el que trabajan 2cabinas simultaneamente por el mismo hueco. El principal objetivo de esta idea, quea primera vista puede parecer una locura, es la de ahorrar espacio eliminando uno delos huecos. Se pueden encontrar dos casos en el que se aplica esto:

• Individuales: Las dos cabinas circulan por el mismo hueco, una independiente dela otra, con un sistema de control inteligente que evita las colisiones entre ambascabinas consiguiendo rendimientos similares en la mitad de espacio.

• Paralelos: Son dos cabinas acopladas una encima de la otra, por lo que se muevenal unısono, siendo su funcionamiento bastante sencillo: dependiendo de si eldestino final de un usuario es una planta par o impar, se introducirıa en la cabinainferior o en la superior. La pequena desventaja es que si la persona se encuentraen una planta impar y necesita ir a una par, se ve obligado a subir o bajar un pisopara poder alcanzar su destino.

Ambos casos estan pensados para trayectos de mas de 50 metros de altura y conun volumen significativo de gente y viajes entre plantas, como en edificios corporativos.Por lo general, este tipo de ascensores no se emplean para sustituir 2 huecos en 1, sinomas bien como mınimo 4 en 2. Al disponer de varias opciones, se emplea un sistema dellamada en el que introduces la planta de destino y por medio de una pantalla te indicaen que ascensor debes montarte.

Dependiendo de la estructura del edificio y del numero de pisos, se puede disponer dediferentes actuadores que permiten el movimiento de la cabina o cabinas por el hueco.

2.2. Tipos de actuadores encontrados en los ascensores

2.2.1. Elevadores de traccion electrica

El movimiento de la cabina se genera gracias a un motor electrico del que setransforma su movimiento rotacional en movimiento vertical. Generalmente disponende un contrapeso cuyo peso es el mismo que el de la cabina vacıa para ası controlarmejor el movimiento de esta. Evita la necesidad de un motor muy potente para podersubir el ascensor cargado y que el descenso sea mas facil de controlar.

Se utilizan diferentes tipos de motores electricos segun la necesidad o las normativasdel paıs donde se instalan. Se pueden encontrar:

• Una velocidad: En muchos paıses se ha prohibido su uso en nuevas construc-ciones debido a su falta de precision en las paradas ya que la llegada a los pisosseleccionados se efectua con demasiada rapidez.

• Dos velocidades: Son motores trifasicos de polos conmutables que proporcionana la cabina dos velocidades de movimiento, uno rapido y otro lento. Cuando se

8 Chapter 2. Estado del arte

Figura 2.3: Esquema de un elevador electromecanico

traslada entre plantas se mueve a maxima velocidad con el fin de minimizar eltiempo de estancia en el ascensor. En cambio, al aproximarse a una planta conllamada, ralentiza su velocidad para aumentar la precision de la parada.

• Variacion de frecuencia: Mediante un variador de frecuencia se logra cambiar lavelocidad del motor y de esta forma los viajes que se realizan son mas confortables.En la salida y en la llegada a una planta, acelera y decelera respectivamentehaciendo que sea practicamente imperceptible el movimiento de la cabina lograndouna gran precision en la parada.

• Generadores: La eficiencia energetica esta a la orden del dıa, y esto hace que losmotores, ademas de subir y bajar la cabina de un modo agradable para el usuario,ahora tambien generen energıa. En este caso, el contrapeso pesa un poco mas quela cabina. Ası se consigue que, cuando esta la cabina subiendo y vacıa, genereelectricidad; si se montan uno o dos usuarios el peso es practicamente el mismopor lo que el esfuerzo que tiene que realizar el motor es mınimo, mientras quecuando esta la cabina llena y descendiendo, vuelve a generar energıa. Este tipo demotores estan mas orientados a bloques de viviendas, pero variando el lastre delcontrapeso puede orientarse para otro tipo de edificios.

A la hora de instalar un ascensor, el edificio en el que se va a colocar ha de tenerun hueco por donde moverse, pero ademas, debe disponer de un cuarto de maquinascolocado normalmente en la parte superior del hueco. La maquinaria necesaria paramover el ascensor (motor y controles) ocupa mucho espacio y pesa mucho por lo que,

Section 2.2. Tipos de actuadores encontrados en los ascensores 9

ademas, se ha de contemplar la carga que debe soportar la estructura. Esta necesidadestructural de disponer de un espacio extra es una clara desventaja ya que ese espaciopodrıa ser utilizado en otros fines o simplemente ser un ahorro en materiales para laconstructora del edificio.

Actualmente existe la posibilidad de instalar un ascensor sin la necesidad de uncuarto de maquinas gracias a la creacion de motores mas pequenos y eficientes, ytambien, al avance de la tecnologıa electronica la cual mejora el control de la cabinaen menor espacio. Este tipo de ascensores son ideales para construcciones antiguasdonde no se dispone de un hueco pensado para alojar un ascensor y mucho menos desu cuarto de maquinas.

Figura 2.4: Elevador electromecanico sin cuarto de maquinas

2.2.2. Elevadores hidraulicos

El movimiento de la cabina se realiza gracias a un piston accionado por una bombaque inyecta aceite a presion por unas valvulas hasta el piston (ver Figura 2.5). Solo seconsume energıa al elevar el ascensor, porque al descender simplemente tiene que abrirlas valvulas controladamente para liberar presion en el piston. Por lo general, tiene variasdesventajas como es el consumo electrico del motor, ya que es cuatro veces mayor que enlos de traccion electrica (seccion 2.2.1). Pero solo consumen en la subida y esto hace que,en conjunto, este consumo electrico sea el doble aproximadamente. Otro inconvenientees que son lentos y no serıan muy apropiados en edificios con gran numero de plantas.Frente a esto, se encuentra algo realmente positivo y es que son los mas seguros. Esto esdebido a que, aunque las valvulas que controlan la entrada y salida del aceite del pistonse estropeen, tienen un caudal maximo que, si falla, hace que el descenso sea muchomas lento que si se rompieran los cables en los elevadores con traccion electrica.

10 Chapter 2. Estado del arte

Figura 2.5: Esquema de un elevador hidraulico

2.3. Logica de control de los ascensores

Con la llegada de los primeros ascensores publicos para personas, tambien llego elproblema de como hacer que vaya a la planta deseada. Para ello, se introdujo elpersonaje del ascensorista en quien recaıa la decision de hacia donde era mejor dirigirseante multiples llamadas. Mas adelante, se introducen los ascensores con botonerasautomaticas. Todos ellos eran, simplemente, ascensores convencionales dotados dememoria. De estos no se tardo en evolucionar a sistemas inteligentes, que realizan lamaniobra lo mas eficientemente posible.

A la hora de controlar un unico ascensor, la logica es muy sencilla: el sistema solo hade memorizar todas las llamadas y atenderlas teniendo en cuenta la direccion que llevaen ese momento el ascensor.

En un edificio en el que se dispone de varios elevadores, la logica de control comienzaa complicarse. Para intentar dar solucion a los diferentes casos, se han elaboradodiversas teorıas, como por ejemplo las redes neuronales, el principio de control colectivo,el algoritmo RL (Reinforcement lerning). . .

2.3.1. Algoritmo convencional (Principio de control colectivo)

Es el algoritmo mas empleado en sistemas de transporte vertical sencillo comoedificios residenciales de pocas plantas y con poco volumen de viajes. Se basa en elprincipio de proximidad, es decir, que ante un conflicto entre dos ascensores por atenderuna llamada, va el que se encuentre mas proximo [3].

Es muy empleado por la facilidad de implementacion, pero tiene el inconvenientede no ser eficaz. Se podrıa decir que los ascensores estan continuamente luchandopor atender las llamadas, lo que puede provocar que, en horas de mayor afluencia depersonas, las cabinas se aglutinen en una zona del edificio, e induciendo a un largo

Section 2.3. Logica de control de los ascensores 11

retraso en atender llamadas de aquellos lugares con menos necesidades.

2.3.2. Logica difusa

La vida es confusa y difusa, es decir, la forma de procesar la informacion de nuestroalrededor puede tener diferentes interpretaciones en funcion de distintos parametros.Un ejemplo de ello es que un dıa caluroso en invierno, no es lo mismo que un dıacaluroso en verano [4]. La definicion de dıa caluroso es imprecisa, depende de la epocadel ano, de la localizacion en la que nos encontramos y de muchos otros parametros queinconscientemente nos hacen decir que un dıa es caluroso.

Siguiendo este razonamiento en el problema de la logica de los ascensores, seencuentran muchos parametros que deberıan influir a la hora de asignar las paradasde los ascensores. Ademas del parametro anteriormente mencionado (principio deproximidad) de la distancia mas pequena a la llamada, hay otros parametros igualmenteimportantes a tener en cuenta como pueden ser:

• tiempo de espera de los pasajeros,

• trayecto de los pasajeros,

• peso que le da a la llamada,

• distancia del viaje,

• consumo de los elevadores,. . .

Para la ejecucion de la logica difusa se requiere definir unas entradas (como lasanteriormente mencionadas), las cuales influiran posteriormente en la toma de decision.A estas entradas, y para cada llamada, se asigna una importancia (baja, media o alta)que aplicando una serie de formulas, nos da una salida que representa la prioridadque tiene un ascensor sobre el resto y pudiendo, de este modo, asignar la llamada alascensor con la prioridad mas alta.

2.3.3. Redes neuronales

Como otras muchas teorıas, esta tiene su origen en la emulacion de la naturaleza.El objetivo es buscar solucion a los problemas mas complejos, no como una secuenciade pasos, sino como la evolucion de unos sistemas de computacion capaces de razonar,pensar y aprender por sı mismos. Esta busqueda nos lleva inevitablemente al cerebrode los seres humanos que cumplen con todas las caracterısticas mencionadas, e inclusomas. El cerebro es la principal diferencia que poseemos con respecto al resto de seresvivos y es lo que nos hace ser propiamente personas.

A continuacion se explica brevemente el funcionamiento del cerebro de los sereshumanos, centrado en las diferentes partes que influyen en la teorıa de las redesneuronales. [5]

12 Chapter 2. Estado del arte

El cerebro esta compuesto por un conjunto de celulas nerviosas que, por sı solas,son inutiles pero en conjunto, al interaccionar unas con otras, son una herramientamuy potente. Un solo cerebro humano posee mas neuronas que todas las estrellasdel universo y es dicha interaccion entre todas las celulas nerviosas, la que nos da lafacultad de pensar, razonar, movernos, tener emociones y todas las caracterısticas quenos hacen ser personas. En cada accion que tiene que procesar no intervienen todas lascelulas, sino que las diferentes tareas son procesadas por diferentes regiones de toda lamasa neuronal, como por ejemplo andar, hablar, imaginar o la simple tarea de procesarlas imagenes que nos llegan del sentido de la vista.

Figura 2.6: Partes de una celula neuronal

Esta claro que hoy en dıa conseguir simular esta inmensidad de neuronas con suposterior accion (dar un paso, mover la boca) es practicamente imposible. Pero siguiendocon la premisa anterior de las regiones, se podrıa desarrollar una red neuronal querealizara una pequena accion determinada. Por consiguiente, antes de realizar una redhay que estudiar el proceso mas simple que actua, la neurona. La fisiologıa de unaneurona individual esta compuesta principalmente por 3 partes: dendritas, cuerpo de lacelula y axon. Figura 2.6

• Dendritas: De forma simple, sin meterse en biologıa, su funcion principal es la detransportar la informacion de una neurona a otra. Gracias a esta membrana seproduce el intercambio de informacion con su posterior resultado. Hay dendritas ala entrada (pegados al cuerpo de la celula) y a la salida (en el axon).

• Cuerpo de la celula: Puede tener uno o dos nucleos que se encargan de procesarla informacion y dar una respuesta.

• Axon: Se encarga de enviar la respuesta de la celula a todas las neuronasconectadas a ella. Del cuerpo de la celula sale una ramificacion mas larga que elresto, rodeada (en la gran mayorıa de las neuronas) por una capa aislante llamadavaina de mielina y terminada por dendritas. La capa aislante esta interrumpida en

Section 2.3. Logica de control de los ascensores 13

varios puntos por los nodos de Ranvier. La respuesta de la neurona viaja por lasvainas que tienen que despolarizarse, por lo que la informacion va a lo largo dela fibra de forma discontinua. Las vainas no pueden volver a despolarizarse hastapasado 1 milisegundo (retardo sinaptico), que es el tiempo que tarda en volver a suestado de reposo, limitando la frecuencia de transmision de los impulsos nerviososa unos 1000 por segundo.

El proceso quımico que se produce en la celula nerviosa se puede asemejar a uncircuito electronico ya que la informacion que se transmite son impulsos electricos. Altratarlo como un organismo computacional, estamos suponiendo que las neuronas sonbinarias, es decir, o bien estan activadas o bien desactivadas. Por lo tanto, el circuitoelectrico equivalente serıa un procesador (cuerpo de la celula) programado para activaro desactivar una salida (axon) en funcion de unos parametros de entrada (dendritas)proporcionados por otros procesadores (otras neuronas). El esquema de esta neuronaartificial quedarıa como la de la Figura 2.7.

W1

W2

Wn

X1

X2

Xn

Y

Salida de otras

neuronas

Entradas Pesos

SinapsisCuerpo de la

célula

Función de

propagación

Función de

activaciónSalidas

Axón

Figura 2.7: Neurona artificial inspirada en una biologica

Despues de todo lo explicado anteriormente, viene a la cabeza una pregunta clave:¿como decide el cuerpo de la celula (el procesador) el estado de la salida? Detras deesta pregunta, hay una base muy simple. La neurona clasifica la informacion que recibede las diferentes neuronas a las que esta conectada dandoles un peso, una relevancia.En el peso se encuentra el conocimiento que poseen las redes neuronales artificiales.Posteriormente, se realiza el sumatorio de todas las entradas multiplicadas por suscorrespondientes pesos. A este proceso se le llama funcion de propagacion y se puedever en la Figura 2.7. A continuacion pasa a la funcion de activacion, donde se acota elvalor devuelto por el factor de propagacion para darle valores entre 0 y 1 a la salida.Para la explicacion, estas salidas se han usado entre 0 y 1, pero normalmente se suelenacotar entre -1 y 1 por cuestiones matematicas.

Esta base es seguida por varias teorıas que tratan las diferentes formas de dar valoresa los pesos, porque no importa lo bien que este realizada nuestra red neuronal si lospesos no son los correctos.

La conexion de estas neuronas artificiales simples consigue resolver diversos proble-mas relacionados, por ejemplo, con el reconocimiento de formas, patrones, prediccion,codificacion, optimizacion o control entre tantas otras aplicaciones. Aplicandolo al caso

14 Chapter 2. Estado del arte

particular de los ascensores, concretamente a la forma mas eficiente de mover la cabinapara coger y dejar gente, existen multiples estudios con resultados muy prometedores.

Sin ir muy lejos, se pueden encontrar estudios sobre el control de la cabina delascensor con respecto al modo de distribucion. En el programa realizado en unode los estudios [6], la red neuronal artificial es capaz de aprender sobre la marcharealizando modificaciones en los pesos de las entradas de las neuronas. De esta formaconsiguen que el ascensor se adapte a la demanda especıfica del edificio en el que seencuentra instalado. En los resultados del estudio se puede ver que inicialmente (cuandoesta aprendiendo) su efectividad es menor que usando otros mecanismos diferentes alas redes neuronales, pero a partir de un numero de llamadas realizadas, el ascensorse vuelve mucho mas eficaz. Con ello han demostrado que se acortarıan los tiemposde espera gracias a que el programa pronostica su futura posicion y llamadas que serealizaran.

Capıtulo 3

Descripcion del prototipo

Con el fin de reflejar las tareas que realizan los automatas programados, se hanempleado dos prototipos a escala de laboratorio que reproducen de manera simplificadael funcionamiento de tres ascensores. Reproducen la instalacion real que se colocarıaen un edificio de cuatro plantas (Figura 3.1), siendo 0 la planta mas baja y 3 la plantamas alta. A partir de ahora, el prototipo compuesto por dos ascensores se va a llamarascensorAB (Figura 3.4a) y el prototipo simple que alberga un ascensor, ascensorC(Figura 3.4b).

Figura 3.1: Plataforma sobre la que se asienta el ascensor

3.1. PLC CJ1M (automatas)

El control de los ascensores se realiza mediante la programacion de 2 PLCs(Programmable Logic Controller) modulares de la marca OMRON, modelo CJ1M-CPU11-

15

16 Chapter 3. Descripcion del prototipo

ETN. Esta controladora puede ser conectada por el puerto Serial o por el puerto Etherneta un PC para su posterior introduccion del programa (Figura 3.2). En este caso, se utilizael puerto Serial para volcar los programas y posteriormente monitorizar el proceso, yel puerto Ethernet como puente de enlace entre los dos PLCs para el intercambio deinformacion.

Figura 3.2: Modulo CJ1M-CPU11

Las necesidades de los dos prototipos son diferentes, ya que uno va a tener la mitadde entradas y salidas que el otro. A pesar de esto, el ascensorAB solo tiene un modulomas de entradas que el ascensorC, con lo que todos los modulos que forman los dosPLCs serıan:

• CJ1W-ETN21 (ETN21Mode): Se utiliza para poder usar las comunicaciones porEthernet. A pesar de estar incluido en el modulo principal, se le trata comounidad aparte a la hora de programar el automata. En el capıtulo 4 se precisael funcionamiento de este modulo.

• CJ1W-MAD42 (Analog I/O Unit Input): Es un modulo que dota al PLC de entradasy salidas analogicas, y se utiliza para controlar los motores. Como dispone demultiples modos de operacion, hay que activar las que se vayan a utilizar. Si sequiere controlar la velocidad de la cabina mediante un motor, necesitamos unvoltaje de salida positivo o negativo (puesto que va a subir o a bajar) y nada mas,por lo que solo se activara la salida analogica dejando el resto de funcionalidadesdesactivadas. El rango de valores que se han de cambiar vienen dados por laFigura 3.3; estos fluctuaran entre -10 VDC y 10 VDC.

• CJ1W-OC211 (Relay Output Unit): Salidas digitales. En el caso del ascensorC solose utiliza para indicar acciones encendiendo los led que incorpora el modulo. En elascensorAB, ademas de indicar, puede controlar el motor.

• CJ1W-ID211 (DC Input Unit): Entradas digitales. Son entradas que varıan enfuncion de los diferentes sensores.

Section 3.1. PLC CJ1M (automatas) 17

Figura 3.3: Rango de salida del modulo Mad42 (valores en hexadecimal)

• CJ1W-CT021 (High-speed Counter Unit): Es un contador de alta velocidad queda la posibilidad de anadir un encoder para medir la velocidad. No se ha utilizadoen este caso.

Con el fin de poder interactuar con todos los modulos que se pueden incorporaral PLC de OMRON y de proporcionar al programador lugares donde trabajar, la CPUdispone de distintas areas de registros. A continuacion se detallan las empleadas en elproyecto:

• CIO: Area de intercambio de datos (CIO 0 - CIO 6143), es decir, de comunicacionentre los diferentes modulos y el programa de la CPU. Para que funcionen todas laspartes conectadas del prototipo, se han utilizado:

– AscensorAB:◦ Entradas digitales: CIO 1 (botones) y CIO 2 (interruptores reed1).◦ Salidas digitales: CIO 0 (solo empleado para indicar si las puertas estan

abiertas y para la posibilidad de usar el control digital de los motores).◦ Salidas analogicas (Mad42): CIO 2000 (inicializacion de las salidas), CIO

2001 (motor B) y CIO 2002 (motor A).◦ Bus CPU: CIO 1567.14 (bit que indica si hay conexion entre los dos PLCs)

– AscensorC:◦ Entradas digitales: CIO 0 (botones e interruptores reed).◦ Salidas digitales: CIO 1 (solo empleado para indicar si la puerta esta abier-

ta).◦ Salidas analogicas (Mad42): CIO 2000 (inicializacion de las salidas) y CIO

2002 (motor C).◦ Bus CPU: CIO 1567.14 (bit que indica si hay conexion entre los dos PLCs)

• Area de trabajo (WR): Area de variables volatiles del sistema para uso y disfrutedel programador (W0 - W511).

1Es un sensor que detecta campos magneticos cercanos. Consta de dos filamentos muy proximos entresı encerrados en un tubo de vidrio que reaccionan ante la presencia de un campo magnetico. Cuando estanlos contactos abiertos se cierran, pero si estaban cerrados se abren.

18 Chapter 3. Descripcion del prototipo

1.Motor 2.Fuente 3.PLC

4.Riel4.Riel

5.Amplicadores

6.Botonera

7.Cabina7.Cabina

8.Imanes8.Imanes9.Interruptor

reed9.Interruptor

reed9.Interruptor

reed

PLANTA 0

PLANTA 1

PLANTA 2

PLANTA 3

(a) AscensorAB

1.Motor

2.Fuente

3.PLC

4.Rieles

5.Amplicador

6.Pulsadores

7.Cabina

8.Imanes

9.Interruptorreed

PLANTA 0

PLANTA 1

PLANTA 2

PLANTA 3

(b) AscensorC

Figura 3.4: Prototipos de ascensores de 4 plantas

• Area de retencion (HR): Area de variables retentivas, que permanecen aundespues de un corte de corriente (H0-H1535).

• Area de memoria de datos (DM): Mantiene el estado ante fallos (D0-D32767). Seemplea para la configuracion de las comunicaciones entre PLCs.

• Area de temporizadores: Lugar donde se almacenan los temporizadores utilizados(T0-T4095).

3.2. Otros elementos que componen el prototipo

Debido a los recursos empleados en los prototipos, se necesitan varias fuentes dealimentacion. Estas se describen brevemente a continuacion.

• Fuente CPU: Con el fin de alimentar la CPU del automata (descrito en la seccion3.1), se emplea la fuente de alimentacion PA202 de la marca OMRON. Suscaracterısticas tecnicas son:

– Entrada: 100-240 VAC, maximo de: 40 A y 120 Hz

– Salida: 5 VDC, 2.8 A

• Fuente de entradas y salidas: Los reles de entrada y salida del PLC funcionan a 24V. A diferencia de otras fuentes de tension de OMRON que, aparte de alimentar la

Section 3.2. Otros elementos que componen el prototipo 19

CPU son capaces de alimentar las entradas y salidas, la PA202 no tiene salidas paratal proposito. Esto induce a la necesidad de emplear otra fuente de alimentacion.En este caso se ha empleado la fuente MDR-20 de la marca Mean Well con lassiguientes caracterısticas:

– Entrada: 100-240 VAC, 50-60 Hz

– Salida: 5 VDC, 1 A

• Amplificador para el motor: El modulo de salida MAD32, proporciona unasalida de -10 V a 10 V. Para no danar este modulo y proporcionar al motor lapotencia requerida en cada ocasion, se anade un amplificador entre ambos. Elamplificador usado es el LSC 4-Q-DC servoamplifier de la marca Maxon Motorcuyas caracterısticas tecnicas son:

– Tension de funcionamiento: 12-30 VDC

– Entrada: -10 V a 10 V

– Salida: maximo de 30 VDC, 2 A

Tiene varias formas de funcionamiento: compensador IxR, regulador del voltaje,regulador de corriente, control de velocidad con encoder, control de velocidad contacometro DC,. . . Tambien se puede regular el rango del voltaje que entra: de -3.9V a 3.9 V o de -10 V a 10 V. En este caso, el amplificador trabaja en el modo deregulador del voltaje y acepta un rango de valores de -10 V a 10 V puesto que es loque llega desde el modulo Mad42 del PLC.

Los amplificadores son los encargados de dar potencia a los motores. Estos sonbidireccionales a los que posteriormente se les transforma su movimiento rotacional endesplazamiento vertical para las cabinas. En el ascensorAB, se tienen dos motores (unopara cada cabina) de 24 VDC con una velocidad a maxima potencia de 80 rpm, mientrasque en el ascensorC el motor es tambien de 24 VDC pero con una velocidad a maximapotencia de 47 rpm. La diferencia de revoluciones por minuto, hace que la cabina C vayamas despacio que las cabinas AB. Dado que con estas reproducciones de ascensoresa escala de laboratorio simplemente se quiere probar el correcto funcionamiento delas llamadas, no se tendra en cuenta esta pequena diferencia de velocidades entre lascabinas.

Siguiendo con la premisa anterior, para simular las llamadas es necesario saberen que posicion se encuentra la cabina. Al no ser necesaria una cabina completa, seha utilizado una caja de plastico unida al motor mediante un cable que permite eldesplazamiento vertical, para ir indicando visualmente la posicion en la que se encuentrala cabina en todo momento.

Visualmente se sabe la posicion, pero para lograr que el automata conozca laubicacion de la cabina, se han empleado interruptores reed (3.5). Estos interruptoresestan colocados por parejas en cada planta de tal modo que cuando estan los dosactivados significa que se encuentra en el piso, mientras que si solo esta uno de losdos, significa que esta saliendo de la planta ya sea hacia arriba o hacia abajo. Elfuncionamiento de estos interruptores es muy simple: cuando se les acerca un campo

20 Chapter 3. Descripcion del prototipo

magnetico, se activan (conducen corriente). Esto se debe a que estan formados por dospiezas conductoras muy proximas entre ellas pero que no se tocan hasta que mediantemagnetismo se chocan y conducen. Para provocar este campo magnetico, la cabinatiene colocados dos imanes separados a la misma distancia que los dos interruptoresindicadores de una planta. Por lo tanto, en definitiva se conoce la posicion que tiene lacabina gracias a la activacion o desactivacion de estos interruptores.

NO SI

Figura 3.5: Funcionamiento de interruptores reed ante un campo magnetico

Como el fin de este prototipo es la de atender correctamente las llamadas que seproduzcan, son necesarios unos mandos o botones fısicos que simulen las llamadasque se realizarıan desde el interior de la cabina y desde el exterior de la misma en cadaplanta de un ascensor real.

Con el fin de guiar la cabina a lo largo de su trayecto por su desplazamiento a travesdel hueco, se dispone de dos rieles a cada lado de la cabina.

En el ascensor AB tambien se dispone de un modulo digital con el que controlar elmotor. En funcion de la salida que active el PLC, el modulo proporciona un voltaje de ±5VDC o ±10 VDC al motor. En este proyecto, no se ha empleado debido a que restringefuncionalidad con respecto a la salida analogica proporcionada por el modulo Mad32descrito anteriormente.

Section 3.2. Otros elementos que componen el prototipo 21

Serial

FuentePA202

CJ1M-CPU11Ethernet

Mad42

OC211

ID211

CTO21

FuenteMDR-20

Amplificador

C

Botones

Sensoresreed

M

FuentePA202

CJ1M-CPU11Ethernet

Mad42

OC211

ID211

ID211

CTO21

FuenteMDR-20

Amplificador

Amplificador

Módulodigital

A

B

Botones

SensoresReed

M

M

AscensorC AscensorAB

ConexiónEthernet

Figura 3.6: Diagrama de las conexiones del prototipo

22 Chapter 3. Descripcion del prototipo

Capıtulo 4

Interconexion de PLCs: Ethernet vsEthernet/IP

Como son dos PLCs que han de conectarse entre sı, hay que buscar una tecnologıaadecuada para realizar la union de los dos PLC con el fin de que trabajen como si fuerauno solo. Para ello, los automatas programables de OMRON admiten diversidad de tiposde conexiones: EtherCAT, EtherNet, EtherNet/IP, CompoNet, DeviceNet, CompoBus/s.Dado que las redes mas famosas y mas usadas hoy en dıa son Ethernet y Ethernet/IP(basado en Ethernet), se ha realizado una comparativa entre las dos tecnologıas con elfin de determinar cual se adapta mejor al caso de la comunicacion de los dos prototiposde ascensores.

El nombre Ethernet viene del concepto fısico del eter1 (ether) [7] y de red (net). Setrata de una red LAN correspondiente a la capa fısica del modelo OSI cuyo exito se basaen su sencillez y la posibilidad de alcanzar una transferencia de datos de 10 Gbit/s.Fue disenado por Bob Metcalfe y David Boggs en 1970 con la intencion de unir unordenador con una impresora. La comunicacion debıa de ser de alta velocidad puestoque la informacion a enviar a la impresora era de gran tamano. Hay que tener en cuentaque la impresora se asemejaba a las impresoras laser de hoy en dıa.

Este sistema, ideado en 1970 y mejorado en la actualidad, comparte el mismoprincipio. Basicamente consiste en un protocolo de conexion que simula un dialogo entredos personas. Cuando se inicia una conversacion entre dos individuos, primero va elsaludo con la posterior contestacion a este por parte del otro personaje. A continuacion,el primero que ha empezado la conversacion expone el tema que le ha llevado a iniciarla conversacion, al que el personaje que esta escuchando responde si ha comprendidoel asunto. Tras ratificar el buen entendimiento de la cuestion tratada, se despiden. Lomismo ocurre en la transmision Ethernet, la cual primero comprueba que no haya otrodispositivo conectado para establecer la conexion (el saludo inicial). Una vez que el otrodispositivo le ha dado el visto bueno para que comience el envıo de datos, comienza atransferir la informacion. Cuando el mensaje enviado ha sido correctamente recibido, elreceptor envıa una confirmacion y cierra la conexion.

1Hipotetica sustancia extremadamente ligera que se creıa que ocupaba todos los espacios vacıos comosi fuese un fluido y por el que viajaban las ondas electromagneticas. Gracias al fracaso del experimento deMichelson y Morley, se asentaron las bases de la teorıa de la relatividad de Einstein.

23

24 Chapter 4. Interconexion de PLCs: Ethernet vs Ethernet/IP

En este tipo de transmisiones pueden producirse colisiones de datos interfiriendoen el mensaje final. Por ello, implementaron un protocolo (CSMA/CD) de deteccion decolisiones y de acceso al medio. Por un lado, antes de enviar informacion escucha elcanal y si esta libre envıa los datos, en caso contrario se mantiene a la espera de que sedesocupe. Por otro lado, tiene un sistema que detecta cuando se produce una colisionesperando un tiempo aleatorio antes de volver a enviar la informacion.

Para la configuracion de la red es muy importante conocer las direcciones IP de losdiferentes dispositivos que se van a conectar. Dichas direcciones han de pertenecer a lamisma red para que se puedan conectar entre sı. Las pruebas realizadas y la conexionentre los PLCs de los ascensores se han realizado bajo la misma red: 10.10.10.XX. Altrabajar bajo la misma subred: 255.255.255.0, cambiando las XX por valores entre 0y 255 se consigue especificar el dispositivo. Si se desea cambiar la direccion IP de unPLC, desde CX-Programmer hay que ir a la parte izquierda a tabla de entradas y salidasy posteriormente a la unidad Ethernet. En la ventana emergente se puede cambiar ladireccion IP del PLC y la mascara de red (ver Figura 4.1).

Figura 4.1: Modificacion de la direccion IP del PLC

Cuando se finaliza, hay que transferir los cambios realizados al dispositivo clicandosobre Transf.(de PC a unidad). Importante que para todos los ajustes que se realicen enel PLC, este ha de estar en modo programacion.

Solo con definir la IP no es suficiente para establecer la comunicacion. Hay quedefinir que nodo empleara la tarjeta de red Ethernet, ya que un mismo PLC puede tenerdiferentes modulos de comunicacion pero cada uno tiene un numero de nodo distinto.Mediante CX-Integrator se definen los nodos que va a tener el PLC. Se puede acceder atraves de CX-Programmer clicando en Herramientas � Configuracion de red. Al iniciarCX-Integrator, aparece una ventana preguntando por la forma en la que se va a conectaral PLC. Se elige Serial Port puesto que es mejor realizar esta configuracion desde elpuerto serie. La siguiente ventana es para especificar el tipo de red que vamos a montarpero para la red Ethernet no interesa por lo que se pulsa en Cancelar. Una vez que noaparecen mas ventanas, hay que ir a Herramientas � Iniciar tabla de rutas donde senos abrira una ventana como la de la Figura 4.2. En la pestana Vista principal se puedever un esquema de como estan distribuidos los nodos, mientras que en la pestana Vistade tabla se pueden modificar. El SIOU es el nombre que le da OMRON a las unidades

25

asignadas a cada modulo2. Por lo tanto, en SIOU hay que escribir el valor de la unidaden la que se encuentra la red Ethernet y en red local el numero de nodo asignado. Comose aprecia en la Figura 4.1 y en la 4.2 la unidad asignada para el modulo de Ethernet,en este caso, es la 1 por lo que en SIOU hay que escribir 1 y establecerle un nodo, queen este caso se le ha concedido el nodo 2.

Figura 4.2: Modificacion del nodo ethernet

Al tratarse de una comunicacion entre dos PLCs, se han asignado el mismo nodoa ambas unidades Ethernet para evitar confusiones. En el capıtulo 5 se describe conmas detalle el codigo que hay que implementar en los PLCs para poder realizar lacomunicacion mediante Ethernet.

En el caso de la red Ethernet/IP, en el que IP significa Industrial Protocol, tambiencorresponde a la capa fısica del modelo OSI y en lıneas generales es muy parecido aEthernet pero son protocolos incompatibles entre sı. La principal diferencia que haceincompatibles a estos protocolos es que Ethernet/IP es un bus de campo con capacidadde conexion en tiempo real y esta pensado para usarse en entornos industriales.Se puede definir tiempo real como la interaccion de un sistema informatico con suentorno fısico respondiendo a los estımulos del entorno dentro de un plazo de tiempodeterminado.

La conclusion principal tras estos razonamientos es que el modulo Ethernet/IPrealiza las mismas funciones que Ethernet y, ademas, funciona en tiempo real, lo quepermite una interaccion mas segura del PLC con el entorno. Pero para el caso que seesta tratando, puede ocurrir que al ser de una simple conexion entre 2 PLC, la redEthernet sea suficientemente rapida como para considerarla tiempo real. Esto pasarıapor ejemplo con un termometro que envıa su temperatura cada medio minuto: puedeconsiderarse que funciona en tiempo real ya que la temperatura de una habitacion novarıa muy rapido. De poder considerarse tiempo real, se evitara la necesidad de anadir elmodulo adicional de Ethernet/IP al PLC puesto que Ethernet viene integrado en el CJ1M.

2La unidad de cada modulo es asignado mediante el disco selector que se encuentra fısicamente en cadamodulo.

26 Chapter 4. Interconexion de PLCs: Ethernet vs Ethernet/IP

Para la realizacion de las pruebas, se emplearon dos PLC existentes en la Escuela quedisponıan de los modulos Ethernet/IP y de Ethernet (que viene integrado con la CPU).

La configuracion basica para una red Ethernet/IP consiste en un switching hub3 quecomunica la unidad Ethernet/IP del PLC al ordenador (Figura 4.3). Gracias al empleo delswitching hub se pueden realizar conexiones virtuales punto a punto, necesarias para lacomunicacion en tiempo real. Como en todo intercambio de datos, es necesario conocera quien van dirigidos, es decir, que todos los miembros de la red han de tener asignadouna direccion IP estatica para poder interactuar correctamente con el medio.

Figura 4.3: Montaje de una red Ethernet/IP basica

Lo primero de todo es asignar a cada PLC de la red una IP estatica de la formacomentada anteriormente. A continuacion, hay que configurar la red Ethernet/IP delos PLCs que se van a conectar, para lo que se ha de emplear el programa NetworkConfigurator que se encuentra dentro del paquete de CX-One de los programas deOMRON. Una vez arrancado el Network Configurator, hay que realizar los siguientespasos:

• Hay que indicar que se esta creando una red Ethernet/IP desde el menu Option �Select interface � Ethernet I/F.

• Conectarse a dicha red desde Network � Conect y seleccionando la IP del ordenadordesde el que se esta realizando la configuracion.

• Una vez conectado, se anaden los dispositivos que van a pertenecer a la redseleccionando su IP (previamente fijada) desde Network � Upload. En la figura 4.4se ve una red de dos PLCs.

• Clicando dos veces seguidas en uno de los dispositivos que aparecen, se accede almenu para anadir los tags y tag set (explicados a continuacion).

Una vez configurada la red, hay que tener en cuenta que las comunicaciones enEthernet/IP son cıclicas y se realizan mediante tags (tags Data Links) Figura 4.5. Un tag

3Hub (concentrador): envıa la informacion de un PC a todos los PC conectados a la red, puede habercolisiones. Switch-hub (conmutador): artilugio con la inteligencia suficiente para establecer un puente deunion entre dispositivos, eliminando las colisiones.

27

Figura 4.4: Red de dos PLCs

es una conexion entre una posicion de memoria de un nodo remoto con una posiciondel nodo local. Los tags se agrupan en tag set. Un tag set crea una unica conexion entredos nodos Ethernet/IP para el intercambio de informacion. La comunicacion es entretag sets, no entre tags.

Los tags se pueden configurar como salida (Target) o como entrada (Originator).Una entrada solo puede estar conectada a una salida, mientras que una salida puedeconectar a varias entradas. El Originator es el que realiza la llamada al Target pidiendolos datos y el Target se limita a darselos.

Figura 4.5: Funcionamiento de los tags

El resultado obtenido utilizando la tecnologıa Ethernet/IP es la simultaneidad de

28 Chapter 4. Interconexion de PLCs: Ethernet vs Ethernet/IP

todos los envıos sin esperar a que se termine el ciclo scan4 del PLC, una vez especificadoel tiempo de refresco de los datos y por ser una conexion punto a punto. Con lo cual sepodrıa decir que los puntos estan conectados permanentemente.

En el caso de la red Ethernet es un poco diferente, OMRON ofrece Function Blocks4

que permite la comunicacion sin necesidad de tener apenas conocimientos sobre ellas.El principal problema es la configuracion a traves del programa, ya que se ha de esperara que termine el ciclo scan para que la informacion se transmita y solo se puede enviaro recibir un paquete de datos en cada ciclo.

Para comprobar el tiempo que tarda en enviarse la informacion, se emplearon dosPLCs del laboratorio y un osciloscopio electronico. A uno de los PLCs se le introdujo unprograma muy simple en el que la funcion send enviaba constantemente el estado desus entradas digitales a las salidas digitales del otro PLC. Conectando el osciloscopiocomo se muestra en la Figura 4.6 y utilizando la funcion tigger para congelar la imagencuando se produzca el cambio, podemos observar el retraso que se produce en el envıo.En la Figura 4.7 se muestra uno de los ensayos en el que la senal 1 es la entada alPLC que envıa los datos y la senal 2 es la salida del PLC que los recibe. Para cambiar elvalor de la entada se ha empleado un interruptor externo que al activarlo muestra en elosciloscopio un cambio en el voltaje de 0 a 24 V. En la salida, el cambio que se producees de 24 a 0 V, porque cuando no esta activada la diferencia de potencial entre la sonday la referencia es de 24 V. Monitorizando estos cambios y despues de sucesivos ensayos,se comprobo que se producıa un retraso en la salida respecto de la entrada de entre 14.5ms a 18 ms aproximadamente.

8 K

24 VSalidadigital

Sonda 2

24 V EntradaDigital

Sonda 1 Switching-hub

Ethern

et

Ethern

et

PLC 1 PLC 2

Figura 4.6: Colocacion de las sondas del osciloscopio en los PLCs

Esta medida no es del todo precisa debido al rebote producido por el interruptor, perose ha considerado despreciable ya que normalmente es menor que 1 ms y las medidasque sufrıan un retraso mayor por este motivo se desechaban. Este rebote se podrıahaber solucionado si en vez de enviar el estımulo activando la entrada digital del PLC,se hubiera activado la salida virtualmente (es decir, desde el ordenador) y esta fuese elestımulo que hiciera cambiar la salida del otro PLC.

4Se explicara en el capıtulo 5

29

Como medida valida se coge una media de 15 ms de retraso por ser un valorrazonable, ya que 10 ms se emplean en el ciclo scan y el resto es el tiempo entre que seproduce el cambio en la entrada y el fin del ciclo scan. Es decir, mientras el programase encuentra en ejecucion, recibe el cambio en la entrada. Esta variacion en la entradano afecta al programa hasta que no termina el ciclo scan en el que se encuentra (tiempovariable). Cuando termina el ciclo, vuelve a ejecutarse el programa, pero esta vez conlas variables de entrada actualizadas y, por lo tanto, preparadas para enviar. Pero unavez mas, hasta que no termina el ciclo (tiempo de 10 ms desde que ha empezado el ciclohasta que lo termina) no se ejecuta la orden de enviar la informacion. Posteriormente,tenemos el tiempo que tarda en enviarse el mensaje y de actualizarse la salida del otroPLC, pero este ultimo se produce instantaneamente sin esperar al ciclo scan porque lavariable es directamente la salida.

Figura 4.7: Visualizacion en el osciloscopio de la entrada (senal 1) de un PLC y la salida(senal 2) del otro

Resumiendo, de los 15 ms medios de retraso 10 ms son debidos al ciclo scan y los 5ms restantes debidos al momento en el que se activa el interruptor mas el tiempo en elenvıo de la informacion.

Con todos estos datos sobre la mesa, se decidio que, a pesar de que el retraso fuesede mas de 15 ms, no superarıa los 25 ms (dos ciclos scan mas algo del envıo), por lo quepara la comunicacion entre los 2 prototipos de ascensores se puede considerar que lacomunicacion es en tiempo real. Por este motivo y por el expuesto anteriormente (no esnecesario anadir mas componentes a los prototipos) se empleo el protocolo Ethernet.

Puesto que simplemente son dos los ascensores que hay que conectar, la conexion seha realizado directamente utilizando un cable de Ethernet con un crossover (cruce) queune las salidas de uno con las entradas del otro para evitar el empleo de un switch.

30 Chapter 4. Interconexion de PLCs: Ethernet vs Ethernet/IP

Capıtulo 5

Programacion

Antes de comenzar la programacion, hay que conocer la funcion a la que se van adedicar los ascensores, ya que es distinta la funcion que desempenarıan, por ejemplo,en un bloque de oficinas que en uno residencial. Para el caso de los prototipos, seha supuesto que los ascensores se encuentran en un bloque residencial, es decir,las personas que se encuentran en el exterior de la cabina y llaman al ascensor seconsiderara que desean bajar, exceptuando en la planta baja que se imaginara quepretenden subir.

Una vez definido el modo de funcionamiento, y antes de explicar el codigo empleado,hay que conocer un dato importante del modo en el que se ejecuta el programa enlos automatas de OMRON; se trata del ciclo scan comentado anteriormente. Como sunombre indica, es una secuencia de comandos que se ejecuta cıclicamente y en untiempo determinado. Como se puede ver en la Figura 5.1, los pasos que ejecuta el cicloscan son los siguientes:

1. Inicializacion inicial: solo se ejecuta una vez al inicio en el arranque del PLC.

2. Supervision del proceso: revisa el hardware y las areas de memoria.

3. Ejecucion del programa secuencialmente.

4. Tiempo de ciclo del programa: tiempo maximo que tiene el programa paraejecutarse.

5. Refresco de las entradas y salidas digitales del PLC segun el programa.

6. Servicio puertos perifericos.

7. Refresco de las entradas y salidas analogicas.

8. Servicio unidad de comunicaciones.

El ciclo scan como maximo es de 10 ms, siendo el tiempo de ejecucion de todos lospasos constante menos el del programa del usuario (paso 4 Figura 5.1). Esto influye enel programa que ha de tener un principio y un fin, de forma que pueda pasar al pasosiguiente. Por lo tanto, se corre un gran riesgo al programar bucles, puesto que si no

31

32 Chapter 5. Programacion

Sup

erv

isió

n d

el p

roce

so

Tiem

po

cicl

o d

e pr

og

ram

a

Eje

cuci

ón

de

l pro

gra

ma

Inic

ializ

ació

n

Sup

erv

isió

n d

el p

roce

so

Tiem

po

cic

lo d

e p

rog

ram

a

Ref

resc

o I/

O

Serv

icio

pu

erto

per

ifér

icos

An

aló

gico

I/O

Serv

icio

un

idad

de

com

un

icac

ión

Eje

cuci

ón

del

pro

gra

ma

0t

Ciclo scan

1 2 3 4 5 6 7 8 2 3 4

Figura 5.1: Ciclo scan en un PLC

termina antes del tiempo estipulado, el automata se parara indicando un error en elque se ha excedido el tiempo de ejecucion. Tambien cabe mencionar que el programa seejecuta de forma secuencial, por lo que hay que tener en consideracion que partes delcodigo van antes y cuales al final.

En la programacion de los PLCs de OMRON, se ha empleado CX-Programmer presenteen el paquete de programas de CX-One. Este, permite la programacion de los PLCs entres lenguajes:

• Ladder (diagrama de reles): programacion parecida a una instalacion electrica,puesto que se creo pensando en los electricistas. Simulando una circuito electrico,tiene contactos que afectan a reles de salida. Tambien se pueden encontrarcontadores, temporizadores y otras instrucciones que ayudan al programador ensu tarea.

• Texto Estructurado (ST): lenguaje con grandes similitudes a “C”. Tipo de lenguajeque se acerca mas al tipo empleado por los programadores de hoy en dıa.

• SFC (Secuential Function Chart): programacion mediante la creacion de Grafcet,la cual es muy visual pero poco eficiente a la hora de compilar.

Otra de las caracterısticas de la programacion con CX-Programmer son los llamadosbloques de funciones (FB). Son trozos de programa (en Ladder o Texto Estructurado) alos que se les puede llamar desde cualquier parte del programa principal pudiendo tenervariables entrantes y salientes de dichas funciones. Especialmente interesante cuandose desea emplear el mismo codigo en diferentes partes del programa, produciendo salidasdiferentes en funcion de las entradas.

Para la programacion de los ascensores se ha usado Ladder y Texto Estructurado,descartando SFC por su mala optimizacion a la hora de compilar. Aunque ocupe menos,

Section 5.1. Arquitectura del software 33

Texto Estructurado no es tan eficiente como Ladder a la hora de traducir el codigo alenguaje de maquina. A pesar de que para programaciones de estos PLCs es mejor elempleo de este ultimo, se ha intentado utilizar al maximo Texto Estructurado por susemejanza al lenguaje de “C”porque permite al autor realizar una programacion massencilla de programas muy complejos .

En la proxima seccion, se pasa a explicar todo el procedimiento empleado en laprogramacion de los PLCs, ası como las funciones que desempenan.

5.1. Arquitectura del software

La vision general del programa realizado se puede ver gracias al modelo GEMMA defuncionamiento de las cabinas mostrado en la Figura 5.2. En el se ven los diferentesmodos de funcionamiento de los ascensores ası como las paradas que se puedenproducir y su posterior actuacion. Tambien se incluyen las alarmas debidas a un malfuncionamiento, pero estas son comprobadas desde el ordenador que monitoriza lamaniobra para no emplear la memoria de los PLCs, que es escasa.

Proceso en defecto

Procedimiento de parada Proceso de funcionamiento

Modo ManualModo Bomberos

Preparación:Ir a la planta 0

Modo AutomáticoParada emergencia

Cambio entre modos

Error en funcionamiento

Inicialización variables arranque

Reinicio variables

Corrección error

Figura 5.2: Idea general de la programacion GEMMA

Para realizar esta maniobra, las variables empleadas en la programacion se hanordenado de una forma precisa con el fin de facilitar las cosas si se quieren modificar oanadir mas. Concretamente, se han organizado en los registros de las variables volatiles(W) y retentivas (H) como se indica en la tabla 5.1. Tambien se les ha anadido la letraen mayuscula referente a la cabina en la que se emplea para que el codigo sea masfacilmente interpretado y programado. Para llevar un registro mas visual y simple, se harealizado un fichero en Excel donde se clasifican las diferentes variables por: nombre,tipo, registro, descripcion de su funcion. Ademas de las variables del programa, tambien

34 Chapter 5. Programacion

estan las variables empleadas en los sensores y actuadores.

Grupo de variables Registro TipoRecepcion datos en C H000 - H019Envıo de datos en C H020 - H029

Cabina A W100 - W199W100 - W119 BooleanosW120 - W169 EnterosW170 - W199 Vectores

Cabina B W200 - W299W200 - W219 BooleanosW220 - W269 EnterosW270 - W299 Vectores

Cabina C W300 - W399W300 - W319 BooleanosW320 - W369 EnterosW370 - W399 Vectores

Variables generales W400 - W499W400 - W419 BooleanosW420 - W469 EnterosW470 - W499 Vectores

Tabla 5.1: Organizacion de las variables del programa

A pesar de que no todas las variables se emplean en cada ascensor, han sido incluidasen los 2 PLCs aunque no se utilicen para evitar posibles errores de variables duplicadas,puesto que es muy sencillo cambiar las variables en Excel y copiarlas en CX-Programmer.

Las variables de enviar y recibir datos se encuentran en el area retentiva (H) puestoque las variables de activacion de los distintos modos y de la parada de emergenciase encuentran en el saco de variables a enviar desde el ascensorC. Es interesante quese guarde el valor de estas variables aun despues de una perdida de corriente, paramejorar la interaccion con el usuario. Teniendo en cuenta que el resto de variables quese envıan y reciben no importa si son retentivas o no y que (como se ha explicado en elcapıtulo 4) es mejor enviar y recibir un conjunto de datos, se han introducido todas enel area retentiva.

Mediante la activacion y desactivacion de ciertas variables, se puede cambiar laactividad que realiza cada uno de los ascensores. Cada cabina se rige por 3 diferentesmodos de funcionamiento:

• Modo automatico: Programacion dividida en bloques que realizan toda la ma-niobra de forma autonoma y que son iguales para el caso de las tres cabinas aexcepcion de lo siguiente: en funcion del modo en que se encuentren los otrosascensores y de si hay conexion entre los 2 PLCs, trabajan de forma diferente

Section 5.1. Arquitectura del software 35

con respecto a la logica empleada para atender las llamadas realizadas desde elexterior del ascensor. Para el caso del ascensorAB, si no hay conexion con el otroPLC y solo una de las cabinas se encuentra en modo automatico, la cabina endicho modo actua de forma individual; en cambio, si estan los dos en automaticosu funcionamiento es de forma combinada. De la misma forma, cuando hayconexion entre ambos PLCs, pueden funcionar combinadamente tres o dos cabinaso individualmente teniendo en cuenta en que modo se encuentran.

• Modo mantenimiento: Pensada, como bien su nombre indica, para el mante-nimiento del ascensor pudiendo un operario mover la cabina por el hueco delascensor sin necesidad de ir de planta en planta como exige el modo automatico,su funcionamiento se puede ver en la Figura 5.3. El desplazamiento vertical serealiza mediante la botonera interior de la cabina de la cual se quiere realizar elmovimiento, empleando el boton de la planta 0 para bajar a maxima velocidad(motor a -10 V), el de la planta 1 para bajar despacio (motor a -5 V), el de laplanta 2 para subir despacio (motor a 5 V) y el de la planta 3 para subir a maximavelocidad. Para facilitar al operario las labores de mantenimiento en el hueco delascensor, puede abrir o cerrar las puertas con los botones disponibles en el interiorde la cabina (estos botones no se encuentran fısicamente en los prototipos, perosı en la pantalla de monitorizacion de todo el proceso explicado en capıtulo 6).Para entrar en este modo, se puede realizar desde la pantalla de monitorizacion, omediante un atajo en el teclado de la cabina, concretamente pulsando los botonesde las plantas 0 y 3 a la vez.

Quieto

Sube 10 V Sube 5 V Baja -5 V Baja -10 V

Botón 3 Botón 2 Botón 1

Ningún botón presionado

Botón 0

Figura 5.3: Grafcet del modo mantenimiento

• Modo bomberos: Disenado para actuar cuando se produce un incendio en eledificio. Con la intencion de que ninguna persona pueda bajar en estos evitandoası accidentes innecesarios, en cuanto se activa este modo, la cabina baja hastala planta 0 y abre las puertas para que nadie se quede encerrado dentro (verFigura 5.4). No importa el modo en el que se encontrara anteriormente, este modotiene prioridad sobre todos los demas exceptuando la parada de emergencia. El

36 Chapter 5. Programacion

acceso a este modo solo se puede realizar mediante la pantalla de monitorizacion(comentado en el capıtulo 6).

Quieto Bajar Abrir puertasPosición ≠ Planta 0

Posición = Planta 0

Figura 5.4: Grafcet del modo bomberos

• Parada de emergencia: Detiene cualquier accion que estuviera realizando la cabinay restablece todas las variables del sistema para que arranque despues como sifuese la primera vez. Para tal proposito, se tiene una seta de emergencia que activala parada y un boton que reinicia el proceso (actuadores solo disponibles en lapantalla de monitorizacion del sistema).

Con el fin de facilitar la posterior busqueda de posibles errores y programar de formaordenada, se ha dividido el programa en modulos conectados entre sı. Los diferentesbloques empleados para lograr el funcionamiento de los ascensores se describen acontinuacion.

5.2. Modulos del software de los PLCs

5.2.1. Posicion de la cabina

Se conoce la posicion de los ascensores gracias a la pareja de sensores colocados encada planta. Con el fin de que el programa conozca dicha posicion incluso cuando seencuentra entre sensores, se tiene una variable llamada posicionA (variando entre A, By C para asignarla a las diferentes cabinas). Dicha variable cambia como se muestra enla Figura 5.5

Aplicando este sistema, se puede obtener informacion muy util para las posteriorespartes del programa. Ası pues, se puede conocer el numero de valores que va a tomarla variable posicion en funcion del numero de plantas que tenga el edificio puesto quesigue la expresion (nopisos ∗ 3) − 2. De este modo, los prototipos son de 4 plantas por loque el numero de valores que tomara la variable posicion son 10 que van de 0 a 9. Deesta forma, dividiendo el valor de la posicion entre 3, obtenemos la planta en la que seencuentra. Al ser la posicion un valor entero, al dividirlo entre 3 nos da un valor enteroen el que se desprecian los decimales. El problema de funcionar ası es, por ejemplo,cuando se acerca a la planta 1: el valor de la posicion es 2 (como se puede ver en laFigura 5.5) que al dividirlo entre 3 nos da 0, 666; si se desprecian los decimales nos da

Section 5.2. Modulos del software de los PLCs 37

H3

L3

H2

L2

H1

L1

H0

L0

3

4

2

1

0

5

7

8

9

6

Planta 0

Planta 1

Planta 2

Planta 3

Figura 5.5: Asignacion de la posicion en funcion de los sensores activados

0 cuando en realidad esta acercandose a la planta 1. Para arreglar este error y que encuanto se detecte uno de los sensores de la planta, se sepa que esta llegando a la plantaen cuestion, hay que restar 1 al valor de la posicion (posicion + 1)/3. Esta correccion serealiza en la monitorizacion del proceso para poder mostrar por la pantalla, la planta enla que se encuentra la cabina incluso en las posiciones proximas.

Cabe destacar que el prototipo no tiene sensores de fin de carrera, por lo que, paralas posiciones 0 y 9 de la Figura 5.5 no se emplean los dos sensores de la planta comoen la plantas intermedias, sino el de abajo y el de arriba respectivamente de cada planta.Con esto se consigue que a pesar de que la posicion fısica de los sensores en el prototipono sea exacta, las cabinas no van a bajar ni subir mas de estas posiciones evitandofuturos problemas.

Localizacion LenguajeAscensorC Tarea Start en la seccion PosicionAscensor Ladder

AscensorAB Bloque de funcion llamada PosicionAscensor Texto EstructuradoLlamado desde: Tarea Start seccion Posicion Ladder

Tarea Start seccion Posicion Ladder

Tabla 5.2: Localizacion y lenguaje de la posicion de las cabinas

Como se ve en la Tabla 5.2, en el ascensorAB se ha introducido el codigo en un bloquede funcion porque es una parte del codigo que se repite en las dos cabinas. Tambien hayque remarcar que uno esta en Ladder mientras que el otro en Texto Estructurado. Esto

38 Chapter 5. Programacion

se debe a que se necesito liberar espacio en el ascensorC y se empleo este metodo quese ha detallado en la seccion 5.3.

Para que la posicion cambie, la cabina ha de moverse por el hueco del ascensor. Estemovimiento se realiza gracias al motor situado en la parte mas alta cuyo movimientoviene regido por el siguiente bloque.

5.2.2. Motor

Se parte del programa que se encarga de dar las ordenes necesarias al motor paraque realice el movimiento. Como se ha explicado en el capıtulo 3 la velocidad del motorse modifica a traves del modulo Mad42 variando el voltaje que recibe el motor de -10 Va +10 V. Para ello hay que dar valores a la salida CIO 2002 (para el caso de la cabina A yC) y a la CIO 2001 (para la cabina B) siguiendo la grafica 3.3. Algunos valores extraıdosde la grafica son los siguientes:

Valor Voltaje salida Direccion Velocidad2000 10 V � maxima1000 5 V ↑ mınima64536 -5 V ↓ mınima63536 -10 V � maxima

Tabla 5.3: Relaciones entre los posibles valores dados al motor, los voltajes que produceny las velocidades que generan

El valor que va recibiendo en cada situacion la variable de la velocidad esta gober-nada por otra variable llamada direccion motor, que puede tomar los valores −1, 0 y 1produciendo lo que se traduce en bajada, paro y subida respectivamente. Para explicarla forma de actuar, que se puede ver en la Figura 5.6, se supondra que el motor seencuentra en reposo, es decir que la direccion del motor es 0 y la velocidad de salida es0 y que se le va a dar la orden de subir (−1) y posteriormente la de parar (de nuevo 0).Estando el motor en reposo, llega la orden de subir por lo que la variable de la velocidadcambia de 0 a 1000 (la velocidad mınima es de 5 V, porque para tensiones menores elmotor no se mueve) y cada vez que recibe un pulso va aumentando su valor de 10 en 10hasta un maximo de 2000, consiguiendo que la velocidad vaya aumentando linealmentecon el tiempo.

Es posible cambiar el lapso de tiempo en el que se envıan los pulsos influyendo deesta forma en la velocidad de aceleracion y desaceleracion de la cabina. Para ello, sedispone de una variable llamada aceleracion en la que se puede introducir un valorentre 2 y 100 que indica el numero de ciclos que tienen que pasar entre cada envıo depulsos. De este modo, como la diferencia entre la mınima y la maxima velocidad quealcanza la variable del motor es de 1000 unidades que van aumentando de 10 en 10(aumenta 100 veces), con la variable aceleracion y sabiendo que un ciclo son 10 ms, sepuede conocer el tiempo que tarda en acelerar la cabina mediante la ecuacion 5.1. Porconsiguiente, como el mınimo valor que puede tomar la aceleracion es de 2, el mınimotiempo que puede tardar el motor en pasar gradualmente de 5 V a 10 V serıa de 2000ms. Como se aprecia en el anterior ejemplo, coinciden los segundos que tarda en acelerar

Section 5.2. Modulos del software de los PLCs 39

Quieto

Acelera hacia arriba

Acelera hacia abajo

Sube

Dirección motor = 1

Desacelera hacia arriba

Minima velocidad subiendo

Baja

Desacelera hacia abajo

Minima velocidad bajando

Dirección_motor = 0

Máxima velocidad

Mínima velocidad

Dirección motor = -1

Llegada a una planta

Figura 5.6: Grafcet que sigue el movimiento del motor

con la variable aceleracion, por lo que se puede afirmar que la variable aceleracion es elnumero de segundos que tarda el motor en pasar de mınima a maxima velocidad y todoello dentro del rango de 2 a 100 segundos.

Tiempo en acelerar = 100 · aceleracion · 10ms (5.1)

Prosiguiendo con la accion de subir que estaba realizando la cabina, cuando seacerca a la planta de destino recibe la orden de detenerse (direccion motor = 0) desdeotra parte del codigo, explicado mas adelante (ver 5.2.4). A pesar de la orden, la cabinano se para instantaneamente, sino que frena de forma gradual hasta alcanzar los 5 V(velocidad = 1000) llega a una planta y se detiene. Esta desaceleracion esta regida por lamisma variable que la aceleracion, por lo que la pendiente sera la misma pero de signoopuesto.

Al modificar la velocidad de la cabina se consigue que, cuando se encuentra viajandode una planta a otra, vaya a la maxima velocidad posible (10 V), pero que conforme seacerca a la planta vaya a la velocidad mınima para que la posterior parada en la plantasea lo mas exacta posible. Puesto que estos cambios bruscos en la velocidad de la cabinaharıan el viaje muy molesto, se ha implementado dicha aceleracion y desaceleracionde la cabina pudiendo cambiar su pendiente con el fin de que se pueda adaptar adiferentes motores y situaciones. De todos modos, hay que tener cuidado con la variableaceleracion, puesto que si se le da un valor muy alto, aparte de que tardarıa mucho en

40 Chapter 5. Programacion

comenzar a subir a maxima velocidad, no le darıa tiempo a desacelerar por completolo que provocarıa una frenada muy brusca haciendo el viaje mas incomodo y la paradamenos exacta.

10 V

5 V

0 V Salida del piso

DesaceleraciónAceleración

Vo

ltaj

e s

alid

a

Uno de los sensores del piso de destino activo

Llegada al piso de destino

Figura 5.7: Valores que toma la variable de la velocidad en la subida

Hay que destacar que mientras se encuentra realizando la maniobra de subida o debajada, tiene un mecanismo de seguridad para que, aunque cambie la orden de subir abajar o al reves sin haberse detenido antes la cabina, no cambie su direccion. Tambien,igual que en la parte de la posicion, en el ascensorAB se utiliza dentro de un bloque defunciones porque es empleado por las dos cabinas.

Localizacion LenguajeAscensorC Tarea GeneralAscensorC en la seccion Motor Texto Estructurado

AscensorAB Bloque de funcion llamada motor Texto EstructuradoLlamado desde: Tarea AutomaticoA seccion1 Ladder

Tarea AutomaticoB seccion1 Ladder

Tabla 5.4: Localizacion y lenguaje del control del motor

5.2.3. Apertura y cierre de puertas

Todos los ascensores de hoy en dıa, por seguridad para el usuario que se monta en lacabina, tienen implementado un mecanismo que abre y cierra unas puertas correderas.Se ha querido implementar este dispositivo en los prototipos, pero ante la falta depuertas a controlar fısicamente, se ha visto en la necesidad de simular la existenciade estas compuertas. Fısicamente solo se puede apreciar un led del PLC (uno por cadacabina) que se enciende cuando se supone que la puerta deberıa estar abierta, pero enel capıtulo 6 se vera que se puede apreciar el movimiento en la pantalla del ordenador.

Como se muestra en la Figura 5.8, este algoritmo funciona en los tres modos e inclusocuando esta en parada de emergencia de formas distintas descritas a continuacion:

• Cuando se activa la parada de emergencia, si estaba la puerta cerrada se mantiene

Section 5.2. Modulos del software de los PLCs 41

Orden abrir puerta

Puerta completamente

abierta

Espera 10 sego

Botón cerrar

Botón cerrar

Puerta cerrada

Abrir puertaPuerta abierta

Cerrar puerta

Quieto

Cerrar puertaAbrir puertaCerrar puertaAbrir puertaAbrir puerta

Figura 5.8: Grafcet que sigue el movimiento de la puerta de cada cabina

igual, pero si se encontraba un poco abierta se termina de abrir y se mantieneabierta. Se ha realizado ası pensando en que si estaba un poco abierta se suponeque la cabina estarıa en una planta y de esta forma pueden salir los pasajeros,pero si estaba cerrada lo mas probable es que estuviera entre plantas y tendrıanque esperar a que llegaran los bomberos para sacarlos.

• En el modo bomberos, abre las puertas cuando se le ha dado la orden de abrirque es cuando la cabina se encuentra en la planta baja, permitiendo de esta formadejar salir a los pasajeros.

• En el modo de mantenimiento, para que el tecnico pueda revisar con facilidad elhueco del ascensor y de esta forma poder realizar reparaciones, puede, mediantelos botones de abrir y cerrar del interior de la cabina (que en este caso solo sepueden manejar desde el SCADA), abrir o cerrar la puerta sin necesidad de queesta llegue al final del recorrido. Obviamente si llega al final del recorrido, aunqueel tecnico continue pulsando cualquiera de los botones no se desplazara mas lapuerta.

• Mientras se encuentra en el modo automatico, su funcionamiento es igual acualquier otro ascensor. Comenzando con la puerta cerrada (si estaba abierta, nohay mas que pulsar cualquier boton para cerrarla), la accion se inicia cuando recibeel comando de abrir las puertas del algoritmo que da las ordenes en funcion delas llamadas que se realicen al ascensor. Al recibir la orden, la variable cnt velcomienza a incrementar su valor de 2 en 2 en cada ciclo de scan que pasa, hastaun maximo marcado por la variable vel puertas que ha tenido que ser previamenteasignado. Cuando la puerta se encuentra completamente abierta, espera un tiempotambien fijado con anterioridad en la variable tiempo puertas. Durante este periodode espera, se puede proceder a cerrar la puerta antes de que termine la demorapulsando el boton de cerrar del interior de la cabina. Una vez terminado el tiempoo pulsado el boton de cerrar, las puertas comienzan a cerrarse, es decir, la variablecnt vel comienza a disminuir su valor pero en este caso de 1 en 1. Si en mitad de

42 Chapter 5. Programacion

este proceso se pulsa el boton de abrir, se detiene y las puertas comienzan a abrirse.Cuando ha terminado el proceso, si el ascensor se encuentra en una planta y sepulsa desde dentro de la cabina el boton de abrir, la puerta comenzara de nuevo elproceso descrito con anterioridad.

Hay que remarcar que el tiempo que tarda en abrirse o cerrarse la puerta y eltiempo que se mantiene abierta, son tiempos que pueden ser modificados durantela maniobra, pero que siempre han de tener un valor entre 2 y 10000 para el correctofuncionamiento. Estas dos variables fijan el numero de ciclos que pasan. De estemodo, si se quiere que tarde un segundo en esperar a cerrar las puertas, en laaccion de cerrar las puertas habra que precisar un valor de 100 a ambas variables.Hay que tener tambien en consideracion que la apertura se realiza a doble velocidadque el cierre, por lo que si tarda 1 segundo en cerrarse, tardara 0,5 segundos enabrirse.

Localizacion LenguajeAscensorC Tarea GeneralAscensorC en la seccion

AperturaPuertasTexto Estructurado

AscensorAB Bloque de funcion llamadaAperturaPuertas

Texto Estructurado

Llamado desde: Tarea Start seccion Apertura puertas LadderTarea Start seccion Apertura puertas Ladder

Tabla 5.5: Localizacion y lenguaje de la apertura y cierre de las puertas

5.2.4. Respuesta ante llamadas

Antes de comenzar con toda la logica que hay detras del movimiento de la cabina,hay que conocer algunos datos: las ordenes de hacia donde tiene que ir la cabina seguardan en un vector de cuatro posiciones llamado ascensor junto con la letra dela cabina que este moviendo. En este vector, la posicion 0 corresponde a la planta0 y ası sucesivamente hasta 3, siendo cada uno de estas posiciones un boleano quecambia de 0 a 1 cuando tiene que ir a ese piso. Ademas, las botoneras internas influyendirectamente sobre este vector, mientras que las botoneras exteriores han de enviarla orden a la cabina adecuada (se ve en el apartado 5.2.5) empleando para ello otrovector igual al anterior llamado ascensorAext (variando la A por B y C para las otras doscabinas).

Se ha creado un algoritmo (llamado logica motor) que se encarga de interpretar losdestinos a los que tiene que ir, es decir, analizar los vectores ascensor y ascensorextanteriormente comentados y envıa la orden al algoritmo del motor indicandole ladireccion a seguir (mediante la variable direccion motor). Las ordenes que envıa segunlas llamadas realizadas desde la botonera interior son las de ir a los pisos indicadose ir parandose en todas las plantas con llamadas respetando la direccion que lleva lacabina. Por ejemplo, si el ascensor se encuentra en la planta 1 y se recibe la ordendesde la botonera interior de subir a la planta 2, el algoritmo envıa la orden de subiry cuando se encuentra proximo a la planta 2 envıa la orden de parar. No es necesario

Section 5.2. Modulos del software de los PLCs 43

enviar ninguna orden mas al motor cuando ha llegado a la planta, puesto que de eso seencarga el algoritmo del motor; pero sı que es necesario enviar la orden de abrir la puertaal algoritmo de apertura de puertas explicado en 5.2.3. Este movimiento descrito es muysimple, pero si hay varias ordenes desde la cabina, el algoritmo de logica motor atiendea todas ellas teniendo en cuenta la direccion en la que se movıa. Por ejemplo, volviendoa la situacion de que la cabina se encuentra en reposo en la planta 1, se realizan variasllamadas. Primero se llama desde la planta 2 y cuando se esta moviendo la cabina, serealiza la llamada desde la planta 0 y despues desde la 3. El movimiento que realizara elascensor es el de subir desde la planta 1 al nivel 2, abrir la puerta, esperar a que secierre la puerta y como estaba subiendo, termina de subir al piso 3 aunque se hayallamado antes a la planta 0. Una vez atendida la llamada de la altura 3, al no haber masllamadas superiores (en el caso de que hubiese mas plantas), bajarıa a la planta 0. Simientras esta bajando al nivel 0, se produce otra llamada que este en un piso inferiora la posicion en la que se encuentra la cabina en ese momento, esta se detendra enesos pisos antes de llegar a la planta baja, siempre respetando la direccion en la que semueve.

Más pisos por arriba Más pisos por abajoNo más pisos por arriba No más pisos por abajo

QuietoDirección=0

Abrir puertaBajar

Dirección=-1Subir

Dirección=1

FrenarDirección=0

FrenarDirección=0

Abrir puerta Abrir puerta

Figura 5.9: Grafcet que da las ordenes al motor en funcion de los vectores ascensor yascensorext

En el caso de que las llamadas sean recibidas desde el exterior de la cabina, lasordenes que envıa el algoritmo son un poco diferentes a las de las llamadas internas.Esto se debe a que como se ha supuesto que este prototipo irıa en un bloque residencial,se considera que cuando un usuario llama a la cabina desde el exterior, por lo generaleste desea bajar a la planta baja. Tomando el ejemplo anterior, la cabina comenzara asubir a la planta 2 pero no se detendra ahı sino que subira hasta el nivel 3 para recoger

44 Chapter 5. Programacion

al usuario que desea bajar y posteriormente bajara al piso 2. De este modo, siempreque se monte una persona en la cabina desde una planta que no sea la 0, esta seencontrara bajando. En la Figura 5.9 se pueden ver estas dos formas de actuacion delalgoritmo de logica motor.

En los dos casos, ya sea atendiendo a llamadas interiores o a las exteriores, la cabinapermanecera parada mientras la puerta se encuentre abierta. Al mismo tiempo que seenvıa la accion de abrir las puertas, ser restablece la posicion de los vectores que indicanhacia donde ha de ir la cabina (ascensor y ascensorext). De esta manera, si se produceuna llamada desde la misma planta en la que se encuentra el ascensor con la puertaabierta, se realizara la misma accion que si se pulsara el boton para abrir la puerta. Sise encontrase la puerta cerrada y se llamase a la cabina desde la misma planta en laque se localiza, la cabina no se movera y la puerta se abrira.

Localizacion LenguajeAscensorC Tarea GeneralAscensorC en la seccion ControlMotor Texto Estructurado

AscensorAB Bloque de funcion llamada ControlMotor Texto EstructuradoLlamado desde: Tarea AutomaticoA seccion1 Ladder

Tarea AutomaticoB seccion1 Ladder

Tabla 5.6: Localizacion y lenguaje de la logica empleada para atender las llamadas

5.2.5. Logica empleada en la asignacion de las llamadas exteriores a lacabina

Al contrario de las llamadas realizadas desde el interior de la cabina que sondirectamente asignadas a los vectores para su posterior interpretacion en el algoritmo dela logica del motor (explicado en la seccion anterior), para las llamadas que se realizandesde los botones exteriores a la cabina, hay que asignar la cabina que va a realizar dichaorden. El algoritmo logica externa es el encargado de realizar esta labor de asignacion.En su programacion se tuvo en cuenta el principio de control colectivo (visto en elapartado 2.3.1), es decir, que la llamada sera atendida por el ascensor que se encuentremas cerca en ese momento. Al funcionar el PLC del ascensorC como maestro y el otrocomo esclavo cuando estan conectados, sus programas son diferentes:

• El algoritmo de la logica externa del ascensorAB solo funciona cuando no estanconectados los dos PLCs, haciendo que funcionen las dos cabinas como si noexistieran mas. Para ello, se tiene en cuenta el estado en el que se encuentranlas cabinas y la distancia desde la posicion de cada cabina hasta la planta dela llamada. En primer lugar se evalua el estado dando prioridad a la cabina quese encuentra en reposo. Si no hay ninguna cabina en reposo, se calculan todoslos casos mostrados en la Figura 5.10, que son todas las posiciones posibles quepueden tener las cabinas respecto a la llamada. Una vez determinado el caso en elque se encuentran las cabinas, se calcula cual de ellas tiene la mınima distanciapara asignarle la llamada, teniendo en cuenta que tiene prioridad la cabina A sobrela B en caso de que las distancias sean iguales.

Section 5.2. Modulos del software de los PLCs 45

La comprobacion de la situacion en que esta es muy importante porque, porejemplo, en el primer caso de la Figura 5.10 en que la llamada se encuentra pordebajo de las dos cabinas: si las dos se encuentran bajando se le asigna la llamadaa la que se encuentre mas cerca. Pero por el contrario, si se encuentran las doscabinas subiendo, la llamada no es asignada a ninguna de las cabinas hasta queuna de ellas no cambie su estado a reposo o bajando.

A B A

B A

B

A B

Piso llamada

Figura 5.10: Posibles posiciones de las cabinas A y B en funcion de la planta de lallamada

• En el ascensorC, el algoritmo de control de la logica externa actua de formacontinua, pero la asignacion de las llamadas se realiza de manera diferente enfuncion de si estan conectados o no los PLCs. Cuando no hay conexion entre losascensores funciona igual que la botonera interna, es decir, pasan directamentelas llamadas externas al ascensorC puesto que solo se encuentra el funcionando.En cambio, cuando estan todos conectados, el algoritmo procede igual que el delascensorAB (cuando no tiene conexion) pero en vez de tener dos cabinas a las queasignar las llamadas, se tienen tres. El numero de casos a tener en cuenta aumentaal doble, de 4 a 8 (como se ve en la Figura 5.11), dando como resultado que elcodigo ocupa mas del doble. Al ser el espacio disponible para la programacion de losPLCs fijo, no se ha podido incluir el algoritmo completo del ascensorC, dejando unaparte en la tarea LogicaExternaPorIncluir que no tiene asignacion para que no seatransferido al PLC. La parte excluida del programa es la referente a la asignacionde una llamada a una cabina cuando se encuentran las tres en funcionamiento,que simplemente espera a que una de las tres cabinas se encuentre libre paradesignarle la llamada. Solo dicha parte ocupa el 40 % del espacio disponible enel PLC. En este caso, en que son tres ascensores en funcionamiento para cuatroplantas, apenas se nota la ausencia de dicha parte del codigo.

A B A B A

B

A

B

Piso llamada

C

C

C

C

A B

C

A

B C

A

B

C A B C

Figura 5.11: Posibles posiciones de las cabinas A, B y C en funcion de la planta de lallamada

En los dos algoritmos de la logica externa, se han empleado pequenas partes decodigo que asignan la orden a la cabina cuya distancia sea la mınima respecto a la

46 Chapter 5. Programacion

planta de la llamada. Estos trozos de codigo actuan cuando se activa su variable enfuncion del caso que se necesite (ya sea calcular la mınima distancia entre la cabina Ay B o entre la B y C) y desactivandose inmediatamente despues de haberse ejecutado.Tambien, se ha implementado un mecanismo para excluir las cabinas que se encuentrenen modo mantenimiento de la logica externa, para no perder ninguna llamada externamientras se realizan labores de mantenimiento en una de ellas. Para llevarlo a cabo, secambia el estado de la cabina cuando se encuentra en mantenimiento a −4 (puede sercualquier valor menos −1, 0 y 1) consiguiendo que no sepa identificar el estado en elque se encuentra la cabina. Este mecanismo no se ha incluido para el caso del modobomberos puesto que al activarse cambian todas las cabinas y no individualmente comosucede en el modo mantenimiento.

Para lograr el correcto funcionamiento de toda la programacion empleada en losascensores, los valores iniciales de las variables juegan un papel muy importante, por loque son aplicados en el primer ciclo scan. Un ejemplo de ello es la posicion de las cabinasque pueden haber sido movidas manualmente mientras el PLC estaba desactivado, porlo que el valor inicial de las cabinas es −4, un valor imposible de alcanzar, para indicarque no se conoce el valor de la posicion. Estos valores iniciales se vuelven a aplicarpara casi todas la variables cuando se cambia entre modos o se produce una paradade emergencia. Uno de los casos en que no se aplica es para la variable posicion,consiguiendo con ello que el PLC sepa en todo momento en que posicion se encuentra lacabina y por consiguiente, lo conozca el operario que supervisa el proceso.

Localizacion LenguajeAscensorC Tarea Start en la seccion Comunicaciones Ladder

Tabla 5.7: Localizacion y lenguaje de la posicion de las cabinas

5.2.6. Comunicaciones entre los PLCs

En el capıtulo 4 se han comentado las caracterısticas de la red Ethernet, pero no elcodigo realizado para llevar acabo esta tarea. Debido a las limitaciones de la capacidadde la memoria que tienen los PLCs (que se describiran mas adelante), se decidio queel ascensorC serıa el PLC maestro y el ascensorAB el esclavo. Esto influye a la hora deasignar las variables que se van a enviar y recibir desde el ascensorC a traves de lasfunciones send y recv. Como estas solo envıan un grupo de variables consecutivas, serealizaron dos grupos de variables de 20 palabras (16 bits cada palabra). Las variablesque se reciben en el ascensorC del ascensorAB son del registro H0 al H19 y las que seenvıan al ascensorAB del H20 al H39. Se han asignado al area retentiva porque entretodas las variables se incluyen algunas como la parada de emergencia, ya que se deseamantener el valor despues de algun fallo. Como lo que se pretende es solo emplear unainstruccion de envıo y de recepcion de datos, todas las demas variables se convirtieronen retentivas (el resto de variables no importa que sean retentivas o no).

Ya sabemos que areas de memoria se quiere enviar y recibir, por lo que solo quedaconfigurar las funciones send y recv. Para ello, siguiendo los pasos del manual deOMRON, hay que especificar en unos registros consecutivos cualquiera (elegidos paraesto los registros de D0 a D4) los siguientes datos:

Section 5.2. Modulos del software de los PLCs 47

• Longitud del mensaje a transmitir: 20 palabras como bien se ha comentado antes.

• Red de destino: en este caso esta configurada como la 2 (explicado en el capıtulo 4).

• Direccion del nodo de destino dentro de la red Ethernet, que en este caso es 2(explicado en el capıtulo 4).

• Se le exige una respuesta de envıo o recepcion bien realizados.

• El puerto logico usado en la transmision se establece en el puerto 4 (hay que elegiruno de los puertos comprendidos entre 0 y 7).

• No se van a realizar reintentos de reenviar los datos ante un fallo en la comuni-cacion porque al ser una comunicacion tan simple la probabilidad de producirsecolisiones es practicamente nula.

• El tiempo de supervision de la respuesta es el mınimo posible, es decir, 0,1 s.

Una vez establecida la conexion y visto su correcto funcionamiento, se comenzo conla programacion de los ascensores. Para que no coincidiera el envıo con la recepcion dedatos en un mismo ciclo de scan, se utilizo la variable interna de los PLCs de OMRON(un pulso de reloj de 0,02 s) encargada de activar y desactivar el envıo y la recepcion.De este modo, cada 0,04 segundos se habıa conseguido enviar y recibir correctamentela informacion. Al refrescarse tan rapido, se podrıa decir que las variables enviadas alascensorAB son una copia del ascensorC y al reves cuando se reciben. Esto quiere decirque las variables enviadas al ascensorAB solo pueden ser modificadas por el ascensorC,lo que produjo un fallo. El problema aparecio cuando se quiso emplear una mismavariable en ambos PLCs, la cual debıa activarse en el ascensorC y cuando cumplierasu funcion en el ascensorAB, desactivarse. En teorıa, simplemente hay que crear 2variables: una en el grupo de enviar y otra en el grupo de recibir. El ascensorC enviarıa laorden de activacion, el ascensorAB transmitirıa la que esta activada hasta que terminala accion que desactiva y al detectar el ascensorC el paso de 1 a 0, desactivarıa la orden.Lo que ocurrıa era que cuando el ascensorAB terminaba la orden que el ascensorC lehabıa encomendado y coincidıa con que el ascensorC se encontraba enviando datos, laorden se volvıa a repetir, por lo que por ejemplo se abrıan varias veces las puertas delascensor.

El problema se soluciono haciendo que la orden del ascensorC solo se envıe duranteun periodo corto de tiempo (concretamente 1 segundo despues de generarse la orden),reseteandose pasado ese tiempo. Ası el ascensorC envıa la orden al ascensorAB, este larecoge y actua sobre la variable que posteriormente recibe el ascensorC para avisar queha terminado la orden (Figura 5.12).

La programacion del envıo y recepcion de los datos realizado en Ladder, solo seencuentra en el PLC del ascensorC como se detalla en la tabla 5.8 para que no seproduzcan fallos en el envıo de los datos.

En definitiva, con la programacion realizada, finalmente el tiempo de envıo yrecepcion de datos se alarga aun mas de lo estipulado despues de los ensayos realizados(tarda un mınimo de 0,04 segundos en enviar y recibir toda la informacion). A pesarde todo, al finalizar el proyecto y realizar las pertinentes pruebas de comprobacion, se

48 Chapter 5. Programacion

Orden: 1

Después de 1 segundo Orden realizada

Generación de la orden

ascensorC ascensorAB

0

0 0

0

1

1 1

1 1

0 0

1 0

0 0

0

0

1 1

0

ascensorC ascensorAB

Generación orden en ascensorAB

ascensorC ascensorAB ascensorC ascensorAB ascensorC ascensorAB

Orden enviada y recibida

1 2

3 4 5

Figura 5.12: Comunicacion de datos que se modifican en ambos PLCs

Localizacion LenguajeAscensorC Tarea Start en la seccion Comunicaciones Ladder

Tabla 5.8: Localizacion y lenguaje de la programacion encargada de la comunicacion

puede seguir afirmando que la transmision que se realiza entre los 2 PLCs es en tiemporeal.

En cuanto a los problemas en la dimension del codigo y las diferentes formas deoptimizarlo, se pasan a describir en la siguiente seccion.

5.3. Optimizacion del espacio

La capacidad de almacenar el programa en los PLCs se mide en pasos. Estos sonmuy importantes ya que es necesario conocer el numero de pasos que el PLC necesitapara ejecutar una instruccion. Por ejemplo, para mover datos de una variable a otra(o darle un valor a una variable) se emplea la instruccion MOV que necesita 3 pasospara ser ejecutada; las condiciones (AND, OR, >= ,. . . ) emplean 4 pasos. . . El numeromaximo de pasos que admiten estos PLCs es de 6144 pasos cada uno. Teniendo encuenta que cuando se carga un programa vacıo sin nada de codigo comienza con 618pasos ocupados, quedan un total de 5526 pasos para uso del programador. Se ha vistoque el total de pasos que se pueden emplear no es muy grande, por lo que se han tenidoque estudiar posibles soluciones para la optimizacion del codigo programado para sacarel maximo partido a los PLCs.

Lo primero que se advirtio es que las variables ya tienen su espacio asignado desde elinicio, por lo tanto, no emplean pasos a la hora de crear variables. Esto se ha explicado

Section 5.3. Optimizacion del espacio 49

en el Capıtulo 3. Concretamente, se dispone de 511 registros en el area volatil W con16 bits cada registro y 1535 en el area retentiva H con 16 bits por registro. Esto quieredecir que el numero de variables que se pueden emplear no es un impedimento y hayque programar haciendo que las variables tengan mucho peso.

entrada1 salidaIF entrada1 AND NOT(entrada2) THEN salida:=TRUE;ELSE salida:=FALSE;END_IF;

entrada2

Salida:=entrada1 AND NOT(entrada2);

1

3

2

Figura 5.13: Ejemplo de diferencia de espacio entre Ladder y Texto Estructurado

Para realizar la misma accion, en lenguaje Ladder es mas optimizado ya que se acercamas al lenguaje maquina. El ejemplo mas sencillo en el que se puede ver este hecho esel de dos contactos en Ladder que activan una salida (Figura 5.13 1 ). Estos comandosocupan un total de 3 pasos para realizar la simple accion de activar y desactivar unasalida en funcion de las dos entradas. Realizando lo mismo en Texto Estructurado,la forma habitual de programar esta misma accion para un programador es como semuestra en la Figura 5.13 2 . Aplicando esta forma de escritura del codigo, se emplean36 pasos, pero si se tiene en cuenta que no se esta programando en “C”, se puede escribirlo mismo en un lenguaje mas cercano al de maquina resultando lo que se puede ver enla Figura 5.13 3 en el que se emplean 18 pasos de extension. Por lo tanto, es mejorprogramar en Ladder y en el caso de que se desee usar Texto Estructurado, hay quetener en mente que se esta programando un PLC para escribir el codigo de la forma maseficiente.

Otro caso es el de los contadores y timers: en Ladder existe una funcion internaque activa unos contadores internos evitando el empleo de muchos pasos, pero en TextoEstructurado no se pueden emplear para esta version de los PLCs (solo se puede emplearen los PLCs CJ2M ). La diferencia de pasos es considerable, ya que en Ladder se emplean4 pasos mientras que en Texto Estructurado se utilizan 43 pasos para la misma accioncomo se muestra en la imagen 5.14 (uno cuenta ascendente y el otro descendente).

cnt:=cnt+1;IF cnt=1000 THEN cnt:=0;END_IF;

T0000

TIM

0000

#100

Figura 5.14: Ejemplo de diferencia de espacio entre contadores Ladder y Texto Estruc-turado

Esto lleva a la conclusion de que es mejor emplear los timer y contadores en Ladder,

50 Chapter 5. Programacion

pero no en todos los casos, puesto que se puede querer conocer el valor que tiene en todomomento el timer o el contador para emplearlo en otra parte del programa. En el casode Texto Estructurado el contador se realizarıa como el de la Figura 5.14 y los valoresque va tomando cnt se puede emplear en otro lado del programa. En cambio en Ladder,a pesar de tener una funcion interna que realiza la misma accion, solo se puede conocercuando termina de contar. Como consecuencia, si se desea conocer el valor del contadoro del temporizador programandolo en Ladder habrıa que realizar un algoritmo parecidoal de Texto Estructurado, es decir, sin usar las funciones internas del PLC.

Como bien se acaba de demostrar, al hacer el codigo en Ladder se emplean menospasos, pero como se desea emplear al maximo el Texto Estructurado por la facilidad decomprension que da a las personas acostumbradas a la programacion, se han tenidoque buscar diferentes tecnicas para optimizar el codigo.

Cuando se emplean las condiciones IF para ver si una variable boleana esta activadao desactivada, no hay que emplear la condicion de igualdad. Esto quiere decir, que siqueremos arrancar una parte del codigo cuando una variable boleana se active, no hayque escribir la parte =TRUE porque al realizar la comparacion emplea 4 pasos extra queno tendrıa por que realizarlos. A la derecha de 5.9 se ve la forma mas eficiente de escribirlo mismo.

IF condicion=TRUE THEN IF condicion THEN. . . . . .

END IF; END IF;

Tabla 5.9: Ahorro de pasos eliminando la condicion =TRUE

Si por el contrario se quiere realizar cuando la variable no este activada, en vez deigualar la expresion a =FALSE, se sustituye por un NOT.

IF condicion=FALSE THEN IF NOT(condicion) THEN. . . . . .

END IF; END IF;

Tabla 5.10: Ahorro de pasos eliminando la condicion =FALSE

Conforme se iba escribiendo el codigo, se vio que habıa muchas partes que o bien serepetıan o bien se empleaba el mismo codigo para diferentes variables. En funcion de losrequerimientos se han usado unos u otros:

• Al operar uno de los PLCs en dos cabinas al mismo tiempo, hay muchas partesdel codigo que se repiten pero con diferentes variables en funcion de la cabina quese este manejando. Para este caso es interesante usar la opcion que ofrece CX-Programmer de los bloques de funciones. En ellos se introduce, ya sea en TextoEstructurado o en Ladder, el algoritmo encargado del movimiento del motor porejemplo, y se indican unas entradas y salidas. Posteriormente, hay que darles losvalores correspondientes a las distintas cabinas para que funcionen en cada casopor separado. El problema es que hay que llamar a la funcion, para darle estosvalores, y solo se puede realizar desde Ladder. Se podrıa decir que de este modo

Section 5.3. Optimizacion del espacio 51

se restringe su uso, pero no es del todo cierto, porque desde Ladder le indicas lasentradas y salidas que ha de tener dicha funcion con variables globales que masadelante pueden ser usadas en Texto Estructurado.

Como en todo, hay que tener cuidado de como se usa. Un ejemplo serıa la cantidadde variables que se ponen de entrada y salida de la funcion, puesto que cuantasmas sean, mas pasos emplearan llegando a no ser eficaz su uso. Otro motivopara tener cuidado es que es eficaz cuando se usa varias veces, es decir, si sehan programado diferentes bloques de funciones en el ascensorAB, lo logico esemplear lo mismo en el ascensorC puesto que su funcionamiento es muy similar,pero habrıa que sacar el codigo de los bloques de funciones porque se estarıanderrochando pasos.

• En algunos casos, cierta parte del codigo se repite aleatoriamente por el programa,pero no necesita variables de entrada y de salida para funcionar correctamente.Para estos casos se ha empleado un sistema de llamada basado en la activacion deuna variable cada vez que se necesite ejecutar esa parte del codigo, desactivandoseuna vez se termina de ejecutar. Este metodo es muy empleado en la logica de lasllamadas exteriores 5.2.5, pero tambien dentro del bloque de funcion de control delmotor.

En cuanto a estas llamadas a trozos de programa, se puede pensar que tambiense puede hacer con las subrutinas o interrupciones. Pero en ambos casos, solo sepueden emplear en Ladder limitando de este modo su empleo. Estas funcionarıancomo si se copiara el codigo de la subrutina en la posicion que se ha llamadosiguiendo el orden secuencial. Estas subrutinas o interrupciones pueden serllamadas desde varios sitios del codigo.

Siguiendo con la busqueda para utilizar los mınimos pasos posibles, el CX-Programmer ofrece el empleo de diferentes tareas que pueden ser activadas o desactiva-das con el fin de que ciertas partes del codigo funcionen cuando se den las condicionesnecesarias. Tambien se puede emplear para separar el codigo en partes y que quede masordenado, pero es una practica no muy acertada. Esto se debe a que cada vez que seanade una tarea en Ladder, esta ocupa 41 pasos y en el caso del Texto Estructurado,ocupa 37 pasos. Por lo que, a pesar de que quede todo mas bonito en diferentes tareas,principalmente en el caso del ascensorC, es mas interesante incluir todo el codigo enuna unica tarea en el que se incluyan todos los bloques de funciones y todo el codigoempleado para conseguir el movimiento. En la realidad no es ası, porque parte delcodigo se ha realizado en Texto Estructurado, pero otra parte esta en Ladder para liberarespacio. Por ejemplo, en el caso de cambiar entre modos de funcionamiento (explicadoen 5.1) que primero se realizo en Texto Estructurado pero posteriormente se paso aLadder para conseguir mas espacio.

A pesar de todos estos intentos de conseguir mas espacio, finalmente no seconsiguio incluir todo el codigo necesario para el perfecto funcionamiento de las trescabinas. No se ha podido incluir una parte de la logica empleada en la llamadas externasdel ascensorC, que actua como PLC maestro, encargada de asignar la llamada a unade las tres cabinas cuando se encuentran las tres funcionando. Para situar mejor elproblema en cuestion, el codigo necesario en las cabinas A y B para la logica externa

52 Chapter 5. Programacion

cuando funcionan separadas de la C, emplea 1137 pasos, mientras que esta mismaparte del codigo en el PLC del ascensor C que se encarga de las tres cabinas, utiliza3928 pasos. De estos 3928 pasos, 2500 son de la parte en el que se encuentran las trescabinas funcionando. Quitando esta parte y realizando todos las optimizaciones quefueron posibles, se llego a obtener un espacio de 1996 pasos, por lo que faltarıan 504pasos para poder incluir todo el codigo completo, cosa que no se consiguio.

A partir del programa incluido en ambos PLCs y descrito anteriormente, se consigueel funcionamiento de las 3 cabinas que puede ser monitorizado mediante la conexiondel ascensorC al ordenador por el puerto serie. Para ello se ha empleado el programaCX-Supervisor como se pasa a describir en el apartado siguiente.

Capıtulo 6

SCADA

El proceso de supervision y control del movimiento de los ascensores se realizamediante el SCADA (Supervisory Control And Data Adquisition) elaborado en elprograma CX-Supervisor. El software es ejecutado en un ordenador conectado a los PLCsmediante el puerto serie, como se ve en la imagen 3.6. Se podrıan haber realizado todaslas conexiones por Ethernet, pero para ello habrıa sido necesario un switch que dirigierael trafico. Como no es ası, todas las variables que se quieren monitorizar del ascensorAB,son transferidas al PLC del ascensorC puesto que es el que se conecta posteriormente alordenador.

En la interfaz grafica desarrollada, mientras los ascensores se encuentran en modoautomatico, se puede ver el movimiento vertical de las cabinas a traves de su respectivohueco. Este movimiento no se ve igual de fluido que en la realidad, ya que depende dela activacion de los sensores hall que indican la posicion en la que se encuentra. Es porello que el movimiento de las cabinas en el SCADA va con un poco de retraso, lo quehace aparentar un error al abrirse las puertas de las cabinas cuando llegan a una plantacon llamada. Esto se debe a que el movimiento de la cabina no comienza hasta que nose detecta un cambio en los sensores, por lo que al llegar a una planta comienza a abrirla puerta a la vez que realiza la ultima transicion hasta el piso.

Como se ha comentado en el capıtulo anterior, el movimiento que realizan las puertasde las cabinas es virtual, es decir, el prototipo no tiene puertas fısicas que mover porlo que se ha simulado su apertura y cierre. En el SCADA se interpreta la variable de lavelocidad de apertura y cierre de las puertas para reproducir el desplazamiento de estas.Al ser dicha variable modificable, el estado en el que se encuentra la puerta se calculadividiendo la velocidad de la puerta actual entre la variable modificable.

En el caso del modo automatico, las puertas se abren cuando se pulsa el boton deapertura de puertas o cuando una cabina llega a un piso con llamada. Las llamadas a losascensores se pueden realizar mediante las botoneras disponibles en la interfaz grafica.Para las llamadas desde el interior de la cabina se emplean los interruptores colocadosa la izquierda del esbozo de los ascensores, mientras que para las llamadas realizadasdesde el exterior de las cabinas (en las plantas) se encuentran entre los huecos de losascensores. Se pueden emplear indistintamente las botoneras entre los ascensores A yB o entre B y C. La asignacion de las llamadas a las diferentes plantas y a las distintascabinas se revela mediante la iluminacion en verde de la casilla correspondiente (como

53

54 Chapter 6. SCADA

Figura 6.1: SCADA del movimiento de las tres cabinas automaticamente

se puede apreciar en la Figura 6.1).

Cuando se quieren realizar tareas de mantenimiento en alguno de los ascensores, hayque activar el modo mantenimiento. Pulsando el boton mantenimiento en la parte supe-rior izquierda de la pantalla, se entra en un menu donde se puede activar o desactivar elmodo mantenimiento de cada ascensor. Al activarse el modo mantenimiento, los botonesinteriores cambian su actividad para que el operario pueda moverse verticalmente porel hueco del ascensor sin necesidad de ir de planta en planta. Es por ello que, paraevitar confusiones al trabajador, las botoneras interiores de la cabina desaparecen yaparecen en la ventana emergente otros botones indicando las velocidades con las quese movera la cabina al ser pulsados. En la ventana principal aparece un boton cuyafuncion es la de avisar que una cabina se encuentra en modo mantenimiento y poderdesactivarlo sin necesidad de entrar en la ventana de mantenimiento.

Si se produce un incendio en el edificio, por motivos de seguridad los vecinos nodeben emplear el ascensor. En el caso de querer activar el modo bomberos, no hay masque pulsar el boton bomberos y las tres cabinas comenzaran su descenso a la plantabaja, abriendo las puertas al llegar a ella. Cuando se sale del modo de bomberos, comomedida de seguridad se activa la seta de emergencia para poder recolocarlos en caso deque sea necesario antes de volver al modo automatico.

El prototipo del laboratorio no dispone del mecanismo fısico necesario para realizaruna parada de emergencia, por lo que se ha implementado en el SCADA. Este seencuentra en la parte superior derecha y esta compuesto por una seta de emergencia

55

Figura 6.2: Cabinas B y C en modo mantenimiento

que se queda bloqueada al pulsarla, siendo necesaria una segunda pulsacion paradesbloquearla. A su izquierda se encuentra el boton de reset, que elimina la emergenciay reinicia el proceso. Una luz debajo del boton de reset indica en todo momento el estadode la emergencia (activada o desactivada). La seta de emergencia se pulsa al producirseun mal funcionamiento de los ascensores por lo que, cuando se quita la emergencia,se cambian los modos de los ascensores a mantenimiento. Esto se hace para poderposicionar las cabinas correctamente antes de volver al modo automatico.

Es importante (pero no imprescindible) que se este monitorizando el procesocontinuamente para que la maniobra funcione de forma segura. Esto se debe a queen el SCADA se detectan los funcionamientos incorrectos de las cabinas durante sufuncionamiento en el modo automatico. Concretamente, se comprueba que la cabina nose encuentre desplazandose con las puertas abiertas y que la velocidad maxima con laque se mueven las cabinas no supere cierto valor de seguridad.

Al producirse una de estas llamadas se abre una ventana emergente indicando laincidencia ocurrida detallando la hora y el dıa. Pinchando sobre el boton alarmas seaccede a otra ventana emergente desde la que se puede ver en todo momento el estadode las alarmas, pudiendo desactivarlas si se considera que ya no deberıa estar activada.

Puede aparecer otra posible alarma cuando las variables controlables se encuentranfuera del rango permitido. Son tres las variables que se pueden modificar y seencuentran en otra ventana emergente que se abre a traves del boton variables. Susvalores pueden ser cambiados o bien pinchando sobre el valor e introduciendo el valor

56 Chapter 6. SCADA

Figura 6.3: SCADA del estado de las alarmas

deseado o bien empleando los botones de mas y menos situados a su derecha queaumenta o disminuye en una unidad su valor.

En el caso de las alarmas debidas al movimiento de la cabina con la puerta abierta,se activa automaticamente la seta de emergencia. Para el resto de alarmas no sucedeesto, debido a que no se han considerado tan peligrosas.

Una ultima ventana emergente que se puede abrir es la de los sensores. En ella sepueden visualizar todos los sensores magneticos, los botones de las cabinas activadosy los valores que va tomando la velocidad de la cabina con su respectivo valor envoltaje resultante. Esta ventana es totalmente visual con el fin de obtener la maximainformacion del proceso que se esta llevando a cabo.

57

Figura 6.4: SCADA de las variables controlables de la maniobra

Figura 6.5: SCADA de los sensores que se encuentran funcionando en ese momento

58 Chapter 6. SCADA

Capıtulo 7

Testeo y uso de automata desimulacion

Antes de emplear el prototipo para ver el funcionamiento final de los ascensores,se empleo CX-Designer para comprobar que se habıa realizado bien la maniobra, enconcreto, verificar que estaba bien el codigo de los PLCs antes de introducirlo para queno estropeara los prototipos. Tambien sirve para comprobar que el SCADA funcionacorrectamente con los PLCs.

CX-Programmer tambien puede realizar una simulacion del programa, pero lo quemuestra es como van cambiando los valores de los registros. Se ha empleado CX-Designer que permite ver y modificar estos valores pero de forma grafica, es decir,permite crear botones, luces, indicadores numericos, graficas,. . . que acercan mas a loque ocurrirıa en la realidad.

CX-Designer emplea la simulacion arrancada desde CX-Programmer para recogerlos datos. Pero realmente, CX-Programmer simplemente es un editor de programa queemplea CX-Simulator para simular lo programado. Por lo tanto, CX-Designer no funcionasi no esta activo CX-Simulator y este a su vez no funciona si no esta el programa abiertoen CX-Programmer.

CX-Designer, que se encuentra dentro del paquete de CX-One, es un programa muyintuitivo para la creacion de simulaciones. En la parte central hay un panel en el quehay que seleccionar el tipo de actuador que se quiere anadir, ya sea un boton, un led,una grafica, solo texto, visualizacion de un valor,. . . Por ejemplo si se quiere crear unpulsador que modifica el registro CIO 1.02 hay que: seleccionar el primer boton delpanel central, dibujar el boton en el lugar deseado y por ultimo especificar el registroque va a modificar. Para asignarle un registro, se puede realizar rapidamente desde labarra superior (como se muestra en la Figura 7.1), pulsando dos veces seguidas sobre elpulsador o haciendo clic derecho sobre el pulsador. Por defecto aparece que el registro esel SERIALA:00000.00. SERIALA: es un comando interno del CX-Designer por lo que nohay que modificarlo, por lo que solo se cambiara la parte a continuacion de los puntos,es decir, para el registro CIO 1.02 quedarıa SERIALA:00001.02. En el caso de quereranadir otro tipo de area, como la retentiva (H) simplemente hay que anadir la letra delarea en cuestion como se harıa en CX-Programmer.

59

60 Chapter 7. Testeo y uso de automata de simulacion

Selección del tipo de actuador: botón,

led, gráficas,...

Aceso rápido al registro

Doble clic para entrar en sus propiedades

Arranque de la simulación

Figura 7.1: Creacion de una pantalla de simulacion

No solo se puede modificar el registro que emplea el boton, sino que tambien sepuede cambiar el color, el nombre y muchos otros aspectos haciendo clic derecho sobreel elemento en cuestion y entrando en propiedades.

Una vez incluidos todos los elementos que compondran la simulacion con susrespectivos registros, se procede a iniciar la simulacion pulsando el boton mostradoen la Figura 7.1 o yendo a Herramientas � Prueba. Aparecera un cuadro de dialogoen el que hay que especificar a que dispositivo se va a vincular. En este caso, como sequiere simular el programa realizado en CX-Programmer, hay que seleccionar la opcionconectar a CX-Simulator. De esta forma se crea un PLC virtual en el que probar el codigoy a la vez poder visualizar los cambios que se producen, pudiendo interactuar con lasvariables implicadas. Hay que destacar, que no permitira la ejecucion de la simulacionsi no se encuentra el CX-Programmer abierto con el programa a testear.

Volviendo al caso de los ascensores, la simulacion creada fue modificandoseatendiendo a los requisitos que se necesitaban en cada caso. En gran medida fueprovocado por la forma de programar el codigo realizando bloques en funcion de la tareaque desempenan. La programacion se inicio con el movimiento del motor que, como se haexplicado en el apartado 5.2.2, da valores al motor en funcion de la direccion solicitaday de la posicion de la cabina. En la Figura 7.2 se ven cuatro botones debajo de la A yde la B: al pulsarlos cambia el valor de la direccion para que vaya hacia arriba, haciaabajo, se pare o no tenga valor. Como es una simulacion, la activacion y desactivacionde los sensores magneticos debe hacerse de forma manual. Los botones de los sensoresse colocaron indicando con una H (High) si es el sensor de arriba o con una L (Low) el deabajo de la planta. Con el fin de saber la velocidad que va adquiriendo la cabina duranteel movimiento, se dispone de un recuadro numerico que va adquiriendo los valores quese le darıan al motor en cada caso.

Cuando se termino el analisis del motor, se fueron anadiendo los demas elementosimplicados en el movimiento. La base del funcionamiento de dos cabinas es igual al de

61

Figura 7.2: Simulacion inicial de solo dos cabinas

tres con la diferencia de que son mas condiciones las que tiene que cumplir la logica antellamadas realizadas en el exterior. Primero se realizo la programacion de las cabinas A yB y mas adelante se anadio la cabina C como se ve en la Figura 7.3. La simulacion finalrealizada, aportaba muchos datos acerca de donde estaban los errores de programacion.Por ejemplo, se ve a que ascensor ha enviado la orden de llamada exterior iluminandoselas luces situadas a la derecha de los pulsadores de la cabina en cuestion. Las luces dela izquierda se iluminan cuando se produce una llamada desde el interior de las mismas.

Hay que destacar la presencia de dos botoneras para las llamadas exteriores. Esto esdebido a que solo se puede simular uno de los programas de los PLCs a la vez, siendolos registros de las llamadas exteriores de los dos PLCs diferentes. Ademas, solo se vensi se han dirigido bien las llamadas exteriores teniendo que simular que las cabinasA y B se encuentran moviendose cambiando su estado. Para cambiar el estado de lascabinas vale con presionar las flechas de subida o de bajada situadas encima de laspuertas. Asimismo, hay que recalcar el boton de conexion que simula la existencia decomunicacion entre ambos PLCs puesto que funciona de forma diferente el programacon o sin ella.

Hay varias razones por la que se han anadido las tres cabinas en una misma pantallaa pesar de que no se pueda ejecutar la simulacion de las tres cabinas a la vez. Una delas razones se acaba de comentar y es la de ver la asignacion de las llamadas exteriorescuando se encuentran los tres ascensores conectados. La otra es comodidad, puesto queuna vez que se simula uno de los programas y se quiere simular el otro a continuacion,no hay mas que detener la simulacion en CX-Programmer y activar la otra.

Gracias a CX-Designer, se pudieron comprobar diferentes casos para confirmar el

62 Chapter 7. Testeo y uso de automata de simulacion

Figura 7.3: Simulacion completa de la maniobra de las tres cabinas

correcto funcionamiento del programa segun lo esperado:

• Se comprobo que siempre que se activaba el modo automatico, la primera accionque realizaba era la de ir a la planta baja. Para efectuar dicha comprobacion se fuecambiando entre todos los estados posibles observando la actuacion de la cabinacuando se volvıa al estado automatico. Con esta prueba, tambien se revisa quelas variables cuyos valores han de ser modificados entre los modos, se cambiencorrectamente.

• Se demostro el orden en el que se atienden las llamadas teniendo en cuenta ladiferencia entre las interiores y exteriores:

– Las llamadas interiores tiene que atenderse respetando el estado de la cabina,es decir, si se encuentra subiendo, primero tiene que terminar de atender lasllamadas superiores a su posicion antes de ocuparse las que se encuentranpor debajo.

– Para las llamadas exteriores su funcionamiento es igual a las interiores cuandola cabina esta bajando. Pero en el momento en que tiene que atender variasllamadas superiores a su posicion, ha de ocuparse en primer lugar de lallamada mas alta.

– Tambien se verifico que, mientras se encuentra la cabina subiendo, atiendecorrectamente las llamadas interiores y exteriores, es decir, que atiende todaslas llamadas interiores que se encuentra en su ascenso, pero que solo atiendela llamada exterior mas alta. En el caso de que coincida una llamada interiory una exterior habiendo una llamada exterior mas alta, la cabina ha de

63

pararse en dicha planta eliminado ambas llamadas y posteriormente atenderla llamada superior. Se realizo el funcionamiento de este modo debido a que lacabina esta obligada a pararse en dicha planta y puede ser que los usuariosdecidan montarse en la cabina a pesar de que vaya a ascender.

• Se confirmo que la cabina no comenzaba la parada antes de tiempo, es decir,una cabina que se encuentre saliendo de una planta y en ese preciso instantese realiza una llamada a dicha planta, primero debe atender la llamada superior yluego volver a la planta. Este test se realizo porque el programa podıa considerarque se esta acercando a la planta, ya que solo uno de los sensores de la plantaesta accionado y activarıa la parada. La consecuencia serıa que la cabina sedesplazarıa a la mınima velocidad hasta la siguiente planta con llamada.

• Se probaron todos los casos supuestos en la Figura 5.11 en los que se tienenque asignar correctamente las llamadas exteriores. Para ello, se colocaron en lasimulacion las cabinas en las posiciones indicadas y se observo que las llamadaseran enviadas a la cabina correcta teniendo en cuenta el orden de prioridad de losascensores, siendo A el primero, B el segundo y C el ultimo.

Al no poder simular los dos programas simultaneamente, hubo que ir especificandola posicion y el estado de las cabinas para comprobar su funcionamiento combina-do.

Cabe destacar que se enseno la simulacion a otras personas permitiendoles interac-tuar con ella para constatar que se habıan contemplado todos los escenarios posibles.

64 Chapter 7. Testeo y uso de automata de simulacion

Capıtulo 8

Conclusiones y futuros trabajos

8.1. Conclusiones

A lo largo de esta memoria se han explicado los tres programas (CX-Programmer,CX-Supervisor y CX-Designer) empleados en la creacion del programa de control de losprototipos de 3 ascensores, ası como una comparativa entre dos posibles tecnologıas decomunicacion entre PLCs y la razon por la que se ha optado por Ethernet.

A pesar de que es mejor la tecnologıa Ethernet/IP, se ha comprobado que para el casode la maniobra de las tres cabinas es posible el empleo de la comunicacion vıa Ethernet,pudiendo considerarla como una conexion en tiempo real entre ambos PLCs. Es por elloque tras las pruebas realizadas con las dos tecnologıas, se ha empleado la que es maseconomica puesto que ya se encuentra integrado en el modulo CJ1M.

Como para la programacion de los PLCs se supuso que los ascensores se encuentranen un bloque residencial, se considera que todo usuario que desea emplear losascensores desea bajar, exceptuando los de la planta baja que desean subir. La granmayorıa del lenguaje empleado en la programacion es Texto Estructurado, el cual es muysimilar a “C”, organizado en bloques que separan las diferentes tareas que desempenanpara que la localizacion de posibles errores sea mas rapida. Se dispone de comentariosa lo largo del codigo como ayuda a la comprension de lo programado. En todo momentose realizo el programa de tal forma que fuese muy sencillo anadir o eliminar plantas alsistema.

Uno de los aspectos mas importantes de la programacion en Texto Estructurado esque hay que comprender bien su funcionamiento y la memoria que ocupa el empleode las diferentes instrucciones para la realizacion de un codigo optimizado. A pesar detodos los metodos empleados para la optimizacion del codigo, no se ha podido incluirtoda la programacion que se deseaba anadir. La parte excluida, aunque importante, noes indispensable para el correcto funcionamiento de las cabinas. Debido al problemade espacio al emplear el Texto Estructurado, se puede concluir que en estos PLCs deOMRON el codigo mas optimizado se realiza en Ladder.

En cuanto a la monitorizacion del sistema realizado en CX-Supervisor, se hademostrado que se puede realizar una interfaz grafica de facil uso para el operario que

65

66 Chapter 8. Conclusiones y futuros trabajos

tenga que supervisar la maniobra.

En las fases iniciales de la programacion de los automatas, es necesaria unacomprobacion previa antes de ejecutar el programa en un PLC real. Es por ello quese ha probado CX-Designer estableciendolo como sistema valido para la simulacion delos PLCs de OMRON.

El sistema completo ha sido testado y validado con ensayos realizados en el prototipodel laboratorio de la Escuela de Ingenieros de San Sebastian (TECNUN). Al finalizarlas verificaciones oportunas, se puede afirmar que el prototipo de los tres ascensoresfunciona correctamente de manera combinada entre las tres cabinas.

8.2. Futuros trabajos

Al prototipo de elevacion programado se le ha realizado lo indispensable para lograrel desplazamiento vertical de cualquier posible usuario que se introdujera en el mismo.Tambien se le han agregado algunos extras con el fin de realizar un movimientoagradable al usuario y que sea eficiente en su funcionamiento. A pesar de ello, es posibleanadir mas funcionalidades para mejorarlos.

La principal labor que habrıa que realizar antes de implementar mas funcionalidadesen el codigo es la de continuar la busqueda de mecanismos para optimizar al maximoel codigo realizado en Texto Estructurado. Aunque se han confeccionado diferentesmetodos para realizar una programacion en la que se emplee el mınimo espacio posible,sigue siendo un problema la extension que ocupa el programa puesto que es un lımiteque no se puede rebasar y se encuentra actualmente al lımite.

Con nuevos mecanismos y con los ya mencionados en esta memoria, hay querevisar exhaustivamente el codigo programado. Esto se debe a que cuando se empezo aprogramar no se tenıa en cuenta la capacidad que puede soportar el automata, porlo tanto, a pesar de haber repasado completamente el codigo, muy probablemente sepuedan realizar mejoras. La mas importante de todas es la ya comentada en la memoria(concretamente en la seccion 5.3) sobre pensar que se esta programando un PLC, no unprograma de ordenador. Por tanto instrucciones como se ven en la Figura 5.13 2 estanmas optimizadas si se escriben como en 3 .

Una posible forma de aumentar el espacio es cambiar la forma en la que se asignanlas llamadas exteriores, por ejemplo, haciendo que para dicha asignacion no influya elestado de la cabina, sino solo la distancia mınima a dicha llamada. Puede darse el casode que se encuentren los tres ascensores en la planta baja y que sea solo uno de losascensores el que atienda todas las llamadas, provocando que la espera del usuario ala cabina se alargue. Entonces se le anadirıa la variable carga de trabajo. En ella sealmacenarıa la cantidad de acciones que debe realizar una cabina, dando la orden a lacabina que menor carga de trabajo tenga y menor sea su distancia.

Siguiendo con la comodidad del usuario que va a emplear la cabina, serıa interesanteaplicar una operacion en la que, pasado un tiempo de inactividad de las cabinas, secoloquen en posiciones donde es mas probable que se solicite su llamada. Por ejemplo,

Section 8.2. Futuros trabajos 67

que se colocasen dos de ellas en la planta baja y la tercera en un piso intermedio. Comoeste prototipo es de cuatro plantas, que se colocase en la ultima planta. Otra opcionserıa que se fuesen moviendo las cabinas para intentar que siempre haya un ascensoren la planta baja y otro en la planta intermedia (en este caso la ultima) para mejorar aunmas los tiempos de espera.

El teclado solo se emplea para las llamadas y como atajo para cambiar entre el modomantenimiento y el automatico, por lo que otra funcionalidad que podrıa anadirse serıala posibilidad de mas atajos de teclado. Los atajos del teclado, aparte de conmutar entrelos diferentes modos de funcionamiento, podrıan obligar a la cabina a ir directamente aun determinado piso ignorando el resto de llamadas. Para cenirnos mas a lo que ocurreen la realidad, habrıa que pulsar los botones de cerrar las puertas y el piso de destino ydeberıa funcionar inclusive en el modo bomberos.

En cuanto a los mecanismos de seguridad implementados en el ascensor, sondiversos los que se pueden aplicar. Se destacan algunos a continuacion:

• Colocacion de un encoder en el motor con el fin de conocer la velocidad y ladireccion exacta que esta tomando la cabina en todo momento. De esta forma sepodrıa limitar la velocidad de las cabinas.

• Finales de carrera por debajo de la planta baja y por encima de la ultima planta,para restringir un mal funcionamiento de las cabinas y evitar danos estructurales.

• Sistema de deteccion de sobrecarga en la cabina.

• Baterıas de emergencia, para que el ascensor pueda terminar el movimiento queestaba realizando cuando se queda sin corriente y ası evitar que quede alguienatrapado.

• Sensores de temperatura para detectar si se recalienta el motor o si se ha producidoun incendio.

El prototipo fısico es mejorable creando una cabina que disponga de una puertacorredera. A dicha cabina se le puede anadir un detector de infrarrojos en la puerta paraimpedir que se cierre esta cuando haya un objeto o persona pasando en ese momento.Tambien se podrıa crear un sistema de iluminacion interior en la cabina que solo seencienda cuando se abra la puerta o haya pasajeros a bordo.

Serıa de gran utilidad la implementacion de un sistema de adquisicion de todos loscambios que se van produciendo en el sistema para la posterior busqueda de las posiblescausas de fallos o para la recopilacion de las posiciones que toma la cabina para suposterior estudio. A partir de el, se puede modificar la prioridad de acceso de una cabinaa una planta utilizando las estadısticas de los lugares mas frecuentes. La recopilacionde los datos se puede realizar desde el SCADA realizado en CX-Supervisor, sin necesidadde emplear sistemas adicionales.

Para finalizar, el cambio mas importante que se puede realizar es el de cambiarel concepto de como se asignan las llamadas exteriores a las diferentes cabinas, esdecir, cambiar el algoritmo convencional empleado por el de la logica difusa o las redes

68 Chapter 8. Conclusiones y futuros trabajos

neuronales explicados en el capıtulo 2. Esto implicarıa obligatoriamente el cambio decontrolador de la maniobra o el empleo de los PLCs de OMRON para el control de lacabina mas un sistema externo con mas memoria y capacidad de procesamiento dondeimplementar la asignacion de las llamadas exteriores. Esta reestructuracion se deberıa ala complejidad de todo el sistema y a la necesidad de mucha memoria y mucha capacidadde procesamiento.

Con todos estos datos, serıa necesario hacer un estudio rapido para saber sicompensa realmente invertir mas horas de trabajo en la optimizacion del codigo paraconseguir implementarlo completamente o probar a utilizar otro PLC en el que lacapacidad de almacenamiento del programa no sea un impedimento. Llegado a estepunto, el empleo de otro PLC es la solucion definitiva, ya que se puede optimizar elprograma ya realizado y ademas permitirıa la adicion de mejoras en la maniobra comoanadir mas mecanismos de seguridad.

Bibliografıa

[1] PLCopen. http://http://www.plcopen.org//.

[2] The Elevator Museum. http://www.theelevatormuseum.org/.

[3] Andrew G Crites, Robert H / Barto. Elevator group control using multiplereinforcement learning agents. Machine Learning, 33(2-3):235–262, 1998.

[4] Rosso Mateus A. E. / Soriano J. J. Sistema de control inteligiente para un grupo deelevadores. Ciencia e Ingenierıa Neogranadina,, 2008.

[5] David M. Freeman, James A. / Skapura. Redes neuronales: Algoritmos, aplicacionesy tecnicas de programacion. 1993.

[6] Erdem Imrak C. / Ozkirim M. Determination of the next stopping floor in elevatortraffic control by means of neural networks. Journal of electrical & electronicsengineerig - Istambul university, 2006.

[7] Keith W. Ross James F. Kurose. Redes de computadoras. Un enfoque descendente.Quinta edition, 2010.

[8] E.G. / Mejıa Becerril F. / Moreno Alarcon H. E. Garrido Macıas. Sistema de controlde posicion de un motor a pasos, aplicado a un elevador utilizando redes neuronalesartificiales. PhD thesis, Instituto politecnico nacional.

69