Zum Hauptinhalt springen

Aktivitätszählmodul "uptime"

Beschreibung

Das "uptime" Modul konsumiert einen bestimmten Satz von Eingangskanälen, wendet ein Prädikat auf ihre Kanalwerte an und summiert die Zeiträume, für die das Prädikat erfüllt ist. Die aufsummierten Zeiträume werden dann in einer entsprechenden persistenten Datei gespeichert und zusätzlich in Form von Kanälen produziert.

Verwendete Schnittstellen und Protokolle

KEINE

JSON-Konfigurationsbeispiel (Demo)

Der folgende Abschnitt zeigt eine Demokonfiguration des Moduls.

    {
"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."
}
]
}
}

Modulparameter

ParameternameErforderlichDatentypSinnvoller WertebereichDefaultBeschreibung
fileNameNeinSTRINGgültiger beschreibbarer Dateipfad"/sdi/config/uptimes.ini"Pfad zur persistenten Datei, in der die Zählerstände gespeichert werden
pollingIntervalMsNeinINT1000 (1 s)Intervall [ms] für die periodische Auswertung der Zählprädikate
writeIntervalMsNeinINT60000 (60 s)Intervall [ms] für die Aktualisierung der Zählerstände innerhalb der persistenten Datei
reproductionTimeoutMsNeinINT60000 (60 s)Timeout [ms] für die unbedingte Produktion der resultierenden Zählerkanäle, wenn keine Zähleraktualisierung erfolgt ist
triggerChannelsJAJSON Array von JSON Objektensiehe untenKonfiguration der zu überwachenden Kanäle sowie ihrer Zählerkanäle

Konfiguration der "triggerChannels"

ParameternameErforderlichDatentypSinnvoller WertebereichDefaultBeschreibung
inputChannelJASTRINGgültiger Kanalnameüberwachter Kanal
outputChannelJASTRINGZählerkanal des überwachten Kanals
offsetNeinINT0ein zusätzlicher Offset, der zum CounterChannel-Wert addiert wird
countIfNeinSTRINGinputChannel-Wert wird als wahr interpretiertein optionales Prädikat, das den Wert von inputChannel in einen booleschen Wert umwandelt (siehe unten)

Konfiguration des Prädikats "countIf"

Das Prädikat kann mit den folgenden Notationen definiert werden

PrädikattypPrädikatsbeispieleBeschreibung
Bitweises &"&2", "&010", "&0xf0", "&0b10010"Bitweise Konjunktion des Wertes des überwachten (ganzzahligen) Kanals, z. B. zur Zustandsüberwachung von Bitmasken. Dezimal-, Oktal-, Hexadezimal- und Binärdarstellungen werden unterstützt (von links nach rechts dargestellt)
Wahrer Vergleich <, >"<70.0", ">90"Wahrer Vergleich des Wertes des überwachten Kanals
Vergleich <=, >="<=70.0", ">=90"Vergleich des Wertes des überwachten Kanals
Vergleich auf innerhalb des Bereichs liegend ~"7~10", "7=~10", "7~=10", "7=~=10"Vergleich auf Zugehörigkeit zum Bereich für die Bereiche 7-10, ausschließlich 7 und 10, ausschließlich 10, ausschließlich 7, einschließlich 7 und 10 (dargestellt von links nach rechts)
Vergleich auf außerhalb des Bereichs liegend !~"7!~10", "7=!~10", "7!~=10", "7=!~=10"Vergleich auf nicht-vorhandene Zugehörigkeit zum Bereich 7–10, ausschließlich 7 und 10, ausschließlich 10, ausschließlich 7, einschließlich 7 und 10 (dargestellt von links nach rechts)
Gleichheit == und Ungleichheit !="==42", "!=7.0"Überprüfung des überwachten Kanals auf Gleichheit oder Ungleichheit

Rücksetzung der Zählerstände (Reset) über SCPI

Die Zählerstände können über die SCPI Aktion UPTIME:SET zurückgesetzt bzw. geändert werden.

Parameter

OptionalParameterDatentypWertebereichBedeutung
NeinNameSTRINGName des Zählers
NeinZählerstandINTNeu zugewiesener Zählerstand

Rückgabe

OK bzw. ERR

Beispiel

< uptime:set counter,42
> OK

Rücksetzung der Zählerstände (Reset) über RPC

Die Zählerstände können über den Remote Procedure Call [$Modulinstanz]::setCounter in optiCloud zurückgesetzt bzw. geändert werden.

Parameter

OptionalParameterDatentypWertebereichBedeutung
NeincounterVariableSTRINGDer Kanalname des Counters, welcher geändert werden soll.
NeincounterValueINT0 - *Der Wert, auf den der Counter gesetzt werden soll.

Beispiel

RPC Methode: [uptime0]::setCounter
RPC Parameter:

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

Modulinformationen

InformationenWert
AutoroptiMEAS Measurement and Automation Systems GmbH
seit smartCORE0,143
ModultypConsumer / Producer
Abhängigkeitenzu überwachende Kanäle