Cómo registrar MODBUS RTU en base de datos MySQL
Una guía completa para consultar dispositivos serie MODBUS RTU y exportar los datos de registros directamente a una base de datos MySQL.
1. Configuración del protocolo: MODBUS RTU
Tipo de comunicación: Sondeo activo (Maestro/Esclavo sobre RS485/COM)
Dado que MODBUS transmite datos en binario, el analizador debe extraer registros de retención específicos (p. ej., 40001) o registros de entrada. Si su sensor utiliza números de coma flotante de 32 bits, configure el analizador para leer dos registros adyacentes de 16 bits y aplicar el intercambio de bytes (endianness) correcto para reconstruir el valor flotante.
Aplique esta configuración base para la conexión serie:
{
"port": "COM3",
"baud_rate": 9600,
"data_bits": 8,
"stop_bits": 1,
"parity": "none",
"protocol": "modbus_rtu_serial",
"poll_interval_ms": 1000
}
Selección del complemento MODBUS RTU para consultar y analizar datos.

Cola de consultas MODBUS RTU: configuración personalizada para leer diferentes registros.
¿Listo para conectar MODBUS RTU a MySQL?
2. Configuración de la base de datos: MySQL
Necesitará tener instalado MySQL Connector/ODBC en la máquina que ejecuta el Data Logger. Cree un DSN de sistema que apunte a su instancia de servidor MySQL.
Utilice el siguiente script SQL para crear su tabla de destino. Recomendamos utilizar el motor InnoDB para manejar inserciones concurrentes de alta frecuencia sin bloqueo de tabla.
CREATE TABLE sensor_data ( id INT AUTO_INCREMENT PRIMARY KEY, log_timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, device_id VARCHAR(50), register_value FLOAT ) ENGINE=InnoDB;

Complemento MySQL para exportar datos.

Configuración de conexión de la base de datos MySQL.

Sentencias SQL INSERT en una cola con parámetros personalizados.
3. Solución de problemas específicos del protocolo
- Errores de tiempo de espera o CRC: A diferencia de TCP, MODBUS RTU serie depende de una temporización estricta. Verifique que los cables RS485 A/B no estén invertidos y que la velocidad en baudios y el ID del dispositivo en el software coincidan exactamente con el dispositivo esclavo.
- El dispositivo devuelve el código de error «Illegal address»: Intente usar la función #3 en lugar de la función #4 en su solicitud MODBUS. De lo contrario, verifique que esté utilizando la dirección de registro correcta. Intente especificar un offset absoluto (no una dirección lógica como 40001).
- Tengo varios valores que deseo exportar en una sola fila de datos. Ahora el registrador escribe un valor por fila: Debe habilitar la opción «Exportar todos los datos a la vez» en la configuración del complemento MODBUS.
4. Solución de problemas específicos de la base de datos
- El servidor MySQL se ha desconectado: Si su dispositivo serie está inactivo durante la noche, MySQL cerrará la conexión. Active la configuración 'Mantener conexión activa' en el módulo de exportación ODBC del Data Logger.
- ¿Cómo puedo insertar o actualizar una fila de datos para mi dispositivo?: Puede usar cualquier consulta SQL en nuestro complemento 'SQL Database Pro'. En MySQL, puede ejecutar fácilmente el siguiente SQL: 'INSERT INTO ....... ON DUPLICATE KEY .... UPDATE ....'.
- Quiero escribir datos de cada uno de mis dispositivos en una tabla diferente. ¿Cómo puedo hacerlo?: En el complemento 'SQL Database Pro', puede usar un marcador de posición en su SQL. Por ejemplo, 'INSERT INTO SerialData%DEVICE_ID% (....)'. Antes de ejecutar el SQL, el registrador reemplaza %DEVICE_ID% con el valor correspondiente de los datos analizados, y la tabla de destino real variará (SerialData1, SerialData2, etc.).