FB_ALY_RMS_1Ch
Der RMS 1Ch berechnet das quadratische Mittel (root mean square) über die Eingangswerte nach der Formel

Die Anzahl an Samples N, die mit in die Berechnung einfließen, kann über die Angabe eines Zeitintervalls konfiguriert werden. Ein kaskadierter Ausgang kann konfiguriert werden, um einen Langzeit-RMS ressourcenschonend zu realisieren und Zwischenergebnisse abzugreifen. Das Zeitintervall der konfigurierten Kaskade muss einem ganzzahligen Vielfachen des Zeitintervalls der vorherigen Kaskade entsprechen.
Syntax
Definition:
FUNCTION_BLOCK FB_ALY_RMS_1Ch
VAR_OUTPUT
ipResultMessage: Tc3_EventLogger.I_TcMessage;
bError: BOOL;
bNewResult: BOOL;
bConfigured: BOOL;
END_VAR
Ausgänge
Name | Typ | Beschreibung |
---|---|---|
ipResultMessage | Beinhaltet nähere Informationen zum aktuellen Rückgabewert. Für diesen speziellen Schnittstellenzeiger ist intern sichergestellt, dass er immer gültig/zugewiesen ist. | |
bError | BOOL | Der Ausgang ist |
bNewResult | BOOL | Wenn ein neues Ergebnis berechnet wurde, ist der Ausgang |
bConfigured | BOOL | Zeigt |
Methoden
Name | Definitionsort | Beschreibung |
---|---|---|
Call() | Local | Methode zur Berechnung der Ausgänge für eine bestimmte Konfiguration. |
Configure() | Local | Allgemeine Konfiguration des Algorithmus mit seinen parametrisierten Bedingungen. |
SetCascades() | Local | Methode zur Konfiguration der Kaskaden. Der Aufruf erfolgt nach dem Aufruf der Configure-Methode. |
Reset() | Local | Setzt alle internen Zustände oder die bisher durchgeführten Berechnungen zurück. |
SetChannelValue() | Local | Methode zur Übergabe von Werten an den Algorithmus. |
Beispiel
VAR
fbRMS_1Ch : FB_ALY_RMS_1Ch;
fbSystemTime : FB_ALY_GetSystemTime;
nNumCascades : UDINT := 5;
fSampleRate : UDINT := 1000;
eStartupBehaviour : E_ALY_CascadeStartupBehaviour := E_ALY_CascadeStartupBehaviour.UsePreviousCascadeValue;
aCascadesConfigArray : ARRAY[1..5] OF LTIME := [LTIME#20MS, LTIME#1S, LTIME#1M, LTIME#1H, LTIME#1D];
bConfigure : BOOL := TRUE;
fInput : LREAL;
aRMS : ARRAY[1..5] OF LREAL;
aNewResult : ARRAY[1..5] OF BOOL;
END_VAR
// Configure algorithm
IF bConfigure THEN
bConfigure := FALSE;
fbRMS_1Ch.Configure(nNumCascades, fSampleRate, eStartupBehaviour);
fbRMS_1Ch.SetCascades(ADR(aCascadesConfigArray), SIZEOF(aCascadesConfigArray));
END_IF
// Get current system time
fbSystemTime.Call();
// Call algorithm
fbRMS_1Ch.SetChannelValue(fInput);
fbRMS_1Ch.Call(fbSystemTime.tSystemTime, ADR(aRMS), SIZEOF(aRMS), ADR(aNewResult), SIZEOF(aNewResult));
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4024.0 | PC oder CX (x64, x86) | Tc3_Analytics |