Difference between revisions of "How to setup Position Error Delay"
(added referance for simulated axes pedel) |
(→How to SetUp Position Error Delay) |
||
Line 1: | Line 1: | ||
= How to SetUp Position Error Delay = | = How to SetUp Position Error Delay = | ||
+ | |||
+ | |||
+ | {{Note/Warning| If working with CDHD Servotronix family of drives over EtherCAT pay attention that in order to get position proper error values it is extremely important to '''switch off''' the CDHD's smoothing feature by setting MOVESMOOTHMODE to 0. The CDHD's position smoothing is obsolete in applications with SoftMC as the SoftMC already smoothenizes its output (PCMD values).}} | ||
+ | |||
== First Step == | == First Step == |
Revision as of 09:41, 1 June 2015
How to SetUp Position Error Delay
WARNING | |
If working with CDHD Servotronix family of drives over EtherCAT pay attention that in order to get position proper error values it is extremely important to switch off the CDHD's smoothing feature by setting MOVESMOOTHMODE to 0. The CDHD's position smoothing is obsolete in applications with SoftMC as the SoftMC already smoothenizes its output (PCMD values). |
First Step
- set PEDEL to 1 (minimum value)
- set high value in PeMax
- Run the axis back and forth and record PE and VCMD as :
Command Velocity recordings
Position Error recordings
Compute PEDEL as PE/VCMD, in this case it will be:
PE/VCMD = 0.94/57.74*1000 = 16.2 ms
Taking into account the used value of PEDEL (1) and the sampling time of 4ms we get the new PEDEL value of 5, e.i. PEDEL = 1 + 4 = 5
NOTE | |
in case of a simulated axis the same procedure will work, typically results will show round cycle of 1.
eg, PE/VCMD = 0.4 / 100.0 * 1000.0 = 4 ms = 1 bus cycle |
Second Step
Change the PEDEL(5) to the integer value estimated before and run the test again:
again estimate the error:
PE/VCMD = 0.18/57.74*1000 = 0.317 ms
IMPORTANT | |
This means the non-integer communication delay of the drive is 317 micro-seconds. |
which is in units of one sample equal:
317/4000 = 0.078
So setting PEDEL to 5.078 we get:
Example File
PDLtune.prg
'
common shared Ax as generic Axis
program
dim i as long
Ax = A1
with Ax
Attach
Pedel = 1 ' first run
Pedel = 1 + round(1.68 / 100.0 * 1000.0 / (bus[0].cycleTime/1000)) ' 2nd run. extracted from recordings
Pedel = Pedel + 0.075 / 100.0 * 1000.0 / (bus[0].cycleTime/1000) ' 3rd run. extracted from recordings
PeMax = 10
En=1
Sleep 100
Move 0 Vcruise=100 Abs=TRUE
call waitMotion
Record ax_PE.rec 100000 Gap=1 RecData = Ax.Pe, Ax.Vcmd
RecordOn
Sleep 100
for i = 1 to 3
Move 100 Vcruise=100 Abs=TRUE
call waitMotion
Sleep 100
Move 0 Vcruise=100 Abs=TRUE
call waitMotion
Sleep 100
next
RecordClose
En=FALSE
Sleep 100
PeMax = 0.1
Detach
end with
terminate program
sub waitMotion
while Ax.IsMoving
Sleep 1
end while
end sub