Motion Instructions: Difference between revisions

 
(13 intermediate revisions by the same user not shown)
Line 1:
[[File:Motion Instructions Example.png|thumb|An example of 3 motion instructions in a program on the EDIT screen.|alt=|500x500px]]
Motion Instructions are used to direct the robot to perform motion tasks.
 
 
TheyWithin motion instructions are the variables and choices that detail where the robot should move, how it should calculate the path, wherehow quickly it should move, how fastmoves, and wherewhat it should enddo as it approaches the updestination.
 
== Syntax ==
The motion instruction syntax is shown in the following table.
{| class="wikitable"
! Line#
Line 18 ⟶ 20:
| P
| [1]
| msec10%
| FineFINE
| ACC100
|-
Line 26 ⟶ 28:
| PR
| [2]
| deg110mm/secs
| CNT50
| EV
|-
| 3
|L
|P
| R[34]
|250mm/s
|FINE
|
|-
| 4
| C
| P
| [3]
| sec
| Fine
| Offset
|-
| ...
|
| PR
|[6:End]
| 110mm/s2 sec
| FineFINE
| Offset,PR[]
|-
| 45
|
|
|
|
|
|
| cm/min
| CNT37
| Skip LBL[]
|-
| 56
|
|
|
|
| R[]
|
|
|-
|67
|
|
|
|
|100%
|
|
Line 73 ⟶ 83:
===Motion Type===
[[File:Motion Type Menu.png|thumb]]
L (Linear) – Move from one point to another in a straight line. This is a slow, but very precise motion type.
C (Circular) - Move in a circle. The starting point is wherever it is before the instruction is reached. The two points within the instruction are the intermediate point and endpoint. Limit the usage to 180 degrees.
 
J (Joint) – Move from point to point without the requirement of maintaining a straight line. It does not need to maintain a specific path, therefore it is the quickest motion type to reach a position, and results in the lowest amount of wear on the robot's joints and gears. Programs should ideally begin with a joint move to a known starting point. Do not use joint when your path may be obstructed by objects or fixtures.
L (Linear) – Move from one point to another in a straight line.
 
C (Circular) - Move in a circle. The circle always begin at the robot's current position, and flows through the two positions given in the instruction. The first position in the circle instruction is the midpoint, and the second position is the endpoint. Limit the usage to 180 degrees. Always be certain the previous motion instruction's destination is the intended start point for your circle, as otherwise you will encounter the error: "Circle angle too large". Circular instructions spill over into the next line on the screen, exactly as shown on the table above.
J (Joint) – Move from point to point without the requirement of maintaining a straight line.
 
A (Circular Arc) – Curved paths calculated from a large number of positions. This is not covered in any lab or assignment, and will only appear as extra credit if at all.
A (Circular Arc)
===Position Type ===
P – (position) direct position in space. Typically recorded by jogging to point and setting as position value. Each position is unique to the program it is in. P[1] in one program has no relation to P[1] in another.
Line 85 ⟶ 95:
PR (position register) – corresponds to predefined location where position can be found. Position registers are "global" variables that stay the same in all programs. PR[1] used in one program is the same as PR[1] in another. Modifying the contents of a position register will affect all future uses, across all programs.
 
=== Position Number ===
For an understanding of the contents of the position variables, see [[DATA]].
Position numbers are assigned in the order they are placed. They serve as places to store location information.
 
When a motion instruction is added to a program, it is automatically assigned the next available position number, and the position is recorded as where the robot currently is. This makes it convenient to first jog to the position you intend to record, then add the motion instruction, as you won't need to "touch up" at all.
 
For an understanding of the contents of the position variables, see [[Data|DATA]].
 
The @ symbol appears on motion instructions while the robot is current at (or very close to) the location which the position has been recorded. It is not part of the motion instruction syntax, merely an indicator to help you.
===Speed===
The speed units are first chosen, then the value is entered.
Line 163 ⟶ 180:
This determines what to do when approaching the destination point given in the motion instruction.
 
* Fine – When completing a motion instruction, the robot will reach each point. If the next point is at an angle relative to the path to reach the current point, the robot will accelerate and decelerate as necessary to ensure the point is actually reached. FINE instructions may take additional time.
** For a very short period of time, the robot will have come to a complete stop. For this reason, most FINE instructions take additional time and are hard on the robot's components.
 
* Continuous (CNT) – When completing a motion instruction, the robot will decelerate as it approaches the point and "round off" the corner as it goes from point to point as a percentage. The number following the CNT option represents the percentage of speed it is allowed to slow to, to make a "best effort" to go toward the point. Continuous motion is healthier for the robot and the robots tools, as acceleration is more spread out.
Line 186 ⟶ 204:
* Tool_Offset
* Tool_Offset,PR[
**Offset the instruction's position in the tool reference frame by whatever values are within the given position register. Useful for rotational offsets especially.
* TIME BEFORE/TIME AFTER
**Valid values for TIME AFTER are "real" data type, from 0.000 to 0.500.