Registro de MODBUS RTU en base de datos MS SQL en tiempo real
Una guía completa para consultar dispositivos serie MODBUS RTU y exportar los datos de registros directamente a una base de datos MsSQL con su estructura de base de datos.
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 Microsoft SQL Server?
2. Configuración de la base de datos: Microsoft SQL Server
Utilice el cliente nativo de SQL Server integrado o el proveedor OLE DB dentro del módulo de exportación ODBC del Data Logger. La autenticación de Windows es compatible sin problemas si la cuenta de servicio del registrador tiene acceso a la base de datos.
Utilice el siguiente script SQL para crear su tabla de destino. Utilice DATETIME2 en lugar de DATETIME para una mayor precisión en las marcas de tiempo, lo cual es fundamental para el registro serie industrial de alta frecuencia.
CREATE TABLE SerialData ( RecordID INT IDENTITY(1,1) PRIMARY KEY, LogTime DATETIME2 DEFAULT SYSUTCDATETIME(), PortID NVARCHAR(20), SensorReading FLOAT );

Conector de Microsoft SQL Server en nuestro registrador.

Configuración de conexión de la base de datos SQLServer. Por ejemplo, SQL Express.

Cola SQL.
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
- Error de inicio de sesión del usuario / Acceso denegado: Si ejecuta RS232 Data Logger como un servicio de Windows en segundo plano, asegúrese de que el servicio se ejecute bajo una cuenta de dominio con roles db_datawriter, en lugar de la cuenta predeterminada 'Sistema local'. O cree un usuario independiente con el método de autenticación 'SQL Server'.
- ¿Qué pasa si mi base de datos está fuera de línea? ¿Perderé mis datos?: Utilice el complemento SQL Database Pro. Puede escribir datos en un archivo temporal mientras su base de datos está fuera de línea y restaurarlos más tarde.
- El código solo funciona cuando envía números. Cuando intento enviar una letra, no funciona.: 1. Debe declarar la variable del analizador como cadena. 2. Su tabla debe contener la columna con el tipo 'VARCHAR' o 'NVARCHAR'. El tamaño de esta columna debe ser suficiente para sus datos. 3. Debe seleccionar el tipo de datos 'string' para la columna correspondiente en el complemento de exportación de datos en la página 'Binding'.