Mechanical gearing consists of a master unit and a slave unit linked mechanically by a ratio determined by the number of teeth on the input gear and the output gear.
Electronic gearing can achieve the same relationship without the mechanical linkage. This can be useful for many different systems:
Gantry systems where one unit must follow another in the same direction
MotionController *controller; Axis *axisX0; Axis *axisX1;
controller = MotionController::CreateFromBoard(RSI_BOARD);
Get Axis X0 and X1 respectively. axisX0 = controller->AxisGet(0); axisX1 = controller->AxisGet(1);
axisX1->GearingEnable(axisX0->NumberGet(), RSIAxisMasterTypeAXIS_COMMANDED_POSITION , 1, 1);
Move to the endof track axisX0->MoveSCurve(2500, VELOCITY, ACCELERATION, DECELERATION, JERK_PERCENT);
axisX0->MotionDoneWait();
In-feed systems where two pinch-rollers must rotate in an inverse relationship (1:-1)
MotionController *controller; Axis *axisX0; Axis *axisX1;
controller = MotionController::CreateFromBoard(RSI_BOARD);
Get Axis X0 and X1 respectively. axisX0 = controller->AxisGet(0); axisX1 = controller->AxisGet(1);
axisX1->GearingEnable(axisX0->NumberGet(), RSIAxisMasterTypeAXIS_COMMANDED_POSITION , -1, 1);
Move to the end of spool axisX0->MoveSCurve(2500, VELOCITY, ACCELERATION, DECELERATION, JERK_PERCENT);
Conveying systems where the ratio between the pay-out & take-up spool continuously changes as product is moved from one to the other (1:4) at start (4:1) at end
int num = 4, den = 1; MotionController *controller; Axis *axisX0; Axis *axisX1;
controller = MotionController::CreateFromBoard(RSI_BOARD);
Get Axis X0 and X1 respectively. axisX0 = controller->AxisGet(0); axisX1 = controller->AxisGet(1);
Initial Ratio axisX1->GearingEnable(axisX0->NumberGet(), RSIAxisMasterTypeAXIS_COMMANDED_POSITION , num, den);
Move to the end of spool axisX0->MoveSCurve(2500, VELOCITY, ACCELERATION, DECELERATION, JERK_PERCENT);
Change ratio based on dancer D0 while moving while(!axisX0->MotionDoneGet()) { if(D0 > Deadband) axisX0->GearingRatioChange(num + 1, den - 1); else if(D0 < Deadband) axisX0->GearingRatioChange(num - 1, den + 1); }
Disable gearing to allow loading of new spool axisX->GearingDisable();