<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://softmc.servotronix.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hallel</id>
		<title>SoftMC-Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://softmc.servotronix.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hallel"/>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/wiki/Special:Contributions/Hallel"/>
		<updated>2026-05-20T20:56:35Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134089</id>
		<title>MC-Basic:JUMP JUMP3 JUMP3CP</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134089"/>
				<updated>2026-04-29T13:22:58Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Scope: Task only&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MC-Basic&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
JUMP ''&amp;lt;target point&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {LimZ=&amp;lt;value&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3 ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE/MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3CP ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
The '''JUMPX''' motion commands are '''JUMP''', '''JUMP3''', and '''JUMP3CP'''. A JUMPX motion command is comprised of three motion segments, blended using [[MC-Basic:element.BLENDINGMETHOD|SP blending]].&lt;br /&gt;
&lt;br /&gt;
Starting from a StartPoint, the three points that define the motion are:&lt;br /&gt;
* AscendingPoint&lt;br /&gt;
* DescendingPoint&lt;br /&gt;
* TargetPoint&lt;br /&gt;
See the picture below with these three points marked on it.&lt;br /&gt;
&lt;br /&gt;
The three JUMPX command types differ in the interpolation types of the three segments:&lt;br /&gt;
* JUMP – MOVE, MOVE, MOVE&lt;br /&gt;
* JUMP3 – MOVES, MOVE, MOVES&lt;br /&gt;
* JUMP3CP – MOVES, MOVES, MOVES&lt;br /&gt;
&lt;br /&gt;
The parts of segments 1 and 3 that are not blended with segment 2 are controlled by the properties ''Arch[x][1]'' and ''Arch[x][2]'', where ''x = 1..7''. The pair used in the motion is selected by ''ArchNo = x''.&lt;br /&gt;
&lt;br /&gt;
The default values are:&lt;br /&gt;
* ''Arch[x][1] = 20 + 10*x''&lt;br /&gt;
* ''Arch[x][2] = 20 + 10*x''&lt;br /&gt;
for ''x = 1..7''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP_point_defenitions.png|thumb|500px|JUMPX command point definition]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General JUMPX Rules==&lt;br /&gt;
* If ''ArchNo'' is not specified in the JUMPX command, there is no blending in the JUMPX motion.&lt;br /&gt;
* If ''(Arch[x][y] - Ly) &amp;gt; 0'' for x = ArchNo, y = 1,3, there is no blending for the relevant segment y.&lt;br /&gt;
* The blending method used for JUMPX segments is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If [[MC-Basic:element.BLENDINGPERCENTAGE|BlendingPercentage]] &amp;lt;&amp;gt; -1, it is used. Otherwise, [[MC-Basic:element.BLENDINGFACTOR|BlendingFactor]] is used to calculate:&lt;br /&gt;
''BlendingPercentage = 100 - BlendingFactor''&lt;br /&gt;
* The actual ''BlendingPercentage'' used is:&lt;br /&gt;
''min(100*(1-Arch[x][y]/Ly), BlendingPercentage)''&lt;br /&gt;
* If [[MC-Basic:element.PROFILERTYPE|ProfilerType]] is trapez acceleration, safe SP is used, so the Arch values cannot be guaranteed.&lt;br /&gt;
* The robot's configuration flags at the AscendingPoint are the same as those of the StartPoint.&lt;br /&gt;
* The robot's configuration flags at the DescendingPoint are the same as those of the TargetPoint.&lt;br /&gt;
&lt;br /&gt;
==Specific JUMPX Rules==&lt;br /&gt;
=== JUMP ===&lt;br /&gt;
* In JUMP, the property [[MC-Basic:robot.LimZ|LimZ]] is used instead of explicit ''AscendingPoint'' and ''DescendingPoint'' properties.&lt;br /&gt;
* The AscendingPoint is exactly above StartPoint, and the DescendingPoint is exactly above TargetPoint, both at height ''LimZ''.&lt;br /&gt;
* If ''LimZ'' is not specified in the JUMP command, the modal ''LimZ'' value is used.&lt;br /&gt;
* The default value is ''LimZ = 0''.&lt;br /&gt;
* The JUMP command can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* JUMP is best suited for robots that have a linear joint in the Z direction, such as [[SCARA robot|SCARA]] and [[TARM robot|TARM]]. Otherwise, the first and third arch segments are not straight-line segments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP.png|thumb|500px|JUMP motion, side view. The horizontal motion is not necessarily a linear segment]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JUMP3 and JUMP3CP ===&lt;br /&gt;
* In JUMP3 and JUMP3CP, segments 1 and 3 are straight-line segments.&lt;br /&gt;
* In JUMP3, segment 2 is a joint interpolation motion (MOVE), and its motion is specified by MOVE properties such as [[MC-Basic:element.VELOCITYSCALE|VelocityScale]].&lt;br /&gt;
* In JUMP3CP, segment 2 is a Cartesian straight-line motion (MOVES), and its motion is specified by MOVES properties such as [[MC-Basic:robot.VELOCITYTRANS|VelocityTrans]].&lt;br /&gt;
* In contrast to JUMP, in JUMP3 and JUMP3CP the AscendingPoint and DescendingPoint can be in any direction, such as in the XY plane.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP3CP.png|thumb|500px|JUMP3CP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Motion command&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task only&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* JUMP can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* The blending method is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If ''ProfilerType'' is trapez acceleration, safe SP is used, so Arch values cannot be guaranteed.&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
JUMP locTargetPoint&lt;br /&gt;
&lt;br /&gt;
JUMP jntTargetPoint ArchNo=2 LimZ=0 BlendingPercentage=50 Vscale=80 Ascale=30&lt;br /&gt;
&lt;br /&gt;
JUMP3 AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=1000 Ascale=20&lt;br /&gt;
&lt;br /&gt;
JUMP3CP AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=100 Ascale=20&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:MOVE|MOVE]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[Robot Kinematics Models]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ARCHNO&amp;diff=134088</id>
		<title>MC-Basic:robot.ARCHNO</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ARCHNO&amp;diff=134088"/>
				<updated>2026-04-29T13:22:11Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.ArchNo}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
:ArchNo is used when executing [[MC-Basic:JUMP|JUMP]], [[MC-Basic:JUMP3|JUMP3]] and [[MC-Basic:JUMP3CP|JUMP3CP]] motion cammands. &lt;br /&gt;
:It specifies which [[MC-Basic:robot.ARCH|Arch]] pair will be used in the JUMP command.&lt;br /&gt;
:If ArchNo is not specified, there shall be no blending between the three segments of the the JUMP command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP3CP.png|thumb|350px|JUMP3CP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
1 to 7&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task only&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Nodal only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
SCARA.Arch[1][1] = 10&amp;lt;br&amp;gt;&lt;br /&gt;
SCARA.Arch[1][2] = 15&amp;lt;br&amp;gt;&lt;br /&gt;
JUMP &amp;lt;target point&amp;gt; ArchNo = 1&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:JUMP|JUMP]]&lt;br /&gt;
* [[MC-Basic:robot.Arch|Arch]]&lt;br /&gt;
* [[MC-Basic:robot.LimZ|LimZ]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ARCH&amp;diff=134087</id>
		<title>MC-Basic:robot.ARCH</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ARCH&amp;diff=134087"/>
				<updated>2026-04-29T12:31:20Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.Arch}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][1] = &amp;lt;value1&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][2] = &amp;lt;value2&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][1]&amp;lt;br&amp;gt;&lt;br /&gt;
?&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][2]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
:Arch is used for the [[MC-Basic:JUMP|JUMP]], [[MC-Basic:JUMP3|JUMP3]] and [[MC-Basic:JUMP3CP|JUMP3CP]] motion cammands. &lt;br /&gt;
:Arch[&amp;lt;index&amp;gt;][1] specifies the length that will not be blended along the first JUMP segment, whereas Arch[&amp;lt;index&amp;gt;][2] specifies the length that will not be blended along the third JUMP segment.&lt;br /&gt;
&lt;br /&gt;
:There are 7 available Arch pairs:&lt;br /&gt;
:Arch[1][1], Arch[1][2]&lt;br /&gt;
:...&lt;br /&gt;
:Arch[7][1], Arch[7][2]&lt;br /&gt;
&lt;br /&gt;
:The default values are:&lt;br /&gt;
:Arch[x][1] = 20 + 10*x&lt;br /&gt;
:Arch[x][2] = 20 + 10*x&lt;br /&gt;
:for x = 1..7.&lt;br /&gt;
&lt;br /&gt;
:The nodal parameter ''ArchNo'' specifies which Arch pair will be used in the JUMP command. If ArchNo is not specified, there shall be no blending between the three segments of the the JUMP command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP3CP.png|thumb|500px|JUMP3CP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Position&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
0 to Maxdouble&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Position units&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Modal only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
SCARA.Arch[1][1] = 10&amp;lt;br&amp;gt;&lt;br /&gt;
SCARA.Arch[1][2] = 15&amp;lt;br&amp;gt;&lt;br /&gt;
?SCARA.Arch[2][1]&amp;lt;br&amp;gt;&lt;br /&gt;
JUMP &amp;lt;target point&amp;gt; ArchNo = 1&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:JUMP|JUMP]]&lt;br /&gt;
* [[MC-Basic:robot.LimZ|LimZ]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ARCH&amp;diff=134086</id>
		<title>MC-Basic:robot.ARCH</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ARCH&amp;diff=134086"/>
				<updated>2026-04-29T11:55:23Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Added ArchNo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.Arch}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][1] = &amp;lt;value1&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][2] = &amp;lt;value2&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][1]&amp;lt;br&amp;gt;&lt;br /&gt;
?&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][2]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
:Arch is used for the [[MC-Basic:JUMP|JUMP]], [[MC-Basic:JUMP3|JUMP3]] and [[MC-Basic:JUMP3CP|JUMP3CP]] motion cammands. &lt;br /&gt;
:Arch[&amp;lt;index&amp;gt;][1] specifies the length that will not be blended along the first JUMP segment, whereas Arch[&amp;lt;index&amp;gt;][2] specifies the length that will not be blended along the third JUMP segment.&lt;br /&gt;
&lt;br /&gt;
:There are 7 available Arch pairs:&lt;br /&gt;
:Arch[1][1], Arch[1][2]&lt;br /&gt;
:...&lt;br /&gt;
:Arch[7][1], Arch[7][2]&lt;br /&gt;
&lt;br /&gt;
:The default values are:&lt;br /&gt;
:Arch[x][1] = 20 + 10*x&lt;br /&gt;
:Arch[x][2] = 20 + 10*x&lt;br /&gt;
:for x = 1..7.&lt;br /&gt;
&lt;br /&gt;
:The nodal parameter ''ArchNo'' specifies which Arch pair will be used in the JUMP command. If ArchNo is not specified, there shall be no blending between the three segments of the the JUMP command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP3CP.png|thumb|500px|JUMP3CP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Position&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
0 to Maxdouble&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Position units&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Modal only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
SCARA.Arch[1][1] = 10&amp;lt;br&amp;gt;&lt;br /&gt;
SCARA.Arch[1][2] = 15&amp;lt;br&amp;gt;&lt;br /&gt;
?SCARA.Arch[2][1]&amp;lt;br&amp;gt;&lt;br /&gt;
JUMP &amp;lt;target point&amp;gt; ArchNo = &amp;lt;x&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:JUMP|JUMP]]&lt;br /&gt;
* [[MC-Basic:robot.LimZ|LimZ]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.LIMZ&amp;diff=134084</id>
		<title>MC-Basic:robot.LIMZ</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.LIMZ&amp;diff=134084"/>
				<updated>2026-04-29T11:49:08Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Hallel moved page MC-Basic:robot.LimZ to MC-Basic:robot.LIMZ: Unity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.LIMZ}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.LimZ = &amp;lt;value&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?&amp;lt;''robot_name''&amp;gt;.LimZ&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
LimZ is used only for the [[MC-Basic:JUMP|JUMP]] motion cammand. It specifies the absolute height that the JUMP motion will reach.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP_point_defenitions.png|thumb|350px|Points along a JUMP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP.png|thumb|350px|LimZ specifies the height that the JUMP motion will reach]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Position&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
Mindouble to Maxdouble&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Position units&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Modal and nodal&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
SCARA.LimZ = -20&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?SCARA.LimZ&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JUMP &amp;lt;target point&amp;gt; LimZ = &amp;lt;value&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:JUMP|JUMP]]&lt;br /&gt;
* [[MC-Basic:robot.ARCH|ARCH]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.LimZ&amp;diff=134085</id>
		<title>MC-Basic:robot.LimZ</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.LimZ&amp;diff=134085"/>
				<updated>2026-04-29T11:49:08Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Hallel moved page MC-Basic:robot.LimZ to MC-Basic:robot.LIMZ: Unity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[MC-Basic:robot.LIMZ]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.LIMZ&amp;diff=134083</id>
		<title>MC-Basic:robot.LIMZ</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.LIMZ&amp;diff=134083"/>
				<updated>2026-04-29T11:47:33Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Fixed default&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.LIMZ}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.LimZ = &amp;lt;value&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?&amp;lt;''robot_name''&amp;gt;.LimZ&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
LimZ is used only for the [[MC-Basic:JUMP|JUMP]] motion cammand. It specifies the absolute height that the JUMP motion will reach.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP_point_defenitions.png|thumb|350px|Points along a JUMP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP.png|thumb|350px|LimZ specifies the height that the JUMP motion will reach]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Position&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
Mindouble to Maxdouble&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Position units&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Modal and nodal&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
SCARA.LimZ = -20&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?SCARA.LimZ&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JUMP &amp;lt;target point&amp;gt; LimZ = &amp;lt;value&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:JUMP|JUMP]]&lt;br /&gt;
* [[MC-Basic:robot.ARCH|ARCH]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.LIMZ&amp;diff=134082</id>
		<title>MC-Basic:robot.LIMZ</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.LIMZ&amp;diff=134082"/>
				<updated>2026-04-29T11:46:35Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Added pictures&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.LIMZ}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.LimZ = &amp;lt;value&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?&amp;lt;''robot_name''&amp;gt;.LimZ&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
LimZ is used only for the [[MC-Basic:JUMP|JUMP]] motion cammand. It specifies the absolute height that the JUMP motion will reach.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP_point_defenitions.png|thumb|350px|Points along a JUMP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP.png|thumb|350px|LimZ specifies the height that the JUMP motion will reach]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Position&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
Mindouble to Maxdouble&lt;br /&gt;
&lt;br /&gt;
Default: 0&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Position units&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Modal and nodal&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
SCARA.LimZ = -20&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?SCARA.LimZ&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JUMP &amp;lt;target point&amp;gt; LimZ = &amp;lt;value&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:JUMP|JUMP]]&lt;br /&gt;
* [[MC-Basic:robot.ARCH|ARCH]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ARCH&amp;diff=134081</id>
		<title>MC-Basic:robot.ARCH</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ARCH&amp;diff=134081"/>
				<updated>2026-04-29T11:39:45Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Added picture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.Arch}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][1] = &amp;lt;value1&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][2] = &amp;lt;value2&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][1]&lt;br /&gt;
?&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][2]&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
:Arch is used for the [[MC-Basic:JUMP|JUMP]], [[MC-Basic:JUMP3|JUMP3]] and [[MC-Basic:JUMP3CP|JUMP3CP]] motion cammands. &lt;br /&gt;
:Arch[&amp;lt;index&amp;gt;][1] specifies the length that will not be blended along the first JUMP segment, whereas Arch[&amp;lt;index&amp;gt;][2] specifies the length that will not be blended along the third JUMP segment.&lt;br /&gt;
&lt;br /&gt;
:There are 7 available Arch pairs:&lt;br /&gt;
:Arch[1][1], Arch[1][2]&lt;br /&gt;
:...&lt;br /&gt;
:Arch[7][1], Arch[7][2]&lt;br /&gt;
&lt;br /&gt;
:The default values are:&lt;br /&gt;
:Arch[x][1] = 20 + 10*x&lt;br /&gt;
:Arch[x][2] = 20 + 10*x&lt;br /&gt;
:for x = 1..7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP3CP.png|thumb|500px|JUMP3CP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Position&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
0 to Maxdouble&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Position units&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Modal only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
SCARA.Arch[1][1] = 10&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SCARA.Arch[1][2] = 15&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?SCARA.Arch[2][1]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:JUMP|JUMP]]&lt;br /&gt;
* [[MC-Basic:robot.LimZ|LimZ]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ARCH&amp;diff=134080</id>
		<title>MC-Basic:robot.ARCH</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ARCH&amp;diff=134080"/>
				<updated>2026-04-29T11:37:42Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.Arch}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][1] = &amp;lt;value1&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][2] = &amp;lt;value2&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][1]&lt;br /&gt;
