Monitoramento de dados de controle de processo e muito mais

Olá, usuários da comunidade Habr.



Objetivo do artigo: Demonstração da implementação de uma solução de visualização de dados barata que pode ser usada em sistemas de despacho.



Como isso começou.



Numa das unidades de produção do sector da energia foram automatizadas cerca de 20 unidades com mais de 10.000 sinais, sendo necessário desenvolver um sistema de despacho para monitorizar os dados do APCS.



Nesse sentido, tive interesse em implementar uma solução de TI para visualização de dados na forma de gráficos e frames de vídeo (diagramas mnemônicos). A solução deve ser escalonável, multiplataforma, fácil de usar e baseada na web. E assim, a funcionalidade - diagramas mnemônicos, gráficos. Ir …



Diagramas mnemônicos



Para desenvolver diagramas mnemônicos, é necessário um editor gráfico.



Desenvolver o seu próprio é difícil, caro, então o Visio foi escolhido.



Por que Visio?



1 - suporta gráficos vetoriais;

2 - possui um editor vba embutido;

3 - permite que você crie sua própria biblioteca de elementos gráficos;

4 - tem a capacidade de adicionar um conjunto arbitrário de propriedades a um objeto gráfico (ver Fig. 1)

5 - editor comum, muitos usuários.



Portanto, o Visio se tornou o editor ideal para meus objetivos.





Figura 1.



Gráficos



Foi mais fácil aqui, primeiro consideramos a biblioteca highcharts, mas como ela é paga, a

escolha foi feita em favor do d3.js.



d3.js é um framework muito legal, ótimos recursos, um pouco difícil de aprender, mas existem muitos exemplos na Internet.



O formulário web "Gráficos" permite que você visualize gráficos em diferentes intervalos de tempo, coordene planos, defina escalas e outras possibilidades.



Plataforma de desenvolvimento de aplicativos



Para o desenvolvimento de uma aplicação web, foi escolhida a plataforma de programação web ASP.NET, framework ASP.NET MVC, e posteriormente a aplicação foi transferida para ASP.NET Core MVC.



Como o aplicativo funciona



Então, como o aplicativo funciona?



O aplicativo recebe dados por meio da interface da API da web e os exibe ao usuário na forma de gráficos e diagramas mnemônicos.



O aplicativo pode funcionar de duas maneiras.



A primeira opção:





Fig. 2.



Como já mencionado, o aplicativo implementa uma interface de API da web por meio da qual recebe dados, os serviços de dados (módulos do programa) estão diretamente envolvidos no recebimento de dados de fontes. Na primeira versão do trabalho, é possível verificar que os serviços são implementados dentro da aplicação, isso é conveniente quando, por exemplo, a aplicação e as fontes de dados estão na mesma rede.



Segunda opção:





Fig . 3



Na segunda opção, os serviços são módulos de software separados que o aplicativo acessa para obter dados. A segunda opção pode ser usada quando as fontes e o aplicativo estão em redes diferentes, o aplicativo, por exemplo, é implantado em um hosting.



O objeto principal do aplicativo é Tag - uma variável, um valor medido de um processo tecnológico. Um conjunto de métodos (por exemplo GetTagOnline, GetTagArchive, etc.) para trabalhar com tags implementa a interface da API da web.



Assim, o aplicativo pega os dados dos serviços, carrega o diagrama mnemônico, desenvolvido pelo usuário no Visio, e exibe esses dados.



Animação de objetos gráficos em um diagrama mnemônico



Javascript é usado para animar elementos gráficos do esquema mnemônico. Para facilitar o desenvolvimento das funções de animação pelo usuário, o aplicativo possui uma pequena biblioteca que inclui, por exemplo, as seguintes funções: printf (Texto), SetText (Objeto, Índice, Valor), SetBackColor (Objeto, Índice, Valor), SetVisible (Objeto, Value), GetTag (TagName), etc.

Por exemplo, a função de exibição do valor medido:



Function Field (Object, Property) {
var Tag = GetTag(Property.Tag1);
SetText(Object,1,Tag.Value);
}


Administração, configuração.



Para configuração, são utilizados arquivos de configuração, onde o usuário cria perfis, adiciona serviços, etc. Esta aplicação é um console, pode funcionar como win-service.

O aplicativo usa o servidor Web Kestrel de plataforma cruzada integrado.



O artigo se chama “Monitoramento de dados do sistema de controle automatizado de processos e não só”. O aplicativo pode exibir, em princípio, quaisquer dados que podem ser representados na forma de um diagrama, diagrama, etc.

Obrigado a todos pela leitura, estou interessado em críticas, qualquer feedback. Obrigado.



Só isso, seguem abaixo algumas fotos do aplicativo.



Um exemplo de diagrama mnemônico (foi feito a partir do arquivo eplan -> autocad -> visio.):











Gráficos:










All Articles