MODBUS ESPECIFICACIONES

APLICACIÓN DEL PROTOCOLO MODBUS ESPECIFICACIONES Modbus es un protocolo de mensajería de capa de aplicación, situado en

Views 225 Downloads 1 File size 457KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

APLICACIÓN DEL PROTOCOLO MODBUS ESPECIFICACIONES Modbus es un protocolo de mensajería de capa de aplicación, situado en el nivel 7 del modelo OSI, que proporciona la comunicación cliente / servidor entre dispositivos conectados a diferentes tipos de buses o redes. MODBUS ha servido para que millones de dispositivos de automatización para comunicarse. MODBUS es un protocolo de solicitud / respuesta y ofrece servicios especificados por códigos de función. Códigos de función MODBUS son elementos de la petición MODBUS / respuesta PDU. MODBUS es un protocolo de mensajería de nivel de aplicación para la comunicación cliente / servidor entre dispositivos conectados en diferentes tipos de buses o redes. Se lleva a cabo en la actualidad el uso de:  TCP / IP sobre Ethernet. Consulte la Guía de mensajes MODBUS Implementación V1.0a.  transmisión serial asíncrona a través de una variedad de medios (cable: EIA/TIA-232-E, EIA-422, EIA/TIA-485-A; fibra, radio, etc) MODBUS PLUS, una red de paso de testigo de alta velocidad.

Figura 1: Pila de comunicación MODBUS 2 Abreviaturas ADU Aplicación Unidad de Datos HDLC alto nivel de control de enlace de datos HMI Interfaz hombre-máquina IETF Internet Engineering Task Force E / S Entrada / Salida IP Protocolo de Internet MAC Media Access Control MB Protocolo MODBUS MBAP protocolo de aplicación Modbus PDU Unidad de Protocolo de Datos PLC Controlador Lógico Programable

TCP Protocolo de Control de Transmisión 3 Contexto El protocolo MODBUS permite una fácil comunicación dentro de todos los tipos de red arquitecturas.

Figura 2:Ejemplo de arquitectura de red MODBUS

Cada tipo de dispositivos (PLC, HMI, Panel de control, controlador, control de movimiento, que los dispositivos de E / S) se puede utilizar Protocolo MODBUS para iniciar una operación a distancia. La misma comunicación se puede hacer también en línea en serie como en una red Ethernet TCP / IP las redes. Gateways permiten una comunicación entre varios tipos de buses o de red utilizando el protocolo MODBUS. 4 Descripción general 4.1 Descripción del protocolo El protocolo MODBUS define una unidad de protocolo simple de datos (PDU) independiente de la capas de comunicación subyacentes. El mapeo de protocolo MODBUS en autobuses específicos o red puede introducir algunos campos adicionales en la unidad de datos de la aplicación (ADU).

Figura 3:Trama MODBUS general

MODBUS funciona siempre en modo maestro-esclavo ( cliente - servidor ), siendo el maestro ( cliente ) quien controla en todo momento las comunicaciones con los esclavos que pueden ser hasta 247 (@1d a @247d ) . Los esclavos ( servidores ) se limitan a retornar los datos solicitados o a ejecutar la acción indicada por el maestro. La comunicación del maestro hacia los esclavos puede ser de dos tipos: - “peer to peer”: en que se establece comunicación “maestro - esclavo” , el maestro solicita información y el esclavo responde ( se envía el comando a un dispositivo comprendido entre las direcciones 1d i 247d ). -“broadcast”: en que se establece comunicación “maestro - todos los esclavos” , el maestro envía un comando a todos los esclavos de la red sin esperar respuesta ( se envía a la dirección @0d ). Como se puede ver, la secuencia básica en las comunicaciones MODBUS consiste siempre en una trama de pregunta, seguida de su correspondiente trama de respuesta: - Pregunta: con el código de función que indica al esclavo que operación ha de realizar, y los bytes necesarios ( datos, comprobación … ) para su ejecución. - Respuesta: con la confirmación o datos resultantes de la ejecución de la función. Existe algún caso concreto, en que hay más de una trama de respuesta para una trama de pregunta, como p.ej. cuando el maestro envía una operación cuya respuesta puede llevar al esclavo un tiempo elaborar. En estas situaciones el esclavo envía una primera respuesta indicando que aún no tiene los datos y tardará un tiempo en disponer de ellos, y otra segunda con los datos o confirmación de la operación.

Figura 4:Transacción MODBUS (sin errores) Para una respuesta de excepción, el servidor devuelve un código que es equivalente a la función original código de la PDU petición con su bit más significativo a 1 lógico.

Figura 5:Transacción MODBUS (respuesta de excepción) El tamaño de la PDU de MODBUS está limitado por la restricción de tamaño heredado de la primera Aplicación MODBUS en red de línea serie (máx. RS485 ADU = 256 bytes). Por lo tanto: MODBUS PDU para la línea serie de comunicación = 256 - Dirección del servidor (1 byte) - CRC (2 bytes) = 253 bytes. En consecuencia: RS232 / RS485 ADU = 253 bytes + Dirección del servidor (1 byte) + CRC (2 bytes) = 256 bytes. TCP MODBUS ADU = 253 bytes + MBAP (7 bytes) = 260 bytes. El protocolo MODBUS define tres PDU. Ellos son: Solicitud MODBUS PDU, mb_req_pdu MODBUS PDU de respuesta, mb_rsp_pdu Excepción MODBUS Respuesta PDU, mb_excep_rsp_pdu 4.2 Codificación de Datos MODBUS utiliza una representación "big-endian" para direcciones y elementos de datos. Este medio que, cuando se transmite una cantidad numérica más grande que un solo byte, el más significativo bytes se envía primero. Así, por ejemplo, Regístrese tamaño valor 16 - bits de 0x1234 el primer byte enviado es 0x12 entonces 0x34 4.3 Modelo de datos MODBUS MODBUS basa su modelo de datos en una serie de tablas que tienen características distintivas. Los cuatro cuadros principales son:

Este tipo de datos puede ser alterable por una aplicación programa. Las diferencias entre entradas y salidas, y entre poco direccionable y la palabra-elementos de datos direccionables, no implican ningún comportamiento de la aplicación. Es perfectamente aceptable, y muy común, considerar las cuatro mesas, superponiendo unos a los otros, si este es el más natural interpretación en el equipo de destino de que se trate. Para cada una de las tablas principales, el protocolo permite la selección individual de 65.536 elementos de datos, y las operaciones de lectura o escritura de esos artículos están diseñados para abarcar múltiples consecutivo elementos de datos hasta un límite de tamaño de datos que es dependiente del código de función de transacción. Es obvio que todos los datos que se manejan a través de MODBUS (brocas, registros) deben estar ubicados en el dispositivo memoria de la aplicación. Pero la dirección física en la memoria no se debe confundir con los datos referencia. El único requisito es establecer un vínculo de referencia de datos con direcciones físicas. Los números de referencia lógicos MODBUS, que se utilizan en las funciones MODBUS, están sin firmar índices enteros a partir de cero. 4.4 Modelo de direccionamiento Modbus El protocolo de aplicación Modbus define las reglas que tratan precisamente de PDU. En un MODBUS PDU cada dato se aborda desde 0 a 65535. También define claramente un modelo de datos MODBUS compuesto por 4 bloques que comprende varios elementos numerados del 1 al n. Después, el modelo de datos de MODBUS tiene que estar ligado a la aplicación del dispositivo (IEC-61131 objeto, u otro modelo de aplicación). La pre-asignación entre el modelo de datos MODBUS y la aplicación del dispositivo es totalmente específico de dispositivo de proveedor.

Figura 8 Modelo de direccionamiento Modbus

4.5 Definir Transacción MODBUS El diagrama de estado siguiente describe el procesamiento genérico de una transacción en MODBUS lado del servidor.

Figura 9 Diagrama de estados de transacción MODBUS Una vez que la solicitud haya sido procesada por un servidor, una respuesta MODBUS utilizando el adecuada operación del servidor MODBUS se construye. Dependiendo del resultado del procesamiento se construyen dos tipos de respuesta:  Una respuesta positiva MODBUS:  el código de función de respuesta = el código de función de petición  Una respuesta de excepción Modbus (véase la sección 7 ) :  el objetivo es proporcionar al cliente la información pertinente sobre la error detectado durante el tratamiento;  el código de función = excepción del código de función petición + 0x80;  se proporciona un código de excepción para indicar el motivo del error. 5 Categorías de Códigos de funciones Hay tres categorías de MODBUS códigos Funciones. Ellos son: Códigos de Función Pública Son códigos de función bien definida, garantiza que sea único, validado por la comunidad MODBUS.org,

documentado públicamente tener prueba de conformidad disponible, incluye tanto los códigos de función definidos públicos asignados, así como la función sin asignar códigos reservados para uso futuro. Códigos de función definidas por el usuario hay dos rangos de códigos de funciones definidas por el usuario, es decir, 65 a 72 y 100 a 110 decimal.  usuario puede seleccionar y aplicar un código de función que no es compatible con el especificación.  no hay garantía de que el uso del código de función seleccionada será único  si el usuario desea volver a colocar la funcionalidad que un código de función pública, se debe iniciar una RFC para introducir el cambio en la categoría pública y tener un nuevo código de la función pública asignada.  Organización MODBUS, Inc se reserva expresamente el derecho a desarrollar la RFC propuesto. Códigos de función Reservados  Códigos de función utilizados actualmente por algunas empresas para productos antiguos y que no están disponibles para el uso público.  Nota informativa: Se le pide al lector referirse al Anexo A (Informativo) MODBUS RESERVADO CÓDIGOS DE FUNCIÓN, subcódigos Y TIPOS MEI.

Figura 10 Código de función MODBUS Categorías 5.1 Función Pública Definición Código

6 Descripcion de Códigos de función 6.1 01 (0x01) Leer bobinas Este código de función se utiliza para leer de 1 a 2000 el estado contiguo de bobinas en un mando a distancia dispositivo. La Solicitud PDU especifica la dirección inicial, es decir, la dirección de la primera bobina especificado, y el número de bobinas. En las bobinas de PDU se abordan a partir de cero. Por lo tanto bobinas numeradas 1-16 se aborden como 015. Las bobinas en el mensaje de respuesta se envasan como una bobina por bit del campo de datos. El estado es indicado como 1 = ON, 0 = OFF. El LSB del primer byte de datos contiene la salida dirigida en la consulta. Las otras bobinas siguen hacia el final de alta fin de este byte, y de orden inferior de alto orden en bytes siguientes. Si la magnitud de salida devuelto no es un múltiplo de ocho, los bits restantes en los datos finales byte se rellenará con ceros (hacia el final de alto orden del byte). El campo Cuenta de bytes especifica la cantidad de bytes de datos completos.