Kernel Function Block

Kernel Arithmetic

The Compact Motion Control Function Blocks are available in two variants. Function Blocks with the ending REAL use floating point arithmetic which results in a higher precision. These Function Blocks are intended to be used with PM59x PLCs.

Function Blocks with the ending INT use integer arithmetic which uses less calculation time on PLCs without floating point CPUs. There are some restrictions connected with the use of these Function Blocks as shown in the following table. Also the use of some PLCopen Function Blocks will not be supported. Overview

Function Blocks with the prefix CMC always have to be used with others of the same kind. Function Blocks with the ending REAL should not be compined with those with the ending INT.

Topic CMC_MOTION_KERNEL_INT CMC_MOTION_KERNEL_REAL
Arithmetic Integer arithmetic for interpolation and control loop. Real arithmetic for interpolation and control loop.
Recommended PLC   Recommended to use in PLC with floating-point unit, e.g. PM59x.
Jerk Acceleration and deceleration will be changed in a single step to the required value.

The jerk input of MC_xxx will be used in positioning,

  • Jerk=0 “Acceleration and deceleration will be changed in a single step to the required value.
  • Jerk >0 “Acceleration and deceleration will be changed regarding the maximum jerk.
  • Every ramp will need a certain time longer in case jerk>0. This time is: ( acceleration / jerk).
  • The given acceleration at MC_xxx equates the maximum acceleration which is reached during the ramp.

How does the parameter for jerk influence the axis movements

../_images/cb982e272c050a740a3313900113326c

Velocity reference with different jerk values

The diagram shows the result with different jerk values and the same velocity and acceleration. The time needed for acceleration with jerk=0 is:

Time1=velocity/acceleration=(20/100)s=0.2s

The additional time with jerk=500 will be:

me2=acceleration/jerk=(100/500)s = 0.2s

So the total time is:

Time=Time1 + Time2=0.2s + 0.2s=0.4s

In the last example with jerk=100, the velocity and acceleration values are not reached.