diff --git a/GalilSup/Db/galil_Home_ForwLimit.dmc b/GalilSup/Db/galil_Home_ForwLimit.dmc index c021834..1ebfc3f 100644 --- a/GalilSup/Db/galil_Home_ForwLimit.dmc +++ b/GalilSup/Db/galil_Home_ForwLimit.dmc @@ -1,45 +1,58 @@ NO*****************AXIS ${AXIS}******************** + NO*******HOME - Forward Limit************ #HOME${AXIS} IF ((home${AXIS}=1)) - inhome${AXIS}=1 + inhome${AXIS}=1 IF ((home${AXIS}=1) & (hjog${AXIS}=0)) - slimfl${AXIS}=_FL${AXIS};FL${AXIS}=2147483647 + slimfl${AXIS}=_FL${AXIS};FL${AXIS}=2147483647 slimbl${AXIS}=_BL${AXIS};BL${AXIS}=-2147483648 hjog${AXIS}=1 ENDIF IF ((_LR${AXIS}=0) & (_LF${AXIS}=0) & (home${AXIS}=1)) - home${AXIS}=0;MG "home${AXIS}", home${AXIS};ENDIF + home${AXIS}=0;MG "home${AXIS}", home${AXIS} + ENDIF IF ((hjog${AXIS}=1) & (_BG${AXIS}=1) & (home${AXIS}=1)) - ST${AXIS};ENDIF + ST${AXIS} + ENDIF IF ((hjog${AXIS}=1) & (_BG${AXIS}=0) & (_LF${AXIS}=0) & (home${AXIS}=1)) oldecel${AXIS}=_DC${AXIS};speed${AXIS}=_SP${AXIS}; DC${AXIS}=@ABS[hjgdc${AXIS}] JG${AXIS}=@ABS[hjgsp${AXIS}]*-1 - SH${AXIS};WT50;BG${AXIS};hjog${AXIS}=2 + IF (_MO${AXIS}=1);SH${AXIS};ENDIF + hjog${AXIS}=2 + ENDIF + IF ((hjog${AXIS}=2) & (_MO${AXIS}=0) & (home${AXIS}=1)) + BG${AXIS};hjog${AXIS}=3 ENDIF IF ((hjog${AXIS}=1) & (_BG${AXIS}=0) & (_LF${AXIS}=1) & (home${AXIS}=1)) - hjog${AXIS}=3 + hjog${AXIS}=4 ENDIF - IF ((hjog${AXIS}=2) & (_BG${AXIS}=1) & (_LF${AXIS}=1) & (home${AXIS}=1)) - ST${AXIS} - hjog${AXIS}=3 + IF ((hjog${AXIS}=3) & (_BG${AXIS}=1) & (_LF${AXIS}=1) & (home${AXIS}=1)) + ST${AXIS};hjog${AXIS}=4 ENDIF - IF ((hjog${AXIS}=3) & (_BG${AXIS}=0) & (_LF${AXIS}=1) & (home${AXIS}=1)) + IF ((hjog${AXIS}=4) & (_BG${AXIS}=0) & (_LF${AXIS}=1) & (home${AXIS}=1)) DC${AXIS}=@ABS[hjgdc${AXIS}] JG${AXIS}=@ABS[hjgsp${AXIS}] - SH${AXIS};WT50;BG${AXIS};hjog${AXIS}=4 + IF (_MO${AXIS}=1);SH${AXIS};ENDIF + hjog${AXIS}=5 + ENDIF + IF ((hjog${AXIS}=5) & (_MO${AXIS}=0) & (home${AXIS}=1)) + BG${AXIS};hjog${AXIS}=6 ENDIF - IF ((hjog${AXIS}=4) & (_BG${AXIS}=0) & (_LF${AXIS}=0) & (home${AXIS}=1)) + IF ((hjog${AXIS}=6) & (_BG${AXIS}=0) & (_LF${AXIS}=0) & (home${AXIS}=1)) DC${AXIS}=@ABS[hjgdc${AXIS}] JG${AXIS}=@ABS[hjgsp${AXIS}]/-10 - SH${AXIS};WT50;BG${AXIS};hjog${AXIS}=5 + IF (_MO${AXIS}=1);SH${AXIS};ENDIF + hjog${AXIS}=7 ENDIF - IF ((hjog${AXIS}=5) & (_BG${AXIS}=1) & (_LF${AXIS}=1) & (home${AXIS}=1)) - ST${AXIS} - hjog${AXIS}=6 + IF ((hjog${AXIS}=7) & (_MO${AXIS}=0) & (home${AXIS}=1)) + BG${AXIS};hjog${AXIS}=8 + ENDIF + IF ((hjog${AXIS}=8) & (_BG${AXIS}=1) & (_LF${AXIS}=1) & (home${AXIS}=1)) + ST${AXIS};hjog${AXIS}=9 ENDIF - IF ((hjog${AXIS}=6) & (_BG${AXIS}=0) & (home${AXIS}=1)) + IF ((hjog${AXIS}=9) & (_BG${AXIS}=0) & (home${AXIS}=1)) hjog${AXIS}=0;home${AXIS}=0;homed${AXIS}=1 MG "home${AXIS}", home${AXIS};MG "homed${AXIS}", homed${AXIS} ENDIF @@ -47,7 +60,7 @@ ELSE hjog${AXIS}=0 ENDIF IF ((home${AXIS}=0) & (inhome${AXIS}=1)) - FL${AXIS}=slimfl${AXIS} + FL${AXIS}=slimfl${AXIS} BL${AXIS}=slimbl${AXIS} inhome${AXIS}=0 ENDIF diff --git a/GalilSup/src/GalilAxis.cpp b/GalilSup/src/GalilAxis.cpp index c4c93db..b1d421d 100644 --- a/GalilSup/src/GalilAxis.cpp +++ b/GalilSup/src/GalilAxis.cpp @@ -1999,6 +1999,8 @@ void GalilAxis::checkEncoder(void) double sc_code = getGalilAxisVal("_SC"); // get axis moving state double bg_code = getGalilAxisVal("_BG"); + // in case we are homing record hjog + int hjog_code = getGalilAxisVal("hjog"); //Pass stall status to higher layers setIntegerParam(pC_->motorStatusSlip_, 1); //Set the stop reason so limit deceleration is applied during stop @@ -2011,7 +2013,7 @@ void GalilAxis::checkEncoder(void) sprintf(message, "Encoder stall stop motor %c", axisName_); //Set controller error mesg monitor pC_->setCtrlError(message); - std::cerr << "STALL: pestall_time=" << pestall_time << " (>" << estall_time << ") encoderMove_=" << encoderMove_ << " encDirOk_=" << encDirOk_ << " _SC" << axisName_ << "=" << sc_code << " [" << lookupStopCode((int)sc_code) << "] _BG" << axisName_ << "=" << bg_code << std::endl; + std::cerr << "STALL: pestall_time=" << pestall_time << " (>" << estall_time << ") encoderMove_=" << encoderMove_ << " encDirOk_=" << encDirOk_ << " _SC" << axisName_ << "=" << sc_code << " [" << lookupStopCode((int)sc_code) << "] _BG" << axisName_ << "=" << bg_code << " hjog" << axisName_ << "=" << hjog_code << std::endl; } } }