?&amp;lt;''robot_name''&amp;gt;.Arch[&amp;lt;index&amp;gt;][2]&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
:Arch is used for the [[MC-Basic:JUMP|JUMP]], [[MC-Basic:JUMP3|JUMP3]] and [[MC-Basic:JUMP3CP|JUMP3CP]] motion cammands. &lt;br /&gt;
:Arch[&amp;lt;index&amp;gt;][1] specifies the length that will not be blended along the first JUMP segment, whereas Arch[&amp;lt;index&amp;gt;][2] specifies the length that will not be blended along the third JUMP segment.&lt;br /&gt;
&lt;br /&gt;
:There are 7 available Arch pairs:&lt;br /&gt;
:Arch[1][1], Arch[1][2]&lt;br /&gt;
:...&lt;br /&gt;
:Arch[7][1], Arch[7][2]&lt;br /&gt;
&lt;br /&gt;
:The default values are:&lt;br /&gt;
:Arch[x][1] = 20 + 10*x&lt;br /&gt;
:Arch[x][2] = 20 + 10*x&lt;br /&gt;
:for x = 1..7.&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Position&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
0 to Maxdouble&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Position units&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Modal only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
SCARA.Arch[1][1] = 10&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SCARA.Arch[1][2] = 15&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?SCARA.Arch[2][1]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:JUMP|JUMP]]&lt;br /&gt;
* [[MC-Basic:robot.LimZ|LimZ]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134079</id>
		<title>MC-Basic:JUMP JUMP3 JUMP3CP</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134079"/>
				<updated>2026-04-29T11:21:03Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MC-Basic&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
JUMP ''&amp;lt;target point&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {LimZ=&amp;lt;value&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3 ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE/MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3CP ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
The '''JUMPX''' motion commands are '''JUMP''', '''JUMP3''', and '''JUMP3CP'''. A JUMPX motion command is comprised of three motion segments, blended using [[MC-Basic:element.BLENDINGMETHOD|SP blending]].&lt;br /&gt;
&lt;br /&gt;
Starting from a StartPoint, the three points that define the motion are:&lt;br /&gt;
* AscendingPoint&lt;br /&gt;
* DescendingPoint&lt;br /&gt;
* TargetPoint&lt;br /&gt;
See the picture below with these three points marked on it.&lt;br /&gt;
&lt;br /&gt;
The three JUMPX command types differ in the interpolation types of the three segments:&lt;br /&gt;
* JUMP – MOVE, MOVE, MOVE&lt;br /&gt;
* JUMP3 – MOVES, MOVE, MOVES&lt;br /&gt;
* JUMP3CP – MOVES, MOVES, MOVES&lt;br /&gt;
&lt;br /&gt;
The parts of segments 1 and 3 that are not blended with segment 2 are controlled by the properties ''Arch[x][1]'' and ''Arch[x][2]'', where ''x = 1..7''. The pair used in the motion is selected by ''ArchNo = x''.&lt;br /&gt;
&lt;br /&gt;
The default values are:&lt;br /&gt;
* ''Arch[x][1] = 20 + 10*x''&lt;br /&gt;
* ''Arch[x][2] = 20 + 10*x''&lt;br /&gt;
for ''x = 1..7''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP_point_defenitions.png|thumb|500px|JUMPX command point definition]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General JUMPX Rules==&lt;br /&gt;
* If ''ArchNo'' is not specified in the JUMPX command, there is no blending in the JUMPX motion.&lt;br /&gt;
* If ''(Arch[x][y] - Ly) &amp;gt; 0'' for x = ArchNo, y = 1,3, there is no blending for the relevant segment y.&lt;br /&gt;
* The blending method used for JUMPX segments is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If [[MC-Basic:element.BLENDINGPERCENTAGE|BlendingPercentage]] &amp;lt;&amp;gt; -1, it is used. Otherwise, [[MC-Basic:element.BLENDINGFACTOR|BlendingFactor]] is used to calculate:&lt;br /&gt;
''BlendingPercentage = 100 - BlendingFactor''&lt;br /&gt;
* The actual ''BlendingPercentage'' used is:&lt;br /&gt;
''min(100*(1-Arch[x][y]/Ly), BlendingPercentage)''&lt;br /&gt;
* If [[MC-Basic:element.PROFILERTYPE|ProfilerType]] is trapez acceleration, safe SP is used, so the Arch values cannot be guaranteed.&lt;br /&gt;
* The robot's configuration flags at the AscendingPoint are the same as those of the StartPoint.&lt;br /&gt;
* The robot's configuration flags at the DescendingPoint are the same as those of the TargetPoint.&lt;br /&gt;
&lt;br /&gt;
==Specific JUMPX Rules==&lt;br /&gt;
=== JUMP ===&lt;br /&gt;
* In JUMP, the property [[MC-Basic:robot.LimZ|LimZ]] is used instead of explicit ''AscendingPoint'' and ''DescendingPoint'' properties.&lt;br /&gt;
* The AscendingPoint is exactly above StartPoint, and the DescendingPoint is exactly above TargetPoint, both at height ''LimZ''.&lt;br /&gt;
* If ''LimZ'' is not specified in the JUMP command, the modal ''LimZ'' value is used.&lt;br /&gt;
* The default value is ''LimZ = 0''.&lt;br /&gt;
* The JUMP command can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* JUMP is best suited for robots that have a linear joint in the Z direction, such as [[SCARA robot|SCARA]] and [[TARM robot|TARM]]. Otherwise, the first and third arch segments are not straight-line segments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP.png|thumb|500px|JUMP motion, side view. The horizontal motion is not necessarily a linear segment]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JUMP3 and JUMP3CP ===&lt;br /&gt;
* In JUMP3 and JUMP3CP, segments 1 and 3 are straight-line segments.&lt;br /&gt;
* In JUMP3, segment 2 is a joint interpolation motion (MOVE), and its motion is specified by MOVE properties such as [[MC-Basic:element.VELOCITYSCALE|VelocityScale]].&lt;br /&gt;
* In JUMP3CP, segment 2 is a Cartesian straight-line motion (MOVES), and its motion is specified by MOVES properties such as [[MC-Basic:robot.VELOCITYTRANS|VelocityTrans]].&lt;br /&gt;
* In contrast to JUMP, in JUMP3 and JUMP3CP the AscendingPoint and DescendingPoint can be in any direction, such as in the XY plane.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP3CP.png|thumb|500px|JUMP3CP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Motion command&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* JUMP can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* The blending method is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If ''ProfilerType'' is trapez acceleration, safe SP is used, so Arch values cannot be guaranteed.&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
JUMP locTargetPoint&lt;br /&gt;
&lt;br /&gt;
JUMP jntTargetPoint ArchNo=2 LimZ=0 BlendingPercentage=50 Vscale=80 Ascale=30&lt;br /&gt;
&lt;br /&gt;
JUMP3 AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=1000 Ascale=20&lt;br /&gt;
&lt;br /&gt;
JUMP3CP AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=100 Ascale=20&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:MOVE|MOVE]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[Robot Kinematics Models]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.LIMZ&amp;diff=134078</id>
		<title>MC-Basic:robot.LIMZ</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.LIMZ&amp;diff=134078"/>
				<updated>2026-04-29T11:19:45Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Added default value&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.LIMZ}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.LimZ = &amp;lt;value&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
? &amp;lt;''robot_name''&amp;gt;.LimZ&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
LimZ is used only for the [[MC-Basic:JUMP|JUMP]] motion cammand. It specifies the absolute height that the JUMP motion will reach.&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Position&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
Mindouble to Maxdouble&lt;br /&gt;
&lt;br /&gt;
Default: 0&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Position units&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Modal and nodal&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
SCARA.LimZ = -20&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?SCARA.LimZ&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JUMP &amp;lt;target point&amp;gt; LimZ = &amp;lt;value&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:JUMP|JUMP]]&lt;br /&gt;
* [[MC-Basic:robot.ARCH|ARCH]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.LIMZ&amp;diff=134077</id>
		<title>MC-Basic:robot.LIMZ</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.LIMZ&amp;diff=134077"/>
				<updated>2026-04-29T11:18:13Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.LIMZ}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;''robot_name''&amp;gt;.LimZ = &amp;lt;value&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
