Vai al contenuto

Energia, utilities e offshoreMuvia Industrial

Dai nomi dei tag agli asset

Cinquecento tag del sistema di controllo, con nomi come KP2_P201A_VT01, letti da una funzione Python come li leggerebbe un tecnico: sigla della macchina, strumento, unità. Ogni abbinamento a una variabile d'asset ha una confidenza e un motivo, e i dubbi passano a una persona.

Scenario illustrativo: descrive un caso tipo, non il progetto di un cliente.

Il sistema di controllo ha cinquecento tag. Capirli tocca a chi li ha scritti.

Ogni impianto si porta dietro anni di convenzioni: sigle ISA, abbreviazioni del vecchio sistema, soglie d'allarme e comandi mescolati alle misure. Prima di analizzare qualsiasi cosa, qualcuno deve leggere centinaia di nomi e dire a quale macchina e a quale grandezza corrisponde ognuno.

In Muvia quel lavoro lo fa una funzione Python scritta dal vostro team, come lo farebbe un tecnico: legge sigla, strumento, suffisso, descrizione e unità, dà un punteggio e spiega perché. Gli abbinamenti sicuri si applicano, quelli dubbi vanno a una persona.

Per chi
Ingegneri di automazione, system integrator, data engineer industriali e chi deve dare un contesto ai dati di un impianto esistente.
Schema: l'elenco dei tag esportato dal sistema di controllo e i nomi del vecchio sistema in Excel entrano come sorgenti, i segnali delle pompe arrivano dal nodo edge via OPC UA. Muvia produce la tabella degli abbinamenti con confidenza e motivo, l'elenco dei tag da verificare, il cruscotto della contestualizzazione e le variabili d'asset collegate ai loro segnali.

In Muvia, passo per passo

Schermate vere del prodotto, registrate su un progetto con dati di esempio.

1 di 5

Il video · Cinquecento tag del sistema di controllo, con nomi come KP2_P201A_VT01, letti da una funzione Python come li leggerebbe un tecnico: sigla della macchina, strumento, unità. Ogni abbinamento a una variabile d'asset ha una confidenza e un motivo, e i dubbi passano a una persona.

Cosa ottieni

La lettura dei tag, automatizzata
Una funzione legge centinaia di nomi come farebbe un tecnico; le persone guardano solo i casi dubbi.
Ogni abbinamento si spiega
Confidenza e motivo accompagnano ogni riga: si capisce perché un tag è finito su una variabile.
Le non-misure restano fuori
Soglie d'allarme, comandi e canali di riserva vengono riconosciuti e non entrano nelle analisi.
Regole che restano vostre
Le convenzioni dell'impianto stanno nel codice della funzione: si correggono e si riapplicano a ogni nuovo export.

Per il team tecnico

Come si costruisce in Muvia

  1. 1

    Carica l'elenco dei tag

    L'export del sistema di controllo entra come sorgente e diventa una tabella con la sua query: nome, descrizione, unità, sistema di provenienza.

  2. 2

    Leggi i tag in Python

    Una funzione Python riconosce la sigla della macchina, le lettere dello strumento e i suffissi che non sono misure, come soglie e comandi. Ogni indizio vale punti: la somma è la confidenza, il motivo dice quali indizi hanno deciso.

  3. 3

    Esegui e controlla

    Un flusso applica la funzione e scrive gli abbinamenti in una tabella. Il cruscotto mostra quanti tag sono abbinati, quanti da verificare e quanti non sono misure.

  4. 4

    Collega le variabili

    Gli abbinamenti confermati collegano i campi di un dataset certificato alle variabili degli asset: ogni pompa riceve i suoi segnali.

Funzione Python

import re
import pandas as pd

STRUMENTI = {"VT": ("vibrazione", "mm/s"), "TT": ("temperatura", "°C"),
             "FT": ("portata", "m3/h"), "IT": ("corrente", "A")}
NON_MISURE = {"AH": "una soglia d'allarme", "SP": "un valore di consegna",
              "CMD": "un comando", "FB": "un ritorno di stato"}
TAG = re.compile(r"^KP\d_([PM])(\d{3}[AB])_([A-Z]+)\d\d(?:_([A-Z]+))?$")

def transform(inputs, params, ctx):
    righe = []
    for tag, unita in inputs["rows"][["tag", "unita"]].itertuples(index=False):
        m = TAG.match(tag.upper())
        if not m:
            righe.append((tag, None, None, 0, "da verificare", "sigla non riconosciuta"))
            continue
        asset = f"{m[1]}-{m[2]}"
        if m[4] in NON_MISURE:
            righe.append((tag, asset, None, 0, "non è una misura", f"è {NON_MISURE[m[4]]}"))
            continue
        variabile, attesa = STRUMENTI.get(m[3], (None, None))
        punti = 45 + (35 if variabile else 0) + (20 if unita == attesa else 0)
        esito = "abbinato" if punti >= params["soglia"] else "da verificare"
        righe.append((tag, asset, variabile, punti, esito, "sigla, strumento e unità"))
    colonne = ["tag", "asset", "variabile", "confidenza", "esito", "motivo"]
    return {"rows": pd.DataFrame(righe, columns=colonne)}
Sigla della macchina, lettere dello strumento e unità valgono punti; soglie e comandi restano fuori. Ogni riga esce con confidenza, esito e motivo.
I dati che servono
  • L'elenco dei tag del sistema di controllo, con descrizione e unità
  • I nomi del vecchio sistema, da un export Excel
  • Il modello dell'impianto: asset e variabili di pompe, motori, valvole e serbatoi
  • I segnali delle pompe, letti dal nodo edge via OPC UA

Dicci quali macchine hai. Ti diciamo come leggerle.

Marca del PLC, protocollo, connettività del reparto: con queste tre risposte, in una demo con un tecnico, ti mostriamo come Muvia Industrial porta i dati di linea accanto a quelli dell'azienda.