Hi all,

I am looking at doing a retrofit on an XY table with a tangential ultrasonic
knife. There are several issues to address, and my current thoughts on how
to address them are presented below. Any better ideas, easier ways of doing
it, something already implemented which I have missed, or means of making it
more generic are appreciated.

The table has conventional X and Y axes, Z is performed pneumatically with
just an up and down position. The A or rotational axis should orient the
knife tangent to the direction of motion defined by X and Y.

My thought is to use a custom kinematics module to handle the rotational
axis. There are a couple of issues:

1> It needs to look back far enough in time while the system is in motion to
get a position enough different from the current position to calculate a
valid slope. Update rates of 1ms or faster for the servo task may result in
only an encoder tic or two difference, which likely would be too inaccurate
to calculate a valid tangent. For my application an error of even +/- a
couple degrees is tolerable, but certainly the closer the better.

2> Handling rotation when going through Pi (180 degrees) in the positive
direction or -Pi (-180 degrees) in the negative direction. Doing a raw
arctan2 gives a result in the range of -Pi to Pi, which would result in a
full de-rotation when passing through those points. The axis has no
mechanical restriction as to the number of times it can rotate, so the
preferred method would be to add or subtract the difference in the angle
from the previous angle. IOW it would allow a spiral to be done without the
head ever de-rotating.

3> If the vector angle defined between two vectors exceeds a specified
angle, the head needs to lift, rotate to the new angle, and then drop as
there is only so far the head can turn within the material being cut.
Currently I don't see a way to do this automatically within the kinematics
and am considering using a preprocessor to insert the commands for these
head lifts. I could use M3 / M5 to both start and stop the ultrasonics and
perform the head lift.

4> The time to lift the head could be done with a dwell, but there are
sensors to indicate when the head has reached the up and down positions.
Based on air pressure and a couple of other things, there is some variation
in the time it takes to move from the down position to the up position and
vise-versa. Implementing some means of delaying the next motion until the
head state condition is satisfied would be preferable. 

I suppose I could implement a pseudo Z axis which returns the values of 1.0
when in the up position, -1.0 when in the down position and 0.0 for any
other state of the two sensors. I suspect faking out the following error on
this axis may still present a problem however.

Anyway, any input is appreciated.

Regards,
Eric



------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to