Re: probing



Dan Falck wrote:

> The August binary release seems to work well on my Mandrake 7.0
> machine.  I have the control connected to my Techno Isle router
> (getting over 100 ipm with the tiny steppers that came with it- will
> run it harder to find it's limits later) and plan on doing a bunch of
> carving and inlay work with it.  Now my question is -  has anyone
> tried the probing routine out?  Will, can you enlighten us on it's
> use?

Probing is in the latest EMC release. Will built an RPM out of this,
that includes the binaries. It's on the NIST FTP site:

	ftp://ftp.isd.mel.nist.gov/pub/emc/emc-0.9-05.i386.rpm

It's about 3.1 MB.

To install this, do the usual:

	rpm -i emc-0.9-05.i386.rpm

According to Will:

"The default directory /usr/local/nist for rpm to install files to can
be changed on the rpm command line with --prefix=otherdir

In addition to untarring the files the current install scripts and
attrib settings in the .rpm 

1. Add a symbolic link in /usr/lib/librcs.so to the librcs.so that was
installed.

2. Sets the setuid flag on the executables in the bin directory so they
can be run by non-root users."

PROBING DETAILS
---------------

1. Probing is implemented in emcmot.c during a portion of the control
cycle that looks at the digital input via the external interface call
"extDioRead". For the Servo To Go board, this is implemented in
emc/src/emcmot/extstgmot.c as reading the STG's digital inputs. For the
parallel port stepper, this is implemented in emc/src/emcmot/extsmmot.c
as reading the parallel port input bits.

2. The index and polarity of the touch trigger probe attached to the
digital input is set in the .ini file as:

[TRAJ]
PROBE_INDEX =		0
PROBE_POLARITY =	1

PROBE_POLARITY is used to get normally closed/normally open switches,
probes to work right. Experiment with this.

For the STG board, a PROBE_INDEX of 16 corresponds to the D0 input, P2
pin 29, used by the EMC as axis 4 home. For a three-axis machine, this
is not used, so you can use it.

For steppers (both steppermod.o and freqmod.o), the call to "extDioRead"
goes through emc/src/emcsim/extsimdio.c into emc/src/emcsim/simdio.c,
and does nothing. If you want to use probing with steppers (I think this
means you, Dan), you need to route the external interface function
dispatcher to something else, possibly an unused parallel port input
bit. This is one way to do it: edit emc/src/emcsim/extsimdio.c, and make
"extDioRead" look like this:

---snip---
/* could #include "parport.h", but we'll just declare it here for now */
extern int pptDioRead(int index, int *value);

int extDioRead(int index, int *value)
{
  /* divert call from simulated DIO to actual parallel port */
  return pptDioRead(index, value);
}
---snip---

If you compile, you'll get some errors for the real-time simulator
simmod.o, and some of the Linux simulators like emcmotsim and genhexsim.
steppermod.o and freqmod.o should compile. I'll fix this in a bit.

Now, the call to extDioRead in emcmot.c will get the input from the
parallel port. Since bits 0, 1, and 2 are used for home and limits, use
index 3 or 4, e.g.,

[TRAJ]
PROBE_INDEX = 3

and hook the probe up to the S6 input, pin 10. For PROBE_INDEX = 4, it's
S7, pin 11.

3. To test probing, use the G38.2 code, e.g.,

G38.2 X1.0

which will move to X1.0. If the probe trips on the way, the X value will
be in variable 5061, the Y value will be in variable 5062, and the Z
will be in 5063. You can reference these variables in the NC program
using the # syntax, e.g., #5061. You can copy these into other
variables, probe again, and move to the difference between these to
center holes, etc.

Or, if you're digitizing, you can use the kludge I put in as a
hot-comment. In your NC program, put the "comment" (PROBEOPEN probe.out)
before your probe sequence, then when you're finished, do (PROBECLOSE).
You have to use parentheses so it's a comment. We parse comments, and in
this case we dump the probe values to the file "probe.out" or whatever
you specify. It's like this:

(PROBEOPEN probe.out)
G38.2 X1.0
G38.2 Y1.0
(PROBECLOSE)

To test if it works, you can MDI in a G38.2 X10.0, trip the probe with
your hand, and motion should stop.

--Fred



Date Index | Thread Index | Back to archive index | Back to Mailing List Page

Problems or questions? Contact