Como Registrar Dados de Dispositivos MODBUS RTU em Banco de Dados MySQL
Um guia completo para consultar dispositivos seriais MODBUS RTU e exportar os dados dos registradores diretamente para um banco de dados MySQL.
1. Configuração do protocolo: MODBUS RTU
Tipo de comunicação: Interrogação ativa (Mestre/Escravo sobre RS485/COM)
Como o MODBUS transmite dados em binário, o analisador deve extrair registradores de retenção específicos (ex.: 40001) ou registradores de entrada. Se o seu sensor usar números de ponto flutuante de 32 bits, configure o analisador para ler dois registradores adjacentes de 16 bits e aplicar a troca de bytes (endianness) correta para reconstruir o valor float.
Aplique esta configuração base para a conexão serial:
{
"port": "COM3",
"baud_rate": 9600,
"data_bits": 8,
"stop_bits": 1,
"parity": "none",
"protocol": "modbus_rtu_serial",
"poll_interval_ms": 1000
}
Seleção do plugin MODBUS RTU para consultar e analisar dados.

Fila de consultas MODBUS RTU: configuração personalizada para ler diferentes registradores.
Pronto para conectar MODBUS RTU ao MySQL?
2. Configuração do banco de dados: MySQL
Você precisará do MySQL Connector/ODBC instalado na máquina que executa o Data Logger. Crie um DSN de sistema apontando para sua instância do servidor MySQL.
Use o script SQL a seguir para criar sua tabela de destino. Recomendamos usar o mecanismo InnoDB para lidar com inserções simultâneas de alta frequência sem bloqueio de tabela.
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;

Plugin MySQL para exportar dados.

Configurações de conexão do banco de dados MySQL.

Instruções SQL INSERT em uma fila com parâmetros personalizados.
3. Solução de problemas específicos do protocolo
- Erros de timeout ou CRC: Diferente do TCP, o MODBUS RTU serial depende de temporização rigorosa. Verifique se os fios RS485 A/B não estão invertidos e se a taxa de transmissão e o ID do dispositivo no software correspondem exatamente ao dispositivo escravo.
- O dispositivo retorna o código de erro ‘Illegal address’: Tente usar a função nº 3 em vez da função nº 4 na sua requisição MODBUS. Caso contrário, verifique se está usando o endereço de registrador correto. Tente especificar um offset absoluto (não um endereço lógico como 40001).
- Tenho vários valores que desejo exportar em uma única linha de dados. Atualmente, o registrador escreve um valor por linha: Você precisa habilitar a opção ‘Exportar todos os dados de uma vez’ nas configurações do plugin MODBUS.
4. Solução de problemas específicos do banco de dados
- O servidor MySQL se foi: Se seu dispositivo serial ficar ocioso durante a noite, o MySQL derrubará a conexão. Ative a configuração 'Manter conexão ativa' no módulo de exportação ODBC do Data Logger.
- Como posso inserir ou atualizar uma linha de dados para o meu dispositivo?: Você pode usar qualquer consulta SQL em nosso plugin 'SQL Database Pro'. No MySQL, você pode executar facilmente o seguinte SQL: 'INSERT INTO ....... ON DUPLICATE KEY .... UPDATE ....'.
- Quero gravar dados de cada um dos meus dispositivos em uma tabela diferente. Como posso fazer isso?: No plugin 'SQL Database Pro', você pode usar um espaço reservado em seu SQL. Por exemplo, 'INSERT INTO SerialData%DEVICE_ID% (....)'. Antes de executar o SQL, o logger substitui %DEVICE_ID% pelo valor correspondente dos dados analisados, e a tabela de destino real variará (SerialData1, SerialData2, etc.).