FB_ALY_SectionTimer_1Ch

Der Section Timer 1Ch berechnet die Zeitspanne, in der sich der Eingang im Bereich jedes konfigurierten Abschnitts befindet. Er kann mit der Anzahl der Abschnitte und den Grenzen jedes Abschnitts konfiguriert werden. Jeder Abschnitt wird mit einer unteren Grenze (größer als oder gleich) und einer oberen Grenze (kleiner als) definiert. Die untere Grenze des folgenden Abschnitts wird durch die vorherige obere Grenze gesetzt. Werte, die kleiner als die minimale Grenze sind, werden im ersten Array-Element gespeichert. Werte, die gleich oder größer als die maximale Grenze sind, werden im letzten Array-Element gespeichert.

Syntax

Definition:

FUNCTION_BLOCK FB_ALY_SectionTimer_1Ch
VAR_OUTPUT
    ipResultMessage: Tc3_EventLogger.I_TcMessage;
    bError: BOOL;
    bNewResult: BOOL;
    bConfigured: BOOL;
    nSection: UDINT;
END_VAR

FB_ALY_SectionTimer_1Ch 1: 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.

nSection

UDINT

Aktuell klassifizierter Abschnitt des Eingangs.

FB_ALY_SectionTimer_1Ch 2: Methoden

Name

Definitionsort

Beschreibung

Call()

Local

Methode zur Berechnung der Ausgänge für eine bestimmte Konfiguration.

GetResults()

Local

Abrufen des Ergebnis-Arrays, ohne neue Werte hinzuzufügen.

Configure()

Local

Allgemeine Konfiguration des Algorithmus mit seinen parametrisierten Bedingungen.

SetSections()

Local

Festlegen einzelner Abschnitte.

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.

SetInitial()

Local

Methode zur Festlegung von Startabschnittszeiten.

Beispiel

VAR
    fbSectionTimer : FB_ALY_SectionTimer_1Ch;
    fbSystemTime : FB_ALY_GetSystemTime;
    nNumSections : UDINT := 4;
    fFirstLowerBorder : LREAL := 10;
    aUpperBorders : ARRAY[1..4] OF LREAL := [20,30,40,50];
    bConfigure : BOOL := TRUE;
    nInput : INT;
    aTimespansOut : ARRAY [0..5] OF LINT;
END_VAR
// Configure algorithm
IF bConfigure THEN
    bConfigure := FALSE;

    fbSectionTimer.Configure(nNumSections);
    fbSectionTimer.SetSections(fFirstLowerBorder, ADR(aUpperBorders), SIZEOF(aUpperBorders));
END_IF

// Get current system time
fbSystemTime.Call();

// Call algorithm
fbSectionTimer.SetChannelValue(nInput);
fbSectionTimer.Call(fbSystemTime.tSystemTime, ADR(aTimespansOut), SIZEOF(aTimespansOut));

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024.0

PC oder CX (x64, x86)

Tc3_Analytics