? &amp;lt;''robot_name''&amp;gt;.LimZ&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
LimZ is used only for the [[MC-Basic:JUMP|JUMP]] motion cammand. It specifies the absolute height that the JUMP motion will reach.&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Position&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
Mindouble to Maxdouble&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Position units&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Modal and nodal&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
SCARA.LimZ = -20&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
?SCARA.LimZ&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JUMP &amp;lt;target point&amp;gt; LimZ = &amp;lt;value&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:JUMP|JUMP]]&lt;br /&gt;
* [[MC-Basic:robot.ARCH|ARCH]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:pls.HWASSISTANCE&amp;diff=134076</id>
		<title>MC-Basic:pls.HWASSISTANCE</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:pls.HWASSISTANCE&amp;diff=134076"/>
				<updated>2026-04-29T10:54:11Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Removed wild :&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
''&amp;lt;pls&amp;gt;''.HWAssistance&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
?''&amp;lt;pls&amp;gt;''. HWAssistance&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
Versions 4.21.2 and higher&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
The high-accuracy PLS timing mode is activated by HWAssistance.&amp;lt;br&amp;gt;&lt;br /&gt;
*PLS High Accuracy On (&amp;lt;pls&amp;gt;.HWAssistance = &amp;lt;value&amp;gt;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::When high-accuracy mode is active, the Product software extrapolates the exact time at which the axis will reach the PLS position, based on its current position, velocity and acceleration, and sets an output event for that time.&amp;lt;br&amp;gt; &lt;br /&gt;
::If HWAssistance is active, the timing of the PLS output switch will be computed to an accuracy of microseconds.&amp;lt;br&amp;gt; &lt;br /&gt;
::The exact timing of the PLS switch is computed according to the current velocity and acceleration values of the samples before and after the PLS position.&amp;lt;br&amp;gt;&lt;br /&gt;
::In instances of constant acceleration or linear acceleration change between the two samples, the timing of the PLS is computed exactly to ±1µs.&amp;lt;br&amp;gt;&lt;br /&gt;
*PLS High Accuracy Off (&amp;lt;pls&amp;gt;.HWAssistance = 0)&lt;br /&gt;
::When HWAssistance is not active (normal PLS), the PLS outputs are toggled at the moment the PLS source crosses the PLS position. &amp;lt;br&amp;gt; The timing of the PLS switch is always an integer number of motion samples; therefore, the timing accuracy of the PLS is equivalent to the motion bus cycle. &lt;br /&gt;
&lt;br /&gt;
{{Note | With fw version 4.5.29 and before, the position command delay of PositionErrorDelay-2 samples will be taken into account as hard-coded expression. This means that in case of PositionErrorDelay {{=}} 3, when the PLSposition is passed, the output will be triggered after 1 sample delay plus Δt, the inter-sample delay.}}&lt;br /&gt;
&lt;br /&gt;
{{Note | '''Hwassistance''' is available only in systems that have the hardware that support this functionality &amp;lt;!--  --&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Long&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
0  - no HW assistance &amp;lt;br&amp;gt;&lt;br /&gt;
1  - el2258 time-stamping module &amp;lt;br&amp;gt;&lt;br /&gt;
2  - CDHD2 PCOM1/PCOM2 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
FALSE&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task or Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
*Available only in systems with hardware that supports this functionality timestamping module el2258 or CDHD2 PCOM1/PCOM2 &amp;lt;br&amp;gt;&lt;br /&gt;
*Modal/Nodal&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
CDHD2 Setup &amp;lt;br&amp;gt;&lt;br /&gt;
1.Add objects 0x2191.0/0x2205.1 (PCOM1) or 0x2192.0/0x2206.1 (PCOM2) to TXPDO &amp;lt;br&amp;gt;&lt;br /&gt;
2.Two (2) additional outputs above digital outputs (for instance, 0x1008 and 0x1009 if CDHD2 is the first device on the network) will be implicitly mapped into sys.dout&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;?ver&amp;lt;br&amp;gt;&lt;br /&gt;
Version Number = MULTIBUS 0.4.21.2r1-C2 , Date = Nov 27 2022 [15:02:17]&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;common shared HWPLS1 as PLS a1 sys.DOut.1008&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;sys.DOut.1008 = 0 'test that output is available and can be reached &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;HWPLS1.HWAssistance=2&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;?plslist&amp;lt;br&amp;gt;&lt;br /&gt;
PlsName=HWPLS1,AxisName=A1,Output=sys.dout.1008,HWAssistance=TRUE&amp;lt;br&amp;gt;&lt;br /&gt;
?HWPLS1.PLSPropagationDelay=0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:COMMON SHARED ... AS PLS|COMMON SHARED ... AS PLS]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:pls.HWASSISTANCE&amp;diff=134075</id>
		<title>MC-Basic:pls.HWASSISTANCE</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:pls.HWASSISTANCE&amp;diff=134075"/>
				<updated>2026-04-29T10:52:59Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Fixed wikimedia garbage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
''&amp;lt;pls&amp;gt;''.HWAssistance&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
?''&amp;lt;pls&amp;gt;''. HWAssistance&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
Versions 4.21.2 and higher&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
The high-accuracy PLS timing mode is activated by HWAssistance.&amp;lt;br&amp;gt;&lt;br /&gt;
*PLS High Accuracy On (&amp;lt;pls&amp;gt;.HWAssistance = &amp;lt;value&amp;gt;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::When high-accuracy mode is active, the Product software extrapolates the exact time at which the axis will reach the PLS position, based on its current position, velocity and acceleration, and sets an output event for that time.&amp;lt;br&amp;gt; &lt;br /&gt;
::If HWAssistance is active, the timing of the PLS output switch will be computed to an accuracy of microseconds.&amp;lt;br&amp;gt; &lt;br /&gt;
::The exact timing of the PLS switch is computed according to the current velocity and acceleration values of the samples before and after the PLS position.&amp;lt;br&amp;gt;&lt;br /&gt;
::In instances of constant acceleration or linear acceleration change between the two samples, the timing of the PLS is computed exactly to ±1µs.&amp;lt;br&amp;gt;&lt;br /&gt;
*PLS High Accuracy Off (&amp;lt;pls&amp;gt;.HWAssistance = 0)&lt;br /&gt;
::When HWAssistance is not active (normal PLS), the PLS outputs are toggled at the moment the PLS source crosses the PLS position. &amp;lt;br&amp;gt; The timing of the PLS switch is always an integer number of motion samples; therefore, the ::timing accuracy of the PLS is equivalent to the motion bus cycle. &lt;br /&gt;
&lt;br /&gt;
{{Note | With fw version 4.5.29 and before, the position command delay of PositionErrorDelay-2 samples will be taken into account as hard-coded expression. This means that in case of PositionErrorDelay {{=}} 3, when the PLSposition is passed, the output will be triggered after 1 sample delay plus Δt, the inter-sample delay.}}&lt;br /&gt;
&lt;br /&gt;
{{Note | '''Hwassistance''' is available only in systems that have the hardware that support this functionality &amp;lt;!--  --&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Long&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
0  - no HW assistance &amp;lt;br&amp;gt;&lt;br /&gt;
1  - el2258 time-stamping module &amp;lt;br&amp;gt;&lt;br /&gt;
2  - CDHD2 PCOM1/PCOM2 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
FALSE&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task or Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
*Available only in systems with hardware that supports this functionality timestamping module el2258 or CDHD2 PCOM1/PCOM2 &amp;lt;br&amp;gt;&lt;br /&gt;
*Modal/Nodal&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
CDHD2 Setup &amp;lt;br&amp;gt;&lt;br /&gt;
1.Add objects 0x2191.0/0x2205.1 (PCOM1) or 0x2192.0/0x2206.1 (PCOM2) to TXPDO &amp;lt;br&amp;gt;&lt;br /&gt;
2.Two (2) additional outputs above digital outputs (for instance, 0x1008 and 0x1009 if CDHD2 is the first device on the network) will be implicitly mapped into sys.dout&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;?ver&amp;lt;br&amp;gt;&lt;br /&gt;
Version Number = MULTIBUS 0.4.21.2r1-C2 , Date = Nov 27 2022 [15:02:17]&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;common shared HWPLS1 as PLS a1 sys.DOut.1008&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;sys.DOut.1008 = 0 'test that output is available and can be reached &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;HWPLS1.HWAssistance=2&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;?plslist&amp;lt;br&amp;gt;&lt;br /&gt;
PlsName=HWPLS1,AxisName=A1,Output=sys.dout.1008,HWAssistance=TRUE&amp;lt;br&amp;gt;&lt;br /&gt;
?HWPLS1.PLSPropagationDelay=0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:COMMON SHARED ... AS PLS|COMMON SHARED ... AS PLS]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134074</id>
		<title>MC-Basic:JUMP JUMP3 JUMP3CP</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134074"/>
				<updated>2026-04-19T17:56:01Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MC-Basic&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
JUMP ''&amp;lt;target point&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {LimZ=&amp;lt;value&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3 ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE/MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3CP ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
The '''JUMPX''' motion commands are '''JUMP''', '''JUMP3''', and '''JUMP3CP'''. A JUMPX motion command is comprised of three motion segments, blended using [[MC-Basic:element.BLENDINGMETHOD|SP blending]].&lt;br /&gt;
&lt;br /&gt;
Starting from a StartPoint, the three points that define the motion are:&lt;br /&gt;
* AscendingPoint&lt;br /&gt;
* DescendingPoint&lt;br /&gt;
* TargetPoint&lt;br /&gt;
See the picture below with these three points marked on it.&lt;br /&gt;
&lt;br /&gt;
The three JUMPX command types differ in the interpolation types of the three segments:&lt;br /&gt;
* JUMP – MOVE, MOVE, MOVE&lt;br /&gt;
* JUMP3 – MOVES, MOVE, MOVES&lt;br /&gt;
* JUMP3CP – MOVES, MOVES, MOVES&lt;br /&gt;
&lt;br /&gt;
The parts of segments 1 and 3 that are not blended with segment 2 are controlled by the properties ''Arch[x][1]'' and ''Arch[x][2]'', where ''x = 1..7''. The pair used in the motion is selected by ''ArchNo = x''.&lt;br /&gt;
&lt;br /&gt;
The default values are:&lt;br /&gt;
* ''Arch[x][1] = 20 + 10*x''&lt;br /&gt;
* ''Arch[x][2] = 20 + 10*x''&lt;br /&gt;
for ''x = 1..7''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP_point_defenitions.png|thumb|500px|JUMPX command point definition]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General JUMPX Rules==&lt;br /&gt;
* If ''ArchNo'' is not specified in the JUMPX command, there is no blending in the JUMPX motion.&lt;br /&gt;
* If ''(Arch[x][y] - Ly) &amp;gt; 0'' for x = ArchNo, y = 1,3, there is no blending for the relevant segment y.&lt;br /&gt;
* The blending method used for JUMPX segments is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If [[MC-Basic:element.BLENDINGPERCENTAGE|BlendingPercentage]] &amp;lt;&amp;gt; -1, it is used. Otherwise, [[MC-Basic:element.BLENDINGFACTOR|BlendingFactor]] is used to calculate:&lt;br /&gt;
''BlendingPercentage = 100 - BlendingFactor''&lt;br /&gt;
* The actual ''BlendingPercentage'' used is:&lt;br /&gt;
''min(100*(1-Arch[x][y]/Ly), BlendingPercentage)''&lt;br /&gt;
* If [[MC-Basic:element.PROFILERTYPE|ProfilerType]] is trapez acceleration, safe SP is used, so the Arch values cannot be guaranteed.&lt;br /&gt;
* The robot's configuration flags at the AscendingPoint are the same as those of the StartPoint.&lt;br /&gt;
* The robot's configuration flags at the DescendingPoint are the same as those of the TargetPoint.&lt;br /&gt;
&lt;br /&gt;
==Specific JUMPX Rules==&lt;br /&gt;
=== JUMP ===&lt;br /&gt;
* In JUMP, the property ''LimZ'' is used instead of explicit ''AscendingPoint'' and ''DescendingPoint'' properties.&lt;br /&gt;
* The AscendingPoint is exactly above StartPoint, and the DescendingPoint is exactly above TargetPoint, both at height ''LimZ''.&lt;br /&gt;
* If ''LimZ'' is not specified in the JUMP command, the modal ''LimZ'' value is used.&lt;br /&gt;
* The default value is ''LimZ = 0''.&lt;br /&gt;
* The JUMP command can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* JUMP is best suited for robots that have a linear joint in the Z direction, such as [[SCARA robot|SCARA]] and [[TARM robot|TARM]]. Otherwise, the first and third arch segments are not straight-line segments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP.png|thumb|500px|JUMP motion, side view. The horizontal motion is not necessarily a linear segment]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JUMP3 and JUMP3CP ===&lt;br /&gt;
* In JUMP3 and JUMP3CP, segments 1 and 3 are straight-line segments.&lt;br /&gt;
* In JUMP3, segment 2 is a joint interpolation motion (MOVE), and its motion is specified by MOVE properties such as [[MC-Basic:element.VELOCITYSCALE|VelocityScale]].&lt;br /&gt;
* In JUMP3CP, segment 2 is a Cartesian straight-line motion (MOVES), and its motion is specified by MOVES properties such as [[MC-Basic:robot.VELOCITYTRANS|VelocityTrans]].&lt;br /&gt;
* In contrast to JUMP, in JUMP3 and JUMP3CP the AscendingPoint and DescendingPoint can be in any direction, such as in the XY plane.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP3CP.png|thumb|500px|JUMP3CP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Motion command&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* JUMP can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* The blending method is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If ''ProfilerType'' is trapez acceleration, safe SP is used, so Arch values cannot be guaranteed.&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
JUMP locTargetPoint&lt;br /&gt;
&lt;br /&gt;
JUMP jntTargetPoint ArchNo=2 LimZ=0 BlendingPercentage=50 Vscale=80 Ascale=30&lt;br /&gt;
&lt;br /&gt;
JUMP3 AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=1000 Ascale=20&lt;br /&gt;
&lt;br /&gt;
JUMP3CP AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=100 Ascale=20&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:MOVE|MOVE]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[Robot Kinematics Models]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134073</id>
		<title>MC-Basic:JUMP JUMP3 JUMP3CP</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134073"/>
				<updated>2026-04-19T17:53:48Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MC-Basic&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
JUMP ''&amp;lt;target point&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {LimZ=&amp;lt;value&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3 ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE/MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3CP ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
The '''JUMPX''' motion commands are '''JUMP''', '''JUMP3''', and '''JUMP3CP'''. A JUMPX motion command is comprised of three motion segments, blended using [[MC-Basic:element.BLENDINGMETHOD|SP blending]].&lt;br /&gt;
&lt;br /&gt;
Starting from a StartPoint, the three points that define the motion are:&lt;br /&gt;
* AscendingPoint&lt;br /&gt;
* DescendingPoint&lt;br /&gt;
* TargetPoint&lt;br /&gt;
See the picture below with these three points marked on it.&lt;br /&gt;
&lt;br /&gt;
The three JUMPX command types differ in the interpolation types of the three segments:&lt;br /&gt;
* JUMP – MOVE, MOVE, MOVE&lt;br /&gt;
* JUMP3 – MOVES, MOVE, MOVES&lt;br /&gt;
* JUMP3CP – MOVES, MOVES, MOVES&lt;br /&gt;
&lt;br /&gt;
The parts of segments 1 and 3 that are not blended with segment 2 are controlled by the properties ''Arch[x][1]'' and ''Arch[x][2]'', where ''x = 1..7''. The pair used in the motion is selected by ''ArchNo = x''.&lt;br /&gt;
&lt;br /&gt;
The default values are:&lt;br /&gt;
* ''Arch[x][1] = 20 + 10*x''&lt;br /&gt;
* ''Arch[x][2] = 20 + 10*x''&lt;br /&gt;
for ''x = 1..7''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP_point_defenitions.png|thumb|500px|JUMPX command point definition]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General JUMPX rules==&lt;br /&gt;
* If ''ArchNo'' is not specified in the JUMPX command, there is no blending in the JUMPX motion.&lt;br /&gt;
* If ''(Arch[x][y] - Ly) &amp;gt; 0'' for x = ArchNo, y = 1,3, there is no blending for the relevant segment y.&lt;br /&gt;
* The blending method used for JUMPX segments is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If [[MC-Basic:element.BLENDINGPERCENTAGE|BlendingPercentage]] &amp;lt;&amp;gt; -1, it is used. Otherwise, [[MC-Basic:element.BLENDINGFACTOR|BlendingFactor]] is used to calculate:&lt;br /&gt;
''BlendingPercentage = 100 - BlendingFactor''&lt;br /&gt;
* The actual ''BlendingPercentage'' used is:&lt;br /&gt;
''min(100*(1-Arch[x][y]/Ly), BlendingPercentage)''&lt;br /&gt;
* If [[MC-Basic:element.PROFILERTYPE|ProfilerType]] is trapez acceleration, safe SP is used, so the Arch values cannot be guaranteed.&lt;br /&gt;
* The robot's configuration flags at the AscendingPoint are the same as those of the StartPoint.&lt;br /&gt;
* The robot's configuration flags at the DescendingPoint are the same as those of the TargetPoint.&lt;br /&gt;
&lt;br /&gt;
==Specific JUMPX rules==&lt;br /&gt;
=== JUMP ===&lt;br /&gt;
* In JUMP, the property ''LimZ'' is used instead of explicit ''AscendingPoint'' and ''DescendingPoint'' properties.&lt;br /&gt;
* The AscendingPoint is exactly above StartPoint, and the DescendingPoint is exactly above TargetPoint, both at height ''LimZ''.&lt;br /&gt;
* If ''LimZ'' is not specified in the JUMP command, the modal ''LimZ'' value is used.&lt;br /&gt;
* The default value is ''LimZ = 0''.&lt;br /&gt;
* The JUMP command can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* JUMP is best suited for robots that have a linear joint in the Z direction, such as [[SCARA robot|SCARA]] and [[TARM robot|TARM]]. Otherwise, the first and third arch segments are not straight-line segments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP.png|thumb|500px|JUMP motion, side view. The horizontal motion is not necessarily a linear segment]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JUMP3 and JUMP3CP ===&lt;br /&gt;
* In JUMP3 and JUMP3CP, segments 1 and 3 are straight-line segments.&lt;br /&gt;
* In JUMP3, segment 2 is a joint interpolation motion (MOVE), and its motion is specified by MOVE properties such as [[MC-Basic:element.VELOCITYSCALE|VelocityScale]].&lt;br /&gt;
* In JUMP3CP, segment 2 is a Cartesian straight-line motion (MOVES), and its motion is specified by MOVES properties such as [[MC-Basic:robot.VELOCITYTRANS|VelocityTrans]].&lt;br /&gt;
* In contrast to JUMP, in JUMP3 and JUMP3CP the AscendingPoint and DescendingPoint can be in any direction, such as in the XY plane.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP3CP.png|thumb|500px|JUMP3CP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Motion command&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* JUMP can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* The blending method is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If ''ProfilerType'' is trapez acceleration, safe SP is used, so Arch values cannot be guaranteed.&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
JUMP locTargetPoint&lt;br /&gt;
&lt;br /&gt;
JUMP jntTargetPoint ArchNo=2 LimZ=0 BlendingPercentage=50 Vscale=80 Ascale=30&lt;br /&gt;
&lt;br /&gt;
JUMP3 AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=1000 Ascale=20&lt;br /&gt;
&lt;br /&gt;
JUMP3CP AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=100 Ascale=20&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:MOVE|MOVE]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[Robot Kinematics Models]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134072</id>
		<title>MC-Basic:JUMP JUMP3 JUMP3CP</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134072"/>
				<updated>2026-04-19T13:00:33Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MC-Basic&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
JUMP ''&amp;lt;target point&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {LimZ=&amp;lt;value&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3 ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE/MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3CP ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
The '''JUMPX''' motion commands are '''JUMP''', '''JUMP3''', and '''JUMP3CP'''. A JUMPX motion command is comprised of three motion segments, blended using [[MC-Basic:element.BLENDINGMETHOD|SP blending]].&lt;br /&gt;
&lt;br /&gt;
Starting from a StartPoint, the three points that define the motion are:&lt;br /&gt;
* AscendingPoint&lt;br /&gt;
* DescendingPoint&lt;br /&gt;
* TargetPoint&lt;br /&gt;
&lt;br /&gt;
The three command types differ in the interpolation types of the three segments:&lt;br /&gt;
* JUMP – MOVE, MOVE, MOVE&lt;br /&gt;
* JUMP3 – MOVES, MOVE, MOVES&lt;br /&gt;
* JUMP3CP – MOVES, MOVES, MOVES&lt;br /&gt;
&lt;br /&gt;
The parts of segments 1 and 3 that are not blended with segment 2 are controlled by the properties ''Arch[x][1]'' and ''Arch[x][2]'', where ''x = 1..7''. The pair used in the motion is selected by ''ArchNo = x''.&lt;br /&gt;
&lt;br /&gt;
The default values are:&lt;br /&gt;
* ''Arch[x][1] = 20 + 10*x''&lt;br /&gt;
* ''Arch[x][2] = 20 + 10*x''&lt;br /&gt;
for ''x = 1..7''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP_point_defenitions.png|thumb|500px|JUMPX command point definition]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General JUMPX rules==&lt;br /&gt;
* If ''ArchNo'' is not specified in the JUMPX command, there is no blending in the JUMPX motion.&lt;br /&gt;
* If ''(Arch[x][y] - Ly) &amp;gt; 0'' for x = ArchNo, y = 1,3, there is no blending for the relevant segment y.&lt;br /&gt;
* The blending method used for JUMPX segments is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If [[MC-Basic:element.BLENDINGPERCENTAGE|BlendingPercentage]] &amp;lt;&amp;gt; -1, it is used. Otherwise, [[MC-Basic:element.BLENDINGFACTOR|BlendingFactor]] is used to calculate:&lt;br /&gt;
''BlendingPercentage = 100 - BlendingFactor''&lt;br /&gt;
* The actual ''BlendingPercentage'' used is:&lt;br /&gt;
''min(100*(1-Arch[x][y]/Ly), BlendingPercentage)''&lt;br /&gt;
* If [[MC-Basic:element.PROFILERTYPE|ProfilerType]] is trapez acceleration, safe SP is used, so the Arch values cannot be guaranteed.&lt;br /&gt;
* The robot's configuration flags at the AscendingPoint are the same as those of the StartPoint.&lt;br /&gt;
* The robot's configuration flags at the DescendingPoint are the same as those of the TargetPoint.&lt;br /&gt;
&lt;br /&gt;
==Specific JUMPX rules==&lt;br /&gt;
=== JUMP ===&lt;br /&gt;
* In JUMP, the property ''LimZ'' is used instead of explicit ''AscendingPoint'' and ''DescendingPoint'' properties.&lt;br /&gt;
* The AscendingPoint is exactly above StartPoint, and the DescendingPoint is exactly above TargetPoint, both at height ''LimZ''.&lt;br /&gt;
* If ''LimZ'' is not specified in the JUMP command, the modal ''LimZ'' value is used.&lt;br /&gt;
* The default value is ''LimZ = 0''.&lt;br /&gt;
* The JUMP command can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* JUMP is best suited for robots that have a linear joint in the Z direction, such as [[SCARA robot|SCARA]] and [[TARM robot|TARM]]. Otherwise, the first and third arch segments are not straight-line segments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP.png|thumb|500px|JUMP motion, side view. The horizontal motion is not necessarily a linear segment]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JUMP3 and JUMP3CP ===&lt;br /&gt;
* In JUMP3 and JUMP3CP, segments 1 and 3 are straight-line segments.&lt;br /&gt;
* In JUMP3, segment 2 is a joint interpolation motion (MOVE), and its motion is specified by MOVE properties such as [[MC-Basic:element.VELOCITYSCALE|VelocityScale]].&lt;br /&gt;
* In JUMP3CP, segment 2 is a Cartesian straight-line motion (MOVES), and its motion is specified by MOVES properties such as [[MC-Basic:robot.VELOCITYTRANS|VelocityTrans]].&lt;br /&gt;
* In contrast to JUMP, in JUMP3 and JUMP3CP the AscendingPoint and DescendingPoint can be in any direction, such as in the XY plane.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP3CP.png|thumb|500px|JUMP3CP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Motion command&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* JUMP can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* The blending method is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If ''ProfilerType'' is trapez acceleration, safe SP is used, so Arch values cannot be guaranteed.&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
JUMP locTargetPoint&lt;br /&gt;
&lt;br /&gt;
JUMP jntTargetPoint ArchNo=2 LimZ=0 BlendingPercentage=50 Vscale=80 Ascale=30&lt;br /&gt;
&lt;br /&gt;
JUMP3 AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=1000 Ascale=20&lt;br /&gt;
&lt;br /&gt;
JUMP3CP AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=100 Ascale=20&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:MOVE|MOVE]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[Robot Kinematics Models]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134071</id>
		<title>MC-Basic:JUMP JUMP3 JUMP3CP</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134071"/>
				<updated>2026-04-19T12:59:17Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MC-Basic&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
