Difference between revisions of "Point Redundancy"

From SoftMC-Wiki
Jump to: navigation, search
m (in construction)
m (in construction)
 
Line 84: Line 84:
 
* [[MC-Basic:PRINTUSING|PrintU]]
 
* [[MC-Basic:PRINTUSING|PrintU]]
 
* [[MC-Basic:PrintPoint|PrintPoint]]
 
* [[MC-Basic:PrintPoint|PrintPoint]]
* [[MC-Basic:PrintPointU|PrintPointU]]
+
* [[MC-Basic:PrintPointUsing|PrintPointU]]
 
* [[MC-Basic:robot.ARMCMD|robot.ARMCMD]]
 
* [[MC-Basic:robot.ARMCMD|robot.ARMCMD]]
 
* [[MC-Basic:COMMON SHARED or DIM SHARED or DIM ... AS LOCATION OF ...|COMMON SHARED or DIM SHARED or DIM ... AS LOCATION OF ...]]
 
* [[MC-Basic:COMMON SHARED or DIM SHARED or DIM ... AS LOCATION OF ...|COMMON SHARED or DIM SHARED or DIM ... AS LOCATION OF ...]]
 
}}
 
}}

Latest revision as of 13:14, 13 August 2019

Language: English

Point Redundancy is a flag that indicates the type of solution calculated by the Motion Controller to reach a specific point in space.
If a point was declared, for example; DIM SHARED PNT AS LOCATION OF XYZR, then the following sub-fields exists;
PNT.ARM, PNT.ELBOW, PNT.WRIST, PNT.TURN1, ..., PNT.TURN6

There are 3 ways to obtain Point Redundancy:
1. By using the property PNT.ARM (for SCARA only):

  • 0 - Auto (closest solution), the default value
  • 1 - Lefty (J2.PCMD < 0)
  • 2 - Righty (J2.PCMD > 0)

2. Assignments:

  • PNT = Scara.HERE or PNT = Scara.SETPOINT
  • In that case, flags are automatclly set during the assignment.

3. Constant Assignment:

  • PNT = #{X,Y,Z,R;<'flag'>} by using the ";" separator between the location and the flag.
  • Note: in the previous format, all flags were set to zero (for more information refer to 'SEE ALSO' section).

Syntax

Dim Shared PNT as Location Of XYZR

PNT = #{X,Y,Z,R;<'flag'>}

Availability

FirmWare 0.4.20.1 and newer

Type

long

Range

0-2

Default

0 - Auto flag

Scope

Read/Write, Configuration, Task, Terminal

Limitations

1. There are no flags used when declaring location as a joint point (DIM SHARED JPNT AS JOINT OF XYZR).
2. Expressions are only allowed when all flags are equal or one of them is non-AUTO;

  • for example, if A = #{X1,Y1,Z1;1} and B = #{X2,Y2,Z2;1}, the expression PNT = A+B is valid

Examples

move to a specific location with point redundancy flag = 1
text-right
move to the same location using point redundancy flag = 2
text-right


If the following point is declared;

common shared PNT as location of XYZR
PNT = #{0,0,0,0;1}

The usage of Print or "?" commands prints the previous format:

-->Print PNT
-->#{0 , 0 , 0 , 0}

The usage of PrintPoint command prints the new format;

-->PrintPoint PNT
-->#{0 , 0 , 0 , 0 ; 1}

The usage of PrintPointU command prints a formatted output;

-->PrintPointU "#.##"; PNT
-->#{0.00 , 0.00 , 0.00 , 0.00 ; 1}

When the flag or separator are omitted, the following formats are equivalent:

PNT = #{0,0,0,0}
PNT = #{0,0,0,0;}
PNT = #{0,0,0,0;0}

See Also