É necessária uma assinatura do JoVE para visualizar este conteúdo. Faça login ou inicie seu teste gratuito.

Artigo de método

Um Protocolo para Geração Automática de Interfaces Baseadas na Web para Aplicações LabVIEW Utilizando o Protocolo de Interoperabilidade Remota

189 visualizações

⸱

DOI:

10.3791/72765

⸱

14 de agosto de 2026

Neste artigo

Resumo

Este estudo valida a geração automática de interface de usuário da Web baseada em um protocolo de interoperabilidade remota (RIP) com dois sistemas LabVIEW distintos — um modelo de ventilador e um modelo de controle de posição de motor de corrente contínua — e fornece um procedimento reproduzível para construir, registrar, implantar e testar ambos os exemplos.

Resumo

Plataformas experimentais remotas permitem que modelos de simulação locais ou dispositivos físicos sejam acessados por meio de uma rede, mas interfaces Web convencionais normalmente exigem uma página separada, um layout de controle e uma lógica de comunicação de dados distintos para cada experimento, o que aumenta os custos de desenvolvimento. Este trabalho valida um fluxo de trabalho estabelecido para gerar automaticamente uma interface de usuário (IU) Web a partir de instrumentos virtuais (VIs) do LabVIEW utilizando o protocolo de interoperabilidade remota (RIP) e fornece um protocolo reprodutível para sua implementação. O fluxo de trabalho constrói VIs do LabVIEW que definem controles de entrada e indicadores de saída no Painel Frontal, registra cada VI na Configuração do Servidor RIP, lê os metadados resultantes das variáveis e gera os controles Web correspondentes e exibições de saída. O Caddy é utilizado como proxy reverso para unificar o caminho de arquivos estáticos do front-end e o caminho de solicitação da interface de programação de aplicações (API) do RIP. O fluxo de trabalho é avaliado com dois sistemas distintos: um modelo de velocidade de ventilador e um modelo de controle de posição proporcional-integral-derivativo (PID) de motor de corrente contínua (CC). Em ambos os casos, a página Web identifica as variáveis expostas, escreve as entradas do usuário no back-end do LabVIEW, lê as saídas do modelo e gera a interface a partir dos metadados do RIP. Esses resultados validam o mesmo processo de geração automática de IU em dois sistemas dinâmicos diferentes e documentam os passos necessários para reproduzi-lo.

Introdução

Com o desenvolvimento de experimentos remotos, ensino on-line e tecnologias da Internet das Coisas, fornecer acesso baseado na Web a modelos de simulação locais ou dispositivos experimentais tornou-se uma direção importante para o desenvolvimento de plataformas experimentais1,2,3,4. Trabalhos recentes integraram ainda mais laboratórios equipados com Internet das Coisas ao aprendizado baseado em projetos e ao acesso local ou remoto, demonstrando o contínuo avanço de plataformas experimentais flexíveis e interconectadas na educação em engenharia5. Em experimentos de sistemas de controle, os usuários geralmente precisam ajustar parâmetros de entrada em um navegador e observar os estados de saída em tempo real6,7. Os métodos convencionais normalmente exigem uma página da Web separada, lógica de vinculação de controle e interface de comunicação de dados para cada objeto experimental8,9. Quando as variáveis no modelo de back-end mudam, a página de front-end frequentemente precisa ser modificada de forma correspondente, o que gera um substancial trabalho repetitivo de desenvolvimento e limita a expansão rápida da plataforma experimental.

O protocolo de interoperabilidade remota (RIP) fornece uma camada intermediária entre modelos experimentais de back-end e interfaces Web front-end10,11. Na abordagem baseada em RIP para geração automática de interface do usuário descrita em trabalhos anteriores, o Servidor RIP fornece metadados para cada experimento, incluindo nomes de variáveis, atributos de entrada/saída, tipos de dados, valores mínimos, valores máximos, precisão, descrições e os métodos disponíveis de leitura/escrita11. Um cliente Web pode então usar esses metadados para criar os elementos HTML correspondentes, como rótulos, campos de entrada numérica, controles deslizantes, controles booleanos e exibições de saída, durante o carregamento ou atualização da página11. O presente protocolo não reimplementa nem redefine a especificação do RIP. Em vez disso, utiliza o serviço RIP de código aberto existente e a lógica de geração de interface do usuário em HTML a partir de metadados baseada em RIP como base para comunicação e geração de interface, concentrando-se na construção reprodutível, registro, implantação de proxy e verificação de dois exemplos de VI LabVIEW.

Em comparação com o desenvolvimento convencional de interfaces web personalizadas, a geração automática de interface de usuário baseada em RIP reduz a necessidade de implementar layouts de controle, lógica de vinculação de variáveis e funções básicas de comunicação quando múltiplos experimentos LabVIEW expõem variáveis escalares de entrada e saída semelhantes8,9,10,11. Após um novo VI ser registrado e suas variáveis estarem disponíveis para o Servidor RIP, a mesma lógica de leitura de metadados e geração de controles pode ser reutilizada para construir a interface web básica10,11. Esse recurso é útil para implantação rápida, demonstrações didáticas e plataformas de laboratórios remotos que exigem acesso consistente a diversos experimentos semelhantes3,8,9. No entanto, a interface gerada automaticamente também apresenta limitações. Ela não infere completamente as relações físicas entre as variáveis, não determina automaticamente os mapeamentos de gráficos nem projeta visualizações e interações de segurança específicas do domínio11. Portanto, o desenvolvimento manual da interface web continua sendo preferível quando um experimento exige gráficos altamente personalizados, fluxos de trabalho complexos para o usuário, visualização avançada, intertravamentos de segurança de hardware ou arbitragem de escrita para múltiplos usuários.

