Allgemeine Informationen
Grundsätzlich werden für jede IEC-Task die verwendeten Eingangsdaten am Beginn jeder Task gelesen (1) und die geschriebenen Ausgangsdaten am Ende der Task (3) zum E/A-Treiber übertragen. Die Implementierung im E/A-Treiber ist entscheidend für den weiteren Transport der E/A-Daten. Sie ist verantwortlich dafür, in welchem Zeitraster und zu welchem Zeitpunkt die tatsächliche Übertragung auf das jeweilige Bussystem stattfindet.
Die Buszyklustask der SPS kann für alle Feldbusse global in den SPS-Einstellungen festgelegt werden. Bei einigen Feldbussen können Sie diese jedoch unabhängig von der globalen Einstellung verändern. Als Buszyklustask wird automatisch die Task mit der kürzesten Zykluszeit verwendet (Einstellung: „unspezifiziert“ in den SPS-Einstellungen). In dieser Task werden normalerweise die Nachrichten auf den Bus gesendet.
Weitere Tasks kopieren nur die E/A-Daten aus einem internen Puffer, der nur in der Buszyklustask mit der realen Hardware ausgetauscht wird.

(1) Lesen der Eingänge vom Eingangspuffer (2) IEC-Task (3) Schreiben der Ausgänge in den Ausgangspuffer (4) Buszyklus (5) Eingangspuffer (6) Ausgangspuffer (7) Daten vom/zum Bus kopieren (9) Buszyklustask, Priorität 1, 1ms (10) Buszyklustask, Priorität 5 (11) Buszyklustask, Priorität 10, unterbrochen durch Task 5
Taskverwendung
In der Registerkarte „Taskaufstellung“ steht Ihnen eine Übersicht der verwendeten E/A-Kanäle, der eingestellten Buszyklustask und der Verwendung der Kanäle zur Verfügung




WARNUNG

Wenn ein Ausgang in verschiedenen Tasks geschrieben wird, so ist der Zustand undefiniert, da dieser jeweils überschrieben werden kann.
Bei Verwendung von gleichen Eingängen in verschiedenen Tasks kann es passieren, dass sich der Eingang während der Abarbeitung einer Task verändert. Dies geschieht, wenn die Task durch eine Task mit höherer Priorität unterbrochen und damit das Prozessabbild erneut eingelesen wird. Abhilfe: Am Beginn der IEC-Task die Eingangsvariablen in Variablen kopieren und dann im weiteren Code nur noch mit den lokalen Variablen arbeiten.
Fazit: Eine Verwendung von gleichen Ein- und Ausgängen in mehreren Tasks ist nicht sinnvoll und kann in manchen Fällen zu unvorhergesehenen Zuständen führen.
Verhalten des Buszyklus bei EtherCAT
Bevor die IEC-Eingänge kopiert werden, werden die ausstehenden Netzwerk-Meldungen des letzten Zyklus gelesen.

Wenn in den Einstellungen des EtherCAT-Masters die Option „Senden/Empfangen pro Task“ aktiviert wird, werden pro Task und verwendeten Ein- bzw. Ausgängen zusätzliche Telegramme an die verwendeten Geräte übertragen. Kanäle, die in einer langsamen Task verwendet werden, werden auch seltener übertragen. Die Buslast kann damit reduziert werden.
