Grafana+Zabbix: Visualização da operação da linha de produção

Neste artigo quero compartilhar minha experiência de utilização dos sistemas open source Zabbix e Grafana para visualizar o funcionamento de linhas de produção. As informações podem ser úteis para quem procura uma maneira rápida de exibir ou analisar visualmente os dados coletados em automação industrial ou projetos de IoT. O artigo não é um tutorial detalhado, mas sim um conceito de sistema de monitoramento baseado em software de código aberto para uma fábrica.

Toolkit

Zabbix – já o utilizamos há muito tempo para monitorar a infraestrutura de TI da planta. O sistema revelou-se tão prático e universal que começamos a inserir nele dados de linhas de produção, sensores e controladores. Isso nos permitiu coletar todos os dados de métricas em um só lugar, fazer gráficos simples de consumo de recursos e desempenho de equipamentos, mas realmente faltavam análises e gráficos bonitos.

grafana é uma ferramenta poderosa para análise e visualização de dados. Um grande número de plug-ins permite obter dados de várias fontes (zabbix, clickhouse, influxDB), processá-los dinamicamente (calcular o valor médio, soma, diferença, etc.) e desenhar todos os tipos de gráficos (a partir de linhas simples, velocímetros, tabelas para diagramas complexos).

Draw.io – um serviço que permite desenhar desde um simples diagrama de blocos até uma planta baixa em um editor online. Existem muitos modelos prontos e objetos desenhados. Os dados podem ser exportados para todos os principais formatos gráficos ou xml.

Colocando tudo junto

Existem muitos artigos escritos sobre como instalar e configurar Grafana e Zabbix, vou falar sobre os principais pontos de configuração.

Um “nó de rede” (host) é criado no servidor Zabbix, que possuirá “elementos de dados” (itens) com métricas de nossos sensores. É aconselhável pensar previamente nos nomes dos nós e elementos de dados e torná-los o mais estruturados possível, pois iremos acessá-los a partir do grafana por meio de expressões regulares. Essa abordagem é conveniente porque você pode obter dados de um grupo de elementos com uma solicitação.

Para configurar o grafana você precisará instalar plugins adicionais:

  • Zabbix por Alexander Zobnin (alexanderzobnin-zabbix-app) – integração com zabbix
  • natel-discrete-panel – plugin para visualização discreta em um gráfico horizontal
  • pierosavi-imageit-panel – plugin para exibir dados sobre sua imagem
  • agenty-flowcharting-panel – plugin para visualização dinâmica de um diagrama do draw.io

A integração com o próprio Zabbix é configurada no grafana, item de menu ConfiguraçãoFontes de dadosZabbix. Lá você precisa especificar o endereço do servidor api zabbix, é isso que eu tenho http://zabbix.local/zabbix/api_jsonrpc.phpe faça login com senha para acesso. Se tudo for feito corretamente, ao salvar as configurações aparecerá uma mensagem com o número da versão da API: versão da API do zabbix: 5.0.1

Criando um painel

É aqui que começa a magia do Grafana e seus plugins.

Plug-in de painel discreto Natel
Temos dados sobre o estado dos motores nas linhas (funcionando = 1, não funcionando =0). Utilizando o gráfico discreto, podemos desenhar uma escala que mostrará: o estado do motor, quantos minutos/horas ou % funcionou e com que frequência foi ligado.

Grafana+Zabbix: Visualização da operação da linha de produção
Visualização dos status do motor

Na minha opinião, este é um dos melhores gráficos para visualizar o desempenho do hardware. Você pode ver imediatamente há quanto tempo está inativo e em quais modos funciona com mais frequência. Podem ser muitos dados, é possível agregá-los por intervalos, transformá-los por valores (se o valor for “1”, então exibi-lo como “ON”)

Plugin pierosavi-imageit-panel

Imagemé conveniente usar quando você já tem um diagrama desenhado ou planta baixa na qual deseja aplicar dados de sensores. Nas configurações de visualização, você precisa especificar o URL da imagem e adicionar os elementos do sensor necessários. O elemento aparece na imagem e pode ser colocado no local desejado com o mouse.

Grafana+Zabbix: Visualização da operação da linha de produção
Diagrama do forno com métricas de temperatura e pressão

Plug-in do painel de fluxograma de agente

Gostaria de falar mais detalhadamente sobre a criação de visualização de FlowCharting, pois é uma ferramenta incrivelmente funcional. Permite fazer um diagrama mnemônico dinâmico, cujos elementos reagirão aos valores das métricas (mudança de cor, posição, nome, etc.).

Recebendo dados

A criação de qualquer elemento de visualização no Grafana começa com uma solicitação de dados da fonte, no nosso caso é o zabbix. Usando consultas, precisamos obter todas as métricas que queremos usar no diagrama. Detalhes da métrica são os nomes dos elementos de dados no Zabbix; você pode especificar uma métrica individual ou um conjunto filtrado através de uma expressão regular. No meu exemplo, o campo Item contém a expressão: “/(^linha 1)|(disponibilidade)|(abobrinha)/” - isso significa: selecione todas as métricas cujo nome comece estritamente com “linha 1” ou contenha a palavra “disponibilidade ”ou contém a palavra "abobrinha"

