Modified file emc2/src/emc/task/taskintf.cc
Full file:
<http://cvs.linuxcnc.org/cvs/emc2/src/emc/task/taskintf.cc?rev=1.93>
Difference:
<http://cvs.linuxcnc.org/cvs/emc2/src/emc/task/taskintf.cc.diff?r1=1.92;r2=1.93>
Branch: TRUNK
Log:
revision 1.93
date: 2008/08/29 16:32:55; author: cradek; state: Exp; lines: +5 -5
change the spindle mode option: estop, abort, following error, amplifier
fault, machine off should always stop the spindle. this makes the
SPINDLE_MODE option apply only to mode switches, which I think addresses
the original complaint.
--- taskintf.cc 2008/06/04 18:15:27 1.92
+++ taskintf.cc 2008/08/29 16:32:55 1.93
@@ -1314,9 +1314,6 @@
}
r2 = emcTrajAbort();
- //FIXME-AJ: stop spindle on abort
- if (localSpindleMode == 0)
- r3 = emcSpindleAbort();
return (r1 == 0 && r2 == 0 && r3 == 0) ? 0 : -1;
}
@@ -1374,9 +1371,12 @@
return usrmotWriteEmcmotCommand(&emcmotCommand);
}
-int emcSpindleAbort()
+int emcSpindleAbort(int force)
{
- return emcSpindleOff();
+ if(force || localSpindleMode == 0)
+ return emcSpindleOff();
+ else
+ return 0;
}
int emcSpindleOn(double speed, double css_factor, double offset)
Modified file emc2/src/emc/task/emctaskmain.cc
Full file:
<http://cvs.linuxcnc.org/cvs/emc2/src/emc/task/emctaskmain.cc?rev=1.113>
Difference:
<http://cvs.linuxcnc.org/cvs/emc2/src/emc/task/emctaskmain.cc.diff?r1=1.112;r2=1.113>
Branch: TRUNK
Log:
revision 1.113
date: 2008/08/29 16:32:55; author: cradek; state: Exp; lines: +5 -0
change the spindle mode option: estop, abort, following error, amplifier
fault, machine off should always stop the spindle. this makes the
SPINDLE_MODE option apply only to mode switches, which I think addresses
the original complaint.
--- emctaskmain.cc 2008/08/18 01:11:17 1.112
+++ emctaskmain.cc 2008/08/29 16:32:55 1.113
@@ -1817,6 +1817,7 @@
case EMC_TASK_ABORT_TYPE:
// abort everything
emcTaskAbort();
+ emcSpindleAbort(1);
retval = 0;
break;
@@ -1839,6 +1840,7 @@
// abort everything
emcTaskAbort();
+ emcSpindleAbort(0);
// without emcTaskPlanClose(), a new run command resumes at
// aborted line-- feature that may be considered later
@@ -2173,6 +2175,7 @@
// abort everything
emcTaskAbort();
+ emcSpindleAbort(1);
// without emcTaskPlanClose(), a new run command resumes at
// aborted line-- feature that may be considered later
@@ -2906,6 +2909,7 @@
}
emcTrajDisable();
emcTaskAbort();
+ emcSpindleAbort(1);
emcTaskPlanSynch();
}
if (emcStatus->io.coolant.mist) {
@@ -2933,6 +2937,7 @@
if (!taskAborted) {
// abort everything
emcTaskAbort();
+ emcSpindleAbort(1);
// without emcTaskPlanClose(), a new run command resumes at
// aborted line-- feature that may be considered later
{
Modified file emc2/src/emc/task/emctask.cc
Full file:
<http://cvs.linuxcnc.org/cvs/emc2/src/emc/task/emctask.cc?rev=1.31>
Difference:
<http://cvs.linuxcnc.org/cvs/emc2/src/emc/task/emctask.cc.diff?r1=1.30;r2=1.31>
Branch: TRUNK
Log:
revision 1.31
date: 2008/08/29 16:32:55; author: cradek; state: Exp; lines: +8 -0
change the spindle mode option: estop, abort, following error, amplifier
fault, machine off should always stop the spindle. this makes the
SPINDLE_MODE option apply only to mode switches, which I think addresses
the original complaint.
--- emctask.cc 2008/04/27 01:43:38 1.30
+++ emctask.cc 2008/08/29 16:32:55 1.31
@@ -159,6 +159,7 @@
// go to mdi mode
emcTrajSetMode(EMC_TRAJ_MODE_COORD);
emcTaskAbort();
+ emcSpindleAbort(0);
emcTaskPlanSynch();
mdiOrAuto = EMC_TASK_MODE_MDI;
break;
@@ -167,6 +168,7 @@
// go to auto mode
emcTrajSetMode(EMC_TRAJ_MODE_COORD);
emcTaskAbort();
+ emcSpindleAbort(0);
emcTaskPlanSynch();
mdiOrAuto = EMC_TASK_MODE_AUTO;
break;
@@ -187,6 +189,7 @@
switch (state) {
case EMC_TASK_STATE_OFF:
emcMotionAbort();
+ emcSpindleAbort(0);
// turn the machine servos off-- go into READY state
for (t = 0; t < emcStatus->motion.traj.axes; t++) {
emcAxisDisable(t);
@@ -194,6 +197,7 @@
emcTrajDisable();
emcLubeOff();
emcTaskAbort();
+ emcSpindleAbort(1);
// emcAxisUnhome(-2); // only those joints which are volatile_home
emcTaskPlanSynch();
break;
@@ -212,11 +216,13 @@
emcAuxEstopOff();
emcLubeOff();
emcTaskAbort();
+ emcSpindleAbort(1);
emcTaskPlanSynch();
break;
case EMC_TASK_STATE_ESTOP:
emcMotionAbort();
+ emcSpindleAbort(1);
// go into estop-- do both IO estop and machine servos off
emcAuxEstopOn();
for (t = 0; t < emcStatus->motion.traj.axes; t++) {
@@ -225,6 +231,7 @@
emcTrajDisable();
emcLubeOff();
emcTaskAbort();
+ emcSpindleAbort(1);
// emcAxisUnhome(-2); // only those joints which are volatile_home
emcTaskPlanSynch();
break;
@@ -475,6 +482,7 @@
if(oldstate == EMC_TASK_STATE_ON && oldstate != stat->state) {
emcTaskAbort();
+ emcSpindleAbort(1);
}
// execState set in main
|