JUMP ''&amp;lt;target point&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {LimZ=&amp;lt;value&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3 ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE/MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3CP ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
The '''JUMPX''' motion commands are '''JUMP''', '''JUMP3''', and '''JUMP3CP'''. A JUMPX motion command is comprised of three motion segments, blended using [[MC-Basic:element.BLENDINGMETHOD|SP blending]].&lt;br /&gt;
&lt;br /&gt;
Starting from a StartPoint, the three points that define the motion are:&lt;br /&gt;
* AscendingPoint&lt;br /&gt;
* DescendingPoint&lt;br /&gt;
* TargetPoint&lt;br /&gt;
&lt;br /&gt;
The three command types differ in the interpolation types of the three segments:&lt;br /&gt;
* JUMP – MOVE, MOVE, MOVE&lt;br /&gt;
* JUMP3 – MOVES, MOVE, MOVES&lt;br /&gt;
* JUMP3CP – MOVES, MOVES, MOVES&lt;br /&gt;
&lt;br /&gt;
The parts of segments 1 and 3 that are not blended with segment 2 are controlled by the properties ''Arch[x][1]'' and ''Arch[x][2]'', where ''x = 1..7''. The pair used in the motion is selected by ''ArchNo = x''.&lt;br /&gt;
&lt;br /&gt;
The default values are:&lt;br /&gt;
* ''Arch[x][1] = 20 + 10*x''&lt;br /&gt;
* ''Arch[x][2] = 20 + 10*x''&lt;br /&gt;
for ''x = 1..7''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP_point_defenitions.png|thumb|500px|JUMPX command point definition]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General JUMPX rules==&lt;br /&gt;
* If ''ArchNo'' is not specified in the JUMPX command, there is no blending in the JUMPX motion.&lt;br /&gt;
* If ''(Arch[x][y] - Ly) &amp;gt; 0'' for x = ArchNo, y = 1,3, there is no blending for the relevant segment y.&lt;br /&gt;
* The blending method used for JUMPX segments is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If [[MC-Basic:element.BLENDINGPERCENTAGE|BlendingPercentage]] &amp;lt;&amp;gt; -1, it is used. Otherwise, [[MC-Basic:element.BLENDINGFACTOR|BlendingFactor]] is used to calculate:&lt;br /&gt;
''BlendingPercentage = 100 - BlendingFactor''&lt;br /&gt;
* The actual ''BlendingPercentage'' used is:&lt;br /&gt;
''min(100*(1-Arch[x][y]/Ly), BlendingPercentage)''&lt;br /&gt;
* If [[MC-Basic:element.PROFILERTYPE|ProfilerType]] is trapez acceleration, safe SP is used, so the Arch values cannot be guaranteed.&lt;br /&gt;
* The robot's configuration flags at the AscendingPoint are the same as those of the StartPoint.&lt;br /&gt;
* The robot's configuration flags at the DescendingPoint are the same as those of the TargetPoint.&lt;br /&gt;
&lt;br /&gt;
==Specific JUMPX rules==&lt;br /&gt;
=== JUMP ===&lt;br /&gt;
* In JUMP, the property ''LimZ'' is used instead of explicit ''AscendingPoint'' and ''DescendingPoint'' properties.&lt;br /&gt;
* The AscendingPoint is exactly above StartPoint, and the DescendingPoint is exactly above TargetPoint, both at height ''LimZ''.&lt;br /&gt;
* If ''LimZ'' is not specified in the JUMP command, the modal ''LimZ'' value is used.&lt;br /&gt;
* The default value is ''LimZ = 0''.&lt;br /&gt;
* The JUMP command can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* JUMP is best suited for robots that have a linear joint in the Z direction, such as [[SCARA robot|SCARA]] and [[TARM robot|TARM]]. Otherwise, the first and third arch segments are not straight-line segments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP.png|thumb|500px|JUMP motion, side view. The horizontal motion is not a linear segment]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JUMP3 and JUMP3CP ===&lt;br /&gt;
* In JUMP3 and JUMP3CP, segments 1 and 3 are straight-line segments.&lt;br /&gt;
* In JUMP3, segment 2 is a joint interpolation motion (MOVE), and its motion is specified by MOVE properties such as [[MC-Basic:element.VELOCITYSCALE|VelocityScale]].&lt;br /&gt;
* In JUMP3CP, segment 2 is a Cartesian straight-line motion (MOVES), and its motion is specified by MOVES properties such as [[MC-Basic:robot.VELOCITYTRANS|VelocityTrans]].&lt;br /&gt;
* In contrast to JUMP, in JUMP3 and JUMP3CP the AscendingPoint and DescendingPoint can be in any direction, such as in the XY plane.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP3CP.png|thumb|500px|JUMP3CP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Motion command&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* JUMP can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* The blending method is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If ''ProfilerType'' is trapez acceleration, safe SP is used, so Arch values cannot be guaranteed.&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
JUMP locTargetPoint&lt;br /&gt;
&lt;br /&gt;
JUMP jntTargetPoint ArchNo=2 LimZ=0 BlendingPercentage=50 Vscale=80 Ascale=30&lt;br /&gt;
&lt;br /&gt;
JUMP3 AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=1000 Ascale=20&lt;br /&gt;
&lt;br /&gt;
JUMP3CP AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=100 Ascale=20&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:MOVE|MOVE]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[Robot Kinematics Models]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134070</id>
		<title>MC-Basic:JUMP JUMP3 JUMP3CP</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134070"/>
				<updated>2026-04-19T12:55:21Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MC-Basic&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
JUMP ''&amp;lt;target point&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {LimZ=&amp;lt;value&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3 ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE/MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3CP ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
The '''JUMPX''' motion commands are '''JUMP''', '''JUMP3''', and '''JUMP3CP'''. A JUMPX motion command is comprised of three motion segments, blended using [[MC-Basic:element.BLENDINGMETHOD|SP blending]].&lt;br /&gt;
&lt;br /&gt;
Starting from a StartPoint, the three points that define the motion are:&lt;br /&gt;
* AscendingPoint&lt;br /&gt;
* DescendingPoint&lt;br /&gt;
* TargetPoint&lt;br /&gt;
&lt;br /&gt;
The three command types differ in the interpolation types of the three segments:&lt;br /&gt;
* JUMP – MOVE, MOVE, MOVE&lt;br /&gt;
* JUMP3 – MOVES, MOVE, MOVES&lt;br /&gt;
* JUMP3CP – MOVES, MOVES, MOVES&lt;br /&gt;
&lt;br /&gt;
The parts of segments 1 and 3 that are not blended with segment 2 are controlled by the properties ''Arch[x][1]'' and ''Arch[x][2]'', where ''x = 1..7''. The pair used in the motion is selected by ''ArchNo = x''.&lt;br /&gt;
&lt;br /&gt;
The default values are:&lt;br /&gt;
* ''Arch[x][1] = 20 + 10*x''&lt;br /&gt;
* ''Arch[x][2] = 20 + 10*x''&lt;br /&gt;
for ''x = 1..7''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP_point_defenitions.png|thumb|500px|JUMPX command point definition]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General JUMPX rules==&lt;br /&gt;
* If ''ArchNo'' is not specified in the JUMPX command, there is no blending in the JUMPX motion.&lt;br /&gt;
* If ''(Arch[x][y] - Ly) &amp;gt; 0'' for x = ArchNo, y = 1,3, there is no blending for the relevant segment y.&lt;br /&gt;
* The blending method used for JUMPX segments is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If [[MC-Basic:element.BLENDINGPERCENTAGE|BlendingPercentage]] &amp;lt;&amp;gt; -1, it is used. Otherwise, [[MC-Basic:element.BLENDINGFACTOR|BlendingFactor]] is used to calculate:&lt;br /&gt;
''BlendingPercentage = 100 - BlendingFactor''&lt;br /&gt;
* The actual ''BlendingPercentage'' used is:&lt;br /&gt;
''min(100*(1-Arch[x][y]/Ly), BlendingPercentage)''&lt;br /&gt;
* If [[MC-Basic:element.PROFILERTYPE|ProfilerType]] is trapez acceleration, safe SP is used, so the Arch values cannot be guaranteed.&lt;br /&gt;
* The robot's configuration flags at the AscendingPoint are the same as those of the StartPoint.&lt;br /&gt;
* The robot's configuration flags at the DescendingPoint are the same as those of the TargetPoint.&lt;br /&gt;
&lt;br /&gt;
==Specific JUMPX rules==&lt;br /&gt;
=== JUMP ===&lt;br /&gt;
* In JUMP, the property ''LimZ'' is used instead of explicit ''AscendingPoint'' and ''DescendingPoint'' properties.&lt;br /&gt;
* The AscendingPoint is exactly above StartPoint, and the DescendingPoint is exactly above TargetPoint, both at height ''LimZ''.&lt;br /&gt;
* If ''LimZ'' is not specified in the JUMP command, the modal ''LimZ'' value is used.&lt;br /&gt;
* The default value is ''LimZ = 0''.&lt;br /&gt;
* The JUMP command can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* JUMP is best suited for robots that have a linear joint in the Z direction, such as [[SCARA robot|SCARA]] and [[TARM robot|TARM]]. Otherwise, the first and third arch segments are not straight-line segments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP.png|thumb|500px|JUMP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JUMP3 and JUMP3CP ===&lt;br /&gt;
* In JUMP3 and JUMP3CP, segments 1 and 3 are straight-line segments.&lt;br /&gt;
* In JUMP3, segment 2 is a joint interpolation motion (MOVE), and its motion is specified by MOVE properties such as [[MC-Basic:element.VELOCITYSCALE|VelocityScale]].&lt;br /&gt;
* In JUMP3CP, segment 2 is a Cartesian straight-line motion (MOVES), and its motion is specified by MOVES properties such as [[MC-Basic:robot.VELOCITYTRANS|VelocityTrans]].&lt;br /&gt;
* In contrast to JUMP, in JUMP3 and JUMP3CP the AscendingPoint and DescendingPoint can be in any direction, such as in the XY plane.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP3CP.png|thumb|500px|JUMP3CP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Motion command&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* JUMP can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* The blending method is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If ''ProfilerType'' is trapez acceleration, safe SP is used, so Arch values cannot be guaranteed.&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
JUMP locTargetPoint&lt;br /&gt;
&lt;br /&gt;
JUMP jntTargetPoint ArchNo=2 LimZ=0 BlendingPercentage=50 Vscale=80 Ascale=30&lt;br /&gt;
&lt;br /&gt;
JUMP3 AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=1000 Ascale=20&lt;br /&gt;
&lt;br /&gt;
JUMP3CP AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=100 Ascale=20&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:MOVE|MOVE]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[Robot Kinematics Models]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134069</id>
		<title>MC-Basic:JUMP JUMP3 JUMP3CP</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134069"/>
				<updated>2026-04-19T11:08:10Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Added figures&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MC-Basic&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
JUMP ''&amp;lt;target point&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {LimZ=&amp;lt;value&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3 ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE/MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3CP ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
The '''JUMPX''' motion commands are '''JUMP''', '''JUMP3''', and '''JUMP3CP'''. A JUMPX motion command is comprised of three motion segments, blended using [[MC-Basic:element.BLENDINGMETHOD|SP blending]].&lt;br /&gt;
&lt;br /&gt;
Starting from a StartPoint, the three points that define the motion are:&lt;br /&gt;
* AscendingPoint&lt;br /&gt;
* DescendingPoint&lt;br /&gt;
* TargetPoint&lt;br /&gt;
&lt;br /&gt;
The three command types differ in the interpolation types of the three segments:&lt;br /&gt;
* JUMP – MOVE, MOVE, MOVE&lt;br /&gt;
* JUMP3 – MOVES, MOVE, MOVES&lt;br /&gt;
* JUMP3CP – MOVES, MOVES, MOVES&lt;br /&gt;
&lt;br /&gt;
The parts of segments 1 and 3 that are not blended with segment 2 are controlled by the properties ''Arch[x][1]'' and ''Arch[x][2]'', where ''x = 1..7''. The pair used in the motion is selected by ''ArchNo = x''.&lt;br /&gt;
&lt;br /&gt;
The default values are:&lt;br /&gt;
* ''Arch[x][1] = 20 + 10*x''&lt;br /&gt;
* ''Arch[x][2] = 20 + 10*x''&lt;br /&gt;
for ''x = 1..7''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP_point_defenitions.png|thumb|500px|JUMPX command point definition]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==General JUMPX rules==&lt;br /&gt;
* If ''ArchNo'' is not specified in the JUMPX command, there is no blending in the JUMPX motion.&lt;br /&gt;
* If ''(Arch[x][y] - Ly) &amp;gt; 0'' for x = ArchNo, y = 1,3, there is no blending for the relevant segment y.&lt;br /&gt;
* The blending method used for JUMPX segments is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If [[MC-Basic:element.BLENDINGPERCENTAGE|BlendingPercentage]] &amp;lt;&amp;gt; -1, it is used. Otherwise, [[MC-Basic:element.BLENDINGFACTOR|BlendingFactor]] is used to calculate:&lt;br /&gt;
''BlendingPercentage = 100 - BlendingFactor''&lt;br /&gt;
* The actual ''BlendingPercentage'' used is:&lt;br /&gt;
''min(100*(1-Arch[x][y]/Ly), BlendingPercentage)''&lt;br /&gt;
* If [[MC-Basic:element.PROFILERTYPE|ProfilerType]] is trapez acceleration, safe SP is used, so the Arch values cannot be guaranteed.&lt;br /&gt;
* The robot's configuration flags at the AscendingPoint are the same as those of the StartPoint.&lt;br /&gt;
* The robot's configuration flags at the DescendingPoint are the same as those of the TargetPoint.&lt;br /&gt;
&lt;br /&gt;
==Specific JUMPX rules==&lt;br /&gt;
=== JUMP ===&lt;br /&gt;
* In JUMP, the property ''LimZ'' is used instead of explicit ''AscendingPoint'' and ''DescendingPoint'' properties.&lt;br /&gt;
* The AscendingPoint is exactly above StartPoint, and the DescendingPoint is exactly above TargetPoint, both at height ''LimZ''.&lt;br /&gt;
* If ''LimZ'' is not specified in the JUMP command, the modal ''LimZ'' value is used.&lt;br /&gt;
* The default value is ''LimZ = 0''.&lt;br /&gt;
* The JUMP command can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* JUMP is best suited for robots that have a linear joint in the Z direction, such as [[SCARA robot|SCARA]] and [[TARM robot|TARM]]. Otherwise, the first and third arch segments are not straight-line segments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP.png|thumb|500px|JUMP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JUMP3 and JUMP3CP ===&lt;br /&gt;
* In JUMP3 and ''JUMP3CP'', segments 1 and 3 are straight-line segments.&lt;br /&gt;
* In JUMP3, segment 2 is a joint interpolation motion (MOVE), and its motion is specified by MOVE properties such as [[MC-Basic:element.VELOCITYSCALE|VelocityScale]].&lt;br /&gt;
* In JUMP3CP, segment 2 is a Cartesian straight-line motion (MOVES), and its motion is specified by MOVES properties such as [[MC-Basic:robot.VELOCITYTRANS|VelocityTrans]].&lt;br /&gt;
* In contrast to JUMP, in JUMP3 and JUMP3CP the AscendingPoint and DescendingPoint can be in any direction, such as in the XY plane.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:none;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;[[File:JUMP3CP.png|thumb|500px|JUMP3CP motion]]&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Motion command&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* JUMP can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* The blending method is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If ''ProfilerType'' is trapez acceleration, safe SP is used, so Arch values cannot be guaranteed.&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
JUMP locTargetPoint&lt;br /&gt;
&lt;br /&gt;
JUMP jntTargetPoint ArchNo=2 LimZ=0 BlendingPercentage=50 Vscale=80 Ascale=30&lt;br /&gt;
&lt;br /&gt;
JUMP3 AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=1000 Ascale=20&lt;br /&gt;
&lt;br /&gt;
JUMP3CP AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=100 Ascale=20&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:MOVE|MOVE]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[Robot Kinematics Models]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=File:JUMP3CP.png&amp;diff=134068</id>
		<title>File:JUMP3CP.png</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=File:JUMP3CP.png&amp;diff=134068"/>
				<updated>2026-04-19T10:55:36Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=File:JUMP.png&amp;diff=134067</id>
		<title>File:JUMP.png</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=File:JUMP.png&amp;diff=134067"/>
				<updated>2026-04-19T10:53:19Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=File:JUMP_point_defenitions.png&amp;diff=134066</id>
		<title>File:JUMP point defenitions.png</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=File:JUMP_point_defenitions.png&amp;diff=134066"/>
				<updated>2026-04-19T10:44:36Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP3CP&amp;diff=134065</id>
		<title>MC-Basic:JUMP3CP</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP3CP&amp;diff=134065"/>
				<updated>2026-04-19T08:49:48Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Redirected page to MC-Basic:JUMP JUMP3 JUMP3CP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[MC-Basic:JUMP JUMP3 JUMP3CP]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP3&amp;diff=134064</id>
		<title>MC-Basic:JUMP3</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP3&amp;diff=134064"/>
				<updated>2026-04-19T08:48:26Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Redirected page to MC-Basic:JUMP JUMP3 JUMP3CP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[MC-Basic:JUMP JUMP3 JUMP3CP]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP&amp;diff=134063</id>
		<title>MC-Basic:JUMP</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP&amp;diff=134063"/>
				<updated>2026-04-19T08:47:02Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Redirected page to MC-Basic:JUMP JUMP3 JUMP3CP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[MC-Basic:JUMP_JUMP3_JUMP3CP]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134062</id>
		<title>MC-Basic:JUMP JUMP3 JUMP3CP</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:JUMP_JUMP3_JUMP3CP&amp;diff=134062"/>
				<updated>2026-04-19T08:42:49Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Created the JUMPX page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MC-Basic&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
