Skip to Content
Desenvolvimento de Apps IoTIncorporando HMIs Externas

Integrar HMIs Externos

Muitas máquinas industriais expõem sua própria HMI (Interface Humano-Máquina) através de um servidor web local. Este guia mostra como tornar essas HMIs acessíveis pela interface do IronFlock usando o widget Embed, um proxy reverso nginx e túneis de acesso remoto.

Exemplo Básico: Máquina Individual

O caso mais simples é uma única máquina CNC (ou PLC, câmera, etc.) cujo servidor web HMI é acessível pela rede local do dispositivo edge — por exemplo em 192.168.1.50:8080.

1. Configurar o endereço da máquina como parâmetro do app

Use um parâmetro de app para permitir que o usuário configure o endereço HMI local da máquina (por exemplo, 192.168.1.50:8080). Dessa forma, o endereço não é codificado fixamente e pode ser definido por instalação de dispositivo.

2. Adicionar um proxy reverso nginx no código edge

Na configuração Docker do seu app, inclua um contêiner nginx simples que leia o endereço da máquina configurado e o encaminhe para uma porta fixa no dispositivo edge — por exemplo localhost:3000. O código edge lê o parâmetro do app e configura o nginx adequadamente.

3. Definir a porta fixa no port template

No seu port template, declare a porta em que o nginx escuta:

# .ironflock/port-template.yml ports: - name: CNC Machine HMI port: 3000 main: false

A porta deve ser fixa (não atribuída dinamicamente) porque portas de acesso remoto não podem ser adicionadas em tempo de execução — são definidas no momento do release e configuradas por instalação.

Ao declarar a porta em port-template.yml, administradores do projeto podem habilitar ou desabilitar o acesso remoto à máquina CNC nas configurações do app. Quando o app é instalado pela primeira vez em um dispositivo, o usuário deve permitir explicitamente o acesso remoto a esta porta nas configurações de instalação. Esta é uma funcionalidade de segurança — o acesso remoto não é habilitado por padrão.

O acesso remoto é necessário aqui porque o usuário que acessa a HMI está em seu laptop local, não na rede do dispositivo edge. A tecnologia de túneis do IronFlock cria uma conexão segura do navegador do usuário até a porta encaminhada do dispositivo edge.

4. Adicionar um widget Embed ao painel

No UI Builder, adicione um widget Embed que aponte para o endereço do túnel de acesso remoto do dispositivo na porta 3000. A HMI original da máquina CNC agora aparece diretamente dentro do painel IronFlock.

Esta configuração básica oferece acesso remoto à HMI de uma única máquina por dispositivo — sem VPN, sem alterações no firewall.


Avançado: Múltiplas Máquinas por Dispositivo

Quando um dispositivo edge está conectado a várias máquinas, você pode estender o padrão para servir todas as HMIs através de uma única porta encaminhada usando roteamento baseado em caminhos.

1. Armazenar endereços de máquinas em uma tabela do data backend

Adicione uma tabela ao seu data backend que rastreie os detalhes de cada máquina, incluindo o endereço do servidor web local e o caminho encaminhado:

# .ironflock/data-template.yml data: tables: - tablename: machines maintainLatestFlagFor: ['machine_id'] columns: - id: tsp dataType: timestamp - id: machine_id dataType: string - id: name dataType: string - id: local_hmi_address dataType: string - id: forwarded_hmi_path dataType: string

2. Rotear múltiplas máquinas através do nginx

Configure o nginx para fazer proxy reverso de cada máquina em um caminho separado sob a mesma porta fixa. Por exemplo, encaminhe 192.168.1.50:8080 para localhost:3000/cnc1/ e 192.168.1.51:8080 para localhost:3000/cnc2/. Armazene esses caminhos encaminhados de volta na tabela machines para que o painel saiba onde encontrar cada HMI.

A mesma porta fixa e o port template do exemplo básico se aplicam — uma porta serve todas as máquinas através de caminhos diferentes.

3. Adicionar widgets Embed com navegação baseada em páginas

No UI Builder, crie uma página de painel separada para a HMI de cada máquina e adicione um widget Embed em cada página que leia o forwarded_hmi_path da tabela machines e o use como URL de embed.

Para permitir que os usuários alternem entre HMIs, use o recurso Páginas e Navegação. Adicione um widget de Navegação Lateral que liste todas as máquinas conectadas como um menu de barra lateral vertical. Os itens da barra lateral podem ser gerados dinamicamente a partir da tabela machines para que novas máquinas apareçam automaticamente. Quando um usuário clica no nome de uma máquina, o painel navega para a página correspondente e o widget Embed dessa página carrega a HMI correta.

O Resultado

Os usuários podem navegar por todas as máquinas conectadas no painel, selecionar uma e interagir com sua HMI original diretamente dentro do IronFlock — sem VPN, sem aba de navegador separada, sem configuração de firewall. O widget Embed, o data backend e o túnel de acesso remoto trabalham juntos para criar uma superfície de controle unificada e segura para toda uma frota de máquinas.

Last updated on