Redes de Control: PROFINET, ETHERCAT y MODBUS PDF
Document Details
Uploaded by UseableFermat9903
Universidad Pública de Navarra
Ignacio Del Villar
Tags
Summary
Este documento proporciona una introducción a las redes de control, incluyendo tecnologías como PROFINET, ETHERCAT y MODBUS. Se describe la evolución de las redes tradicionales hacia las basadas en Ethernet, destacando la importancia de los autómatas programables (PLC) en la automatización industrial. Se explica el paso de la lógica cableada a la lógica programada y se definen los autómatas programables.
Full Transcript
Grado en Ingeniería en Tecnologías Industriales - Comunicaciones e instalaciones industriales 4. REDES DE CONTROL: PROFINET, ETHERCAT Y MODBUS Ignacio Del Villar 4. REDES DE CONTROL: PROFINET, ETHERCAT Y MODBUS 5.1. Introducción 5.2. Pro...
Grado en Ingeniería en Tecnologías Industriales - Comunicaciones e instalaciones industriales 4. REDES DE CONTROL: PROFINET, ETHERCAT Y MODBUS Ignacio Del Villar 4. REDES DE CONTROL: PROFINET, ETHERCAT Y MODBUS 5.1. Introducción 5.2. Profibus 5.3. Ethernet Industrial 5.4. Profinet 5.5. Ethercat 5.6. Ethernet/IP 5.7. Modbus 5.8. Resumen Introducción Las redes tradicionales como Modbus RTU, Profibus o DeviceNet han decaído en favor de redes basadas en Ethernet En este capítulo explicaremos tres de los más populares: Profinet, Ethercat y Modbus TCP. Un elemento muy empleado en redes de control son los autómatas programables (programmable logic controller –PLC), que son dispositivos capaces de controlar procesos o de automatización de fabricación de productos, entre otras posibilidades. En Siemens las familias más importantes son: S7-200 S7-300 S7-400 Más antiguos (inicialmente usaban solo PROFIBUS) S7-1200 (se trabajará en S7-1500 Más modernos las prácticas) Usan PROFINET Introducción Siemens define el Totally Integrated Automation como una red en la que se comunican todos los dispositivos de la pirámide CIM PROFIBUS, Industrial Ethernet y PROFINET (también con protocolos del capítulo siguiente como AS-i y IO-Link) Además de los PLCs existen otros dispositivos empleados en sistemas automatizados (como los Programable Automation Controllers), pero por simplicidad se explicarán redes solamente basadas en PLCs. Management level Operations level Control level Field level Totally integrated automation Introducción El paso de la lógica cableada a la lógica programada: Lógica cableada consta de: Sensores (PT100, galgas, sensores de presencia, detectores de fin de carrera Actuadores (bobina de un relé, electroválvulas, contactores…) Elementos auxiliares: temporizadores, contadores Cableado El autómata consta de: Sensores (PT100, galgas, sensores de presencia, detectores de fin de carrera Actuadores (bobina de un relé, electroválvulas, contactores…) Autómata programable Comparativa lógica cableada vs programada: Programa que se carga en el autómata: Tecnología Tecnología Cableada Programada Sensores Sensores Actuadores Actuadores Autómata Temporizadores Temporizadores Contadores Contadores Relés auxiliares Marcas cableado Programa memoria Introducción Definición de autómata programable Su nombre viene del inglés (PLC – Programable Logic Controller) Se trata de un equipo electrónico utilizado para controlar automáticamente sistemas electromecánicos a través de secuencias lógicas. Toman como modelo las técnicas digitales que se emplean en los microprocesadores, con lo que su estructura es similar a la de un ordenador doméstico ordenador Automata de Allen Bradley Sin embargo tienen las siguientes características diferentes a los ordenadores domésticos: Aceptan múltiples entradas y salidas (analógicas y digitales) Son adecuados para trabajar en rangos de temperatura muy amplios Son resistentes a interferencias electromagnéticas, vibraciones Generalmente disponen de una electrónica que acomoda la señal al formato adecuado: circuito de acondicionamiento de señal o circuito interfaz. Introducción Objetivos de la automatización industrial: Competitividad: el mundo globalizado exige un alto nivel de competencia, donde se hace necesaria la realización de tareas con el menor coste (mano de obra, materiales económicos) Seguridad: los autómatas permiten evitar riesgos en la realización de tareas complicadas por parte del ser humano Calidad: los autómatas permiten desarrollo de tareas con una precisión y repetitividad no logradas por el hombre Disponibilidad de producto: se puede controlar de un modo más sencillo la tasa de producción Flexibilidad: se puede modificar de forma sencilla, con un pequeño cambio del cableado o de la programación la tarea a realizar Cuestión final: ¿Los autómatas van a sustituir a los seres humanos? Es evidente que hay tareas en las que somos insustituibles Pero cada vez los autómatas son capaces de realizar tareas que antes hacíamos nosotros. De ahí que convenga formarse en un mercado en el que los autómatas no pueden trabajar: es el de la programación y diseño de autómatas Introducción Niveles de automatización: Nivel 1: Automatización de una máquina sencilla o parte de una máquina Se empleará un equipo de gama baja (pocas señales de entrada y de salida – autómatas modulares) Nivel 2: Automatización de un conjunto de máquinas sencillas o de una máquina más compleja Se emplearán equipos de gama baja interconectados entre sí o un equipo de gama media (más entradas y salidas que uno de gama baja) Nivel 3: Automatización de un proceso de producción completo: se automatiza el proceso y además se pueden solicitar datos de estado del proceso Se emplearan equipos de gama media-alta y equipos que permitan interactuar con el ser humano Nivel 4: Automatización integrada: se une la producción con la gestión de una empresa (producción, almacén, pedidos, facturación) Introducción Diseño de un automatismo A la hora de abordar el diseño de un automatismo de deben seguir los pasos siguientes: Identificación de los elementos necesarios (pulsadores, interruptores, sensores, motores…) Desarrollo de un método gráfico para representar los pasos del automatismo Diagramas de contactos Funciones lógicas Grafcet 0 P1,FC1 Organigramas 1 K1 FC2,FC9 K2A,K2B 2 FC3-A y B 3 FC4 FC4 K4 K5 4 K3 K5 9 FC5,FC9 FC5,FC9 K4 K6 5 K3 K6 10 FC5, FC6 FC5, FC6 K4 K1 6 K3 K1 11 FC2, FC6 FC2, FC6 Funciones lógicas Contactos K4 7 K3 12 FC3-A y B FC3-A y B Programación del automatismo: K4 8 K3 13 FC7 existen lenguajes propios de cada autómata pero los más comerciales ( FC8 K5 14 S7 Siemens, CX-One Omron… son de pago. FC5, FC6 K7 15 Otros lenguajes son gratuitos FC5, FC9 GRAFCET Introducción Conceptos básicos Un interruptor o un contactor permite el paso se corriente: V=220V V=220V Pulsador Pulsador Bombilla Bombilla V=0V V=0V En programación de autómatas, que un interruptor se encuentre activado o desactivado se indica a través de un bit. El interruptor es un elemento que almacena la información de un bit Se presentan dos casos: Interruptor o bit a 0 cuando no deja el paso de la corriente Interruptor o bit a 1 cuando deja pasar la corriente El interruptor se puede aplicar como orden V=220V Si P1 está activado (“1”) el motor debera activarse (“1”), lo que se expresa como: Pulsador (P1) Motor (K1) U I 0.1 Lenguaje S7 = Q 0.0 V=0V Introducción Circuito con dos contactos normalmente abiertos en serie Se utiliza en cualquier máquina cuyo accionamiento sea peligroso y por tanto se controla mediante dos interruptores V=220V Si P1 está activado (“1”) y P2 está activado (“1”) el motor deberá Pulsador P1 (I 0.0) activarse (“1”), lo que se expresa como: Pulsador P2 (I 0.1) U I 0.0 Lenguaje S7 U I 0.1 Motor (K1 – Q 0.0) = Q 0.0 V=0V Circuito con dos contactos normalmente abiertos en paralelo Se emplea por ejemplo en el control de encendido de una bombilla a través de dos interruptores V=220V Pulsador P1 Pulsador P2 Si P1 está activado (“1”) o P2 está activado (“1”) el motor (I 0.0) (I 0.1) deberá activarse (“1”), lo que se expresa como: Bombilla (B1 – Q 0.0) U I 0.0 Lenguaje S7 V=0V O I 0.1 = Q 0.0 Introducción Aplicación de circuitos a autómatas programables Los anteriores circuitos se pueden aplicar a un autómata programable de la siguiente forma V=220V Pulsador P1 Pulsador P2 Entrada 1 Entrada 2 AUTOMATA Dentro del autómata se define si las dos entradas deben estar activadas para que la salida esté activada o una de ellas esté activada Salida 1 para que la salida esté activa Bombilla B1 V=0V Un sistema complejo sería del tipo siguiente Introducción Partes y funcionamiento de un autómata programable Estructura externa: puede ser de dos tipos: Compacta En un solo bloque están todos los elementos, que serán la fuente de alimentación, la CPU, las entradas analógicas y digitales, las salidas analógicas y digitales, los módulos de comunicación, etc. Modular Se estructura en módulos que pueden ser de alimentación, de CPU, de entradas y salidas analógicas y digitales, de comunicación, etc. alimentación Módulos de entradas y salidas CPU Autómata compacto Autómata modular Introducción Partes y funcionamiento de un autómata programable Esquema global Introducción Partes y funcionamiento de un autómata programable Estructura interna: Memoria: consta de regiones con datos ya insertados por el fabricante y otras regiones libres para que el usuario las rellene Se agrupa la información en palabras de un byte o de varios byte. Lo habitual es almacenarla en un byte. Se pueden crear matrices de byte de la siguiente forma: Byte 0 Se almacenan 8 bytes y en cada uno de ellos tenemos Byte 1 8 biestados Byte 2 Byte 3 Cada byte contiene 256 estados posibles: Byte 4 00000000 Byte 5 00000001 … Byte 6 11111111 Byte 7 La información estará representada por ejemplo mediante almacenamiento de carga en condensadores o transistores MOSFET instalados en una pastilla de silicio Introducción Partes y funcionamiento de un autómata programable Tipos de memoria: Load memory: es una memoria de almacenamiento no volátil (ROM) para el programa de usuario, los datos y la configuración. Por lo tanto, cuando se descarga un programa a la CPU, primero se almacenará en el área de memoria de carga. Work memory: es un almacenamiento volátil para algunos elementos del programa de usuario mientras se ejecuta el programa. La memoria de trabajo es como la memoria RAM de una computadora. System memory: puede almacenar todas las partes de direccionamiento del programa de usuario, como direccionamiento de entradas, salidas, temporizadores, contadores y memoria de bits. Retentive memory: el sistema PLC proporciona una parte de la memoria para almacenar datos de forma permanente. Esta parte de la memoria se llama memoria retentiva. Esta parte de la memoria no se perderá en caso de corte de energía. Introducción Partes y funcionamiento de un autómata programable Estructura interna: C.P.U. Gestiona el funcionamiento del resto de unidades y procesa los datos conforme al programa que está cargado en memoria Mediante buses se conecta a la memoria y a los dispositivos de entrada y salida Se dispondrá de bus de datos, de direcciones y de control El bus de direcciones permite el envío de direcciones asignadas a los dispositivos. Cada dispositivo tendrá una dirección diferente y la CPU gestiona a través del bus de dirección a qué dispositivo accede Una vez indicada la dirección, por el bus de datos se transmite la información a enviar o a recibir por la CPU La C.P.U. dispone de los siguiente elementos Registros: contiene los datos que hay que procesar, la dirección de un valor que se requiere recoger en memoria. Los registros pueden estar compuestos por uno, dos o más bytes Unidad aritmético lógica (ALU): gestiona las operaciones aritméticas de suma, resta y las funciones lógicas AND, NOT, OR, etc. Contador de programa (PC): es un registro que almacena la dirección de la instrucción siguiente a ejecutar por la CPU Decodificador de instrucciones: interpreta la instrucción recogida de memoria por la CPU Introducción Partes y funcionamiento de un autómata programable Estructura interna: C.P.U. Unidades de entrada y salida. Estructura de la CPU Permiten comunicación de la CPU con el exterior Registros Buses: permiten la interconexión de diferentes dispositivos: Bus de datos: su anchura es clave para la ALU Bus de control Unidad de velocidad de procesado (8, 16, 32 bit…) Control Bus de direcciones: lleva información de las direcciones de los dispositivos y su anchura Bus de datos determina el número de direcciones que se Contador de Programa (PC) Acumulador pueden mapear (216=64Kbyte de memoria) Bus de direcciones Bus de control: se emplea para enviar señales del tipo “indicar si lo que desea la CPU es leer o escribir datos Introducción Módulos y otros elementos de los autómatas Módulo de entradas digitales: permite conectar al autómata sensores de tipo on/off como puede ser un sensor de presencia o un contacto de un relé. La señal se traducirá por la activación o no de un bit interno del autómata. Trabajan normalmente con señales de 24 V, aunque también existen señales en alterna de 220 V Módulo de entradas digitales masa E16 E15 E14 E13 E12 E11 E10 E9 E8 E7 E6 E5 E4 E3 E2 E1 S1 S2 masa No se trabaja con señales de menos de 24 V porque el cableado largo puede hacer caer la tensión y provocar errores en los bit Internamente en el módulo de entradas digitales hay una serie de elementos: masa Bus interno S1 Memoria de Aislamiento Protección módulo galvánico sobretensiones Introducción Módulos y otros elementos de los autómatas Módulo de salidas digitales: permite conectar al autómata preaccionadores y accionadores de tipo on/off (electroválvulas, contactores, pilotos, etc.) Pueden ser de dos tipos: Salida a relé: la tensión proviene de una fuente externa y se puede conectar al relé, con lo que se libera a la salida de tensión (la tensión no debe superar el máximo que soporte el relé) Salida estática: el conmutador en este caso es un transistor o elemento electrónico equivalente, por tanto solo podrá interactuar con elementos que trabajen a la misma tensión. La ventaja es la velocidad de conmutación, mucho mayor que la del relé Bus interno Memoria de Aislamiento Circuito de módulo galvánico mando Marcas: se trata de un bit interno, que permite guardar información temporalmente y donde se pueden realizar operaciones de lectura y escritura Existen marcas remanentes y no remanentes, que se diferencian en que las primeras permanecen incluso aunque se quite tensión al autómata mientras que las segundas no Temporizadores: son dispositivos mecánicos, electrónicos o neumáticos que cuando se activan, accionan o detienen un aparato pasado un intervalo de tiempo Introducción Módulos y otros elementos de los autómatas Contadores: son dispositivos mecánicos o eléctricos que se van incrementando progresivamente hasta alcanzar un valor predeterminado. Cuando este se alcanza se activa o detiene un aparato Entradas analógicas: almacenan una magnitud analógica con una resolución que dependerá del número de bits que se disponga para la variable (habitualmente entre 12 y 16 bit) La señal sigue un proceso de acondicionamiento, de filtrado y de muestreo, para posteriormente pasar por un conversor analógico digital Bus interno Memoria de Conversor Muestro Acondicio- Filtrado PT100 módulo A/D y retención namiento Se puede trabajar en tensión (rangos habituales 0-10 V) o en corriente (rangos habituales 0-20 mA o 4-20 mA) Salidas analógicas: se emplean para traducir un valor numérico en una señal de tensión o corriente, para de ese modo controlar elementos como variadores de velocidad Bus interno Memoria de Conversor Acondicio- Variador de Filtrado módulo A/D namiento velocidad Introducción Formas de programar los autómatas S7 Lista de instrucciones (AWL): se representa el programa mediante códigos que son fácilmente interpretables por el programador y que se pueden traducir a lenguaje máquina mediante un compilador U( O M 0.7 O M 0.1 O M 1.3 O M 0.2 ) O M 0.3 UN M 0.0 O M 0.5 = “K1” O M 0.6 Esquema de funciones (FUP): se representa de forma gráfica las operaciones lógicas que intervienen en el programa Esquema de contactos (KOP): se representa el programa mediante símbolos eléctricos del tipo (contacto abierto, contacto cerrado, etc): Introducción Módulos software S7 dispone de una serie de módulos cada uno de los cuales se divide en segmentos de cara a su mayor simplicidad de programación Principales tipos de módulos Módulos de organización (OB): comunican la CPU con el programa de usuario. Algunos tipos son: Módulo principal (OB1): se ejecuta cíclicamente y de el parten llamadas al resto de módulos Módulo de arranque Módulo de error y alarma Módulos de código (FC): se define código de usuario de cara a mayor simplicidad Módulos de función (FB): define funciones complejas usadas con frecuencia Módulos de datos (DB): regiones destinadas a contener datos de usuario. Pueden ser de instancia o globales Ciclo Define el tiempo en el que se ejecutarán las instrucciones de los OB Una vez terminado el ciclo se vuelven a repetir la ejecución de los OBs Leer entradas reales y Ejecutar programa usando Actualizar salidas reales en almacenar en memoria valores de memoria función del contenido de memoria Introducción Estructura del programa Programación lineal: se ejecutan todas las instrucciones en un solo bloque. Cuando se trata de un automatismo, al llegar a la última instrucción se regresa a la primera Programación estructurada: cuando un programa alcanza una cierta complejidad se recurre a la programación estructurada, en la que desde un programa principal se hacen llamas a funciones que retornan al programa principal cuando terminan Programa principal Subprograma Instrucción 1 Instrucción 1 Instrucción 2 Instrucción 2 Instrucción 1 Instrucción 2 Instrucción 3 Instrucción 2 Instrucción 3 Instrucción N Instrucción N Instrucción N Programación lineal Programación estructurada Introducción La memoria del S7 1200 de Siemens Entradas Byte IB 0: desde bit I0.0 hasta bit I0.7 Byte IB 1: desde bit I1.0 hasta bit I1.7 … Byte IB 1024: desde bit I1024.0 hasta bit 1024.7 Salidas Byte QB 0: desde bit Q0.0 hasta bit Q0.7 Byte QB 1: desde bit Q1.0 hasta bit Q1.7 … Byte QB 1024: desde bit Q1024.0 hasta bit Q1024.7 Marcas Byte MB 0: desde bit M0.0 hasta bit M0.7 Byte MB 1: desde bit M1.0 hasta bit M1.7 … Byte MB 4096: desde bit M4096.0 hasta M2.7 M2.0 M3.7 M3.0 bit M4096.7 MB2 MB3 MW2 Las palabras se direccionan como IW QW MW Introducción Ejemplos de programación Existen diversos lenguajes de programación de autómatas Simatic S7 es el que ofrece Siemens para controlar sus productos La versión S7 Basic solo permite programar en KOP y FUP. Por motivos de simplicidad nos centraremos en KOP y en lo necesario haremos uso de AWL para las explicaciones Recordamos algún ejemplo visto anteriormente y lo ponemos en lenguaje KOP AND Lenguaje AWL Lenguaje KOP Lenguaje FUP % I 0.0 % I 0.1 % Q0.1 % I 0.0 U I 0.0 % Q0.1 “Var1 “Var2” “Var3” “Var1 U I 0.1 “Var3” = Q 0.0 & % I 0.1 “Var2” = OR Lenguaje AWL Lenguaje KOP Lenguaje FUP % I 0.0 % Q0.1 % I 0.0 U I 0.0 % Q0.1 “Var1 “Var3” “Var1 O I 0.1 “Var3” = Q 0.0 >=1 % I 0.1 % I 0.1 “Var2” = “Var2” Introducción Ejemplos de programación NOR Lenguaje KOP Lenguaje FUP Lenguaje AWL % I 0.0 % I 0.1 % Q0.1 “Var1 “Var2” “Var3” % I 0.0 UN I 0.0 % Q0.1 “Var1 UN I 0.1 “Var3” & = Q 0.0 % I 0.1 “Var2” = NAND Lenguaje KOP Lenguaje AWL Lenguaje FUP % I 0.0 % Q0.1 “Var1 % I 0.0 UN I 0.0 “Var3” % Q0.1 “Var1 ON I 0.1 “Var3” >=1 = Q 0.0 % I 0.1 % I 0.1 “Var2” = “Var2” NAND – Salida negada Lenguaje KOP Lenguaje FUP % I 0.0 % Q0.1 % I 0.0 “Var1 “Var3” “Var1 % Q0.1 >=1 “Var3” % I 0.1 “Var2” = % I 0.1 “Var2” Introducción Ejemplos de programación Operaciones anidadas Lenguaje AWL Lenguaje KOP Lenguaje FUP % I 0.0 % I 0.1 % Q0.1 % I 0.2 U I 0.2 % Q0.1 “Var1 “Var2” “Var3” “Var4 O( “Var3” U I 0.0 >=1 U I 0.1 % I 0.2 ) “Var4 = = Q 0.0 % I 0.0 “Var1 & % I 0.1 “Var2” Ejercicio: convertir a KOP y FUP Lenguaje AWL Lenguaje KOP U I 0.0 % I 0.0 % I 0.1 % Q0.1 O( “Var1 “Var2” “Var3” U I 0.1 U( % I 0.2 O I 0.2 “Var4 O I 0.3 ) % I 0.3 % I 0.4 ) “Var5 “Var6 = Q 0.0 Introducción Ejemplos de programación Marcas Ejercicio - Control de tres motores Tres motores con sus relés térmicos Un pulsador de arranque Una seta de emergencia Entradas Salidas - P1: I 0.0 - A1: Q 0.0 - P2: I 0.1 - A2: Q 0.1 - RT1: I 0.2 - A3: Q 0.2 Esquema - RT2: I 0.3 A1 - RT3: I 0.4 - PA1: I 0.5 P1 P2 RT1 RT2 RT3 A1 - PA2: I 0.6 PA1 - PA3: I 0.7 A2 A2 P1: pulsador de inicio P2: seta de emergencia PA2 RT1, RT2, RT3: relés térmicos motores A3 Resolver AWL y KOP A1, A2, A3 A3 PA1, PA2, PA3: pulsadores marcha motores A1, A2, A3 PA3 A1, A2, A3: contactores motores A1, A2, A3 Introducción Ejemplos de programación SET - RESET SET: activa la salida y la deja fija RESET: desactiva la salida y la deja fija Lenguaje AWL Lenguaje KOP Lenguaje AWL Lenguaje KOP U I 0.0 % I 0.0 % Q0.1 U I 0.0 % I 0.0 % Q0.1 S Q 0.1 “Var1 “Var3” R Q 0.1 “Var1 “Var3” S R Nota: una salida activada por un SET solo puede ser desactivada por un reset y viceversa TEMPORIZADORES Diseñar un semáforo con luces roja y verde que se encuentre en verde 6 segundos y en rojo 7 El ciclo se inicia pulsando un botón y se para con otro botón Lenguaje AWL U I 0.0 //Si botón pulsado U Q 0.0 //Si luz roja activada U Q 0.1 //Si luz verde activada S Q 0.0 //Activo luz roja L S5T#6S //Cargo tiempo 6S L S5T#7S //Cargo tiempo 7S SE T 1 //Activo T1 con retardo a SE T 2 //Activo T2 con retardo a //conexión //conexión U T1 //Si T1 activado U T2 //Si T2 activado R Q 0.0 //Desactivo luz roja R Q 0.1 //Desactivo luz verde S Q 0.1 //Activo luz verde S Q 0.0 //Activo luz roja Introducción Ejemplos de programación ETAPAS Un brazo articulado hace el siguiente recorrido para coger una pieza en el punto 4 y traerla al punto 1 brazo articulado recorrido P1: pulsador de inicio K1: motor hacia arriba 2 3 P2: seta de emergencia K2: motor hacia abajo 6 5 FC1: Sensor brazo abajo K3: motor hacia derecha FC2: Sensor brazo arriba K4: motor hacia izquierda FC3: Sensor brazo a la izquierda FC4: Sensor brazo a la derecha 1 4 U FC1 // SI ESTA ABAJO U FC2 // SI ESTA ARRIBA U FC3 // SI ESTOY A LA IZDA Entradas U M0.6 // Y EN LA ETAPA 6 U FC4 // A LA DCHA U FC2 // Y ARRIBA - P1: I 0.0 0 S M0.0 // ACTIVO LA ETAPA 0 U M0.2 // Y EN LA ETAPA 2 U M0.5 // Y EN LA ETAPA 5 - P2: I 0.1 R M0.6 // DESACTIVO LA 6 S M0.3 // ACTIVA LA ETAPA 3 S M0.6 // ACTIVA LA 6 - FC1: I 0.2 - FC2: I 0.3 1 R M0.2 // DESACTIVA LA 2 R M0.5 // DESACTIVA LA 5 - FC3: I 0.4 U P1 // SI PULSO P1 U FC4 // SI ESTOY EN LA DCHA - FC4: I 0.5 2 U FC1 // Y ESTA ABAJO U M0.1 U FC1 // Y ABAJO S M0.1 // ACTIVA LA ETAPA 1 O M0.4 U M0.3 // Y EN LA ETAPA 3 3 R M0.0 // DESACTIVA LA 0 =K1 Salidas S M0.4 // ACTIVA LA 4 U M0.2 - K1: Q 0.0 R M0.3 // DESACTIVA LA 3 - K2: Q 0.1 4 U FC2 // SI ESTA ARRIBA =K3 - K3: Q 0.2 U FC3 // A LA IZDA U FC4 // SI ESTOY EN LA DCHA U M0.3 - K4: Q 0.3 5 U M0.1 // Y EN LA ETAPA 1 U FC2 // Y ARRIBA O M0.6 S M0.2 // ACTIVA LA 2 U M0.4 // Y EN LA ETAPA 4 =K2 6 R M0.1 // DESACTIVA LA 1 S M0.5 // ACTIVA LA 5 U M0.5 R M0.4 // DESACTIVA LA 4 =K4 4. REDES DE CONTROL: PROFINET, ETHERCAT Y MODBUS 5.1. Introducción 5.2. Profibus 5.3. Ethernet Industrial 5.4. Profinet 5.5. Ethercat 5.6. Ethernet/IP 5.7. Modbus 5.8. Resumen PROFIBUS PROFIBUS Hay tres versiones: PROFIBUS-DP (PROFIBUS de Periferia Descentralizada) Control de la automatización de la producción en fábrica. Velocidades: 9.6, 19.2, 45.45, 93.75, 187.5 y 500 kbps; y de 1.5, 3.0, 6.0 y 12.0 Mbps. Medio de transmisión: par trenzado, fibra óptica Aceptaba hasta 32 nodos (con repetidores puede llegar a 128) PROFIBUS-PA (PROFIBUS de Automatización de Proceso) Aplicación en zonas con riesgo de explosión Velocidad: 31.25 Kbps Proporciona alimentación a través del propio bus pero con limitación de corriente Aceptaba hasta 32 nodos PROFIBUS-FMS (PROFIBUS de Especificación de Mensajes en el Bus de Campo) es el que trabajaba a nivel más alto (capa 7 de OSI) y el primero que quedó obsoleto Niveles OSI de versiones de PROFIBUS Niveles PROFIBUS-DP PROFIBUS-PA Físico (1 OSI) RS 485 / Fibra óptica IEC1158-2 / inalámbrico Enlace de datos (2 OSI) FieldBus Data Link FDL Interfaz IEC1158-2 Aplicación (7 OSI) No usado No usado PROFIBUS PROFIBUS – Acceso al medio a) Polling (un solo maestro y multiples esclavos): b) Token pass (anillo lógico de varios maestros con sus esclavos): PROFIBUS PROFIBUS – elementos básicos y mensajes Maestro: estaciones activas que tienen permiso para envío de mensajes cuando reciben el testigo. Habitualmente desempeñan esta función los PLC y los PC. Pueden actuar como esclavos dependiendo de cómo los configure el usuario. Los hay de tipo DPM1 y DPM2 Esclavo: Estaciones pasivas capaces de responder cuando su maestro les envía un mensaje. Típicamente controlan sensores y actuadores. Tiempos de respuesta muy rápidos. Tipos de mensajes Acíclicos: algunos ejemplos son: SRD (Send and Request data with Reply): se solicita los datos a una estación esclavo, pudiéndole enviar datos adjuntos en la propia solicitud. Objetivo: prestaciones en tiempo real SDN (Send Data with No acknowledge): se envía un mensaje a una estación esclavo y esta deberá responder con un asentimiento de forma inmediata. No se permite el envío de datos SDA (Send Data with Acknowledge): lo mismo que SDN pero sin asentimiento y con multicast (cuando se realiza el envío a un grupo de esclavos) o broadcast (cuando se envía a todos). Cíclicos (Cyclic Send and Request Data with Reply - CSRD): para sondeos periódicos a una serie de estaciones contenidas en una lista de consulta. Trama SD LEPROFIBUS LEr (encabezado SD DA 12 SAbyteFC y trama hasta 256 byte): DSAPSSAP DU FCS ED Fin trama Header Data Error Check PROFIBUS PROFIBUS – Puesta en marcha Para el inicio de la red son clave los ficheros Se programa el autómata o autómatas: GSD, que contienen información sobre las capacidades básicas de un dispositivo, como sus opciones de comunicación y de diagnóstico: Después de programar, al iniciar la red: Primero el maestro: - envía información de configuración al esclavo y lo asigna como suyo - envía tramas de diagnóstico Después - el maestro: comprueba periodicamente respuesta de esclavos 4. REDES DE CONTROL: PROFINET, ETHERCAT Y MODBUS 5.1. Introducción 5.2. Profibus 5.3. Ethernet Industrial 5.4. Profinet 5.5. Ethercat 5.6. Ethernet/IP 5.7. Modbus 5.8. Resumen ETHERNET INDUSTRIAL Conceptos básicos Industrial Ethernet se sitúa en los niveles superiores de la pirámide CIM Emplea protocolos estándar de Ethernet con conectores que soportan condiciones extremas como vibraciones, humedad altas temperaturas Se basa en los estándares IEEE 802.3 (Ethernet) y el 802.11 (Wireless LAN) Combina switching con comunicación full duplex Half duplex vs Full - duplex Switched full duplex Cuando Ethernet se basa en switches con comunicación full duplex, el protocolo CSMA/CD cambia su nombre a CSMA/CA (collision avoidance) debido a que la configuración de un switch no permite colisiones. ETHERNET INDUSTRIAL Redes basadas vs no basadas en Ethernet La topología en Ethernet es en estrella (es la que requiere switched Ethernet) mientras que en el resto de redes predomina el bus con posibles derivaciones (drop-lines) Número de nodos máximo en las redes no basadas en Ethernet es menor (127 para PROFIBUS y 64 para DeviceNet) que para redes basadas en Ethernet (existen switches capaces de conectar hasta 256 dispositivos). En Ethernet se permite la coexistencia de redes funcionando a diferentes velocidades, mientras que en los otros estándares hay que elegir una velocidad de transmisión La velocidad de Ethernet es superior a la de otras redes (se alcanzan velocidades de Gbps). La distancia máxima de transmisión es inversamente proporcional a la velocidad de transmisión, por lo que a nivel de dispositivo se baja la velocidad y en niveles superiores se emplean otras técnicas ETHERNET INDUSTRIAL Redes basadas vs no basadas en Ethernet Ethernet además presenta las siguientes ventajas: Rápida puesta en marcha Escalabilidad: la instalación se puede ampliar fácilmente Interconexión de áreas diversas (e.g. oficina y fabricación) Posibilidad de comunicación a escala corporativa (WAN, Internet...) Aunque también cuenta con desventajas: Los switches son caros y requieren de alimentación (puede haber fallos) Manejar la pila TCP/IP es más costoso en términos de tiempo (aunque existen versiones de Industrial Ethernet que discriminan tráfico que no emplea TCP/IP El tamaño de paquete es como mínimo 64 bytes (mayor utilización de la red) Open User Communication En el entorno Siemens la versión más sencilla de Industrial Ethernet es Open User Communication (OUC) y emplea los siguientes tipos de enlace entre pares de equipos: Enlace TCP: protocolo orientado a conexión para intercambio de datos (no se informa sobre el tamaño de los paquetes ni de donde comienza o acaba un paquete) Enlace ISO on TCP: protocolo orientado a conexión para intercambio de mensajes (es el método ideal para automatización, donde resulta de vital importancia la gestión eficiente de los mensajes en base a saber dónde terminan y así dar una respuesta lo más inmediata posible) Enlace UDP: protocolo no orientado a conexión (para envió de mensajes que no requieren acuse de recibo como por ejemplo un broadcast de aviso a todas las estaciones) ETHERNET INDUSTRIAL Funciones Ethernet en S7-300: T_SEND Y T_RECEIVE: Parámetros T_SEND REQ: cuando se produce un flanco de subida en la variable se da la orden de envío de los datos a destino. CONT: determina si mantenemos o no la conexión. Si introducimos el valor “0” la conexión se interrumpirá inmediatamente. Si introducimos un “1” la conexión se mantiene. CONNECT: apunta a la zona de memoria donde se guardan los parámetros de la conexión DATA: zona de memoria de datos que se van a enviar al receptor. LEN: indica el número máximo de bytes que se pueden enviar por parte del emisor. Por defecto el valor es 0, que indica que el número de bytes que se envían está determinado por el campo DATA. En caso de tener un valor distinto de 0, esos serán el número máximo de datos que se transmitirán. Parámetros T_RECEIVE CONT: análogo al parámetro CONT del TSEND_C CONNECT: análogo al parámetro CONNECT del TSEND_C DATA: es la zona de memoria de datos donde se reciben los datos enviados por el emisor. LEN: indica el número máximo de bytes que deben recibirse. El ajuste predeterminado es 0, es decir, el parámetro DATA determina la longitud de los datos que se reciben. En caso contrario, recibirá como máximo el número de bytes indicados por LEN. ETHERNET INDUSTRIAL Ejemplo 1 – Comunicación de dos PLCs s7-300 con Industrial Ethernet Objetivos 1. Cuando se activa la entrada E126.0 del equipo 1 se envían los byte EB124 y EB125 a los bytes de salida AB124 y AB125 del equipo 2 2. Cuando se activa la entrada E126.0 del equipo 2 se envían los byte EB124 y EB125 a los bytes de salida AB124 y AB125 del equipo 1 La CP343-1 tiene dos conexiones. Si se usan las dos se puede implementar un bus, mientras que si sólo se usa una de ellas la topología debería ser en estrella: ETHERNET INDUSTRIAL Ejemplo 1 – Comunicación de dos PLCs s7-300 con Industrial Ethernet Programas a cargar en los PLCs Equipo 1: Equipo 2: ETHERNET INDUSTRIAL Ejemplo 1 – Comunicación de dos PLCs s7-300 con Industrial Ethernet Una vez diseñados los programas, estos se cargan en cada equipo En la entrada ACT, que es equivalente al comando REQ, se puede elegir un bit de marca de ciclo para que conmute periódicamente de 0 a 1 y envíe datos de forma periódica: Se inserta un bit de marca de ciclo ETHERNET INDUSTRIAL Ejemplo 2 – Comunicación entre tres S7-300 con Industrial Ethernet Esquema general Transferencias a realizar ETHERNET INDUSTRIAL Ejemplo 2 – Comunicación entre tres S7-300 con Industrial Ethernet Desarrollo del ejercicio Se añaden los tres PLCs al proyecto SIMATIC y se añade la red Industrial Ethernet Se requieren 3 enlaces: ETHERNET INDUSTRIAL Ejemplo 2 – Comunicación entre tres S7-300 con Industrial Ethernet Desarrollo del ejercicio El OB del equipo 1 se configura de la siguiente manera ETHERNET INDUSTRIAL Ejemplo 2 – Comunicación entre tres S7-300 con Industrial Ethernet Visualización mediante navegador Desde PC con un navegador se puede visualizar las conexiones. Por ejemplo para el equipo 3 se escribe: http://192.168.0.70/portal0000.htm 4. REDES DE CONTROL: PROFINET, ETHERCAT Y MODBUS 5.1. Introducción 5.2. Profibus 5.3. Ethernet Industrial 5.4. Profinet 5.5. Ethercat 5.6. Ethernet/IP 5.7. Modbus 5.8. Resumen PROFINET Creada por el grupo PROFIBUS & PROFINET, y contiene un conjunto de protocolos Es evolución de PROFIBUS y de Industrial Ethernet (IEC 61784) Parte del tráfico utiliza TCP/IP y otra sólo utiliza las capas 1 y 2 de TCP/IP Red PROFIBUS integrada con PROFINET Pila de protocolos PROFINET no es compatible com PROFIBUS pero si se puede comunicar a través de un proxy Se transfieren ficheros de configuración de dispositivos GSDML PROFINET El acceso al medio se realiza por TDMA: Ciclo 1 Ciclo 2 Ciclo 3 IRT RT, TCP, UDP IRT RT, TCP, UDP IRT RT, TCP, UDP Sincroni- Comunicación Comunicación zación determinista abierta Datos RT, TCP, UDP Datos IRT La división de los ciclos de tiempo atiende a tres tipos de tráfico Tráfico de baja prioridad (TCP, UDP) Tráfico real time (RT) Tráfico isochronous real time (IRT) PROFINET De los tres tipos de tráfico de PROFINET, el TCP, el RT y el IRT, explicaremos a modo de ejemplo el RT Las tramas Ethernet pueden marcar su importancia relativa en la capa 2 configurando los bits de prioridad de del encabezado 802.1Q, como se muestra en la siguiente figura: Trama Ethernet de tipo PROFINET RT Cuando un dispositivo desea enviar una trama de alta prioridad, necesita usar un encabezado 802.1q porque permite así que lo equipos por los que pase la trama pueden establecer su prioridad. Una vez que un conmutador o un punto de acceso recibe esta trama, se supone que la evalúa y trata según la clase de tráfico. A continuación se muestra un esquema de cómo se envía un mensaje entre un controlador y un IO Device: PROFINET Trama PROFINET RT analizada con Wireshark: En esta trama el 0x8100 indica que es un mensaje con prioridad, 802.1q. La prioridad está en 6 indicando voz, velocidad de cerca de 200 Mbps Gran número de nodos: hasta 216=65536 EtherCAT Capa de enlace de datos La trama de datos es la siguiente (en el campo Ethernet payload se puede añadir información relativa a capas de red y transporte – capas 3 y 4): Ethertype llevará el valor 0x88A4 (en Profinet era el 0x8100) En el campo payload figuran los datagramas que se están transmitiendo en la trama EtherCAT Capa de enlace de datos Physical addressing: - los 32 bits del campo address están divididos en dos subcampos de 16 bits: - Address position: indica la dirección del esclavo, - Address offset: indica una posición concreta de la memoria física o zona de registros del esclavo a la que se quiere acceder. Así para cada esclavo hay 216 = 65536 direcciones, cada una de 8 bits (64 kB que se pueden recorrer): - 4 kB para registros y memoria de usuario, - 60 kB para memoria de proceso. Gran ventaja: se pueden direccionar varios esclavos de golpe a través de los varios datagramas que se incluyan en el mensaje A su vez hay 3 modos de direccionamiento: - Position addressing: cada esclavo aumenta en 1 el valor de la address position, de tal manera que cuando este campo valga 0 el esclavo asume que él es el destinatario (se usa para puesta en marcha de una red) - Configured addressing: se trabaja con la dirección asignada - Broadcast: el comando enviado en el datagrama será ejecutado por todos los esclavos EtherCAT Capa de enlace de datos Logical addressing: - Soluciona el problema de la cierta ineficiencia del physical addressing - Los 32 bits del campo address se utilizan como un todo, sin distinguir dirección física y offset. - Este espacio abarca 232 direcciones -> 232 direcciones × 8 bits en cada dirección = 4 Gbytes - Es un espacio compartido por el maestro y todos los esclavos de la red. - La gestión de este tipo de direccionamiento requiere de unidades gestoras de memoria de bus de campo (en inglés FMMUs), implementadas de forma hardware en el Ethercat Slave Controller (ESC). EtherCAT Capa de enlace de datos La FMMU traduce la dirección lógica a una dirección física en el dispositivo esclavo, lo que permite un mapeo individual de la dirección adaptado a cada dispositivo. Así se pueden direccionar datos arbitrariamente distribuidos en varios esclavos en un solo comando: El campo de datos del datagrama 1 está vinculado a los esclavos 1 y 3, mientras que el campo de del datagrama 2 hace lo propio con los esclavos 2 y 4. Así, al vincular varios dispositivos en cada campo de datos de los datagramas, se hace un mejor aprovechamiento del mensaje enviado que con el physical addressing, donde cada datagrama hace referencia a un solo esclavo. EtherCAT Capa de aplicación La capa de aplicación de EtherCAT implementa una máquina de estados que describe el comportamiento de un dispositivo. Hay 4 estados básicos: de inicio, preoperacional seguro operacional El estado menos restrictivo es el operacional, donde los esclavos transfieren datos entre la red y sus dispositivos I/O (el esclavo está conectado por un lado a la red y por el otro lado puede tener uno o más dispositivos conectados). Es el estado normal de operación para los esclavos EtherCAT se puede adaptar para que sea compatible con protocolos que usan capas de red y de transporte. Para ello se pueden utilizar canales que se llaman mailbox, que permiten transmitir ese tipo de tráfico sin que afecte a la comunicación del resto de mensajes en tiempo real. Así, con esta opción se puede lograr compatibilidad con soluciones populares: CANopen over EtherCAT (CoE): ofrece un modo para acceder al diccionario de objetos de CANopen e intercambiar mensajes de acuerdo con mecanismos controlados por eventos. Ethernet over EtherCAT (EoE): permite transmitir tramas Ethernet dentro de la red EtherCAT. File access over EtherCAT (FoE): está pensada para transferencia de ficheros Servo drive profile over EtherCAT (SoE): permite el acceso al perfil de dispositivo del protocolo de comunicación industrial SErial Real-time COmmunication System (SERCOS). EtherCAT Capa de aplicación Otro protocolo al que da soporte Ethercat es Safety over EtherCAT (FSoE = Fail Safe over EtherCAT). Esto se logra con la ayuda de herramientas de desarrollo que sirven tanto para aplicaciones estándar como para aplicaciones de seguridad. Ejemplo de trama EtherCAT con los campos relacionados con la seguridad, que se insertan entre datagramas. Sincronismo Distributed clocks: la red cuenta con relojes distribuidos por varios nodos de la red. Por ejemplo, la hora de uno de los esclavos se distribuye de forma cíclica a los demás esclavos, de manera que el reloj de cada esclavo se ajusta con precisión a este reloj de referencia, lo que da como un jitter en el sistema menor de 1μs Los Sync managers, en cada esclavo, también velan por que el acceso a la memoria se haga de formar coordinada, sin conflicto 4. REDES DE CONTROL: PROFINET, ETHERCAT Y MODBUS 5.1. Introducción 5.2. Profibus 5.3. Ethernet Industrial 5.4. Profinet 5.5. Ethercat 5.6. Ethernet/IP 5.7. Modbus 5.8. Resumen Ethernet/IP Estándar desarrollado gracias a la colaboración de cuatro importantes grupos: Open DeviceNet Vendors Association (ODVA) Industrial Open Ethernet Association (IOANA) Control Net International (CI) Industrial Ethernet Association (IEA). Toma, con pequeñas modificaciones, herencia del Ethernet empleado en redes de ordenadores y lo completa en las capas superiores con el Common Industrial Protocol (CIP) : Device Profiles and Application Objects CIP CIP (Explicit Versus I/O Messaging) Capas de aplicación, presentación y sesión Protocolo de encapsulado TCP/UDP Capa de transporte TCP/IP IP Capa de red CSMA/CD – IEEE 802.3 Capa de control de enlace de datos Ethernet Ethernet - capa física Capa física Ethernet/IP Encapsulación de datos TCP/IP EtherNet/IP define un protocolo de encapsulación para estructurar los datos de la capa de transporte Todos los paquetes TCP y UDP se envían por el puerto 0xAF12. El mensaje encapsulado consta de encabezado y datos: El protocolo de encapsulación define la comunicación entre dos nodos como una sesión basada en socket (similar a una conexión) Una vez abierta la sesión se mantiene así hasta que Uno de los nodos decide cerrarla Los recursos TCP sufren de algún problema Ethernet/IP Mensajes Al igual que en Devicenet las comunicaciones se basan en el modelo productor consumidor Por tanto también emplea los mensajes explícitos y de tipo I/O: Los I/O se basan a nivel de transporte en UDP: El consumidor solicita datos a los nodos destino indicando la tasa de transferencia cíclica Los productores envian el asentimiento y envian datos cíclicamente a la velocidad indicada Si es necesario el consumidor también escribirá datos en el productor a la misma velocidad Los explícitos se basan a nivel de transporte en TCP: El consumidor envía una solicitud al productor y éste le responde a dicha solicitud Ethernet/IP Ejemplo de red Ethernet/IP Ethernet/IP Ejemplo de red Ethernet/IP 4. REDES DE CONTROL: PROFINET, ETHERCAT Y MODBUS 5.1. Introducción 5.2. Profibus 5.3. Ethernet Industrial 5.4. Profinet 5.5. Ethercat 5.6. Ethernet/IP 5.7. Modbus 5.8. Resumen Introducción Fue desarrollado por la empresa Modicon (actual Schneider Electric) en el año 1979 En sus orígenes tenía como tarea comunicar los PLCs de la empresa Modicon. Se trata de un estándar de facto que por su simplicidad de implementación y de mantenimiento se emplea en muchas aplicaciones industriales Versiones Modbus RTU serie Modbus ASCII Modbus TCP Ethernet Modbus+ Cerrado Modbus IDA está soportado por la Modbus Organization (www.modbus.org), un grupo de usuarios independientes y suministradores de dispositivos cuyo objetivo es dirigir el protocolo de comunicaciones Modbus de cara a su utilización en sistemas distribuidos de automatización Introducción Pila de protocolos Capa de aplicación de Device Modbus Profiles and Application Objects Modbus on TCP TCP IP RS-485 Ethernet Otras versiones Modbus+ Maestro-esclavo IEEE 802.3 MODBUS es un protocolo de capa de aplicación, por lo que su objetivo es definir reglas que permitan organizar e interpretar datos, con lo que se erige como un sistema que soporta el envío de mensajes, sin que tenga importancia la capa física. Esto le confiere una gran versatilidad, hasta el punto de que se pueden transferir mensajes a través de otras redes mediante técnicas de encapsulación y desencapsulación. Modbus Serie Capa física MODBUS serie puede ir sobre cualquier medio aunque está fundamentalmente diseñado para RS-485 Se basa en topología maestro-esclavo sin discriminación entre tráfico en tiempo real y en tiempo no real La dirección en los dispositivos se pone manualmente Utiliza resistencias de fin de línea para evitar reflexiones de la señal transmitida Longitud máxima recomendada del bus: 1200 metros Número de dispositivos máximo que se puede conectar: 247 (cuando se supera la cifra de 30 dispositivos se recomienda el empleo de repetidores) Modbus Serie Capa de enlace de datos Entre el maestro y el esclavo se intercambian tramas del siguiente tipo Campos Dirección: 1 byte que se rellena con valores del 1 y el 247, dejando libre el 0 para los mensajes de difusión. Función: 1 byte que indica el tipo de mensaje Por ejemplo el código 3 indica solicitud de lectura de registros del esclavo y en la zona de datos se indica a partir de qué dirección se leen los datos y cuántos byte se desea leer, mientras que el mismo código enviado por el esclavo contiene los datos solicitados por el maestro Datos: varios byte dependiendo de la función (puede ir vacío si el tipo de función de la trama enviada por el maestro sólo requiere asentimiento por el esclavo) CRC: dos bytes finales de código de comprobación de errores (CRC) Modbus Serie Añadido de bits a la trama de enlace datos A la trama de nivel de enlace de datos: Dirección Código Código de control Datos enviados (N) Esclavo (1) Función (1) de error (2) se le añade información adicional cuando se manda a nivel físico por el cable: 1. Delimitadores: se coloca un espacio de como mínimo 1.75 bytes al inicio y al final de cada trama. 2. La transmisión a nivel físico se realiza enviando, por cada byte de la trama, 1 bit de inicio, 8 de datos (el bit menos significativo se envía como primero), 1 bit de paridad o ningún bit de paridad, y 1 o 2 bits de parada dependiendo de que se use o no el bit de paridad Modbus Serie Código de control de error El campo de control de error en Modbus Serie RTU se llama CRC y se compone de dos bytes. Tiene cierta complejidad. Así que aprenderemos solo el campo de control de error de Modbus Serie ASCII, una versión obsoleta pero más sencilla de entender. En Modbus Serie ASCII el campo de errores tiene solo un byte y se llama LRC. En el siguiente ejemplo es el byte 7E: Para obtenerlo se cogen todos los datos que hay hasta el LRC sin incluirlo, y se suman en binario byte a byte sin considerar el último de los acarreos, el del bit más significativo. Al resultado de 8 bit obtenido se le hace el complemento A 2, que es cambiar todos los bits de 0 a 1 y después sumar 1 Conclusiones sobre el código LRC: - Es sensible a ráfagas de errores. Si por 00010001 ejemplo el último de los bytes sumados es 00000011 11100011 en vez de 00000011, entonces se 00000000 obtiene como resultado final 10011110 (en + cursiva figuran los bits que son incorrectos) 01101011 - En cambio cuando cambian bits de la misma 00000000 posición en bytes diferentes se pueden dar 00000011 Cambio de 0s por 1s situaciones como que si en vez de que los 10000010 01111101 últimos bytes sean 00000000 y 00000011 son + 1 10000000 y 10000011, a pesar del error el 01111110 = 7E LRC no cambia Modbus TCP Encapsulamiento Como MODBUS trabaja a nivel de aplicación sin importar la capa física, para su adaptación a las redes Ethernet se emplea un encapsulado de la trama MODBUS RTU: Trama MODBUS Dirección Código Código de control Datos enviados (N) Esclavo (1) Función (1) de error (2) Se elimina Código Se elimina Datos enviados (N) Función (1) Identificador de Identificador de Identificad. Código Longitud (2) Datos enviados (N) Transacción (2) Protocolo (2) de Unidad (1) Función (1) Trama MODBUS TCP Campos de que consta la cabecera : Identificador de transacción: distingue los mensajes consecutivos cuando estos se envían a través de una conexión TCP sin que entre ellos llegue una respuesta de confirmación al equipo que envía dichos mensajes Identificador de protocolo: este campo siempre tiene el valor 0. En futuras extensiones del protocolo se ofrecerán diferentes variantes. Longitud: indica el número de bytes que hay como suma del identificador de unidad, del código de función y de los datos enviados. Identificador de unidad: identifica un servidor remoto en una red que no es TCP/IP. En una red TCP/IP este campo se pone a 0 o a todo unos. Modbus TCP Encapsulamiento La trama MODBUS TCP se encapsula en un paquete TCP que utiliza el puerto 502 (que es el asignado a MODBUS): Trama Modbus Tampoco hace discriminación de tipos de tráfico, lo que supone una desventaja frente a otros estándares basados en Ethernet como PROFInet o Ethernet/IP Modbus TCP Modelo cliente-servidor En vez de trabajar con el modelo maestro esclavo, se utiliza arquitectura cliente servidor (la de TCP/IP) El maestro hace las veces de cliente y el esclavo de servidor, pudiendo haber múltiples clientes que se conecten a un servidor Tipos de mensajes que se intercambian: Modbus Petición: mensaje que se envía del cliente al servidor para iniciar la transmisión. Modbus Confirmación: respuesta del servidor recibida en el lado del cliente. Mobus Indicación: mensaje de petición recibido en el lado del servidor. Modbus Respuesta: mensaje de respuesta que envía el Servidor. Request Indication Modbus client Modbus server Confirmation Response El modelo cliente-servidor, a diferencia del maestro esclavo, permite que un mismo equipo haga las veces de cliente y de servidor, algunas de ellas para poder ser aplicadas a multiples conexiones Por otro lado Modbus TCP, aunque considerado un protocol lento, se le puede mejorar mucho su eficiencia: https://www.controlengeurope.com/article/139766/Speeding-up-Modbus-TCP.aspx Modbus TCP Funciones y registros Modbus se organiza en torno a cuatro tipos básicos de datos Discrete Inputs – son bits de memoria de entrada (por ejemplo las entradas digitales) Coils (Outputs) – son bits de memoria de salida (por ejemplo las salidas digitales) Input Registers (Input Data) – son registros de memoria de entrada, típicamente de 16 bit de tamaño (por ejemplo las entradas analógicas) Holding Registers (Output Data) – son registros de memoria de salida, típicamente de 16 bit de tamaño (por ejemplo las salidas analógicas). También pueden ser registors de memoria de lectura/escritura como puede ser la zona de marcas de los autómatas Siemens Los tipos de datos se identifican tomando como base una dirección de referencia (0xxxx, 1xxxx, 3xxxx y 4xxxx), con las que se designa respectivamente a las coils, las discrete inputs, los input registers y los holding registers: Modbus TCP Funciones y registros Las direcciones con formato referencia no son direcciones de memoria explíticas. Internamente los dispositivos Modbus hacen una conversión y traducen esas direcciones al formato del equipo. Y viceversa, cuando transmiten, traducen la dirección en formato del equipo a dirección de referencia Por otro lado, además del formato referencia también está el formato dirección, que es una versión simplificada del formato referencia que se usa en las tramas Modbus A continuación se muestra una tabla resumen del formato referencia, el formato dirección y el caso específico de un fabricante, Siemens: Formato referencia Formato dirección Formato Siemens Entradas digitales 10001 0 I0.0 10002 1 I0.1 10003 2 I0.2 Salidas digitales 00001 0 Q0.0 00002 1 Q0.1 00003 2 Q0.2 Entradas analógicas 30001 0 IW0 30002 1 IW2 30003 2 IW4 Salidas analógica 40001 0 QW0 40002 1 QW2 40003 2 QW4 Modbus TCP Funciones y registros Es importante tener en cuenta que el formato referencia es el más completo, pues incluye en un solo número el tipo de datos y la dirección. Las funciones trabajan cada una con un formato referencia específico (por ejemplo 0xxxx, 1xxxx, 3xxxx, o 4xxxx). El primer dígito, el 0 1 3 o 4, indica el tipo de datos con el que trabaja, y en valor que hay en xxxx será la dirección de memoria El campo de funciones puede tener los valores 1-255, donde los rangos 65-72 y 100-110 se emplean para funciones definidas por el usuario Las funciones más utilizadas son: Modbus TCP Funciones y registros Función Read Coil (Output) Status Mensaje del cliente Mensaje del servidor Los datos de las salidas digitales son: Coil 3 Coil 2 Coil 1 Coil 0 Nota: en el mensaje del cliente la dirección de inicio está expresada en formato dirección. Es el formato que se usa para tramas Modbus. El formato referencia, al ser coil, debe ser 0xxxx, y en concreto en este caso es 00001 porque el formato referencia tiene siempre un desfase de 1 respecto del formato dirección. En formato Siemens es la dirección Q0.0 Modbus TCP Funciones y registros Función Read Holding Registers Mensaje del servidor Mensaje del cliente Nota: La dirección de inicio, como es típico en tramas Modbus, está expresada en formato dirección. En este caso es la dirección 5. El formato referencia, al ser holding register debe ser 4xxxx, y en concreto en este caso es 40006 porque el formato referencia tiene siempre un desfase de 1 respecto del formato dirección. En formato Siemens es la dirección QW10 En la trama de respuesta del servidor se devuelve el registro 40006 y 2 más, pues se han solicitado 3 registros Función Read Input Registers Mensaje del cliente Mensaje del servidor Nota: La dirección de inicio, como es típico en tramas Modbus, está expresada en formato dirección. En este caso es la dirección 2. El formato referencia, al ser input register debe ser 3xxxx, y en concreto en este caso es 30003 porque el formato referencia tiene siempre un desfase de 1 respecto del formato dirección. En formato Siemens es la dirección IW4 En la trama de respuesta del servidor se devuelve el registro 30003 y 1 más, pues se han solicitado 2 registros Modbus TCP Funciones y registros Función Force single coil Función Preset Single Register Mensaje del cliente y servidor Mensaje del cliente y servidor Función Force Multiple coils Mensaje del cliente Mensaje del servidor Los datos de las salidas digitales son: Coil 3 Coil 2 Coil 1 Coil 0 Modbus TCP Funciones y registros Función Preset Multiple Registers Mensaje del cliente Mensaje del servidor Mensaje del servidor Función Report Slave ID Mensaje del cliente Modbus TCP Funciones y registros Si ocurren una excepción se devuelve por el servidor un código de función (80H) + el número de la función que se ha enviado, y se añade en el siguiente campo un código de excepción Resumen Tabla resumen: Nombre de Número máximo Longitud Velocidad Síncrono Asentimiento la red de nodos máxima Modbus (incluyendo raíz) Serie ASCII 247 1200 m 100 kbps (1200 m) – No Sí 35 Mbps (10 m) Serie RTU 247 1200 m 100 kbps (1200 m) – No Sí 35 Mbps (10 m) TCP ilimitado 90 m * 100 Mbps – 1 Gbps No Sí El número de nodos con direccionamiento IP (el usado en Modbus TCP) es tan alto que se puede considerar como ilimitado (IP versión 6 tiene un número de bits para direccionar muy alto). *90 es la distancia máxima de un nodo hasta el switch, pero el switch a su vez puede ir conectado a otro e integrarse en la internet, que también funciona con IP, con lo que las distancias son mucho mayores 4. REDES DE CONTROL: PROFINET, ETHERCAT Y MODBUS 5.1. Introducción 5.2. Profibus 5.3. Ethernet Industrial 5.4. Profinet 5.5. Ethercat 5.6. Ethernet/IP 5.7. Modbus 5.8. Resumen RESUMEN En este capítulo se han visto los cuatro protocolos de red de control de uso muy extendido: Profinet, Ethercat, Modbus y Ethernet/IP. Profinet es la versión moderna de Profibus y es compatible con este con otros protocolos de redes de sensores como AS-i, lo que persigue el objetivo de la Totally Integrated Automation (TIA). Profinet también discrimina trafíco de mayor o menor determinismo Ethercat alcanza prestaciones similares a Profinet y tiene un enfoque parecido Modbus es otro protocolo de red de control sin gestión de prioridad pero sencillo de implementar. Además es un protocolo encapsulado para red IP Ethernet/IP es encapuslado como Modbus pero es capaz de gestionar prioridad RESUMEN A continuación se muestra una lista de los protocolos soportados por el S7-1200 Industrial Ethernet