APIs, concepts, guides, and more
Master-Based Homing (DS402)

Utilize RapidSetup for master-based DS402 homing, which although subject to EtherCAT network latency, provides comprehensive control over homing methods, safety settings, and parameters for precise motion initialization.

🔹 What is Master-Based Homing?

Homing is the process of establishing a consistent starting point, enabling precise motion control to specific positions within your workspace.

Master-Based Homing refers to a homing sequence managed by the master controller (e.g., an industrial PC or PLC with EtherCAT master capabilities). In this case, the homing process is handled by the RMP Motion Controller. The RMP sends commands to the drive to move the motor in a controlled manner while continuously monitoring feedback signals such as limit switches, encoders, or sensors via the drive or other I/O devices.

The master evaluates these signals to determine when homing is complete and sets the position reference accordingly.

Note
While Master-Based Homing offers flexibility, we recommend using Drive-Based Homing or Custom Homing. Master-Based Homing is susceptible to EtherCAT network latency, which may impact precision.

🔹 How to Master-Based Home?

Before trying to perform a homing routine, please revise the following:

  1. Define a clear Safety Zone
  2. Make sure that the motion parameter values and user units under the motion and tuning tab are configured properly.
  3. Set the hardware pos/neg limit actions to STOP under the limits and actions tab.
  4. Select a homing method

RMP Master-Based homing can be done via the following:

RMP Homing Parameters

  • State: Either “NOT HOMED” or “HOMED” indicating it has successfully completed the selected homing method.
  • Method: Select the homing method that is best suited for your machine.
  • Behavior: Select the RSIAction you wish to use during Master-based homing completion.
  • Offset: After the homing limit is reached, the axis will move ahead or back the number of revolutions specified by Home Offset (e.g., if Home Offset is 10, the axis will move 10 rotations ahead, and if Home Offset is -5, the axis will move 5 rotations back).
  • Move to Zero: Check this box if you want to move to position 0 after homing. (Scaled by User Units)
  • SlowVelocity: Sets the velocity used for final homing/stage3.
  • Cancel Button: Cancels the homing request and disables the motor.
  • Home/Start Button: Enables the motor and begins executing the selected homing method.
Warning
The only situation HomeDeceleration is used is if the maximum homing travel is exceeded and a switch is never hit. StopTimeSet is used for the pos/neg limit switch deceleration.

🔹 Homing Methods

Warning
RSI's implementation of the DS402 homing routines deviates slightly from the standard, incorporating modifications to minimize final momentum. Refer to the diagrams below for a detailed representation of the behavior.

Image

Note
The axis will travel at a specific speed in each stage. You can set velocity for a stage using:
HomeVelocitySet(RSI::RapidCode::RSIHomeStage homeStage, double velocity)

or set all four stages to the same velocity using:
HomeVelocitySet(double velocity)

Improved DS402 Implementations (100-137)

Warning
Index Pulse methods are only available for AKD. New projects should only use 100-137. Methods 0-37 remain for backwards compatibility.
Note
These methods will trigger off of the Limits (STATUS BITS) and can be inverted in the motion controller.

(100) None (Default Setting)
Image

(101) NegativeLimitSwitch RightIndex (102) PositiveLimitSwitch LeftIndex
Image

(103) PositiveHome LeftIndex (104) PositiveHome RightIndex
Image

(105) NegativeHome RightIndex (106) NegativeHome LeftIndex
Image

(107) RisingHome LeftIndex PositiveStart (108) RisingHome RightIndex PositiveStart
Image

(109) FallingHome LeftIndex PositiveStart (110) FallingHome RightIndex PositiveStart
Image

(111) FallingHome RightIndex NegativeStart (112) FallingHome LeftIndex NegativeStart
Image

(113) RisingHome RightIndex NegativeStart (114) RisingHome LeftIndex NegativeStart
Image

(117) NegativeLimitSwitch (118) PositiveLimitSwitch
Image

(119) PositiveHome NegativeMomentum (120) PositiveHome PositiveMomentum
Image

(121) NegativeHome PositiveMomentum (122) NegativeHome NegativeMomentum
Image

(123) RisingHome NegativeMomentum PositiveStart (124) RisingHome PositiveMomentum PositiveStart
Image

(125) FallingHome NegativeMomentum PositiveStart (126) FallingHome PositiveMomentum PositiveStart
Image

(127) FallingHome PositiveMomentum NegativeStart (128) FallingHome NegativeMomentum NegativeStart
Image

(129) RisingHome PositiveMomentum NegativeStart (130) RisingHome NegativeMomentum NegativeStart
Image

(133) Negative Index (134) Positive Index
Image

(135) Current Position
Image

(136) Negative Hard Stop (137) Positive Hard Stop
Image

Old DS402 Implementations (0-37)

Note
These methods will trigger off of the Switch (Dedicated I/O) and can be inverted in the controller. Some Drives may support inversion.

Value: 0 - No Homing (Default Setting)
Image

Value: 1 and 2 - Homing with the negative/positive limit switch and index pulse
Image

Value: 3 and 4 - Homing on the positive home switch and index pulse
Image

Value: 5 and 6 - Homing on the negative home switch and index pulse
Image

Value: 7 and 8 - Homing with the home switch input signal and index pulse starting in the positive direction
Image

Value: 9 and 10 - Homing with the home switch input signal and index pulse starting in the positive direction
Image

Value: 11 and 12 - Homing with the home switch input signal and index pulse starting in the negative direction
Image

Value: 13 and 14 - Homing with the home switch input signal and index pulse starting in the negative direction
Image

Value: 17 and 18 - Homing with the negative/positive limit switch
Image

Value: 19 - Homing on the positive home switch
Image

Value: 21 - Homing on the negative home switch
Image

Value: 23 - Homing with the home switch input signal starting in the positive direction
Image

Value: 25 - Homing with the home switch input signal starting in the positive direction
Image

Value: 27 - Homing with the home switch input signal starting in the negative direction
Image

Value: 29 - Homing with the home switch input signal starting in the negative direction
Image

Value: 33 and 34 - Homing on the positive/negative index pulse of the current position
Image

Value: 35 - Homing with the current position
Image

Value: 36 and 37 - Homing on the negative/positive hard limit
Image

📜 Sample Code

  • C#

    axis.HardwareNegLimitActionSet(RSIAction.RSIActionSTOP); // Neg Limit action set to STOP.
    axis.HomeMethodSet(RSIHomeMethod.RSIHomeMethodImprovedFALLING_HOME_NEGATIVE_START_POSITIVE_MOMENTUM); // Set the method to be used for homing.
    axis.HomeVelocitySet(Constants.VELOCITY); // Set the home velocity.
    axis.HomeSlowVelocitySet(Constants.VELOCITY / 10); // Set the slow home velocity. (used for final move, if necessary)
    axis.HomeAccelerationSet(Constants.ACCELERATION); // Set the acceleration used for homing.
    axis.HomeDecelerationSet(Constants.DECELERATION); // Set the deceleration used for homing.
    axis.HomeOffsetSet(0.5); // HomeOffsetSet sets the position offset from the home (zero) position.
    axis.Home(); // Execute the homing routine.
    if (axis.HomeStateGet() == true) // HomeStateGet returns true if the Axis is homed.
    {
    Console.WriteLine("Homing successful\n");
    }
    axis.ClearFaults(); // Clear faults created by homing.
    axis.AmpEnableSet(false); // Disable the motor.