All fieldbuses work with single as well as multicore systems.
Each fieldbus itself only runs on one core, i.e. nothing is parallelized and divided among several cores.

Single Core:

In each fieldbus, the bus cycle task should handle the bus.
All other tasks, if they also need data from the fieldbus, should not reach the bus, because this either produces chaos or requires synchronization/exclusive accesses, which can completely disrupts the real-time and the synchronization between bus and bus cycle task.

In some cases, the user can optionally do more (enable a second frame in EtherCAT for other tasks), but these are exceptions, and the programmer have to know what you are doing.

Multicore (MC):

The use of one fieldbus on multiple cores would only disrupt the whole System here more.

Because now the second bus cycle task can run simultaneously to the first bus cycle task, just on another core.
So this will result in even more chaos and/or even more braking/restraining synchronization on the system.

Implementation of a MC use of field busses

In case of several EtherCAT, Modbus etc. masters, each master could be assigned to a specific task. Masters, to put each master specifically on a single core. 
But this is a lot of effort in implementation in relation to the hardly existing demand from manufacturers or customers.

Therefore, this implementation is not being pursued at this time.

Possible remedies that can be made in projects

It is possible to distribute several fieldbuses on several cores by the programmer.
Or the user can place an existing visualization in the project on an additional core and thus distribute the load in the system or on the core.


  • No labels