Multi-core support since AS\AR V6.1

Multi-core support since AS\AR V6.1

Automation Studio V6.1 is released in December 2024.
Together with Automation Runtime 6.1 this enables multi-core support.
Already a lot of current cpu’s are multi-core, but until now only one core was used for AR.

In AS V6.1 on a multi-core cpu a process (background task) can be assigned to the extra core(s).
This results in more performance for the core assigned to AR.

On a dual-core cpu, which contains a powerlink interface, the powerlink stack is always assigned to a core.
Examples : X20CP0482, X20CP0483, X20CP0484, 4PPC50.101E-10B.

On a dual-core cpu without a powerlink interface the extra core could be used for the OPC UA stack/communication.
Examples : X20CP0410, X20CP0411

This is also the case for quad-core cpu’s like X20CP3687X and 5APC2200.AL18-00.

In the AsArProf library extra function blocks are added to read out the number of cores and the load on these cores.

  1. CpuGetNumberOfCores()
  2. CpuIsCoreReserved()
  3. CpuGetLoadByCore()

Example program

	CASE Step OF
		0:
			NumberofCores := CpuGetNumberOfCores();
			IF ((NumberofCores > 0) AND (NumberofCores <5)) THEN
				FOR i:=0 TO (NumberofCores-1) DO
					CoreReserved[i] := CpuIsCoreReserved(i);
					LoadByCore[i] := CpuGetLoadByCore(i);
				END_FOR
			END_IF
			Step := 1;
		1:
			;
	END_CASE

Another background task is for instance mapp Robotics.
This SMP support for mapp Robotics is featured in mappMotion 6.2. (Release in March 2025)


13 Likes

This is really amazing. There are a lot of innovations coming around us. Thanks @corne.geerts for finding the time to notice us and prepare this overview with example program. Let this be an inspiration for others in our BRCommunity.

Thats really interesting. Is there a full list somewehere for which modules we can enable multiprocessing?

Unfortunately X20CP0410, X20CP0411 do not support Multi-Core due to licensing restrictions.
Multi Core is only available on APC and X20CPx686X (2 Cores), X20CPx686X (4 Cores).

1 Like

If the user POU can be assigned using which core will be much better.

1 Like

..not sure if this is question or statement. But more info you can find here.

1 Like

Thanks! It is just an statement. Recently I’m using automation studio 6 which have “multicore processing”, I was thinking that it can do it in “Task clsss or realtime class” but I think it is not ready yet.
Example:
Core 0:

core 1:

Above shows core 0 run 83% and core 1 run only 6%. If we can move more tasks to next core, it will be the best case. I think what I’m looking for is this:

But AR 6.X today never show such options. Or it is hiding somewhere that I never discovered.

you are right, this is not ready. this will come with one of upcoming version of AR/AS.