For the generation of reference values of a carrier, the SoMotionGenerator (SMG) is used internally. It provides independent channels. These channels (designated A, B and C) generate individual position reference values whose sum is the resulting reference value which is transferred to the carrier.
![]() Reference value channel A |
![]() Reference value channel B |
![]() Resulting reference value |
The SMG can process positioning as well as cam jobs. The motion jobs to be assigned are parameterized within the structure ST_MotionJob of the PD_SoMotionGenerator library and directly assigned to the individual channels by the method TakeJob specified in the PD_SoMotionGenerator library.
For more information on the SoMotionGenerator, refer to the PD_SoMotionGenerator library.
The motion jobs are defined with the move commands of the MoveDirectly.
library, for exampleBy default, the move commands are executed on channel A. Only the move commands for superimposed movements and the move command MovePureSmg can additionally use the channel B or C.
The following move commands are executed on channel A:
The following move commands are executed on channel B:
The following move commands are executed on channel C:
A new move command aborts the active motion jobs of the three channels, adds up their reference values and starts the new move command on channel A with the bundled value as a starting condition.
The following move commands use channel bundling:
ifMotion.ifMoveDirectly.Start
ifMotion.ifMoveDirectly.Stop
ifMotion.ifMoveGapControl.Start
ifMotion.ifMoveGapControl.Stop
ifMotion.ifJogging.Start
ifMotion.ifJogging.Stop
ifMotion.StopCarrier
ifMotion.StopCarrierWithEmergencyParameter
ifMotion.ifMoveSyncFromStandstill.Stop
Example
Reference value on channel A = 900 (mm)
Reference value on channel C = 100 (mm)
Reference position of the carrier = 1000 (mm)
You specify a new move command MoveDirectly with the positioning mode Absolute and a target value of 1050 mm.
With channel bundling, the motion values on channel C are transferred to channel A. The reference position of the carrier on channel A is now 1000 mm.
The move command MoveDirectly is executed on channel A: The movement starts at 1000 mm and ends at 1050 mm.
![]() |
For a visual illustration of channel splitting with the method SetposRelativeChannelABC and of channel bundling, refer to the channels ABC video sequence. |