Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Gantry Following
#1
I'd like to use something like the gantry following (Motor[x].ServoCtrl=8) so that I can get 2 motors to use the same command signal. However, I want one motor's command to be a scaled version of the primary motor's command - in my case 70%.

I have a messy solution, but is there an easy way to achieve this? There doesn't seem to be a variable to scale the input to the secondary motor in a simple way.

Thanks
Steve
Reply
#2
This is very easy, once you know it is already built in.
Take a look at Motor[x].MasterCtrl; Motor[x].MasterPosSF; Motor[x].pMasterEnc.
No need for a messy solution, this is clean and straight forward.
Note that Motor[x].pMasterEnc does not have to actually point to an encoder, it can be pointed to a position command register so that you are following the command rather than motion +- following error.
PMATCH as described in .MasterCtrl
Reply
#3
Hi mbalentine, thanks for you comments. However, using the handwheel (master) input is not really what I want to do. I want to use the commanded position to another motor, not its actual position - which is subject to the accuracy and delays of the PID control. Also, I don't want the additional delay caused by processing a signal via the encoder conversion table.

I am still hoping that there's a simple answer to my initial question!
Reply
#4
Update:

Not referring to Handwheel following, and it should be possible to follow the command, not the feedback. However, it does look like a one servo lag is introduced.

I may have been in error in my previous post though. The manual states that Motor[x].pMasterEncoder must be set to an ECT element. This would by necessity introduce a one servo lag since the ECT will process before a new Motor[x].DesPos is calculated in the servo.(?)

Three questions for DT:
1) Is it correct that .DesPos is calculated within the motors' servo closure (after the ECT completes) ?
2) Is it correct that .pMasterEncoder must point to an ECT element?
3) If not constrained by first two questions, is there a way to follow without a lag being introduced ? -
4) Even if writing directly to the followers .MasterPos register from a synchronous PLC, me thinks this also is one servo behind.
Reply
#5
1. Yes
2. Yes
3. Not when using the ECT
4. This would not lag but this might be better suited to a user servo.
Reply
#6
One last question:
Is there a way to use data from the Look Ahead buffer to eliminate the servo lag when following?
Is this relevant to your comment regarding a user servo??
(that's one question, two clauses)
Reply
#7
I don’t see any help from lookahead as this is at “trajectory” priority, which is below servo.

As far as the original post, I don’t think there is just a “simple” solution.

User servo could calculate the 70% reduced value. This is after ECT.

If you increase the servo rate master position with the ECT will have less lag.

Also I believe you are correct in #4 above, that an RT PLC will introduce lag.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)