Modulo contatore di attività "uptime"
Descrizione
Il modulo "uptime" consuma un determinato insieme di canali di ingresso, applica un predicato ai valori dei canali e somma i periodi di tempo per i quali il predicato è soddisfatto. I periodi sommati vengono quindi memorizzati in un apposito file persistente e inoltre prodotti sotto forma di canali.
Interfacce e protocolli utilizzati
NESSUNO
Esempio di configurazione JSON (demo)
La sezione seguente mostra una configurazione demo del modulo.
{
"module":"Uptime",
"factory": "uptime",
"config":{
"fileName": "/sdi/log/uptimes.ini",
"pollingIntervalMs": 1000,
"writeIntervalMs":5000,
"reproductionTimeoutMs":60000,
"triggerChannels":[
{
"inputChannel":"ch_trigger_sawtooth_int64",
"outputChannel":"ch_trigger_sawtooth_int64_and2_ch",
"countIf": "&2"
},
{
"inputChannel":"ch_trigger_sawtooth_int64",
"outputChannel":"ch_trigger_sawtooth_int64_and4_ch",
"countIf": "&4"
},
{
"inputChannel":"ch_trigger_sawtooth_int64",
"outputChannel":"ch_trigger_sawtooth_int64_andoct8_ch",
"countIf": "&010"
},
{
"inputChannel":"ch_trigger_sawtooth_int64",
"outputChannel":"ch_trigger_sawtooth_int64_andhex16_ch",
"countIf": "&0xA"
},
{
"inputChannel":"ch_trigger_sawtooth_int64",
"outputChannel":"ch_trigger_sawtooth_int64_andbinary4_ch",
"countIf": "&0b100"
},
{
"inputChannel":"ch_trigger_sawtooth_int64",
"outputChannel":"ch_trigger_sawtooth_int64_andbinary4or1_ch",
"countIf": "&0b101"
},
{
"inputChannel":"ch_trigger",
"outputChannel":"ch_trigger_outputChannel",
"offset":-10
},
{
"inputChannel":"ch_trigger",
"outputChannel": "ch_trigger_outputChannel_RENAMED_CHANNEL"
},
{
"inputChannel":"ch_trigger_sawtooth",
"outputChannel":"ch_trigger_sawtooth_lessThan_90_channel",
"countIf": "<90,0"
},
{
"inputChannel":"ch_trigger_sawtooth",
"outputChannel":"ch_trigger_sawtooth_lessOrEqual_90_channel",
"countIf": "<=90"
},
{
"inputChannel":"ch_trigger_sawtooth",
"outputChannel":"ch_trigger_sawtooth_greaterThan_130_channel",
"countIf": ">130"
},
{
"inputChannel":"ch_trigger_sawtooth",
"outputChannel":"ch_trigger_sawtooth_greaterOrEqual_130_channel",
"countIf":">=130.0"
},
{
"inputChannel":"ch_trigger_sawtooth",
"outputChannel":"ch_trigger_sawtooth_inRangeExclusive_90_130_channel",
"countIf": "90.0~130"
},
{
"inputChannel":"ch_trigger_sawtooth",
"outputChannel":"ch_trigger_sawtooth_inRangeInclusive_90_130_channel",
"countIf": "90=~=130.0"
},
{
"inputChannel":"ch_trigger_sawtooth",
"outputChannel":"ch_trigger_sawtooth_notInRangeExclusive_90_130_channel",
"countIf": "90.!~130"
},
{
"inputChannel":"ch_trigger_sawtooth",
"outputChannel":"ch_trigger_sawtooth_notInRangeInclusive_90_130_channel",
"countIf": "90=!~=130."
},
{
"inputChannel":"ch_trigger_sawtooth",
"outputChannel":"ch_trigger_sawtooth_equal_110_channel",
"countIf":"==110."
},
{
"inputChannel":"ch_trigger_sawtooth",
"outputChannel":"ch_trigger_sawtooth_notEqual_110_channel",
"countIf":"!=110."
}
]
}
}
Parametri del modulo
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori consigliato | Default | Descrizione |
|---|---|---|---|---|---|
| fileName | No | STRING | percorso di file valido e scrivibile | "/sdi/config/uptimes.ini" | Percorso del file persistente in cui vengono memorizzati i valori dei contatori |
| pollingIntervalMs | No | INT | 1000 (1 s) | Intervallo [ms] per la valutazione periodica dei predicati di conteggio | |
| writeIntervalMs | No | INT | 60000 (60 s) | Intervallo [ms] per l'aggiornamento dei valori dei contatori all'interno del file persistente | |
| reproductionTimeoutMs | No | INT | 60000 (60 s) | Timeout [ms] per la produzione incondizionata dei canali contatore risultanti, se non è avvenuto alcun aggiornamento del contatore | |
| triggerChannels | SÌ | JSON Array di oggetti JSON | vedere sotto | Configurazione dei canali da monitorare e dei relativi canali contatore |
Configurazione dei "triggerChannels"
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori consigliato | Default | Descrizione |
|---|---|---|---|---|---|
| inputChannel | SÌ | STRING | nome di canale valido | canale monitorato | |
| outputChannel | SÌ | STRING | canale contatore del canale monitorato | ||
| offset | No | INT | 0 | un offset aggiuntivo che viene sommato al valore del CounterChannel | |
| countIf | No | STRING | il valore di inputChannel viene interpretato come vero | un predicato facoltativo che converte il valore di inputChannel in un valore booleano (vedere sotto) |
Configurazione del predicato "countIf"
Il predicato può essere definito con le seguenti notazioni
| Tipo di predicato | Esempi di predicato | Descrizione |
|---|---|---|
AND bit a bit & | "&2", "&010", "&0xf0", "&0b10010" | Congiunzione bit a bit del valore del canale (intero) monitorato, ad es. per il monitoraggio dello stato di maschere di bit. Sono supportate le rappresentazioni decimale, ottale, esadecimale e binaria (indicate da sinistra a destra) |
Confronto stretto <, > | "<70.0", ">90" | Confronto stretto del valore del canale monitorato |
Confronto <=, >= | "<=70.0", ">=90" | Confronto del valore del canale monitorato |
Confronto di appartenenza a un intervallo ~ | "7~10", "7=~10", "7~=10", "7=~=10" | Confronto di appartenenza all'intervallo per gli intervalli 7-10, con 7 e 10 esclusi, con 10 escluso, con 7 escluso, con 7 e 10 inclusi (indicati da sinistra a destra) |
Confronto di non appartenenza a un intervallo !~ | "7!~10", "7=!~10", "7!~=10", "7=!~=10" | Confronto di non appartenenza all'intervallo 7–10, con 7 e 10 esclusi, con 10 escluso, con 7 escluso, con 7 e 10 inclusi (indicati da sinistra a destra) |
Uguaglianza == e disuguaglianza != | "==42", "!=7.0" | Verifica di uguaglianza o disuguaglianza del canale monitorato |
Azzeramento dei valori dei contatori (reset) tramite SCPI
I valori dei contatori possono essere azzerati ovvero modificati tramite l'azione SCPI UPTIME:SET.
Parametri
| Opzionale | Parametro | Tipo di dati | Intervallo di valori | Significato |
|---|---|---|---|---|
| No | Name | STRING | Nome del contatore | |
| No | Valore del contatore | INT | Nuovo valore assegnato al contatore |
Valore restituito
OK ovvero ERR
Esempio
< uptime:set counter,42
> OK
Azzeramento dei valori dei contatori (reset) tramite RPC
I valori dei contatori possono essere azzerati ovvero modificati in optiCloud tramite la Remote Procedure Call [$Modulinstanz]::setCounter.
Parametri
| Opzionale | Parametro | Tipo di dati | Intervallo di valori | Significato |
|---|---|---|---|---|
| No | counterVariable | STRING | Il nome del canale del contatore che deve essere modificato. | |
| No | counterValue | INT | 0 - * | Il valore a cui deve essere impostato il contatore. |
Esempio
Metodo RPC: [uptime0]::setCounter
Parametri RPC:
{
"counterVariable": "SawToothExceed70_Time",
"counterValue": 0
}
Informazioni sul modulo
| Informazioni | Valore |
|---|---|
| Autore | optiMEAS GmbH |
| da smartCORE | 0,143 |
| Tipo di modulo | Consumer / Producer |
| Dipendenze | canali da monitorare |