Central Motion Control Architecture

The implementation of an axis for central Motion Control in the AC500 PLC is done by the use of the Function Blocks from the Compact Motion library file (CompactMotionControl_AC500_V12.lib).

With the Function Blocks of Compact Motion Control a Motion Control profiler can be used inside the PLC. As shown in the following figure it is needed to provide the actual positon of the drive. The output can be either a position or a velocity reference signal. The used output signal will then be used to move the axis in the desired way.

../_images/971e9fda7b85f7500a33139001c79167

There are 2 possibilities to send a reference value to the drive:

  • When the position control loop is closed by the PLC by a CMC_MOTION_KERNEL_x Function Block, the output SPEED_REFERENCE should be connected to the drive. The value of SPEED_REFERENCE can be scaled with the axis parameters MAX_RPM and MAX_REFERENCE.
  • When the position control loop is closed by the drive, the output POSITION_REFERENCE should be connected to the drive. The unit for the output POSITION_REFERENCE is increments as well as the input DRIVE_ACTUALPOSITION.
../_images/85ffc6957b96fc730a331390000d4558

Architecture for centralized Motion Control

In general the programming of a machine consists of two layers as shown in the figure above.

In the application layer Function Blocks according to PLCopen Motion Control are used to program the application sequences with all necessary types of movements and administrational commands. Due to the standard PLCopen Motion Control this can be reused in any other machine programs that used PLCopen Function Blocks.

The axis implementation layer is responsible for the execution of the commands from the application layer and can be programmed for each axis in a different way depending on the used hardware components.

Needed Function Blocks for an application with central Motion Control
Library Content
CompactMotionControl_AC500_V12.lib Kernel Function Block, Parameters Function Block, Axis Simulation Function Block
MC_Base_AC500_V11.lib Data types for AC500 Motion Control
MC_Blocks_AC500_V11.lib Motion Control Function Blocks according to PLCopen

Note

For a central motion axis implementation the use of the Function Blocks CMC_MOTION_KERNEL_REAL and CMC_AXIS_CONTROL_PARAMETER_REAL or CMC_MOTION_KERNEL_INT and CMC_AXIS_CONTROL_PARAMETER_INT is mandatory.

The Compact Motion Function Block design is independent from any bus architecture or any specific drive features.

Example for a possible system architecture

System Velocity reference Position feedback
System A Output via analog output channel as voltage or current From incremental encoder connected to CD522 IO module
System B Output via ETHERCAT network Input via ETHERCAT network
System C Output as frequency signal of CD522 IO module From incremental encoder connected to CD522 IO module
System D Output via PROFINET IO network Input via PROFINET IO network

In case the velocity reference value is used from the kernel Function Block the position control loop is closed inside the drive. In this case, it is necessary to adjust the related parameters from the parameters Function Block. When the position reference will be used the position control loop is closed inside the drive. In this case, the internal control loop is just used to monitor the position and velocity.

Note

When the position reference is used for the drive the following aspects have to be taken care of:

  • It is necessary to use a realtime fieldbus, like ETHERCAT.
  • The PLC cycle has to be synchronized to the fieldbus cycle.
  • The task calculation times may not exceed the used cycle time.

The drive’s status should be managed by a specialized Function Block that supports the used type of drive as shown in the figure above. The kernel Function Block is the main Function Block which is needed to operate an axis with central Motion Control. It must be used with the parameter Function Block which is the interface to input parameters which are used to setup the axis.

../_images/e22c72e72c04e9e40a33139000daa750

Note

The corresponding Function Blocks for drive-based motion control are the Function Blocks <DriveName>_ACCESS.

The drive has to be accessed outside the CMC_MOTION_KERNEL Function Block. Actual values and reference values might be transferred by a synchronized fieldbus or by I/Os. The Function Block CMC_Motion_Kernel has to run inside the same task as the Function Blocks MC… and to be called every cycle and at least once before any Function Block MC… is activated.

The following figure shows an example with an axis simulation. The main data signals are drawn in bold lines. Here, the drive will receive a speed reference signal which means that the position control loop is closed inside the PLC by the Compact Motion Function Blocks. The time behaviour of the simulated drive can be set by the parameter T1 at the axis simulation Function Block. If the time constant is to slow and the axis parameter CONTROL_TIME is too short the simulationed axis will run into instability – like a real drive. Sample values: Central Motion Control (PLC-Based)

../_images/6220f7d17bb0da140a331390001a299b

The following figure shows an example with a Microflex e150 on an ETHERCAT network. The main data signals are drawn in bold lines. Here, the drive will receive a position reference signal which means that the position control loop is closed inside the drive.

../_images/f786ef727bb5c8990a33139000c5e75d

In this example the main signals are to be transferred via ETHERCAT network. The drive control Function Block for the Microflex e150 can be found in the ECAT_AC500_APPL_V21 library.