Online interpolation between interpolation points in tables

As shown above, the current table description defines the slave position at the end of the cam as being equal to the slave position at the start of the cam and is therefore only suitable for use with closed scanning.

If we go one step further, and want to interpolate between the interpolation points, the slave positions from the "neighboring" modulo ranges are also used to compute information such as the pitch of the interpolated cam at a specific point.

Therefore, such an interpolation uses information that is not contained in the table as such, but in the definition of closed scanning.

Under the boundary conditions just pointed out, interpolation between the equidistant slave interpolation points is possible in linear fashion, cubically (only makes sense with very fine tables) or not at all.

The manufacturer-specific Input ‘MC_CamIn.TableFctType’ to the PLCopen FB specifies how interpolation takes place between two table interpolation points:

HLI_STEP_DIRECT       : UDINT := 0;

The slave position entry ssi is output within the master position interval smi, smi+1.

HLI_LINEAR            : UDINT := 1;

Within the master position interval smi, smi+1, interpolation takes place in linear fashion between the slave position entries ssi, ssi+1.

HLI_POLYNOM_3         : UDINT := 2;

Within the master position interval smi, smi+1, a constant-tangent, cubic Bezier spline is interpolated between the four neighbouring slave position entries ssi-1,ssi, ssi+1, ssi+2. Polynomial coefficient calculation takes place online.

These interpolation types are shown in the following figure. Obtaining of tangent information at each interpolation point and at the modulo limits is also hinted at in the bottom figure: at every interpolation point, the tangent is a parallel line to the straight line that passes through the two neighbouring interpolation points.

Online interpolation between interpolation points in tables 1:
Figure 1-2: Interpolation types: "StepDirect", "Linear" and "Polynom_3"