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

FB_ALY_Calendar 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.

bEvent

BOOL

TRUE, wenn das Zeitpunkt für das Event erreicht ist.

fbTimeUntilNextSwitch

FB_ALY_Timespan

Zeitspanne bis zum nächsten Event.

FB_ALY_Calendar 2: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