JUMP ''&amp;lt;target point&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {LimZ=&amp;lt;value&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3 ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVE/MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
JUMP3CP ''AscendingPoint=&amp;lt;p1&amp;gt; DescendingPoint=&amp;lt;p2&amp;gt; TargetPoint=&amp;lt;p3&amp;gt; {ArchNo=&amp;lt;x&amp;gt;} {BlendingPercentage=&amp;lt;value&amp;gt;} {other MOVES properties}''&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
0.4.21.2r14&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
The '''JUMPX''' motion commands are '''JUMP''', '''JUMP3''', and '''JUMP3CP'''. A JUMPX motion command is comprised of three motion segments, blended using [[MC-Basic:element.BLENDINGMETHOD|SP blending]].&lt;br /&gt;
&lt;br /&gt;
Starting from a StartPoint, the three points that define the motion are:&lt;br /&gt;
* AscendingPoint&lt;br /&gt;
* DescendingPoint&lt;br /&gt;
* TargetPoint&lt;br /&gt;
&lt;br /&gt;
The three command types differ in the interpolation types of the three segments:&lt;br /&gt;
* JUMP – MOVE, MOVE, MOVE&lt;br /&gt;
* JUMP3 – MOVES, MOVE, MOVES&lt;br /&gt;
* JUMP3CP – MOVES, MOVES, MOVES&lt;br /&gt;
&lt;br /&gt;
The parts of segments 1 and 3 that are not blended with segment 2 are controlled by the properties ''Arch[x][1]'' and ''Arch[x][2]'', where ''x = 1..7''. The pair used in the motion is selected by ''ArchNo = x''.&lt;br /&gt;
&lt;br /&gt;
The default values are:&lt;br /&gt;
* ''Arch[x][1] = 20 + 10*x''&lt;br /&gt;
* ''Arch[x][2] = 20 + 10*x''&lt;br /&gt;
for ''x = 1..7''.&lt;br /&gt;
&lt;br /&gt;
==General JUMPX rules==&lt;br /&gt;
* If ''ArchNo'' is not specified in the JUMPX command, there is no blending in the JUMPX motion.&lt;br /&gt;
* If ''(Arch[x][y] - Ly) &amp;gt; 0'' for x = ArchNo, y = 1,3, there is no blending for the relevant segment y.&lt;br /&gt;
* The blending method used for JUMPX segments is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If [[MC-Basic:element.BLENDINGPERCENTAGE|BlendingPercentage]] &amp;lt;&amp;gt; -1, it is used. Otherwise, [[MC-Basic:element.BLENDINGFACTOR|BlendingFactor]] is used to calculate:&lt;br /&gt;
''BlendingPercentage = 100 - BlendingFactor''&lt;br /&gt;
* The actual ''BlendingPercentage'' used is:&lt;br /&gt;
''min(100*(1-Arch[x][y]/Ly), BlendingPercentage)''&lt;br /&gt;
* If [[MC-Basic:element.PROFILERTYPE|ProfilerType]] is trapez acceleration, safe SP is used, so the Arch values cannot be guaranteed.&lt;br /&gt;
* The robot's configuration flags of the AscendingPoint are the same as those of the StartPoint.&lt;br /&gt;
* The robot's configuration flags of the DescendingPoint are the same as those of the TargetPoint.&lt;br /&gt;
&lt;br /&gt;
==Specific JUMPX rules==&lt;br /&gt;
=== JUMP ===&lt;br /&gt;
* In JUMP, the property ''LimZ'' is used instead of explicit ''AscendingPoint'' and ''DescendingPoint'' properties.&lt;br /&gt;
* The AscendingPoint is exactly above StartPoint, and the DescendingPoint is exactly above TargetPoint, both at height ''LimZ''.&lt;br /&gt;
* If ''LimZ'' is not specified in the JUMP command, the modal ''LimZ'' value is used.&lt;br /&gt;
* The default value is ''LimZ = 0''.&lt;br /&gt;
* The JUMP command can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* JUMP is best suited for robots that have a linear joint in the Z direction, such as SCARA and TARM. Otherwise, the first and third arch segments are not straight-line segments.&lt;br /&gt;
&lt;br /&gt;
=== JUMP3 and JUMP3CP ===&lt;br /&gt;
* In JUMP3 and ''JUMP3CP'', segments 1 and 3 are straight-line segments.&lt;br /&gt;
* In JUMP3, segment 2 is a joint interpolation motion (MOVE), and its motion is specified by MOVE properties such as [[MC-Basic:element.VELOCITYSCALE|VelocityScale]].&lt;br /&gt;
* In JUMP3CP, segment 2 is a Cartesian straight-line motion (MOVES), and its motion is specified by MOVES properties such as [[MC-Basic:robot.VELOCITYTRANS|VelocityTrans]].&lt;br /&gt;
* In contrast to JUMP, in JUMP3 and JUMP3CP the AscendingPoint and DescendingPoint can be in any direction, such as in the XY plane.&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Motion command&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* JUMP can be used only with robots that have a Z Cartesian coordinate.&lt;br /&gt;
* The blending method is always SP, even if the modal blending method is CP.&lt;br /&gt;
* If ''ProfilerType'' is trapez acceleration, safe SP is used, so Arch values cannot be guaranteed.&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
JUMP locTargetPoint&lt;br /&gt;
&lt;br /&gt;
JUMP jntTargetPoint ArchNo=2 LimZ=0 BlendingPercentage=50 Vscale=80 Ascale=30&lt;br /&gt;
&lt;br /&gt;
JUMP3 AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=1000 Ascale=20&lt;br /&gt;
&lt;br /&gt;
JUMP3CP AscendingPoint=P1 DescendingPoint=P2 TargetPoint=P3 ArchNo=2 BlendingPercentage=50 Vtran=100 Ascale=20&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:MOVE|MOVE]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[Robot Kinematics Models]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=PUMA_THETA_Parameters&amp;diff=134061</id>
		<title>PUMA THETA Parameters</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=PUMA_THETA_Parameters&amp;diff=134061"/>
				<updated>2026-03-06T07:25:18Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Added numerical values of ThetaOffset&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theta of DH for PUMA model ==&lt;br /&gt;
&lt;br /&gt;
{{Note| For description of PUMA Denavit Hartenberg parameters please go to: '''[[PUMA_robot#Geometric.2C_Denavit-Hartenberg_.28DH.29_parameters_of_the_PUMA_robot| Puma DH]]'''}}&lt;br /&gt;
&lt;br /&gt;
{{Note | No need for user functions (PUMA_SET_THETA/PUMA_GET_THETA), you can use directly '''[[MC-Basic:robot.ThetaOffset | ThetaOffset]]''' property}}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Theta parameter was added for PUMA kinematics model, to support user-defined zero joint position ( {0,0,0,0,0,0} ) independently of robot actual pose.&lt;br /&gt;
&lt;br /&gt;
Same robot position (joint is {0,0,0,0,0,0}) with different THETA values:&lt;br /&gt;
&lt;br /&gt;
[[File:PUMAZERO.JPG|Zero Theta]] [[File:GRTZERO.JPG|Non zero theta]]&lt;br /&gt;
&lt;br /&gt;
On the left side is the PUMA robot in the zero reference position according to the internal model, with ThetaOffset = {0,0,0,0,0,0}.&lt;br /&gt;
&lt;br /&gt;
On the right side is the PUMA robot in a user-defined zero reference position, with ThetaOffset = {0,-90,180,0,0,0}.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;double PUMA_GET_THETA(int hndl, int i);&lt;br /&gt;
double PUMA_SET_THETA(int hndl,int i, double value);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remember to add in your PROTO.PRO file:&lt;br /&gt;
&amp;lt;pre&amp;gt;import_c PUMA_GET_THETA(byval as long, byval as long) as double&lt;br /&gt;
import_c PUMA_SET_THETA(byval as long, byval as long,byval as double) as double&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Algorithm ==&lt;br /&gt;
&lt;br /&gt;
Basically the &amp;lt;math&amp;gt;theta_i&amp;lt;/math&amp;gt; values are added in IK and DK to each of joint angle values.&lt;br /&gt;
&lt;br /&gt;
== Return Value ==&lt;br /&gt;
&lt;br /&gt;
If an error occurs (non-PUMA model or invalid index) both functions return -1&lt;br /&gt;
&lt;br /&gt;
If everything is OK, PUMA_SET_THETA returns 1&lt;br /&gt;
&lt;br /&gt;
== Availability ==&lt;br /&gt;
&lt;br /&gt;
Since version 4.5.15 &amp;lt;!-- [[Category:Mechatronics:AR-series robots]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Motion Control]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=Template:robot_model_table&amp;diff=134057</id>
		<title>Template:robot model table</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=Template:robot_model_table&amp;diff=134057"/>
				<updated>2026-01-21T15:33:11Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Added models 19 and 20&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;left&amp;quot; border=&amp;quot;1&amp;quot; summary=&amp;quot;This table lists all available Kinematics models in softMC&amp;quot;&lt;br /&gt;
|+ ''softMC robot-model codes:''&lt;br /&gt;
|-&lt;br /&gt;
! Description&lt;br /&gt;
! robot-model code&lt;br /&gt;
! point-type&lt;br /&gt;
|-&lt;br /&gt;
| no model&lt;br /&gt;
| -1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Cartesian&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Cartesian (Pitch &amp;amp; Roll)&lt;br /&gt;
| 1&lt;br /&gt;
| PR&lt;br /&gt;
|-&lt;br /&gt;
| Cartesian ( X and Y)&lt;br /&gt;
| 1&lt;br /&gt;
| XY&lt;br /&gt;
|-&lt;br /&gt;
| Cartesian (X , Y and Roll)&lt;br /&gt;
| 1&lt;br /&gt;
| XYR&lt;br /&gt;
|-&lt;br /&gt;
| Cartesian (X , Y and Z)&lt;br /&gt;
| 1&lt;br /&gt;
| XYZ&lt;br /&gt;
|-&lt;br /&gt;
| Cartesian (X , Y , Z and Roll)&lt;br /&gt;
| 1&lt;br /&gt;
| XYZR&lt;br /&gt;
|-&lt;br /&gt;
| Cartesian (X , Y , Z , Roll and Pitch)&lt;br /&gt;
| 1&lt;br /&gt;
| XYZRP&lt;br /&gt;
|-&lt;br /&gt;
| Cartesian (X , Y , Z ,Yaw , Roll and Pitch)&lt;br /&gt;
| 1&lt;br /&gt;
| XYZYPR&lt;br /&gt;
|-&lt;br /&gt;
| Puma&lt;br /&gt;
| 2&lt;br /&gt;
| XYZYPR&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;del&amp;gt;No Coupling&amp;lt;/del&amp;gt;&lt;br /&gt;
| &amp;lt;del&amp;gt;3&amp;lt;/del&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| '''SCARA (X, Y, Z and Roll)'''&lt;br /&gt;
| 4&lt;br /&gt;
| XYZR&lt;br /&gt;
|-&lt;br /&gt;
| SCARA (X, Y, Z )&lt;br /&gt;
| 4&lt;br /&gt;
| XYZ&lt;br /&gt;
|-&lt;br /&gt;
| User Defined&lt;br /&gt;
| 5&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| '''Delta(Flex Picker) (X, Y, Z and Roll)'''&lt;br /&gt;
| 6&lt;br /&gt;
| XYZR&lt;br /&gt;
|-&lt;br /&gt;
| Delta(Flex Picker) (X, Y, Z )&lt;br /&gt;
| 6&lt;br /&gt;
| XYZ&lt;br /&gt;
|-&lt;br /&gt;
| '''Traverse Arm (Speed Picker) (X, Y, Z and Roll)'''&lt;br /&gt;
| 7&lt;br /&gt;
| XYZR&lt;br /&gt;
|-&lt;br /&gt;
| Traverse Arm (Speed Picker) (X, Y, Z )&lt;br /&gt;
| 7&lt;br /&gt;
| XYZ&lt;br /&gt;
|-&lt;br /&gt;
| '''Scissor Kinematics (X, Y, Z and Roll)'''&lt;br /&gt;
| 8&lt;br /&gt;
| XYZR&lt;br /&gt;
|-&lt;br /&gt;
| Scissor Kinematics (X, Y, Z )&lt;br /&gt;
| 8&lt;br /&gt;
| XYZ&lt;br /&gt;
|-&lt;br /&gt;
| Chair Side Engine - 5ON&lt;br /&gt;
| 9&lt;br /&gt;
| XYZAB&lt;br /&gt;
|-&lt;br /&gt;
| Chair Side Engine - 5OFF&lt;br /&gt;
| 10&lt;br /&gt;
| XYZAB&lt;br /&gt;
|-&lt;br /&gt;
| 3PPPR&lt;br /&gt;
| 11&lt;br /&gt;
| XYR&lt;br /&gt;
|-&lt;br /&gt;
| Lab Side Engine - 5ON&lt;br /&gt;
| 12&lt;br /&gt;
| XYZAB&lt;br /&gt;
|-&lt;br /&gt;
| Lab Side Engine - 5OFF&lt;br /&gt;
| 13&lt;br /&gt;
| XYZAB&lt;br /&gt;
|-&lt;br /&gt;
| 4 Bar linkage&lt;br /&gt;
| 14&lt;br /&gt;
| XY&lt;br /&gt;
|-&lt;br /&gt;
| GSR&lt;br /&gt;
| 15&lt;br /&gt;
| XYZPR&lt;br /&gt;
|-&lt;br /&gt;
| EVEREST - 5ON&lt;br /&gt;
| 16&lt;br /&gt;
| XYZPR&lt;br /&gt;
|-&lt;br /&gt;
| EVEREST - 5OFF&lt;br /&gt;
| 17&lt;br /&gt;
| XYZPR&lt;br /&gt;
|-&lt;br /&gt;
| PALLETIZING ROBOT&lt;br /&gt;
| 18&lt;br /&gt;
| XYZR&lt;br /&gt;
|-&lt;br /&gt;
| Puma with wrist offset&lt;br /&gt;
| 19&lt;br /&gt;
| XYZYPR&lt;br /&gt;
|-&lt;br /&gt;
| Universal DH&lt;br /&gt;
| 20&lt;br /&gt;
| User Defined&lt;br /&gt;
|-&lt;br /&gt;
| Linear Delta robot&lt;br /&gt;
| 21&lt;br /&gt;
| XYZR&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:element.TOTALTIME&amp;diff=134056</id>
		<title>MC-Basic:element.TOTALTIME</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:element.TOTALTIME&amp;diff=134056"/>
				<updated>2026-01-18T12:03:18Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Added reference to CURRENTTIME&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:element.TOTALTIME}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&amp;lt;''element''&amp;gt;.Ttime&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;''element''&amp;gt;?Ttime&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
Versions Since Version 4.5.25 and higher&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
Returns the total time of the motion currently being executing. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Values: &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''-2''' – Not applicable (PrfType = 0 or 1).&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''-1 '''– No motion active. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''0''' – Cannot happen as there are no motions of zero duration. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''&amp;gt; 0''' – Total time of running motion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note| Note that in case of blending the '''TotalTime/CurrentTime''' of the first motion of the blending pair is returned! Once the blending ceased (only the second motion is executing, i.e. the first movement finished) the time values of the second motion are returned.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Long&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
-2 to MaxInt&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
milliseconds (ms)&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Read only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
'''Axis''' &amp;lt;br&amp;gt;&lt;br /&gt;
?''A1''.totaltime &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Group''' &amp;lt;br&amp;gt; &lt;br /&gt;
?''G1''totaltime&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:element.CURRENTTIME|CURRENTTIME]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:element.CURRENTTIME&amp;diff=134055</id>
		<title>MC-Basic:element.CURRENTTIME</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:element.CURRENTTIME&amp;diff=134055"/>
				<updated>2026-01-18T12:02:25Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Added reference to TOTALTIME&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:element.CURRENTTIME}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
element.Ctime&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
?&amp;lt;element&amp;gt;Ctime&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
Versions Since Version 4.5.25 and higher&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
Returns the total time of the currently executing motion. Values:&lt;br /&gt;
&lt;br /&gt;
-1 = No motion active&lt;br /&gt;
&lt;br /&gt;
-2 = Not applicable (PrfType = 0 or 1)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 0 = Current time of running motion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note| Note that in case of blending the '''TotalTime/CurrentTime''' of the first motion of the blending pair is returned! Once the blending ceased (only the second motion is executing, i.e. the first movement finished) the time values of the second motion are returned.}}&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Long&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
-2…MaxInt&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
milliseconds&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task, terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Read-only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
'''Axis''' &amp;lt;br&amp;gt; &lt;br /&gt;
?''A1''.currenttime &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Group''' &amp;lt;br&amp;gt; &lt;br /&gt;
?''G1''.currenttime &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:element.TOTALTIME|TOTALTIME]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=Robot_Working_Frames&amp;diff=134053</id>
		<title>Robot Working Frames</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=Robot_Working_Frames&amp;diff=134053"/>
				<updated>2026-01-11T07:14:23Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Switched Base and World frames&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Robot_Working_Frames}} &lt;br /&gt;
