Point Redundancy

From SoftMC-Wiki
Revision as of 09:13, 12 August 2019 by Guy (talk | contribs) (in construction)
Jump to: navigation, search
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