Vídeo: console de administração Habr. Permite regular o carma, avaliar e banir usuários.
TL; DR: Neste artigo tentarei criar um painel de controle Habr em quadrinhos usando o ambiente de desenvolvimento de interface industrial Webaccess/HMI Designer e o terminal WebOP.
Interface homem-máquina (HMI) é um conjunto de sistemas para interação humana com máquinas controladas. Normalmente, este termo é aplicado a sistemas industriais que possuem um operador e um painel de controle.
WebOP — um terminal industrial autónomo para a criação de interfaces homem-máquina. Usado para criar painéis de controle de produção, sistemas de monitoramento, salas de controle, controladores domésticos inteligentes, etc. Suporta conexão direta com equipamentos industriais e pode funcionar como parte de um sistema SCADA.
Terminal WebOP - hardware
O terminal WebOP é um computador de baixo consumo baseado em processador ARM, em um único gabinete com monitor e tela sensível ao toque, projetado para executar um programa com interface gráfica criada em HMI Designer. Dependendo do modelo, os terminais possuem diversas interfaces industriais integradas: RS-232/422/485, barramento CAN para conexão a sistemas automotivos, porta USB Host para conexão de periféricos adicionais, porta USB Client para conexão do terminal a um computador, áudio entrada e saída de áudio, leitor de cartão MicroSD para memória não volátil e transferência de configurações.
Os dispositivos são posicionados como um substituto econômico para PCs multifuncionais, para tarefas que não exigem processadores poderosos e recursos de um computador desktop completo. O WebOP pode funcionar como um terminal independente para controle e entrada/saída de dados, emparelhado com outros WebOPs ou como parte de um sistema SCADA.
O terminal WebOP pode ser conectado diretamente a dispositivos industriais
Resfriamento passivo e proteção IP66
Devido à baixa dissipação de calor, alguns modelos WebOP são projetados inteiramente sem resfriamento de ar ativo. Isto permite que os dispositivos sejam montados em áreas sensíveis aos níveis de ruído e reduz a quantidade de poeira que entra na caixa.
O painel frontal é feito sem frestas ou juntas, possui nível de proteção IP66 e permite a entrada direta de água sob pressão.
Painel traseiro do terminal WOP-3100T
Memória não volátil
Para evitar perda de dados, o WebOP possui 128 KB de memória não volátil, que pode ser trabalhada da mesma forma que a RAM. Ele pode armazenar leituras de medidores e outros dados críticos. No caso de falha de energia, os dados serão salvos e restaurados após uma reinicialização.
atualização remota
O programa executado no terminal pode ser atualizado remotamente através de uma rede Ethernet ou através de interfaces seriais RS-232/485. Isso simplifica a manutenção, pois elimina a necessidade de ir a todos os terminais para atualizar o software.
Modelos WebOP
Ambiente de desenvolvimento WebAccess/HMI Designer
Pronto para uso, o terminal WebOP é apenas um computador ARM de baixo consumo de energia no qual você pode executar qualquer software, mas o objetivo desta solução é o ambiente proprietário de desenvolvimento de interface industrial WebAcess/HMI. O sistema consiste de dois componentes:
- Projetista de IHM — ambiente para desenvolvimento de interfaces e lógica de programação. Funciona no Windows no computador do programador. O programa final é compilado em um arquivo e transferido para o terminal para execução em tempo de execução. O programa está disponível em russo.
- Tempo de execução da IHM — tempo de execução para executar o programa compilado no terminal final. Ele pode funcionar não apenas em terminais WebOP, mas também em Advantech UNO, MIC e computadores desktop normais. Existem versões de tempo de execução para Linux, Windows, Windows CE.
Olá mundo - criando um projeto
Vamos começar a criar uma interface de teste para nosso painel de controle Habr. Vou executar o programa no terminal
Criando um novo projeto e escolhendo uma arquitetura
Selecionar o protocolo de comunicação através do qual o programa compilado será carregado no WebOP. Nesta etapa, você pode selecionar uma interface serial ou especificar o endereço IP do terminal.
Interface de criação de projetos. No lado esquerdo há um diagrama em árvore dos componentes do futuro programa. Por enquanto estamos interessados apenas no item Telas, são diretamente as telas com elementos da interface gráfica que serão exibidas no terminal.
Primeiro, vamos criar duas telas com o texto “Hello World” e a possibilidade de alternar entre elas por meio de botões. Para isso, adicionaremos uma nova tela, a Tela #2, e em cada tela adicionaremos um elemento de texto e dois botões para alternar entre as telas (Screen Buttons). Vamos configurar cada botão para passar para a próxima tela.
Interface para configurar o botão para alternar entre telas
O programa Hello World está pronto, agora você pode compilá-lo e executá-lo. Na fase de compilação, podem ocorrer erros no caso de variáveis ou endereços especificados incorretamente. Qualquer erro é considerado fatal; o programa só será compilado se não houver erros.
O ambiente oferece a capacidade de simular um terminal para que você possa depurar o programa localmente em seu computador. Existem dois tipos de simulação:
- Simulação on-line — serão utilizadas todas as fontes de dados externas especificadas no programa. Podem ser USOs ou dispositivos conectados via interfaces seriais ou Modbus TCP.
- Simulação off-line — simulação sem o uso de dispositivos externos.
Embora não tenhamos dados externos, utilizamos simulação offline, tendo previamente compilado o programa. O programa final estará localizado na pasta do projeto, com o nome NomeDoProjeto_NomeDoPrograma.px3
O programa em execução na simulação pode ser controlado com o cursor do mouse da mesma forma que seria na tela sensível ao toque de um terminal WebOP. Vemos que tudo funciona conforme planejado. Ótimo.
Para baixar o programa para um terminal físico, basta clicar no botão Download. Mas como não configurei a conexão do terminal ao ambiente de desenvolvimento, você pode simplesmente transferir o arquivo usando uma unidade flash USB ou cartão de memória MicroSD.
A interface do programa é intuitiva, não vou passar por todos os blocos gráficos. A criação de planos de fundo, formas e texto ficará clara para quem já usou programas semelhantes ao Word. Para criar uma interface gráfica não são necessários conhecimentos de programação; todos os elementos são adicionados arrastando o mouse sobre o formulário.
Trabalhando com memória
Agora que sabemos criar elementos gráficos, vamos aprender como trabalhar com conteúdo dinâmico e uma linguagem de script. Vamos criar um gráfico de barras exibindo dados de uma variável U $ 100. Nas configurações do gráfico, selecione o tipo de dados: inteiro de 16 bits e o intervalo de valores do gráfico: de 0 a 10.
O programa suporta a escrita de scripts em três linguagens: VBScript, JavaScript e sua própria linguagem. Usarei a terceira opção porque há exemplos na documentação e ajuda automática de sintaxe diretamente no editor.
Vamos adicionar uma nova macro:
Vamos escrever um código simples para alterar dados de forma incremental em uma variável que pode ser rastreada em um gráfico. Adicionaremos 10 à variável e zeraremos quando for maior que 100.
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
Para executar o script em loop, configure-o nas configurações de Configuração Geral como Macro Principal, com intervalo de execução de 250ms.
Vamos compilar e executar o programa no simulador:
Nesta fase, aprendemos a manipular os dados na memória e a exibi-los visualmente. Isso já é suficiente para criar um sistema de monitoramento simples, recebendo dados de dispositivos externos (sensores, controladores) e registrando-os na memória. No HMI Designer, diferentes blocos de exibição de dados estão disponíveis: na forma de mostradores circulares com setas, vários gráficos e gráficos. Usando scripts JavaScript, você pode baixar dados de fontes externas via HTTP.
Painel de controle Habr
Usando as habilidades adquiridas, faremos uma interface cômica para o console de administração Habr.
Nosso controle remoto deve ser capaz de:
- Alternar perfis de usuário
- Armazene dados de carma e classificação
- Altere os valores de carma e classificação usando controles deslizantes
- Ao clicar no botão “banir”, o perfil deverá ser marcado como banido, o avatar deverá mudar para riscado
Exibiremos cada perfil em uma página separada, portanto criaremos uma página para cada perfil. Armazenaremos karma e classificação em variáveis locais na memória, que serão inicializadas usando Setup Macro quando o programa for iniciado.
Ajustando carma e classificação
Para ajustar o carma usaremos o controle deslizante (Slide Switch). Especificamos a variável inicializada em Setup Macro como o endereço de gravação. Vamos limitar o intervalo de valores do controle deslizante de 0 a 1500. Agora, quando o controle deslizante se mover, novos dados serão gravados na memória. Neste caso, o estado inicial do controle deslizante corresponderá aos valores da variável na memória.
Para exibir os valores numéricos de carma e classificação, usaremos o elemento de exibição Numeric. O princípio de seu funcionamento é semelhante ao diagrama do exemplo do programa “Hello World”, simplesmente indicamos o endereço da variável em Monitor Address.
Botão Banir
O botão “ban” é implementado usando o elemento Toggle Switch. O princípio do armazenamento de dados é semelhante aos exemplos acima. Nas configurações você pode selecionar diferentes textos, cores ou imagens, dependendo do estado do botão.
Quando o botão é pressionado, o avatar deve ficar riscado em vermelho. Isso é fácil de implementar usando o bloco Picture Display. Ele permite que você especifique várias imagens associadas ao estado do botão Toggle Switch. Para fazer isso, o bloco recebe o mesmo endereço do bloco com o botão e o número de estados. A imagem com placas de identificação sob o avatar é configurada de maneira semelhante.
Conclusão
No geral, gostei do produto. Anteriormente, tive experiência no uso de um tablet Android para tarefas semelhantes, mas desenvolver uma interface para ele é muito mais difícil e as APIs do navegador não permitem acesso total aos periféricos. Um terminal WebOP pode substituir uma combinação de tablet, computador e controlador Android.
O HMI Designer, apesar de seu design arcaico, é bastante avançado. Sem habilidades especiais de programação, você pode esboçar rapidamente uma interface funcional. O artigo não discute todos os blocos gráficos, que são muitos: tubos animados, cilindros, gráficos, interruptores. Ele suporta muitos controladores industriais populares prontos para uso e contém conectores de banco de dados.
referências
O ambiente de desenvolvimento WebAccess/HMI Designer e Runtime pode ser baixado
→
Fonte: habr.com