O fluxo de trabalho geral do protocolo é resumido na Figura 1. Neste fluxo de trabalho, um VI do LabVIEW primeiramente define os controles de entrada e indicadores de saída necessários no Painel Frontal. O VI é então registrado na Configuração do Servidor RIP mediante a especificação do nome do experimento e do caminho do VI. Após o registro, o Servidor RIP lê os metadados do experimento selecionado e fornece acesso de leitura e gravação às variáveis disponíveis. A página da Web XHTML utiliza os metadados retornados para gerar automaticamente os controles de entrada e exibições de saída correspondentes, enquanto o Caddy fornece um caminho unificado de acesso para a página da Web estática e as rotas de comunicação do RIP. Os modelos de ventilador e de motor de corrente contínua são utilizados neste estudo como duas implementações do mesmo fluxo de trabalho. Para outros experimentos do LabVIEW que ofereçam variáveis escalares, numéricas e booleanas compatíveis, os desenvolvedores podem seguir o mesmo fluxo de trabalho de criação-registro-implantação-verificação para criar uma interface da Web gerada automaticamente, acrescentando, quando necessário, visualizações específicas do experimento, lógica de segurança ou tratamento complexo de dados.

Este artigo não propõe uma nova arquitetura RIP nem amplia o leque de tipos de dados já suportados pelo RIP. Em vez disso, utiliza o RIP como mecanismo estabelecido de comunicação e geração de interface de usuário baseada em metadados, concentrando-se na validação desse mesmo processo com dois sistemas LabVIEW diferentes, ao mesmo tempo em que documenta um protocolo de implementação reproduzível. Trabalhos anteriores apresentaram um método básico para geração automática de interfaces web com base em metadados do RIP e usaram um experimento online com motor servo como estudo de caso11. Arquiteturas de laboratórios remotos com acesso web, combinando interfaces interativas com softwares de engenharia e LabVIEW, também foram relatadas em estudos anteriores9,12. No entanto, durante a reprodução prática, alguns modelos LabVIEW do estudo original foram afetados pela compatibilidade entre versões de software e módulos, tornando-os difíceis de serem utilizados diretamente em ambientes mais recentes. Este trabalho, portanto, reconstrói duas VIs de back-end compatíveis — um modelo de ventilador e um modelo de controle de posição proporcional-integral-derivativo (PID) para motor de corrente contínua (CC) — e aplica o mesmo processo de geração de interface baseado em metadados a ambos. A contribuição consiste na validação cruzada do fluxo de trabalho RIP estabelecido e em um protocolo detalhado para reproduzir o processo, e não em uma extensão da generalidade do RIP.

Os usuários pretendidos deste protocolo são pesquisadores, instrutores e desenvolvedores de laboratórios que já utilizam VIs no LabVIEW e precisam expor modelos de simulação ou sistemas experimentais de baixo risco por meio de um navegador Web, sem precisar implementar independentemente uma interface personalizada completa para cada modelo. O protocolo é particularmente adequado para experimentos que utilizam variáveis numéricas e booleanas padrão, ajuste de parâmetros e monitoramento em tempo real do estado10,11. É menos adequado como solução autônoma para experimentos que exigem estruturas de dados complexas, visualizações especializadas, intertravamentos rigorosos de segurança de hardware ou arbitragem de escrita multiusuário11. O objetivo deste trabalho é validar a geração automática de interface Web baseada em RIP com dois sistemas diferentes no LabVIEW e fornecer um protocolo completo e reprodutível, desde a construção do VI de back-end até a interação baseada em navegador. O protocolo inclui a definição de variáveis de entrada e saída, registro do experimento no RIP Server, geração de interface baseada em metadados, implantação do proxy Caddy e verificação remota de leitura e escrita. A aplicação do mesmo fluxo de trabalho aos modelos de ventilador e motor CC demonstra que o processo estabelecido pode ser reproduzido sem a necessidade de reescrever manualmente uma interface Web completa para cada exemplo9,10,11.

Acesso restrito. Inicie sessão ou comece um teste para visualizar este conteúdo.

Protocolo

Conclua as seguintes etapas para construir, registrar, implantar e verificar dois experimentos LabVIEW acessíveis por RIP seguindo o fluxo de trabalho resumido na Figura 1. Todas as ferramentas e plataformas utilizadas neste estudo estão listadas na Tabela de Materiais.

