Modbus aplicacion

Modbus_Application_Protocol_V1_1b3 1 INTRODUCCION 1. ALCANCE DE ESTE DOCUMENTO Modbus es un protocolo de mensajería capa

Views 124 Downloads 0 File size 550KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Modbus_Application_Protocol_V1_1b3 1 INTRODUCCION 1. ALCANCE DE ESTE DOCUMENTO Modbus es un protocolo de mensajería capa de aplicación, posicionado en el nivel 7 del modelo OSI, que proporciona la comunicación cliente / servidor entre dispositivos conectados a diferentes tipos de buses o redes. Serie estándar de la industria de facto desde 1979, MODBUS continúa permitiendo a millones de dispositivos de automatización para comunicarse. Hoy en día, el apoyo a la estructura simple y elegante de MODBUS sigue creciendo. La comunidad de Internet puede acceder a MODBUS en un puerto del sistema reservado 502 en la pila TCP / IP. MODBUS es una solicitud / respuesta servicios de protocolo y ofertas especificados por códigos de función. Códigos de función MODBUS son elementos de la petición MODBUS / respuesta PDU. El objetivo de este documento es describir los códigos de función utilizados en el marco de las transacciones MODBUS. Modbus es un protocolo de capa de aplicaciones de mensajería para la comunicación cliente / servidor entre dispositivos conectados a diferentes tipos de buses o redes. Se lleva a cabo actualmente usando:  TCP / IP sobre Ethernet. Consulte la Guía MODBUS mensajería Implementación V1.0a.  Transmisión en serie asíncrona a través de una variedad de medios de comunicación (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.

Abreviaturas ADU Unidad Datos de programa HDLC alto nivel de control de enlace de datos HMI Human Machine Interface IETF Internet Engineering Task Force I / O de entrada / salida IP Protocolo de Internet IP MAC Control de Acceso a medios MB Protocolo MODBUS

3 CONTEXTO El protocolo MODBUS permite una fácil comunicación dentro de todos los tipos de red arquitecturas.

Cada tipo de dispositivos (PLC, HMI, Panel de control, conductor, control de movimiento, I O Dispositivos / ...) puede usar el protocolo MODBUS para iniciar una operación remota. La misma comunicación se puede hacer también en línea en serie como en una red Ethernet de redes TCP / IP. 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 datos de protocolo simple (PDU) independiente de las capas de comunicación subyacentes. El mapeo de protocolo MODBUS en autobuses o red específicos puede introducir algunos campos adicionales en la unidad de datos de la aplicación (ADU).

La unidad de datos de aplicación MODBUS es construido por el cliente que inicia una transacción MODBUS. La función indica al servidor qué tipo de acción a realizar. El protocolo de aplicación MODBUS establece el formato de una solicitud iniciada por un cliente. El campo de código de función de una unidad de datos MODBUS se codifica en un byte. Los códigos válidos están en el rango de 1 ... 255 decimal (el rango de 128 a 255 está reservado y se utiliza para

respuestas de excepción). Cuando se envía un mensaje de f rom de un cliente a un dispositivo de servidor el campo de código de función le indica al servidor qué tipo de acción a realizar. Código de la función "0" no es válido. Códigos Sub-función se añaden a algunos códigos de función para definir múltiples acciones. El campo de datos de los mensajes enviados desde un cliente a dispositivos de servidor contiene información adicional que el servidor utiliza para tomar la acción definida por el código de función. Esto puede incluir elementos como direcciones discretas y registrar, la cantidad de temas que se maneja, y el recuento de bytes de datos reales en el campo. El campo de datos puede ser inexistente (de longitud cero) en ciertos tipos de solicitudes, en este caso el servidor no requiere ninguna información adicional. El código de función solo especifica la acción. Si no se produce ningún error relacionado con la función MODBUS solicitado en un MODBUS ADU campo los datos correctamente recibido de una respuesta de un servidor a un cliente contiene los datos solicitados. Si un error relacionado con la función MODBUS pidió ocurre, el campo contiene un código de excepción que la aplicación de servidor puede utilizar para determinar la siguiente acción a tomar. Por ejemplo, un cliente puede leer los estados ON / OFF de un grupo de salidas discretas o insumos o se puede leer / escribir el contenido de datos de un grupo de registros. Cuando el servidor responde al cliente, utiliza el campo de código de función para indicar una respuesta normal (libre de errores) o que algún tipo de error ocurrió (llamado una excepción respuesta). Para una respuesta normal, el servidor simplemente se hace eco a la solicitud el original código de función.

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 ajustado a 1 lógico.

El tamaño de la PDU 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 comunicación de línea serie = 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:   

MODBUS Solicitud PDU, mb_req_pdu MODBUS PDU de respuesta, mb_rsp_pdu MODBUS Excepción Respuesta PDU, mb_excep_rsp_pdu

The mb_req_pdu is defined as: mb_req_pdu = {function_code, request_data}, where function_code = [1 byte] MODBUS function code, request_data = [n bytes] This field is function code dependent and usually contains information such as variable references, variable counts, data offsets, sub-function codes etc. The mb_rsp_pdu is defined as: mb_rsp_pdu = {function_code, response_data}, where function_code = [1 byte] MODBUS function code response_data = [n bytes] This field is function code dependent and usually contains information such as variable references, variable counts, data offsets, sub-function codes, etc. The mb_excep_rsp_pdu is defined as: mb_excep_rsp_pdu = {exception-function_code, request_data}, where exception-function_code = [1 byte] MODBUS function code + 0x80 exception_code = [1 byte] MODBUS Exception Code Defined in table "MODBUS Exception Codes" (see section 7 ).

4.2 Codificación de Datos • MODBUS usa una representación "big-endian" para direcciones y elementos de datos. Esto significa que cuando se transmite una cantidad numérica mayor que un solo byte, el byte más significativo se envía primero. Así, por ejemplo,

HASTA AQUI

4.3 Modelo MODBUS datos MODBUS basa su modelo de datos en una serie de tablas que tienen características distintivas. Las cuatro tablas principales son:

Las distinciones entre entradas y salidas, y entre los bits -addressable y datos wordaddressable artículos, no implican ningún comportamiento de la aplicación. Es perfectamente aceptable, y muy común, a considerar las cuatro mesas como superponiendo unos a los otros, si esta es la interpretación más natural en el equipo de destino en cuestión. 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 varios elementos de datos consecutivos hasta un límite de tamaño de datos que es dependiente de el código de función de transacción. Es evidente que todos los datos que se manejan a través de MODBUS (bits, registros) deben estar ubicados en memoria de la aplicación del dispositivo. Pero dirección física en la memoria no se debe confundir con referencia datos. El único requisito es vincular referencia de datos con dirección física. Los números de referencia lógico MODBUS, que se utilizan en los iones func MODBUS, son índices enteros sin signo a partir de cero. Los ejemplos siguientes muestran dos maneras de organizar los datos en el dispositivo. Hay diferentes organizaciones posibles, pero no todos se describen en este documento. Cada de vicio puede tener su propia organización de los datos de acuerdo a su aplicación Ejemplo 1: El dispositivo tiene 4 bloques separados El siguiente ejemplo muestra la organización de datos en un dispositivo que tenga digitales y analógicas, entradas y salidas. Cada bloque está separado porque los datos de los diferentes bloques no tienen correlación. Cada bloque es accesible de esta forma con diferentes funciones MODBUS.

Ejemplo 2: El dispositivo tiene sólo 1 cuadra

En este ejemplo, el dispositivo tiene sólo 1 bloque de datos. Los mismos datos se puede llegar a través de varias funciones MODBUS, ya sea a través de un acceso de 16 bits o mediante un bit de acceso.

4.4 MODBUS modelo Dirigiéndose El protocolo de aplicación MODBUS define precisamente abordar PDU reglas. 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 de 1 a n. En el modelo de datos MODBUS cada elemento dentro de un bloque de datos se numeran del 1 al n. Después, el modelo de datos MODBUS tiene que estar ligado a la aplicación del dispositivo (IEC61131 objeto, u otro modelo de aplicación). El pre-asignación entre el modelo de datos MODBUS y la aplicación del dispositivo es específica dispositivo totalmente vendedor.

La figura anterior muestra que una X de datos MODBUS numerada se aborda en el MODBUS PDU X-1. 4.5 Definir Transacción MODBUS El diagrama de estado siguiente describe el procesamiento genérico de una transacción MODBUS en el lado del servidor.

Una vez que la solicitud ha sido procesada por un servidor, una respuesta MODBUS utilizando el adecuada transacción servidor MODBUS se construye. Dependiendo del resultado del procesamiento dos tipos de respuesta se construyen: digo de función de respuesta = el código de función de petición

proceso; excepción = código de función de petición + 0x80;

5 Código de Función Categorías Hay tres categorías de códigos Funciones Modbus. Ellos son: Códigos de Función Pública códigos de función bien definida,

igos de función sin asignar reservados para uso futuro. Códigos de función definidas por el usuario decimal. unción que no sea compatible con la especificación.

iniciar un RFC para introducir el cambio en la categoría de público y tener un nuevo código de función pública asignada. Códigos de función Reservados

ualmente por algunas empresas de productos antiguos y que no están disponibles para el uso público. CÓDIGOS DE FUNCIÓN, subcódigos Y TIPOS MEI.