There are two default tasks which always get added to a newly created TwinCAT project: the I/O Idle Task and the PlcAux Task. I wonder what these tasks do and are responsible for? And what are the influences when I for example change their respective cycle times.
There is no information on Beckhoff's InfoSys about these tasks. I also asked Beckhoff support, but only got the following short answers:
- I/O Idle Task: Will be created when an EtherCAT master is created. Asynchronous communication with the nodes like CoE read/write, file download, etc. The IO Idle manages the EtherCAT state machine (going into PreOp, SafeOp, Op). It does not update directly the IOs.
- PlcAuxTask: Has a very low priority. Any kind of ADS communication.
On the rest of the internet I only found this explanation in German:
Die IO-Idle Task ist u.a. zuständig für die StateMaschine des EtherCATs... Für die IOs selber (also EtherCAT triggern und Daten transferien) ist sie nicht zuständig. Allgemein würde ich mal sagen: Die Standard-Konfig ist eigentlich OK, viel langsamer als die 1msec würde ich sie nicht machen da du sonst irgendwann Zeit-Probleme bekommst weil timouts der Geräte anschlagen wenn sie hochgefahren werden.. Die Prio kann man manchmal etwas vermindern... aber hier muss das Gesamtbild im Auge haben.
Zur Aux-Task... sie ist eigentlich in einer niedrigen Prio wie du oben geschrieben, kann sich aber bei Onlinechanges in der Prio hochboosten. Davon bekommt der Nutzer aber nichts mit.
Deepl translated:
The IO Idle Task is among other things responsible for the state machine of the EtherCAT... It is not responsible for the IOs themselves (i.e. triggering EtherCAT and transferring data). In general I would say: The standard config is actually OK, I would not make it much slower than the 1msec because otherwise you will get time problems because timouts of the devices hit when they are started... Sometimes you can reduce the prio a little bit... but here you have to have the whole picture in mind.
About the aux task... it is actually in a low prio as you wrote above, but can boot up in prio during online changes. However, the user does not notice this.
Is there anybody who can give a better and more detailed explanation on these mysterious tasks and their purpose?