Tasktypen

Einführung

Der folgende Abschnitt enthält eine Beschreibung der verschiedenen für Ihr Programm verfügbaren Tasktypen sowie deren Merkmale.

Zyklische Task

Einer zyklischen Task wird über die Einstellung „Intervall“ im Bereich „Typ“ auf der Unterregisterkarte „Konfiguration“ eine feste Zykluszeit zugewiesen. Die Ausführung einer zyklischen Task verläuft wie folgt:

1.

Eingänge lesen: Die physischen Eingangszustände werden an die Eingangsspeichervariablen %I geschrieben und andere Systemvorgänge werden ausgeführt.

2.

Taskverarbeitung: Der in der Task definierte Benutzercode (POU usw.) wird verarbeitet. Die Ausgangsspeichervariablen %Q werden gemäß den Anweisungen im Anwendungsprogramm aktualisiert, jedoch während dieses Vorgangs nicht an die physischen Ausgänge geschrieben.

3.

Ausgänge schreiben: Die Ausgangsspeichervariablen %Q werden gemäß der definierten Ausgangsforcierung angepasst, das Schreiben der physischen Ausgänge hängt jedoch vom Typ des verwendeten Ausgangs und der verwendeten Anweisungen ab.

Weitere Informationen zum Definieren der Buszyklus-Task finden Sie unter EcoStruxure Machine Expert Programmierhandbuch sowie unter SPS-Einstellungen.

Weitere Informationen zum E/A-Verhalten finden Sie unter Beschreibung der Steuerungszustände.

4.

Verbleibende Intervalldauer: Die Firmware der Steuerung führt die Systemverarbeitung und andere Tasks mit geringer Priorität aus.

HINWEIS: Wenn der für eine zyklische Task definierte Zeitraum zu kurz ist, wird die Task unmittelbar nach dem Schreiben der Ausgänge wiederholt, ohne zuvor andere Tasks mit einer niedrigeren Priorität oder andere Systemverarbeitungen durchzuführen. Dies hat eine Auswirkung auf die Ausführung aller Tasks und kann dazu führen, dass die Steuerung die System-Watchdog-Grenzwerte überschreitet und so eine System-Watchdog-Ausnahme erzeugt.
HINWEIS: Wenn die Taskzykluszeit auf einen Wert unter 3 ms eingestellt wird, sollte die tatsächliche Dauer der Task zunächst im Fenster der Tasküberwachung bei der Inbetriebnahme überwacht werden, um sicherzustellen, dass die Dauer erheblich kürzer ist als die konfigurierte Taskzykluszeit. Sollte sie länger sein, dann kann der Taskzyklus unter Umständen nicht ohne einen Watchdog-Timeout für den Taskzyklus und den Wechsel der Steuerung in den Zustand HALT eingehalten werden. Um diese Situation bei der Einstellung der Taskzykluszeit auf weniger als 3 ms bis zu einem gewissen Grad zu vermeiden, müssen auf jeden beliebigen Zyklus reale Grenzen von +1 ms angewendet werden, wenn die berechnete Zykluszeit die konfigurierte Zykluszeit leicht überschreitet.
HINWEIS: Sie können das Intervall einer zyklischen Task mit den Funktionen GetCurrentTaskCycle und SetCurrentTaskCycle über die Anwendung abrufen und festlegen. (Für weitere Informationen sieheEcoStruxure Machine Expert - Verwalten eines Intervalls für zyklische Tasks - Toolbox_Advance-Bibliothekshandbuch.)

Freilaufende Task

Eine freilaufende Task hat keine feste Dauer. Im freilaufenden Modus startet der Taskzyklus nach Beendigung des vorherigen Zyklus und einer kurzen Zeit für Systemverarbeitungsfunktionen. Die Ausführung einer freilaufenden Task verläuft wie folgt:

1.

Eingänge lesen: Die physischen Eingangszustände werden an die Eingangsspeichervariablen %I geschrieben und andere Systemvorgänge werden ausgeführt.

2.

Taskverarbeitung: Der in der Task definierte Benutzercode (POU usw.) wird verarbeitet. Die Ausgangsspeichervariablen %Q werden gemäß den Anweisungen im Anwendungsprogramm aktualisiert, jedoch während dieses Vorgangs nicht an die physischen Ausgänge geschrieben.

