This section contains general information on the motion command structure of Parametric Robot Control. Specific topics are addressed in separate pages:
LicensingServerIn order to define robot programs, PRC utilizes the following categories of components:
Motion Groups
Motion groups serve to structure motion commands and to reduce overhead (e.g. when the tool geometry is individually specified for each motion. A motion group defines the interpolation, tool, and base for all motions contained within. PRC supports the following motion groups:
- Point-to-Point (PTP) Motion Group: This motion group may contain either Axis motion commands or Cartesian PTP commands.
- Continuous Path (CP) Motion Group: This motion group may contain LINear and CIRcular motion commands
Motions
Motions define a robot motion. In general, a motion consists of a target (Cartesian or Joint) alongside values for the speed (by default m/sec for CP and % for PTP), interpolation, and acceleration. These motion types are currently implemented:
- LINear Motion: The target position is defined by a Cartesian Target.
- PTP Motion: The target position is defined by a Cartesian Target and a posture.
- Axis Motion: The target position is defined by a Joint Target.
- CIRC Motion: Three target positions as Cartesian Targets define an arc.
Actions
Actions define a robot action. The action types are currently implemented:
- Hold: The robot waits for a timespan defined in seconds.
- Insert Code: Inserts a given code into the program. The code is not simulated.
- Set Variable: Sets a robot variable to a given value.
- Wait for Variable: Waits for a robot variable to be set to a given value.
Flows
Flows allow you to define the data flow of a process. These flow types are currently implemented:
- If-Else: Split the dataflow according to a variable that is checked at runtime.
- While: Repeat an action while waiting for a variable to reach a given state.
- End: End the execution of a program.
Task
The commands above can be grouped within a Task.
Basics
A robot program should ideally start with an axis motion (grouped within a PTP Motion Group) so that the start position is clearly defined. If a motion group does not reference a specific tool or base, either the previous or the default tool/base (as defined in the settings) is selected. The same applies to the programmed speed.
The commands are processed in order. For example: A task contains a PTP Motion Group "Start", followed by a While block that references the variable Β§IN[1] and the PTP Motion Group "Loop". The While block is followed by the PTP Motion Group "End".
- Task "Program"
- PTP Motion Group "Start"
- While
- PTP Motion Group "Loop"
- PTP Motion Group "End"
That program would start with "Start" and then repeat "Loop" until $INT[1] is TRUE, then it will process "End" and terminate the program.