Difference between revisions of "MC-Basic:pls.PLSPropagationDelay"

From SoftMC-Wiki
Jump to: navigation, search
(the formula to calculate time was changed at ver 4.7.3)
m
 
(9 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
|SHORT FORM= none
 
|SHORT FORM= none
 
|SYNTAX= <pls>.PLSPropagationDelay = <double>
 
|SYNTAX= <pls>.PLSPropagationDelay = <double>
|AVAILABILITY= 4.7.1  
+
|AVAILABILITY= Version 4.7.1 and later.
 
|DESCRIPTION=
 
|DESCRIPTION=
  
It is new property  that will be added after 4.5.31 fw version. The delay will express the time between the moment of sending the position command to the drive until it is set as a command value of the drive's position loop. It will be expressed in milliseconds in double floating point format and will be assigned by the user. It's default value will be 8.0 means 2 motion-bus samples of 4ms. Typically used for the delay time calculation. In case '''''1000*PLSPropagationDelay/Ser.Cycletime > PositionErrorDelay''''' an error will be returned.
+
PLS propagation delay expresses the elapsed time from the moment the position command is sent to the drive until it is set as a command value in the drive’s position loop.<br>
 +
The value is expressed in milliseconds, in double floating point format. Internally, it is always rounded to the nearest microsecond (e.g., 2.5001 is considered 2.5). <br>
 +
A value of 8.0, for examples, means 2 motion bus samples of 4 milliseconds. <br>
  
{{Note/Danger | '''Usage of PLSPropagationDelay discards the old automatic use of PositionErrorDelay property. Therefore it is user's responsibility to adjust the PLSPropagationDelay value in newest FW versions. The value depands on the type of the motion bus and the devices used (drives, remote IOs, ...).'''}}
+
Typically used for the delay time calculation. In case '''''1000*PLSPropagationDelay/Ser.Cycletime > PositionErrorDelay''''' an error will be returned.
  
This means in case, PLS position falls between these two samples:'''t=0 p = p<sub>0 </sub>v = v<sub>0 </sub>a = a<sub>0 '''</sub>and:
+
{{Note/Danger | '''Using PLSPropagationDelay discards the old automatic use of PositionErrorDelay property. It is user's responsibility to adjust the PLSPropagationDelay value in the newest FW versions. The value depends on the type of the motion bus and the devices used (drives, remote IOs, ...).'''}}
 +
 
 +
This means that in case PLS position falls between these two samples:<br>
 +
 
 +
'''t=0 p = p<sub>0 </sub>v = v<sub>0 </sub>a = a<sub>0 '''</sub><br>and:
  
 
'''t = T p = p<sub>T </sub>v = v<sub>T </sub>a = a<sub>T '''</sub>
 
'''t = T p = p<sub>T </sub>v = v<sub>T </sub>a = a<sub>T '''</sub>
  
means '''p<sub>0</sub><nowiki> < PLSpos < p</nowiki><sub>T'''</sub>, the PLS output will be switched at (relevant to fw versions until 4.7.3):  
+
means '''p<sub>0</sub><nowiki> < PLSpos < p</nowiki><sub>T'''</sub>, the PLS output will be switched at:  
  
 
'''t = (PLSPropagationDelay - T)*1000 + Δt'''
 
'''t = (PLSPropagationDelay - T)*1000 + Δt'''
Line 23: Line 29:
 
where:
 
where:
  
'''p''' – positionv – velocity '''a''' – acceleration '''T''' – duration of one motion-bus in milliseconds.
+
::'''p''' – position
 +
::'''v''' – velocity
 +
::'''a''' – acceleration  
 +
::'''T''' – duration of one motion bus in milliseconds.
  
Δt ''the '''inter-sample delay''''', time when the position passes PLSpos value measured from t=0.
+
Δt - the inter-sample delay; that is, the time at which the motion crosses the PLS position, as measured from the beginning of the sample (t=0).
  
  
{{Note| As the PLSPropagationDelay values are given in milliseconds it will be a user responsibility to change it after each change of the sercos.cyceltime. Value will be in double-floating point format internally always rounded up to microsecond value '''(i.e. 2.5001 same as 2.5)'''.}}
+
{{Note| Since PLSPropagationDelay values are given in milliseconds, the user is responsible for changing it after any change in the '''''bus[*].cycletime'''''.}}
  
|TYPE= long
+
|TYPE= double
 
|RANGE= 0 - MAXD
 
|RANGE= 0 - MAXD
 
|UNITS= ms
 
|UNITS= ms
 
|DEFAULT= 0
 
|DEFAULT= 0
 
|SCOPE = Task, Terminal
 
|SCOPE = Task, Terminal
|LIMITATIONS=
+
|LIMITATIONS= Can be set only when PLS is disabled.
 
|EXAMPLE=
 
|EXAMPLE=
 
|SEE ALSO=  
 
|SEE ALSO=  
[[Axystems:PLS_timing_issues| PLS Timing Issues]] <br>
+
[[PLS Timing Issues| PLS Timing Issues]] <br>
{{Bugzilla|4117}}
+
<!-- {{Bugzilla|4117}} -->
 
}}
 
}}

Latest revision as of 14:30, 10 October 2018

PLS propagation delay expresses the elapsed time from the moment the position command is sent to the drive until it is set as a command value in the drive’s position loop.
The value is expressed in milliseconds, in double floating point format. Internally, it is always rounded to the nearest microsecond (e.g., 2.5001 is considered 2.5).
A value of 8.0, for examples, means 2 motion bus samples of 4 milliseconds.

Typically used for the delay time calculation. In case 1000*PLSPropagationDelay/Ser.Cycletime > PositionErrorDelay an error will be returned.

DANGER.svgDANGER
Using PLSPropagationDelay discards the old automatic use of PositionErrorDelay property. It is user's responsibility to adjust the PLSPropagationDelay value in the newest FW versions. The value depends on the type of the motion bus and the devices used (drives, remote IOs, ...).

This means that in case PLS position falls between these two samples:

t=0 p = p0 v = v0 a = a0
and:

t = T p = pT v = vT a = aT

means p0 < PLSpos < pT, the PLS output will be switched at:

t = (PLSPropagationDelay - T)*1000 + Δt

From fw version 4.7.3 and above , it will be switch at:

t = PLSPropagationDelay *1000 + Δt

where:

p – position
v – velocity
a – acceleration
T – duration of one motion bus in milliseconds.

Δt - the inter-sample delay; that is, the time at which the motion crosses the PLS position, as measured from the beginning of the sample (t=0).


NOTE-Info.svgNOTE
Since PLSPropagationDelay values are given in milliseconds, the user is responsible for changing it after any change in the bus[*].cycletime.

Short form

none

Syntax

<pls>.PLSPropagationDelay = <double>

Availability

Version 4.7.1 and later.

Type

double

Range

0 - MAXD

Units

ms

Default

0

Scope

Task, Terminal

Limitations

Can be set only when PLS is disabled.

See Also

PLS Timing Issues