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
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 |
nSection | UDINT | Aktuell klassifizierter Abschnitt des Eingangs. |
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 |