Saltar para o conteúdo
Elausys

HyperVisu / Integrações

Integração Modbus TCP

Registos, códigos de função, consulta periódica e escala — com um exemplo prático de inversor.

elausys · 27 julho 2026
Nesta página

Integração Modbus TCP

O Modbus TCP liga o HyperVisu a equipamentos industriais e energéticos: inversores solares, carregadores de veículos elétricos, bombas de calor, unidades de ventilação e PLC. O HyperVisu é o cliente Modbus — consulta os registos do equipamento e escreve neles quando controla um widget.

O que precisa: o endereço IP do dispositivo, a porta Modbus (normalmente 502), o seu mapa de registos (da documentação Modbus do fabricante) e o seu ID de escravo/unidade.

Ligações. Ative primeiro Modbus TCP Protocol na página Services (ver «Serviços e protocolos»); está desativado num servidor novo. O Modbus TCP suporta várias ligações: crie uma por servidor Modbus (por IP/porta) na página Connections (ver «Ligações»). Em Add connection, selecione o cartão Modbus TCP e introduza um Instance Name, o Server IP Address e um Poll Interval (seconds) — a frequência com que o HyperVisu lê todos os objetos dessa ligação. Introduza o intervalo: o 30 cinzento é apenas uma sugestão e um campo vazio faz o servidor consultar a cada 5 segundos.

A caixa de diálogo não tem campo de porta: a ligação é criada na porta 502. Se o equipamento escutar noutra porta, selecione a nova ligação, altere Modbus TCP Port e clique em Save connection.

Uma ligação Modbus não tem botão Test. A verificação é feita através do estado Connected na página Connections e do valor em tempo real de um objeto associado.

Associar um objeto. Associe registos Modbus a objetos de widget no espaço de trabalho Devices. Por objeto, defina:

DefiniçãoSignificado
Slave IDO identificador de unidade, 1–247.
Register typeBobina, entrada discreta, registo de entrada ou registo de retenção.
Register addressO endereço do registo no mapa do dispositivo, de 0 a 65535. É enviado ao equipamento exatamente como introduzido: use o endereço do protocolo, não um número de referência 4xxxx ou 3xxxx. Atenção ao desfasamento de um: alguns fabricantes documentam endereços a partir de 1, o Modbus conta a partir de 0.
Data typeComo os registos brutos são descodificados (inteiro de 16/32 bits com/sem sinal, vírgula flutuante, …).
Byte orderA ordem de palavras/bytes para valores em vários registos — indicada na documentação do fabricante. O campo só aparece para tipos de dados que ocupam dois ou mais registos (32 bits, 64 bits e vírgula flutuante).
Write FunctionApenas registos de retenção. Mantenha Automatic (FC6 / FC16), salvo se o equipamento não implementar FC6; nesse caso escolha Always FC16 (write multiple).
ScalingScale, Offset, Decimal Places e Units. A linha Formula apresenta Display = (Raw × scale) + offset com um valor bruto de exemplo fixo, não com a leitura do equipamento. Uma escala de 0 é interpretada como 1.

📘 Nota: A escala e o desvio do objeto são aplicados antes de qualquer transformação no mesmo objeto (ver «Transformações de valores e estado de funcionamento»). Não acrescente outra transformação de escala, ou o valor será escalado duas vezes.

Exemplo prático — potência do inversor num contador

A documentação do inversor indica: potência ativa, registo de entrada 32080, inteiro de 32 bits com sinal, ganho 1, unidade W, ID de unidade 1.

  1. Crie uma ligação Modbus TCP para o inversor: Server IP Address 192.168.1.120, Poll Interval (seconds) 10 (ver «Ligações»). A ligação é criada na porta 502.
  2. Em Devices, adicione um widget Meter «Produção solar», divisão Técnica, categoria Energia. Em Protocol, selecione a ligação do inversor, apresentada com o nome que lhe atribuiu.
  3. Abra o objeto de potência e introduza: Slave ID 1, Register type Input register, Register address 32080, Data type INT32, Byte order conforme a documentação.
  4. Defina Scaling: escala 0.001, desvio 0, casas decimais 2, unidades kW. Um valor bruto de 5230 torna-se 5.23 kW.
  5. Clique em Save object, depois em Apply changes na barra lateral e confirme. A ligação, o dispositivo e os seus objetos ficam ativos em conjunto nesse momento.
  6. Aguarde pelo menos um intervalo de consulta. O valor em tempo real aparece na linha do widget; compare-o com o ecrã do próprio inversor.

💡 Sugestão: Ative o registo no objeto (ver «Definições de objetos, registo e notificações») para o contador ter gráficos e histórico na app.

Editor de objetos Modbus.

Associação Modbus

Os objetos Modbus são configurados na caixa de diálogo de definições do objeto (abra o objeto com Edit, ver «Definições de objetos, registo e notificações»). As secções Modbus são:

Connection

CampoDescrição
Slave IDO ID do dispositivo escravo Modbus (1–247).

Data Configuration

CampoDescrição
Register TypeA tabela de registos a ler ou escrever (por exemplo registos de retenção ou de entrada).
Register AddressO número do registo.
Data TypeComo são interpretados os bytes do registo (tamanhos de inteiros, vírgula flutuante, …).
Byte OrderA ordem de palavras/bytes utilizada pelo dispositivo.

Scaling & Conversion

CampoDescrição
ScaleMultiplica o valor bruto por este fator (por exemplo 0.1 para dividir por 10).
OffsetAcrescentado após a escala (por exemplo -273.15 para Kelvin → Celsius).
Decimal Places / UnitsPrecisão de apresentação e unidade.

A caixa de diálogo apresenta a fórmula em tempo real — Display = (Raw × scale) + offset — com um exemplo prático, para verificar a conversão antes de guardar.

As definições do objeto Modbus.

💡 Sugestão: Os números de registo, códigos de função e um exemplo prático completo estão no capítulo Modbus.

Perguntas frequentes

De que informações preciso para um dispositivo Modbus?

Do endereço IP, porta, ID de escravo/unidade e mapa de registos do fabricante, incluindo tipos de registos, endereços, tipos de dados e ordem de bytes.

Preciso de uma ligação para cada registo?

Não. Crie uma ligação por IP e porta do servidor Modbus e associe os seus registos aos objetos individuais dos widgets.

Porque está incorreta uma leitura Modbus?

Verifique a base dos endereços de registo, o tipo de dados, a ordem de bytes e a escala com o mapa do fabricante. Alguns documentos numeram os endereços a partir de um, enquanto o Modbus conta a partir de zero.

Como converto uma leitura bruta para a unidade apresentada?

Defina a escala e o desvio nas definições do objeto. A linha Formula apresenta Display = (Raw × scale) + offset com um valor bruto de exemplo fixo, não com a leitura do equipamento.

Com que frequência são atualizadas as leituras Modbus?

Cada ligação tem o seu próprio intervalo de consulta. Compare o valor em tempo real com o ecrã do equipamento após uma consulta.

Continuar a explorar

Encontre os outros guias deste produto na documentação.

Voltar a Integrações