# Statistiche Allarmi

# Strutture per le Statistiche degli Allarmi

Questa sezione descrive l’architettura dei dati utilizzati per l’analisi avanzata degli allarmi, che include il calcolo di KPI come MTTR (Tempo Medio di Riparazione) e MTBF (Tempo Medio tra i Guasti), e la gestione di classifiche (“Top Alarms”) per identificare i problemi più critici.

### Struttura `ST_AlarmAnalytics`

Questa è la struttura “mattoncino” che contiene tutte le analisi calcolate per un singolo allarme.

Nome Variabile | Tipo Dati | Descrizione
--- | --- | ---
`State` | `BOOL` | Stato attuale dell’allarme (`VERO` = Attivo).
`Count` | `DINT` | Conteggio totale delle occorrenze (Frequenza) di questo allarme.
`TotalActiveTime_ms` | `LINT` | Tempo totale, in millisecondi, in cui questo allarme è rimasto attivo.
`MTTR_sec` | `LREAL` | Tempo Medio di Riparazione (Mean Time To Repair), in secondi. Indica il tempo medio necessario per risolvere l’allarme.
`MTBF_h` | `LREAL` | Tempo Medio tra i Guasti (Mean Time Between Failures), in ore. Indica il tempo medio di buon funzionamento tra un’occorrenza e l’altra di questo allarme.

### Struttura `ST_TopAlarmEntry`

Questa struttura rappresenta una singola riga all’interno di una classifica di allarmi (“Top Alarms”). Viene usata per le due classifiche principali: quella per frequenza e quella per tempo di fermo.

Nome Variabile | Tipo Dati | Descrizione
--- | --- | ---
`AlarmId` | `DINT` | L’ID numerico dell’allarme. Un valore di `-1` indica uno slot vuoto nella classifica.
`Value` | `LREAL` | Il valore utilizzato per ordinare la classifica (può essere la frequenza o il tempo totale di attività in millisecondi).

### Dati Allarmi nella Struttura `ST_Egress`

Infine, la struttura `ST_Egress` (dati in uscita verso lo SCADA) contiene gli array che rendono disponibili tutte queste informazioni.

Nome Variabile | Tipo Dati | Descrizione
--- | --- | ---
`AlarmAnalytics` | `ARRAY[0..1399] OF ST_AlarmAnalytics` | Un array che contiene i dati analitici dettagliati per ogni singolo allarme.
`TopAlarms_ByFrequency` | `ARRAY[0..99] OF ST_TopAlarmEntry` | La classifica dei 100 allarmi più frequenti.
`TopAlarms_ByDowntime` | `ARRAY[0..99] OF ST_TopAlarmEntry` | La classifica dei 100 allarmi che hanno causato il maggior tempo di fermo.
`Alarms_Packed` | `ARRAY[0..80] OF WORD` | Un array compatto di word per una rappresentazione rapida e a basso livello dello stato di tutti gli allarmi.