Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Monitoramento e Controle de Energia com OpenEMS, Modbus TCP e MQTT em Ambiente Virtualizado

Você terá um ambiente OpenEMS rodando em uma VM, integrado a um simulador de dispositivo Modbus TCP e publicando dados via MQTT. O laboratório leva cerca de 2 horas.

Gerenciamento de Energia com OpenEMS do zero à integração industrial
Ligado ao treinamento Gerenciamento de Energia com OpenEMS do zero à integração industrial
ULC-LAB-ENER-0003 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
12
Validações
5
Versões da documentação consultada
OpenEMS Edge a versão estável atual · mbserver (Modbus TCP simulator) a versão estável atual · Mosquitto MQTT Broker a versão estável atual · Java Runtime Environment consulte a documentação do OpenEMS
Objetivo

Demonstrar, em bancada, como implementar o OpenEMS para monitorar e controlar um dispositivo industrial simulado via Modbus TCP, com publicação de dados para um broker MQTT. O objetivo é entender a arquitetura, configurar integrações e validar a comunicação ponta a ponta, como seria feito em uma rede de fibra dedicada como a da Upnetix.

Topologia

Uma VM Linux executa o OpenEMS, conectando-se a um simulador de dispositivo Modbus TCP (rodando localmente) e a um broker MQTT (também local). O OpenEMS coleta dados do simulador via Modbus TCP (127.0.0.1:1502) e publica leituras em tópicos MQTT (127.0.0.1:1883).


+----------------+
|   OpenEMS VM   |
|  (192.168.56.2)|
+----------------+
    |        |
    |        |
    v        v
+--------+ +--------+
|Modbus  | | MQTT   |
|Simulador| | Broker |
|127.0.0.1| |127.0.0.1|
+--------+ +--------+

Equipamentos e software

ItemRequisito, licença ou versão
VM Linux (Ubuntu 22.04 ou similar)2 vCPU, 2 GB RAM, 10 GB disco, acesso à rede local
OpenEMS EdgeApache 2.0 · a versão estável atual
mbserver (Modbus TCP simulator)MIT · a versão estável atual
Mosquitto MQTT BrokerEPL/EDL · a versão estável atual
Java Runtime EnvironmentGPL ou OpenJDK · consulte a documentação do OpenEMS

