TRABAJO PRÁCTICO FINAL CÁTEDRA DE INSTRUMENTACIÓN AVANZADA IMPLEMENTACIÓN DE MAESTRO MODBUS RTU EN NI-LABVIEW Alumno: Ezequiel Eduardo Leidi Mat.: 13218 Carrera: Ingeniería Eléctrica Agosto de 2016 Departamento de Ingeniería Eléctrica Universidad Nacional de Mar del Plata Modelo OSI (Open Systems Interconnection) - OSI 2 Pretende estructurar y estandarizar comunicaciones y redes. Dos sistemas A y B se comunican a través de la arquitectura de capas (redes públicas y/o privadas) sin importar diferencias entre componentes físicos Interoperabilidad Modelo OSI (Open Systems Interconnection) - OSI 3 Cada capa añade al mensaje un encabezado (excepto la capa 1) La capa 2 añade además un «trailer» Modelo OSI (Open Systems Interconnection) - OSI 4 Capa física Capa de enlace de datos Elementos mecánicos, eléctricos u óptica al medio, necesaria para comenzar, mantener y romper la conexión física Especifica cómo las tramas se van a enviar a la red Detección de error Capa de aplicación Provee servicio a las aplicaciones que van a usar los usuarios de la red Modelo OSI de Modbus Serial 5 Capa física (1/7) 6 RS-232 Full Dúplex Punto-punto DTE y DCE (-12;-3)V y (3,12)V Flow Control – Handshaking Asíncrono por carácter – síncrono por bit Longitud máxima: 25 m con un cable de 100 pF/m . Capa física (1/7) 7 RS-232 Capa física (1/7) 8 RS-485 Half-Dúplex Topologías Bus Anillo No Flow Control – Handshaking (-1.5;-0.2)V y (+1.5;0.2V) Pueden usarse repetidores Capa física (1/7) 9 RS-485 Capa Enlace de Datos (2/7) 10 Capa Enlace de Datos (2/7) 11 Capa de aplicación (7/7): MODBUS SERIAL 12 Ciclo de pregunta-respuesta Capa de aplicación (7/7): MODBUS SERIAL 13 Modos RTU y ASCII N° máximo bytes = 250 B/paquete CRC-LRC 16 bits N° máximo nodos = 32 Comunicación entre nodos : Maestro-Esclavo / Cliente-Servidor Destino de mensajes Unicast (punto-punto) Broadcast N° maestros máximo = 1 Capa de aplicación (7/7): MODBUS SERIAL 14 Modo Unicast Modo Broadcast MODBUS SERIAL 15 Funciones y códigos de operación MODBUS SERIAL 16 Descripción de la trama MODBUS Reglas de direccionamiento MODBUS SERIAL : Modo ASCII 17 Trama ASCII Orden de bits modo de Transmisión ASCII MODBUS SERIAL : Modo ASCII 18 Ventajas Permite ASCII tiempos de hasta 1 segundo entre caracteres sin causar error de timeout. Los mensajes pueden ser vistos desde una terminal ASCII MODBUS SERIAL: Modo RTU 19 Trama RTU Orden de bits modo de Transmisión RTU MODBUS SERIAL: Modo RTU 20 Transmisión de chars en modo de transmisión RTU MODBUS SERIAL 21 Ejemplo CONSULTA MODBUS SERIAL 22 Ejemplo RESPUESTA MODBUS SERIAL: Modo RTU 23 Ventajas Mayor RTU densidad de caracteres, por lo tanto mayor “rendimiento” de datos que el ASCII a igual baud rate. Todos los equipos industriales soportan este modo (no todos soportan el modo ASCII) MODBUS SERIAL 24 Errores de excepción MODBUS SERIAL 25 CRC (Cyclic Redundacy Check) M: Single binary word (Mensaje) k: key word (palabra “llave”) r: remainder (resto de la división) r (T) = r(R) ? si T M,r no R OK Error MODBUS SERIAL 26 CRC (Cyclic Redundacy Check) Si M = n bits → k <= (n-1)bits → r =(n-2) bits La división M/k se hace con la “División de polinomios de coeficientes del campo de entero de módulo 2”, y termina siendo una sucesión de operaciones XOR No es perfecto: la probabilidad de que para un mensaje aleatorio M el resto sea un determinado r es 1/k → Conviene hacer grande a k MODBUS SERIAL 27 CRC (Cyclic Redundacy Check) M: 23 bits K: 6 bits R: 5 bits MODBUS SERIAL 28 CRC (Cyclic Redundacy Check) Leading zero fix convention (XOR con un palabra de n bits, r=n bits) 29 MODBUS SERIAL 30 CRC (Cyclic Redundacy Check) MODBUS SERIAL 31 Diagrama estados del Maestro MODBUS SERIAL 32 Diagrama estados del Esclavo MODBUS SERIAL 33 Diagrama de Flujo: Ejecución del protocolo (modbus.org) MODBUS SERIAL 34 Diagrama de Flujo: Ejecución del protocolo MODBUS SOBRE TCP/IP MODBUS en TCP/IP 36 Arquitectura de comunicación MODBUS en TCP/IP 37 Arquitectura de comunicación MODBUS en TCP/IP 38 Modelo IP OSI: Capa de Internet (3-4/7) es un conjunto de protocolos que se encargar de RUTEAR / DIRECCIONAR cada paquete en la Internet. Cada “host” está identificado con una dirección IP de 32 bit. Cada participante en la red tiene una única dirección dentro de la dirección de red. MODBUS en TCP/IP 39 Modelo OSI: Capa de Control de Transporte (4/7) Conjunto de protocolos responsables de asegurar el correcto envío de información a una o más redes. Orientado a la conexión End-to-end MODBUS en TCP/IP 40 Modbus Serial define una Protocol Data Unit, independiente de las demás capas MODBUS en TCP/IP 41 Modbus TCP/IP define una Aplication Data Unit (ADU) que sí servirá a las otras capas MODBUS en TCP/IP 42 Modbus MBAP Header MODBUS en TCP/IP 43 Transaction Identifier Normalmente, en una MODBUS Serial el Cliente puede enviar sólo una Petición (REQUEST) por vez. En TCP/MODBUS, varias requests pueden ser enviadas SIN ESPERAR A LA CONFIRMACIÓN POR PARTE DEL SERVIDOR. El “line gateway” entre MODBUS/TCP y MODBUS serial está a cargado de asegurar la copatibilidad entre las consultas y respuestas. (transacciones) Dependiendo de los recursos del Servidor y del Cliente, el número máximo de transacciones puede variar de 1 hasta 16 (NumberMaxof Client Transaction) Protocol Identifier Debe ser 0x0000 (MODBUS) 44 MODBUS en TCP/IP 45 Unit Identifier MODBUS Serial ó MODBUS + Necesaria para identificar el dispositivo esclavo conectada a la sub-network aguas abajo del bridge(switch) o gateway. La dirección IP de destino identifica al bridge, y éste usa la MODBUS Unit Identifier para saber a qué dispositivo mandar la request. MODBUS TCP/IP El Servidor MODBUS está identificado con su propia dirección IP, por lo que el Unit Identifier queda obsoleto. “ (using a significant slave address may cause trouble because of a bad routing by the gateway. Using a nonsignificant slave address, the gateway will simply discard the MODBUS PDU with no trouble. 0xFF is recommended for the “Unit Identifier" as nonsignificant value. Remark : The value 0 is also accepted to communicate directly to a MODBUS/TCP device. […] “ Puede tomar valores entre (1… 247)d MODBUS en TCP/IP 46 Respuestas de excepción Funciona en forma similar a MODBUS Serie MODBUS en TCP/IP 47 Modbus Client Activity Diagram MODBUS en TCP/IP 48 Actividad de Confirmación (respuesta del servidor) MODBUS en TCP/IP 49 Otras consideraciones Todos los ADU Modbus TCP/IP están registrados en el puerto 502 (puerto reservado) Todos los campos codificados en formato «Big-Endian» (MSB en la dirección menor) IMPLEMENTACIÓN DE MODBUS RTU EN NI-LABVIEW Implementación en NI-LabVIEW 51 Shared Variables Se pueden escribir y leer a través de una red Ethernet Timestamps Terminar de Error Administrables desde Proyecto (según tipo y grupo) LabVIEW DSC Module (Datalogging and Supervisory Control) añade más funciones a las Shared Variables Posibilidad de definir «dead-bands» para la actualización Posibilidad de manejar alarmas Otras Definir Buffers FIFO Implementación en NI-LabVIEW 52 Implementación en NI-LABVIEW 53 Shared No Variables son mucho más lentas (o menos rápidas) que las Global Variables Implementación en NI-LabVIEW 54 Tareas pendientes Acceder a las Network Published Variables desde Ethernet Consultar subfunciones diagnóstico Modo Ascii DSC MODULE: Definir bandas muertas (dead-bands) de actualización Manejo de alarmas Confección de diagrama fasorial de tensiones y corrientes en el panel frontal