= Robot Working Frames =&lt;br /&gt;
&lt;br /&gt;
== TOOL ==&lt;br /&gt;
&lt;br /&gt;
Tool is a Robot property which informs the system to use the specified location as the tool transformation. It defines the position and orientation of the tool tip in relation to the center of the tool flange. The default tool transformation is the NULL transformation, which can be expressed as TOOL = #{0,0,0,0,0,0} Example: Puma.tool = #{25,0,100,0,45,0}&lt;br /&gt;
&lt;br /&gt;
[[File:Axy;Tool frame.png|RTENOTITLE]]&lt;br /&gt;
&lt;br /&gt;
Another example of tool coordinate calculation:&amp;lt;br/&amp;gt; [[File:RBT FRAMES TOOL.PNG|RTENOTITLE]]&lt;br /&gt;
&lt;br /&gt;
== BASE ==&lt;br /&gt;
&lt;br /&gt;
Base is a Robot property which informs the system to use the specified location as the base transformation. It defines the position and orientation of the robot's base reference frame relative to the WORLD reference frame. The default base transformation is the NULL transformation, which can be expressed as Puma.base = #{0,0,0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
[[File:RBT FRAMES BASE2.PNG|RTENOTITLE]]&lt;br /&gt;
&lt;br /&gt;
== MachineTable ==&lt;br /&gt;
&lt;br /&gt;
MachineTable is a Robot property which informs the system to use the specified location as the machinetable transformation. It defines the position and orientation of a machine table reference frame relative to the WORLD reference frame. The default machinetable transformation is the NULL transformation, which can be expressed as Puma.MachineTable = #{0,0,0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
[[File:RBT FRAMES MT.PNG|RTENOTITLE]]&lt;br /&gt;
&lt;br /&gt;
{{Note| The inverse usage of MachineTable and WorkPiece properties!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WorkPiece ==&lt;br /&gt;
&lt;br /&gt;
WorkPiece is a Robot property which informs the system to use the specified location as the workpiece transformation. It defines the position and orientation of a work-piece relative to the MACHINE TABLE reference frame. The default WorkPiece transformation is the NULL transformation, which can be expressed as Puma.WorkPiece = #{0,0,0,0,0,0}&lt;br /&gt;
&lt;br /&gt;
[[File:RBT FRAMES WP.PNG|RTENOTITLE]]&lt;br /&gt;
&lt;br /&gt;
{{Note| The inverse usage of MachineTable and WorkPiece properties!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== All frames together ==&lt;br /&gt;
&lt;br /&gt;
[[File:AXY;Robot Working Farmes2.png|RTENOTITLE]]&lt;br /&gt;
&lt;br /&gt;
So we have:&lt;br /&gt;
&lt;br /&gt;
'''Pworld=Base:PBase:Tool'''&amp;lt;br/&amp;gt; '''Pworld=MachineTable:WorkPiece:PWorkP'''&lt;br /&gt;
&lt;br /&gt;
For the given setup, the user frames will be:&amp;lt;br/&amp;gt; '''Base = #{300,200,1000,0,180,180}'''&amp;lt;br/&amp;gt; '''Tool = #{50,0,0,90,45,0}'''&amp;lt;br/&amp;gt; '''MachineTable = #{400,100,0,0,0,0}'''&amp;lt;br/&amp;gt; '''WorkPiece = #{20,70,150,0,90,-90}'''&lt;br /&gt;
&lt;br /&gt;
Therefore we have:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''PWP= WorkPiece&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;: MachineTable&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;:Base:PBase:Tool'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
{{Note| The inverse usage of MachineTable and WorkPiece properties!}}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[MC-Basic:robot.TOOL|TOOL]] &lt;br /&gt;
*[[MC-Basic:robot.BASE|BASE]] &lt;br /&gt;
*[[MC-Basic:robot.WORKPIECE|WORKPIECE]] &lt;br /&gt;
*[[MC-Basic:robot.MACHINETABLE|MACHINETABLE]] &lt;br /&gt;
*[[User_Frame|User Frame]] &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
[[Category:Motion Control]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:element.TIMEOFSHORTMOTIONS&amp;diff=134051</id>
		<title>MC-Basic:element.TIMEOFSHORTMOTIONS</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:element.TIMEOFSHORTMOTIONS&amp;diff=134051"/>
				<updated>2026-01-01T13:30:13Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Hallel moved page MC-Basic:axis.TIMEOFSHORTMOTIONS to MC-Basic:element.TIMEOFSHORTMOTIONS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:axis.TIMEOFSHORTMOTIONS}}&lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&amp;lt;''axis''&amp;gt;.TSHORT&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;''axis''&amp;gt;.TSHORT=&amp;lt;''numeric expression''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
Since Version 4.4.x&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
Defines the lower threshold below which TACCMIN and TDECMIN no longer affect motion. If the actual values of acceleration (or deceleration) time is below this limit, the entire excitation-limiting algorithm (TACCMIN and TDECMIN) is switched off. &lt;br /&gt;
&lt;br /&gt;
{{Note/Caution|The value of TSHORT is compared to acceleration/deceleration time only, and not to the entire duration of movement. Therefore, long movements with a long cruise-velocity phase and short acceleration/deceleration times could trigger the switch-off of the excitation-limiting algorithm. For best results, use small values (1 to 4 ms).}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Setting one of TACCMIN, TDECMIN or TSHORT to 0, completely disables the entire timing feature (excitation-limiting algorithm)}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Long&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
0 to  maxlong&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
milliseconds (ms)&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
0 – Not active&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
*Modal/Nodal&lt;br /&gt;
*Read/Write&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
A1.timeaccmin = 500&lt;br /&gt;
&lt;br /&gt;
A1.timedecmin = 1000&lt;br /&gt;
&lt;br /&gt;
A1.timeofshortmotions = 200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:element.TIMEACCMIN|TACCCMIN]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:axis.TIMEOFSHORTMOTIONS&amp;diff=134052</id>
		<title>MC-Basic:axis.TIMEOFSHORTMOTIONS</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:axis.TIMEOFSHORTMOTIONS&amp;diff=134052"/>
				<updated>2026-01-01T13:30:13Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Hallel moved page MC-Basic:axis.TIMEOFSHORTMOTIONS to MC-Basic:element.TIMEOFSHORTMOTIONS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[MC-Basic:element.TIMEOFSHORTMOTIONS]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMSQ_IXX&amp;diff=134050</id>
		<title>MC-Basic:element.PAYLOADMASSRMSQ IXX</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMSQ_IXX&amp;diff=134050"/>
				<updated>2025-12-23T14:41:22Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:element.PAYLOADMASSRMASSSQIXX}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
''&amp;lt;element&amp;gt;''.PayloadMassRmSq_Ixx = &amp;lt;''expression''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
Since Version 4.20&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
Payload mass times the distance to the center of mass (C.M) distance in the tool's z direction squared plus the Inertia of the payload in the tool's x direction - M*Lz^2 + Ixx&lt;br /&gt;
&lt;br /&gt;
This value is considered during the computation of joint torques by the [[MC-Basic:element.DYNAMICMODEL|dynamic model]].&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Double&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Kg*m^2&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
0.0&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task and Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* Read/Write&lt;br /&gt;
* Modal only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[Motion Dynamics]]&lt;br /&gt;
* [[MC-Basic:element.PAYLOADMASS|element.PAYLOADMASS]]&lt;br /&gt;
* [[MC-Basic:element.PAYLOADINERTIA|robot.PAYLOADINERTIA]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Motion Dynamics]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMSQ_IXX&amp;diff=134048</id>
		<title>MC-Basic:element.PAYLOADMASSRMSQ IXX</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMSQ_IXX&amp;diff=134048"/>
				<updated>2025-12-23T14:40:43Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Hallel moved page MC-Basic:element.PAYLOADMASSRMASSSQIXX to MC-Basic:element.PAYLOADMASSRMSQ IXX&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:element.PAYLOADMASSRMASSSQIXX}}&lt;br /&gt;
&lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
''&amp;lt;element&amp;gt;''.PayloadMassRMassSqIxx = &amp;lt;''expression''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
Since Version 4.20&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
Payload mass times the distance to the center of mass (C.M) distance in the tool's z direction squared plus the Inertia of the payload in the tool's x direction  - M*Lz^2 + Ixx&lt;br /&gt;
&lt;br /&gt;
This value is considered during the computation of joint torques by the [[MC-Basic:element.DYNAMICMODEL|dynamic model]].&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Double&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Kg*m^2&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
0.0&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task and Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* Read/Write&lt;br /&gt;
* Modal only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[Motion Dynamics]]&lt;br /&gt;
* [[MC-Basic:element.PAYLOADMASS|element.PAYLOADMASS]]&lt;br /&gt;
* [[MC-Basic:element.PAYLOADINERTIA|robot.PAYLOADINERTIA]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Motion Dynamics]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMASSSQIXX&amp;diff=134049</id>
		<title>MC-Basic:element.PAYLOADMASSRMASSSQIXX</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMASSSQIXX&amp;diff=134049"/>
				<updated>2025-12-23T14:40:43Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Hallel moved page MC-Basic:element.PAYLOADMASSRMASSSQIXX to MC-Basic:element.PAYLOADMASSRMSQ IXX&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[MC-Basic:element.PAYLOADMASSRMSQ IXX]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMG&amp;diff=134047</id>
		<title>MC-Basic:element.PAYLOADMASSRMG</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMG&amp;diff=134047"/>
				<updated>2025-12-23T14:37:32Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:element.PAYLOADMASSRMASSG}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
''&amp;lt;robot&amp;gt;''.PayloadMassRMG = &amp;lt;''expression''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
Since Version 4.20&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
Payload mass times the distance to the center of mass (C.M) distance in the tool's z direction times gravity - M*Lz*G&lt;br /&gt;
&lt;br /&gt;
This value is considered during the computation of joint torques by the [[MC-Basic:element.DYNAMICMODEL|dynamic model]].&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Double&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Kg*m^2/sec^2&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
0.0&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task and Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* Read/Write&lt;br /&gt;
* Modal only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[Motion Dynamics]]&lt;br /&gt;
* [[MC-Basic:element.PAYLOADMASS|element.PAYLOADMASS]]&lt;br /&gt;
* [[MC-Basic:element.PAYLOADINERTIA|robot.PAYLOADINERTIA]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Motion Dynamics]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMG&amp;diff=134045</id>
		<title>MC-Basic:element.PAYLOADMASSRMG</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMG&amp;diff=134045"/>
				<updated>2025-12-23T14:37:04Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Hallel moved page MC-Basic:element.PAYLOADMASSRMASSG to MC-Basic:element.PAYLOADMASSRMG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:element.PAYLOADMASSRMASSG}}&lt;br /&gt;
&lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
''&amp;lt;robot&amp;gt;''.PayloadMassRMass = &amp;lt;''expression''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
Since Version 4.20&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
Payload mass times the distance to the center of mass (C.M) distance in the tool's z direction times gravity  - M*Lz*G&lt;br /&gt;
&lt;br /&gt;
This value is considered during the computation of joint torques by the [[MC-Basic:element.DYNAMICMODEL|dynamic model]].&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Double&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Kg*m^2/sec^2&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
0.0&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task and Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* Read/Write&lt;br /&gt;
* Modal only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[Motion Dynamics]]&lt;br /&gt;
* [[MC-Basic:element.PAYLOADMASS|element.PAYLOADMASS]]&lt;br /&gt;
* [[MC-Basic:element.PAYLOADINERTIA|robot.PAYLOADINERTIA]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Motion Dynamics]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMASSG&amp;diff=134046</id>
		<title>MC-Basic:element.PAYLOADMASSRMASSG</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMASSG&amp;diff=134046"/>
				<updated>2025-12-23T14:37:04Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Hallel moved page MC-Basic:element.PAYLOADMASSRMASSG to MC-Basic:element.PAYLOADMASSRMG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[MC-Basic:element.PAYLOADMASSRMG]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRM&amp;diff=134044</id>
		<title>MC-Basic:element.PAYLOADMASSRM</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRM&amp;diff=134044"/>
				<updated>2025-12-23T14:36:01Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:element.PAYLOADMASSRMASS}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
''&amp;lt;element&amp;gt;''.PayloadMassRM = &amp;lt;''expression''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
Since Version 4.20&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
Payload mass times the distance to the center of mass (C.M) distance in the tool's z direction - M*Lz&lt;br /&gt;
&lt;br /&gt;
This value is considered during the computation of joint torques by the [[MC-Basic:element.DYNAMICMODEL|dynamic model]].&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Double&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Kg*m&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
0.0&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task and Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* Read/Write&lt;br /&gt;
* Modal only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[Motion Dynamics]]&lt;br /&gt;
* [[MC-Basic:element.PAYLOADMASS|element.PAYLOADMASS]]&lt;br /&gt;
* [[MC-Basic:element.PAYLOADINERTIA|robot.PAYLOADINERTIA]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Motion Dynamics]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRM&amp;diff=134042</id>
		<title>MC-Basic:element.PAYLOADMASSRM</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRM&amp;diff=134042"/>
				<updated>2025-12-23T14:35:36Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Hallel moved page MC-Basic:element.PAYLOADMASSRMASS to MC-Basic:element.PAYLOADMASSRM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:element.PAYLOADMASSRMASS}}&lt;br /&gt;
&lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
''&amp;lt;element&amp;gt;''.PayloadMassRMass = &amp;lt;''expression''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
Since Version 4.20&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
Payload mass times the distance to the center of mass (C.M) distance in the tool's z direction - M*Lz&lt;br /&gt;
&lt;br /&gt;
This value is considered during the computation of joint torques by the [[MC-Basic:element.DYNAMICMODEL|dynamic model]].&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Double&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Kg*m&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
0.0&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task and Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
* Read/Write&lt;br /&gt;
* Modal only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[Motion Dynamics]]&lt;br /&gt;
* [[MC-Basic:element.PAYLOADMASS|element.PAYLOADMASS]]&lt;br /&gt;
* [[MC-Basic:element.PAYLOADINERTIA|robot.PAYLOADINERTIA]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Motion Dynamics]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMASS&amp;diff=134043</id>
		<title>MC-Basic:element.PAYLOADMASSRMASS</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:element.PAYLOADMASSRMASS&amp;diff=134043"/>
				<updated>2025-12-23T14:35:36Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Hallel moved page MC-Basic:element.PAYLOADMASSRMASS to MC-Basic:element.PAYLOADMASSRM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[MC-Basic:element.PAYLOADMASSRM]]&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=Programmable_Limit_Switch&amp;diff=134041</id>
		<title>Programmable Limit Switch</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=Programmable_Limit_Switch&amp;diff=134041"/>
				<updated>2025-11-14T10:55:34Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: Added pls.plsoutputtoggle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Programmable_Limit_Switch}}&lt;br /&gt;