1. Construa e implante o experimento com o modelo de ventilador

  1. Construa o modelo de ventilador VI.
    1. Abra o LabVIEW, crie um novo VI e salve o arquivo como fengshan.vi. Salve o VI em qualquer diretório acessível pelo processo do RIP WebService. A pasta Private é usada apenas como exemplo de diretório e não está codificada no RIP. Insira o caminho real do VI selecionado durante o registro do experimento no RIP.
    2. No Painel Frontal, adicione os controles de entrada para o modelo do ventilador. Neste exemplo, nomeie os controles de entrada Habilitar, PWM, Carga, Tau, KMaxRPM e Perturbação. Definir Habilitar como um controle booleano e definir PWM, Carga, Tau, KMaxRPM, e Perturbação como controles numéricos de ponto flutuante de precisão dupla (DBL). Veja Tabela Suplementar 1 pelo significado físico e papel no modelo das variáveis do ventilador.
    3. Adicione os indicadores de saída para o modelo do ventilador. Neste exemplo, nomeie os indicadores de saída SpeedRPM, SteadyRPM, TimeS, SpeedNorm, CurrentA e PowerW. Defina todos os indicadores de saída como indicadores DBL.
      ​OBSERVAÇÃO: Tabela 1 descreve o significado físico e o papel do modelo dessas variáveis de saída. O painel frontal do ventilador concluído é mostrado em Figura 2. Os nomes das variáveis, intervalos e tamanhos de passo mostrados em Tabela 1 descrever os dois exemplos implementados neste protocolo. Eles não são requisitos fixos do RIP. Para outros experimentos em LabVIEW, os desenvolvedores podem definir diferentes nomes de variáveis no Painel Frontal e propriedades numéricas. O Servidor RIP lê os nomes reais das variáveis, tipos de dados, atributos de entrada/saída e propriedades numéricas disponíveis a partir dos metadados do VI, e a página da Web gera os controles e exibições correspondentes a partir dos metadados retornados.
    4. Adicione um Laço Enquanto ao Diagrama de Blocos. Adicione dois Registradores de Deslocamento para armazenar velocidade_anterior e tempo_anteriore inicialize ambos os valores com 0.
    5. Adicione um Nó de Fórmula dentro do Laço Enquanto. Conecte Habilitar, PWM, Carga, Tau, KMaxRPM, Perturbação, velocidade_anterior e tempo_anterior aos terminais de entrada esquerda do Nó Fórmula, e defina SteadyRPM, velocidade_próxima, VelocidadeNormalizada, CorrenteA, PotênciaW, e próximo_tempo como os terminais de saída direitos.
    6. Construa o Habilitar lógica de controle fora do nó de fórmula. Utilize Habilitar como o sinal seletor de modo que u = Modulação por Largura de Pulso quando Habilitar é Verdadeiro e u = 0 quando Habilitar é Falso.
    7. Insira o código do modelo do ventilador no nó da fórmula. Utilize este código para calcular a velocidade em regime permanente, a velocidade real, a velocidade normalizada, a corrente, a potência e o tempo de operação; consulte o Arquivo de Código Suplementar 1 para obter o código completo.
    8. Conecte o próximo_velocidade saída do Nó Fórmula para o VelocidadeRPM indicador e conectar próxima_velocidade de volta ao Shift Register direito para velocidade_anterior. Conectar SteadyRPM ao SteadyRPM indicador.
    9. Conectar próximo_tempo ao Tempo indicador e conectar próximo_tempo de volta ao Registrador de Deslocamento da direita para tempo_anterior. Conectar SpeedNorm, CorrenteA e PowerW aos indicadores de saída correspondentes.
    10. Adicione uma função Esperar dentro do Laço Enquanto e defina o tempo de espera como 50 ms. Adicione um botão Parar Local e conecte-o ao terminal condicional do Laço Enquanto.
    11. Salve fengshan.vi. O diagrama de blocos do ventilador concluído é mostrado em Figura 3.
      PONTO DE PAUSA: Após salvar o VI do ventilador concluído, o fluxo de trabalho pode ser interrompido. Retome posteriormente reabrindo o VI salvo e confirmando se todos os controles, indicadores do Painel Frontal e conexões do Diagrama em Blocos ainda estão presentes.
  2. Registre o experimento do ventilador no RIP Server.
    1. Abra o RIPWebService.lvproj no LabVIEW Project Explorer
      .
    2. Abra o Configuration.vi na árvore do projeto e localize a tabela de configuração do experimento.
    3. Adicione uma nova linha de experimento. Defina o Nome como fan. Defina o caminho completo para o arquivo fengshan.vi salvo. Os campos de registro para o experimento fan são mostrados em Figura 4.
    4. Preencha os campos de configuração restantes. Defina Autores como o autor do experimento, Palavras-chave como Fan, Descrição como modelo de velocidade do ventilador e Frequência de Amostragem como 200.
    5. No menu do LabVIEW, selecione Editar > Tornar os Valores Atuais como Padrão. Salvar Configuração.vi
    6. Reinicie o RIP WebService e confirme que o experimento da ventoinha permanece listado na interface de Configuração após a reinicialização.
      OBSERVAÇÃO: O nome do experimento diferencia maiúsculas de minúsculas. O valor fan na Configuração do RIP deve corresponder exatamente ao ID do experimento utilizado no arquivo XHTML da interface. Para implantar outro VI do LabVIEW com a mesma lógica de geração automática de interface, adicione uma nova entrada de experimento na Configuração do RIP, defina um novo valor em Nome e configure Caminho para o arquivo VI correspondente. Em seguida, utilize o mesmo valor de Nome como ID do experimento no arquivo XHTML. A página da interface não precisa ser reescrita para cada variável.
      ​PONTO DE PAUSA: Após salvar o Configuration.vi e definir os valores atuais como padrão, o fluxo de trabalho pode ser interrompido. Retome posteriormente reiniciando o RIP WebService e confirmando se o experimento com o ventilador ainda está registrado.
  3. Prepare a página inicial para o experimento do ventilador.
    1. Coloque o arquivo Fan_Automatic_UI.xhtml no diretório Client usado como diretório raiz do front-end.
    2. Abra o arquivo Fan_Automatic_UI.xhtml com um editor de texto.
    3. Localize a variável de ID do experimento na seção de script e defina-a como fan.
      OBSERVAÇÃO: Este valor deve corresponder exatamente ao campo Nome do experimento do ventilador na Configuração RIP. As configurações de ID do experimento e a lógica compartilhada de geração de interface baseada em metadados para os arquivos XHTML da interface frontal são mostradas em Figura 5.
    4. Verifique se a página obtém a origem de acesso atual por meio de window.location.origin e solicita metadados do experimento por meio de rip.info(), e passa os metadados retornados para autobuildUI().
      OBSERVAÇÃO: A página não deve codificar manualmente os nomes das variáveis do ventilador, intervalos ou tamanhos de passo. Em vez disso, as variáveis graváveis são geradas a partir de meta.writables.lista, variáveis legíveis são geradas a partir de meta.readables.lista, e atributos numéricos como min, max e step são obtidos a partir dos metadados retornados pelo Servidor RIP.
    5. Salvar Fan_Automatic_UI.xhtml.
      ​OBSERVAÇÃO: Para utilizar a mesma lógica de geração de interface para outro VI do LabVIEW, defina um novo ID de experimento no arquivo XHTML e registre o nome do experimento correspondente e o caminho do VI na Configuração do RIP. Os controles da web e as exibições de saída são gerados de acordo com os metadados retornados pelo experimento selecionado.
  4. Configure o caminho de acesso do Caddy para o experimento do ventilador.
    1. Abra o arquivo Caddyfile com um editor de texto.
    2. Defina o diretório raiz do front-end como o diretório Client que contém o arquivo Fan_Automatic_UI.xhtml.
    3. Selecione uma porta local não utilizada para o Caddy fornecer acesso pelo navegador à página da Web e às rotas RIP. Neste protocolo, a porta 8090 é usada como exemplo de porta de acesso por proxy.
      OBSERVAÇÃO: A porta 8090 não é necessária pelo RIP ou pelo Caddy. Se a porta 8090 estiver ocupada, substitua-a por outra porta local não utilizada e utilize a mesma porta no endereço do navegador.
    4. Adicione uma rota que reescreva /fan para Fan_Automatic_UI.xhtml.
    5. Identifique a porta do RIP WebService configurada no LabVIEW. Neste protocolo, http://localhost:8001 é utilizada como o endereço do RIP WebService.
      OBSERVAÇÃO: A porta 8001 é a porta de back-end do WebService LabVIEW/RIP utilizada no ambiente de teste. Ela pode ser alterada na configuração do WebService LabVIEW/RIP. Se uma porta diferente for utilizada, substitua http://localhost:8001 no Caddyfile pelo endereço correspondente do WebService RIP.
    6. Adicione uma regra de proxy reverso que encaminhe as solicitações /RIP/SSE* para o endereço do WebService RIP, como http://localhost:8001.
    7. Adicione uma regra de proxy reverso que encaminhe as solicitações /RIP* para o endereço do WebService RIP, como http://localhost:8001. A configuração do Caddyfile é mostrada em Figura 6.
    8. Abra o Prompt de Comando no Windows. Altere para o diretório local de download ou instalação do Caddy inserindo o seguinte comando:
      cd /d D:\caddy
      OBSERVAÇÃO: Neste protocolo, D:\caddy é o caminho local de download ou instalação do Caddy utilizado no ambiente de teste. Se o Caddy estiver armazenado em outro diretório, substitua D:\caddy pelo caminho local correspondente.
    9. Inicie o Caddy com o Caddyfile especificado inserindo o seguinte comando:
      caddy.exe run --config Caddyfile
    10. Confirme que o Caddy é iniciado sem relatar um erro de configuração. Abra http://localhost:8090/fan em um navegador Web e verifique se a interface Web do ventilador é gerada, conforme mostrado em Figura 7.
      ​OBSERVAÇÃO: Se o navegador retornar um erro 502, confirme se o RIP WebService está em execução, se a porta do RIP WebService no LabVIEW corresponde ao endereço do proxy reverso no Caddyfile e se a porta de acesso do Caddy selecionada não está ocupada.
  5. Verifique os resultados operacionais do experimento com o ventilador.
    1. Verifique se a página inicial gera automaticamente o Habilitar, PWM, Carga, Tau, KMaxRPM, e Perturbação controles de entrada
    2. Verifique se a página inicial exibe o SpeedRPM, SteadyRPM, TimeS, SpeedNorm, CurrentA e PowerW variáveis de saída
    3. Ajustar PWM e observe se VelocidadeRPM aumenta à medida que PWM aumentos e diminuições conforme PWM diminui.
    4. Ajuste a Carga e observe se SteadyRPM e VelocidadeRPM diminui à medida que a carga aumenta.
    5. Ajuste a perturbação e observe se SpeedRPM, CurrentA, e PowerW mudança em resposta à entrada de perturbação
    6. Verifique se Tempo continua a aumentar, confirmando que o ventilador traseiro VI está funcionando continuamente.