3.

Ausgänge schreiben: Die Ausgangsspeichervariablen %Q werden gemäß der definierten Ausgangsforcierung angepasst, das Schreiben der physischen Ausgänge hängt jedoch vom Typ des verwendeten Ausgangs und der verwendeten Anweisungen ab.

Weitere Informationen zum Definieren der Buszyklus-Task finden Sie unter EcoStruxure Machine Expert Programmierhandbuch sowie unter SPS-Einstellungen.

Weitere Informationen zum E/A-Verhalten finden Sie unter Beschreibung der Steuerungszustände.

4.

Systemverarbeitung: Die Firmware der Steuerung führt Systemverarbeitung und andere Tasks mit geringerer Priorität aus (z. B.: HTTP-Verwaltung, Ethernet-Verwaltung, Parameterverwaltung).

HINWEIS: Informationen zur Definition des Taskintervalls finden Sie unter Zyklische Task.

Ereignistask

Diese Art von Task ist ereignisgesteuert und wird durch eine Programmvariable eingeleitet. Die Task startet an der steigenden Flanke der booleschen Variable, die mit dem Trigger-Ereignis verknüpft ist, es sei denn, eine Task mit einer höheren Priorität kommt ihr zuvor. In diesem Fall wird die Ereignistask entsprechend den Vorgaben durch die Taskprioritätszuweisungen gestartet.

Wenn Sie z. B. eine Variable namens my_Var definiert haben und diese einem Ereignis zuweisen möchten, gehen Sie wie folgt vor:

Schritt

Aktion

1

Doppelklicken Sie in der Anwendungsbaumstruktur auf die TASK.

2

Wählen Sie auf der Registerkarte Konfiguration in der Liste Typ das Element Ereignis aus.

3

Klicken Sie rechts neben dem Feld Ereignis auf die Schaltfläche Eingabehilfe .

Ergebnis: Das Fenster Eingabehilfe wird angezeigt.

4

Navigieren Sie in der Baumstruktur des Dialogs Eingabehilfe zur Variablen my_Var, um diese zuzuweisen.

HINWEIS: Wenn die Ereignistask mit einer zu hohen Frequenz ausgelöst wird, wechselt die Steuerung in den HALT-Zustand (Ausnahme). Die maximale Ereignisrate ist 6 Ereignisse pro Millisekunde. Wenn die Ereignistask mit einer höheren Frequenz ausgelöst wird, wird die Meldung „ISR Count Exceeded“ auf der Anwendungsprotokollseite aufgezeichnet.

Externe Ereignistask

Dieser Tasktyp ist ereignisgesteuert und wird durch die Erkennung eines Hardware- oder hardwarebezogenen Funktionsereignisses initiiert. Er beginnt, wenn das Ereignis eintritt, außer wenn eine Task mit höherer Priorität vorrangig ausgeführt wird. In diesem Fall wird die Ereignistask entsprechend den Vorgaben durch die Taskprioritätszuweisungen gestartet.

Zum Beispiel könnte eine externe Ereignistask einem HSC-Stop-Ereignis zugeordnet werden. Um das Ereignis HSC0_STOP mit einer externen Ereignistask zu verknüpfen, wählen Sie es in der Dropdownliste Externes Ereignis auf der Registerkarte Konfiguration aus.

Je nach Steuerung gibt es bis zu 4 Ereignistypen, die einer externen Ereignistask zugewiesen werden können:

  • Steigende Flanke an einem erweiterten Eingang (DI0 bis DI15)

  • HSC-Schwellenwerte

  • HSC Stop

  • CAN Sync

HINWEIS: CAN Sync ist ein spezifisches Ereignisobjekt, das von der CANopen-Manager-Konfiguration abhängt.
HINWEIS: Die maximale Ereignisfrequenz beträgt 6 Ereignisse pro Millisekunde. Wenn die externe Ereignistask mit einer höheren Frequenz ausgelöst wird, wechselt die Steuerung in den HALT-Zustand und die Meldung „ISR Count Exceeded“ wird auf der Anwendungsprotokollseite aufgezeichnet.