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

FB_ALY_SlopeAnalysis_1Ch 1: Eingänge

Name

Typ

Beschreibung

bPersistent

BOOL

Ist der Wert TRUE, werden die internen Daten persistent gespeichert.

FB_ALY_SlopeAnalysis_1Ch 2: Ausgänge

Name

Typ

Beschreibung

ipResultMessage

I_TcMessage

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 TRUE, wenn ein Fehler auftritt.

bNewResult

BOOL

Wenn ein neues Ergebnis berechnet wurde, ist der Ausgang TRUE.

bConfigured

BOOL

Zeigt TRUE an, wenn der Baustein erfolgreich konfiguriert ist.

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.

FB_ALY_SlopeAnalysis_1Ch 3: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