2. Montar e implementar o experimento de controle de posição PID do motor CC

  1. Construa o modelo VI de controle de posição PID do motor CC.
    1. Abra o LabVIEW, crie um novo VI e salve o arquivo como Motor.vi. Salve o VI em qualquer diretório que possa ser acessado pelo processo do RIP WebService.
      OBSERVAÇÃO: A pasta Privada é usada apenas como exemplo de diretório e não está codificada no RIP. Insira o caminho real do VI selecionado durante o registro do experimento no RIP.
    2. No Painel Frontal, adicione os controles de entrada para o modelo de controle de posição PID do motor CC. Neste exemplo, nomeie os controles de entrada Ponto de ajuste, Kc, Ti, Td, Perturbação, e Controle de reinicialização. Definir Setpoint, Kc, Ti, Td e Perturbação como controles numéricos DBL e defina o controle Reset como um controle booleano.
      OBSERVAÇÃO: Tabela 1 descreve o significado físico, o papel no modelo e a faixa recomendada das variáveis utilizadas neste exemplo.
    3. Adicione os indicadores de saída para o modelo de controle de posição PID do motor CC. Neste exemplo, nomeie os indicadores de saída Posição, Tensão, Tempo e Velocidade angular medida. Defina todos os indicadores de saída como indicadores DBL. Tabela 1 descreve o significado físico e o papel do modelo dessas variáveis de saída. O Painel Frontal concluído para o motor é mostrado em Figura 8.
      OBSERVAÇÃO: Os nomes e intervalos das variáveis listados em Tabela 1 descrever os dois exemplos implementados neste protocolo. Eles não são requisitos fixos para o fluxo de trabalho de geração automática de interface de usuário baseado em RIP. Quando outro VI do LabVIEW é utilizado, o RIP lê os nomes reais das variáveis, tipos de dados, atributos de entrada/saída e propriedades numéricas disponíveis a partir dos metadados do VI. Portanto, a lógica de geração da interface não precisa ter embutidos os nomes das variáveis, valores máximos, valores mínimos ou tamanhos de passo para cada experimento.
    4. Adicione um Laço Enquanto ao Diagrama de Blocos. Adicione seis Registradores de Deslocamento para armazenar theta, omega, im, e_prev, integ e tempo, e inicialize os seis valores para 0.
    5. Adicione um Nó de Fórmula dentro do Laço Enquanto. De acordo com o diagrama do modelo de controle de posição PID do motor CC mostrado em Figura 9, utilize este Nó de Fórmula como o módulo de cálculo central para o cálculo de erro, controle PID, limitação de tensão, modelo elétrico, modelo mecânico e atualização de posição.
      OBSERVAÇÃO: Os parâmetros internos do motor utilizados neste modelo, como R, L, J, b, Kt, Ke e Vmax, são parâmetros de modelo didático normalizados, e não parâmetros calibrados de um motor físico específico. Eles foram selecionados para produzir uma resposta simulada estável e observável sob o passo de tempo e o limite de tensão escolhidos, de modo que os efeitos de Ponto de ajuste, Kc, Ti, Td e Perturbação pode ser claramente demonstrado durante a operação baseada na web.
    6. Definir sp, theta, omega, im, e_prev, integ, Kc, Ti, Td, perturbação, reset e dt as terminais de entrada do Nó Fórmula. Defina theta_next, omega_next, im_next, e_next, integ_next e tensão como os terminais de saída do Nó Fórmula.
    7. Conecte o Ponto de ajuste controle para o sp terminal de entrada do Nó Fórmula. Conecte Kc, Ti, Td e Perturbação ao Kc, Ti, Td e ddistúrbio iterminais de entrada do Nó Fórmula, respectivamente.
    8. Converter o sinal booleano de controle Reset em um sinal numérico e conectá-lo ao redefinir terminal de entrada do Nó Fórmula. Execute a redefinição do estado quando reiniciar não é igual a 0, e execute o controle PID e a atualização do estado do motor quando redefinir é igual a 0.
    9. Adicione a constante numérica dt e defina seu valor para 0,001 s. Conecte o dt ao dt terminal de entrada do Nó Fórmula e utilize-o para atualização do Tempo.
    10. Defina os parâmetros do modelo interno do motor CC no Nó Fórmula. Veja Tabela Suplementar 2 para o significado físico e o papel do modelo das variáveis do motor.
    11. Insira o código de controle de posição PID do motor CC no Nó Fórmula. Utilize este código para implementar a lógica de reinicialização, cálculo do erro, cálculo do termo integral, cálculo do termo derivativo, controle PID, limitação de tensão, atualização da corrente, atualização da velocidade angular e atualização da posição; consulte os arquivos complementares de código para obter o código completo.
    12. Conectar theta_próximo ao Posição indicador e conectar theta_próximo de volta ao Registrador de Deslocamento à Direita para teta Conectar omega_next ao Indicador de velocidade angular medida, e conectar omega_next de volta ao Registrador de Deslocamento à Direita para ômega
    13. Conecte a voltagem ao indicador de tensão. Conecte im_next, e_next e integ_next voltar aos Registradores de Deslocamento à Direita para im, e_prev, e integ, respectivamente.
    14. Use uma função Adicionar fora do Nó de Fórmula para calcular time_next = time + dt. Conectar próximo_tempo ao Tempo indicador e conectar próximo_tempo de volta ao registrador de deslocamento direito para o tempo.
    15. Adicione uma função Esperar dentro do Laço Enquanto e defina o tempo de espera como 1 ms. Adicione um botão de Parada e conecte-o ao terminal condicional do Laço Enquanto.
    16. Salve o Motor.vi. O Diagrama de Blocos do motor concluído é mostrado em Figura 10.
      PONTO DE PAUSA: Após salvar o VI motor concluído, o fluxo de trabalho pode ser interrompido. Retome posteriormente reabrindo o VI salvo e confirmando se todos os controles, indicadores do Painel Frontal e conexões do Diagrama em Blocos ainda estão presentes.
  2. Registre o experimento motor no Servidor RIP.
    1. Abra o RIPWebService.lvproj no LabVIEW Project Explorer.
    2. Abra o Configuration.vi na árvore do projeto e localize a tabela de configuração do experimento.
    3. Adicione uma nova linha de experimento. Defina Nome como Motor. Defina Caminho como o caminho completo do arquivo Motor.vi salvo. Os campos de registro do experimento do motor são mostrados em Figura 11.
    4. Preencha os campos de configuração restantes. Defina Autores como o autor do experimento, Palavras-chave como Motor, Descrição como modelo de controle de posição de motor CC e Frequência de Amostragem como 200.
    5. No menu do LabVIEW, selecione Editar > Tornar os Valores Atuais como Padrão. Salvar Configuração.vi
    6. Reinicie o RIP WebService e confirme que o experimento Motor permanece listado na interface de Configuração após a reinicialização.
      OBSERVAÇÃO: O nome do experimento diferencia maiúsculas de minúsculas. O valor Motor na Configuração do RIP deve corresponder exatamente ao ID do experimento utilizado em Motor_Automatic_UI.xhtml. Para implantar outro VI do LabVIEW com a mesma lógica de geração automática da interface, adicione uma nova entrada de experimento na Configuração do RIP, defina um novo valor para Nome e defina Caminho como o arquivo VI correspondente. Em seguida, utilize o mesmo valor de Nome como ID do experimento no arquivo XHTML. A página frontal não precisa ser reescrita para cada variável.
      ​PONTO DE PAUSA: Após salvar o Configuration.vi e definir os valores atuais como padrão, o fluxo de trabalho pode ser interrompido. Retome posteriormente reiniciando o RIP WebService e confirmando que o experimento Motor ainda está registrado.
  3. Prepare a página inicial para o experimento com motor.
    1. Coloque o arquivo Motor_Automatic_UI.xhtml no diretório Client utilizado como diretório raiz da interface frontal.
    2. Abra Motor_Automatic_UI.xhtml com um editor de texto.
    3. Localize a variável de ID do experimento na seção de script e defina-a como Motor. Esse valor deve corresponder exatamente ao campo Nome do experimento de motor na Configuração do RIP. A página inicial do motor utiliza a mesma lógica de geração de interface baseada em metadados apresentada em Figura 5; somente o ID do experimento é alterado para corresponder à entrada Motor na Configuração do RIP.
    4. Verifique se a página contém a lógica de leitura de metadados RIP, a lógica de geração de controle HTML, a função de gravação RIP e a função de atualização de saída.
      OBSERVAÇÃO: A página não deve codificar manualmente os nomes das variáveis do motor, suas faixas ou tamanhos de passo. Essas propriedades são obtidas a partir dos metadados retornados pelo Servidor RIP, seguindo o mecanismo descrito anteriormente de geração de HTML a partir de metadados baseado em RIP.11.
    5. Salvar Motor_Automatic_UI.xhtml.
      ​OBSERVAÇÃO: Para utilizar a mesma lógica de geração de interface para outro VI do LabVIEW, defina um novo ID de experimento no arquivo XHTML e registre o nome do experimento correspondente e o caminho do VI na Configuração do RIP. Os controles da web e as exibições de saída são gerados de acordo com os metadados retornados pelo experimento selecionado.
  4. Configure o caminho de acesso do Caddy para o experimento com motor.
    1. Abra o arquivo Caddyfile com um editor de texto.
    2. Defina o diretório raiz do front-end como o diretório Client que contém o arquivo Motor_Automatic_UI.xhtml.
    3. Selecione uma porta local não utilizada para o Caddy fornecer acesso pelo navegador à página da Web e às rotas RIP. Neste protocolo, a porta 8090 é usada como exemplo de porta de acesso por proxy.
      OBSERVAÇÃO: A porta 8090 não é necessária para o RIP ou o Caddy. Se a porta 8090 estiver ocupada, substitua-a por outra porta local não utilizada e utilize a mesma porta no endereço do navegador.
    4. Adicione uma rota que reescreva /motor para Motor_Automatic_UI.xhtml.
    5. Identifique a porta do RIP WebService configurada no LabVIEW. Neste protocolo, http://localhost:8001 é utilizada como o endereço do RIP WebService.
      OBSERVAÇÃO: A porta 8001 é a porta de back-end do WebService LabVIEW/RIP utilizada no ambiente de teste. Ela pode ser alterada na configuração do WebService LabVIEW/RIP. Se uma porta diferente for utilizada, substitua http://localhost:8001 no Caddyfile pelo endereço correspondente do WebService RIP.
    6. Adicione uma regra de proxy reverso que encaminhe as solicitações /RIP/SSE* para o endereço do WebService RIP, como http://localhost:8001.
    7. Adicione uma regra de proxy reverso que encaminhe as solicitações /RIP* para o endereço do WebService RIP, como http://localhost:8001. A configuração do Caddyfile é mostrada na Figura 6.
    8. Abra o Prompt de Comando no Windows. Altere para o diretório local de download ou instalação do Caddy inserindo o seguinte comando:
      cd /d D:\caddy
      OBSERVAÇÃO: Neste protocolo, D:\caddy é o caminho local de download ou instalação do Caddy utilizado no ambiente de teste. Se o Caddy estiver armazenado em outro diretório, substitua D:\caddy pelo caminho local correspondente.
    9. Inicie o Caddy com o Caddyfile especificado inserindo o seguinte comando:
      caddy.exe run --config Caddyfile
    10. Confirme que o Caddy é iniciado sem relatar um erro de configuração. Abra http://localhost:8090/motor em um navegador da Web e verifique se a interface da Web do motor é gerada, conforme mostrado em Figura 12.
      ​OBSERVAÇÃO: Se a página da Web do motor carregar, mas os valores de saída não forem atualizados, confirme se o RIP WebService está em execução, se o VI do motor está sendo executado, se a porta do RIP WebService no LabVIEW corresponde ao endereço do proxy reverso no Caddyfile e se a rota /RIP/SSE* está corretamente encaminhada.
  5. Verifique os resultados operacionais do experimento do motor.
    1. Verifique se a página inicial gera automaticamente o Ponto de ajuste, Kc, Ti, Td, Perturbação e Redefinir controles de entrada de controle.
    2. Verifique se a página inicial exibe o Posição, Tensão, Tempo e Velocidade angular medida variáveis de saída
    3. Ajustar Ponto de ajuste e observe se a Posição responde à alteração na posição desejada.
    4. Ajustar Kc, Ti, e Td e observe se Tensão, Posição e Velocidade angular medida mudança
    5. Ajustar a perturbação e observe se a posição, a tensão de controle ou a velocidade angular medida é afetado pelo perturbação entrada.
    6. Clique no controle de reinicialização e observe se Posição, Tensão, Velocidade angular medida, e os estados internos relacionados retornam aos seus estados iniciais de acordo com a lógica de reinicialização.

