Im folgenden Abschnitt werden die verschiedenen, für ein Programm verfügbaren Tasktypen sowie die Eigenschaften dieser Tasktypen beschrieben.
Einer zyklischen Task wird über die Einstellung "Intervall" im Bereich "Typ" auf der Unterregisterkarte "Konfiguration" eine feste Dauer 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 Ausgangsspeichervariable %Q wird gemäß jeglicher 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 im SoMachine - Programmierhandbuch sowie unter Magelis SCU HMI Controller-Einstellungen.
Weitere Informationen zum E/A-Verhalten finden Sie unter Beschreibung der Steuerungszustände.
4. Verbleibende Intervalldauer: Die Firmware der Steuerung führt 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: Die Taskzykluszeit wird auf einen Wert von mindestens 4 ms eingestellt und das Taskintervall entspricht einem Vielfachen von 4 ms.
HINWEIS: Sie können das Intervall einer zyklischen Task über die Funktionen GetCurrentTaskCycle und SetCurrentTaskCycle je Anwendung abrufen und festlegen. (Weitere Informationen finden Sie im Toolbox_Advance-Bibliothekshandbuch.)
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 Ausgangsspeichervariable %Q wird gemäß jeglicher 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 im SoMachine - Programmierhandbuch sowie unter Magelis SCU HMI Controller-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 geringer Priorität aus. (z. B.: HTTP-Management, Ethernet-Management, Parametermanagement).
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.
Schritt |
Aktion |
---|---|
1 |
Doppelklicken Sie in der Anwendungsbaumstruktur auf die TASK. |
2 |
Wählen Sie auf der Registerkarte Konfiguration aus 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: Die maximal zulässige Frequenz für das Triggern einer Ereignistask durch das Ereignis richtet sich nach der Priorität anderer Tasks und Systemprozesse. Sie müssen also Ihre Anwendung testen, um ein zuverlässiges Triggern von Ereignissen sicherzustellen.
Dieser Tasktyp ist ereignisgesteuert und wird durch die Erkennung eines Hardware- oder Hardware-bezogenen 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 External Event Task einem HSC-Schwellenwert-Überschreitungsereignis zugeordnet werden. Um das Ereignis HSC0_TH1 1 mit einer externen Ereignistask zu verknüpfen, wählen Sie diese aus der Dropdownliste Externes Ereignis auf der Unterregisterkarte Konfiguration.
Je nach Steuerung gibt es bis zu 2 Ereignistypen, die einer External Event Task zugewiesen werden können:
oeinen FAST-Eingang (FI0 und FI1) an einer steigenden Flanke, an einer fallenden Flanke oder an beiden Flanken
oeinen HSC-Schwellenwert beim Aufwärtszählen, beim Abwärtszählen oder bei beidem
Externe Ereignistask: Leistung
Für eine External Event Task, die von FI0, FI1, HSC0_TH0 oder HSC0_TH1 ausgelöst wird, ist zwischen den Triggern mindestens das folgende stabile Intervall erforderlich:
o1,5 ms bei Tasks, die keine sofortige Zustandsänderung für FAST-Ausgänge erfordern (FQ0 oder FQ1)
o15 ms bei Tasks, die eine sofortige Zustandsänderung für FAST-Ausgänge erfordern (FQ0 oder FQ1)
Wenn die Triggerbedingungen erfüllt sind, das Intervall jedoch kürzer als oben angegeben ist, werden externe Ereignistasks (External Event Task) möglicherweise verzögert oder gar nicht ausgeführt. Komplexe Tasks, die mehr Berechnungszeit erfordern als oben angegeben, können ebenfalls zur Verzögerung oder Nichtausführung von External Event Tasks führen.
|
UNBEABSICHTIGTER GERÄTEBETRIEB |
Testen Sie Ihre Anwendung gründlich, um sicherzustellen, dass die Leistung Ihrer Anwendung den Spezifikationen entspricht. |
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben. |