El control industrial se ha movido del control independiente al monitoreo centralizado y el control centralizado, y ahora ha ingresado a la era de la red, los controladores industriales conectados a la red también proporcionan una gestión de la red conveniente. Modbus es uno de los protocolos de red para controladores industriales.
Introducción del protocolo de comunicación Modbus
Protocolo Modbus, en primer lugar, a partir de la comprensión literal, incluye MOD y bus Dos partes, en primer lugar, es un bus, es decir, protocolo de bus e I2c, SPI similar, el bus significa que hay hosts, hay esclavos, estos dispositivos en el mismo bus.
Modbus admite un solo maestro, múltiples esclavos y hasta 247 dispositivos de esclavos. Acerca de MOD, debido a que este protocolo se usó por primera vez en los controladores PLC, los controladores PLC de Modicon son exactos, que es de donde proviene el nombre Mod-Bus.
Más tarde, Schneider (Schneider) adquirió Modicon, el protocolo Modbus es ampliamente utilizado en controladores industriales, HMI y sensores, y gradualmente aceptado por otros fabricantes, convirtiéndose en un protocolo de comunicación convencional para la comunicación con dispositivos periféricos.
Modbus belongs to the seventh application layer in the 7-layer OSI reference model, and there are two types of data link layer: based on the standard serial protocol and TCP protocol, the physical layer can use 3-wire 232, 2-wire 485, 4-wire 422, or fiber optic, network cable, wireless y otros medios de transmisión.
El protocolo Modbus es un modo de solicitud/respuesta de proceso de interacción, el host inicia la solicitud de comunicación, el esclavo responde a la solicitud del host, el esclavo no enviará datos activamente cuando no reciba la solicitud del host y los esclavos no se comunicarán entre sí.
Características del protocolo de comunicación Modbus
(1) Estándar, abierto, los usuarios pueden usar el protocolo Modbus sin cargo, tenga la seguridad de que no hay necesidad de pagar las tarifas de licencia y no violarán los derechos de propiedad intelectual.
(2) Modbus puede admitir una variedad de interfaces eléctricas, como RS -232, RS -485, etc., también se puede transmitir a través de una variedad de medios, como par retorcido, fibra óptica, inalámbrica, etc.
(3) El formato de cuadro de Modbus es simple, compacto y fácil de entender. Es fácil de usar para los usuarios y simples para los proveedores.
Modbus 4 tipos de datos
El protocolo MODBUS estipula que los tipos de datos para las operaciones de lectura y escritura se pueden clasificar en los siguientes 4 tipos de acuerdo con los atributos y tipos de lectura y escritura:
1. Entrada discreta (entrada discreta):1 bit, solo lectura
2. Bobinas (bobinas):1- bit, lectura-escritura
3. Registros de entrada:16 bits, de solo lectura
4. Registros de retención:16 bits, leer/escribir.
Versiones de protocolo Modbus
Actualmente, existen versiones del protocolo Modbus para serie, Ethernet y otras redes que admiten el protocolo de Internet.
La mayoría de los dispositivos Modbus se comunican sobre la capa física EIA -485.
Para las conexiones en serie, existen dos variantes que difieren ligeramente en términos de diferentes representaciones de datos numéricos y detalles de protocolo. Modbus RTU es una representación binaria compacta de datos, y Modbus ASCII es una representación verbosa y legible por humanos. Ambas variantes usan comunicación en serie; El formato RTU sigue con comandos/datos con una suma de verificación de redundancia cíclica, mientras que el formato ASCII utiliza una suma de verificación de redundancia longitudinal. Los nodos configurados para la variante RTU no se comunican con nodos configurados para la variante ASCII y viceversa.
Para las conexiones a través de TCP/IP (EG Ethernet) donde existen múltiples variantes Modbus/TCP, este enfoque no requiere un cálculo de suma de verificación.
Para los tres protocolos de comunicación, el modelo de datos y las llamadas de función son los mismos, solo la encapsulación es diferente.
Modbus tiene una versión extendida MODBUSPLUS (MODBUS+ o MB+), sin embargo, este protocolo es patentado y diferente de MODBUS. Requiere un coprocesador especializado para manejar la rotación de tokens de alta velocidad similar a HDLC. Utiliza un cable de par retorcido de 1 Mbit/S y tiene aislamiento de conversión en cada nodo, un dispositivo que utiliza activación de conversión/borde en lugar de activación de voltaje/nivel. Conectar Modbus Plus a una computadora requiere una interfaz especial, generalmente una placa que admite el bus ISA (SA85), PCI o PMCIA.
Entonces, cuando nos referimos al protocolo Modbus, es importante determinar qué modo es, todavía hay una gran diferencia entre los diferentes modos.
Formato de cuadro de datos de Modbus
Lo primero que debemos saber es que un marco de datos Modbus normal contiene lo siguiente: Campo de dirección + Código de función + Data + Glitch CheckSum, más el formato de cuadro Modbus es el mismo independientemente de qué versión del protocolo se mencione anteriormente.
Principalmente incluye:
1. Campo de dirección:es decir, la dirección del esclavo a acceder por el maestro, su rango 0 ~ 247
2. Código de función:es decir, qué tipo de operación quiere realizar el maestro en el esclavo.
3. Datos:Si la solicitud del maestro es leer datos, entonces los "datos" deben contener la siguiente información: dónde comenzar a leer datos + cuántos datos leer. Si la solicitud del maestro es escribir datos al esclavo, entonces los "datos" deben contener la siguiente información: dónde comenzar a escribir datos + cuántos bytes de datos escribir + los datos específicos que se escribirán.
4. Verificación de errores:Para garantizar la corrección de la transmisión de datos, el protocolo Modbus agrega una verificación de error de dos bytes al final del marco de datos.
Código de función de Modbus
Los códigos de función Modbus, que se escriben en el marco de datos de solicitud de host, determinan si el host lee o escribe, si lee bobinas, cantidades discretas o registros, si escribe un registro único o registros múltiples, etc., y qué tipo de datos solicita el host.
Hay tres tipos principales de códigos de funciones: códigos de funciones públicas, códigos de funciones definidos por el usuario y códigos de funciones reservados.
1. Códigos de funciones públicas
-El códigos de función que están mejor definidos
-Pasado para ser único
-Cangible por la organización Modbus
-Publicly Probable
-Have una prueba de conformidad utilizable
-Probado en el MB IETF RFCS
-Conta los códigos de funciones asignados públicos definidos y los códigos de función reservados no asignados para uso futuro.
2. Códigos de funciones definidos por el usuario
Hay dos rangos de definición de código de función definidos por el usuario, es decir, 65 a 72 y decimal 100 a 110.
-El usuario puede seleccionar e implementar un código de función sin ninguna aprobación de la organización Modbus.
-El uso del código de función seleccionado no se garantiza que sea único.
-Si el usuario desea restablecer la función como un código de función pública, entonces el usuario debe iniciar el RFC para introducir el cambio en la clasificación pública y asignar un nuevo código de función pública.
3. Códigos de funciones reservados
-El Códigos de función que son comúnmente utilizados por algunas compañías para productos heredados y no son válidos para uso público.
Los reales más utilizados son los 4 códigos de función en los códigos de función pública: 03/04/06/10
0 x03: Leer registros de múltiples registros
0 x04: leer registro de entrada
0 x06: Escribir registros de retención individual
0 x10: Escriba registros de retención múltiples
Dado que el PLC controla principalmente los contactos de retransmisión, las bobinas (bobinas) también se leen y escriben con frecuencia en el PLC. Aquí debe prestar especial atención a un punto es: escribir registros de retención, necesitar distinguir entre {{0}} x 0 6 Escriba el registro único y 0x10 Escribir registros múltiples, mientras que los registros de lectura de lectura no distinguen entre una lectura y lectura múltiple, cuando necesita leer un registro de retención único, también es el uso de la instrucción 0x03, especifica el número de lectura.




