All pastes #240377 Raw Edit

Miscellany

public text v1 · immutable
#240377 ·published 2006-11-05 18:59 UTC
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;