Coleta e Registro de Dispositivos MODBUS RTU em PostgreSQL
Um guia completo para ler dados de dispositivos seriais MODBUS RTU e exportar os valores processados diretamente para um banco de dados PostgreSQL com sua estrutura de banco.
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 PostgreSQL?
2. Configuração do banco de dados: PostgreSQL
Instale o driver ODBC do PostgreSQL (psqlODBC) no servidor que executa o Advanced Serial Data Logger. Crie um DSN de sistema ou use uma string de conexão direta no plugin SQL Database Professional, como 192.168.1.100:meubancodedados.
Use o script SQL a seguir para criar sua tabela de destino. Certifique-se de que sua função de usuário tenha privilégios INSERT para o esquema de destino. Use o tipo de dados NUMERIC para evitar perda de precisão de ponto flutuante nos dados brutos do sensor.
CREATE TABLE rs232_logs ( id SERIAL PRIMARY KEY, log_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, device_name VARCHAR(50), extracted_value NUMERIC(10, 2) );

Seleção do conector de banco de dados PostgreSQL.

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

Fila SQL para inserir dados em sua tabela.
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
- FATAL: falha na autenticação de senha: Verifique se seu arquivo pg_hba.conf permite conexões do endereço IP do Data Logger (se remoto) e se o método de autenticação está definido como md5 ou scram-sha-256.
- Tenho dois registros semelhantes com o mesmo carimbo de data/hora no meu banco de dados para cada registro: Verifique se você não está usando dois plugins de exportação de dados ao mesmo tempo. Por exemplo, ODBC Database e SQL Database Pro, pois eles podem exportar seus dados em paralelo.
- Instalei os drivers ODBC e criei um DSN, mas seu software não me permite selecioná-lo.: Nosso software requer drivers ODBC de 32 bits. Portanto, você deve instalar esta versão dos drivers para criar um DSN no Administrador ODBC de 32 bits. Você pode usar o botão 'Setup' no plugin 'ODBC Database' para fazer isso.