FB_ALY_SlopeAnalysis_1Ch
Der Slope Analysis 1Ch berechnet die Steigung zwischen zwei Werten des Eingangsstroms. Einer dieser beiden Werte ist der aktuelle Eingangswert und der zweite Wert ist der Eingangswert, der eine festgelegte Anzahl (konfiguriert durch den Parameter Num Values) von Zyklen zuvor im Eingangsstrom aufgetreten ist. Die Differenz zwischen diesen beiden Werten wird als Delta Value zurückgegeben.
Der entsprechende Abstand auf der Zeitkoordinate wird als Differenz der Zeitstempel dieser beiden Werte berechnet und als Ausgangswert Delta Time bereitgestellt. Zu beachten ist, dass der Wert Delta Time in Nanosekunden angezeigt wird, für die Berechnung der Steigung jedoch auf eine Sekunde als Basiseinheit skaliert wird.
Der Slope wird dann als Bruch von Delta Value und Delta Time (skaliert auf Sekunden) berechnet und der Gradient für den Zeitstempel in der Mitte der beiden in der Berechnung von Delta Time verwendeten Zeitstempel geschätzt. Dies ist der Wert, der als Time Slope zurückgegeben wird, wenn er einem Zeitstempel des Eingangsstroms entspricht. Bei Konfigurationen, bei denen Num Values eine ungerade Zahl ist, gibt es keinen Eingangswert, der exakt mit dem Zeitstempel in der Mitte übereinstimmt. In diesem Fall wird der Zeitstempel des Werts, der direkt auf den berechneten Zeitstempel in der Mitte gefolgt ist, als Time Slope zurückgegeben.
Des Weiteren liefert der Algorithmus die minimale Steigung, die maximale Steigung und die Zeitwerte von Minimum und Maximum.
Syntax
Definition:
FUNCTION_BLOCK FB_ALY_SlopeAnalysis_1Ch
VAR_INPUT
bPersistent: BOOL;
END_VAR
VAR_OUTPUT
ipResultMessage: Tc3_EventLogger.I_TcMessage;
bError: BOOL;
bNewResult: BOOL;
bConfigured: BOOL;
fSlope: LREAL;
fSlopeMin: LREAL;
fSlopeMax: LREAL;
fDeltaValue: LREAL;
fbDeltaTime: FB_ALY_Timespan;
fbTimeSlope: FB_ALY_DateTime;
fbTimeSlopeMin: FB_ALY_DateTime;
fbTimeSlopeMax: FB_ALY_DateTime;
END_VAR
Eingänge
Name | Typ | Beschreibung |
---|---|---|
bPersistent | BOOL | Ist der Wert |
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 |
fDeltaValue | LREAL | Differenz der Werte des ersten und letzten Elements des Fensters. |
fbDeltaTime | FB_ALY_Timespan | Differenz der Zeitstempelwerte des ersten und letzten Elements des Fensters. Sie wird auf Sekunden skaliert. |
fSlope | LREAL | Division von fDeltaValue und fDeltaTime. |
fSlopeMin | LREAL | Minimaler aufgetretener Wert von fSlope. |
fSlopeMax | LREAL | Maximaler aufgetretener Wert von fSlope. |
fbTimeSlope | FB_ALY_DateTime | Zeitstempel der berechneten Steigung. Er wird in der Mitte des konfigurierten Fensters platziert. |
fbTimeSlopeMin | FB_ALY_DateTime | Zeitstempel des zuletzt aktualisierten fSlopeMin. |
fbTimeSlopeMax | FB_ALY_DateTime | Zeitstempel des zuletzt aktualisierten fSlopeMax. |
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. |
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
fbSlopeAnalysis : FB_ALY_SlopeAnalysis_1Ch;
fbSystemTime : FB_ALY_GetSystemTime;
nNumValues : UDINT := 200;
bConfigure : BOOL := TRUE;
nInput : INT;
END_VAR
// Configure algorithm
IF bConfigure THEN
bConfigure := FALSE;
fbSlopeAnalysis.Configure(nNumValues);
END_IF
// Get current system time
fbSystemTime.Call();
// Call algorithm
fbSlopeAnalysis.SetChannelValue(nInput);
fbSlopeAnalysis.Call(fbSystemTime.tSystemTime);
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4024.0 | PC oder CX (x64, x86) | Tc3_Analytics |