Members Only | Ezine | Links | Legal Notice | Contact us |



East Bldg #134549


Structuring with SFC
do's & don'ts
V1.0 Official Release


PLCopen Safety
Part 1
Version 2.0 now released


Information Model
V1.01.09 RfC


PLCopen starts
new working group
on Industry 4.0










Part 4 - Coordinated Motion


Part 4 of the PLCopen suite of specifications is focused to the coordinated multi-axes motion in 3D space, to serve the majority of user's application needs in this area.

Part 1 and Part 2 of the PLCopen Motion Control suite deal with master / slave motion control, a type of coordinated motion control where the master axis position is used to generate one or more slave axis position commands. For multi dimensional movements, one goes beyond this point via a grouping of a set of axes, without a master axis.This is done via the definition of a set of Function Blocks with related coordinated motion functionality as well as a higher level state diagram, linking the single axis state diagrams in the group. In this way a better trajectory planning is possible. Also, the current Master/Slave axes can have the problem that if an error occurs, the other axes have no knowledge about this, and continue their movement. By combining axes in a group one knows upfront which axes are involved and has the basis for a better error behavior.

The level of the PLCopen Motion Control Function Blocks are specified at such a level that the user quickly recognizes the functionality of the function block and what happens if it is activated or connected to other blocks in a sequence of motion commands. This PLCopen initiative transforms the functionalities as known in the CNC and Robotic world to the PLC world.

Overall there are a number of sets of function blocks defined to do this, as shown below. without going into details.

The first step is to group axes. The following FBs are defined for this:  

  • MC_AddAxisToGroup
  • MC_GroupReadConfiguration
  • MC_RemoveAxisFromGroup

  • MC_GroupEnable
  • MC_UngroupAllAxes
  • MC_GroupDisable

 The next step is to link the transformations:

  • MC_SetKinTransform
  • MC_ReadKinTransform
  • MC_SetCartesianTransform

  • MC_ReadCartesianTransform
  • MC_SetCoordinateTransform
  • MC_ReadCoordinateTransform
  • MC_SetDynCoordTransform

Overview of the coordinate systems and transformations
  • ACS         Axis related
  • MCS        Machine related
  • PCS         Product or Workpiece related

For coordinated moving, the following blocks are defined:

  •  MC_GroupHome
  • MC_MoveLinearRelative 
  • MC_GroupStop

  • MC_MoveCircularAbsolute
  • MC_GroupHalt
  • MC_MoveCircularRelative
  • MC_GroupInterrupt
  • MC_MoveDirectAbsolute
  • MC_GroupContinue
  • MC_MoveDirectRelative
  • MC_MoveLinearAbsolute
  •   MC_MovePath

Axes Group Synchronized Motion

The following function blocks deal with a master/ slave relationship between a single or group of axes and a single or group of axes for coordination purposes. There are two kinds of coordinated motion that have to be distinguished from a programming point of view and in the realization of the motion control itself. These two modes are identified here through their names: Synchronization and Tracking. The differences and related FBs are shown in the next figure:

Graphical explanation of coordination 

Then there are other FBs defines, most without motion:

  •  MC_GroupSetPosition
  • MC_GroupReadError
  • MC_GroupReadActualPosition

  • MC_GroupReset
  • MC_GroupReadActualVelocity
  • MC_PathSelect
  • MC_GroupReadActualAcceleration
  • MC_GroupSetOverride
  • MC_GroupReadStatus