The problem with the homing report is the destruction of data.  When the 
home position is found, the machine position count is set to zero (or 
whatever the HOME_OFFSET value is).  So, the old home position is 
destroyed by that operation.  To stay with the canonical encoder 
definition as it is, you would have to store the position JUST before 
the home operation completed.  I think you could make a custom HAL 
component that recorded the machine position every servo cycle.  
Whenever it saw ENCODER_INDEX transition from true to false, it would 
save the value recorded from the previous cycle.  This would be the 
position one millisecond (at the default SERVO_THREAD rate) before the 
home position was found.  I think this would give you a pretty 
consistent way of checking for drift of the home position.  On the first 
home whe EMC is started, it would show the distance traveled from where 
the machine was to the home position.  On later homing operations, the 
value should be very close to zero, assuming the approach to the home 
switch is slow.  (Maybe watching ENCODER_INDEX only works where the 
index pulse is being used, how does the position count get set for 
stepgen, for instance?  I'm only familiar with servo-like interfaces.....)

I think this will work if there's a signal that tells you the home 
operation is happening NOW, and doesn't require any change to EMC2 
itself.  You would monitor this with HalMeter or the show hal signals menu.

Jon

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to