scieee AI-readable full text Open interactive document viewer

Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales

Hernández Tinoco, Marina

Abstract

El proyecto consiste en el desarrollo y la implementación de una red de datos basada en Modbus y Ethernet para el control en tiempo real mediante autómatas industriales En él se estudian los protocolos utilizados, las opciones de comunicaciones que ofrece el autómata Modicon M340, la configuración y como se realiza una puesta en marcha. Concluye con el desarrollo de una aplicación práctica en el que se puede validar lo estudiado mediante el control en tiempo real de dos plantas emuladas en el ITS-PLC que cooperan entre sí para poder realizar el proceso industrial.

Full text

i Equation Chapter 1 Section 1 Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías de Telecomunicación Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales Dep. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Autor: Marina Hernández Tinoco Tutor: Daniel Limón Marruedo Sevilla, 2016 iii Proyecto Fin de Carrera Ingeniería de Telecomunicación Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales Autor: Marina Hernández Tinoco Tutor: Daniel Limón Marruedo Profesor titular Dep. de Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2016 v Proyecto Fin de Grado: Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales Autor: Marina Hernández Tinoco Tutor: Daniel Limón Marruedo El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2016 El Secretario del Tribunal vii A mi familia, mis amigos, mis maestros. ix Agradecimientos En primer lugar agradecer a Daniel Limón la oportunidad que me ha brindado para realizar este proyecto y aprender de él. A mis padres y a mi hermano, por darme la oportunidad de estudiar esta carrera y ofrecerme todo su apoyo para que pudiera conseguir mis objetivos. A mis amigas, las que me acompañan desde el inicio de esta aventura y las que he tenido el placer de conocer a lo largo de esta etapa, con personas como ellas todo se hace más fácil. A Sergio, gracias a su apoyo incondicional, tantas horas invertidas juntos en la Escuela y de aguantarnos te hace merecedor de aparecer aquí. A Juan Carlos, por sus ánimos y por acompañarme en este camino. Marina Hernández Tinoco Sevilla, 2016 ÍNDICE DE FIGURAS Figura 2-1. PLC Modicon M340. 4 Figura 2-2 Intercambio de información entre los sistemas, la tarjeta DAQ y el PLC. 6 Figura 2-3 Conexiones eléctricas entre la tarjeta DAQ y el PLC 6 Figura 3-1 Interacción Maestro – Esclavo 8 Figura 3-2 Tipos de direcciones Modbus. 8 Figura 3-3 Modo unicast. 9 Figura 3-4 Modo broadcast. 9 Figura 3-5 Trama Modbus. 10 Figura 3-6 Bit de secuencia modo RTU con paridad. 13 Figura 3-7 Diagrama de bloques con bucle de tensión. 14 Figura 3-8 Interfaz RS485 de 16 Puerto de Alto Rendimiento PCI Express. 15 Figura 3-9 Puerto serie en el PLC M340. 16 Figura 3-10 Configuración del bastidor. 17 Figura 3-11 Configuración del puerto serie. 17 Figura 3-12 Configuración del cliente Modbus. 19 Figura 4-1 Paquete Modbus TCP. 23 Figura 4-2 Trama Modbus TCP/IP. 24 Figura 4-3 Topología en bus para la red Ethernet. 25 Figura 4-4 Topología en estrella para la red Ethernet. 26 Figura 4-5 Cable par trenzado sin apantallar. 28 Figura 4-6 Código de colores conector RJ45. 28 Figura 4-7 Cable STP. Par trenzado apantallado. 29 Figura 4-8 Cable FTP. Par trenzado con pantalla global. 29 Figura 4-9 Puerto RJ45 Ethernet. 30 Figura 4-10 Crear una nueva red Ethernet 31 Figura 4-11 Pantalla configuración IP. 32 Figura 4-12 Configuración del puerto Ethernet. 32 Figura 5-1 Opciones visualizar memoria P34 2020. 33 Figura 5-2 Memoria principal. 34 Figura 5-3 Declarar variables. 34 Figura 5-4 Pantalla para permitir matrices dinámicas. 36 Figura 5-5 Sintaxis de la función ADDM (Modbus). 37 xvii Figura 5-6 Función ADDM (Ethernet). 37 Figura 5-7 Sintaxis de la función READ_VA R. 38 Figura 5-8 Función READ_VAR (Ethernet). 39 Figura 5-9 Sintaxis de la función WRITE_VAR. 39 Figura 5-10 Función WRITE_VAR (Ethernet). 40 Figura 5-11 Sintaxis de la función DATA_EXCH 41 Figura 5-12 Función WRITE_VAR (Ethernet). 42 Figura 5-13 Figura de los campos de la variable port en Modbus. 45 Figura 5-14 Contadores para depuración Modbus. 46 Figura 5-15 Pantalla depuración comunicación Ethernet. 47 Figura 5-16 Depuración Ethernet, tráfico de mensajes. 48 Figura 5-17 Variables básicas en el maestro para comunicación Modbus. 50 Figura 5-18 Programación Maestro en una comunicación Modbus. 51 Figura 5-19 Programación PLC en una comunicación Ethernet. 52 Figura 6-1 Pirámide CIM de comunicación. 55 Figura 6-2 Planta clasificadora de cajas. 57 Figura 6-3 Planta mezcladora de pintura. 57 Figura 6-4 Escenario de la aplicación práctica. 58 Figura 6-5 Esquemático de la planta transportadora. 59 Figura 6-6 Esquemático procesamiento por lotes. 60 Figura 6-7 Diagrama de secuencia. 61 Figura 6-8 Asignar valor ITS en la memoria principal. 65 Figura 6-9 Función INT_TO_BOOL. 65 Figura 6-10 Conector RJ-45. 66 Figura 6-11 Cableado de los interfaces serie con R485. 67 Figura 6-12 Montaje cable bus Modbus RS-485. 67 Figura 10-1 Capas del Modelo OSI. 83 Figura 11-1 ARP Request. 87 Figura 11-2 ARP Reply. 87 xix 1 1 INTRODUCCIÓN l presente proyecto surge de la necesidad de controlar los procesos a tiempo real en las plantas industriales aprovechando las herramientas de comunicación de las que disponemos. A día de hoy es primordial en la industria poder revisar la productividad y minimizar los errores en cualquier tipo de sistema gestionado por autómatas programables. Las comunicaciones industriales son aquellas que permiten el flujo de información del controlador a los diferentes dispositivos a lo largo del proceso de producción: detectores, actuadores, sensores entre otros. Disponemos de distintos protocolos para establecerlas pudiendo detectar anomalías y cooperar en la resolución del problema, la posibilidad de utilizar sistemas SCADA y controlarlas de forma gráfica. 1.1 Objetivo El objetivo del proyecto es el desarrollo e implementación de una red de datos basada en Modbus y Ethernet para el control en tiempo real mediante autómatas industriales. Se ha desarrollado en el laboratorio de robótica del Departamento de Ingeniería de Sistemas y Automática de la Universidad de Sevilla. Para concluir se realiza una aplicación práctica de lo estudiado donde podremos observa cómo llevar a cabo el control a tiempo real en un mismo sistema con diferentes autómatas interactuando entre ellos. 1.2 Alcance El alcance del proyecto consiste en el diseño e implementación de una red de comunicaciones para 12 PLCs de los que dispone el laboratorio y su validación mediante el control en tiempo real de una planta emulada en ITS-PLC. Se analizará las posibilidades de seguir ampliando dicho Proyecto ya que como se mencionó anteriormente poder comunicar los autómatas abre el campo de desarrollo. E 3 2 ENTORNO DE TRABAJO l presente proyecto ha sido desarrollado en el Laboratorio de Robótica del Departamento de Ingeniería de Sistemas y Automática. Aprovechando los recursos que nos ofrecía hemos montado una red de comunicaciones entre los 12 autómatas de los que disponemos. A continuación, detallaremos el hardware y software utilizados. 2.1 Hardware Nuestro escenario está compuesto por 12 PLCs de la marca Schneider. Dispuestos en 4 filas con 3 autómatas cada una. 2.1.1 PLC 2.1.1.1 Introducción PLC, Controlador Lógico Programable, es una computadora utilizada en la ingeniería automática, para automatizar procesos electromecánicos, tales como el control de la maquinaria de la fábrica en líneas de montaje o atracciones mecánicas. A diferencia de las computadoras de propósito general, el PLC está diseñado para múltiples señales de entrada y de salida, rangos de temperatura ampliados, inmunidad al ruido eléctrico y resistencia a la vibración y al impacto. Los programas para el control de funcionamiento de la máquina se suelen almacenar en baterías, copia de seguridad o en memorias no volátiles. Un PLC es un ejemplo de un sistema de tiempo real, donde los resultados de salida deben ser producidos en respuesta a las condiciones de entrada dentro de un tiempo limitado, de lo contrario no producirá el resultado deseado. 2.1.1.2 Modelo En este Proyecto hemos trabajado con el modelo Modicon M340 de Schneider mostrado en la Figura 2-2. Compuesto por los siguientes módulos conectados de izquierda a derecha:  BMX CPS 2000: módulo de alimentación diseñados para alimentar cada rack BMX y sus módulos.  BMX P34 2020: procesador con puertos USB, serie, Ethernet y tarjeta de memoria.  BMX DDM 3202K: módulo de adquisición de datos del ITS 1 .  BMX AMI 0410: módulo de entradas analógicas.  BMX DDM 16022: módulo mixto de entradas/salidas estáticas. 1 ITS: Sistema de capacitación interactiva para PLCs. E Entorno de trabajo 4 La numeración de la Figura 2-2 hace referencia a: 1. Puerto de protección de la tarjeta de memoria. 2. Puerto USB. 3. Puerto Ethernet. 4. Puerto serie. Figura 2-1. PLC Modicon M340. A lo largo de la memoria se explicará cómo comunicar los PLCs sacando el mayor aprovechamiento de estos. 2.2 Software Para el desarrollo de nuestro proyecto hemos utilizado el software propio de los PLCs y un simulador para poder realizar un ejemplo práctico de todo lo estudiado. 2.2.1 Unity Pro Unity Pro es el software de programación, depuración y operación común para las gamas Modicon. Para crear el programa de usuario proporciona los siguientes lenguajes de programación:  Lenguaje de contactos (LD)  Lenguaje de bloques funcionales (FBD)  Lista de instrucciones (IL)  Literal estructurado (ST)  Diagrama funcional en secuencia (SFC) Todos estos lenguajes de programación pueden utilizarse juntos en el mismo proyecto. [1] 5 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales El programa nos ofrece grandes posibilidades como:  Creación de variables desde los módulos de entrada/salida.  Configurar dirección IP del PLC.  Editar datos.  Crear variables.  Biblioteca de funciones y librerías. En la bibliografía podrá acceder a toda la configuración detalladamente, cuando hagamos uso de ellas se especificará como realizar lo necesario para nuestra aplicación. 2.2.2 Simulador ITS ITS PLC Professional Edition – Sistema de Capacitación Interactiva para PLCs – es una herramienta educativa y de capacitación para la programación de PLCs. Con base en la tecnología informática más reciente, ITS PLC hace que la capacitación sobre PLCs resulte fácil y amena El resultado, es un ambiente virtual simulado que ofrece sistemas de capacitación altamente realistas, ofreciendo avanzados gráficos tridimensionales en tiempo real y una interactividad total, además los ambientes virtuales, nos evitan riesgo de lesiones para el personal, como daños a los equipos involucrados. ITS PLC ofrece problemas con niveles incrementales de dificultad, que permite pasar a ejercicios más avanzados. [2] 2.2.2.1 Funcionamiento ITS PLC ofrece cinco sistemas virtuales con fines educativos y de capacitación para la programación de PLCs. Cada sistema es una simulación visual de un sistema industrial que incluye actuadores y sensores virtuales, de modo que su estado pueda ser detectado por el PLC. Comunicaciones PLC vía Modbus 12 Si el código es erróneo, es decir que no coincide el CRC recibido con el CRC no se responderá a la petición de datos por parte del Esclavo, de manera que ocurrirá un Timeout en recepción del Maestro y este deberá entender que el Esclavo no ha recibido la trama correctamente y procederá a un reintento. [10] Ejemplo 3–1. Query: El mensaje de petición especifica la bobina, la cantidad de bobinas y desde donde empezar a leer. Esta petición de lectura de la bobina 20 - 56, 37 bobinas en total, del esclavo 3: (Teniendo en cuenta que la dirección de inicio es de 19 o 0x13.) Tabla 3-3 Trama Query. Response: El estado de la bobina en el mensaje de respuesta es un bit del campo de datos. El estado se indica como: 1 = ON, 0 = OFF. El LSB del primer byte de datos contiene la bobina abordado en la consulta. Por ejemplo, cuando el estado de las bobinas 20 - 27 se muestra ON - ON - OFF - OFF - ON - OFF - ON - OFF, representado como el valor de byte binario 0101 0011 (0x53). Un byte contiene el estado de ocho bobinas. Si la cantidad de la bobina no es un múltiplo de ocho, los bits restantes en el byte de datos final se rellenan con ceros. La Tabla 3-4 muestra un ejemplo de una respuesta a la consulta que se muestra en la Tabla 3-3. Tabla 3-4 Trama Response. 13 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales 3.3 Cableado 3.3.1 Comunicación serie La comunicación serie consiste en el envío secuencial de un bit a la vez de información entre dos o más dispositivos, cada bit va seguido uno de otro (en serie), esto implica que para la transmisión de datos es necesario un solo cable entre los dos dispositivos y una referencia a tierra. Cualquier dato se puede enviar en serie, por ejemplo, para enviar el carácter “A” de un dispositivo a otro, siendo el número 65 el correspondiente en ASCII a la “A”, que convertido a unos y ceros (código binario) nos da como resultado el 1000001, entonces para enviar la letra “A” simplemente se envía una trama de bits. Las características a tener en cuenta en una comunicación serie son:  Bit de Start y Stop A la trama de 8 bits se le agregan dos bits más, uno al inicio y otro al final, esto con la finalidad de indicarle al receptor cuando inicia el dato (bit de start) y cuando termina (bit de stop). El bit de inicio es un 0 y el bit de paro es un 1.  Bit de paridad Existe otro bit que se agrega a la trama, es el llamado bit de paridad, que sirve para detectar errores en las tramas enviadas. Su uso es opcional. Figura 3-6 Bit de secuencia modo RTU con paridad.  Velocidad de transmisión Debemos tener en cuenta la velocidad a la que se envían lo bits en serie, es de suma importancia debido a que ambos dispositivos deben estar a la misma velocidad para transmitir y recibir bits, si no lo están, simplemente la transmisión serial no sería correcta. La velocidad de transferencia de información indica el número de bits que se transmiten en un segundo, se mide en baudios, algunas velocidades de transmisión más usadas son las siguientes: 1200, 2400, 4800, 9600, 19200. 9600, 19200. 3.3.2 Normas de comunicación en series Este tipo de comunicaciones brinda el escenario ideal para construir redes de baja cobertura y bajo costo, ya sea con conexiones de corriente o de tensión. En los circuitos de conexión en serie por corriente o bucle de corriente se emplea ésta característica para representar la información del sistema a través de un cable que una los equipos terminales emisor y receptor. Por otro lado, en los circuitos de conexión por tensión o bucle de tensión es ésta señal eléctrica la que se Comunicaciones PLC vía Modbus 14 emplea para representar la información a través del enlace establecido entre los dos conductores enlazados. En el diseño moderno de comunicaciones en serie punto a punto el bucle de corriente no es utilizado debido a que ha sido sustituido por la transmisión de bucle de tensión con el uso cada vez mayor de los protocolos RS- 232, RS-423, RS-422 y RS-485. A diferencia de la conexión serie de corriente la conexión serie de tensión es muy utilizada en la actualidad debido a sus mejores prestaciones en alcance y velocidad. Las diferentes propuestas de normalización se clasifican en: 1. Especificaciones mecánicas, funcionales y de procedimiento dadas por la EIA RS-232C o CCITT V.24 y la EIA RS- 449. 2. Especificaciones eléctricas dadas por la EIA RS-232C o CCITT V.28, EIA RS-423A (no equilibrada), EIA RS-422A (equilibrada) y la EIA RS- 485 (equilibrada y con tercer estado). Al transmitir en una banda de base digital se puede establecer una configuración mínima prescindiendo de las señales de control de tal forma que se puede utilizar únicamente dos líneas (una de masa y una de datos) para realizar una transmisión en un único sentido simultáneamente (half dúplex); éste es el caso que se ilustra en la Figura 3-9 como un diagrama de bloques de una comunicación asíncrona simultánea entre dos microcontroladores. Figura 3-7 Diagrama de bloques con bucle de tensión. A continuación, analizaremos el estándar que hemos elegido para nuestro Proyecto, el RS-485. 3.3.3 Estándar RS-485 RS-485 o también conocido como EIA-485, que lleva el nombre del comité que lo convirtió en estándar en 1983. Es un estándar de comunicaciones en bus de la capa física del Modelo OSI. Está definido como un sistema de bus diferencial multipunto, es ideal para transmitir a altas velocidades sobre largas distancias (35 Mbit/s hasta 10 metros y 100 kbit/s en 1200 metros) y a través de canales ruidosos, ya que el par trenzado reduce los ruidos que se inducen en la línea de transmisión. El medio físico de transmisión es un par trenzado que admite 32, 128 o 254 estaciones en 1 solo par, con una longitud máxima de 1200 metros operando entre 300 y 19 200 bit/s y la comunicación half-duplex (semiduplex) dependiendo del consumo de cada driver. La transmisión diferencial permite alcanzar mayor distancia con una notable inmunidad al ruido, siempre que el bus de comunicación conserve las características de bus balanceado dando la posibilidad de una configuración multipunto. Desde 2003 está siendo administrado por la Telecommunications Industry Association (TIA) y titulado como TIA-485-A.222. [11] RS-485 es una mejora sobre RS-422 ya que incrementa el número de dispositivos que se pueden conectar y define las características necesarias para asegurar los valores adecuados de voltaje cuando se tiene la carga máxima. Gracias a esta capacidad, es posible crear redes de dispositivos conectados a un solo puerto RS-485. Esta capacidad, y la gran inmunidad al ruido, hacen que este tipo de transmisión serie sea la elección de muchas aplicaciones industriales que necesitan dispositivos distribuidos en red conectados a un PC u otro controlador para la colección de datos, HMI u otras operaciones. 15 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales 3.3.3.1 Características mecánicas El estándar define conexiones con cable de par de cobre trenzado y terminales RJ11 por lo que existe mayor resistencia a la interferencia electromagnética y mayor velocidad de transmisión que con la norma RS232 [12]. Permite la conexión de hasta 32 emisores con 32 receptores en transmisión doble simultánea full dúplex capaz de enlazar procesadores de comunicación principal (maestro) con procesadores subordinados (Esclavos) cuyo funcionamiento (acceso priorizado) está definido por los mismos arreglos topológicos de las redes de datos. Los dispositivos de la norma RS-485 mantienen compatibilidad con el estándar RS-232 como se aprecia en la Figura 3-10 donde, se tiene un adaptador PCI Express de 16 puertos y alto rendimiento con enlaces para terminal serial RS-232. Figura 3-8 Interfaz RS485 de 16 Puerto de Alto Rendimiento PCI Express. 3.3.3.2 Características eléctricas En la comunicación de la norma RS-485 se tiene que el emisor opera el “1” lógico a un voltaje de -1.5 a -5 Volt. el “0” lógico a la entrada del receptor en el rango de +0.2 a +12 Volt y la máxima tensión aplicada a la línea de salida es de -7 a +12 Volt. El alcance de la transmisión está dado por la relación existente entre el volumen de los datos a transferir y el tiempo de la señal en la portadora determinado por la velocidad de transferencia de donde se obtiene que la longitud máxima del cable es de 1.200 m y la velocidad máxima de 10 Mbps que se obtiene en una distancia de 12 m. Finalmente, aunque de manera oficial los drivers RS-485 pueden direccionar hasta 32 dispositivos en la red, con la nueva generación de productos de conversión de señales se logra una expansión de entre 128 y 255 nodos. El bucle de tensión ha desplazado progresivamente al bucle de corriente en el diseño de redes industriales gracias a la flexibilidad y potencia obtenidos en el desarrollo de conceptos eléctricos de mayor complejidad sobre los cuales se estructura. Los materiales de fabricación de la portadora, así como la distancia de transporte de datos impactan de manera inversamente proporcional a la capacidad y a su velocidad de transferencia. El futuro de las redes locales industriales demanda diariamente de estándares que sean capaces de manejar un mayor número de equipos maestro y proporcionalmente una mayor cantidad de terminales Esclavos para cumplir con las exigencias del mundo productivo moderno. [13] Comunicaciones PLC vía Modbus 16 3.3.4 Puerto serie del PLC M340. El puerto serie RJ45 en nuestro PLC se localiza en la zona más baja del módulo BMX P34 2020 como se observa en la Figura 3-11 Figura 3-9 Puerto serie en el PLC M340. El estado de la comunicación serie se indica mediante un indicador LED SER COM amarillo en la parte frontal de estos procesadores, si el LED está intermitente sabemos que la comunicación serie está en curso mientras que si está apagado no se estará comunicando. El conector RJ45 tiene ocho pines. Los pines utilizados varían en función de la conexión física que se utilice, en nuestro caso será la RS485 Los pines utilizados para la conexión serie RS485 son los siguientes:  Pin 4: señal D1  Pin 5: señal D0 El pin 7 se utiliza exclusivamente para suministrar alimentación a interfaces hombre-máquina o a dispositivos de pequeñas dimensiones mediante el cable de la conexión serie:  Pin 7: fuente de alimentación de la conexión serie: 5 VCC/190 mA Las características de CC son:  Consumo máximo de alimentación estabilizada: 190 mA,  Tensión mínima en el conector de la CPU para 190 mA: 4,9 V,  Tensión máxima en el conector de la CPU para 190 mA: 5,25 V,  Tensión máxima en el conector de la CPU sin carga: 5,5 V. Las características de CA son:  Carga del condensador: (a 5 V) o Máximo 1 μF en condensador cerámico; o 10 μF en tántalo  Inicio de carga de la bomba: (a 5 V) o 4 x 1 μF en condensador cerámico; o 2 x 10 μF en tántalo. 17 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales 3.4 Configuración del PLC Para configurar el funcionamiento de un puerto de comunicaciones de un PLC M340 de Schneider se requiere utilizar la aplicación Unity Pro XL, que también será necesaria para programar el PLC. En primer lugar, se debe abrir o crear un proyecto con la configuración de bastidor que se utilizará. La Figura 3-12 muestra la configuración que se utilizará en el proyecto. Figura 3-10 Configuración del bastidor. Seguidamente, en el Explorador de Proyectos se debe hacer doble clic con el ratón sobre el puerto serie de la CPU, que está nombrado como SerialPort. Esto abrirá la ventana de propiedades y configuración del puerto serie. Dentro de esta ventana, se seleccionará el Canal 0 en la parte izquierda, como muestra la Figura 3-11, para acceder al formulario de configuración. Figura 3-11 Configuración del puerto serie. Comunicaciones PLC vía Modbus 18 Bajo la lista de puertos y canales, después de seleccionar el canal, se puede seleccionar el protocolo a utilizar con el control de Función, que pude ser “Conexión modalidad de caracteres” o “Conexión MODBUS”. En función de la selección, la pestaña de “Configuración” mostrará un formulario con los parámetros configurables del protocolo escogido. A continuación, se describen los parámetros que se pueden configurar para MODBUS, que será el protocolo usado en el proyecto.  Tipo (Esclavo, Maestro). Selecciona el modo de MODBUS con que el PLC accederá al puerto serie. Hay que tener en cuenta que, en un momento dado, en una conexión o bus serie solo debe haber un dispositivo maestro.  Maestro: Número de reintentos (0-15). Número de intentos de conexión que lleva a cabo el maestro antes de declarar ausente al esclavo. El valor predeterminado es 3. Los valores posibles están comprendidos entre 0 y 15. El valor 0 indica que no hay reintentos por parte del maestro.  Maestro: Retardo de respuesta (10ms-10s, en pasos de 10ms). Es el tiempo transcurrido entre la petición inicial enviada por el maestro y un intento repetido de ésta en caso de que el esclavo no responda. Se corresponde con el tiempo máximo entre el envío del último carácter de la petición enviada por el maestro y la recepción del primer carácter de la petición reenviada por el esclavo. El valor predeterminado es 1 segundo (100*10 ms). Los valores posibles están comprendidos entre 10 ms y 10 s.  Esclavo: Número de esclavo (1-247). Indica la dirección del esclavo para MODBUS. En configuraciones multipunto (con un maestro y más de un esclavo) se usan las direcciones 1 a 247. El valor 248 se utiliza sólo para conexiones punto a punto (un maestro y un esclavo). Cada esclavo debe tener una dirección diferente al resto.  Línea Física (RS-232, RS-485). Especifica qué tipo de líneas físicas del puerto serie se van a utilizar. Aunque el puerto serie de los M340 puede funcionar físicamente como RS-232 o RS- 485, no puede hacerlo simultáneamente, ya que solo dispone de un canal serie que debe ser configurado en uno de los dos modos.  Señales (RX/TX, RX/TX + RTS/CTS). En el caso de utilizar el nivel físico RS-232, este campo se habilita para escoger si se van a usar las líneas de control del interfaz serie además de las líneas de datos.  Velocidad de transmisión (300, 600, 1.200, 2.400, 4.800, 9.600, 19.200 y 38.400 bps). Es la velocidad de transmisión que se usará para el puerto serie, y que debe ser igual a la configurada en los otros dispositivos del bus.  Retardo entre bloque de datos (2ms – 3.413ms). Indica el tiempo mínimo que puede separar dos tramas en la recepción. Este valor debe ajustarse en función de la velocidad. Según el estándar de MODBUS, para velocidades de hasta 19.200bps, el tiempo entre tramas debe ser como mínimo 3,5 veces la duración de un carácter, y para velocidades superiores se recomienda un tiempo fijo de 1,75ms. La duración de un carácter depende de la velocidad (Vt) y el número de bits (N) según N/Vt. Por ejemplo, para 19.200bps, con un bit de parada y un bit de paridad (11 bits en total, sumando el de inicio y 8 de datos) se tiene: 3,5·11/19.200=2ms.  Datos (ASCII, RTU). Selecciona el formato para las tramas de MODBUS serie.  Parada (1, 2). Permite introducir el número de bits de parada utilizados en la comunicación, que debe ser igual a la configurada en los otros dispositivos del bus.  Paridad (par, impar, ninguna). 19 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales Permite determinar si se agrega un bit de paridad, así como su tipo. El bit de paridad permite al equipo receptor de una trama de datos determinar si los bits de datos son correctos, o ha habido una alteración en uno de ellos. Esta configuración debe ser igual a la configurada en los otros dispositivos del bus.  Retardo RTS/CTS (0-10s, pasos de 100ms). Cuando es mayor que 0, indica que el PLC tendrá en cuenta las señales RST y CTS para controlar el envío de datos. En este caso, antes de enviar una trama, el PLC activa su salida RTS y espera que, en respuesta, el DCE active la entrada. Solo está disponible para RS232. [14] El esclavo solo requiere ser configurado con las mismas características que el maestro para que se pueda establecer la comunicación y asignarle un número de esclavo. La figura 3-14 muestra como es la pantalla de configuración del PLC que será establecido como esclavo. Figura 3-12 Configuración del cliente Modbus. Comunicaciones PLC vía Modbus 20 3.5 Tiempo de intercambio de una palabra En la siguiente tabla se muestran los tiempos de intercambio de una palabra de comunicación Modbus en un procesador BMX P34 2020 5 : Tabla 3-5 Tiempo intercambio de una palabra en Modbus. 5 Todos los tiempos de intercambio enumerados provienen de medidas con un margen de precisión de +/-10 ms. 21 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales 4 COMUNICACIONES PLC VÍA ETHERNET thernet es un estándar de redes de área local para computadores con acceso al medio por detección de la onda portadora y con detección de colisiones (CSMA/CD). Su nombre viene del concepto físico de ether. Ethernet define las características de cableado y señalización de nivel físico y los formatos de tramas de datos del nivel de enlace de datos del modelo OSI. Ethernet se tomó como base para la redacción del estándar internacional IEEE 802.3, siendo usualmente tomados como sinónimos. Se diferencian en uno de los campos de la trama de datos. Sin embargo, las tramas Ethernet e IEEE 802.3 pueden coexistir en la misma red. Los protocolos asociados de los que disponen el PLC Modicon M340 son: Estos protocolos sirven para: transferencia de ficheros, gestión de red, asignación de dirección:  Los protocolos de aplicaciones: HTTP, FTP, SNMP, DNS, TELNET.  Los protocolos de adquisición de configuración: BootP, DHCP.  Los protocolos de comunicación: ARP, RARP, ICMP. Las comunicaciones Ethernet ya no se rigen por el modelo Maestro-Esclavo. En este tipo de redes todos los PLCs pueden leer y escribir entre sí. La trama Ethernet encapsula la de Modbus, pero se rige por la norma IEEE que indica cómo deben comportarse las comunicaciones. El hecho de encapsular la trama Modbus es para poder utilizar los Código de Funciones Modbus, pero con las ventajas que ofrece las comunicaciones a través del protocolo Ethernet. Los nodos se comunican entre ellos por medio de "frames" (marcos), su unidad básica de comunicación, sabiendo a quien debe llegar y de quién procede. En el Anexo II se detallan las principales normas para realizar la comunicación que utilizan la norma IEEE. La idea principal para lograr este objetivo, a cada nodo se le asigna una dirección única, diferente de la del resto de los nodos (pareja Mac/IP) 6 . Así, un frame se estructura en tres campos de datos, uno para la dirección de destino, otro para la dirección fuente, y un tercero donde se envían los datos en sí mismo que queremos enviar (datos del mensaje o payload). La manera en la que se gestionan los frames es la siguiente, en una red compuesta por 4 nodos, A, B, C y D, si A genera un frame con destino a D, este frame es "escuchado" por B, C y D, pero solo lo acepta D, ya que B y C lo descartan porque la dirección destino del frame no es la suya (lo "filtran"), y D al ver que tiene como destino a él lo coge. Esto tiene una consecuencia muy importante: solo un nodo puede transmitir a la vez en la red, ya que si otro emite habría problemas, para ello existe un mecanismo que implemente una serie de reglas para el acceso al medio (cable), sin profundizar demasiado, decir que se CSMA/CD 7 : • CS - Carrier Sense ("sentir" la portadora). ¿Hay alguien hablando? • MA - Multiple Access (Acceso múltiple). Lo que tu oyes yo también lo oigo. • CD - Collision Detection (detección de portadora). ¡Mira, estamos hablando a la vez! Así sería su funcionamiento: 6 Mediante el uso del protocolo ARP documentado en el RFC826. Anexo III. 7 Definido en la norma IEEE 802.3 E Comunicaciones PLC vía Ethernet 28 Figura 4-5 Cable par trenzado sin apantallar. Las ventajas de este tipo de cableado son:  Bajo costo en su contratación  Alto número de estaciones de trabajo por segmento.  Facilidad para el rendimiento y la solución de problemas.  Puede estar previamente cableado en un lugar o en cualquier parte. Mientras que las desventajas son:  Altas tasa de error a altas velocidades.  Ancho de banda limitado.  Baja inmunidad al ruido.  Distancia limitada a 100 metros por segmentos. El conector utilizado en los cables STP son los RJ45, uno de los conectores principales utilizados con tarjetas de red ethernet, utiliza 8 pines, que transmiten información a través de cables de par trenzado. Por este motivo se le suele denominar puerto Ethernet. Figura 4-6 Código de colores conector RJ45. Existen dos clases de configuraciones para los pines de los conectores del cable trenzado denominadas T568A y T568B. 29 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales 4.3.2.2 Cable STP. Par trenzado apantallado. El cable de par trenzado blindado (STP) combina las técnicas de blindaje, cancelación y trenzado de cables. Cada par está envuelto en un papel metálico. Los dos pares de hilos están envueltos junto a una trenza o papel metálico. El cable STP Brinda mayor protección ante toda clase de interferencias externas, pero es más caro y de instalación más difícil que UTP. Si bien en la actualidad las redes inalámbricas están cada vez más extendidas, lo cierto es que las redes mediante cables ofrecen ventajas que las redes WLAN por el momento no pueden alcanzar, como largas distancias y estar libres de interferencias. Figura 4-7 Cable STP. Par trenzado apantallado. El conector del cable STP es el RJ-49. Igual que el RJ45, pero recubierto con una platina metálica para que haga contacto con la que recubre el cable STP 4.3.2.3 Cable FTP. Par trenzado con pantalla global. En este tipo de cable como en el UTP, sus pares no están apantallados, pero sí dispone de una apantalla global para mejorar su nivel de protección ante interferencias externas. Su impedancia típica es de 120 Ohm y sus propiedades de transmisión son más parecidas a las del UTP. Además, puede utilizar los mismos conectores RJ45. Figura 4-8 Cable FTP. Par trenzado con pantalla global. En la actualidad, un cable Ethernet de red estándar es un cable UTP 8 Categoría 5 que en su interior aloja 4 pares de hilos, el secreto de su velocidad, recubiertos con una malla metálica cuyo propósito es el de proteger los datos de todo tipo de interferencias eléctricas. Aunque los criterios de rendimiento de la Categoría 5e y Categoría 6 productos son los mismos para ambos entornos, los requisitos para proteger a los productos procedentes de las condiciones ambientales pueden ser muy diferentes. Comunicaciones PLC vía Ethernet 30 4.3.3 Puerto Ethernet del PLC El puerto serie RJ45 en nuestro PLC se localiza en la zona media del módulo BMX P34 2020 como se observa en la Figura 4-9. Figura 4-9 Puerto RJ45 Ethernet. El estado de la comunicación Ethernet se indica mediante los leds del frontal del módulo. Los colores y los modelos de intermitencia de los LED indican el estado y las condiciones de funcionamiento de las comunicaciones Ethernet en el módulo: Tabla 4-2 Código errores puerto Ethernet. La interfaz 10/100 BASE-T del módulo es un conector RJ45 estándar. En entornos industriales, los cables utilizados deben tener las siguientes características:  par doble trenzado y blindado  impedancia 100 ± 15 (de 1 a 16 MHz)  atenuación máxima 11,5 dB/100 metros  longitud máxima 100 metros Las diferentes velocidades de la línea disponibles son:  100 Mb en semiduplex 31 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales  100 Mb en dúplex completo  10 Mb en semiduplex  10 Mb en dúplex completo El usuario no puede configurar la velocidad de la línea. Las características de adaptación de velocidad son:  La detección automática y la negociación automática permiten al módulo Ethernet configurarse rápidamente al modo de dúplex y a la velocidad del conmutador Ethernet local.  La velocidad negociada entre dos dispositivos Ethernet está limitada a la velocidad del dispositivo más lento. 4.4 Configuración del PL Para configurar el funcionamiento de un puerto Ethernet de comunicaciones de un PLC M340 de Schneider se requiere utilizar la aplicación Unity Pro XL, que también será necesaria para programar el PLC. Tras haber creado el proyecto, en primer lugar, debemos crear una nueva red en el menú „Explorador de proyectos‟ como se puede observar en la Figura 4-10. Figura 4-10 Crear una nueva red Ethernet Le asignaremos en este caso el nombre Ethernet_1 para poder identificarla en futuras configuraciones. A continuación, podremos ver la pantalla donde le asignaremos la IP que identificará el PLC en nuestra red, cada dirección debe ser válida y única en la red. Debemos elegir en primer lugar la Familia de Modelo, una vez seleccionada aparecerán las opciones correspondientes como muestra la Figura 4-11. Accedemos al módulo que contiene el puerto Ethernet y podremos corroborar la configuración de la IP asignada como indica la Figura 4-12, y validamos los cambios. No es necesario configurar parámetros relacionados con la velocidad y la comunicación como ocurría en Modbus, en este caso se utiliza todas las características del protocolo Ethernet aplicando el estándar 802.3 de la norma IEEE 9 que define las reglas para configurar la red. 9 Definición en el Anexo II Comunicaciones PLC vía Ethernet 32 Figura 4-11 Pantalla configuración IP. Figura 4-12 Configuración del puerto Ethernet. 33 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales 5 PROGRAMACIÓN DEL PLC ara poder llevar a cabo las comunicaciones entre los conmutadores después de realizar la configuración en cada equipo será necesario conocer las diferentes funciones de las que disponemos para poder recoger los datos necesarios para el funcionamiento deseado del PLC y la distribución de la memoria a la que tienen accesos los PLCs entre ellos. 5.1 Distribución de la memoria Aunque nuestros PLCs dispongan de varios módulos la comunicación entre autómatas solo se puede realizar con los registros de la memoria principal en el preprocesador (P34 2020). Estos registros se pueden ver en la pestaña „Objetos de E/S‟ de las propiedades de dicho módulo. Seleccionamos los registros de la memoria como se puede ver en la Figura 5-1 y seleccionamos actualizar cuadrícula en el botón que aparece al final de todas las opciones. Figura 5-1 Opciones visualizar memoria P34 2020. Al actualizar la cuadrícula nos aparece a la derecha la memoria de la que disponemos con el tipo de dato y la dirección que le corresponde como indica la Figura 5-2. Comprobamos que los tipos de datos a los que se puede acceder son de tipo BOOL e INT. P Programación del PLC 34 Figura 5-2 Memoria principal. A la hora de diseñar nuestra solución independientemente del protocolo a utilizar debemos tener claro:  Las variables que necesitan ser leídas por otro PLC deben estar almacenadas en la memoria principal.  Si vas a leer de otro autómata, saber dónde se almacenan las variables que necesitas en el otro PLC y conocer la dirección en la que la vas a guardar los registros leídos en tu memoria principal con el buffer de recepción.  Si vas a escribir en otro autómata, conocer la dirección en la que debe ir el dato que te interesa escribir. En la configuración de Variables e instancias FB podremos declarar las variables y asociarlas a la zona de memoria que nos convenga. Figura 5-3 Figura 5-3 Declarar variables. 35 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales 5.2 Funciones Para la comunicación entre el maestro y los esclavos normalmente en la programación desde cualquier lenguaje se debería montar la trama como se detalló anteriormente haciendo uso de los diferentes códigos de funciones de los que disponemos. En este caso, utilizando Unity Pro tenemos las funciones de comunicación READ_VAR y WRITE_VAR en las que indicándoles los parámetros necesarios generan la trama a enviar sin necesidad de indicarle el Código de Función de Modbus. La tabla 5-1 muestra lo que sería la equivalencia con el Código Modbus del que habría que hacer si no dispusiéramos de Unity Pro. Básicamente las funciones de Unity Pro nos facilita el tedioso trabajo de montar la trama como se haría en un lenguaje de programación como C o Java. Por otro lado, es posible enviar cualquier solicitud de Modbus a un dispositivo esclavo mediante la función de comunicación DATA_EXCH. Con esta función podremos usar cualquiera Código de Función de Modbus, la desventaja es que es más complicado de usar. Por lo general, la mayoría de los problemas se resuelven sin la necesidad de acudir a esta función. Tabla 5-1 Código de Funciones Modbus equivalentes en Unity Pro. Básicamente las funciones de Unity Pro nos facilita el tedioso trabajo de montar la trabaja como se haría en un lenguaje de programación como C o Java. Debemos tener en cuenta que las utilidades de escritura se pueden enviar en modalidad Broadcast, en este caso, no recibe respuesta al emisor.  READ_VAR. Permite al maestro enviar una petición de lectura de valores a un esclavo, para que este devuelva los valores de una zona de memoria o de entradas. En concreto, se pueden leer objetos de tipo %M, %I, %MW y %IW de los esclavos, esto es, valores de bit (booleanos) o enteros en formato palabra (Word), de memoria o de entradas.  WRITE_VAR: Permite al maestro enviar valores a un esclavo para que los escriba en una zona de su memoria. En concreto, se pueden escribir valores en objetos de memoria de tipo %M y %MW de los esclavos, esto es, valores de bit o enteros en formato palabra de la memoria interna.  DATA_EXCH: Permite especificar el código de función de MODBUS que el esclavo debe ejecutar, enviar una tabla de valores enteros a un esclavo, y esperar la recepción de otra tabla de valores enteros desde el esclavo. De este modo, se pueden programar procedimientos específicos de acceso a los parámetros de un dispositivo esclavo determinado, siguiendo el protocolo MODBUS. Más generalmente, es posible enviar cualquier solicitud de Modbus a un dispositivo esclavo mediante la función de comunicación DATA_EXCH. Las tres funciones están disponibles en los lenguajes FBD (diagrama de bloques funcionales), Ladder (diagrama de contactos) y ST (texto estructurado). En contraste, un equipo o PLC que se configura como esclavo de MODBUS, atenderá automáticamente las peticiones del maestro del bus, y no requiere una programación especial de las comunicaciones. Su programa solamente deberá encargarse de mantener correctamente actualizadas las direcciones de memoria cuyos valores puede solicitar el maestro, así como de atender los valores de las zonas de memoria donde el maestro escribe. Programación del PLC 36 En el caso de las comunicaciones con el protocolo Ethernet las funciones serán las misma con la diferencia de que en una red no tiene el modelo Maestro-Esclavo y por lo tanto todos pueden leer y escribir en otro PLC mientras que también pueden ser leídos y escritos por otro equipo de la red. Es necesario activar antes en Unity Pro las matrices dinámicas en Ajustes de Proyecto dentro del menú Herramientas. Figura 5-4 Pantalla para permitir matrices dinámicas. A continuación, se detalla el uso de cada función en Modbus y su símil en Ethernet. Se puede observar que son equivalentes para los dos tipos de protocolos, la principal diferencia es la dirección a utilizar. 37 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales 5.2.1 Gestión de direcciones El primer paso para poder trabajar con las funciones para trasmisión de datos en el PLC maestro es generar las direcciones de los esclavos a los que se desea acceder con un formato que entienden las funciones de transmisión. Para ello se dispone de la función ADDM. La Figura 5-2 muestra ejemplos del uso del bloque FBD y de la sintaxis de ST para esta función. Figura 5-5 Sintaxis de la función ADDM (Modbus). Las entradas y salidas de esta función son las indicadas en la Tabla 5-2: Tabla 5-2 Parámetros función ADDM (Modbus). En el caso de la comunicación Ethernet solo cambia la entrada que se debe indicar con el nombre de la red seguido de la IP con la que queremos conectar como podemos ver en la Figura 5-3. Figura 5-6 Función ADDM (Ethernet). Programación del PLC 44 Tabla 5-8 Tabla de informe de operación II. 5.4 Acceso a las características de un canal de E/S Si se desea acceder a toda la información de estado de un canal E/S del PLC, es necesario definir una variable IODDT (objeto de tipos derivado de datos de entrada/salida) del tipo adecuado al canal deseado. A través de los campos de esa variable se pude acceder al estado del canal, para detectar posibles errores, o para cambiar alguna configuración durante la ejecución del programa. Cada IODDT tiene un conjunto de objetos de lenguaje que se usan para controlar y comprobar el funcionamiento del IODDT. Existen dos tipos de objetos de lenguaje:  implícito: los objetos de intercambio implícito se intercambian automáticamente en cada evolución de ciclo de la tarea asociada con el módulo. Estos intercambios implícitos son aquellos relativos al estado de los módulos, las señales de comunicación, los esclavos, etc.  explícito: los objetos de intercambio explícito se intercambian a petición de la aplicación mediante instrucciones de intercambio explícito. Estos intercambios establecen parámetros y comprueban el módulo. Por otra parte, cuando se desea un mayor control por programa de un canal E/S de un PLC, es necesario recurrir a un acceso directo e inmediato a las variables del módulo. Esto es lo que se denomina un intercambio de datos explicitico a petición del programa de usuario que ejecuta el PLC, en contraste con el intercambio implícito determinado por el ciclo de lectura de entradas, ejecución de programa y escritura de salidas. Para realizar un intercambio explícito en un M340, se dispone de dos funciones: READ_STS para lectura de palabras de estado y WRITE_CMD para escritura de palabras de comando. Las instrucciones READ_STS y WRITE_CMD se ejecutan al mismo tiempo que la tarea que las llama y siempre correctamente, y su resultado queda disponible automáticamente después de su ejecución. 5.4.1 Acceso a las características del protocolo Modbus Para el protocolo MODBUS sobre el puerto serie, el PLC M340 admite un tipo de datos IODDT denominado 45 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales T_COM_MB_BMX. La forma más sencilla de definir una variable de este tipo para una CPU BMX P34 2020 es crear directamente en la tabla de datos derivados esa variable indicando su nombre, el tipo T_COM_MB_BMX, y la dirección %CH0.0.0, que se corresponde con el canal 0 del puerto serie. La Figura 5-9 muestra la lista de campos que contiene la variable port, creada según se ha descrito. Figura 5-13 Figura de los campos de la variable port en Modbus. La columna “comentario” indica la utilidad de cada campo. En particular los siguientes campos son interesantes para nuestro proyecto:  CH_ERROR. Este campo booleano de lectura se pone a TRUE cuando el protocolo MODBUS detecta algún error. Como es un valor %I que se actualiza de forma implícita, se pude consultar directamente desde el programa, con una sintaxis como PuertoSerie.CH_ERROR. Para conocer más detalles sobre el error hay que consultar otros campos de la variable.  TO_MODBUS_MAESTRO. Al poner a TRUE este campo, se fuerza el cambio a modalidad de maestro de MODBUS. Pero para acceder a campo de tipo %MW hay que ejecutar una operación explicita. Así, para asignar un nuevo valor, es necesario actualizar primero el campo con PuertoSerie.TO_MODBUS_MAESTRO:=true y después hacer una operación de escritura explicita: WRITE_CMD (PuertoSerie). De forma similar, para leer su valor, primero hay que ejecutar READ_STS (PuertoSerie).  TO_MODBUS_ESCLAVO. Este campo funciona como el anterior, pero sirve para forzar el cambio a Programación del PLC 46 modalidad de esclavo de MODBUS. Existe una gran variedad de tipos IODDT y de posiciones de memoria que permiten acceder a propiedades concretas de los canales de E/S, para comprobar su estado y cambiar su configuración en tiempo de ejecución. Más información sobre estos parámetros, se pueden consular los manuales del PLC o la ayuda de Unity Pro XL. 5.4.2 Acceso a las características del protocolo Ethernet De forma similar que como se indica en el apartado anterior la mejor forma para definir esta variable es crear directamente una tabla de datos de derivados de tipo T_COM_ETH_BMX. Esta variable cuenta con numerosos campos por lo que se aconseja mirar el manual de Unity Pro [18]. El puerto Ethernet ofrece un gran abanico de posibilidades, enviar correos, acceder vía web, asignar direcciones mediante DHCP y SNMP. Si se utilizan varios servicios a la vez es necesario controlar las comunicaciones y que no se produzcan varias a la vez del mismo tipo y se solapen datos, por ello es útil dominar la variable T_COM_ETH_BMX 5.5 Información de depuración de comunicación 5.5.1 Depurar comunicación Modbus Con Unity Pro se pueden monitorizar la información básica de una comunicación serie cuando la aplicación está conectada a una CPU M340 en ejecución. Esta información está disponible en la pantalla de depuración para MODBUS serie, a la cual se accede a través de la configuración del puerto serie (ver sección 3.4). En esa pantalla, se dispone de dos áreas que muestran el modo de trabajo de la CPU, maestro o esclavo, y un área de contadores como la mostrada en la Figura 5-10. Figura 5-14 Contadores para depuración Modbus. Los contadores de depuración de la comunicación MODBUS serie son los siguientes:  Contador de mensajes del bus: este contador indica el número de mensajes que el procesador ha detectado en la conexión serie. No incluye mensajes con un resultado negativo de CRC.  Contador de errores de comunicación del bus: este contador indica el número de resultados negativos de CRC que ha contado el procesador. Si se detecta un error de caracteres (error de paridad, desborde), o el mensaje es inferior a tres bytes de longitud, el sistema que recibe los datos no puede calcular el CRC. En estos casos, el contador se incrementa en consecuencia.  Contador de errores de excepción de esclavo: este contador indica el número de errores de excepción 47 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales de MODBUS detectados por el procesador.  Contador de mensajes de esclavo: este contador indica el número de mensajes recibidos y procesados por la conexión MODBUS.  Contador de esclavos sin respuesta: este contador indica el número de mensajes enviados de los que no ha recibido respuesta (ni una respuesta normal ni una respuesta de excepción). Incluye además el número de mensajes recibidos en modalidad Broadcast.  Contador de confirmaciones de esclavo negativas: este contador indica el número de mensajes enviados al sistema remoto para los que ha devuelto una confirmación negativa.  Contador de esclavos ocupados: este contador indica el número de mensajes enviados al sistema remoto para los que ha devuelto un mensaje de excepción de esclavo ocupado.  Contador de desbordamiento de caracteres del bus: este contador indica el número de mensajes enviados al procesador que no pueden adquirirse debido al desbordamiento de caracteres del bus. El desbordamiento ha sido provocado por uno de estos motivos: Datos de tipo carácter que se transmiten por el puerto serie más rápidamente de lo que pueden almacenarse, o pérdida de datos debida a una anomalía del hardware. Para todos los contadores, la cuenta comienza en el reinicio, la operación de borrado de contadores o el arranque del procesador más reciente. [19] 5.5.2 Depurar comunicación Ethernet Se puede depurar el módulo Ethernet examinando los indicadores LED físicos de la parte delantera del módulo o de la pantalla de depuración del software Unity Pro. En la zona de configuración de nuestro módulo Ethernet y estando en modo conexión podremos ver, como se muestra en la Figura 5-11, información para poder depurar una comunicación Ethernet. Figura 5-15 Pantalla depuración comunicación Ethernet.  SMTP: muestra el estado del servidor SMTP (sólo módulos de CPU) en los casos que se esté haciendo uso del mismo.  Exploración E/S: muestra el estado de cada módulo remoto de entrada y salida. Programación del PLC 48  Datos globales: muestra el estado de las variables de datos globales A la izquierda disponemos de un contador similar al de Modbus y una gráfica con el tráfico de los mensajes trasmitidos como vemos en la Figura 5-12. Figura 5-16 Depuración Ethernet, tráfico de mensajes. Esta ventana informa del número de:  Conexiones TCP/IP abiertas (el número combinado de servidor, cliente y conexiones de acceso de dispositivo transparente que están abiertas).  Conexiones TCP/IP no autorizadas.  Mensajes TCP/IP rechazados.  Mensajes TCP/IP recibidos.  Mensajes TCP/IP enviados. Esta ventana incluye tres botones:  Restablecer contadores: para restablecer los contadores en 0.  Ping: para probar el enrutamiento entre el módulo y otro dispositivo mediante una solicitud PING  Ancho de banda: para ver el número de mensajes recibidos por segundo en la ventana ancho de banda. 5.6 Ejemplo comunicación Modbus A continuación, se expondrán dos ejemplos básicos de las comunicaciones Modbus y Ethernet. Las funciones a utilizar y la declaración de variables se realizan de la misma manera, el cambio a destacar es que en Modbus deberemos darle la dirección del esclavo mientras que en Ethernet se proporciona la dirección IP de otro PLC. Se debe tener claro: o De qué manera tenemos conectados los PLC, con que configuración y con qué cableado para evitar 49 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales problemas de conectividad. o En una comunicación Modbus solo puede leer y escribir el maestro en los esclavos y no al revés. En Ethernet todos los PLC pueden leerse y escribirse entre ellos.  PLC Maestro Comenzando por el lado del maestro, lo primero será configurar el PLC como se indicó en la sección 3.4. Una vez indicado que será el maestro y los parámetros de configuración, el siguiente paso será declarar las variables necesarias para utilizar las funciones indicadas en la sección 5.1. (Figura 5-11).  Buffer de recepción: almacena lo leído por la función READ_VAR, en este caso vamos a leer en la memoria del esclavo los registros que van desde la posición 100 hasta la 109. En el maestro se guardarán desde la dirección 8 hasta la 17.  Tabla de gestión: necesaria una por cada función.  Buffer de envío: almacena los valores a escribir en el PLC esclavo, puede escribirse directamente, el almacenado en la memoria o de una entrada mediante la dirección. En este caso se escribirá en el esclavo en los registros del 50 al 59. Se recomienda asignar una dirección de memoria a las variables, en este caso se han puesto consecutivas, pero se puede elegir una distribución estratégica según el problema a resolver. En la Figura 5-12 se representa un ejemplo básico en el que el maestro lee continuamente del esclavo 5 y escribe los valores indicados. Programación del PLC 50 Figura 5-17 Variables básicas en el maestro para comunicación Modbus. 51 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales Figura 5-18 Programación Maestro en una comunicación Modbus.  PLC Esclavo El esclavo solo necesita la configuración indicada en el apartado 3-4, se programará normalmente almacenando las variables que nos interesa que lea el Maestro en la zona de memoria a la que apunta READ_VAR. En este ejemplo en el esclavo se deben almacenar en los registros 100 al 109 de la memoria principal. 5.7 Ejemplo comunicación Ethernet Como se ha podido observar a lo largo de la memoria existe una gran similitud en la programación de las comunicaciones de los protocolos. En este caso ocurre de igual manera, tras configurar nuestro PLC como indica la sección 4-4 declaramos las variables necesarias para recoger los datos y escribir en otro PLC. Realizaremos el mismo ejemplo que en Modbus para poder entender de forma clara la base de las comunicaciones entre autómatas utilizando las mismas variables, la única diferencia es la dirección, en este caso se utiliza la IP precedida del nombre de la red creada en la configuración del PLC (Figura 5-13). Este tipo de protocolo los dos PLCs pueden estar leyendo y escribiendo el uno del otro simultáneamente. Programación del PLC 52 Figura 5-19 Programación PLC en una comunicación Ethernet. 53 6 IMPLEMENTACIÓN DE UNA RED INDUSTRIAL PARA LABORATORIO 6.1 Objetivo de la red industrial Pero la mejora en los procesos de automatización pasa hoy en día por el desarrollo de las redes de comunicación. La intercomunicación de sistemas y procesos industriales no es un concepto nuevo, pues es ampliamente conocido el uso de sistemas como IEEE-488 10 y RS485/422 que durante más de 20 años han sido capaces de ofrecer los requerimientos necesarios en las instalaciones de baja y media complejidad en cuanto a las capacidades de intercomunicación se refiere. Este tipo de enlaces entre sistemas se ha empleado esencialmente para equipos de instrumentación y sistemas de automatización, donde es necesaria una baja tasa de transferencia de datos entre equipos, pero que en gran número de casos hoy en día ya no puede responder a las necesidades de intercomunicación entre dispositivos que se demandan. Por ello, redes de comunicación como Ethernet han conseguido ser indispensables en un entorno de trabajo donde cada día es más necesaria la integración global. Por tanto, los sistemas de automatización industrial y su funcionamiento distribuido forman parte de un concepto de mayor entidad, encaminado a la optimización global de las industrias mediante la mejora de los procesos de fabricación, la reducción de costes, el incremento en la calidad, la mejora de la eficiencia, la mayor flexibilidad en los procesos de producción y, en general, todos aquellos factores que permitan adaptarse de manera eficiente a las necesidades del mercado al que está orientado el producto. 6.1.1 Sistemas industriales de control Se distinguen tres tipos de sistemas de control industrial: control centralizado, control híbrido y control distribuido. La importancia de las tareas a realizar, o la posibilidad de subdividir la tarea de control del proceso o conjunto de máquinas en esas funciones autónomas, determinará en muchos casos la elección de un tipo u otro de control. 6.1.1.1 Control centralizado Esta aproximación es la que se sigue en el caso de sistemas poco complejos, donde un proceso puede ser gestionado directamente mediante un único elemento de control encargado de realizar todas las tareas del proceso de producción y que puede incluir un sistema de monitorización y supervisión. Conforme las necesidades de producción han requerido mayor complejidad, una tendencia ha sido la de emplear elementos de control más complejos y potentes, manteniendo en un único elemento todo el control del proceso, con la complejidad que ello supone, ya que se hace necesario hacer llegar todas las señales de sensores y cablear todos los actuadores allá donde se encuentren. Como ventajas de esta metodología se tiene que no es necesario planificar un sistema de intercomunicación entre procesos, ya que todas las señales están gestionadas por el mismo sistema. Por otro lado, para sistemas poco complejos, posee un menor coste económico. En cambio, posee numerosas desventajas, ya que, si el sistema falla, toda la instalación queda paralizada, siendo necesario un sistema redundante para evitar estas situaciones. 10 Creado en 1970. El IEEE-488 permite que hasta 15 dispositivos inteligentes compartan un simple bus paralelo de 8 bits, mediante conexión en cadena, con el dispositivo m{s lento determinando la velocidad de transferencia. La m{xima velocidad de transmisión est{ sobre 1 MB/s en el est{ndar original y en 8 MB/s con IEEE-488.1-2003 Implementación de una red industrial para laboratorio 60 Figura 6-6 Esquemático procesamiento por lotes. En este caso el esclavo dos se encargará de descarga la pintura a los tanques medidores y controlará las válvulas para llenar el tanque mezclador. El esclavo uno ejecuta el proceso de mezclado y la descarga final. La cabecera dará la orden al esclavo dos de comenzar el proceso cuando la cabecera de la planta de cajas le informe de que ya se dispone pintura necesaria. 6.3.3 Visión general del escenario En cada proceso asignado a cada autómata definimos qué cambio hace que el sistema pase al siguiente paso en el siguiente PLC. En la Figura 6-7 vemos un diagrama de secuencia en el que se refleja que acción hace que un proceso finalice y comience el siguiente. El simulador se visualiza siempre en los esclavos, uno por ello para que lo que el esclavo dos realice se pueda ver en la simulación, la cabecera debe realizar de intermediario entre los dos esclavos. De esta manera lo que modifique el segundo se podrá visualizar en la pantalla del primero, y poder seguir la simulación.  Planta clasificadora.  Esclavo 1: recibe las cajas, almacena en una variable si es alta o baja y la lleva hasta la plataforma de descarga.  Esclavo 2: detecta que la caja está en la plataforma de descarga, lee la variable que el maestro le actualiza con la información de la altura que lee del esclavo 1 y la gira para que salga por la cinta correcta para almacenar.  Cabecera 1: detecta que se ha almacenado una caja, lee la variable que indica la altura y actualiza los contadores que almacenan el número de cajas recibidas. La cabecera también debe controlar que el proceso que realiza el segundo esclavo se visualice en el primero. 61 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales  Planta mezcladora de pintura.  Cabecera 2: lee continuamente los contadores de la cabecera 1, cuando se dispone de las cajas necesarias ordena al esclavo 2 comenzar el proceso.  Esclavo 2: la cabecera le indica el comienzo del proceso y descarga la pintura en los tanques medidores.  Esclavo 1: cuando los sensores de los tanques medidores indican que están llenos comienza la mezcla. Al igual que en la planta clasificadora la cabecera actualizará los actuadores en el esclavo uno para que se pueda visualizar en el simulador. Al finalizar el mezclado el esclavo 1 actualiza la variable fin de proceso que la cabecera 2 lee y esta se lo comunica a la cabecera 1 para que inicie el proceso en su esclavo 1. Figura 6-7 Diagrama de secuencia. Implementación de una red industrial para laboratorio 62 6.4 Desarrollo de la solución. 6.4.1 Declaración de variables A continuación, declararemos las variables que necesitamos para la programación y la comunicación de los autómatas. Previamente deberán ser configurados cada PLC con su IP o el número de esclavo, según el rol asignado. 6.4.1.1 Planta clasificadora de cajas La planta dispone de sensores y actuadores que se leen gracias al módulo de adquisición de datos y que son guardados en la memoria principal del autómata para que puede ser leída o modificada por otros PLCs cuando sea necesario.  Esclavos: Los esclavos uno y dos son los que se comunican a tiempo real con el simulador, les asignaremos en la memoria principal el valor de la dirección de memoria del ITS de los sensores y actuadores. El esclavo uno también contará con una variable donde almacenará si la caja que transporta es alta o baja, el esclavo 2 tendrá otra variable con la altura que le actualiza el maestro. Dir. adq. de Datos Dir. Mem. Sensor Descripción %I0.1.0 %M0 0 Detector de salida de la banda alimentadora. %I0.1.1 %M1 1 Detector de altura de caja alta. %I0.1.2 %M2 2 Detector de salida de las mesas transport. de entrada. %I0.1.3 %M3 3 Detector de posición de carga de plataforma giratoria. %I0.1.4 %M4 4 Detector de salida de las mesas transport. de entrada. %I0.1.5 %M5 5 Detector de posición de descarga de plataforma giratoria. %I0.1.6 %M6 6 Detector de pallet de plataforma giratoria. %I0.1.7 %M7 7 Detector de entrada de la mesa transportadora de salida. %I0.1.8 %M8 8 Detector de entrada de la mesa transportadora de salida %I0.1.9 %M9 9 Detector de salida de la mesa transportadora de salida. %I0.1.10 %M10 10 Detector de salida de la mesa transportadora de salida. Tabla 6-1 Sensores planta clasificadora. 63 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales Dir. adq. de Datos Dir. Mem. Actuador Descripción %Q0.1.16 %M11 0 Banda alimentadora. %Q0.1.17 %M12 1 Mesa transportadora de entrada. %Q0.1.18 %M13 2 Rodillos de plataforma giratoria (carga). %Q0.1.19 %M14 3 Rodillos de plataforma giratoria. %Q0.1.20 %M15 4 Plataforma giratoria. %Q0.1.21 %M16 5 Mesa transportadora de salida. %Q0.1.22 %M17 6 Mesa transportadora de salida. Tabla 6-2 Actuadores planta clasificadora.  Cabecera: necesitara consultar la variable del esclavo 1 que almacena la altura de la caja que le ha llegado y la actualizará en el esclavo 2, también leerá del esclavo 2 la dirección de memoria %M9 y %M10 para saber cuándo se almacena una caja y actualizar las dos variables que contabilizan las cajas almacenadas. Por otro lado, consultará de la cabecera 2 la variable que indica fin del proceso para poder saber cuándo acaba la mezcla y dar paso a otra caja en el esclavo 1. 6.4.1.2 Planta procesamiento por lotes En este caso guardaremos de forma similar el valor de los sensores y los actuadores en los esclavos uno y dos que son los que realizarán el proceso cuando le llegue la orden de la cabecera 2. .  Esclavos: los esclavos uno y dos almacenaran en su memoria el valor de la dirección de los sensores y los actuadores del sistema de adquisición de datos. En este caso no hará falta tener variables extras. Dir. adq. de Datos Dir. Mem. Sensor Descripción %I0.1.0 %M0 0 Detector de nivel bajo del tanque medidor de pintura roja. %I0.1.1 %M1 1 Detec.de nivel medio del tanque medidor de pintura roja. %I0.1.2 %M2 2 Detector de nivel alto del tanque medidor de pintura roja. %I0.1.3 %M3 3 Detec. de nivel bajo del tanque medidor de pintura verde. %I0.1.4 %M4 4 Det. de nivel medio del tanque medidor de pintura verde %I0.1.5 %M5 5 Detec. de nivel alto del tanque medidor de pintura verde. %I0.1.6 %M6 6 Detector de nivel bajo del tanque medidor de pintura azul %I0.1.7 %M7 7 Detec. de nivel medio del tanque medidor de pintura azul. Implementación de una red industrial para laboratorio 64 %I0.1.8 %M8 8 Detector de nivel alto del tanque medidor de pintura azul. %I0.1.9 %M9 9 Detector de nivel bajo del tanque de mezclado. %I0.1.10 %M10 10 Detector de nivel alto del tanque de mezclado. Tabla 6-3 Sensores planta procesamiento por lotes. Dir. adq. de Datos Dir. Mem. Actuador Descripción %Q0.1.16 %M11 0 Válvula de descarga del depósito de pintura roja. %Q0.1.17 %M12 1 Válvula de descarga del tanque medidor de pintura roja %Q0.1.18 %M13 2 Valv. de descarga del depósito de pintura verde. %Q0.1.19 %M14 3 Válvula de descarga del tanque medidor de pintura verde. %Q0.1.20 %M15 4 Valv. de descarga del depósito de pintura azul. %Q0.1.21 %M16 5 Válvula de descarga del tanque medidor de pintura azul. %Q0.1.22 %M17 6 Mezclador. %Q0.1.23 %M18 7 Válvula de descarga del tanque de mezclado. Tabla 6-4 Actuadores planta procesamiento por lotes.  Cabecera 2: leerá continuamente de la cabecera uno los contadores. Cuando tenga las cajas necesarias para llevar a cabo la mezcla activará el inicio de proceso del esclavo 1. También consulta del esclavo 1 la variable que indica el fin del procesa y que es consultada por la cabecera 1. Se debe tener en cuenta:  Para asignar un sensor/actuador a una variable esta debe ser EBOOL.  Para asignar la variable de un sensor/actuador debe ser a través de una bobina. Por ejemplo, la válvula de descarga le llamamos VAL_DESCARGA asignada a la dirección %Q0.1.23 del ITS. Ahora necesitamos asignarla a la memoria principal de la siguiente manera: 65 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales Figura 6-8 Asignar valor ITS en la memoria principal.  Al leer los datos en la cabecera se almacenan en la tabla_recepcion en un array de enteros. Necesitamos convertir el dato que nos interesa a BOOL para poder asignarle el dato leído a otra variable. En la Figura 6-9 se observa que convertimos la variable que hemos leído del esclavo que indica que debe comenzar el proceso, al leerlo se almacena en valor que nos interesa en la segunda posición de la tabla_recepc. Para poder utilizarla la convertimos a BOOL con la función INT_TO_BOOL. Figura 6-9 Función INT_TO_BOOL. 6.5 Especificaciones de cableado del laboratorio 6.5.1 RS-485. Polarización y terminación de la línea Modbus El puerto serie puede funcionar con las señales físicas RS-232 o RS-485, y tiene una conexión RJ- 45 que incluye las líneas básicas para los dos modos. El conector RJ-45 del puerto serie es el situado en la parte inferior y con una marca negra. Aunque el conector RJ-45 es el mismo que el usado en redes de datos Ethernet, el cableado y las señales eléctricas son diferentes. En nuestro proyecto usaremos el RS485. Implementación de una red industrial para laboratorio 66 Como explicamos en el punto 5.1 la comunicación Modbus serie se utilizará para comunicar cada trio de PLC. Para ello los compañeros del laboratorio tuvieron que realizar el cableado para el bus RS485 de cada fila. Figura 6-8 muestra la disposición de las conexiones del puerto serie, así como los dos modos de cableado de colores estándar para un conector RJ-45 de Ethernet. Con el puerto serie en modo RS-232, el PLC actúa como equipo DTE (equipo inteligente) y se pude comunicar con un DCE (módem). Así, TD y RTS son señales de salida del PLC, y RD y CTS son señales de entrada. Si se usa el modo RS-485, se dispone de las líneas D1 y D0 (también denominadas A y B, o + y -) para el bus, y de la línea de referencias de señales de 0V (GND, o signal ground). Se observa como las líneas D1, D0 y 0V coinciden, respectivamente, con los cables de color estándar azul, azul/blanco y marrón. Figura 6-10 Conector RJ-45. El estándar RS-485 define un bus para la transmisión serie multipunto, donde, en un instante, puede haber un equipo transmitiendo y varios recibiendo. La comunicación es semiduplex, de forma un equipo puede enviar y recibir, pero no a la vez. El cableado básico consiste en un par de hilos de cobre trenzados sobre el que se transmite una señal diferencial para enviar los bits de datos, que es bastante inmune a las interferencias y admite largas distancias. Además del par trenzado para datos, pueden usarse líneas de 0V y 5V para alimentar dispositivos del bus. Los bits se transmiten mediante una trama asíncrona. La Figura 6-9 describe como se debe realizar la conexión con RS-485 de tres PLC M340. Se usan las líneas de datos D0 y D1 y la de 0V. También se puede utilizar la de chasís (earth), que se conecta a la malla de blindaje del cable. En los extremos del cable trenzado del bus RS-485 se requiere unas resistencias terminales Rt de 120Ω, que se pueden conectar en serie con una capacidad de 1nF. Los PLC M-340 no incluyen internamente las resistencias terminales, por lo que esos componentes hay que colocarlos en el cable. La capacidad hace que la resistencia solo tenga efecto con señales de frecuencias altas, esto es, cuando se transmiten datos. Las resistencias Rp, que se encargan de aplicar la tensión de polarización del bus, las pone el PLC configurado como maestro, por lo que no es necesario cablearlas externamente. Finalmente, se puede mejorar la conexión con unas resistencias Rg entre la línea de 0V y los equipos para limitar las corrientes de retorno al común. 67 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales Figura 6-11 Cableado de los interfaces serie con R485. En la realización de esta práctica, para simplificar las conexiones, y dado que las distancias entre equipos serán pequeñas y no habrá un ambiente con ruido electromagnético, se prescindirá de las resistencias Rg, y de la malla del cable. Tampoco se usará la línea de alimentación de 5V, que puede utilizarse para suministrar alimentación a los dispositivos del bus RS-485 sin fuente de alimentación propia. De este modo, en la práctica se montará un cableado como el que se puede ver en el esquema de la Figura 6-10. [19] Figura 6-12 Montaje cable bus Modbus RS-485. 6.5.2 Montaje cableado Ethernet. Para la conexión de las cabeceras se ha utilizado un cable Ethernet, par trenzado sin apantalla 10BASE-T uniendo las cabeceras a un switch. Los conectores son RJ45 como en Modbus. Se ha utilizado un switch del modelo X que dispone de X puertos. Para esta parte del montaje no se necesita tener en cuenta nada especial, ni ha sido necesario diseñar el cableado. Implementación de una red industrial para laboratorio 68 69 7 CONCLUSIONES Y LÍNEAS FUTURAS DE TRABAJO 7.1 Conclusiones El uso de redes de comunicación en arquitecturas de automatización industrial incrementa su flexibilidad de tal manera que pueden cumplir los requerimientos para adaptar máquinas o plantas. Ello implica hacer decisiones que requieren de un conocimiento específico de las soluciones adecuadas entre una amplia gama de redes de comunicación. Deben utilizarse criterios simples: los productos deben ser abiertos, estandarizados y adecuados.  Una red abierta, lo contrario a una red propietario, permite la libre elección del fabricante de dispositivos de automatización.  Una red estandarizada internacionalmente garantiza su durabilidad y posibilidad de actualización y mejora.  Una elección equilibrada entre los requerimientos de la máquina o de la planta y las prestaciones de la red es la manera de optimizar la inversión. Este último punto es el que requiere, evidentemente, un conocimiento exacto de la oferta de redes de comunicación, que tradicionalmente se tenían como complicadas de seleccionar, implementar y mantener. En nuestro proyecto hemos utilizado autómatas Modicon que ofrece redes abiertas basadas en normas internacionales y adaptadas a los requerimientos de todos los niveles de las arquitecturas de automatización, donde hay definidas clase de implementación para una elección simple y óptima. 7.2 Líneas futuras de trabajo Como líneas futuras de trabajo se plantean:  Establecer toda la red con comunicaciones Ethernet y aprovechar las ventajas que el autómata nos ofrece en esta modalidad, principalmente controlar todos los autómatas desde un único PC. Esto es útil a la hora de controlarlos todos desde un solo puesto, cargar los programas en cada PLC sin tener que desplazarse, puede haber comunicación en entre todos al contrario que en el modo Esclavo- Maestro, poder tener un mayor número de autómatas en nuestra red.  Poder instalar un sistema SCADA desde el que gestionar toda la red de forma gráfica.  Establecer un sistema de alarma ante errores desde una centralita. ANEXO I: Funciones Modbus 76 Ej 1: P:[01][03][01][00][00][06][C4][34] R:[01][03][0C][20][81][00][00][00][00][00][00][00][00][1C][01][76][F1] Ej 2: P:[0A][04][00][00][00][0A][71][76] 0A numero de periférico 04 función de lectura 00 00 registro donde se va a comenzar la lectura 00 0A número de registros a leer: 10 71 76 CRC R:[0A][04][14][00][00][08][4D][00][00][23][28][00][00][0F][A0][00][00][00][90][00][00][00][60][CB ][2E] 0A Número del periférico que responde, 10 en decimal 04 Función de lectura - la que se ha utilizado en la pregunta 14 Número de bytes recibidos (20). 00 00 08 4D V1x 10 (registro 00 Hex) con valor en decimal 212,5 V 00 00 23 28 mA 1, en decimal 9000 mA 00 00 0F A0 W 1, en decimal 4000 W 00 00 00 90 varL 1, en decimal 144 varL 00 00 00 60 PF1 x 100, en decimal 96 CB 2E CRC 9.4 Función 5 (Force Single Coil ): Permite modificar el estado de una DO del esclavo ( mando o relé ) . Es decir mediante este comando podemos modificar algún bit de alguna de las variables internas del esclavo u ordenar la ejecución o activación de un mando. Actúa sobre la zona de memoria de los DOs @0XXXX . El Maestro especifica la dirección del bit o mando que quiere modificar seguido de 0x00 para ponerlo a 0 o 0xFF para ponerlo a 1. El esclavo responde con una trama similar indicando la dirección que ha modificado y el valor que ha establecido en el bit o mando. Petición del máster (modo RTU): NºEsclavo Código Operación: 0x05 Dirección del bit: Estado para el bit: 0xXX ( 0x00 : 0 , 0xFF : 1 ) Byte a 0x00 CRC(16): H L Respuesta del esclavo (modo RTU): NºEsclavo Código Operación: 0x05 Dirección del bit: Estado para el bit: 0xXX ( 0x00 : 0 , 0xFF : 1 ) Byte a 0x00 CRC(16): H L 77 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales Ej 1 : P:[01][05][00][01][FF][00] [DD][FA] R:[01][05][00][00][FF][00][8C][3A] Ej 2: P:[01][05][00][00][00][00][CD][CA] R:[01][05][00][01][00][00] [9C][0A] 9.5 Función 6 ( Preset Single Register ) : Permite la escritura en las AOs del esclavo ( ya sea una señal o valor interno del equipo ), y por tanto actúa sobre la zona de memoria de las AOs ( @4XXXX ). Deberemos indicar la dirección del valor que queremos modificar y la magnitud que queremos asignarle. Luego el esclavo debería responder con la dirección del dato que ha modificado y el valor que le ha asignado, que debería coincidir con el enviado. Aunque en realidad se está escribiendo en el rango de AOs , los registros son direccionados a partir de la dirección 0 ( así el registro @40001 se direcciona 0 ) Petición del máster (modo RTU): NºEsclavo Código Operación: 0x06 Dirección del dato: Valor del dato: CRC(16): H L Respuesta del esclavo (modo RTU): NºEsclavo Código Operación: 0x06 Dirección del dato: Valor del dato: CRC(16): H L Ej: P:[01][06][01][F1][00][02][58][04] R:[01][06][01][F1][00][02][58][04] 9.6 Función 7 (Read Exception Status ) Permite la lectura rápida de un byte fijo de un esclavo, que generalmente es el de excepción y que informa del estado del equipo. No tiene dirección del byte debido a que siempre se lee el mismo byte ( determinado por el propio dispositivo esclavo) : Petición del master (modo RTU): NºEsclavo Código Operación: 0x07 CRC(16): H L Respuesta del esclavo (modo RTU): NºEsclavo Código Operación: 0x07 Valor del octeto: CRC(16): H L ANEXO I: Funciones Modbus 78 9.7 Función 15 (Force Multiple Coils) Permite la modificación simultanea de varios bits de DOs en el esclavo, pasándolos a OFF ( „0‟ ) o a ON ( „1‟) según convenga. Actúa sobre la zona de memoria de las DOs ( @0XXXX ). Así en el comando se pasan la dirección inicial (dirección del primer bit o mando a modificar) y la cantidad y estado de cada uno de los sucesivos mandos ( bits ) a modificar. Petición del máster (modo RTU): NºEsclavo Código Operación: 0x0F Dirección inicial de los mandos ( bits ) H Dirección inicial de los mandos ( bits ) L Cantidad de mandos ( bits ) H Cantidad de mandos ( bits ) L Cantidad de bytes enviados con el estado de los mandos ( bits ) Estado de los 8 primeros mandos ( bits ) a modificar Estado de los 8 siguientes mandos ( bits ) a modificar ... Estado de los 8 últimos mandos ( bits ) a modificar CRC(16): H L Aunque el estado de las DOs se especifica bit a bit, las tramas se componen de bytes, y esto obliga a enviar los estados en grupos de 8. El esclavo no debería hacer caso a los bits sobrantes, es decir, no debería considerar los que queden por encima del último bit indicado en el campo “cantidad de mandos a modificar”. Así, si quisiéramos modificar 12 mandos o relés a partir de la dirección 7, indicaríamos como dirección origen la dirección 7, como cantidad de mandos a modificar 12, y en el campo de estado de mandos: 0x3C , 0x0B ( el esclavo no considerará los que queden por encima del 12o bit ) Relé: 14 13 12 11 10 09 08 07 - 22 21 20 19 18 17 16 15 Bits: 0 1 1 1 1 0 0 0 X X X X 1 0 1 1 Respuesta del esclavo (modo RTU): NºEsclavo Código Operación: 0x0F Dirección inicial de los mandos o bits consecutivos H Dirección del mando o bit L Cantidad de mandos o bits H Cantidad de mandos o bits L CRC(16): H L 9.8 Función 16 (Preset multiple registers) Permite realizar la escritura en un grupo de AOs, y por tanto actúa sobre la zona de AOs ( @4XXXX ). Se debe especificar la dirección a partir de la que queremos comenzar a actualizar valores, el número de valores que queremos actualizar, y la lista de valores que queremos asignar a estos registros. Aunque se está escribiendo en el rango de registros o valores numéricos , los registros son direccionados a partir de la dirección 0 ( es decir el registro @40001 se direcciona 0 ) Petición del máster (modo RTU): NºEsclavo Código Operación: 0x10 79 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales Dirección base de los datos: 2 bytes Número de datos: 2 bytes Valor del dato 0: 2 bytes Valor del dato 1: 2 bytes … Valor del dato n: 2 bytes CRC (16): H L Respuesta del esclavo (modo RTU): NºEsclavo Código Operación: 10H Dirección base de los datos: 2 bytes Número de datos: 2 bytes CRC (16): H L 9.9 Función 20 (Read General Reference): Retorna el contenido de los regitros de la Extended Memory ( @6XXXX ). En la trama se envía la dirección del esclavo, el código de función, el número de bytes que se va a leer y los bytes de comprobación de error. En los datos se establece el grupo o grupos o referencias a leer. Cada grupo se define en un campo "sub-request" que contiene: - Reference type: 1 byte ( debe ser 6 ) - Extended Memory file number: 2 bytes ( 0x01 a 0x0A ) - La dirección del "fichero" a partir de la que queremos comenzar a leer: 2 bytes - La cantidad de registros a leer: 2 bytes Los datos a leer seguidos de los demás campos no debe superar la longitud máxima permitida en los mensajes MODBUS, es decir los 256 bytes. Petición del máster (modo RTU): Slave Address 0x11 Function 0x14 Byte Count 0x0E Sub–Req 1, Reference Type 0x06 Sub–Req 1, File Number Hi 0x00 Sub–Req 1, File Number Lo 0x04 Sub–Req 1, Starting Addr Hi 0x00 Sub–Req 1, Starting Addr Lo 0x01 Sub–Req 1, Register Count Hi 0x00 Sub–Req 1, Register Count Lo 0x02 Sub–Req 2, Reference Type 0x06 Sub–Req 2, File Number Hi 0x00 Sub–Req 2, File Number Lo 0x03 Sub–Req 2, Starting Addr Hi 0x00 Sub–Req 2, Starting Addr Lo 0x09 Sub–Req 2, Register Count Hi 0x00 Sub–Req 2, Register Count Lo 0x02 Error Check (LRC or CRC)-- Respuesta del esclavo (modo RTU): Slave Address 0x11 Function 0x14 Byte Count 0x0C ANEXO I: Funciones Modbus 80 Sub–Res 1, Byte Count 0x05 Sub–Res 1, Reference Type 0x06 Sub–Res 1, Register Data Hi 0x0D Sub–Res 1, Register Data Lo 0xFE Sub–Res 1, Register Data Hi 0x00 Sub–Res 1, Register Data Lo 0x20 Sub–Res 2, Byte Count 0x05 Sub–Res 2, Reference Type 0x06 Sub–Res 2, Register Data Hi 0x33 Sub–Res 2, Register Data Lo 0xCD Sub–Res 2, Register Data Hi 0x00 Sub–Res 2, Register Data Lo 0x40 Error Check (LRC or CRC) –––– 9.10 Función 21 (Write General Reference): Modifica el contenido de los registros de la Extended Memory ( 6XXXX ). Esta función permite trabajar en grupos de registros que no tienen por qué ser contiguos (internamente sí que han de ser contiguos ). Cada grupo se define en un campo "sub-request" que contiene: - Reference type: 1 byte ( debe ser 6 ) - Extended Memory file number: 2 bytes ( 0x01 a 0x0A ) - La dirección del "fichero" a partir de la que queremos comenzar a leer: 2 bytes - La cantidad de registros a leer: 2 bytes Los datos a leer seguidos de los demás campos no debe superar la longitud máxima permitida en los mensajes MODBUS, es decir los 256 bytes. Petición del máster (modo RTU): Slave Address 0x11 Function 0x5 Byte Count 0x0D Sub–Req 1, Reference Type 0x06 Sub–Req 1, File Number Hi 0x00 Sub–Req 1, File Number Lo 0x04 Sub–Req 1, Starting Addr Hi 0x00 Sub–Req 1, Starting Addr Lo 0x07 Sub–Req 1, Register Count Hi 0x00 Sub–Req 1, Register Count Lo 0x03 Sub–Req 1, Register Data Hi 0x06 Sub–Req 1, Register Data Lo 0xAF Sub–Req 1, Register Data Hi 0x04 Sub–Req 1, Register Data Lo 0xBE Sub–Req 1, Register Data Hi 0x10 Sub–Req 1, Register Data Lo 0x0D Error Check (LRC or CRC) –– Respuesta del esclavo (modo RTU): Slave Address 0x11 Function 0x15 Byte Count 0x0D Sub–Req 1, Reference Type 0x06 Sub–Req 1, File Number Hi 0x00 Sub–Req 1, File Number Lo 0x04 81 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales Sub–Req 1, Starting Addr Hi 0x00 Sub–Req 1, Starting Addr Lo 0x07 Sub–Req 1, Register Count Hi 0x00 Sub–Req 1, Register Count Lo 0x03 Sub–Req 1, Register Data Hi 0x06 Sub–Req 1, Register Data Lo 0xAF Sub–Req 1, Register Data Hi 0x04 Sub–Req 1, Register Data Lo 0xBE Sub–Req 1, Register Data Hi 0x10 Sub–Req 1, Register Data Lo 0x0D Error Check (LRC or CRC) –– ANEXO I: Funciones Modbus 82 83 10 ANEXO II: NORMA IEEE 802 EEE 802 es un proyecto del Institute of Electrical and Electronics Engineers (más conocido por sus siglas, IEEE). Se identifica también con las siglas LMSC (LAN/MAN Standards Committee). Su misión se centra en desarrollar estándares de redes de área local (LAN) y redes de área metropolitana (MAN), principalmente en las dos capas inferiores del modelo OSI. IEEE que actúa sobre Redes de computadoras. Concretamente y según su propia definición sobre redes de área local (RAL, en inglés LAN) y redes de área metropolitana (MAN en inglés). También se usa el nombre IEEE 802 para referirse a los estándares que proponen, algunos de los cuales son muy conocidos: Ethernet (IEEE 802.3), o Wi-Fi (IEEE 802.11). Está, incluso, intentando estandarizar Bluetooth en el 802.15 (IEEE 802.15). Se centra en definir los niveles más bajos (según el modelo de referencia OSI o sobre cualquier otro modelo). Concretamente subdivide el segundo nivel, el de enlace, en dos subniveles: el de Enlace Lógico (LLC), recogido en 802.2, y el de Control de Acceso al Medio (MAC), subcapa de la capa de Enlace Lógico. El resto de los estándares actúan tanto en el Nivel Físico, como en el subnivel de Control de Acceso al Medio. Figura 10-1 Capas del Modelo OSI. I ANEXO II: Norma IEEE 802 84 Los diferentes estándares se numeran en la Tabla 10-1. Tabla 10-1 Relación de normas IEEE. 85 Desarrollo e implementación de una red de datos basada en Modbus y Ethernet para autómatas industriales 10.1 802.1D 802.1D es el estándar de IEEE para bridges MAC (puentes MAC), que incluye bridging (técnica de reenvío de paquetes que usan los switches), el protocolo Spanning Tree y el funcionamiento de redes 802.11, entre otros. También impide que los bucles que se forman cuando los puentes o los interruptores están interconectados a través de varias rutas. El algoritmo BPDU logra mediante el intercambio de mensajes con otros switches para detectar bucles y, a continuación, elimina el bucle por el cierre de puente seleccionado interfaces. Este algoritmo garantiza que hay una y sólo una ruta activa entre dos dispositivos de red. Las VLANs (redes virtuales) no son parte de 802.1D, sino de IEEE 802.1Q.  Spanning Tree: en comunicaciones, STP (del inglés Spanning Tree Protocol) es un protocolo de red de nivel 2 del modelo OSI (capa de enlace de datos). Su función es la de gestionar la presencia de bucles en topologías de red debido a la existencia de enlaces redundantes (necesarios en muchos casos para garantizar la disponibilidad de las conexiones). El protocolo permite a los dispositivos de interconexión activar o desactivar automáticamente los enlaces de conexión, de forma que se garantice la eliminación de bucles. STP es transparente a las estaciones de usuario. 10.2 802.2 IEEE 802.2 es el IEEE 802 estándar que define el control de enlace lógico (LLC), que es la parte superior de la capa enlace en las redes de área local. La subcapa LLC presenta una interfaz uniforme al usuario del servicio enlace de datos, normalmente la capa de red. Bajo la subcapa LLC está la subcapa Media Access Control (MAC), que depende de la configuración de red usada (Ethernet, token ring, FDDI, 802.11, etc.). 10.3 802.3 IEEE 802.3 fue el primer intento para estandarizar redes basadas en ethernet, incluyendo las especificaciones del medio físico subyacente. Aunque hubo un campo de la cabecera que se definió de forma diferente, posteriormente ha habido ampliaciones sucesivas al estándar que cubrieron las ampliaciones de velocidad (Fast Ethernet, Gigabit Ethernet y el de 10 Gigabit Ethernet), redes virtuales, hubs, conmutadores y distintos tipos de medios, tanto de fibra óptica como de cables de cobre (tanto par trenzado como coaxial). En la práctica, el CSMA/CD requiere que cada host que desea utilizar el cable primero lo escuche para determinar si está limpio. Cuando está limpio, el host puede transmitir. Debido a que existe la posibilidad de que otra estación haya realizado una transmisión simultáneamente, cada estación que transmite escucha el cable a medida que envía la primera parte de su mensaje. Si no escucha ninguna otra señal, continúa hasta que el mensaje finaliza, y luego comienza el proceso nuevamente para el mensaje siguiente. SI la estación escucha otra señal mientras todavía está transmitiendo, detiene la transmisión. Después, la estación envía una señal de atascamiento. Todas las estaciones que escuchan la señal de atascamiento borran el paquete recibido parcialmente y, esperan un período aleatorio antes de volver a comenzar la transmisión. Este método de comunicación se denomina no determinista, es decir, no se puede predecir cuál estación transmitirá y cuándo transmitirá. No obstante, cada estación en algún punto en el tiempo tendrá la oportunidad de transmitir. La ventaja de este sistema es que se ejecuta a sí mismo sin requerir ninguna administración. IEEE 802.3 define los siguientes estándares de cableado para las LAN que operan a una velocidad de señalización de banda base de 10 o 100 Mbps, denominada 10Base o 100Base:  10Base2 – Utiliza cableado thinnet con una longitud de segmento máxima de 185 m, y se utiliza con topología de bus física y topología de bus lógica.  10Base5 – Utiliza cableado thinnet con una longitud de segmento máxima de 500 m, y se utiliza con topología de bus física y topología de bus lógica.