Aplicación de comunicación Modbus RTU

1. Resumen de funciones

1.1 Resumen

        El protocolo de comunicación serie Modbus fue desarrollado por Modicon Corporation en 1970.

        El protocolo de comunicación en serie Modbus tiene dos modos: Modbus ASCII y Modbus RTU. El protocolo Modbus RTU tiene una mayor eficiencia de comunicación y es más utilizado.

        El protocolo Modbus RTU es un protocolo basado en comunicación serie RS232 y RS485. La comunicación de datos se transmite de forma maestro-esclavo. La estación maestra envía un mensaje de datos con una dirección esclava, y la estación esclava envía el mensaje correspondiente al maestro después de recibiendo el mensaje, la estación responde.

        Solo puede haber una estación maestra en la red de protocolo Modbus RTU y la estación maestra no tiene dirección en la red Modbus RTU. Cada estación esclava debe tener una dirección única, la dirección de la estación esclava es 0-247, de la cual 0 es la dirección de transmisión.

1.2 Estructura del mensaje

        Estructura del mensaje del protocolo Modbus RTU:

        Un mensaje es un marco de datos, y un marco de datos es un mensaje: se refiere a una serie de datos de instrucción completos, al igual que la serie de datos anterior. (CRC check L y CRC check H son códigos de verificación de errores que ocupan 2 bytes)

        Ejemplo de mensaje:

Código de dirección del esclavo Código de función dirección de datos área de datos código de comprobación de errores
01 06 00 01 00 17 98 04

        La función de esta cadena de datos es escribir los datos H0017 (el número decimal es 23) en la dirección H0001 de la estación esclava No. 01.

1.3 Código de función y dirección de datos 

        El intercambio de datos entre dispositivos Modbus se realiza a través de códigos de función, y los códigos de función pueden operarse por bit o por palabra.

        En la comunicación del protocolo Modbus RTU del PLC S7-1200, diferentes áreas de direcciones de datos del protocolo Modbus RTU corresponden a diferentes áreas de datos del PLC S7-1200.

Código de función describir manipulación de bits / palabras Dirección de datos Modbus Área de dirección de datos S7-1200PLC
01 bit de salida de lectura poco 00 001-09 999 Q0.0-Q1023.7
02 leer bit de entrada poco 10 001-19 999 I0.0-I1023.7
03 leer registro de tenencia Personaje 40 001-49 999 Bloque de datos DB , área de almacenamiento de bits M
04 leer palabra de entrada Personaje 30 001-39 999 IW0-IW1022
05 escribir un bit de salida poco 00 001-09 999 Q0.0-Q1023.7
06 escribir un registro de tenencia Personaje 40 001-49 999 Bloque de datos DB , área de almacenamiento de bits M
15 escribir múltiples bits de salida poco 00 001-09 999 Q0.0-Q1023.7
dieciséis Escribir varios registros de tenencia Personaje 40 001-49 999 Bloque de datos DB , área de almacenamiento de bits M

2. Instrucciones 

        En el panel "Comando", seleccione la opción "Comunicación" → "Procesador de comunicación" → "MODBUS (RTU)", y aparecerá una lista de comandos MODBUS RTU.

         El comando Modbus RTU incluye principalmente 3 comandos: comando "Modbus_Comm_Load" (carga de parámetros de comunicación), comando "Modbus_Master" (comunicación de estación maestra) y comando "Modbus_Slave" (comunicación de estación esclava).

        La versión anterior del comando Modbus RTU (MODBUS (V2.2)) solo puede realizar la comunicación Modbus RTU a través del módulo de comunicación CM1241 o la placa de comunicación CB1241.

        La nueva versión de la instrucción Modbus RTU (MODBUS (RTU) V3.0) amplía las funciones de Modbus RTU. Además de admitir el módulo de comunicación CM1241 y la placa de comunicación CB1241, esta instrucción también admite la comunicación PTP en PROFINET o E/S distribuidas PROFIBUS. O racks El módulo implementa comunicación Modbus RTU.

2.1 Comando Modbus_Comm_Load

        Este comando se utiliza para configurar los parámetros de comunicación de los puertos del módulo de comunicación RS232 y RS485 para la comunicación del protocolo Modbus RTU. Cada puerto de comunicación Modbus RTU debe ejecutar el comando "Modbus_Comm_Load" una vez para configurar. El significado de cada pin es el siguiente:

         ① Antes de realizar la comunicación Modbus RTU, debe ejecutar este comando para configurar la comunicación del puerto del módulo, y luego puede usar el comando de comunicación para realizar la comunicación Modbus RTU. Llame la instrucción en el OB de arranque o ejecútela una vez en el OB1 con la llamada "FirstScan".

        ②Cuando las instrucciones "Modbus_Master" (comunicación de la estación maestra) y "Modbus_Slave" (comunicación de la estación esclava) se arrastran al programa de usuario, se les asignará un bloque de datos de instancia y el parámetro MB_DB de la instrucción "Modbus_Comm_Load" se referirá a el bloque de datos de instancia.

2.2 Comando Modbus_Master

        La instrucción "Modbus_Master" se comunica como maestro Modbus RTU a través del puerto configurado por la instrucción "Modbus_Comm_Load".

         ①La misma interfaz de comunicación en serie solo se puede utilizar como maestro o esclavo Modbus RTU.

        ②Cuando se utilizan varias instrucciones "Modbus_Master" en la misma interfaz de comunicación serie, las instrucciones "Modbus_Master" deben utilizar el mismo bloque de datos de instancia y el programa de usuario debe utilizar el método de sondeo para ejecutar las instrucciones.

Supongo que te gusta

Origin blog.csdn.net/viixin/article/details/131423614
Recomendado
Clasificación