Ok I've started a new topic as I bogged the last one down in tangents.
I'd like to brainstorm methods to enable Mach to accurately maintain home position. I believe this is a noble cause. Doing so would lower the bar for accurate custom-built-machines even more. Also, I like Mach and would like to keep using it. Currently my lack in confidence at maintaining an accurate home is bringing me very close to abandoning Mach. This is because e-stop and Limit events are very common, and after which Mach requires re-homing.
Requirement: The only time a CAM system (without absolute positioning) should require homing is at power up, after a motor drive failure, or when the operator decides it's necessary (after a crash).
I think there are three VIABLE philosophies one could adopt when building a system:
1) Continuous absolute feedback. (Many (most all?) modern professional systems do this)
Homing mechanism: n/a
2) Continuous incremental feedback.
Homing mechanism: Accurate as the system builder wants it to be (mechanical switch, encoder index pulse...)
3) Open loop system. (risk of error decreases as the system is driven at a smaller % of max operating conditions)
Homing mechanism: same as #2
Mach doesn't currently support any of these options. I'm not putting Mach in catagory #3 because because #3 systems have been around for at least 10+ years (pretty sure 30+ years). AHHA systems, for example, don't loose home with e-stop or limit events. Now that I think about it, from my experience, Mach is the ONLY system I've seen with the capability to control professional systems that DOES require homing after an e-stop or limit event.
Re-homing is risky and takes time.
In opinion, e-stop and limit events are so common that they should not be allowed to compromise work quality or productivity.
Now to the actual brainstorming...
So there are really two homing issue that I've dealt with while building my own machine: Mach's action during error states (discussed above), and accurate homing mechanisms. The more accurate the homing mechanism is, the less risky Mach's behavior becomes.
So I can only try to make an accurate homing mechanism while I wait and hope that Mach changes the way it handles e-stops and limits differently.
If the system has encoder feedback then Mach has the capacity to be close to #2 (above), correct?
- Wire the encoders into Mach for DRO feeback
- If servo driven, then the servo driver signals Mach in the case of a drive error.
- If using steppers + encoders then use a board like the one sold by rogersmachine.net to signal drive error.
- Home machine.
- Any time after homing, one could then copy the encoder DRO values to the machine DRO fields.
(Are e-stops and limit events interrupts? --Are encoder DRO values guaranteed consistent across these events?)
Accurate homing. There are few mechanical switches that I'd trust. Even if an optical switch is fully enclosed, a discontinuous mechanical interface still has the capacity to get crud caught in it.
The best way to home IMHO is to use and encoders index pulse. The board from
http://www.cncbuildingblocks.com/homeindex.html looks like a great solution for interfacing index pulses with Mach. It hides the home signal from Mach until it found the index pulse by generating it's own pulses. (Not sure I'd use this system with glass scales as I'm not certain how it would handle backlash).
I'm still not clear why Mach can't "see" an index pulse (it shouldn't be any harder than an encoder pulse).
Comments? Any more ideas?
-Ted