Difference between revisions of "How to setup Position Error Delay"

From SoftMC-Wiki
Jump to: navigation, search
(How to SetUp Position Error Delay)
 
(11 intermediate revisions by 3 users not shown)
Line 5: Line 5:
  
  
== First Step ==
 
  
* set [[MC-Basic:axis.POSITIONERRORDELAY|PEDEL]] to 1 (minimum value)
 
* set high value in PeMax
 
* Run the axis back and forth and record PE and VCMD as :
 
  
[[Image:PE_VCMD.PNG |800px]]<br>
 
Command Velocity recordings
 
<br><br><br>
 
[[Image:PE_PEDEL1.PNG|800px]]<br>
 
Position Error recordings
 
  
 +
== First Step ==
  
Compute [[MC-Basic:axis.POSITIONERRORDELAY|PEDEL]] as PE/VCMD, in this case it will be:
+
*set [[MC-Basic:element.POSITIONERRORDELAY|PEDEL]] to 1 (minimum value)
 +
*set high value in PeMax
 +
*Run the axis back and forth and record PE and VCMD as&nbsp;:  
  
<pre>
+
[[File:PE VCMD.PNG|800px|PE VCMD.PNG]]<br/> Command Velocity recordings<br/> <br/> <br/> [[File:PE PEDEL1.PNG|800px|PE PEDEL1.PNG]]<br/> Position Error recordings
PE/VCMD = 0.94/57.74*1000 = 16.2 ms
+
 
 +
Compute [[MC-Basic:element.POSITIONERRORDELAY|PEDEL]] as PE/VCMD, in this case it will be:
 +
<pre>PE/VCMD = 0.94/57.74*1000 = 16.2 ms
 +
16.2[ms]/4[ms/cycle] = 4.05[cycles]
 
</pre>
 
</pre>
  
Taking into account the used value of [[MC-Basic:axis.POSITIONERRORDELAY|PEDEL]] (1) and the sampling time of 4ms we get the new [[MC-Basic:axis.POSITIONERRORDELAY|PEDEL]] value of 5, e.i. '''PEDEL = 1 + 4 = 5'''<br>
+
Taking into account the used value of [[MC-Basic:element.POSITIONERRORDELAY|PEDEL]] (1) and the sampling time of 4ms we get the new [[MC-Basic:element.POSITIONERRORDELAY|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.
+
Note: in case of a simulated axis the same procedure will work, typically results will show round cycle of 1. e.g.:
eg, <pre>
+
<pre>PE/VCMD = 0.4 / 100.0 * 1000.0 = 4 ms = 1 bus cycle</pre>
PE/VCMD = 0.4 / 100.0 * 1000.0 = 4 ms = 1 bus cycle
 
</pre>
 
}}
 
  
  
 
== Second Step ==
 
== Second Step ==
  
Change the [[MC-Basic:axis.POSITIONERRORDELAY|PEDEL]](5) to the integer value estimated before and run the test again:
+
Change the [[MC-Basic:element.POSITIONERRORDELAY|PEDEL]](5) to the integer value estimated before and run the test again:
  
[[Image:PE_PEDEL5.PNG|800px]]<br>
+
[[File:PE PEDEL5.PNG|800px|PE PEDEL5.PNG]]
  
 
again estimate the error:
 
again estimate the error:
 
+
<pre>PE/VCMD = 0.18/57.74*1000 = 0.317 ms
<pre>
 
PE/VCMD = 0.18/57.74*1000 = 0.317 ms
 
 
</pre>
 
</pre>
  
{{Note/Important|This means the non-integer communication delay of the drive is '''317 micro-seconds'''.}}
+
{{Note/Important|This means the non-integer communication delay of the drive is '''317 micro-seconds'''.}}<br/> <br/> &nbsp;
<br><br><br>
 
  
which is in units of one sample equal:
+
which is in units of one sample equal:
<pre>
+
<pre>0.317[ms]/4[ms/cycle] = 0.078[cycles]
317/4000 = 0.078
 
 
</pre>
 
</pre>
  
 +
==Final ==
 +
 +
So setting '''[[MC-Basic:element.POSITIONERRORDELAY|PEDEL]] to 5.078''' we get:<br><br>
  
So setting [[MC-Basic:axis.POSITIONERRORDELAY|PEDEL]] to 5.078 we get:<br>
 
 
[[Image:PE_PEDEL5078.PNG|800px]]<br>
 
[[Image:PE_PEDEL5078.PNG|800px]]<br>
 
  
 
== Example File ==
 
== Example File ==
Line 110: Line 101:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
 +
= Expected Values For Different Devices =
 +
{{Note| These values are approximations to the values expected to be obtained with the script provided, and the values may vary depending on the system settings used.}}
 +
 +
{|class="wikitable" style="text-align: center"
 +
|'''Drivel Model'''
 +
|'''PEDEL'''  <br><sub>[Motion-Bus cycle times]</sub>
 +
|'''Derive Version'''
 +
|-
 +
|CDHD CAN
 +
|5.23
 +
|1.41.17
 +
|-
 +
|CDHD ETH
 +
|4.11
 +
|1.41.17
 +
|-
 +
|CDHD2 ETH
 +
|4.404
 +
|2.15.3a9.2.22
 +
|-
 +
|DDHD CAN
 +
|5.06
 +
|1.41.16L0.0.58BOCHU
 +
|-
 +
|stepIM CAN
 +
|4.37
 +
|23: 0.0.3.38
 +
|}

Latest revision as of 10:33, 26 January 2024

How to SetUp Position Error Delay

WARNING.svgWARNING
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 :

PE VCMD.PNG
Command Velocity recordings


PE PEDEL1.PNG
Position Error recordings

Compute PEDEL as PE/VCMD, in this case it will be:

PE/VCMD = 0.94/57.74*1000 = 16.2 ms
16.2[ms]/4[ms/cycle] = 4.05[cycles]

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. e.g.:

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:

PE PEDEL5.PNG

again estimate the error:

PE/VCMD = 0.18/57.74*1000 = 0.317 ms
IMPORTANT.svgIMPORTANT
This means the non-integer communication delay of the drive is 317 micro-seconds.


 

which is in units of one sample equal:

0.317[ms]/4[ms/cycle] = 0.078[cycles]

Final

So setting PEDEL to 5.078 we get:

PE PEDEL5078.PNG

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


Expected Values For Different Devices

NOTE-Info.svgNOTE
These values are approximations to the values expected to be obtained with the script provided, and the values may vary depending on the system settings used.
Drivel Model PEDEL
[Motion-Bus cycle times]
Derive Version
CDHD CAN 5.23 1.41.17
CDHD ETH 4.11 1.41.17
CDHD2 ETH 4.404 2.15.3a9.2.22
DDHD CAN 5.06 1.41.16L0.0.58BOCHU
stepIM CAN 4.37 23: 0.0.3.38