12-16-2019, 05:26 PM

I am using motor programed for a linear TM move profile that is synchronized to an external camera/trigger and I came across some timing issues that I don't quite understand. I'm stepping my stage by a fixed step size, dwell for some time, step, dwell,...

In tuning mode the motor would happily move the chosen step size in about 100ms (TA=50 and TS=0).

My motion program would start with a zero move for dwelling

X(absPos) TM(dwellTime) TA(0) TD(0) TS(0)

then do the following absolute linear moves in a loop where the absPos would increase by the fixe step size.

X(absPos) TM(100) TA(50) TD(50) TS(0)

this is then followed by a zero move for dwelling

X(absPos) TM(dwellTime) TA(0) TD(0) TS(0)

I'm also using a separate plc to measure the move times of the stage. This is defined as the motor not moving anymore and the position error smaller than a threshold.

if (Motor[motornum].DesVelZero == 1 && abs(Motor[motornum].PosError) <= feThresh )

These moves as monitored would take a total of about 190ms which is slower than expected. And here are the things I don't understand.

1. I noticed some stable offset in my timing which can only be caused by the first zero move dwell. For tests I replaced this by a dwell(dwellTime) and my offset would move. Does a zero move actually require time with TM=TA=TS=0?

2. Does a zero move set .DesVelZero to 0? This together with with the first point could explain why the move takes longer than expected.

3. The actual move time is also not entirely clear. At some point I found that .InvAmax and .InvDmax could limit my acceleration for a linear move and that helped some. From the step response tuning I know the stage can complete the move fast. If I use my linear move with TM=0

X(absPos) TM(0) TA(50) TD(50) TS(0)

then this would take about 160ms.

The step size for my moves is such that I should end up in a triangular profile (stepSize<Ta*maxVelocity) and from the documentation I would expect a total move time of Ta+Td=100ms. Why and how does TM in this case contribute to the total time and why is the triangular formula/assumption not valid?

4. Later I am planing on increasing the step size and should end up in a trapezoidal regime. For this timing/synchronization I was calculation a total move time of Ta/2 + Td/2 + TM where TM = stepSize/maxVelocity. Will I find timing differences with this as well?

Thanks for the help in advance

In tuning mode the motor would happily move the chosen step size in about 100ms (TA=50 and TS=0).

My motion program would start with a zero move for dwelling

X(absPos) TM(dwellTime) TA(0) TD(0) TS(0)

then do the following absolute linear moves in a loop where the absPos would increase by the fixe step size.

X(absPos) TM(100) TA(50) TD(50) TS(0)

this is then followed by a zero move for dwelling

X(absPos) TM(dwellTime) TA(0) TD(0) TS(0)

I'm also using a separate plc to measure the move times of the stage. This is defined as the motor not moving anymore and the position error smaller than a threshold.

if (Motor[motornum].DesVelZero == 1 && abs(Motor[motornum].PosError) <= feThresh )

These moves as monitored would take a total of about 190ms which is slower than expected. And here are the things I don't understand.

1. I noticed some stable offset in my timing which can only be caused by the first zero move dwell. For tests I replaced this by a dwell(dwellTime) and my offset would move. Does a zero move actually require time with TM=TA=TS=0?

2. Does a zero move set .DesVelZero to 0? This together with with the first point could explain why the move takes longer than expected.

3. The actual move time is also not entirely clear. At some point I found that .InvAmax and .InvDmax could limit my acceleration for a linear move and that helped some. From the step response tuning I know the stage can complete the move fast. If I use my linear move with TM=0

X(absPos) TM(0) TA(50) TD(50) TS(0)

then this would take about 160ms.

The step size for my moves is such that I should end up in a triangular profile (stepSize<Ta*maxVelocity) and from the documentation I would expect a total move time of Ta+Td=100ms. Why and how does TM in this case contribute to the total time and why is the triangular formula/assumption not valid?

4. Later I am planing on increasing the step size and should end up in a trapezoidal regime. For this timing/synchronization I was calculation a total move time of Ta/2 + Td/2 + TM where TM = stepSize/maxVelocity. Will I find timing differences with this as well?

Thanks for the help in advance