Acesso restrito. Inicie sessão ou comece um teste para visualizar este conteúdo.

Resultados

Após concluir o fluxo de trabalho descrito acima, tanto o experimento do ventilador quanto o experimento de controle de posição PID de motor CC podem ser acessados por meio da interface Web gerada automaticamente. Um resultado bem-sucedido é indicado por três observações. Primeiro, a página Web gera automaticamente controles de entrada e campos de exibição de saída de acordo com os metadados das variáveis retornados pelo Servidor RIP. Segundo, quando o usuário altera uma variável de entrada na página Web, o valor modific...

Acesso restrito. Inicie sessão ou comece um teste para visualizar este conteúdo.

Discussão

Uma etapa crítica neste protocolo é a construção padronizada e o registro do VI de back-end no LabVIEW. Os controles e indicadores do Painel Frontal devem utilizar nomes de variáveis claros e exclusivos, e seus tipos de dados devem corresponder às variáveis esperadas pelo cálculo do modelo e pelo processo de leitura/escrita do RIP. Nos dois exemplos utilizados neste protocolo, variáveis numéricas escalares são definidas como controles ou indicadores DBL, e variáveis booleanas são definidas como controles booleanos. O Dia...

Acesso restrito. Inicie sessão ou comece um teste para visualizar este conteúdo.

