Passa al contenuto principale

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 parametroObbligatorioTipo di datiIntervallo di valori consigliatoDefaultDescrizione
fileNameNoSTRINGpercorso di file valido e scrivibile"/sdi/config/uptimes.ini"Percorso del file persistente in cui vengono memorizzati i valori dei contatori
pollingIntervalMsNoINT1000 (1 s)Intervallo [ms] per la valutazione periodica dei predicati di conteggio
writeIntervalMsNoINT60000 (60 s)Intervallo [ms] per l'aggiornamento dei valori dei contatori all'interno del file persistente
reproductionTimeoutMsNoINT60000 (60 s)Timeout [ms] per la produzione incondizionata dei canali contatore risultanti, se non è avvenuto alcun aggiornamento del contatore
triggerChannelsSÌJSON Array di oggetti JSONvedere sottoConfigurazione dei canali da monitorare e dei relativi canali contatore

Configurazione dei "triggerChannels"​

Nome del parametroObbligatorioTipo di datiIntervallo di valori consigliatoDefaultDescrizione
inputChannelSÌSTRINGnome di canale validocanale monitorato
outputChannelSÌSTRINGcanale contatore del canale monitorato
offsetNoINT0un offset aggiuntivo che viene sommato al valore del CounterChannel
countIfNoSTRINGil valore di inputChannel viene interpretato come veroun 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 predicatoEsempi di predicatoDescrizione
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​

OpzionaleParametroTipo di datiIntervallo di valoriSignificato
NoNameSTRINGNome del contatore
NoValore del contatoreINTNuovo 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​

OpzionaleParametroTipo di datiIntervallo di valoriSignificato
NocounterVariableSTRINGIl nome del canale del contatore che deve essere modificato.
NocounterValueINT0 - *Il valore a cui deve essere impostato il contatore.

Esempio​

Metodo RPC: [uptime0]::setCounter
Parametri RPC:

{
"counterVariable": "SawToothExceed70_Time",
"counterValue": 0
}

Informazioni sul modulo​

InformazioniValore
AutoreoptiMEAS GmbH
da smartCORE0,143
Tipo di moduloConsumer / Producer
Dipendenzecanali da monitorare