Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
make motion programs catch up
#1
Hello,

I'm trying to find a good way for a motion program to stay "in sync with time" instead of extending motion steps, if the desired motion is too fast for the machine....
without feeding the trajectory as PVT.

This means:
Users sets a trajectory like:
tm10.0 X1 Y1
tm10.0 X2 Y2
tm10.0 X3 Y3
tm10.0 X4 Y4
....

Now I have the problem that those steps are extended if they are outside of the limits. Especially when you try a "jump" you can watch the effect.

What I (or better my boss an the customer ;) ) want is, that pmac tries to follow this path, BUT "skip" points, if the time is over. This is mostly for the times when simulation gives trajectories which are not correct limited, or which are intended to

Essentially I looking for a good option to disable this "time extension". The PMAC should move as fast as the limits allow, but if the time for the next point comes i should no longer try to get to the "old point" but instead try to reach the next one.

On point to make this easier: there is no need to fear that some "pole in the way" may be hit, if the PMAC does not follow the exact path. It is more critical that the PMAC tries to reach the points at the wanted time or skips them if he is not able to.

On possible option as far as I see is:
- make a "virtual fast motor" which has nearly no constraints
- Feed the trajectory to this motor
- make the real motor follow this motor with MasterCtrl = 1 and with MasterMaxAcc and MasterMaxSpeed set to the desired limits.

That way the PMAC would make the virtual motor follow the wanted path, and the real motor would "follow it sluggish".

We talk about a coordinate system with 2 axis.

Now my questions:
Is this the only way? Or are there better ways?
What are the chances that this work "smooth"?
Any other tips how to make this work good?


What would really help would be a pointer in the right direction regarding "description of the virtual motor" and setup of the master following settings for the real motor.
I have the virtual motors from some other thread here, which work for themself.
I have also the following part working in general, but with the joystick for manual movement (and with MasterMaxAcc = 0 for no catchup)

Right now I can only try with "all virtual motors" until next week. Next week I want to implement it on the real machine and hope that it works like simulated, but I'm sceptical.

Hoping for some good tips,
thanks,
Georg
Reply
#2
You are correct that when motor velocity or acceleration limits are exceeded by a programmed move, PMAC responds by stretching out the move time, which means that a move sequence never catches up.

I think you have already found the best way of performing this limiting in a way that you can catch up later -- having the program command virtual motors with no effective limits, and having your real motors follow the virtual motors with MasterMaxSpeed and MasterMaxAccel limits, which do allow you to catch up after they perform limiting.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)