Nomenclatura de tags e templates de engenharia para projetos SCADA de grande porte
Nomes de tags digitados às pressas no primeiro mês viram imposto sobre cada alteração posterior. Um projeto SCADA de grande porte raramente quebra no primeiro gráfico; quebra quando uma segunda linha entra, quando a lista de alarmes é exportada, ou quando um contratado novo não consegue dizer a qual motor uma tag pertence. Na manufatura discreta é assim; na casa de utilidades também. Este artigo organiza o custo da nomenclatura bagunçada depois do comissionamento, os campos que a regra precisa cobrir, e por que alocação de I/O, lista de pontos e especificação de telas devem existir antes de desenhar.
O que a nomenclatura bagunçada custa depois do comissionamento
- Nomes duplicados e colisões: duas estações carregam Pump1_Run, os relatórios misturam as duas, e ninguém sabe de qual site veio o evento
- Telas e tags se afastam: o rótulo na HMI foi reescrito, a tag de baixo continua como abreviação do eletricista, e o diagnóstico precisa de dois vocabulários
- O texto de alarme não pode ser gerado a partir da tag: cada mensagem é digitada à mão, e uma troca de nome no processo nunca chega à lista de alarmes
- A expansão copia a bagunça: a próxima área é clonada da primeira, inclusive os nomes ruins, e o custo de limpeza cresce a cada linha acrescentada
- A transferência vira conhecimento de corredor: só o engenheiro original sabe que T12 é a temperatura de descarga da bomba A, e essa pessoa já não está no site
Esses cinco custos aparecem depois do comissionamento, não durante. Por isso são fáceis de adiar e caros de reverter. Uma regra de nomenclatura é barata na primeira semana; renomear dezenas de milhares de tags depois que a HMI está no ar não é.
Campos que a regra de nomenclatura precisa cobrir: área, equipamento, sinal, tipo
Regra de nomenclatura não é preferência estética. É um contrato a partir do qual cada tag, cada texto de alarme e cada objeto de tela pode ser derivado. Se faltar um campo, scripts posteriores não filtram por área, não geram texto de alarme e não distinguem valor de processo de comando.
Os quatro campos abaixo são o mínimo a decidir antes de criar a primeira tag. Delimitador, comprimento e conjunto de caracteres entram na mesma regra, porque marcas mistas de PLC e exportações posteriores de banco punem grafia informal. Num único projeto coletamos cerca de 80.000 variáveis de 366 dispositivos na mesma rede. Esse número descreve um trabalho específico. Não é o tamanho típico de projeto, e não é um teto anunciado para cada contrato. O que ele mostra é que a regra precisa se sustentar quando a contagem de tags é grande, não só quando a linha-piloto tem algumas centenas de pontos.
- Área (site, linha ou prédio): quem é o dono geográfico do ativo — fábrica, oficina, linha ou código da estação de bombeamento. Sem isso, duas máquinas idênticas em naves diferentes colidem
- Equipamento (unidade, skid ou máquina): o ativo em si — compressor, transportador, conjunto de bombas — para todos os sinais de uma máquina ordenarem juntos
- Sinal (medição ou função): o que se lê ou se escreve — realimentação de marcha, pressão de descarga, falha, setpoint
- Tipo (classe): analog in, analog out, digital in, digital out, calculado, alarme, setpoint — para o histórico, as telas e o motor de alarmes tratarem o ponto corretamente
- Delimitador, comprimento e conjunto de caracteres: um único separador (underscore é prática comum), um comprimento que o PLC mais curto e o histórico aceitem, e nenhum espaço nem pontuação local que quebre exportações
Templates de engenharia que precisam existir antes da primeira tela
As telas são a parte visível de um projeto SCADA, por isso a discussão começa nelas. Num trabalho grande a ordem se inverte: alocação de I/O, lista de pontos e especificação de HMI precisam existir antes de alguém desenhar. Sem esses três, cada tela posterior inventa nomes na hora, e o sistema em operação não tem uma fonte verdadeira contra a qual conferir.
Além da escala de coleta acima, já fizemos engenharia de alarmes num projeto de quase 30.000 pontos de alarme. Esses números são evidência de trabalhos específicos, não um tamanho que esperamos de cada site. Também não são uma reivindicação de produto sobre quantas tags uma plataforma aceita em cada contrato. O limite superior de tags num dado segmento de rede segue da largura de banda, do intervalo de polling e da folga do servidor, e entra nos templates abaixo em vez de ser descoberto no comissionamento.
- Tabela de alocação de I/O: painel, slot, canal, tipo de sinal, faixa de engenharia e nome de tag de destino, congelada antes de começar o endereçamento do PLC
- Lista de pontos (point table): a fonte verdadeira — nome da tag, descrição, área, equipamento, endereço, tipo de dado, classe de varredura, unidade de engenharia, flag de alarme. Uma linha por ponto, um responsável pelo arquivo
- Especificação de HMI / telas: quais telas existem, quais tags elas ligam, navegação e apresentação de alarmes — escrita antes do trabalho gráfico, não depois
- Mapa de endereços e de rede: qual controlador dono de qual faixa, quantos dispositivos compartilham um segmento, e o teto de tags que aquele segmento carrega no intervalo de polling combinado
Nomenclatura ruim, o problema que causa e uma estrutura recomendada
A tabela abaixo é uma lista de conferência para usar, não um padrão universal. O padrão da terceira coluna é AREA_EQ_SIGNAL_TYPE. Preencha os quatro campos com a sua planta, depois congele grafia, delimitador e comprimento para que toda importação posterior use o mesmo contrato.
| Nomenclatura ruim | Problema que causa | Estrutura recomendada |
|---|---|---|
| Pump1_Run, Pump1Run e P1R misturados no mesmo trabalho | O mesmo sinal se escreve de três jeitos; busca e scripts perdem dois deles | Um padrão, um delimitador: p.ex. P2_PU01_RUN_DI (área_equipamento_sinal_tipo) |
| T12, AI03, MtrA | Códigos que só o autor original decodifica; a transferência depende da memória | Coloque área e equipamento no nome; o significado fica no campo de descrição, não escondido num código privado |
| Line2_Temp usado ao mesmo tempo como valor de processo e como alarme | Histórico, HMI e lista de alarmes brigam por um ponto; filtros não separam | Ponto de processo e ponto de alarme são tags distintas; o campo tipo distingue PV de ALM |
| Compressor_Discharge_Pressure_High_High_Alarm_SP | O nome ultrapassa o comprimento do PLC e do histórico; o corte posterior colide em silêncio | Limite o comprimento na regra; o qualificativo vai em tipo e descrição, não numa string interminável |
| 1号炉_温度 misturado com Furnace1_Temp na mesma lista | Exportações, caminhos OPC e consultas SQL quebram em caracteres locais ou espaços | Uma língua no nome da tag (identificadores em inglês são prática comum); o idioma local fica na descrição |
A estrutura recomendada é um template de partida. Conjunto de caracteres, comprimento e os códigos exatos de área e equipamento precisam ser combinados com o time do site diante das marcas de PLC e do histórico realmente em uso.
Governar pontos de alarme e pontos de processo como duas listas
Um ponto de processo responde qual é o valor. Um ponto de alarme responde se alguém precisa agir. Misturá-los numa tag parece econômico com algumas centenas de pontos e vira ingovernável com alguns milhares. A lista de alarmes herda então todo atalho de nomenclatura da lista de processo, e a racionalização posterior não tem uma lista limpa com que trabalhar.
Níveis de prioridade, supressão e arquivo no reset são outro desenho. Tratamos isso na coluna sobre racionalização de alarmes SCADA; esta seção não repete aquele tutorial. O que cabe aqui é a cisão que torna aquele trabalho posterior possível: duas populações, dois responsáveis, um contrato de nomenclatura que gera texto de alarme a partir de área, equipamento e sinal.
- Populações separadas: cada tag de processo que precisa de alarme ganha uma tag de alarme pareada, ou um registro de alarme ligado pelo nome — não um ponto de dois usos
- O texto de alarme é gerado a partir dos campos de nomenclatura: área, equipamento e sinal produzem uma mensagem legível, de modo que uma troca de nome atualiza a tag e o texto juntos
- Responsáveis diferentes: tags de processo ficam com o I/O e o histórico; tags de alarme ficam com a operação, com prioridade e regra de fechamento, e as duas listas se revisam em ritmos diferentes
- Não copie a classe de alarme para cada nome de processo: a classe pertence ao registro de alarme. Colocar HH, H, L, LL em milhares de tags de processo transforma uma re-priorização posterior em uma renomeação em massa
Num projeto de quase 30.000 pontos de alarme, o que se sustentou foi essa cisão, não um gráfico maior. A maioria das fábricas nunca chega a essa contagem. A cisão ainda vale a pena com algumas centenas de alarmes, porque é quando ainda é barata.
Resumo
Um projeto SCADA de grande porte se governa por nomes e templates, não pelo primeiro gráfico. Decida os campos — área, equipamento, sinal, tipo —, emita a alocação de I/O, a lista de pontos e a especificação de HMI, e tire os pontos de alarme da lista de processo. O custo posterior de pular esses passos é renomear, não desenhar.
Se a nomenclatura já está misturada, exporte a lista de tags em operação, tabule colisões e campos faltantes, e congele uma regra antes de acrescentar a próxima área. Limpar mais uma linha sob uma regra é mais barato do que limpar a planta inteira depois.
Revisar a sua lista de pontos
Envie uma amostra dos nomes de tags atuais e da alocação de I/O. Podemos marcar colisões, campos faltantes e uma estrutura de nomenclatura proposta antes de construir a próxima área. O atendimento pode ser em português ou inglês.
Fale conosco