Divulgações

Os autores utilizaram ferramentas assistidas por IA exclusivamente para revisão linguística. Todo o conteúdo científico, procedimentos experimentais, implementação de software, figuras, resultados, interpretações e redação final foram revisados, corrigidos e aprovados pelos autores. Nenhuma ferramenta de IA foi utilizada para gerar dados experimentais.

Agradecimentos

Este trabalho foi apoiado pelos Programas de Treinamento de Graduação para Inovação da Universidade de Wuhan.

Acesso restrito. Inicie sessão ou comece um teste para visualizar este conteúdo.

Materiais

Lista de materiais utilizados neste artigo
NomeEmpresaNúmero de catálogoComentários
Servidor Proxy CaddyCaddyN/AProxy reverso usado para servir a interface web e encaminhar as solicitações /RIP ao RIP WebService
CaddyfilePreparado pelos autoresN/ADefine rotas de arquivos estáticos e rotas de proxy reverso para a comunicação RIP
Fan_Automatic_UI.xhtmlPreparado pelos autoresN/AInterface web baseada em metadados para o experimento do ventilador
LabVIEWNational Instruments2026Software usado para construir e executar os arquivos fengshan.vi e Motor.vi
Sistema operacional Microsoft WindowsMicrosoftWin11Sistema operacional usado para executar o LabVIEW, o RIP WebService, o Caddy e o navegador.
Motor_Automatic_UI.xhtmlPreparado pelos autoresN/AInterface web baseada em metadados para o experimento do motor
Navegador Mozilla Firefox para desktopMozilla2026Navegador desktop usado para acesso à interface web, ferramentas de desenvolvedor, observações de tempo e recursos, e capturas de tela da Rede/Console.
RIP WebServiceUNEDLabshttps://github.com/Nebulous-Systems/rip-server_labviewRecebe solicitações POST RIP e fornece a camada de comunicação WebService utilizada pela interface frontal do navegador.
Gerenciador de Tarefas do WindowsMicrosoftIncorporado ao WindowsUsado para registrar observações de CPU e memória em nível de processo para os processos do navegador e do LabVIEW.

