0% found this document useful (0 votes)
374 views7 pages

S-Curve Profile Without Motion Controller

This document discusses creating an S-curve motion profile without a motion controller. [1] It explains why S-curves are needed to reduce jerk compared to triangular profiles. [2] It provides the mathematical formula for an S-curve and shows a PLC program using that formula to generate position, velocity, and acceleration values over time. [3] The author was able to test this S-curve profile generation using a simple PLC, servo drive, and motor in their lab.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
374 views7 pages

S-Curve Profile Without Motion Controller

This document discusses creating an S-curve motion profile without a motion controller. [1] It explains why S-curves are needed to reduce jerk compared to triangular profiles. [2] It provides the mathematical formula for an S-curve and shows a PLC program using that formula to generate position, velocity, and acceleration values over time. [3] The author was able to test this S-curve profile generation using a simple PLC, servo drive, and motor in their lab.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

S-Curve Profile Without Motion Controller + Without using any function of Servo Drive+

used simple PLC to Create S Curve Motion Profile.


Introduction

We all know Triangle and trapezoidal motion profile .it is simple formula. But when we talk about S
Curve Motion profile then so much calculation come into Picture. We are going to discuss one by
one point

1. Why is needed
In triangular and Trapezoidal Motion profile starting Acceleration is high, jerk is present
And due to jerk material can not handle properly. So many industries require jerk free
Motion

2. How to create S curve profile

If we have motion controller, used polynomial CAM

For Example, below is my CAM Point

Velocity Profile

3. S curve Motion Profile without Motion Controller

To Create S Curve Motion Profile, I take simple PLC+ Servo Drive+ Servo Motor+ Communication
Cable… Now the question is, where do I get the equation of s curve profile? so I search in
Research Gate, and I Found one Document
https://www.researchgate.net/publication/349476146_S-
curve_motion_profiles_generator_for_hydraulic_actuators?enrichId=rgreq-
792c4d80718af94b95f0675498f77b65-
XXX&enrichSource=Y292ZXJQYWdlOzM0OTQ3NjE0NjtBUzo5OTM1MTc1OTc4ODQ0MTZAMTYx
Mzg4NDQ2Mjg5NQ%3D%3D&el=1_x_3&_esc=publicationCoverPdf

Below is Formula

Using this Formula, I wrote Program in PLC. Program Example

//////////////// s curve profile generator /////////////////////////////////

/// FOR T0 to T1, T0. Start Time=0,

t0: =0.

Line: =t-t0., Line1: =t-t1., Line2: =t-t2., Line3: =t-t3., Line4: =t-t4; Line5: =t-t5; Line6: =t-t6.

Square: =(t-t0) *(t-t0); Squre1: =(t-t1) *(t-t1); Suare2: =(t-t2) *(t-t2)., Suare4: =(t-t4) *(t-t4).

Suare5: =(t-t5) *(t-t5)., Suare6: =(t-t6) *(t-t6).

one-half: =0.5., onesix: =0.1666.

Qube: =(t-t0) *(t-t0) *(t-t0)., Qube3: =(t-t2) *(t-t2) *(t-t2)., Qube4: =(t-t4) *(t-t4) *(t-t4);

Qube6: =(t-t6) *(t-t6) *(t-t6).

IF T<=T1 THEN

Jmax: =200.

a1: =Jmax*(t-t0).

v1: =onehalf*Jmax*Square.

P1: =onesix*Jmax*Qube.

Vmax: =2*v1.

SCurve_Acc: =a1.

SCurve_Velo: =v1.

SCurve_Pos: =p1;
END_IF

IF T>T1 AND T<=T2 THEN

Jmax: =0.

A2: =A1.

V2: =V1+a1*Line1.

P2: =p1+v1*Line1+onehalf*a1*Squre1.

Vmax: =2*v2.

SCurve_Acc: =a2.

SCurve_Velo: =v2.

SCurve_Pos: =p2.

END_IF

IF T>T2 AND T<=T3 THEN

Jmax: =200.

A3: =A2-Jmax*Line2.

v3: =V2+A2*Line2+onehalf*-Jmax*Suare2.

P3: =P2+V2*Line2+onehalf*A2*Suare2+onesix*-Jmax*Qube3.

Vmax: =2*v3.

SCurve_Acc: =a3.

SCurve_Velo: =v3.

SCurve_Pos: =p3.

END_IF

IF T>T3 AND T<=T4 THEN

Jmax: =0.

A4: =0.

V4: =V3.

P4: =P3+V3*Line3.

Vmax: =2*v4.

SCurve_Acc: =a4.

SCurve_Velo: =v4.
SCurve_Pos: =p4.

END_IF

IF T>T4 AND T<=T5 THEN

Jmax: =200.

A5: =-Jmax*Line4.

V5: =V4+onehalf*-Jmax*Suare4.

P5: =P4+V4*Line4+onesix*-Jmax*Qube4.

Vmax: =2*v5.

SCurve_Acc: =a5.

SCurve_Velo: =v5.

SCurve_Pos: =p5.

END_IF

IF T> T5 AND T<=T6 THEN

AccTime: =T/2.

Jmax: =0.

A6: =A5.

Vmax: =2*v5.

Amax: =Vmax/AccTime.

V6: =V5-Amax*Line5.

P6: =P5+V5*Line5+onehalf*A5*Suare5.

SCurve_Acc: =a6.

SCurve_Velo: =v6.

SCurve_Pos: =p6.

END_IF

IF T>T6 AND T<=T7 THEN

AccTime: =T/2.

Jmax: =200.

A7: =A6+Jmax*Line6.
V7: =V6+A6*Line6+onehalf*Jmax*Suare6.

P7: =P6+V6*Line6+onehalf*A6*Suare6+onesix*Jmax*Qube6.

SCurve_Acc: =a7.

SCurve_Velo: =v7.

SCurve_Pos: =p7.

END_IF

IF SCurve_Acc=0 THEN

SCurve_Acc: =1.

END_IF

IF SCurve_Velo<0 THEN

SCurve_Velo: =-1*SCurve_Velo.

END_IF

--------------------------------------------------------------------------------------------------------------------------------
IF Master_Axis_Move_Abs_Auto THEN

FOR i: =1 TO 70 BY 1 DO

For_LoopCycle_Time_Counter: =For_LoopCycle_Time_Counter+0.003.

IF For_LoopCycle_Time_Counter>=70 THEN

For_LoopCycle_Time_Counter: =0.001.

//EXIT;

END_IF

END_FOR

END_IF

Used Move Absolute Block to Create S curve Profile


Online Program

Trace

You can edit your profile using Jmax.

IF SCurve_Acc=0 THEN SCurve_Acc: =1; END_IF

IF SCurve_Velo<0 THEN SCurve_Velo: =-1*SCurve_Velo; END_IF

Above two line I have added because in case of 0 acceleration, and in case of Negative Velocity

Move Absolute Block goes in Error Mode.

PLC Cycle time is 2 ms. Using Scan_Time_Bit_TON.Q bit I trigger move absolute Block every 2 ms.

4. Conclusions

We can create S curve Profile without motion controller and any additional function. I have trial
it without load in my lab. May be in load condition we have to modified program. May be in load
condition, we have to compromise in its speed and cycle time. but today a lot of research is
done in the automation industries. I am continuing do R&D in s curve and other motion profile.

5. References
1. Research gate 2. Schneider

You might also like