Roteiro

  1. Preparar a VM Linux

    Atualize o sistema e instale utilitários essenciais. Isso garante ambiente limpo e atualizado.

    sudo apt update && sudo apt upgrade -y
    sudo apt install openjdk-11-jre git wget unzip -y

    O que você deve ver: Sistema atualizado, Java instalado.

  2. Instalar Mosquitto MQTT Broker

    O OpenEMS publica dados via MQTT. Instale o broker localmente.

    sudo apt install mosquitto mosquitto-clients -y
    sudo systemctl enable --now mosquitto

    O que você deve ver: Mosquitto rodando na porta 1883.

  3. Instalar o simulador Modbus TCP (mbserver)

    Simule um dispositivo industrial Modbus TCP para testes realistas.

    pip install mbserver

    O que você deve ver: mbserver instalado via pip.

  4. Configurar e iniciar o mbserver

    Inicie o simulador ouvindo na porta 1502. Isso simula um dispositivo Modbus TCP.

    mbserver --host 127.0.0.1 --port 1502 &

    O que você deve ver: mbserver ouvindo em 127.0.0.1:1502.

  5. Clonar o repositório OpenEMS Edge

    Obtenha o código-fonte do OpenEMS Edge.

    git clone https://github.com/OpenEMS/openems.git
    cd openems/io.openems.edge.application

    O que você deve ver: Repositório clonado e diretório correto acessado.

  6. Configurar OpenEMS para Modbus TCP e MQTT

    Edite o arquivo de configuração para integrar Modbus TCP e MQTT. Isso conecta os componentes.

    cp config-example.properties config.properties
    nano config.properties

    O que você deve ver: Arquivo config.properties criado para customização.

  7. Editar config.properties

    Adicione/ajuste as seguintes linhas para habilitar Modbus TCP e MQTT. Consulte a documentação para detalhes de parâmetros.

    [Adicione ou edite]
    openems.edge.modbus.tcp.enabled=true
    openems.edge.modbus.tcp.host=127.0.0.1
    openems.edge.modbus.tcp.port=1502
    openems.edge.modbus.tcp.unitid=1
    openems.edge.mqtt.enabled=true
    openems.edge.mqtt.brokeruri=tcp://127.0.0.1:1883
    openems.edge.mqtt.clientid=openems-edge

    O que você deve ver: Configuração salva com parâmetros corretos.

  8. Iniciar o OpenEMS Edge

    Execute o OpenEMS para iniciar a integração.

    java -jar io.openems.edge.application-VERSAO.jar -c config.properties

    O que você deve ver: OpenEMS inicializa, conecta ao Modbus TCP e ao MQTT Broker.

  9. Simular dados no mbserver

    Insira valores de teste no mbserver para simular medições.

    Consulte a documentação do mbserver para comandos de escrita de registradores.

    O que você deve ver: mbserver aceita comandos e armazena valores.

  10. Verificar publicação MQTT

    Use um cliente MQTT para monitorar os tópicos publicados pelo OpenEMS.

    mosquitto_sub -h 127.0.0.1 -t '#' -v

    O que você deve ver: Mensagens de dados do OpenEMS aparecem nos tópicos MQTT.

  11. Testar controle Modbus

    Envie comandos Modbus via OpenEMS para alterar valores no simulador.

    Consulte a documentação do OpenEMS para comandos de controle.

    O que você deve ver: Valores mudam no mbserver conforme comandos enviados.

  12. Monitorar logs do OpenEMS

    Acompanhe os logs para identificar integrações bem-sucedidas ou falhas.

    tail -f logs/openems.log

    O que você deve ver: Logs mostram conexões e transações Modbus/MQTT.

Como saber que funcionou

TesteComandoCritério
Verificar conexão ao broker MQTTmosquitto_sub -h 127.0.0.1 -t '#' -vMensagens do OpenEMS aparecem nos tópicos MQTT.
Checar leitura de dados ModbusConsulte logs do OpenEMSLogs mostram leitura de registradores Modbus sem erro.
Alterar valor no mbserver e observar MQTTAltere valor no mbserver, observe saída do mosquitto_subMudança refletida nas mensagens MQTT.
Enviar comando de controle pelo OpenEMSConsulte documentação OpenEMS para comandoValor alterado no mbserver.
Verificar logs de errotail -f logs/openems.logAusência de erros críticos de conexão.

Troubleshooting

SintomaCausa provávelCorreção
OpenEMS não conecta ao Modbus TCPmbserver não está rodando ou porta erradaVerifique se o mbserver está ativo em 127.0.0.1:1502.
Sem mensagens MQTTMosquitto não está rodando ou configuração incorretaConfirme se o Mosquitto está ativo e brokeruri correto no config.properties.
Erro de autenticação MQTTBroker exige usuário/senha e não foi configuradoAjuste config.properties para incluir credenciais, se necessário.
OpenEMS não iniciaVersão do Java incompatívelConfirme versão do Java conforme documentação do OpenEMS.
Dados não mudam no MQTT após alterar mbserverOpenEMS está lendo registrador errado ou cacheadoRevise endereços de registrador no config.properties e reinicie o OpenEMS.

Segurança e hardening

  • Nunca exponha portas 1502 (Modbus) e 1883 (MQTT) para redes públicas sem autenticação.
  • Utilize autenticação e TLS no broker MQTT em ambientes reais.
  • Restrinja permissões de firewall para acesso apenas local durante testes.
  • Revise logs para identificar tentativas de acesso não autorizado.

Checklist final

Referências

  1. RESTful API Tutorial · Restfulapi (restfulapi.net)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
1 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.