FB_ALY_Calendar
Der Calendar erzeugt wiederkehrend ein Event zu bestimmten Zeitpunkten. Der Modus zur Wiederholung kann individuell eingestellt werden. Es stehen die Modi der täglichen, wöchentlichen, monatlichen oder jährlichen Wiederholung zur Verfügung.
Als Referenzwert ist ein Zeitstempel erforderlich, da der Algorithmus einen Zeitkontext benötigt, in dem er arbeiten soll. Dieser Referenz-Zeitstempel wird automatisch gesetzt, wenn die Konfiguration einen weiteren Algorithmus umfasst. Daher ist es nicht möglich, den Calendar einzeln zu verwenden.
Syntax
Definition:
FUNCTION_BLOCK FB_ALY_TimeClock_1Ch
VAR_OUTPUT
ipResultMessage: Tc3_EventLogger.I_TcMessage;
bError: BOOL;
bNewResult: BOOL;
bConfigured: BOOL;
bEvent: BOOL;
fbTimeUntilNextEvent: FB_ALY_Timespan
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 |
bEvent | BOOL |
|
fbTimeUntilNextSwitch | FB_ALY_Timespan | Zeitspanne bis zum nächsten Event. |
Methoden
Name | Definitionsort | Beschreibung |
---|---|---|
Call() | Local | Methode zur Berechnung der Ausgänge für eine bestimmte Konfiguration. |
ConfigureDaily() | Local | Konfiguration des Algorithmus für tägliche Events. |
ConfigureWeekly() | Local | Konfiguration des Algorithmus für wöchentliche Events. |
ConfigureMonthly() | Local | Konfiguration des Algorithmus für monatliche Events. |
ConfigureYearly() | Local | Konfiguration des Algorithmus für jährliche Events. |
Reset() | Local | Setzt alle internen Zustände oder die bisher durchgeführten Berechnungen zurück. |
Beispiel
VAR
fbCalendar : FB_ALY_Calendar;
fbSystemTime : FB_ALY_GetSystemTime;
eRecurrenceMode : E_ALY_RecurrenceMode := E_ALY_RecurrenceMode.Yearly;
tTimeEvent : LTIME := LTIME#8H;
bConfigure : BOOL := TRUE;
END_VAR
// Configure algorithm
IF bConfigure THEN
bConfigure := FALSE;
CASE eRecurrenceMode OF
E_ALY_RecurrenceMode.Daily:
fbCalendar.ConfigureDaily(tTimeEvent);
E_ALY_RecurrenceMode.Weekly:
fbCalendar.ConfigureWeekly(tTimeEvent, E_ALY_DayOfWeekMask.MondayToFriday);
E_ALY_RecurrenceMode.Monthly:
fbCalendar.ConfigureMonthly(tTimeEvent, 0, E_ALY_RecurrenceSpecification.First, E_ALY_DayOfWeek.Monday);
E_ALY_RecurrenceMode.Yearly:
fbCalendar.ConfigureYearly(tTimeEvent, 18, E_ALY_RecurrenceSpecification.SpecificDay, E_ALY_DayOfWeek.Unspecified, E_ALY_MonthOfYearMask.November);
END_CASE
END_IF
// Get current system time
fbSystemTime.Call();
// Call algorithm
fbCalendar.Call(fbSystemTime.tSystemTime);
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4024.0 | PC oder CX (x64, x86) | Tc3_Analytics |