Help preventing crashes

Good Day!
Can anyone tell me if there is a way to send a signal for when a robot in soft move?
we having an issue with our Robot interacting with a Krauss Maffei Injection Press. In order to keep the part from falling off the ejectors before the robot can make vacuum on the part, We move the robot into the press make vacuum then turn on Softmove on the y axis and allow the presses ejectors to push the robot back. we have sometimes crashed when the robot is out of auto and the brakes lock the ejectors can still have the signal to push so when we go to home the robot the ejectors push into the robot and crash. 
I'm hoping to send a signal to the press that will signal when the robot is in softmove and when it is not to prevent this.
Sorry for the long post and thanks in advance!


  • graemepaulin
    As you activate Soft mode in the program could you set and reset an I/O output at the appropriate time?
  • Tliford
    Thank you for the response! 
    I'm looking to track the status live. If I set an output it would not cover me if something happens when the ejectors are pushing.
    The press would still have the signal to push out.
    WaitUntil diVacuumMade1 = 1 AND diVacuumMade2 = 1;
            ! Monitor Vacuum Sensors (Interrupts)
            IF nFreeAxis = 1 THEN
          pAutoHome130 := pSlowPull;
          nAutoHomeTrack := 130;
    ! Check if force offset is tuned
    IF NOT bIsOffsetTuned THEN
    CSSOffsetTune\RefFrame:=CSS_REFFRAME_WOBJ, CSS_NEGX, nForceOffset\Damping:=15;
    !Activate softmove
    CSSAct\RefFrame:= CSS_REFFRAME_WOBJ, CSS_X\Damping:=12\Stiffness:=6;
    TPWrite "Free Axis Active Z positive direction";
    !Apply offset
    CSSForceOffsetAct CSS_NEGX, nForceOffset;
            !********** Ejector Permissions **********
    !Enable ejectors
        IF nEjectPerm = 3 THEN
    TPWrite "Ejector Forward ON";
    TPWrite "Ejector Retract OFF";
    SetDO doEnableCorePull, 1;
    SetDO doEnableCoreSet, 0;
    ! Wait Ejector Full Forward
    TPWrite "Wait Ejector Full Forward";
    WaitDI diCorePulled, 1;
    WaitTime 0.25;
            !Deactivate softmove and advance to slow pull position
    CSSDeactMoveL pSlowPull, v10, toolCurrent\WObj:=wobjMold;
    WaitTime 0.75;
            ! Advance "Slow Pull Position"
    MoveL Offs(pPick,-170,-5,0), v5, fine, toolCurrent\WObj:=wobjMold;
    MoveL Offs(pPick,-215,-4,0), v20, z0, toolCurrent\WObj:=wobjMold;
    MoveL Offs(pPick,-225,-3,0), v100, z0, toolCurrent\WObj:=wobjMold;
    !WaitTime 1;
            ! Advance "Slow Pull Position2"
            MoveL Offs(pPick,-285,-3,0), v150, z0, toolCurrent\WObj:=wobjMold;
            !WaitTime 1.5;
            IWatch intMonitorVac1;
            IWatch intMonitorVac2;
    ! Advance "Slow Pull Position3"
    MoveL Offs(pPick,-300,-3,0), v200, z0, toolCurrent\WObj:=wobjMold;
    !WaitTime 0.5;
            SetDO doEnableCorePull, 0;
            SetDO doEnableCoreSet, 1;
     This is the code I have right now.