XGB EtherCAT Speed and Position Synchronization with XPM_SSP, XPM_SSS, and XPM_SSSP
XEM CPU has a few options for synchronizing a sub-axis with a master. The axes being controlled must already be configured using the XG-PM software before using the synchronization function blocks. XPM_ECON and XPM_SVON must be executed before any motion.
Function Block | Description in XG5000 | Function |
---|---|---|
XPM_SSP | Position synchronization | Execute a step in the Position Data table of the slave axis after the master axis reached the defined position. |
XPM_SSS | Speed synchronization | Control the speed of the slave axis according to the ratio setup with the master axis. |
XPM_SSSP | Positioning speed sync | Control the speed of the slave axis according to the ratio setup with the master axis until the slave axis reaches the defined position. |

XPM_SSP is used for position synchronization of a sub-axis. A step in the position data table is executed when the master axis reaches synchronization position (MST_ADDR). The axis that uses the XPM_SSP function block is considered the sub-axis.
Element Name | Element Type | Description |
---|---|---|
REQ | Input | Edge detected request to execute the function block. |
BASE | Input | Base number of the motion controller. Set to 0. |
SLOT | Input | Slot number of the motion controller. Set to the slot number of the XBF-PN04B or XBF-PN08B module. |
AXIS | Input | Axis number to control. XBF-PN04B:1~4, XBF-PN08B:1~8 |
STEP | Input | Step in the position table to execute when master axis reaches MST_ADDR position. |
MST_AXIS | Input | Master axis number. XBF-PN04B:1~4, XBF-PN08B:1~8 and must not be the axis executing the XPM_SSP. |
MST_ADDR | Input | Master position to execute the position synchronization for the sub-axis. |
DONE | Output | Status that function block is done. |
STAT | Output | Current status of the function block. Non-zero numbers will be an error or warning. |

This example is in scan program LP634_XPM_SSP_Example in OnlineHelp_ECAT_Example. In this example Axis 1 is the master axis and Axis 2 is the sub-axis.
-
When the ‘Run_Example’ variable is true, Axis 1 will do a speed control move to 1000 pulses/sec and Axis2 will execute an XPM_SSP function block.
-
Axis 2’s XPM_SSP is setup to execute step 1 of the position table when Axis 1’s position reaches 10000 pulses.
-
Home Axes before setting ‘Run_Example ‘ to true.
Axis 2 Position Table Step 30:
XPM_SSP LD Code
XPM_SSP Trend

XPM_SSS is used to control the operating speed between two axes at the set ratio. The synchronization is done with the Master Ratio and Sub-axis Ratio.
-
If master ratio value is larger, then the sub-axis will move slower than the master.
-
If sub-axis ratio value is larger, then the sub-axis will move faster than the master.
-
The sub-axis will move in the same direction as the master axis if the ratio is positive.
-
The sub-axis will move in the opposite direction of the master axis if the ratio is negative.
Element Name | Element Type | Description |
---|---|---|
REQ | Input | Edge detected request to execute the function block. |
BASE | Input | Base number of the motion controller. Set to 0. |
SLOT | Input | Slot number of the motion controller. Set to the slot number of the XBF-PN04B or XBF-PN08B module. |
AXIS | Input | Axis number to control. XBF-PN04B:1~4, XBF-PN08B:1~8 |
MST_AXIS | Input | Master axis number. XBF-PN04B:1~4, XBF-PN08B:1~8 and must not be the axis executing the XPM_SSS. |
MST_RAT | Input | Master speed ratio value. Value can be between -32,768 thru 32767. |
SLV_RAT | Input | Sub-axis speed ratio value can be between -32,768 thru 32767. |
DONE | Output | Status that function block is done. |
STAT | Output | Current status of the function block. Non-zero numbers will be an error or warning. |

This example is in scan program LP634_XPM_SSS_Example in OnlineHelp_ECAT_Example. In this example Axis 1 is the master axis and Axis 2 is the sub-axis.
-
When the ‘Run_Example’ variable is true, Axis 1 will do a speed control move to 1000 pulses/sec and Axis2 will execute an XPM_SSS function block.
-
Axis 2’s XPM_SSS is setup to speed synchronize with Axis 1 at half of Axis 1’s speed.
XPM_SSS LD Code
XG-PM Monitoring for XPM_SSS example

XPM_SSSP is used to control the operating speed between two axes at the set ratio. The sub-axis will stop when its position reaches the POS value. The synchronization is done with the Master Ratio and Sub-axis Ratio.
-
If master ratio value is larger, then the sub-axis will move slower than the master.
-
If sub-axis ratio value is larger, then the sub-axis will move faster than the master.
-
The sub-axis will move in the same direction as the master axis if the ratio is positive.
-
The sub-axis will move in the opposite direction of the master axis if the ratio is negative.
Element Name | Element Type | Description |
---|---|---|
REQ | Input | Edge detected request to execute the function block. |
BASE | Input | Base number of the motion controller. Set to 0. |
SLOT | Input | Slot number of the motion controller. Set to the slot number of the XBF-PN04B or XBF-PN08B module. |
AXIS | Input | Axis number to controlXBF-PN04B:1~4, XBF-PN08B:1~8 |
MST_AXIS | Input | Master axis number. XBF-PN04B:1~4, XBF-PN08B:1~8 and must not be the axis executing the XPM_SSS. |
MST_RAT | Input | Master speed ratio value. Value can be between -32,768 thru 32767. |
SLV_RAT | Input | Sub-axis speed ratio value. Value can be between -32,768 thru 32767. |
POS | Input | Target position of the sub-axis. |
DONE | Output | Status that function block is done. |
STAT | Output | Current status of the function block. Non-zero numbers will be an error or warning. |

This example is in scan program LP634_XPM_SSSP_Example in OnlineHelp_ECAT_Example. In this example Axis 1 is the master axis and Axis 2 is the sub-axis.
-
When the ‘Run_Example’ variable is true, Axis 1 will do a speed control move to 1000 pulses/sec and Axis2 will execute an XPM_SSSP function block.
-
Axis 2’s XPM_SSSP is setup to speed synchronize with Axis 1 at half of Axis 1’s speed.
-
Axis 2 will stop after its position reaches 10000 pulses.
-
Execute ‘Home_Axes’ command before ‘Run_Example’.
XPM_SSSP LD Code
XG-PM Monitoring for XPM_SSSP example
Trend Monitoring for XPM_SSSP example
LP634