Grafana+Zabbix: Visualização da operação da linha de produção
Um exemplo de configuração de solicitação de dados sobre motores de primeira linha e disponibilidade de matéria-prima

Conversão de dados

Os dados de origem podem nem sempre estar na forma em que precisamos exibi-los. Por exemplo, temos dados minuto a minuto sobre o peso de um produto em um contêiner (kg) e precisamos exibir a taxa de enchimento em t/hora. Faço isso da seguinte forma: pego os dados do peso e transformo com a função grafana delta, que calcula a diferença entre os valores da métrica, para que o peso atual se transforme em kg/min. Depois multiplico por 0.06 para obter o resultado em toneladas/hora. Como a métrica de peso é usada em diversas consultas, especifico um novo alias para ela (setAlias) e irei utilizá-lo na regra de visualização.

Grafana+Zabbix: Visualização da operação da linha de produção
Exemplo de uso do parâmetro delta e multiplicador e renomeação da métrica em uma consulta

Aqui está outro exemplo de conversão de dados: precisei contar o número de lotes (início do ciclo = partida do motor). A métrica é calculada com base no status do motor "linha 1 - bomba bomba do tanque 1 (status)". Transformação: alteramos os dados da métrica original com a função delta (diferença de valores), assim a métrica terá o valor “+1” para partida do motor, “-1” para parada e “0” quando o motor faz não alterar seu status. Então removo todos os valores menores que 1 e os soma. O resultado é o número de partidas do motor.

Grafana+Zabbix: Visualização da operação da linha de produção
Um exemplo de conversão de dados do status atual para o número de partidas

Agora sobre a visualização em si

Nas configurações de exibição existe um botão “Editar desenho” que inicia um editor no qual você pode desenhar um diagrama. Cada objeto no diagrama possui seus próprios parâmetros. Por exemplo, se você especificar configurações de fonte no editor, elas serão aplicadas à visualização de dados no Grafana.

Grafana+Zabbix: Visualização da operação da linha de produção
Esta é a aparência do editor no Draw.io

Após salvar o diagrama, ele aparecerá no grafana e você poderá criar regras para alteração dos elementos.

Em parâmetros() especificamos:

  • Opções — defina o nome da regra, o nome ou alias da métrica cujos dados serão usados ​​(Aplicar às métricas). O tipo de agregação de dados (Agregação) afeta o resultado final da métrica, então Último significa que o último valor será selecionado, avg é o valor médio do período selecionado no canto superior direito.
  • Limites - o parâmetro valores limite descreve a lógica de aplicação da cor, ou seja, a cor selecionada será aplicada aos elementos do diagrama dependendo dos dados métricos. No meu exemplo, se o valor da métrica for “0”, o status for “Ok”, a cor será verde, se o valor for “>1”, o status será Crítico e a cor será vermelha.
  • Mapeamentos de cores/dicas de ferramentas" e "Mapeamentos de rótulos/textos" - selecionando um elemento de esquema e um cenário para seu comportamento. No primeiro cenário, o objeto será pintado, no segundo haverá um texto com os dados da métrica. Para selecionar um objeto no diagrama, você precisa clicar no sinal do circuito e clicar no diagrama.

Grafana+Zabbix: Visualização da operação da linha de produção
Neste exemplo, pinto a bomba e sua seta de vermelho se funcionar e de verde se não funcionar.

Usando o plugin de fluxograma, consegui desenhar um diagrama de toda a linha, no qual:

  1. a cor das unidades muda de acordo com seu status
  2. há alarme para ausência de produto nas embalagens
  3. a configuração da frequência do motor é exibida
  4. velocidade de enchimento/despejo do primeiro tanque
  5. o número de ciclos de operação da linha (lote) é calculado

Grafana+Zabbix: Visualização da operação da linha de produção
Visualização da operação da linha de produção

resultado

A coisa mais difícil para mim foi obter dados dos controladores. Graças à versatilidade do Zabbix em termos de recebimento de dados e à flexibilidade do Grafana devido aos plugins, foram necessários apenas alguns dias para criar uma tela abrangente de monitoramento da linha de produção. A visualização possibilitou a visualização de gráficos e estatísticas estaduais, além de fácil acesso via web a todos os interessados ​​– tudo isso possibilitou identificar rapidamente gargalos e uso ineficiente das unidades.

Conclusão

Gostei muito da combinação Zabbix+Grafana e recomendo prestar atenção nela se você precisar processar rapidamente dados de controladores ou sensores sem programar ou implementar produtos comerciais complexos. É claro que isto não substituirá os sistemas SCADA profissionais, mas será suficiente como ferramenta para monitoramento centralizado de toda a produção.

Fonte: habr.com

Adicionar um comentário