Skip to main content
Submitted by CVV on Wed, 02/23/2011 - 16:13

I am using DMC 2080 with two Allen Bradley brushless AC servos. Servo A is 2kW and with fairly high friction. Servo B is 100W and has very little friction. The two motors are individually tuned and behave well under jog and position control when operated individually.
I couple these two motors with GM B,A with gear ratio 1:1 since both have same encoders. The idea is that movement (mechanical rotation) on the small motor drive the Big motor AND I need to sense the torque on the big motor on the small motor shaft:

Questions:
1. How does GM work? - does the encoder position on one motor become the command voltage on the other (and vice versa) - do you have an app note or block dia for GM use case.

2.Is this the proper way of achieving the solution - there seems to be some elasticity between the motors in this mode

3. Is there a way to tune the elasticity out of the system

4. When I use normal electronic gearing from small to big the system behave very clean and stable (but unfortunately no torque is available on the small motor shaft)

Any other advice will be most welcome.

Comments 7

Galil_AndyH on 02/23/2011 - 17:30

Gantry mode only makes it so that the gearing will not be stopped by the ST command or by limit switches. Only GR0 will stop the gearing in this mode.

The input to the GM command is either 1 or 0. Axis input (A,B etc) is invalid.

You can try gearing either against commanded position or actual position. Commanded position sends the same reference position to both axis. With actual position the slave is geared off of the actual movement from the master.

CVV on 02/24/2011 - 07:45

Andy - thanks - the actual code snippet
GAX=E;GAE=X;GR 1,0,0,0,1,0,0,0;SHX;SHE
There is no software position command given to the master(E) The master's shaft is mechanically moved and the slave is expected to follow. In this case the commanded position for X is the actual position of E and commanded position E is for actual poisition of X, right? Now if I move the master shaft mechanically to a new position, the slave follows However, if I release the master shaft, both units go back to some earlier position - this is after both reached a static [u]actual[/u] position. There is something amiss in the assumption above on actual and commanded positions - can you clarify please?

Galil_AndyH on 02/25/2011 - 07:59

that is because the master has been commanded to a final position. When you manually move the master from the commanded position you create position error that the controller will then try and correct. You have to command the new position to the master in order for it to stay at that position, or issue an SH command as you hold the position of the master manually.

CVV on 02/25/2011 - 11:03

Andy
From the manual:
[color:#6633FF]GA,n,n,n,n,n,n,n,n - The value of n is used to set the specified main encoder axis as the gearing master.[/color]My code GA E,,,,X,,,
means that the commanded position for E, is the actual position of X - not sure why you expect there to be a position error - There is no real master and slave here - the two axis are [u]intended to drive and follow [/u]each other.
Thanks
CVV

Galil_AndyH on 02/25/2011 - 11:21

"My code GA E,,,,X,,, means that the commanded position for E, is the actual position of X " - incorrect.

First, this is not really valid. But it technically means the X is slaved to the actual position of E and E is slaved to the actual position of X. Nowhere are you specifying the commanded position as the master.

If you want X to be the slave of the commanded position of E, use GA CE

CVV on 02/25/2011 - 13:49

"The commanded position for E, is the actual position of X" - incorrect
"E is slaved to the actual position of X" - correct.
This is the question from the beginning - How is this slaving achieved - in the classic PID control loop I am clearly (wrongly) thinking that the encoder position of the master is used as the commanded position of the slave.
How is the error calculated in the PID control loop for this "slaved" scenario?
Also please indicate why "GA E,,,,X,,," is invalid

Galil_AndyH on 02/25/2011 - 13:57

Each axis will have its own local PID loop based up the motor encoder for that axis.

When gearing off of actual position (GA E) the actual position of the master (E) is the commanded position of the slave (X). The slave (X) will still have closed loop control based upon it's encoder. Look at RP (commanded) and TP (actual) of both axes with standard GA E;GR1 configuration.

GA E,,,,X,,, sets the master for the E as the X axis and the master for the X as the E axis. It's one or the other, not both.

If this is still unclear e-mail support@galilmc.com