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.