0

I have a servo motor, and this servo motor I would like to make it follow a "motion pattern" as closely as possible, and use the same value for acceleration and deceleration.

The attach picture illustrates the "motion pattern" (Y = velocity, X = Time)

motion pattern:

  1. accelerates 0m/s to 0.100m/s.
  2. constant velocity 0.100m/s for 4 sec.
  3. decelerates to negative ?m/s.
  4. accelerates to 0m/s, and motor position = 0.

How can i calculate the acceleration and deceleration?

What i have tried so far is:

Time = (total time - constant velocity time) 10 - 4 = 6sec. Distances = (total distances - constant velocity distances ) 1 - 0.4 = 0.6meter. acceleration = (2 * distances / (time^2) 2 * 0.6 / sqr(6) = 0.0333m/s.

But with this acceleration it over shoots in the negative direction by 500mm.

motion pattern of servo motor, value Y = (velocity, value X = Time )

Ersoy
  • 8,816
  • 6
  • 34
  • 48
Laurits S
  • 19
  • 5
  • 1
    I cannot get it. Why are you doing this on PLC side? I think on PLC side you only give a position you need to get and velocity, acceleration is a parameter on servo driver. Servo is for positioning. That is what it is made for. Main idea is to control exact position. – Sergey Romanov Jun 22 '20 at 03:44
  • controlling all: speed , time and distance is contradicting each-other you change one and it affects the others too so unless your speeds,acceleration and times are matching exactly the traveled distance you can not solve this. The best you can do is approaximate and or compute 2 and left the 3th what it will be ... as speeds and distance are probably defined then you just recompute the times so it matches ... – Spektre Mar 06 '22 at 18:26

1 Answers1

0

Take a look at the PLC Open motion function blocks, for example the MC_MoveRelative and the MC_MoveContinuesRelative block:

(Beckhoff documentation)

As Sergey already stated you can use those blocks to create a motion profile by entering all the parameters you need and integrating the blocks in a step chain.

Filippo Boido
  • 1,136
  • 7
  • 11