Hi Community,
I would like to get some assistance regarding synchronized motion for my application, I will write my explanation in a best possible way.
Hardware
Below are the parts I am using in my system/application
- X20CP0484 x1
- X20SM1426 x2
- 80MPD1.300S014-01 x2
Objective(s)
Using the above hardware list, I am trying to achieve the motion like in the animation(SyncMotionAnimation.mp4), video in the google drive. Unfortunately, in actual system it is not moving as expected. The same formula used in the animation video is being used in the Automation Studio(AS) program.
Formula
Figure 1 Formula
Concept
Rotary axis rotates periodically 0° - 360°
Linear axis moves forth and back based on the size of the square and the angle of the rotary axis.
These values are being used in the formula to get the target position for the linear axis
Referring to the image above, the square has length of 100mm at all sides and current angle of the rotary axis is 0°, the target distance of the linear axis will be 50.0mm.
Below is the table(Table 1) that theoretically shows the relation between the rotary axis(Step angle of 5° until 45°) and linear axis distance when square length is 100mm.
| Angle(°) | Distance(mm) |
|---|---|
| 0 | 50.0 |
| 5 | 50.2 |
| 10 | 50.8 |
| 15 | 51.8 |
| 20 | 53.2 |
| 25 | 55.2 |
| 30 | 57.7 |
| 35 | 61.0 |
| 40 | 65.3 |
| 45 | 70.7 |
Table 1 Angle vs Distance
Mechanical properties
Rotary axis : Stepper motor’s shaft has a 13T gear that drives 84T gear(Mounted to a rotary table)
Linear axis : Stepper motor’s shaft is mounted to a gear box with reduction of 10 and the final drive is belt. One full rotation of the stepper motor’s shaft is equivalent to 12mm in linear movement.
Below are screenshots of the rotary and linear axes config and hardware view
Configuration view of rotary axis
Figure 2 Rotary axis config view
Hardware view of rotary axis
Figure 3 Rotary axis hardware view
Configuration view of linear axis
Figure 4 Linear axis config view
Hardware view of linear axis
Figure 5 Linear axis hardware view
Software architecture
I am using MpAxisBasic and MpAxisParType function blocks to control and set parameters of each axis.
To achieve the motion as described, two MC_BR_MoveCyclicPosition function block is used
In total there will be three axes in this application, 1 virtual axis and 2 actual axes.
Virtual axis as a master and actual axis 1 and 2 as a follower.
Virtual axis and actual axis 1 are 1:1 ratio, meaning actual position of virtual axis is used as cyclic position for actual axis 1
For actual axis 2, the cyclic position is obtained from the result of formula shown in Figure 1.
Virtual actual position à Formulaà Actual axis 2 cyclic position(MC_BR_MoveCyclicPosition)
In general, the movement is working, where when the rotary table starts to rotate, the linear axis does move back on forth. But the accuracy is way too off, I have attached a video(SyncMotionActual.mp4) of the actual application in the google drive.
Besides that I have also attached the AS program if the application for your reference in the same google drive.
Troubleshoot done
Using MappCockpit, I have tested the movement of both axes by moving it individually to make sure the movement of the mechanics is as per set in software.
Meaning, when I command the rotary axis to move absolute 45°, it moves 45° in actual.
Similarly, when I command linear axis to move 10mm, it moves 10mm in actual.
Additional information
AS version 4.12.2.93
Figure 6 Runtime versions
I would like to get your assistance to meet my objectives for this application.
Please let me know if you can access the google drive and/or if you need further information.
Appreciate your time and help!
Best regards





