Jump to content
OMRON Forums

Recommended Posts

Posted

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

  • Replies 6
  • Created
  • Last Reply

Top Posters In This Topic

Posted

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

Posted

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!

Posted

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.

Posted

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)

Posted

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.

Guest
This topic is now closed to further replies.

×
×
  • Create New...