Referências

  1. Gomes, L., Bogosyan, S. Current trends in remote laboratories. IEEE Trans Ind Electron. 2009;56(12):4744–4756.
  2. Ma, J., Nickerson, J. V. Hands-on, simulated, and remote laboratories: A comparative literature review. ACM Comput Surv. 2006;38(3):7-es.
  3. Heradio, R. et al. Virtual and remote labs in education: A bibliometric analysis. Comput. Educ. 2016;98:14–38.
  4. May, D., Jahnke, I., Moore, S. Online laboratories and virtual experimentation in higher education from a sociotechnical-pedagogical design perspective. J. Comput. High. Educ. 2023;35:203–222.
  5. Amador Nelke, S. et al. Enhancing lessons on the Internet of Things in science, technology, engineering, and medical education with a remote lab. Sensors.2024;24(19):6424.
  6. Lei, Z. et al. Interactive and visualized online experimentation system for engineering education and research. J. Vis. Exp. 2021;(177):e63342.
  7. Zhang, G., Lei, Z., Hu, W., Zhou, H. Online virtual reality networked control laboratory applied in control engineering education. J. Vis. Exp. 2024;(204):e66432.
  8. Fabregas, E., Farias, G., Dormido-Canto, S., Dormido, S., Esquembre, F. Developing a remote laboratory for engineering education. Comput. Educ. 2011;57(2):1686–1697.
  9. Chacón, J., Vargas, H., Farias, G., Sánchez, J., Dormido, S. EJS, JIL Server, and LabVIEW: An architecture for rapid development of remote labs. IEEE Trans. Learn. Technol.2015;8(4):393–401.
  10. Chacón, J., Farias, G., Vargas, H., Visioli, A., Dormido, S. Remote Interoperability Protocol: A bridge between interactive interfaces and engineering systems. IFAC-PapersOnLine.2015;48(29):247–252.
  11. de la Torre, L., Chacón, J., Chaos, D., Heradio, R., Chandramouli, R. Using IoT-type metadata and smart Web design to create user interfaces automatically. IEEE Trans. Ind. Inform. 2023;19(3):3109–3118.
  12. Chaos, D., Chacón, J., Lopez-Orozco, J. A., Dormido, S. Virtual and remote robotic laboratory using EJS, MATLAB, and LabVIEW. Sensors. 2013;13(2):2595–2612.
  13. Haj-Hosseini, N., Jonasson, H., Stridsman, M., Carlsson, L. Interactive remote electrical safety laboratory module in biomedical engineering education. Educ. Inf. Technol. 2024;29:20505–20521.
  14. Galán, D. et al. Safe experimentation in optical levitation of charged droplets using remote labs. J. Vis. Exp. 2019;(143):e58699.
  15. Kurtz, M., Benabbou, A., Pons, C., Broisin, J. Collaboration in virtual and remote laboratories for education: A systematic literature review. Int. J. Comput.-Support. Collab. Learn. 2025;20:549–603.
  16. Zamarreño, J. M., Ríos, J. C., Alonso, G. Virtual and remote laboratory as a complementary support in control education. Discov. Educ. 2025;4:477.
  17. Chacón, J., Sáenz, J., de la Torre, L., Díaz, J. M., Esquembre, F. Design of a low-cost air levitation system for teaching control engineering. Sensors. 2017;17(10):2321.
  18. Stefanovic, M., Cvijetkovic, V., Matijevic, M., Simic, V. A LabVIEW-based remote laboratory experiments for control engineering education. Comput. Appl. Eng. Educ.2011; 19(3):538–549.
  19. González, I., Calderón, A. J., Mejías, A., Andújar, J. M. Novel networked remote laboratory architecture for open connectivity based on PLC-OPC-LabVIEW-EJS integration. Application in remote fuzzy control and sensors data acquisition. Sensors. 2016;16(11):1822.
  20. Abdulwahed, M., Nagy, Z. K. Developing the TriLab, a triple access mode (hands-on, virtual, remote) laboratory, of a process control rig using LabVIEW and Joomla. Comput. Appl. Eng. Educ. 2013;21(4):614–626.

Acesso restrito. Inicie sessão ou comece um teste para visualizar este conteúdo.

Reimpressões e permissões

Etiquetas

Interface de Usuário WebGeração Automática de IUInstrumentos VirtuaisConfiguração de Servidor RIPProxy ReversoProxy CaddyControle de Posição PIDMetadados Variáveis

Este artigo foi publicado

Vídeo em breve