rendered paste body
Index: docs/NEWS
===================================================================
RCS file: /cvs/emc2/docs/NEWS,v
retrieving revision 1.25
diff -u -r1.25 NEWS
--- docs/NEWS 24 Oct 2006 21:03:35 -0000 1.25
+++ docs/NEWS 5 Nov 2006 18:57:58 -0000
@@ -1,6 +1,12 @@
# some of EMC2 History & News
#############################
+2006.11.04 - added a feed-hold HAL pin. Added M codes to enable/disable
+ feed override, spindle override, feed hold, and adaptive feed
+ individually. Feed override is M50, spindle override is M51,
+ adaptive feed is M52, and feed hold is M53. G50/51 are no
+ longer used to enable/disable adaptive feed, use M52 instead.
+
2006.10.24 - added support for block delete as defined by Section 2.2.2
in the RS274NGC_3 specs.
Index: src/emc/motion/motion.h
===================================================================
RCS file: /cvs/emc2/src/emc/motion/motion.h,v
retrieving revision 1.70
diff -u -r1.70 motion.h
--- src/emc/motion/motion.h 5 Nov 2006 04:57:05 -0000 1.70
+++ src/emc/motion/motion.h 5 Nov 2006 18:58:02 -0000
@@ -222,7 +222,7 @@
int wdWait; /* cycle to wait before toggling wd */
int debug; /* debug level, from DEBUG in .ini file */
unsigned char now, out, start, end; /* these are related to synched AOUT/DOUT. now=wether now or synched, out = which gets set, start=start value, end=end value */
- unsigned char mode; /* used for turning feed/spindle overrides on/off */
+ unsigned char mode; /* used for turning overrides etc. on/off */
double comp_nominal, comp_forward, comp_reverse; /* compensation triplet, nominal, forward, reverse */
unsigned char tail; /* flag count for mutex detect */
} emcmot_command_t;
Index: src/emc/nml_intf/canon.hh
===================================================================
RCS file: /cvs/emc2/src/emc/nml_intf/canon.hh,v
retrieving revision 1.16
diff -u -r1.16 canon.hh
--- src/emc/nml_intf/canon.hh 4 Nov 2006 23:36:35 -0000 1.16
+++ src/emc/nml_intf/canon.hh 5 Nov 2006 18:58:04 -0000
@@ -742,6 +742,13 @@
// Returns the system traverse rate
extern double GET_EXTERNAL_TRAVERSE_RATE();
+// Returns the enabled/disabled status for feed override, spindle
+// override, adaptive feed, and feed hole
+extern int GET_EXTERNAL_FEED_OVERRIDE_ENABLE();
+extern int GET_EXTERNAL_SPINDLE_OVERRIDE_ENABLE();
+extern int GET_EXTERNAL_ADAPTIVE_FEED_ENABLE();
+extern int GET_EXTERNAL_FEED_HOLD_ENABLE();
+
extern FILE *_outfile; /* where to print, set in main */
extern CANON_TOOL_TABLE _tools[]; /* in canon.cc */
extern int _tool_max; /* in canon.cc */
Index: src/emc/nml_intf/emc.hh
===================================================================
RCS file: /cvs/emc2/src/emc/nml_intf/emc.hh,v
retrieving revision 1.44
diff -u -r1.44 emc.hh
--- src/emc/nml_intf/emc.hh 4 Nov 2006 23:36:36 -0000 1.44
+++ src/emc/nml_intf/emc.hh 5 Nov 2006 18:58:13 -0000
@@ -1616,6 +1616,10 @@
int kinematics_type; // identity=1,serial=2,parallel=3,custom=4
int motion_type;
double distance_to_go; // in current move
+ int feed_override_enabled;
+ int spindle_override_enabled;
+ int adaptive_feed_enabled;
+ int feed_hold_enabled;
};
// emc_MOTION is aggregate of all EMC motion-related status classes
Index: src/emc/rs274ngc/rs274ngc_pre.cc
===================================================================
RCS file: /cvs/emc2/src/emc/rs274ngc/rs274ngc_pre.cc,v
retrieving revision 1.31
diff -u -r1.31 rs274ngc_pre.cc
--- src/emc/rs274ngc/rs274ngc_pre.cc 5 Nov 2006 04:57:06 -0000 1.31
+++ src/emc/rs274ngc/rs274ngc_pre.cc 5 Nov 2006 18:58:14 -0000
@@ -297,6 +297,7 @@
char filename[LINELEN];
double *pars; // short name for _setup.parameters
+printf ( "Interp::init() start\n" );
INIT_CANON();
_setup.length_units = GET_EXTERNAL_LENGTH_UNIT_TYPE();
USE_LENGTH_UNITS(_setup.length_units);
@@ -341,7 +342,7 @@
//_setup.cycle values do not need initialization
_setup.distance_mode = MODE_ABSOLUTE;
_setup.feed_mode = UNITS_PER_MINUTE;
- _setup.feed_override = ON;
+//_setup.feed_override set in Interp::synch
//_setup.feed_rate set in Interp::synch
_setup.filename[0] = 0;
_setup.file_pointer = NULL;
@@ -371,7 +372,7 @@
_setup.sequence_number = 0; /*DOES THIS NEED TO BE AT TOP? */
//_setup.speed set in Interp::synch
_setup.speed_feed_mode = CANON_INDEPENDENT;
- _setup.speed_override = ON;
+//_setup.speed_override set in Interp::synch
//_setup.spindle_turning set in Interp::synch
//_setup.stack does not need initialization
//_setup.stack_index does not need initialization
@@ -381,16 +382,8 @@
//_setup.tool_table set in Interp::synch
_setup.tool_table_index = 1;
//_setup.traverse_rate set in Interp::synch
- _setup.adaptive_feed = 0;
- _setup.feed_hold = ON; //enable feed hold
-
-// tell the motion controller the inital states of the
-// various overrides and feed controls
- if ( _setup.speed_override ) ENABLE_SPEED_OVERRIDE(); else DISABLE_SPEED_OVERRIDE();
- if ( _setup.feed_override ) ENABLE_FEED_OVERRIDE(); else DISABLE_FEED_OVERRIDE();
- if ( _setup.adaptive_feed ) ENABLE_ADAPTIVE_FEED(); else DISABLE_ADAPTIVE_FEED();
- if ( _setup.feed_hold ) ENABLE_FEED_HOLD(); else DISABLE_FEED_HOLD();
-
+//_setup.adaptive_feed set in Interp::synch
+//_setup.feed_hold set in Interp::synch
write_g_codes((block_pointer) NULL, &_setup);
write_m_codes((block_pointer) NULL, &_setup);
@@ -404,7 +397,7 @@
// Synch rest of settings to external world
synch();
-
+printf ( "Interp::init() end\n" );
return INTERP_OK;
}
@@ -915,6 +908,10 @@
_setup.spindle_turning = GET_EXTERNAL_SPINDLE();
_setup.tool_max = GET_EXTERNAL_TOOL_MAX();
_setup.traverse_rate = GET_EXTERNAL_TRAVERSE_RATE();
+ _setup.feed_override = GET_EXTERNAL_FEED_OVERRIDE_ENABLE();
+ _setup.speed_override = GET_EXTERNAL_SPINDLE_OVERRIDE_ENABLE();
+ _setup.adaptive_feed = GET_EXTERNAL_ADAPTIVE_FEED_ENABLE();
+ _setup.feed_hold = GET_EXTERNAL_FEED_HOLD_ENABLE();
GET_EXTERNAL_PARAMETER_FILE_NAME(file_name, (LINELEN - 1));
save_parameters(((file_name[0] ==
Index: src/emc/task/emccanon.cc
===================================================================
RCS file: /cvs/emc2/src/emc/task/emccanon.cc,v
retrieving revision 1.73
diff -u -r1.73 emccanon.cc
--- src/emc/task/emccanon.cc 5 Nov 2006 13:51:23 -0000 1.73
+++ src/emc/task/emccanon.cc 5 Nov 2006 18:58:18 -0000
@@ -1993,6 +1993,25 @@
return emcStatus->io.tool.toolPrepped;
}
+int GET_EXTERNAL_FEED_OVERRIDE_ENABLE()
+{
+ return emcStatus->motion.traj.feed_override_enabled;
+}
+
+int GET_EXTERNAL_SPINDLE_OVERRIDE_ENABLE()
+{
+ return emcStatus->motion.traj.spindle_override_enabled;
+}
+
+int GET_EXTERNAL_ADAPTIVE_FEED_ENABLE()
+{
+ return emcStatus->motion.traj.adaptive_feed_enabled;
+}
+
+int GET_EXTERNAL_FEED_HOLD_ENABLE()
+{
+ return emcStatus->motion.traj.feed_hold_enabled;
+}
CANON_PLANE GET_EXTERNAL_PLANE()
{
Index: src/emc/task/emctask.cc
===================================================================
RCS file: /cvs/emc2/src/emc/task/emctask.cc,v
retrieving revision 1.20
diff -u -r1.20 emctask.cc
--- src/emc/task/emctask.cc 24 Oct 2006 20:04:36 -0000 1.20
+++ src/emc/task/emctask.cc 5 Nov 2006 18:58:18 -0000
@@ -291,6 +291,7 @@
interp.ini_load(EMC_INIFILE);
waitFlag = 0;
+printf ( "emcTaskPlanInit() start\n" );
int retval = interp.init();
if (retval > INTERP_MIN_ERROR) {
print_interp_error(retval);
@@ -302,6 +303,7 @@
}
}
}
+printf ( "emcTaskPlanInit() end\n" );
return retval;
}
Index: src/emc/task/taskintf.cc
===================================================================
RCS file: /cvs/emc2/src/emc/task/taskintf.cc,v
retrieving revision 1.60
diff -u -r1.60 taskintf.cc
--- src/emc/task/taskintf.cc 5 Nov 2006 04:57:07 -0000 1.60
+++ src/emc/task/taskintf.cc 5 Nov 2006 18:58:21 -0000
@@ -1114,6 +1114,10 @@
stat->probedPosition.tran.z = emcmotStatus.probedPos.tran.z;
stat->probeval = emcmotStatus.probeVal;
stat->probe_tripped = emcmotStatus.probeTripped;
+ stat->feed_override_enabled = emcmotStatus.enables_new & FS_ENABLED;
+ stat->spindle_override_enabled = emcmotStatus.enables_new & SS_ENABLED;
+ stat->adaptive_feed_enabled = emcmotStatus.enables_new & AF_ENABLED;
+ stat->feed_hold_enabled = emcmotStatus.enables_new & FH_ENABLED;
if (new_config) {
stat->cycleTime = emcmotConfig.trajCycleTime;