APIs, concepts, guides, and more
DS402 Master Based Homing

Table of Contents

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.

RapidSetup is an easy to use utility provided by us for configuration, homing, tuning, commanding motion, and troubleshooting.

Homing is the process of determining a consistent starting point. This allows for accurate motion to specific points in your work space.

We offer Drive Based or Master Based Homing.

Note
We recommend Drive Based Homing or Custom Homing as Master Based Homing is subject to EtherCAT network latency.

🔹 Master Based DS402 Homing with RapidSetup

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.

Image

Home Button: Enables the motor and begins executing the selected homing method. Before clicking the home button, make sure you complete 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

Cancel Button: Cancels the homing request and disables the motor.

Homing Method: Select the homing method that is best suited for your machine.

_*Home 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).

Home State: Either “NOT HOMED” or “HOMED” indicating it has successfully completed the selected homing method.

Status Window: Displays messages warnings and errors related to homing.

Move to Zero after homing?: Check this box if you want to move to position 0 after homing. (_*Scaled by User Units_)

🔹 Master Based DS402 Homing Methods

Warning
RSI's Implementation of the DS402 homing routines is not an exact implementation of the standard. Some modification have been made to reduce final momentum. See the below diagrams for the exact 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, double) Or set all four stages to the same velocity using: [HomeVelocitySet(velocity)](<HomeVelocitySet(double)>)

🔹 Homing Methods

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 Implementation (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)

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.