FB_ALY_Scaler
Das Scaler-Modul kann verwendet werden, um ein Feature-Scaling durchzuführen.
Abhängig vom Betriebsmodus werden die Skalierungsparameter auf verschiedene Arten verwendet.
Normalisierung

Standardisierung:

Die Skalierungsparameter können direkt konfiguriert werden. Alternativ können sie aus einer Datei importiert werden.
Syntax
Definition:
FUNCTION_BLOCK FB_ALY_Scaler
VAR_OUTPUT
ipResultMessage: Tc3_EventLogger.I_TcMessage;
bError: BOOL;
bNewResult: BOOL;
bConfigured: BOOL;
bBusy: BOOL;
eState: E_ALY_ConfigState;
stFileHeader: ST_ALY_FileHeader;
fResult : LREAL;
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 |
bBusy | BOOL |
|
eState | Konfigurationsstatus des Funktionsbausteins. | |
fResult | LREAL | Gibt den berechneten Wert aus. Dieser wird abhängig vom Skalierungsmodus aus den beiden Skalierungsparametern berechnet. |
Methoden
Name | Definitionsort | Beschreibung |
---|---|---|
Call() | Local | Methode zur Berechnung der Ausgänge für eine bestimmte Konfiguration. |
Configure() | Local | Allgemeine Konfiguration des Algorithmus, nachdem die einzelnen Koeffizienten gesetzt wurden. |
ConfigureFromFile() | Local | Konfiguration des Algorithmus über eine zuvor erstellte Datei. |
GetBusyState() | Local | Diese Methode liefert den Zustand Busy des Funktionsbausteins. |
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. |
UpdateState() | Local | Aktualisierung des Zustands, nachdem eine Zustandsänderung mit der Methode ConfigureFromFile() initiiert wurde. Wird so lange aufgerufen bis der Zielzustand erreicht ist. |
Beispiel – Konfiguration durch Parameter
VAR
fbScaler : FB_ALY_Scaler_1Ch;
eScalingMode : E_ALY_ScalingMode := E_ALY_ScalingMode.Normalization;
fScalingParam1 : LREAL := 2.0; // high
fScalingParam2 : LREAL := 1.0; // low
bConfigure : BOOL := TRUE;
fInput : LREAL;
END_VAR
// Configure algorithm
IF bConfigure THEN
bConfigure := FALSE;
fbScaler.Configure(eScalingMode, fScalingParam1, fScalingParam2);
END_IF
// Call algorithm
fbScaler.SetChannelValue(fInput);
fbScaler.Call();
Beispiel – Konfiguration durch Datei
VAR
fbScaler : FB_ALY_Scaler_1Ch;
eScalingMode : E_ALY_ScalingMode := E_ALY_ScalingMode.Normalization;
tTimeout : TIME := TIME#5S;
sFilePath : STRING := '%TC_BOOTPRJPATH%\Scaler.json';
bConfigure : BOOL := TRUE;
fInput : LREAL;
END_VAR
// Configure algorithm
IF bConfigure THEN
bConfigure := FALSE;
fbScaler.ConfigureFromFile(tTimeout, sFilePath);
END_IF
// Update pending state
IF fbScaler.eState = E_ALY_ConfigState.Pending THEN
fbScaler.UpdateState();
END_IF
// Call algorithm
IF fbScaler.eState = E_ALY_ConfigState.Configured THEN
fbScaler.SetChannelValue(fInput);
fbScaler.Call();
END_IF
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4024.0 | PC oder CX (x64, x86) | Tc3_Analytics |