controller.CompensatorCountSet(2);
const int MIN = 0;
const int MAX = 200;
const int DELTA = 10;
const int POINTS = ((MAX - MIN) / DELTA) + 1;
double[] TABLE0 = new double[POINTS] { 0, 1000, -5000, -10000, 10000, 5000, -5000, 2500, 0, 2500, 5000, 7500, 1000, 1250, 1000, 7500, 5000, 2500, 0, -2500, -1000 };
double[] TABLE1 = new double[POINTS] { 0, 500, 0, 0, 0, 0, 0, 0, 0, 0, 1000, -5000, -1000, 1000, 5000, -5000, 2500, 0, -1000, 0, 0 };
controller.CompensatorPointCountSet(Constants.COMP_NUM_ZERO, TABLE0.Length);
controller.CompensatorPointCountSet(Constants.COMP_NUM_ONE, TABLE1.Length);
controller.AxisCountSet(2);
Axis moving_axis = CreateAndReadyAxis(Constants.MAIN_AXIS_NUMBER);
Axis follower_axis = CreateAndReadyAxis(Constants.DRIVEN_AXIS_NUMBER);
if (controller.CompensatorPointCountGet(Constants.COMP_NUM_ZERO) == TABLE0.Length && POINTS == TABLE0.Length)
{
controller.CompensatorConfigSet(Constants.COMP_NUM_ZERO, moving_axis,
RSIAxisMasterType.RSIAxisMasterTypeAXIS_ACTUAL_POSITION, MIN, MAX, DELTA, follower_axis,
RSICompensatorOutputType.RSICompensatorOutputTypeSINGLE, TABLE0);
controller.CompensatorConfigSet(Constants.COMP_NUM_ONE, moving_axis,
RSIAxisMasterType.RSIAxisMasterTypeAXIS_ACTUAL_POSITION, MIN, MAX, DELTA, follower_axis,
RSICompensatorOutputType.RSICompensatorOutputTypeADDITIVE, TABLE1);
}