Count('Expression','Level*','Hysteresis*','EdgeType*', 'Reset=0')
Argumente
|
'Expression' |
Messwert |
|
|
'Level*' |
Angabe des Niveauwertes |
|
|
'Hysteresis*' |
Angabe eines Hysteresebandes |
|
|
'EdgeType*' |
Angabe, ob steigende, fallende oder steigende und fallende Flanken gezählt werden sollen |
|
|
'EdgeType' <0 |
nur fallende Flanken (verlassen des Hysteresebands in negativer Richtung) |
|
|
'EdgeType' >0 |
nur steigende Flanken (verlassen des Hysteresebands in positiver Richtung) |
|
|
'EdgeType' = 0 |
fallende und steigende Flanken |
|
|
'Reset' |
Optionaler digitaler Parameter, der zum Rücksetzen des Zählers verwendet werden kann. 'Reset' kann selbst auch ein Ausdruck sein. Reset kann auch mit einem Analogsignal erfolgen. Der Wert muss dann aber exakt = 1 (integer) sein. |
|
|
'Reset' = 1 oder True |
Zähler wird zurückgesetzt |
|
|
'Reset' ≠ 1 |
Zählerwert bleibt erhalten/zählt weiter (Voreinstellung) |
|
Parameter, die mit * enden, werden nur einmalig zu Beginn der Erfassung übernommen.
Hinweis |
|
|---|---|
|
Die 'Reset'-Bedingung darf nicht auf die Count-Funktion selbst bezogen sein. |
|
Beschreibung
Die Funktion zählt die Durchgänge von 'Expression' durch das Niveau 'Level'.
Mit dem Parameter 'Hysterese' kann ein Toleranzband angegeben werden, was zu gleichen Teilen ober- und unterhalb von 'Level' liegt. Es werden nur komplette Durchgänge durch das Toleranzband gezählt.
Der Parameter 'EdgeType' bestimmt, welche Flanken gezählt werden.
Der Parameter 'Reset' dient zum Rücksetzen des Zählerwertes auf 0. 'Reset' kann auch als Ausdruck formuliert werden.
Beispiele:
|
Count([0:0],10,1,1) |
Es erfolgt kein Reset ('Reset' weggelasen) |
|
Count([0:0],10,1,1,If(Mod(T(),20)=0,TRUE()m,FALSE())) |
Der Zähler wird in einem Zeitintervall von 20 s zurückgesetzt. |
|
Count([0:0], [3.1]) |
z. B. mit [3.1] = If([0:0]<1, 1, 0) Der Counter wird zurückgesetzt, sobald der Ausdruck [3.1] TRUE zurückgibt, also wenn der Ausdruck [0:0] den Grenzwert 1 unterschreitet |
Tipp |
|
|---|---|
|
Die COUNT-Funktion kann auch für binäre Signale verwendet werden. Dazu als Pegel 0.5 und als Hysterese z. B. 0.1 eingeben. Damit werden alle Wechsel von FALSE nach TRUE und umgekehrt erfasst und gezählt. |
|
Beispiel
Tipp |
|
|---|---|
|
Diese Funktion kann in einem virtuellen Remanenzmodul verwendet werden. Ihre Ergebniswerte können damit über ein Stoppen und Neustarten der Messung erhalten werden. |
|
Es soll die Anzahl der Abweichungen des Messsignals vom Wert 10 in einem 20-Sekunden Intervall in beide Richtungen gezählt werden, allerdings nur nach kompletten Durchgängen durch das Hystereseband der Breite 2. Dabei soll der Maximalwert der einzelnen Intervalle ohne die Startphase gespeichert werden.
Aufgabenstellung
Der 'Reset'-Parameter der Count-Funktion besteht aus einer If-Abfrage der Modulo-Funktion der Zeit. Der Maximalwert wird einmalig über die OneShot-Funktion zurückgesetzt, sobald sich der Messwert zu Beginn der Messung eingependelt hat.
Lösung

|
Blau |
Messwert |
Grüner Bereich |
Hystereseband |
|
Rot |
Count-Funktion |
Grünes Signal |
Maximalwert der Intervalle der Count-Funktion |
Tipp |
|
|---|---|
|
Bei Angabe eines Hysteresebandes von 2 um das 'Level' 10 werden Durchgänge in steigender Richtung erst bei 'Expression'>11 und in fallender Richtung bei 'Expression'<9 gezählt. |
|