logo
This section contains general information on the motion command structure of Parametric Robot Control. Specific topics are addressed in separate pages:
πŸ“œLicensingπŸ–₯️ServerGrasshopperGrasshopper
In 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.