36using RSI.RapidCode.dotNET;
45class GearingCamming : SampleAppTestBase
47 [Test, Timeout(Constants.MAX_TEST_TIME)]
52 Axis moving_axis = controller.
AxisGet(Constants.MAIN_AXIS_NUMBER);
54 Axis follower_axis = controller.
AxisGet(Constants.DRIVEN_AXIS_NUMBER);
58 const double MAIN_VELOCITY = 50;
59 const double MAIN_ACCELERATION = 20;
62 double[] movingAxisDistances = { 5, 10, 8 };
63 double[] followerAxisPositions = { 10, 20, 10 };
69 followerAxisPositions,
70 movingAxisDistances.Length);
72 moving_axis.
MoveVelocity(MAIN_VELOCITY, MAIN_ACCELERATION);
78 Assert.AreEqual(followerAxisPositions[followerAxisPositions.Length - 1], follower_axis.
CommandPositionGet());
80 [Test, Timeout(Constants.MAX_TEST_TIME)]
85 Axis moving_axis = controller.
AxisGet(Constants.MAIN_AXIS_NUMBER);
87 Axis follower_axis = controller.
AxisGet(Constants.DRIVEN_AXIS_NUMBER);
103 Constants.ACCELERATION,
104 Constants.DECELERATION,
105 Constants.JERK_PERCENT);
111 Assert.That(moving_axis.
CommandPositionGet(), Is.EqualTo(Constants.POSITION),
"The command position should be equal to POSITION");
112 Assert.That(follower_axis.
CommandPositionGet(), Is.EqualTo(Constants.POSITION * (numerator / denominator)),
"The command position should be equal to twice POSITION");
static void CheckErrors(RapidCodeObject rsiObject)
Check if the RapidCodeObject has any errors.
Helper Functions for checking logged creation errors, starting the network, etc.
double CommandPositionGet()
Get the current command position.
void MoveCamLinear(int32_t masterAxisNumber, RSIAxisMasterType masterFeedbackSource, const double *const masterDistances, const double *const slavePositions, int32_t pointCount)
Enable this Axis to be linear follower (slave) using an electronic cam.
void MoveVelocity(double velocity)
void GearingEnable(int32_t masterAxisNumber, RSIAxisMasterType masterFeedbackSource, int32_t numerator, int32_t denominator)
Enable this Axis to be follower (slave) using electronic gearing.
void MoveSCurve(double position, double vel, double accel, double decel, double jerkPct)
Command a point-to-point S-Curve motion.
Represents a single axis of motion control. This class provides an interface for commanding motion,...
Axis * AxisGet(int32_t axisNumber)
AxisGet returns a pointer to an Axis object and initializes its internals.
int32_t MotionDoneWait()
Waits for a move to complete.
int32_t NumberGet()
Get the axis number.
RSIAxisMasterType
Sources available to a slave Axis for electronic gearing & camming.