Coordinated Motion - 2 servos / 2 axes / 1 belt

phuz

Member
Join Date
Jun 2008
Location
Mohnton, PA
Posts
1,044
I have a unique project and will be commissioning it next week. It involves two servos that are both connected to the same belt in an H-type configuration. Looking down at the system, a one servo is on the left corner and one servo on the right corner. When both servos rotate clockwise, the gantry moves to the right. When both rotate counterclockwise, the gantry moves left. When left servo moves clockwise and right servo counterclockwise, gantry moves backward, and lastly left servo counterclockwise and right servo clockwise, gantry moves forward. I believe if you were just to move one servo, the gantry would move in a diagonal path.

All that being said, I am using MCLM instructions in my sequence to perform these motions. I've never commissioned a setup like this where both servos control both X/Y axes, so looking to see if that instruction is ideal for this type of setup.

Thanks in advance.

Untitled.jpg
 
Last edited:
A simple follower is what you need Servo 1 in the commnd Servo simply follows Servo 1
don't make more complecated then it needs to be
 
This is an H-bot, and not master-follower. It needs some simple kinematics to work.

Thanks. I didn't actually know what these were called. Am I on the right track with MCLMs?
I'll spend a little bit of time digging into that PDF and the kinematics tomorrow.
 
Thanks. I didn't actually know what these were called. Am I on the right track with MCLMs?
I'll spend a little bit of time digging into that PDF and the kinematics tomorrow.

Yes, you are on the right track.

The MCLM instructions requiere you to setup the coordinate system, before you can use it though.

The MCLM "Motion coordinated liniear motion" instruction will then move your tcp in liniear movements through the coordinate system.

You can then queue multiple MCLM instructions and "blend" them together, making the transition between 2 MCLM much smoother.

See page 40:
https://literature.rockwellautomation.com/idc/groups/literature/documents/um/motion-um002_-en-p.pdf
 
A simple follower is what you need Servo 1 in the commnd Servo simply follows Servo 1
don't make more complecated then it needs to be

What sparky said.
It's like this:
https://www.youtube.com/watch?v=ei4lPk_aM9Y&t=18s

Rockwell actually has some help info on this in the help files:

The configuration of the H-bot mechanical linkages enable it to move at a 45 Degrees angle to the axes when motor A or motor B is rotated.

For example, when:

  • Motor A (X1 axis) is rotated, the robot moves along a straight line at + 45 Degrees angle.
  • Motor B (X2 axis) is rotated, the machine moves at an angle of -45 Degrees .
  • Motors A and B are rotated clockwise at the same speed, then the machine moves along a horizontal line.
  • Motors A and B are rotated counterclockwise at the same speed then, the machine moves along a vertical line.

Any X,Y position can be reached by properly programming the two motors.

For example, a move of (X1 = 10, X2 = 0) causes the X1X2 axes to move to a position of (X1=7.0711, X2=7.0711). A move to (X1=10, X2 =10) causes the robot to move to a position of (X1=0, X2=14.142).

Utilizing the Logix Designer application Kinematics function configured with two Cartesian coordinate systems and a -45 Degrees rotation performs the function.

To configure two Cartesian coordinate systems:
Coordinate System 1 (CS1) and Coordinate System 2 (CS2) each contain two linear axes.

  1. Configure CS1 to contain the virtual X1 and X2 axes.
  2. Configure CS2 to contain the real X1 and X2 axes.
  3. Configure the Orientation vector of the MCT instruction as (0,0, -45), a negative degree rotation around the X3 axis.
  4. Configure the Translation vector as (0, 0, 0).
  5. Link the CS1 and CS2 by using a MCT instruction.
  6. Home the H-bot and then program all moves in CS1.
The machine moves the tool center point (TCP) to the programmed coordinates in CS2. The -45 Degrees rotation introduced by the Kinematics, counteracts the 45 Degrees rotation introduced by the mechanics of the machine and the H-bot moves to the CS1 configured coordinates. As a result, a programmed move of X1virt=10, X2virt=5 moves to a real mechanical position of X1=10, X2=5.
 
I found an old Delta Tau project I did with an H-Bot. I remember the kinematics were simple. The motor definitions within the coordinate system were like this:


#1->-7815.38X-7815.38Y
#2->-7815.38X+7815.38Y


X and Y feedback position had to be calculated, with Mx61 being motor feedback position:


Q10=-(((m161/3072)+(m261/3072))/2)/7815.38
Q20=-(((m161/3072)-(m261/3072))/2)/7815.38
 
I found an old Delta Tau project I did with an H-Bot. I remember the kinematics were simple. The motor definitions within the coordinate system were like this:


#1->-7815.38X-7815.38Y
#2->-7815.38X+7815.38Y


X and Y feedback position had to be calculated, with Mx61 being motor feedback position:


Q10=-(((m161/3072)+(m261/3072))/2)/7815.38
Q20=-(((m161/3072)-(m261/3072))/2)/7815.38

I'm wondering if by using the MCT instruction from the virtual axes with a -45 degree orientation angle, that the virtual feedback will be the ACTUAL positioning and no calculations will be necessary.
 
I'm wondering if by using the MCT instruction from the virtual axes with a -45 degree orientation angle, that the virtual feedback will be the ACTUAL positioning and no calculations will be necessary.

You are correct.

The whole idea with the coordinate systems and the MCT instruction is that the forward and inverse kinematic calculations are done internally by the PLC. All you have to worry about is X, Y & Z.
 
You are correct.

The whole idea with the coordinate systems and the MCT instruction is that the forward and inverse kinematic calculations are done internally by the PLC. All you have to worry about is X, Y & Z.

In this case, just X & Y. Z is an isolated axis and controlled by regular MAM instructions.
Thanks for your help!
 
Following the Rockwell guide for this (Configure a Cartesian H-bot robot),
I have set up the coordinate system 1 to contain the 2 virtual axes and coordinate system 2 to contain the two real axes. Both are set for cartesian. When I try to execute the MCT to link them together, I get ERR 61 / EXERR 3. The only notes on this are "Connection Conflict" and to see the extended error code, which doesn't exist in the notes.
 

Similar Topics

Hello Everyone 🍻 Im working with Coordinated Motion instructions, specifically MCLM instruction and I Would like to know if there is a...
Replies
0
Views
752
I have two 2198-P070 bus power supplies for that I’m using for four Kinetix drives, 2 drives per power supply, all controlled by one processor...
Replies
0
Views
1,423
Hi, I have a project to automate a molding machine. It meters out a 2-part resin into open face molding plates, closes the plates, vacuums them...
Replies
4
Views
3,234
Does anyone have a simple example using the MCLM instruction in Control Logix? This job basically requires moving a piece of equipment from point...
Replies
12
Views
5,818
Good morning, I am designing a robot similar to "Schubert F2". I have already solved the inverse kinematic, trajectory, speed and stuff, but...
Replies
4
Views
2,214
Back
Top Bottom