Animação de esquema no SCADA

Ao criar HMI, muitas vezes a tarefa é construir um mapeamento de um circuito complexo de elementos relacionados. Isso pode ser esquemas de dutos ramificados, eletricidade, etc.

Obviamente, você pode limitar-se a exibir elementos-chave (válvulas, disjuntores), mas quanto maior o circuito, mais difícil é compor uma imagem completa e garantir as ações corretas do operador.

imagem

Este artigo descreve a coloração dos elementos de tais esquemas, descreve o método de solução para o Simatic WinCC v7 e sua implementação no Simargl SCADA. Se você não precisa trabalhar com o WinCC, pode olhar no final do artigo - há um vídeo curioso.

Para uma representação mais visual de por que tudo isso é necessário, adotamos um pequeno esquema simples.

imagem

Agora imagine o que acontecerá se houver uma operação. Quanto tempo leva para rastrear o caminho de um produto através de um sistema de pipeline? Nos armaremos com um cronômetro.

Pronto? Vai!
image


De acordo com minhas observações, leva de 10 a 15 segundos.

E agora lembre-se de que (de repente) as operações podem ser várias ao mesmo tempo. Isso "um pouco" complica a tarefa. Pronto para testar a si mesmo novamente?

Vai!
image


Traduzindo para um idioma decente as palavras do meu colega: “Essa é uma oportunidade! Ao rastrear a segunda rota, você esquecerá muito a primeira. Que esquema maravilhoso e conveniente! ”

Mas o esquema é realmente simples - ele nem tem leituras de instrumentos e várias assinaturas (um olá especial aos fãs para desenhar tubos "tridimensionais"). Na prática, as coisas podem ser piores. Encontrei esquemas significativamente maiores (mais de 400 válvulas).

O que um operador pode fazer com essa imitação? Na melhor das hipóteses, abra lentamente as válvulas do portão ao longo da rota e espere que ele não esteja enganado. Mas e se a troca precisar ser feita rapidamente e o custo do erro for alto?

A saída desta situação é óbvia - é necessário colorir as linhas ao longo da rota e é recomendável fazer isso antes da ação de controle. Curiosamente, eu não vi uma solução pronta para uso imediata, mesmo com pacotes SCADA caros. Uma tentativa de colorir manualmente para cada linha ameaça atrasar a instalação quase até o infinito.

Solução para WinCC v7


Resolvi esse problema com base no WinCC v7. Infelizmente, nos termos do contrato, não tenho o direito de apresentar uma solução pronta, mas posso descrever uma possível solução. De repente alguém será útil.

Observarei imediatamente que será sobre a família de produtos WinCC versão 7, já que existe a oportunidade de usar o VBA. É necessário avisar, tudo o que é descrito abaixo é mais provável que seja um hack, é usado sem esperança e não é adequado em todos os casos.

Continuarei a discussão em termos de tubos e válvulas, embora, é claro, tudo seja igual para os esquemas de fornecimento de energia.

Divida mentalmente o esquema em seções para que em cada lado haja apenas uma entrada / saída. Essa. se uma saída for cortada no tubo, serão necessárias três seções: antes da ramificação, a ramificação em si.
Para criar um diagrama, você precisará usar dois tipos de objetos gráficos padrão:
Conector (para desenhar linhas) e Círculo (para criar pontos de controle do diagrama). O conector é necessário porque permite determinar quais objetos do circuito estão conectados, em contraste com a linha usual. O círculo padrão deve ser refeito no CustomObject - isso evitará confusão ao classificar elementos do esquema mnemônico e fornecerá nomes convenientes às propriedades.

Parte dos pontos de controle corresponderá às juntas dos dutos e parte - às válvulas de gaveta. Para o último, selecionamos qualquer propriedade não utilizada e atribuímos uma ação VBS, onde criamos uma constante e atribuímos a ela um valor de string com o nome da válvula:

imagem

Em seguida, escrevemos um script VBA que passará por todos os elementos da tela e, para cada Conector, crie uma lista de travas conectadas indiretamente, permitindo que você crie texto VBS para a propriedade BorderColor. Isso pode ser alcançado devido ao fato de o Connector ter duas propriedades - TopConnectedObjectName e BottomConnectedObjectName, disponíveis no VBA.

O resultado desse script será mais ou menos assim:

imagem

D1 e D2 - matrizes com os nomes das válvulas; TubeColor - uma função que retorna a cor e o estilo da linha, dependendo do estado das válvulas.

Um ponto importante: ao escrever um script VBS em um elemento, você também deve alterar os gatilhos.

Na função TubeColor, será necessário definir todas as regras de coloração, dependendo da situação tecnológica. Obviamente, o TubeColor precisa ser renderizado no script Global.

Então, a luta começará pelo desempenho, otimização do VBS etc., pois o WinCC dificilmente pode transferir grandes diagramas mnemônicos. Mas devemos prestar homenagem aos colegas da Siemens, a velocidade do VBS aumentou significativamente, se não me engano, da versão 7.3, o que simplificou bastante a vida dos desenvolvedores de projetos aplicados.

Descrição da implementação no Simargl SCADA


Para desenhar esquemas animados, o Simargl SCADA inclui dois widgets:
SPipeScene - uma cena para desenhar linhas e definir regras de coloração;
SPipe - para especificar pontos nodais e exibir alterações no estado do equipamento de campo.

Em essência, o processo se resume a simplesmente colocar os pontos nodais do circuito, vincular propriedades aos valores dos marcadores e colocar widgets no topo da cena que exibem o status do equipamento. Tudo se parece com isso:


É curioso que, para criar o circuito real, não fosse necessário escrever código.

Você pode obter a versão demo do Simargl SCADA, a documentação e as fontes do projeto no vídeo na página do facebook .

Source: https://habr.com/ru/post/undefined/


All Articles