On Mon, Oct 26, 2015, at 11:43 AM, Sebastian Kuzminsky wrote: > On 10/26/15 8:50 AM, andy pugh wrote: > > Some systems have many indexes and a way to distinguish between them. > > Sometimes the indices are different distances apart (some linear scales) or > > there may be a secodary feedback system (robots with encoder + index and a > > potentiometer). > > > > I don't think that LinuxCNC can work with these systems at the moment as > > the home_offset is a static value read from the INI. > > > > I quick inspection seems to suggest that it would not be a huge change to > > make an extra pin. > > it requires an extra entry in hal_joint_t and extra code in control.c to > > read the value (and in inihome.cc to set the new pin too) > > > On my machine, each joint has a rotary encoder with one index per > revolution, and no way to distinguish between them. My homing > configuration uses the joint's home switch to distinguish between the > index pulses. > > I don't understand what problem you're solving, or what your solution > entails. Can you give more details? >
Imagine a lathe Z axis. The leadscrew has an encoder with an index pulse. It can be inconvenient to home to a fixed location. If you put the home switch at the headstock end you might run into the chuck if a larger-than- normal chuck is mounted. (Or the workpiece, if one is loaded). If you put the switch at the other end you might run into the tailstock depending on where it is located. Now imagine that you have some kind of coarse absolute position measurement. Perhaps linear potentiometer connected to the carriage. It can't measure position to 0.001", but it can do +/- 0.050". The screw pitch is 0.200". So the pot can tell you where you are to within one turn of the screw. In theory, it should be possible to home by moving the carriage approximately one turn of the screw in either direction, to find an index pulse. The pot tells you what turn you are on, the index tells you exactly where you are in that turn. But there needs to be a mechanism for LinuxCNC to use the info from the pot. A related topic is "how do you home when you have absolute encoders?". Some absolute encoders literally produce a wide parallel word that tells you where you are at all times. But others are basically incremental, with the ability to squirt out an absolute position on request (usually a serial interface). As with the pot example, there needs to be a way to get that absolute position into LinuxCNC. -- John Kasunich [email protected] ------------------------------------------------------------------------------ _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
