Closed processing for an endlessly rotating slave axis

In the case of interpolation between the interpolation points, there is a need to distinguish whether the slave is to process the cam endlessly or with finite rotation. This information is not included in the case of the current cam description.

As one and the same cam description can be used for both types, this distinction is not a characteristic of the cam, but is rather a component of the (CamIn) command.

Endlessly rotating vs. finite-rotating cam processing
Endlessly rotating vs. finite-rotating cam processing

In the case of endlessly rotating processing, the table interpolation points that are used to calculate the interpolation must be corrected by one modulo range at the cam's definition limits. The correction direction depends on whether the cam has been modelled for a forwards or backwards rotating slave.

However, the ISG slope kernel for cam processing (sl_cam_kernel) can only handle this properly and automatically if no intermediate interpolation (“MC_CamIn.TableFctType“ = HLI_STEP_DIRECT) is used between the interpolation points in the table. This ensures that the shortest modulo distance for two successive scanned slave positions is always output as the relative path for each real-time cycle. The modulo range of the slave axis is used for this calculation and this is why cam processing exclusively with modulo rotating slave axes is also possible.

If the cam has been modelled for an endlessly rotating slave axis, in connection with the use of interpolation point interpolation("MC_CamIn.TableFctType" = HLI_LINEAR or HLI_POLYNOM_3), it is necessary to specify in which direction modulo correction is to take place.

If the cam was modelled so that it passes through the modulo range of the slave in the positive direction, the bit represented by the global constant must be set in

  HLI_CI_ENDLESS_POSITIVE   : UDINT := 32;

"MC_CamIn.StartMode”.

If the cam passes through the modulo range of the slave in the negative direction, the bit represented by the global constant must be set in “MC_CamIn.StartMode“.

  HLI_CI_ENDLESS_NEGATIVE   : UDINT := 64;

"MC_CamIn.StartMode”.

Nevertheless, the cam profile must always match the chosen processing mode as otherwise this results in abrupt changes in the slave position.

Use of the "MC_CamIn.StartMode" flag for an endlessly rotating slave axis
Use of the "MC_CamIn.StartMode" flag for an endlessly rotating slave axis