&amp;lt;div id=&amp;quot;BackToTop&amp;quot;  class=&amp;quot;noprint&amp;quot; style=&amp;quot;background-color:; position:fixed; bottom:32px; left:95%; z-index:9999; padding:0; margin:0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:blue; font-size:8pt; font-face:verdana,sans-serif; border:0.2em outset:#ceebf7; padding:0.1em; font-weight:bolder; -moz-border-radius:8px; &amp;quot;&amp;gt;&lt;br /&gt;
[[Image:TOP2.png|50px|link=#top]] &amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=PLS Overview=&lt;br /&gt;
A programmable limit switch (PLS) monitors position feedback on both real and simulated axes. When the axis reaches any of the defined PLS positions, &amp;lt;br&amp;gt; the PLS toggles the state of a specified system output, either digital or simulated.&amp;lt;br&amp;gt;&lt;br /&gt;
A PLS offers more flexibility than a limit switch, as it allows many trip points and can be reconfigured on-the-fly.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
PLS positions are defined in an array and must have values that are monotonic increasing. &amp;lt;br&amp;gt;&lt;br /&gt;
Any number of positions can be defined for a PLS.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Any number of PLS switches can be defined for an element (axis or group). However, the number of defined PLS switches will have a direct affect on system performance.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The PLS is scanned at a rate of once per motion bus cycle.&amp;lt;br&amp;gt;&lt;br /&gt;
Implementation of PLS in the Product includes three types of functionalty:&lt;br /&gt;
*'''Axis-PLS''': PLS positions defined for an axis&lt;br /&gt;
*'''Path-PLS''': PLS positions defined according to a motion path&lt;br /&gt;
*'''High accuracy PLS''': PLS positions are extrapolated and set based on system position, speed and acceleration. For use in high speed applications.&lt;br /&gt;
&lt;br /&gt;
=PLS Functional Description=&lt;br /&gt;
&lt;br /&gt;
==Output State==&lt;br /&gt;
A PLS toggles an output when a specified position is reached. The state is toggled each time the position is reached,&amp;lt;br&amp;gt;&lt;br /&gt;
irrespective of the direction of motor travel.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AXY;PLS_description.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==PLS Polarity==&lt;br /&gt;
The property ''PLSPolarity'' allows you to control the initial polarity of the PLS output, which is specified as 1 or 0. The default value is 0.&amp;lt;br&amp;gt;&lt;br /&gt;
The output state is set when the PLS is enabled (''PLSEnable'').&amp;lt;br&amp;gt; &lt;br /&gt;
The state of the output is determined by the axis position at the moment of ''PLSEnable'', according to the following scheme:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If PCMD &amp;lt; PLSPosition[1] &lt;br /&gt;
::Output = negative PLSPolarity (=1)&lt;br /&gt;
If PCMD &amp;gt;= PLSPosition[1] and PCMD &amp;lt; PLSPosition[2] &lt;br /&gt;
::Output = PLSPolarity (=0) &lt;br /&gt;
If PCMD &amp;gt;= PLSPosition[2] and PCMD &amp;lt; PLSPosition[3] &lt;br /&gt;
::Output = negative PLSPolarity (=1) &lt;br /&gt;
&lt;br /&gt;
Consider the following example. The PLS positions are 10, 25, 30, 50 and 65. Polarity is 0. Once the PLS is enabled, &amp;lt;br&amp;gt;&lt;br /&gt;
the output state will toggle on and off according to the location of the axis. Assuming PLS is enabled before position 10, &amp;lt;br&amp;gt;&lt;br /&gt;
the output will toggle on at 10, remain on between 10 and 25, and toggle off between 25 and 30, and so on.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:AXY;PLS_plolarity_description.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==PLS Position Data==&lt;br /&gt;
When a PLS is first defined, it does not have any associated positions. The CreatePLSData command is used to define the values for the PLS positions.&amp;lt;br&amp;gt; An unlimited number of PLS positions can be defined, but the array must be monotonic increasing.&amp;lt;br&amp;gt; &lt;br /&gt;
PLS position values are always absolute (and not incremental). PLS positions are given in user units, and as such are affected by axis Displacement and PositionFactor properties.&amp;lt;br&amp;gt;&lt;br /&gt;
Consider the following example. Positions 100 and 200 are specified, and the initial state of the digital output after enabling is 0.&amp;lt;br&amp;gt;&lt;br /&gt;
The following table shows how the state of output changes as the position changes.&amp;lt;br&amp;gt;&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; &lt;br /&gt;
|'''Position'''||'''Output State'''&lt;br /&gt;
|-&lt;br /&gt;
|0||0&lt;br /&gt;
|-&lt;br /&gt;
|100||1 (Toggle)&lt;br /&gt;
|-&lt;br /&gt;
|150||1 (No change)&lt;br /&gt;
|-&lt;br /&gt;
|200||0 (Toggle)&lt;br /&gt;
|-&lt;br /&gt;
|210||0 (No change yet)&lt;br /&gt;
|-&lt;br /&gt;
|200||1 (Toggle again)&lt;br /&gt;
|-&lt;br /&gt;
|150||1 (No change)&lt;br /&gt;
|-&lt;br /&gt;
|100||0 (Toggle again)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:AXY;Multiple_PLS_positions.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==Hysteresis==&lt;br /&gt;
If an axis stops at a specified PLS position, the state of the digital output may be continually toggled, due to slight oscillations in the actual axis position.&amp;lt;br&amp;gt;&lt;br /&gt;
To accommodate this behavior, Product allows you to apply a hysteresis value around the output toggle positions.&amp;lt;br&amp;gt;&lt;br /&gt;
Typically, 5 to 10 encoder counts (converted to position units) is sufficient.&amp;lt;br&amp;gt;&lt;br /&gt;
The output state is toggled when the PLS position is reached and surpassed by the hysteresis value.&amp;lt;br&amp;gt;&lt;br /&gt;
The following example shows a hysteresis value of 10; the output will toggle ON at position 110. It will toggle OFF at position 90.&amp;lt;br&amp;gt; &lt;br /&gt;
If the axis driving the PLS stops at a PLS position within the hysterisis range, the PLS state does not change.&amp;lt;br&amp;gt;&lt;br /&gt;
Hysteresis is necessary only if the system stops on or near a PLS position. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:AXY;Hysteresis_in_PLS_position.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==Repetition Interval==&lt;br /&gt;
PLS positions may be repeated continually at a specified interval of encoder counts.&amp;lt;br&amp;gt;&lt;br /&gt;
The repetition interval must be both positive and greater than the absolute value difference between the lowest and highest PLS position values. That is:&amp;lt;br&amp;gt;&lt;br /&gt;
::Repetition Interval &amp;gt; abs(PLS_Pos_Max - PLS_Pos_Min)&lt;br /&gt;
Consider the following example:&lt;br /&gt;
*PLS position values: -300, 100, 200&lt;br /&gt;
*Repetition Interval: 2000&lt;br /&gt;
*Polarity: 0&lt;br /&gt;
The output state is toggled at -300, 100, 200, and at 1700 (-300 + 2000), 2100 (100+2000), 2200, and at 3700 (-300 + 2000 + 2000), and so on in the position direction. &amp;lt;br&amp;gt;&lt;br /&gt;
In the negative direction, the output state is toggled at -1800 (200 - 2000), -1900 (100 - 2000), -2300 (-300 - 2000), -3800, and so on.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:AXY;PLS_Repetition_Interval.jpeg]]&lt;br /&gt;
&lt;br /&gt;
==Enable and Disable==&lt;br /&gt;
When first defined, the PLS is disabled.&amp;lt;br&amp;gt;&lt;br /&gt;
Once the PLS is enabled, the output is set according to the polarity and position, and the output pattern is generated.&amp;lt;br&amp;gt;&lt;br /&gt;
The PLS must be disabled when modifying PLS properties. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= PLS Commands and Properties =&lt;br /&gt;
&lt;br /&gt;
PLS Commands and Properties.&lt;br /&gt;
&lt;br /&gt;
The following commands and properties are used for defining and using PLS functionality in a Product system.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''MC-Basic'''&lt;br /&gt;
| '''Command/Property'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:COMMON_SHARED_..._AS_PLS|COMMON SHARED &amp;lt;''PLS name''&amp;gt; AS PLS &amp;lt;''axis''&amp;gt; &amp;lt;''output''&amp;gt;]]&lt;br /&gt;
| Command&lt;br /&gt;
| Declares a PLS variable. The name of the element and the output associated with the PLS are specified in the declaration.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:CREATEPLSDATA|CreatePlsData]]&lt;br /&gt;
| Command&lt;br /&gt;
| Creates a PLS data table containing the positions associated with a defined PLS.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:DELETEPLS|DeletePls]]&lt;br /&gt;
| Command&lt;br /&gt;
| Deletes a defined PLS and all actions associated with that PLS.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:PLSLIST|PLSList]]&lt;br /&gt;
| Command&lt;br /&gt;
| Returns a list of the PLS names defined in the system.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:WITHPLS|WithPLS]]&lt;br /&gt;
| Command&lt;br /&gt;
| Nodal assignment of path-PLS. Enables path-PLS at the start of motion.&amp;lt;br/&amp;gt; The specified PLSes will be enabled during execution of the specified motion and disabled when the motion ends.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.HWASSISTANCE|HWAssistance]]&lt;br /&gt;
| Property&lt;br /&gt;
| Enables/disables high-accuracy (hardware-enabled) PLS mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.HWIOtime|HWIOtime]]&lt;br /&gt;
| Property&lt;br /&gt;
| Returns the current contents of the hardware time buffers. Applicable only to high-accuracy PLS.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.PLSAXISNAME|PLSAxisName/PLSElementName]]&lt;br /&gt;
| Property&lt;br /&gt;
| Returns the name of the axis or group for which the specified PLS is defined.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.PLSdelaytime|PLSDelayTime]]&lt;br /&gt;
| Property&lt;br /&gt;
| Returns the current contents of the PLS time buffers.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.PLSENABLE|PLSEnable]]&lt;br /&gt;
| Property&lt;br /&gt;
| Enables or disables the PLS functionality.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.plsoutputtoggle|PLSOutputToggle]]&lt;br /&gt;
| Property&lt;br /&gt;
| Whether the output toggles only once or repeatedly.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.PLSHYSTERESIS|PLSHysteresis]]&lt;br /&gt;
| Property&lt;br /&gt;
| Sets or queries the hysteresis level of a PLS.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.PLSOUTPUT|PLSOutput]]&lt;br /&gt;
| Property&lt;br /&gt;
| Sets or queries the system output associated with a PLS.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.PLSPOLARITY|PLSPolarity]]&lt;br /&gt;
| Property&lt;br /&gt;
| Sets or queries the initial polarity associated with a PLS.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.PLSPOSITION|PLSPosition]]&lt;br /&gt;
| Property&lt;br /&gt;
| Sets or queries an individual PLS position.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.PLSPropagationDelay|PLSPropagationDelay]]&lt;br /&gt;
| Property&lt;br /&gt;
| 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.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.PLSPropagationDisableDelay|PLSPropagationDisableDelay]]&lt;br /&gt;
| Property&lt;br /&gt;
| Propagation delay value, used when the PLS sets the external device to the disabled state.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.PLSPropagationEnableDelay|PLSPropagationEnableDelay]]&lt;br /&gt;
| Property&lt;br /&gt;
| Propagation delay value, used when the PLS sets the external device to the enabled state.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.PLSRELATEDTO|PLSRelatedTo]]&lt;br /&gt;
| Property&lt;br /&gt;
| Flag used by PLSSource to define whether relative PLS position values are computed relative to the start of motion or the target position.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:pls.PLSREPEAT|PLSRepeat]]&lt;br /&gt;
| Property&lt;br /&gt;
| Sets or queries the repetition interval of the PLS positions.&lt;br /&gt;
|-&lt;br /&gt;
| [[MC-Basic:element.PLSSOURCE|PLSSource]]&lt;br /&gt;
| Propert&lt;br /&gt;
| Defines certain attributes of PLS positions.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=Axis-PLS Programming Sequence=&lt;br /&gt;
&lt;br /&gt;
==Step 1 – Declare==&lt;br /&gt;
Create the PLS using [[MC-Basic:COMMON SHARED ... AS PLS|COMMON SHARED ... AS PLS]] in 'Config.Prg' or in the terminal. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The declaration must define a name for the PLS, specify the element that drives the PLS, and specify the output controlled by the PLS. &amp;lt;br&amp;gt;&lt;br /&gt;
The PLS is disabled until activated by '''PLSEnable=1'''.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following example sets up 'MyPLS' as a PLS driven by axis A1 connected to system digital output 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Common Shared MyPLS as PLS A1 System.Dout.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default, the PLS has the following properties:&lt;br /&gt;
*One PLS position, set to 0.&lt;br /&gt;
*PLSPolarity = 0 (initial polarity of the PLS output off).&lt;br /&gt;
*PLSRepeat = 0 (no repetition)&lt;br /&gt;
*PLSHysteresis = 0 (no hysteresis)&lt;br /&gt;
See: [[Input/Output|Input/Output]].&lt;br /&gt;
&lt;br /&gt;
==Step 2 – Positions==&lt;br /&gt;
Create the PLS data structure and define the PLS position data using [[MC-Basic:CREATEPLSDATA|CreatePlsData]]. &amp;lt;br&amp;gt;&lt;br /&gt;
The position array is 1- based, and position values must be monotonic increasing.&amp;lt;br&amp;gt;&lt;br /&gt;
An attempt to access an index outside the array will produce an error.&amp;lt;br&amp;gt;&lt;br /&gt;
For example:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CreatePLSData 4 MyPLS&lt;br /&gt;
MyPLS.PLSPosition[1] = 1000&lt;br /&gt;
MyPLS.PLSPosition[2] = 1100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternately, use the short form PPOS instead of PLSPosition:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyPLS.Ppos[3] = 2000&lt;br /&gt;
MyPLS.Ppos[4] = 2200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Step 3 – Initial Polarity==&lt;br /&gt;
Set the initial polarity of the PLS output using [[MC-Basic:pls.PLSPOLARITY|PLSPolarity]]&amp;lt;br&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
PLSPolarity default is 0 (off), indicating the PLS output will toggle on at the first PLS position.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Change the initial polarity to 1 (on):&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyPLS.PLSPolarity = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PLSPOLARITY defaults to off, indicating the PLS state will be off after the first PLS position. &lt;br /&gt;
&lt;br /&gt;
==Step 4 – Repetition==&lt;br /&gt;
To repeat the PLS function at recurring intervals, set the value of PLSRepeat to a non-zero, positive number. &amp;lt;br&amp;gt;&lt;br /&gt;
For example, repeat the PLS at every 10,000 position units:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyPLS.PLSRepeat = 10000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Step 5 – Hysterisis==&lt;br /&gt;
Set [[MC-Basic:pls.PLSHYSTERESIS|PLSHysteresis]] if the application requires it. Otherwise, leave it set to 0. The value is in user units.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyPLS.PLSHysteresis = 0.01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Step 6 – Enable==&lt;br /&gt;
Enable the PLS:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyPLS.PLSEnable = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional PLS Programming Instructions==&lt;br /&gt;
&lt;br /&gt;
===PLS State===&lt;br /&gt;
&lt;br /&gt;
The PLS must be disabled in order to modify various PLS properties, modify PLS position values, and delete a PLS.&amp;lt;br&amp;gt;&lt;br /&gt;
Disabling a PLS also helps conserve CPU resources.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disable a PLS:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyPLS.PLSEnable = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable a PLS:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyPLS.PLSEnable = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Query the state of a PLS:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
?MyPls.PLSEnable&lt;br /&gt;
if(MyPLS.PLSEnable = 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Drive an event via PLSEnable:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EventOn MyEvent MyPLS.PLSOutput = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Delete a PLS===&lt;br /&gt;
A PLS can be removed from the system only when the PLS is disabled and there are no tasks in memory.&amp;lt;br&amp;gt;&lt;br /&gt;
Delete a PLS:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DeletePLS MyPLS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Query the PLS Axis Name===&lt;br /&gt;
Query the name of the axis that activates the PLS:&amp;lt;Br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
?MyPLS.PLSAxisName&lt;br /&gt;
MyPLS.PLSAxisName = AXIS1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Query the PLS Output State===&lt;br /&gt;
Query the state of the PLS output by querying the digital output associated with the PLS. &amp;lt;Br&amp;gt;&lt;br /&gt;
For example, if PLS output is assigned to SYSTEM.DOUT.1, query the state of SYSTEM.DOUT.1:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
?Sys.Dout.1&lt;br /&gt;
Sys.Dout.1 = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Axis-PLS Program Example – PLS Setup===&lt;br /&gt;
The following program example demonstrates the set up of a PLS data structure.&amp;lt;br&amp;gt;&lt;br /&gt;
:'''NOTE''': The PLS data object must first be defined in Config.prg or Terminal:&amp;lt;br&amp;gt;&lt;br /&gt;
:::Common Shared &amp;lt;PLS Name&amp;gt; as PLS &amp;lt;Axis&amp;gt; System.Dout.&amp;lt;DOut number&amp;gt;&lt;br /&gt;
[[PLS_SETUP_PROCEDURE|PLS SETUP PROCEDURE PROGRAM EXAMPLE]]&lt;br /&gt;
&lt;br /&gt;
=PLS Source=&lt;br /&gt;
'''PLSSource''' defines the type of position that toggles the PLS output.&amp;lt;br&amp;gt;&lt;br /&gt;
The following table shows how PLSSource defines the PLS position for axis-PLS and path PLS.&amp;lt;br&amp;gt;&lt;br /&gt;
PLSSource can be based either on an absolute position (either XYZ or axis), or on a position relative to the current movement. The difference is evident only during motion blending (and not more than 2 motions). &amp;lt;br&amp;gt;&lt;br /&gt;
When PLSSource is relative, and actual blending occurs (the time during which two motions are executed simultaneously), the system executes two separate PLS events.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; &lt;br /&gt;
|'''Source'''||'''Description'''||'''Absolute/Relative'''||'''Axis PLS'''||'''Path PLS'''&lt;br /&gt;
|-&lt;br /&gt;
|PositionCommand||Axis position command||Absolute||Yes||–&lt;br /&gt;
|-&lt;br /&gt;
|PositionFeedback||Axis position feedback||Absolute||Yes||-&lt;br /&gt;
|-&lt;br /&gt;
|PositionExternal||External position||Absolute||Yes||–&lt;br /&gt;
|-&lt;br /&gt;
|Setpoint1||X axis position (Setpoint{1} value)||Absolute||–||Yes&lt;br /&gt;
|-&lt;br /&gt;
|Setpoint2||Y axis position (Setpoint{2} value)||Absolute||–||Yes&lt;br /&gt;
|-&lt;br /&gt;
|Setpoint3||Z axis position (Setpoint{3} value)||Absolute||–||Yes&lt;br /&gt;
|-&lt;br /&gt;
|PathLength||Distance on the path, in user units||Relative to start/ target position||Yes||Yes &lt;br /&gt;
|-&lt;br /&gt;
|PathPercentage||Percentage of the path||Relative to start/ target position||Yes||Yes&lt;br /&gt;
|-&lt;br /&gt;
|PathTime||Time duration, in milliseconds||Relative to start/ target position||Yes||Yes&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Path Percentage and Path Length==&lt;br /&gt;
'''PathPercentage''' and '''PathLength''' are are discontinuous variables that change their value abruptly at the transition point between two consecutive movements.&amp;lt;br&amp;gt;&lt;br /&gt;
'''PathPercentage''' is a percentage of the motion path from the start position. It has no physical attribute. This variable is universal, as it can be used for all types of motions.&amp;lt;br&amp;gt;&lt;br /&gt;
It can be very useful in motions having a dominant orientation.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Example''': At point A, the source value changes from 100 to 0.&lt;br /&gt;
*MOVE A  PLSSource 0 → 100&lt;br /&gt;
*MOVE B  PLSSource 0 → 100&lt;br /&gt;
For '''PathPercentage''', the values of [[MC-Basic:pls.PLSPOSITION|PLSPosition]], [[MC-Basic:pls.PLSHYSTERESIS|PLSHysteresis]] and [[MC-Basic:pls.PLSREPEAT|PLSRepetition]] are percentages on a scale of 0 to 100. Negative values are considered 0; values greater than 100 are considered 100.&amp;lt;br&amp;gt;&lt;br /&gt;
'''PathLength''' is the distance of the position from the start position, in position user units, such as millimeters.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Example''': At point A, the source value changes from L1 to 0.&amp;lt;br&amp;gt;&lt;br /&gt;
*MOVE A  PLSSource 0 → L1&lt;br /&gt;
*MOVE B  PLSSource 0 → L2&lt;br /&gt;
In a straight line motion (MOVES), '''PathLength''' is the distance from the start position.&amp;lt;br&amp;gt;&lt;br /&gt;
In a joint interpolated motion (MOVE), '''PathLength''' has no physical attribute.&amp;lt;br&amp;gt;&lt;br /&gt;
In circular interpolation, you can set '''PathLength''' as either the arc length or the angle from the start position.&amp;lt;br&amp;gt;&lt;br /&gt;
If units are not '''homogenous''', the value in aggregate units is used for '''PathLength'''. For circular interpolation this will be the angle on the circle-arc from the start position.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Path Time==&lt;br /&gt;
Path time is the time elapsed from the start of the motion. &amp;lt;br&amp;gt;&lt;br /&gt;
Path time is applicable only in time-based profiles (PRFTYPE = 2).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setpoints==&lt;br /&gt;
Setpoints are XYZ coordinates. This is the easiest method of defining a [[MC-Basic:element.PLSSOURCE|PLSsource]], as it can be applied to any type of motion interpolation. &amp;lt;br&amp;gt;&lt;br /&gt;
However, it may cause multiple triggering of the [[MC-Basic:pls.PLSPOSITION|PLSPosition]] during one movement.&amp;lt;br&amp;gt;&lt;br /&gt;
Setpoint sources are defined in the robot world frame.&amp;lt;br&amp;gt;&lt;br /&gt;
During [[Conveyor Tracking General|Conveyor Tracking]], Setpoint1, Setpoint2, Setpoint3 assume the values of absolute robot coordinates [[MC-Basic:robot.SETPOINT|(Setpoint, Here)]] and not robot frame coordinates moving with the robot.&amp;lt;br&amp;gt;&lt;br /&gt;
During joint-interpolated motions (MOVE), values of Setpoint1, Setpoint2, Setpoint3 are interpolated linearly between the samples. Therefore, depending on the sample rate and velocity, an interpolation error may occur.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PLS Execution during PROCEED Command==&lt;br /&gt;
The '''STOP''' command disables all PLS events in the currently executing motion.&amp;lt;br&amp;gt;&lt;br /&gt;
The '''PROCEED''' command is used to resume execution of a motion that was stopped by a '''STOP''' command issued by a task other than the one moving the axis or group. &amp;lt;br&amp;gt;&lt;br /&gt;
Depending on [[MC-Basic:element.PLSSOURCE|PLSsource]], the '''PROCEED''' command has the following effect on PLS events:&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; &lt;br /&gt;
|'''PLSSource'''||'''If Absolute '''||'''If Relative '''&lt;br /&gt;
|-&lt;br /&gt;
|'''Axis-PLS/Absolute''' Modal: source defined according to the command '''PLSEnable'''.||PLS event will be executed.||Execution will begin at the first PLS position in the buffer.&lt;br /&gt;
|-&lt;br /&gt;
|'''Path-PLS/Absolute &amp;amp; Relative''' Nodal: source defined according to motion issued by the command '''WithPLS'''.||PLS event will be executed.||No execution because the original path no longer exists.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=PLS High Accuracy=&lt;br /&gt;
==PLS High Accuracy Overview==&lt;br /&gt;
When PLS high accuracy is '''not active''', the response time of the PLS switch is determined by the value of '''PositionErrorDelay'''.&amp;lt;br&amp;gt;&lt;br /&gt;
When '''PositionErrorDelay''' = 3, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
*If '''PLSsource''' is a position command, the PLS output will be toggled 2 samples before the position command is set in the drive.&amp;lt;br&amp;gt;&lt;br /&gt;
*If the '''PLSsource''' is position feedback, the PLS output will be toggled 1 sample after the event.&amp;lt;br&amp;gt;&lt;br /&gt;
When PLS high accuracy is active, the response time of the PLS switch is determined by a combination of hardware and software functions.&amp;lt;br&amp;gt;&lt;br /&gt;
In normal PLS functionality, the target position is compared to the actual position (either reference or feedback) at every system cycle, and a response occurs. &amp;lt;br&amp;gt;&lt;br /&gt;
Since the system motion bus cycle is limited to 2 milliseconds, or even 4 milliseconds, the PLS response time may not be sufficient for high-speed applications such as laser cutting and packaging.&amp;lt;br&amp;gt; &lt;br /&gt;
To overcome the scan time limitation, the PLS functionality includes a high-accuracy PLS timing mode [[MC-Basic:pls.HWASSISTANCE|(HWAssistance)]] in which the timing of the PLS is computed to an accuracy of microseconds.&amp;lt;br&amp;gt;&lt;br /&gt;
When high-accuracy mode is active, the Product software extrapolates the exact time at which the axis will reach the PLS position, based on its current position, velocity and acceleration, and sets an output for that time. &amp;lt;br&amp;gt;&lt;br /&gt;
[[File:PLS_High_Accuracy_Overview_1.png]]&lt;br /&gt;
[[File:PLS_High_Accuracy_Overview_2.png]]&lt;br /&gt;
&lt;br /&gt;
Several properties are used in PLS high accuracy timing:&lt;br /&gt;
*[[MC-Basic:pls.HWASSISTANCE|HWAssistance]]&lt;br /&gt;
*[[MC-Basic:pls.PLSPropagationDelay|PLSPROPAGATIONDELAY]]&lt;br /&gt;
*[[MC-Basic:pls.PLSPropagationDisableDelay|PLSPROPAGATIONDISABLEDELAY]]&lt;br /&gt;
*[[MC-Basic:pls.PLSPropagationEnableDelay|PLSPROPAGATIONENABLEDELAY]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PLS High Accuracy Timing ==&lt;br /&gt;
Samples in motions in which the acceleration profile changes its basic formula (jerk discontinuity) will have an increased error in computing the inter-sample delay (Δt). &amp;lt;br&amp;gt;&lt;br /&gt;
This is due to the unavailability of an exact profile change parameter within one sample.&amp;lt;br&amp;gt;&lt;br /&gt;
In addition, higher-order (e.g., quadratic, cube, sine) acceleration profiles are not modeled in the inter-sample delay (Δt) calculations, and thus a position error is to be expected. &amp;lt;br&amp;gt;&lt;br /&gt;
While difficult to estimate the error, it is typically around JT3/6.&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE''': In cases of extremely short motions (velocity or acceleration too high or path length too short), the system will automatically change the profile to trapezoidal velocity, regardless of the command issued by the user.&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE''': The PLS will always be triggered too late if it is triggered by a feedback source such as PFB or PEXT. But in such instances, no additional delay should be added.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Examples of Computing Errors in the inter-sample delay (Δt):'''&lt;br /&gt;
Error introduced due to the jerk value in sine-acceleration profile at the transition sample between acceleration saturation and acceleration decrease.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Axystems;Plstiming-acc.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
Error introduced due to the acceleration change in '''trapezoidal acceleration''' profile at the transition sample between acceleration saturation and acceleration decrease.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Axystems;Plstiming-tracc.png]] &amp;lt;br&amp;gt;&lt;br /&gt;
Error introduced due to the transition point between cruise velocity and deceleration in '''trapezoidal velocity''' profile.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Axystems;Plstiming-trvel.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PLS High Accuracy Buffering==&lt;br /&gt;
The delay of the motion bus forces the system to postpone the toggling of the PLS output. Therefore, the PLS output events are stored in the buffer and executed after the estimated delay.&amp;lt;br&amp;gt;&lt;br /&gt;
Two different buffers ('''per each PLS''') are dedicated to the PLS delayed outputs:&amp;lt;br&amp;gt;&lt;br /&gt;
*Motion Bus PLS Delay Buffer. Used for storing PLS-delays through multiple sampling periods. The size of this buffer is: 40 (4x10).&amp;lt;br&amp;gt;&lt;br /&gt;
*Digital Output Microsecond Delay Buffer. Used for storing microsecond delays of only one motion bus sample. The size of this buffer is 4, and it is hardware defined.&amp;lt;br&amp;gt;&lt;br /&gt;
If a systems has a relatively large motion bus delay ('''PositionErrorDelay''' is significantly greater than 3), the resulting number of stored PLS switches might be greater than the size of the Motion Bus Delay Buffer. &amp;lt;br&amp;gt;&lt;br /&gt;
This will produce error 3298: &amp;quot;The PLS positions are too close to each other and/or the velocity is too high for output to toggle&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
If one sample has more than 4 PLS switches, it will produce the IO error 21011: &amp;quot;Too many PLS toggling requested&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PLS High Accuracy Timing and Buffering Diagram'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Axystems;Plstiming-scheme.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Path-PLS Functional Description=&lt;br /&gt;
A path-PLS is defined in the same way as an axis-PLS. &amp;lt;br&amp;gt;&lt;br /&gt;
Path-PLS properties and behavior are the same as for axis-PLS, '''except''' for the following:&lt;br /&gt;
*Path-PLS is activated only when a command is explicitly issued in a motion statement. Thus, instead of enabling/disabling using the command PLSEnable, path PLS is automatically enabled at motion start and disabled at motion end.&lt;br /&gt;
*The path-PLS output must be set to its initial state by the user. From then on, when path-PLS is enabled, it will toggle the output. Disabling path-PLS does not affect the state of the digital output.&lt;br /&gt;
*Path-PLS is not applicable to advanced interpolation path forms due to their complex nature.&lt;br /&gt;
*Path-PLS is not applicable to JOG, DELAY, PASS and DOPASS commands. &lt;br /&gt;
*PositionFeedback is not applicable to PLSSource.&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:group.ANGLE&amp;diff=134040</id>
		<title>MC-Basic:group.ANGLE</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:group.ANGLE&amp;diff=134040"/>
				<updated>2025-11-12T13:14:28Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
Circle ''&amp;lt;''group''&amp;gt;.''Angle =''&amp;lt;angle&amp;gt;'' CircleCenter = ''&amp;lt;circle center vector&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
All versions&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
This property is used to specify the angle through which a group must move in response to a CIRCLE command. This property has no default value. You must specify its value each time a CIRCLE command is issued.&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Double&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
± MaxDouble&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Degrees&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Task or Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Write only&lt;br /&gt;
&lt;br /&gt;
Nodal only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
Circle G1 Angle = -90 CircleCenter = {-100, -100}&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:CIRCLE|CIRCLE]]&lt;br /&gt;
* [[MC-Basic:group.CIRCLECENTER|group.CIRCLECENTER]]&lt;br /&gt;
* [[MC-Basic:group.CIRCLEPLANE|group.CIRCLEPLANE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ZMIN&amp;diff=134039</id>
		<title>MC-Basic:robot.ZMIN</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ZMIN&amp;diff=134039"/>
				<updated>2025-11-12T08:30:39Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.ZMIN}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;ROBOT&amp;gt;.ZMin = &amp;lt;''numeric expression''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
All versions&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
This value is used in the pre-computation phase of the robot Cartesian movements (MOVES, CIRCLE). Values of Xmin, Xmax, Ymin, Ymax, Zmin, Zmax allow definition of safe workspace area in World frame coordinates. These limits will be checked in addition to other robot space limitations such as joint pmin and pmax values and workspace radius limits (rmin and rmax).&lt;br /&gt;
&lt;br /&gt;
ZMin defines Z coordinate of the “lowest” robot position. No points below this plane are allowed. It is used to prevent robot collisions with its own body (base column).&lt;br /&gt;
&lt;br /&gt;
{{Note/Important|&lt;br /&gt;
Always check the ZMIN value before configuring a new robot. &lt;br /&gt;
The attached devices and parameters not taken into robot setup could significantly reduce the robots working area!}}&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Double&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
0.1-maxdouble&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Mm&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
Depending on the robot parameter&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Read/Write, Modal Only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
Zmin = 60&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:CONFIGGROUP|CONFIGGROUP]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[MC-Basic:robot.ZMAX|robot.ZMAX]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ZMIN&amp;diff=134038</id>
		<title>MC-Basic:robot.ZMIN</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.ZMIN&amp;diff=134038"/>
				<updated>2025-11-12T08:29:06Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.ZMIN}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;ROBOT&amp;gt;.ZMin = &amp;lt;''numeric expression''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
All versions&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
This value is used in the pre-computation phase of the robot Cartesian movements (MOVES, CIRCLE). Values of Xmin, Xmax, Ymin, Ymax, Zmin, Zmax allow definition of safe workspace area in World frame coordinates. These limits will be checked in addition to other robot space limitations such as joint pmin and pmax values and workspace radius limits (rmin and rmax).&lt;br /&gt;
Zmin defines Z coordinate of the “lowest” robot position. No points below this plane are allowed. It is used to prevent robot collisions with its own body (base column).&lt;br /&gt;
&lt;br /&gt;
{{Note/Important|&lt;br /&gt;
Always check the ZMIN value before configuring a new robot. &lt;br /&gt;
The attached devices and parameters not taken into robot setup could significantly reduce the robots working area!}}&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Double&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
0.1-maxdouble&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Mm&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
Depending on the robot parameter&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Read/Write, Modal Only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
Zmin = 60&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:CONFIGGROUP|CONFIGGROUP]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[MC-Basic:robot.ZMAX|robot.ZMAX]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.YMAX&amp;diff=134037</id>
		<title>MC-Basic:robot.YMAX</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.YMAX&amp;diff=134037"/>
				<updated>2025-11-12T08:14:09Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.YMAX}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;ROBOT&amp;gt;.Ymax = &amp;lt;''numeric expression''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
All versions&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
This value is used in the pre-computation phase of the robot Cartesian movements (MOVES, CIRCLE). Values of Xmin, Xmax, Ymin, Ymax, Zmin, Zmax allow definition of safe workspace area in World frame coordinates. These limits will be checked in addition to other robot space limitations such as joint pmin and pmax values and workspace radius limits (rmin and rmax).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Double&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
0.1-maxdouble&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Mm&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
Depending on the robot parameter&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Read/Write, Modal Only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
Ymax = 60&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:CONFIGGROUP|CONFIGGROUP]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[MC-Basic:robot.YMIN|robot.YMIN]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	<entry>
		<id>http://softmc.servotronix.com/index.php?title=MC-Basic:robot.YMIN&amp;diff=134036</id>
		<title>MC-Basic:robot.YMIN</title>
		<link rel="alternate" type="text/html" href="http://softmc.servotronix.com/index.php?title=MC-Basic:robot.YMIN&amp;diff=134036"/>
				<updated>2025-11-12T08:13:52Z</updated>
		
		<summary type="html">&lt;p&gt;Hallel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MC-Basic:robot.YMIN}} &lt;br /&gt;
{{MC-Basic&lt;br /&gt;
|SHORT FORM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|SYNTAX=&lt;br /&gt;
&amp;lt;ROBOT&amp;gt;.YMin = &amp;lt;''numeric expression''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|AVAILABILITY=&lt;br /&gt;
All versions&lt;br /&gt;
&lt;br /&gt;
|DESCRIPTION=&lt;br /&gt;
This value is used in the pre-computation phase of the robot Cartesian movements (MOVES, CIRCLE). Values of Xmin, Xmax, Ymin, Ymax, Zmin, Zmax allow definition of safe workspace area in World frame coordinates. These limits will be checked in addition to other robot space limitations such as joint pmin and pmax values and workspace radius limits (rmin and rmax).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|TYPE=&lt;br /&gt;
Double&lt;br /&gt;
&lt;br /&gt;
|RANGE=&lt;br /&gt;
0.1-maxdouble&lt;br /&gt;
&lt;br /&gt;
|UNITS=&lt;br /&gt;
Mm&lt;br /&gt;
&lt;br /&gt;
|DEFAULT=&lt;br /&gt;
Depending on the robot parameter&lt;br /&gt;
&lt;br /&gt;
|SCOPE=&lt;br /&gt;
Configuration, Task, Terminal&lt;br /&gt;
&lt;br /&gt;
|LIMITATIONS=&lt;br /&gt;
Read/Write, Modal Only&lt;br /&gt;
&lt;br /&gt;
|EXAMPLE=&lt;br /&gt;
Ymin = 60&lt;br /&gt;
&lt;br /&gt;
|SEE ALSO=&lt;br /&gt;
* [[MC-Basic:CONFIGGROUP|CONFIGGROUP]]&lt;br /&gt;
* [[MC-Basic:MOVES|MOVES]]&lt;br /&gt;
* [[MC-Basic:robot.YMAX|robot.YMAX]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hallel</name></author>	</entry>

	</feed>