Documente Academic
Documente Profesional
Documente Cultură
Publication Number
MTXW315S-S-101
Contents
Course description
Course objectives
Learn about:
• Introduction to Robotic Off-Line Programming (OLP)
• RCS Management
Learning tracks
Learning tracks for the Tecnomatix application are found on the Siemens PLM Software
training website: training.industrysoftware.automation.siemens.com/index.cfm
Related Courses
• WKP101S – Process Simulate on eMS Part Flow Simulation
The steps for each activity are displayed in a window on your computer.
1. Expand the appropriate lesson (1) and click the assigned activity (2).
Purpose
To discuss the basics of Off-Line Programming with Process Simulate Robotics.
Objectives
After you complete this chapter, you should be familiar with:
• An overview of OLP.
Introduction to OLP
This topic provides an introduction to OLP.
It contains the following subtopics:
• OLP Basics
OLP Basics
• Downloading – the process of exporting a text file of the program from an external
system or robot controller.
• Uploading – the process of importing a text file of the program from an external
system or robot controller.
Here is the basic process. A program can be originated in Process Simulate or directly
on the real robot (controller). After that, it can be cycled through this continuous loop:
• Path – A path (a.k.a. robotic operation) is a representation of the robot work plan
in the Process Simulate world. It consists of locations, sequence of locations, and
location attributes.
• Program File – A task is a textual format of the robot work plan which includes
motion commands and parameters.
• Operations Tree
The center of the Process Simulate universe is the operation tree of the loaded study.
Studies can contain four types of data. The actual content depends on the shortcuts
that have been added to the study and the relationships of the data to objects in the
operations tree:
• Product
• Operation
• Resources
• Manufacturing Features
• “Engineering Data”
Operations Tree
The operations tree contains a structure that typically starts with a station (i.e.
PrStationProcess ). This station contains several compound operations sequenced
together. This initial structure could have been setup in Process Designer and will now
be farther detailed and validated in Process Simulate. This is done by adding simulative
operations to the desired compound operations. There are several types of simulative
operations:
• Object flow operation - a simulative operation consisting of the movement of
a part along its assembly path. It is represented using the icon. (Covered in the
WKP101S, WKP106S, WKP115S, and WKP215S courses).
• Seam Locations – locations that move the robot along the contour of the part
• Speed
• Zone
• Tool
• Process parameters
• OLP commands
Some of this information can be mapped from a generic (default) controller (i.e.
for something simple like motion type). Much of the information that is robot
manufacturer (or sometimes robot) specific is done differently (i.e. how configurations
are represented).
Instead it is typically better to work directly in the language of the robot, within Process
Simulate, rather than to work in a generic language and then translate it later. However,
you could work with the default controller if needed (no RRS), and get about 80%
motion accuracy.
The motion planning, how the joint motions of the robot are synchronized, cannot have
the accuracy of the real robot because of the real robot’s smoothing algorithms may be
different than the default controller’s (i.e. motion from down to up may use a different
motion than from up to down).
• Uploads – the most complex since some things needed to run a simulation are only
defined (exist) in Process Simulate and cannot be exacted from the program file.
Standard OLP software packages are released with the Process Simulate software.
Currently there are packages for robot manufacturers.
Each controller has its own OLP package executable. Files will be installed
under the .\Tecnomatix\eMPower and .\Tecnomatix\eMPower\Robotics\OLP
folders.
A specific license is required from Siemens PLM Software and the robot vendor
to activate each controller (and underlying robot specific abilities).
Robot Models
This topic describes a little bit about robot models.
One of the first factors that must be considered when doing OLP is the robot model.
There are several questions that can be asked. For example: Does a robot model for my
real robot already exist in Process Simulate
• What is MOP
• What is RRS
Process Simulate’s motion planner controls the trajectory and cycle-time of all motions.
It also determines if a motion is possible, and also can give error messages if a motion
request exceeds the capability of the modeled mechanism.
What is MOP?
MOP stands for MOtion Planner. Process Simulate uses it to processes motion requests
from the user, and passes the results back to the Graphic Viewer.
Description:
Advantages:
• User designs, simulates, and optimizes a path using the related Process Simulate
teach pendant.
What is RRS?
Basically RRS is the interface used by Process Simulate to access a virtual robot
controller (RCS).
• RCS Module - A software model of a robot controller (i.e. virtual robot controller),
which knows how to deal with RRS inputs and outputs. It is developed by the robot
manufacturer to behave just like the real robot controller.
• Contents of ESRC
RRS1:
• Developed a long time ago (around 1990).
o Transformation
o Kinematics modeling
o Machine data
o External axes
o Conveyor synchronization
o Error messages
• Good for standard, noncomplex, configurations (i.e. no servo gun, non-rail robot,
etc…)
• But cannot provide accurate cell cycle time because of the following reasons:
o Robot interlocks
RRS2:
• Too complex
• Need to know all sorts of information to set it up that is not known when the paths
are developed in Process Simulate or it won’t run (i.e. temperatures, sensor signal
registers, how many I/O boards, how may servo motors, etc…)
• Not the best for project lifecycle (i.e. want to do robot simulations two years before
commissioning)
ESRC:
• Don’t need all the overhead of RRS2 during the program design phase.
• Who cares about logic 20% of station time is logic. If you have multiple robots,
each have a factor effect on the logic percentage of cycle time. Logic is used more
to:
Contents of ESRC
• Boolean/Analog Evaluation
• Macro
• An external Controller (PLC or similar) is a must in order to make the VRC (virtual
robot controller) work.
• Status Information even on “in between location” positions (e.g. on each simulation
cycle)
Process Simulate Robotics interfaces with robot manufacturer supplied RCS modules.
Each robot interface is customized to use the functionality of the RCS module as
defined by the robot manufacturer.
In order to use RRS to perform a simulation in Process Simulate:
• You must have the RCS module from the robot manufacturer installed and licensed
in the computer. This is setup before starting Process Simulate in the rrs.xml file.
• You must use a RCS robot and compatible RRS controller (its motion can be
controlled in Process Simulate using an installed RCS module). This is setup in a
specific study in the Robot Properties window.
For example:
Robot
Language Controller RCS or MOP
Manufacturer
S4, S4C, S4C+,
ABB Rapid RCS
IRC5
S4, S4C, S4C+,
ABB Volvo Rapid RCS
IRC5
S4, S4C, S4C+,
Comau PDL RCS
IRC5
• ABB Activity: Setting up the Latest Process Simulate Robot Controller (Discussion
Only)
• Kuka Activity: Setting up the Latest Process Simulate Robot Controller (Discussion
Only)
• Reis Activity: Setting up the Latest Process Simulate Robot Controller (Discussion
Only)
In this lesson, we will discuss downloading and installing the latest Process Simulate
robot controller from the GTAC site.
For example:
** The Duerr, Fanuc F100iA, NC Code, Reis, Template RRS, and Trallfa robot
controllers are currently license free.
In order that all parameters set on the robot (like local data definitions) are stored
in the eMS, it is mandatory to import following customization file: .\Tecnomatix
\eMPower\InitData\RoboticsCust\RoboticsCust.ppc.
It is also mandatory to import it again after migrating from v8.2.1 to v9.0 and
up (starting in v9.0, robot parameters are no longer stored in the study but in the
eMS).
Terminology note:
We can install various Process Simulate robot controllers, which include a teach
pendant and an interface to the related RCS. The RCS is the virtual robot controller
(software and license) from the robot manufacturer. A Process Simulate robot controller
and teach pendant together are our interface to various features of the real robot
controller. It is not required to have a real robot controller or teach pendant from the
robot manufacturer to use the Process Simulate robot controller and teach pendant.
Pictured: A real robot controller and teach pendant from Kawasaki Robotics, Inc.
The rrs.xml file can have several lines. Typical parameters are:
• ControllerName – the RRS name used to reference the RCS from within
Process Simulate.
• ModuleName – the absolute path and name of the executable that is the
RCS.
• The RRS controller to RCS module mapping must be setup in the rrs.xml file.
This file is located in the .\Tecnomatx\eMPower\Robotics\OLP folder.
For example:
Example RCS Example Version
Robot Mfgr Controller Name
Module Name Names
.\rrs_bin\rcs_abb 5.0 IRC5
ABB ABB-Rapid
\rcsabb_rw5.07.01.irc5\rcsabb_tune.exe
(rw5.11.01)
The rrs.xml file is a mapping file. It must be edited to reflect your environment (i.e. the
version of the RCS used, the folder it is installed in, the robot’s name, etc…).
A section must exist in this file for every RCS and RCS module version that will be
used, but not for every RCS supported by Process Simulate.
An example of the rrs.xml which matches the exercises in this course is included
with the training data. Some modifications may need to be done to the file in
order to use it in your training environment.
Process Overview
This topic provides an overview of the process.
It contains the following subtopics:
• Process Generation
• Process to Program
Process Generation
1. Basic Process Roughed Out. (Topic covered in EMS127 Process Designer Basics
and EMS228 Process Designer Body-In-White Processing)
• Setup of basic structure of data
• Place Robot
3. Fully verified robot programs are completed and ready for downloading. (Topic
covered in
• Sending a Process to a Robot using OLP
• etc ...
Process to Program
3. Teach Local Locations For Process Using Correct Motion Type At Each Location
4. 4 The shop floor engineer does not understand the total control scheme.
At each processing stage, a good designer can make many of the OLP shopfloor
decisions without venturing out of their office. Also, a good designer will be
responsible for ensuring successful OLP by making their design intent clear
NOTES:
Example:
• Using the required Robot Controller Model, test a sample of the programs you
generate. Identify a program certification process/authority. What is the required
program structure?
Example:
• What robot will be used?
Example:
• Enter gun poses (spot-weld).
Always be alert, and check the design against common robotic constraints.
3. Make the part accessible - Shop floor personnel will need to work there safely.
4. Is the robot required to pick & place as well as weld? Remember: The tooling on
this robot will make it harder to manipulate and less flexible.
5. What robot has been designated for use? Can it do the job (weight, speed, etc.)?
6. Go and see the actual robot you will be working with. Request a presentation of the
unique capabilities of this robot.
1. Assign a robot only those locations it can actually reach. Check extreme cases with
the ACTUAL robot.
3. Color-map the location assignment. This will make it easier to see what is
happening.
4. Use naming conventions from the very beginning (weld locations, via points,
pounce, home, maintenance, safe, tip dress, etc.).
8. Process for a smooth gun motion. This will in turn lead to a smooth robot motion
and an easy program.
9. Immediately (by default) assign a linear motion type to all segments where the gun
tip is close to the part.
10. Immediately (by default) assign zone type fine to all segments where the gun tip is
close to the part.
1. Position the robot such that not only can it reach all the locations, but also comply
with the shop floor soft limit set up.
2. Position the robot such that not only can it reach all locations, but also have a +/- 10
degrees of freedom for future changes.
3. Position the robot such that not only 1& 2 are covered, but also all segments of
motion in between welds are considered for 1 & 2, and all possible configurations.
6. Include all robot specific commands you find relevant to maintain the design intent,
such as : speed instructions, signal and control instructions, etc.
7. Duplicate locations if it will make program structure easier for the shop floor
engineers to manipulate.
1. Keep the gun motion smooth. Don’t force big gun orientation changes.
2. Avoid using large envelope stretches. This will cause difficulty in positioning the
robot.
3. Avoid complicated control schemes if possible (e.g. opening and closing clamps
to make welds). Request a change as early as possible for such conditions. If you
don’t, the shop floor engineers will need to do it later.
4. Mirror situations, where the left robot and right robot are performing a mirror
image of the same path, are preferable.
6. Add via locations the way the robot would naturally move - not how you think it
should.
7. Immediately, (by default) assign jointed motion type to all segments where the gun
is moving between via locations.
8. Immediately, (by default) assign zone type coarse to all segments where the gun is
moving between via locations.
9. Add your comments of design intent for the shop floor engineer.
• Create AVI of the simulation, so shop floor can understand the complete
design.
3. Test problematic programs locally before they are shipped to the plant.
Study Preparation
Activity: Verify and adjust your study as required per previous instruction.
Error Sources
This topic describes several major sources of error in OLP.
It contains the following subtopics:
• Five Major Sources
Robot inaccuracies:
• Geometric model (link lengths, joint limits, joint direction)
• Zero positions
• Conversion coefficients
• Every robot on the factory floor will be slightly different from each other and from
the Process Simulate "ideal" model.
Tool inaccuracies:
• Manufacturing tolerances
• Geometric model
• Mounting frame
Workpiece:
• CAD model variances
• Manufacturing tolerances
Layout:
• Installation errors
• Tolerances
External devices:
(positioner, gantry, rotary tables, 7th axis, etc...)
Summary
Subjects learned in this topic:
• An overview of OLP.
Purpose
To provide information on the Default Controller, ESRC’s (Emulated Specific Robot
Controller) and Robot Programs.
Objectives
After you complete this chapter, you should be familiar with:
• The basic motion attributes.
• Robot Controller
• Motion Types
• Activity: Viewing Motion Zone, and Tool Frame Attribute Simulation Differences
We will start by using the default controller to talk about the basic theory of motion
attributes. Later in the next chapter, we will revisit this topic using robot specific motion
attributes. Much of the information in this lesson is a review from previous Process
Simulate training.
Robot Controller
The robot controller can be set or viewed from the Controller tab of the Robot
Properties window (Robotics → Robot Properties ) in Process Simulate. It is
used to assign a Process Simulate controller and machine data to a robot; which sets the
teach pendant (containing robot specific motion parameters) and motion planner for a
robot.
For this portion of the course, we will use the Default controller. Later, we will
switch to an ESRC one.
Motion Types
On the Default controller, motion type refers to joint motion, linear motion, or circular
motion. Proper selection of motion type is very important in the design of the process.
• Motion Type – Describes how a robot will move to this location. For example
here are two most common motion types found in the default controller:
o Joint (PTP) – Typically causes the robot to move the quickest between
locations (usually resulting in a curved path).
• Linear (LIN) motion should be used where high accuracy of the TCP track is
required; robot speed may be somewhat curtailed.
• Circular (CIRC) motion is used when the robot TCP is required to move along a
circular arc; most often in an arc-welding or sealing process.
• Configuration refers to the specific wrist pose the robot is required to attain in
reaching a location.
o No Decel – cause the robot to not slow and “approach” the location
(However, arrival is not a requirement).
• Method 2: A different TCPF position can be set for each location in the path using
the Tool Frame, Remote TCP Frame, or Work Frame location attributes.
In this case there is no default TCPF position. There is only the current TCPF
position. A path can even contain a combination of locations with different location
attributes (i.e. one path with gun on robot locations and remote TCP locations).
However, it is recommended that each location have a specific TCPF position
defined. This is much closer to how the real robot operates.
When a gun is mounted to a robot, the default TCPF position is also set. Alternately if
this is not desired, a different TCPF position can be set on each location. Tool Frame
and Remote TCP Frame locations.
• Tool Frame (for gun on robot) — this is the typical place for defining the TCPF
position on a location. Pick any frame in the Object Tree or Graphic Viewer. Make
sure the frame name is unique in the study.
• Remote TCP Frame (for an external TCP) — this field is used when the TCPF
should be on an object which is not mounted to the robot. Pick any frame in the
Object Tree or Graphic Viewer. Make sure the frame name is unique in the study.
• Work Frame — can be used if you know the gun device that has to be used with
a given TCP. Select the tool from the list of values. This list of values is populated
with the list of defined tools for this robot created using Robotics → Robot
Toolbox (More on this later).
• Speed
These attributes can be viewed and edited in several ways in Process Simulate:
• Teach Pendant window
Both of these techniques were covered in the WKP115S Process Simulate on eMS
Basic Robotic Simulation course. We will use these techniques throughout this
course.
• External Axis
In several cases, a robot has more than one choice for Inverse Kinematics (robotic joint
angle selection to reach a specific location with its TCPF). This lesson will investigate
some of the factors affecting inverse kinematics solution selection.
Solutions (a.k.a. Robot Configuration) and turns can be accessed in several places in
Process Simulate. In cases where multiple inverse kinematics solutions are available to
reach a location, it allows the viewing and selection of specific solutions. Configuration
information is read from the controller, stored on a local location (our solution), and
downloaded (controller specific solution) to the program file.
Process Simulate needs to have access to the RCS for the selected robot. Otherwise, it
won’t be able to get the robot configuration string for the real robot (critical).
Communication Between Process Simulate and the RCS:
• Process Simulate gives the location information to the RCS
• In some cases (i.e. Fanuc rj2ic) the RCS may have special syntax flags to say which
one to use
• We auto teach and store our configuration on a location which may be diffident
than the RCS.
• If not connected to the RCS then it writes the solution from the default controller.
Not having a connection will also cause it to not understand that the controller
specific OLP commands during download.
The guy on the floor doesn’t see different solutions because he teaches the
configuration solution. We are trying to solve it each time.
• Path Editor
2.
Select Robotics → Robot Configuration .
The current location configuration is bold.
4. Click Teach.
If you download with an RCS connection, Process Simulate writes the translated stored
version of the configuration. It should be the same as what is stored on the local location
except if there was a problem with the mapping (The connection allows the validation of
what we put in the mapping). If there is a problem, it would show in the log file.
Joint value defined locations don’t have a configuration
This tool was discussed in the WKP115S Process Simulate on eMS Basic Robotic
Simulation and WKP215S Process Simulate on eMS Intermediate Robotics (CEE)
courses.
The Robot Viewer can be found by picking a robot and selecting Robotics → Robot
Viewer .
• Can be used to view joints moving along the path
• Can be used to look for steep or radical joint value changes (winding)
• Can gather statistics on min/max (values or %) including the applied software limits
A key OLP issue is the engineering judgment of the robot behavior over time and not
only at a specific point. The Robot Integrated Development Environment (RIDE),
available for multiple robots, contains several tools essential to robot programming and
debugging:
• Trend-like graphical presentation of robot joint values
• “Historical view” - the values of the information are visible over time
• Joint Status
• Digital Signals
• Analog Signals
The Joint Monitor panel also displays statistics concerning joint values during
simulation. The statistics area shows the minimum and maximum values for each joint
of the selected robot during the current simulation. When the joint value enters one of
the working limits, its value is displayed in orange and when it reaches its minimum or
maximum value, it is displayed in red.
The Joint Monitor is only updated during a robot simulation.
Joint Status Panel:
The Joint Status panel shows the current value for each joint of the selected robot
(including external joints). Alternatively, you can display the current joint value as a
percentage of the joint range.
External Axis
For more information on external axis usage and kinematic definition, see the
WKP115S Process Simulate on eMS Basic Robotics Simulation course.
External axis – (i.e. 7th axis). A typical example is a robot on a rail, where the rail is
the external axis. This allows multiple solutions to a location, based on the position of
the robot on the external axis. This information is stored on the compound location.
External Axis process overview:
• The external device (i.e. rail) is created as a separate component with (at least) one
joint.
• The robot base must be attached to the carriage (i.e. slider) entity of the external
device.
• Add the joints from the external device to the robot’s joint list.
• Mark compound locations (i.e. to store the position of the robot on the external
device’s joints onto the location that is being reached)
• Robot Programs
• Robot Signals
• Status Signals
• Robot Program
Robot Programs
A robot has as task to be executed. Normally it is made up of motion tasks and logic
instructions organized in a robot program. Almost all robot programs have the same
basic skeleton:
To guarantee correct behavior all robot vendors enforce a predefined sequence of signal
exchange:
• To prevent the robot from starting to move in an uncontrolled way.
The Siemens PLM Software default behavior doesn’t simulate all of the signals used
by a real robot. Those significant signals for the correct process behavior are included
in the default behavior. Specific behavior may be implemented in the relevant ESRC
(Emulated Specific Robot Controller), which has to be purchased separately and has its
own documentation.
In the WKP215S Process Simulate on eMS Intermediate Robotics (CEE) course,
we discussed how to create a simulation where logic is used to switch between
the different robot paths (i.e. trigger them) that are part of a robot program (i.e.
when to run path 1, path 2, etc…).
Robot Signals
a PLC in order to control the simulation (i.e. trigger the execution of various
events).
A robot program is a series of instructions to the robot. For example:
It’s easy to see that some of the signal values will only be checked when a specific
location has been reached. Such signals are called robot signals (might be of type Input/
Output/Memory).
In the example it can be seen that the value of $OUT [17] is set only on the on
“POINT2” location (i.e. it is a robot signal).
Status Signals
Status signals play a different role. They are continuously evaluated by the robot
controller (either Input e.g. emergency stop or output e.g. pose signal). They are a
way of simulating behavior that can be downloaded. Using status signals, paths can be
simulated like robot programs using path numbers inside the program.
Default (PLC) output signals:
• startProgram (signal function = Starting Program)
• A robot path reference operation activates one or more specific operations within a
robotic program via the path number.
• Because the robot path reference operation refers to the robotic operation only by
its path number, you can change the target of it by re-assigning a path number to a
different robotic operation.
• Allows full flexibility in changing paths without changing anything in the Gantt
chart
• Will only be executed using robot program parameters (robot status signals)
Robot Program
The following schematic diagram shows the general robot behavior based on a path
view:
• Used to add robot paths to a program by drag and drop to the program
• A program can be renamed by selecting it in the Path Editor, pressing [F2], and
entering a new name.
• Select a compound operation containing the desired robotic operations and select
Robotics → Robot Program → Create Robotic Program for Compound
Operation .
Alternately, you can right click a compound operation in the Operation Tree
and select Create Robotic Program for Compound Operation .
•
Use the Segmentizer (more on this in the next lesson)
Operation option searches for robotic paths in the selected compound operation. If
all the paths it locates are assigned to the same robot, the system creates a new robotic
program for the robot and names it after the name of the selected compound operation
with an _program suffix. The system then inserts all the paths from the compound
operation under the new robotic program. The order of paths in the new robotic program
is the order in which the paths run in the compound operation. The command is enabled
when you select one or more compound operations (or PrStationProcess objects).
• If you select multiple compound operations, the system repeats the process for each
one and creates a new robotic program for each one.
• Paths inserted in the new robotic program are retained by the robotic programs to
which they have previously been assigned.
• If there is no robotic path under the selected compound(s), the system does not
create a program. No error message is issued.
• The system ignores operations that are not robotic paths. No error message is
issued.
• If you selected paths assigned to different robots, the system does not create a
program and issues the following message: "The system was unable to create a
Robotic Program for one or more Compound Operations, which contain operations
performed by different robots: < list of compound_operation_names>".
Segmentizer
This topic describes how to use the Segmentizer to create robot programs.
It contains the following subtopics:
• Segmentizer Basics
Segmentizer Basics
This tool has own executable which must be installed first. It can be downloaded
from the GTAC FTP site separately from Process Simulate: from ftp.ugs.com/
tecnomatix, browse to Planning Applications → Robot Controllers →
v10.1 → Tools → Segmentizer and download it (either 32 or 64 bit).
The segmentizer can be used to divide one path into several for downloading.
• Use it to go from one early up-front single path to multiple paths by breaking it up
by logic (a.k.a. keyword).
• Use it to just create the scheduler for only one path if no key word is added to break
up the path.
Workflow:
• Select a compound operation (which contains at least one robotic operations) or a
robotic program to enable the Segmentizer button and click it.
• The Segmentizer uses the settings from the Segmentizer Setup to search
segmentizing commands and to name the segments.
• The Segmentizer will segment all robotic operations inside the compound
operation/robotic program and create an additional robotic operation, called
the Scheduler which will contain the calls to the segments and the segmenting
commands. This scheduler is created inside the selected compound operation (in
case we segment a compound operation), or inside the parent compound operation
of the first robotic operation (in case we segment a robotic program).
• Continuous operations:
• Only the last seam location of a seam operation can contain segmentizing
commands.
■ weld3
■ weld5
■ via6
Result is:
• Compound operation
o WeldOperation1Seg1
■ via1
■ via2
o WeldOperation1Seg2
■ weld3
■ via4
o WeldOperation1Seg3
■ weld5
■ via 6
o Scheduler
The resulting compound operation contains a schedule and creates a robotic program
automatically.
Continuous Operation Example:
Start with:
• Compound operation
o ContinuousOperation1
■ via1
■ via2
■ SeamOperation1
◊ SeamLoc3
■ via5
■ SeamOperation2
◊ SeamLoc6
◊ SeamLoc7
◊ SeamLoc8
Result is:
• Compound operation
o ContinuousOperation1Seg1
■ via1
■ via2
■ SeamOperation1
◊ SeamLoc3
o ContinuousOperation1Seg2
■ via5
■ SeamOperation2
◊ SeamLoc6
◊ SeamLoc7
◊ SeamLoc8
o scheduler
The resulting compound operation contains a schedule and creates a robotic program
automatically.
There is also an “unsegmentizer” tool (i.e. for uploaded data).
Unsegmentizer Workflow:
•
To enable the UnSegmentizer button a selected compound operation, which
have been previously segmentized, must be selected (i.e. contains Scheduler and
at least one robotic operation).
• The UnSegmentizer uses the settings from the Segmentizer Setup to search
segmentizing commands and to name the segments.
• The UnSegmentizer will unsegmentize all robotic operations inside the compound
operation in order to recreate the compound operation as it was before segmentation
was performed.
• It will move the segmentize instructions back to the location, join the segments and
remove the scheduler operation.
Summary
Subjects learned in this topic:
• The basic motion attributes.
Purpose
To describe how to setup and setup and add motion parameters to paths using emulated
robot specific controllers (ESRC).
Objectives
After you complete this chapter, you should be familiar with:
• Got an overview of OLP features.
• How to setup a basic robotic study that we can use to learn about ESRC.
• How to setup specific controller frames using the Teach Pendant and other specific
setup.
• How to set specific controllers motion attributes using the teach pendant.
1. Setup and configure all guns that can be mounted on the robot. Tell which is gun1
and gun2 (can have two for Fanuc) and if is it a pneumatic or servo gun.
2. Verify the setup of the rrs.xml file for all robots by vendor. This file contains
configuration information for all robot vendor RCS modules. It contains
information such as where the RCS installed and which version is installed. (i.e. for
ABB the Module Path would be: .\rrs_bin\rcs_abb\rcsabb\rcsabb_tune.exe).
This information needs to be maintained manually (i.e. as new versions of RCS are
installed, this file needs to be updated accordingly).
3. Configure the RCS for a specific robot instance: Right click the robot and select
Robot Properties. Select the Controller tab. Select the Controller, RCS
Version, and Controller version. Enter the Manipulator Type (the machine
data entered must be precise). Usually in the syntax of RCS software version and
robot description (robot model, arm configuration, 7th axis, servo, etc…). This is
stored in the study data.
4. If the robot is using specific machine data (ex : robot with external axes): In Setup
window, select Robot Settings → Load Machine data and import the desired
file from the robot.
6. Setup the Tool and Base definitions. They are stored at the study level.
8. Setup the desired attributes on the teach pendant and run the simulation.
In this lesson we will load a study, mount the gun, and create a small path that we will
later download. All the steps covered in this lesson should be a review of what was
learned in the WKP115S Process Simulate on eMS Basic Robotics Simulation course.
Process Simulate Robot Controller Application Support:
Material
(Robot) Continuous
Arc Support Handling Spot Support
Controller App. Support
Support
Paint,
Abb-Rapid Yes Yes Yes
Dispensing
Paint,
Dispensing,
Abb-Rapid- Laser Weld,
Yes Yes Yes
Volvo Laser Braze,
Nut Run, Seal,
Stud
Comau-Pdl ---- Yes Yes ----
Stud, Nut,
Comau-Pdl-
---- Yes Yes Glue, Laser
Volvo
Weld
Duerr-Ecotalk ---- ---- ---- Paint
Fanuc-F100iA ---- Yes ---- ----
Fanuc-RJ Yes Yes Yes Sealing
Fanuc-Japan Yes Yes Yes Sealing
Fanuc-Vw Yes Yes Yes Sealing
Kawaski-As ---- ---- Yes ----
Kuka-Krc ---- Yes Yes ----
Kuka-Krc-
---- Yes Yes Nut, Glue
Volvo
Selecting the Controller affects this information for the selected robot instance:
• The motion planner used during simulation (i.e. RCS-based or MOP-based)
•
Teach Pendant
•
Robot Setup
•
Download to Robot
•
Upload Programs
• Simulation
On the Controller tab of the Robot Properties window, there are four parameters that
are typically related to selecting a controller for a specific robot instance:
• Controller
o This list is populated based on which Process Simulate controllers (teach
pendants) have been installed (development specified). (Each is a separate
install, as we have seen in chapter 1)
• RCS version
o Comes from the rrs.xml file (user specified)
• Manipulator type
o For RCS-based controllers, it is user specified and must match a valid value on
the RCS
• Controller version
o
Set either on the Robot Properties window or the Robot Setup →
Controller version window.
o Handles any slight difference in the software such as features available in the
teach pendant, download syntax, simulation, etc…
•
Validate RCS – located on the Controller tab of the Robot Properties
window, it becomes available when connected to the RCS. It checks the
compatibility between the selected RCS Version and selected Controller Version.
•
Robot Setup - This will be described in the coming lessons.
•
Select a robot and choose Robotics → Robot Properties or right click
the robot and select Configuration, Properties and Settings → Robot
Properties .
• For a new study: See the s4c.cfg, s4cplus.cfg, or irc5.cfg files under the ABB RCS
install folder.
Comau:
• Typically it will be the name of the .rcs file located in the .\sysroot\..\robot-
prototype.co\rrs folder.
Fanuc:
• For a temp robot: see rcsfr13/robcad.bin/VERSION/<RCS Version>/
standard.cfg inside RCS module folder (client)
o <RCS Version>,<Temp Robot>
o Example : V7.40,R2000IF-165KG
o Example : V7.40@r2000if_165_rcs640
Kuka:
• Check MADA directory for the right name under the Kuka RCS install folder.
In this lesson we will discuss basic controller setup using the Robot Setup window. This
button can be found in two places:
•
Method 1: Click Robot Setup on the Robot Properties window opened for a
specific robot.
•
Method 2: Click Robot Setup on the relevant Teach Pendant window (i.e.
ABB-Rapid, ABB-Rapid-Volvo, Comau-Pdl, Comu-Pdl-Volvo, Default, Duerr-
Ecotalk, Fanuc-F100ia, Fanuc-Rj, Fanuc-Rj-Japan, Fanuc-Vw, Kawasaki-As,
Kuka-Krc, Kuka-Krc-Volvo, Kuka-Vkrc, Reis-Robstar, Trallfa-Robtalk, Yaskawa-
Inform, etc…) opened for a specific robotic operation.
Robot Setup is located on the Robot Properties window. To open this window:
• Right click a robot in the Graphic Viewer and selecting Configuration,
Properties and Settings → Robot Properties .
•
Click the Robot Setup button.
Robot Setup is located in every Teach Pendant window. To open this window:
• Right click a robotic path in the Operation Tree (the robot must be assigned to
operation) and select Teach Pendant .
A robot must be assigned to the operation and a robot controller, besides the
Default, assigned to the assigned robot.
•
From the Teach Pendant window, click Robot Setup .
• Load Machine Data – If the robot is using specific machine data (ex : robot with
external axes): In Setup window, select Load Machine data. In Load Machine
Data window, select the desired moc.CFG file. (There are some samples on GTAC
for a 7th axis). Close the window by clicking [OK].
• Create / Update System Frames – Creates all ABB system frames (if not
already existing) and places them in the study with respect to the machine data:
o <robot>.w - RCS world frame created in the Frames folder of the Object
Tree.
o In case of a conflict in the robot orientation on the rail, the user will be
prompted whether he would like the application to align the robot position in
the cell with the Machine data definition, or update the Machine data.
o Pushing this button resets the tool frame and wobj frame in the study to its
initial positions corresponding to data definition
• Load Machine Data – Used to load the .rcs file related to this robot. Typically it
will be located in the .\sysroot\..\robot-prototype.co\rrs folder. (The file is used
by Robcad and might not available if the .co was converted to .cojt).
• Create/Update System Frames - Creates all Comau system frames (if not
already existing) and places them in the study with respect to the machine data:
o <robot>.w - RCS world frame created in the Frames folder of the Object
Tree.
o In case of a conflict in the robot orientation on the rail, the user will be
prompted whether he would like the application to align the robot position in
the cell with the Machine data definition, or update the Machine data.
o Pushing this button resets tool frame and wobj frame in the cell on its initial
positions corresponding to data definition
• Load Machine Data – If the robot is using specific machine data (ex : robot with
external axes): In Setup window, select Load Machine data. Select the relevant
const.RC and device.CFG files. Close the window by clicking [OK].
• Create/Update System Frames – Creates all Duerr system frames (if not
already existing) and places them in the study with respect to the machine data:
o <robot>.w - RCS world frame created in the Frames folder of the Object
Tree.
• Create/Update system frames – Creates all Fanuc system frames (if not
already existing) and places them in the study with respect to the machine data:
o <robot>.w - RCS world frame created in the Frames folder of the Object
Tree.
o Potential conflict between robot orientation on rail (between cell and machine
data) is NOT checked
• Create/Update System Frames – Creates all Kawasaki system frames (if not
already existing) and places them in the study with respect to the machine data:
o <robot>.w - RCS world frame created in the Frames folder of the Object
Tree.
• Load Machine Data – In Robot Setup window, select Load Machine data.
In the Load Machine Data window, Browse and select the R1 and STEU folders
(mandatory).
• Create/Update System Frames – Creates all Kuka system frames (if not
already existing) and places them in the study with respect to the machine data:
o <robot>.bf0 - RCS world frame created in the Frames folder of the Object
Tree.
o In case of major conflict between Process Simulate layout and the MADA
layout (number/type of external axes), a warning message is displayed.
o In case of conflict between robot orientation on rail, the user will be prompt
whether he would like the application to align the robot position in the cell
with the MADA definition.
• Origin Definition – creates origin frames (robot base frames) with names from
G54 to G59. Euler angle is used for the orientation ( , , ).
o <robot>.g54 - RCS world frame created in the Frames folder of the Object
Tree.
• Create/Update System Frames – Creates all Reis Robstar system frames (if
not already existing) and places them in the study with respect to the machine data:
o <robot>.uf0 - RCS world frame created in the Frames folder of the Object
Tree. This frame is the reference for the user frames and is superimposed on
the robot BASEFRAME.
• Load Machine Data – In Robot Setup window, select Load Machine data.
In the Load Machine Data window, click Add and select a .i machine data file
(mandatory).
• Create/Update System Frames – Creates all Trallfa system frames (if not
already existing) and places them in the study with respect to the machine data:
o <robot>.bf - RCS world frame created in the Frames folder of the Object
Tree.
o <robot>.ut<n> - TcpFrame
o <robot>.uf<n> - DispFrame
• Load Machine Data – If the robot is using specific machine data (i.e. a robot with
external axes): In Setup window, select Load Machine data. Select the relevant
all.PRM, tool.CND, uframe.CMD, sgun.DAT, spress.cnd, and clearnce.DAT files.
Close the window by clicking [OK].
• Create/Update System Frames – Creates all Yaskawa system frames (if not
already existing) and places them in the study with respect to the machine data:
o <robot>.w - RCS world frame created in the Frames folder of the Object
Tree.
• RCS Shell
• RCS Logs
• Look at the messages shown in the error popup window during simulation.
RCS Shell
RCS Logs
RCS Management
This topic describes how to manage the RCS.
It contains the following subtopics:
• RCS Management Basics
• RCS Decoupling
In order to simulate, use some functions of the teach pendant, or upload/download the
RCS module must be loaded. Normally, it is loaded in several ways:
• When the Teach Pendant window is opened.
Drops and reestablishes the connection to the RCS (i.e. stops and restarts the RCS
module). This is useful if the RCS connection hangs. The only other way to do this
would be to stop and start your Process Simulate session.
This does not release the RCS license.
Usage:
1. Select the robot using a loaded RCS robot controller.
2.
Select Robotics → Reset RCS Module .
RCS Decoupling
The RCS Decoupling command is used to break the connection to the RCS and
allow commands that normally require the RCS to be run without it. The main caveat is
that the motion will be performed using the default controller instead of the RCS.
• Simulation Actions - For example, OLP commands, RCS simulation, and ESRC
functionality.
Not all RCS modules support decoupling. Grayed out fields do not support
decoupling. For exact motion, the RCS module is still mandatory for all
controllers.
The default value for decoupling can also be setup in the
rrs.xml file on the controller line. For example: <Controller
Name="Fanuc-Rj"RCSDecoupleSimulationAction="False"
RCSDecoupleNonSimulationAction="False">
To break the connection to the RCS:
Robot Setup:
• External axes mapping definition is not available
Download:
• Logical Axes Map information from the RCS module cannot be used. As a
consequence, external axes are downloaded in the same order and with same
indices as they are defined in Process Simulate. It might be necessary to post-
process the robot targets in the download file in case this assumption is wrong.
Upload:
• Logical Axes Map information from the RCS module cannot be used. As a
consequence following workaround is implemented for the upload of external
axes :
• The application looks for defined external axes in the ABB externals string (the
ones which value is not 9E9)
• The Ith axis that is defined is supposed to be mapped to the i th external axis in
Process Simulate
• Conversion from RCS config string to Process Simulate config to is done manually
• Robot Toolbox
Currently, there are two ways to define the TCPF positions for the RCS:
•
Method 1 and Method 2: Using the Teach Pendant (or Robot
Properties ) – Defines it as engineering data stored in the study. This is the way
that Robcad used to do it. We will describe this method in more detail in the next
lesson.
•
Method 3: Using the Robot Toolbox – Defines it as an object stored with the
robot, which is not dependant on the robot’s name. This is the newer, preferred
technique.
Currently, there is only one way to define the BASEFRAME (REF FRAME) positions
for the RCS:
•
Using the Robot Setup from Teach Pendant (or Robot Properties)
Robot Toolbox
The Robotics → Robot Toolbox enables you to assign tools (TCPF positions)
to a robot and view sets of tools assigned to robots. The assigned tools are available to
the robot throughout the simulation. The Robot Toolbox includes information about the
tools assigned to the robot and buttons to perform functions on the tools.
Often, it is useful to include tools that are not yet fully-designed in a simulation.
The Robot Toolbox enables you to assign incomplete tools, requiring only the
tool's TCP frame information. Incomplete tools included in the Robot Toolbox are
called virtual tools.
The Robot Tools list displays the tools assigned to the selected robot. For each tool, a
Mounted checkbox indicates whether the tool is mounted on the robot. Use the Mount
or Unmount buttons to mount or unmount a tool on the robot.
In order to use the tools you have defined in the Robot Toolbox, you must define a
specific tool to be used in an operation. This is done by adding a Work Tool to the
default Teach Pendant.
To open the Robot Toolbox:
1. Select a robot in the Graphic Viewer or Object Tree.
2.
Select Robotics → Robot Toolbox .
3. The Robot Toolbox window appears, displaying the tools associated with the
selected robot.
In this lesson we will discuss controller specific frame creation and other specific setup
tasks. In this lesson we will reference Method 1 and Method 2 as briefly described in the
previous lesson: clicking Robot Setup . This button can be found in two places:
• Process Simulate creates a robot system frame <robot>.w (before it created a study
frame <robot>_w). The robot system frames are shown in the object tree but they
are stored on the robot instance (meaning they come with the robot if you put a
same robot instance in another study).
Robot Setup is located on the Robot Properties window. To open this window:
•
Right click a robot in the Graphic Viewer and selecting Robot Properties .
•
Click the Robot Setup button.
Robot Setup is located in every Teach Pendant window. To open this window:
• Right click a robotic path in the Operations Tree (the robot must be assigned to
operation) and select Teach Pendant .
•
From the Teach Pendant window, click Robot Setup .
For example:
o Import data definition files (for instance the base.sys that is located under the
robot component folder in Robcad) into Process Simulate
o The selected files are copied under the robot private folder (same folder as the
one used to copy the machine data file needed for the RCS)
• Load Local Data Definitions – Used to import the Robcad .robdata.sys file
definitions into Process Simulate. The definitions are stored as a robot parameter.
• Down Local Data Definitions – Copies all local data definitions into the
LocalDataDefinition.sys file in the <SYSROOT>/RobotsMachineDataFiles/
<RobotExtId>/SystemFiles folder.
■ Create new data: select data from list for display the needed values and
replace data name by new data name and validate by click [Enter]
■ Naming convention for ABB is that WorkTool name should match the
ABB tooldata name. For a given tooldata, WorkTools have priority upon
Process Simulate frame tools.
o For each Mechanical unit can be defined a device from devices list
o For each Mechanical unit logical axes can be associated the joint of the
selected device
• Download Settings – Can be used to filter what is output to the resulting file
output for the robot.
• Explicit Data Upload – Used to explicitly upload a tool file (i.e. tt_tool1.lsv) or
frame file (i.e. tuvframe.lsv).
• Robot World Setup – Setup the position and orientation of the robot world
frame.
• Profile Data – allows defining velocity, acceleration, overlap, ramp, jerk, and
interpolation list of values data.
• Frame Data – allows defining tool frame (i.e. tf_robtcp), base frame, and object
frame data.
• Local Machine Data – allows specifying const (.RC), device (.CFG), and motion
(.CFG) files.
The const (.RC) and device (.CFG) files are needed in order to initialize the
RCS.
Robcad tool frames are supported (frame <robot>_ut<num>) and base frames
have the same naming convention as in Robcad (frame <robot>_uf<num>).
■ Backup: YES / NO
■ Backup Mapping
o The gun definitions are used in the Teach Pendant to show or not show some
process parameters.
■ You cannot define one pneumatic gun and one servo gun.
o Tools
o Bases
• Payload Definitions – used to either define or upload a payload definition for the
robot.
• Explicit Data Upload – used to upload a .VA file (i.e. upload payload definitions
from a SYMOTN.VA or SYSTEM.VA file)
• Gun Definition - allows the user to map a gun number to a specific gun device in
the study
• Data Definition – allows removing, loading, and exporting the AUX data file.
Also allows editing speed, accuracy, timer, clamp application, clamp condition, and
gun parameters.
• Tool Setup
o Robot Toolbox Worktools are also supported with the following naming
convention: Tool<num>
o Users can upload one or all Tool definitions from a robot.aux file
• Work Setup
o User can upload one or all Work definitions from loaded robot.aux file
• FTool Setup
o Users can upoad one or all FTool definitions from a robot.aux file
• Load Robot Backup - Reads a robot backup .ZIP file and copies the files to the
robot private folder.
■ Select base or tool from list for display the needed values.
• Tool Definition
o Naming convention for the tools in the study: _t_<Toolname> for a frame or
<ToolName> for a workTool
o Tools can be created, modified and removed with Tool definition setup
o The dynamic option is available only for a robot with external axis
o If the dynamic type is selected, the created frame should be attached to the
selected external device’s last link
o A User Frame can be created, modified and removed with the User Frame
definition setup
• Download Settings - Select the ROBOT_ID to select the system files and set
the binary file name of the downloaded file.
• UTool/UFrame Definition
o Robcad Utools are supported (frame <robot>.tl<num>, or Robot Toolbox
Worktool Tool<num>)
• Robot and External Axes Setup – This option is available for robots with an
external axis defined.
• Gun Definition – Allows associating a gun device with a gun file number
Almost every controller needs a different frame created to represent the TCPF. The
TCPF information must exist in the study and in the teach pendant. There are several
ways to define the TCPF:
• The frame can either be directly created in the study and then the coordinates read
from the study to the teach pendant.
• The TCPF can defined in the teach pendant which creates the frame in the study
automatically.
• The information can be read from files output from the actual robot controller (with
many Process Simulate teach pendants).
ESRC Reference
TCPF (name of special
name (i.e. default
Robot (controller) ESRC frame attached to
is BASEFAME /
the TCPF)
REFFRAME)
set W_OBJECT
robotName_tf# (i.e.
Abb-Rapid variable to a frame (i.e.
irb6600_tool1_tf)
irb6600_wobj0_uf)
robotName_uf# (i.e. robotName_ut# (i.e.
Fanuc-Rj
s430i_uf0) r2000iaf_ut1)
Kawasaki-As
robotName_t# (i.e.
Kuka-Krc (BASEFRAME)
kr30_1_t1)
Yaskawa-Inform
Use this table as reference to perform the activities. Note that each robot settings
and teach pendant have several differences. Reference the online help for setup,
configuration and usage details of specific controllers.
It is the users’ responsibility to set these frames on the real robot (we don’t do
this automatically since two programs could use the same def file. The tool
definition could be added to program download template as well as home pose.
• NC Motion Attributes
In this lesson, we will look at controller specific motion attributes. There are two ways
to do this:
The following information provides selected details for each specific teach
pendant. It should not be considered a replacement to the online help or other
more complete reference sources for these teach pendants or the robotic
languages themselves
o MoveABSJ Home
o Course
o No Settle
• Motion Type
• Overlap (Zone)
o FINE
o LOW
o MID
o COURSE
o NODEC50
o NODEC100
o NODEC150
o NODEC200
o V300
o etc ...
o V1400
o V1500
o C_DIS
■ 0 to 2 – like fine on default controller
NC Motion Attributes
• Motion type
o G00 - PTP
o G01 - LIN
o G02/G03 - CIRC
■ G02 = CW circle
• Motion Type
o #PTP – use joint motion
• FlyBy (Zone)
o #OFF – like fine on default controller (for all motion types)
o #ON - like nodecel on default controller for #PTP motion type. For other
motion types it will use the closest distance cartesian zone defined in the
MotionParameters.e file. See the online help for details.
• Speed
o PTP Speed – speed for joint motion in %.
• Motion Type
o RC
o CC
o CIRC
o Int1: NoDecel
• Motion Type
o MOVJ – move joint
o MOVS – move s
• Destination Type
o ABS, P1, P2, P3, etc…
• Speed type
o VJ – for joint motion type (a % of maximum speed)
Program Creation
This topic describes how to create a program.
It contains the following subtopics:
• Program Creation Basics
We covered program creation in great detail earlier in class. Now we will use it in the
context of this continuing activity.
Process or motion attributes are simulated in the same way as they would appear on the
factory floor.
The creation of robot configurations is critical to the download process, since they
store the robot configuration from the RCS and are tied to the robot BASEFRAME
(or UFrame specified on the location). Whereas, global locations are in reference to the
working frame of the study and do not store the robot configuration.
To prepare for download, the process must be "taught". This step must be performed in
order to apply the configuration data to the locations.
There are multiple techniques to generate robot configurations (attributes on top of the
locations). All process attributes are preserved on the location, and all configuration
parameters (turns, flips) are stored as well.
The configuration can also be viewed on the Teach Pendant or Path Editor.
After teaching a solution, the robot uses it during subsequent simulations and
downloads.
2. Method 2: Add the path to the Sequence Editor or Path Editor, click Auto
Teach , and then run the simulation as usual
When running Auto Teach from the Sequence Editor, you must first
select the robot, click Robotics → Set Robots for Auto Teach , and
click [OK].
1.
Method 1: Select a location, click Robotics → Robot Configuration , select
a configuration, and click Clear.
• Teach
Summary
Subjects learned in this topic:
• Got an overview of OLP features.
• How to setup a basic robotic study that we can use to learn about ESRC.
• How to setup specific controller frames using the Teach Pendant and other specific
setup.
• How to set specific controllers motion attributes using the teach pendant.
Purpose
To describe how to upload and download.
Objectives
After you complete this chapter, you should be familiar with:
• How to select and create program templates for downloading.
• Template Locations
In this lesson we will discuss program templates. The template defines the header
format including which keywords will be included. It can describe some elements you
want in program (i.e. who generates/when/from which study). Several key words are
provided (listed in the documentation).
Usage:
1.
Click the Robot Setup from the Controller tab of the Robot Properties
window.
Usage:
1.
Click the Robot Setup from the Controller tab of the Robot Properties
window.
4. Click Close.
If no specific templates are selected the default ones shipped with the
distribution will be used during download
Template Locations
The download file header templates are located in specific folders depending on the
controller used:
• ABB – Located in .\Tecnomatix\ eMPower\Robotics\OLP\Abb-Rapid
\Templates\programs folder and is named either default.tmod or default.tprg.
Template Keywords:
The sample templates shipped with the controllers are a reference for the available
keywords. Some keywords are common to all controllers (i.e. <RobotName>), some
are specific to the controller (these ones should be in the sample templates). Here are the
common keywords:
• Body
• Date
• FileBaseName
• ProgName
• Study
• TecnomatixSoftware
• Time
• RobotName
• UserName
• GundataTitle
• Gundata
• SpotdataTime
• Spotdata
• SpeeddataTitle
• Speeddata
• ZonedataTitle
• Zonedata
• TooldataTitle
• Tooldata
• LoaddataTitle
• Loaddata
• WobjdataTitle
• Wobjdata
• BeaddataTitle
• Breaddata
• WelddataTitle
• Welddata
• WeavedataTitle
• Weavedata
• CustomdataTitle
• Customdata
• MainBlockBody
• MoveBlockBody
• Robtarget
• JointTarget
• LocVar
• DataVar
• SchedulerCalls
• JointPosition
• CartPosition
• AllAxesNumber
• ExtAxesNumber
• JointMask
• ToolNumbers
• ToolNumbersRmt
• FrameNumbers
• FrameNumbersRmt
• ImplPayLoadMass
• ImplPayLoadCenter
• ImplinertiaX
• ImplinertiaY
• ImplinertiaZ
• ImplPayLoadMassRmt
• ImplPayLoadCenterRmt
• ImplinertiaXRmt
• ImplinertiaYRmt
• ImplinertiaZRmt
• LineCount
• DefaultGroup
• ControlCode
• GunNumber
• MainBlockBody
• PosBlockBody
• TecnomatixControllerVersion
• E6Pos
• E6Axis
• BaseData
• MovingBaseData
• ToolData
• LoadData
In this Fanuc example a header and footer in the template with line number is setup like
this:
/MN
1:UFRAME_NUM = 1;
2:UTOOL_NUM = 1;
3:PAYLOAD[1];
4:! Start Program;
<MainBlockBody>
<FOOTER_LINE_N_1>:! End Program;
<FOOTER_LINE_N_2>:ABORT;
/POS
In order to have the following downloaded text:
/MN
1:UFRAME_NUM = 1;
2:UTOOL_NUM = 1;
3:PAYLOAD[1];
4:! Start Program;
5:J P[1:"lo1"] 100% FINE;
6:L P[2:"lo2"] 500mm/sec FINE SPOT[S=1];
7:L P[3:"lo3"] 500mm/sec FINE;
8:L P[4:"lo4"] 500mm/sec FINE;
9:L P[5:"lo5"] 500mm/sec FINE SPOT[S=1];
10:J P[6:"lo6"] 100% FINE;
11:L P[7:"lo7"] 500mm/sec FINE SPOT[S=1];
12:J P[8:"lo8"] 100% FINE;
13:J P[9:"lo9"] 100% FINE BACKUP=O;
Process Download
This topic describes how to download a program.
It contains the following subtopics:
• Download Basics
Download Basics
Any process created in a Process Simulate application can be transformed into a robot
program through the OLP/Download facility. The robot programs will include:
• Process attributes (per path or location)
• Motion Attributes
Thus, the work put into process design is automatically reflected in fully-verified
robot programs. The generated programs may be further edited if desired, and then
downloaded to the actual robots on the factory floor.
To Download:
1. With the robot specific Teach Pendant set, make sure that you have specified the
TCPF, motion type, and zone on the locations.
2. With the robot specific Teach Pendant set, teach locations in order to store the
robot configurations (solutions) on the locations (i.e. using Auto Teach on the
Sequence Editor).
3.
Select Robotics → Robotic Program → Robotic Program Inventory .
Program
In this lesson we will examine the files output from the download. The same procedure
could be used to examine files from the robot to be uploaded into Process Simulate.
IMPORTANT NOTE
This is not the primary way to upload directly from the robot to Process Simulate.
This technique is for a special situation where you want to transfer paths, which
were uploaded to Robcad, to Process Simulate. For the more typical case of
uploading directly from the robot to Process Simulate, see the next lesson.
There are two ways to upload:
• Method 1: Upload a program from Robcad to Process Simulate (that was uploaded
from a real robot controller)
• Select robot.
• For Robcad Attributes, define path to the Robcad attributes file. The
default attributes file is located under $Robcad\dat
• For Standard Settings, there are pre settings for ABB, Fanuc and Kuka.
• Click Add and select Robcad programs (.default) to the Selected Program
Files list.
• Click Upload.
Upload Basics
The Upload Programs command receives information from a robot (in specific
controller syntax) and saves it as robotic operation and/or program.
Here is how (NOT an activity):
1. Select a robot from the Graphic Viewer.
2.
Select Robotics → Robotic Program → Robotic Program Inventory .
3.
From the Program Inventory window, click Upload Programs .
This picture shows the file types for Fanuc-Rj. The file types shown depend
on the controller selected.
4. In the Open window, browse to the desired folder and select the desired file.
The available Files of type are specific to the selected robot controller.
5. Click Open.
For each file, Process Simulate runs the upload mechanism to read the file
and create a robotic operation and/or robotic program.
This is useful if, for example, you have used Download Programs to load your
program on a shop-floor robot. You can then edit and fine-tune the program on the robot
itself and use Upload Programs to store the updated program back to eMServer.
In order to make use of your shop-floor improvements, you can merge the changes in
the shop-floor program (the source) into your original program (the target).
The Robotic Operation Merge window enables you to manually select which source
locations to merge with which target locations. Alternatively, you can perform an
automatic merge of the entire source operation with the target operation. The automatic
merge may be performed either by merging source and target locations sharing the same
name or merging locations in close proximity. You can also edit the order of locations in
the target operation. Additionally, you can specify which source data to merge with the
target.
2. Click in Target operation and select the target operation in the Operation
Tree (or other relevant viewer). This is the operation you wish to update with
information from another operation.
3. Click in Source operation and select the source operation in the Operation Tree.
This is the operation from which you wish to retrieve information.
4. Click [OK]. The Robotic Operation Merge window appears displaying the Target
Operation as a tree together with its locations in blue text in the left pane and the
Source Operation tree together with its locations in red text in the right pane.
5.
Click Select Operations to replace the selected operations with a different
source and target operation.
7. If you wish to match source operations with target operations automatically, click
Automatic Match . The system matches up pairs of locations either by name
or by distance (depending on the criteria set in Robotic Operation Merge
Settings ) and displays them as matched pairs.
8.
If necessary, click Erase Match to unmatch selected matched pairs. For each
matched pair, the source location is removed from Match, the distance from
Distance, Merge is cleared, and is removed from the source location (unless this
is still matched with another target location).
9. Click Execute. The system performs the merge and the Robotic Operation Merge
window reloads the target operation.
Summary
Subjects learned in this topic:
• How to select and create program templates for downloading.
Purpose
To describe how to use the OLP commands section of the emulated robot specific
controllers (ESRC).
Objectives
After you complete this chapter, you should be familiar with:
• How use the standard OLP commands of emulated robot specific controllers
(ESRC).
• The list of the supported OLP commands for several of the robot controllers.
Much of what is downloaded is stored on the locations in the path as OLP commands.
This is where logic statements are placed for download to the program file. This chapter
will cover all sorts of OLP commands which can be used in Process Simulate. While
some commands can only be simulated, others can be simulated and downloaded.
Here are some examples of OLP commands:
• Boolean output signals
o DO, RDO, RO, SDO, SO, UO, PULSE
• Macros
• Other commands
o payload
o pause, abort
o register assignment
o call, if call
On the Teach Pendant after clicking Add, the Standard Commands menu is
available. These commands are available during simulation, but either do not download
or download as comments. They work the same as their default controller equivalent.
o
# Blank - Blank an object.
o
# Display - Display an object
o
# TCP Tracker - Enables you to start, pause, resume, or stop the TCP
Tracker for the robot assigned to the current operation.
• Paint
o
# OpenPaintGun - Marks the location where painting should start.
(Review from the WKP115S course)
o
# ClosePaintGun - Marks the location where painting should stop.
(Review from the WKP115S course)
o
# ChangeBrush - Marks the location where the painting style should be
changed (i.e. Brush 1, 2, 3, etc…) (Review from the WKP115S course)
• PartHandling
o
# Attach - Attach a selected component to another component or link.
o
# Detach - Attach a selected component to another component or link.
o # Grip – moves the gripper to the specified pose and attaches the part to it.
(Review from the WKP215S course)
o # Release – moves the gripper to the specified pose and detaches the part
from it. (Review from the WKP215S course)
• ProgramFlow
→ Options. The file can contain any OLP command for the selected robot
controller. (Review from the WKP215S course)
o # CallPath – in the middle of executing a path (i.e. pa1), another path (i.e.
pa2) can be executed. Once pa2 is finished, it will pick up where it left off in
pa1.
• Synchronization
o # SendSignal – The robot sends a robot signal to the PLC (PLC input)
(Review from the WKP115S and WKP215S courses)
o # WaitSignal – The robot waits for a robot signal from the PLC (PLC output)
(Review from the WKP115S and WKP215S courses)
o # WaitTime – The robot waits the specified number of seconds before the
next command is performed.
• ToolHanding
o # Connect – connect the specified joint from the specified device as an
external axis of the robot
o
# Mount - Mount a new tool on the robot
o
# UnMount - Unmount the existing tool on the robot
o # WaitDevice – Waits until the selected device reaches the selected target
pose. (Review from the WKP115S course)
• # Note <message> - Displays the message in the Process Simulate error window
after the simulation is stopped including the location where it was executed. Use
double quotes to evaluate variables and signals
o # Else
o # Endif
• Switch syntax
o # Switch <expression>
[Ex # Switch (a+b)]
o # Default
o # Endswitch
o # Endfor
o # Endwhile
• ABB-Rapid
• Comau-Pdl
• Duerr-EcoTalk
• Fanuc-RJ
• Kawasaki-As
• Kuka-Krc
• Reis-Robstar
• (ABB) Trallfa-Robtalk
• Yaskawa-Inform
• Activity: Adding Digital Input and Digital Output OLP Commands to Locations
The support in this area of ESRC is continuing to improve. For the latest
list of supported robot specific commands, see the GTAC support website
(support.industrysoftware.automation.siemens.com/gtac.shtml). The latest ESRC
controllers and related documentation can be downloaded the updates area of the
website.
ABB-Rapid
• GridLoad
AbbRapid Specifics:
• Baseware,Spotware, and Dispenseware are supported
o Move the robot with an offset expressed in wobjdata object frame coordinates
system.
o The optional rotational part of the offset are rotation angles in degrees
expressed in wobj data object frame coordinate system (rotations are
performed one after the other in the rotating frame)
o The current location motion type, speed, zone are used to move to the offset
position
o The optional rotational part of the offset are rotation angles in degrees
expressed in reference location self coordinate system (rotations are performed
one after the other in the rotating frame)
o The current location motion type, speed, zone are used to move to the offset
position
These commands must be entered as free text or using a custom XML (described
in the next chapter).
• Set as SendSignal
• Reset as SendSignal
• WaitTime as Delay
• UseBrushTab as storing the current active Brush Table for further use in Change
Brush trigger simulation
• ConfJ/ConfL
• Singarea
• GripLoad
• ActUnit / DeActUnit
• If <FuntionCall> THEN ... ELSEIF <condition> THEN ... ELSE ... ENDIF
• RETURN
• RETURN <expression>
Simulation keywords:
• ${ActiveGun}
• ${Robot}
• If RCS for simulation actions is selected, a MOP simulation will replace the RRS
based simulation
• All Commands supported in RRS simulation (see above) will also be simulated in
MOP simulation, except :
o ConfJ/ConfL
o SingArea
o GripLoad
o ActUnit/DeActUnit
■ ...use SpeedData.VTcp
o ZoneData→ Zone:
Supported configurations:
• mounted gun
• mounted workpiece
• robot on rail
• robot with moving object frame (object attached to an external mechanical unit, like
a turn table)
Comau-Pdl
■ $SPD_OPT
■ $GEN_OVR
■ $LIN_SPD
■ $ROT_SPD
■ $PROG_SPD_OVR
■ $ARM_SPD_OVR
■ $PROG_ACC_OVR
■ $PROG_DEC_OVR
■ $ARM_ACC_OVR
■ $ARM_DEC_OVR
■ $TERM_TYPE
■ $FLY_TYPE
■ $FLY_PER
■ $FLY_DIST
■ $FLY_TRAJ
■ $ORNT_TYPE
• <var> := <FunctionCall>
• WAIT FOR <signal expression> OR ($TIMER[i] > <val>) (as well >= <val>), as
wait for signal with timeout (timeout equal to val - current timer memorized value)
• SELECT (<var>) OF ... CASE (<val1>, <val2>) : ... ELSE : ... ENDSELECT
• RETURN
• RETURN <Expression>
Simulation keywords:
Following simulation keywords are supported and automatically substituted in macros,
robot modules and XML simulation layers :
• ${ActiveGun}
• ${Robot}
• All Commands supported in RRS simulation (see above) will also be simulated in
MOP simulation, except :
o System variables assignation
■ SpeedControl = SPD_LIN
◊ speed : cartesian speed
o Zone
■ $FLY_TYPE = $FLY_OFF, : fine
Supported configurations:
• mounted gun
• mounted workpiece
• robot on rail
Duerr-EcoTalk
• All Commands supported in RRS simulation (see above) will also be simulated in
MOP simulation, except:
Supported configurations:
• Pneumatic mounted gun
• Robot on rail
Fanuc-RJ
• I/O – PULSE, Wait Signals, Digital Output, Robot Digital Output, User Digital
Output, System Digital Output, Group Signal Output, and Analog Signal Output
• Arc – Weave Start, Weave End, Track TAST, and Track End
• MESSAGE
• REMARK
• RSR ENABLE
• RSR DISABLE
• Register Assignment
o GI
o GO
o RDI
o SDI
o UI
o RDO
o SDO
o UO
Limitations:
Conditions (IF, SELECT) and register operations (R[i] = ) are evaluated in pre-
calculation.
In the case below, RDI[i] signal will be checked after sending the P[2] target to the RCS
(so before the robot even starts to move to P[1]).
• L P[1]
• L P[2]
• L P[3]
• LBL[1]
• L P[4]
• L P[5]
• L P[2]
• WAIT RDI[1] = ON
• L P[3]
• L P[4]
• L P[5]
• All Commands supported in RRS simulation (see above) will also be simulated in
MOP simulation, except :
o Payload
o TermType → Zone :
■ FINE : fine
■ CNT81-CNT100 : nodecel
■ CNT41-CNT80 : coarse
■ CNT11-CNT40 : medium
■ CNT0-CN10 : fine
■ CD : nodecel
Supported configurations:
• Pneumatic mounted gun
• Robot on rail
Kawasaki-As
• Free Text
• Any basic OLP command described earlier, including the following ones which
must be entered as free text:
o Move the robot with an offset expressed in location object frame coordinates
system.
o The optional rotational part of the offset are rotation angles in degrees
expressed in location object frame coordinate system (rotations are performed
one after the other in the rotating frame)
o The current location motion type, speed, zone are used to move to the offset
position
o Move the robot with an offset expressed in location self coordinates system.
o The optional rotational part of the offset are rotation angles in degrees
expressed in reference location self coordinate system (rotations are performed
one after the other in the rotating frame)
o The current location motion type, speed, zone are used to move to the offset
position
o Motion Parameters:
o By default, the current modal motion parameters (speed, zone, tool, etc..) will
be used.
• All Commands supported in RRS simulation (see above) will also be simulated in
MOP simulation, except :
o payload
• Accuracy:
Supported configurations:
• mounted gun
• mounted workpiece
• robot on rail
Kuka-Krc
• I/O – Wait Time, Out, Pulse, Syn Out, Syn Pulse, Wait For signal, and Wait For
Expr.
In addition to the KRC Fold commands supported in simulation (see below), the
following additional KRC Fold commands are also supported in download:
• PROGRAM.GUN <gun_num> PRG = <prog> PART = <move> mm FORCE =
<pressure> daN
o example: PROGRAM.GUN 1 PRG=2 PART = 3mm FORCE = 10 daN
• INIT.GUN<gun_num>
o example: INIT.GUN1
■ example : WAIT FOR (IN 2 'signal 2') and (not OUT 3 '')
■ ...simulated as Pulse Signal OUT 3 (set to value 1, then set to value 0 after
0.1 sec)
• KRL commands
o $VEL.CP
o $VEL.ORI1
o $VEL.ORI2
o $ACC.CP
o $ACC.ORI1
o $ACC.ORI2
o LOOP....ENDLOOP
o GOTO <label> jump to label. ( jump from outside into a loop instruction bloc
is forbidden )
o RETURN
o RETURN <Expression>
Simulation keywords:
• ${ActiveGun}
• ${Robot}
• If RCS for simulation actions is selected, a MOP simulation will replace the RRS
based simulation
• All Commands supported in RRS simulation (see above) will also be simulated in
MOP simulation, except :
• Zone:
o FINE → fine
• C_PTP
o 0-10 : fine
o 10-40 : medium
o 40-80 : coarse
o 80-100 : nodecel
• C_DIS
o 0-2 : fine
o 2-7 : medium
o 7-15 : coarse
o > 15 : nodecel
• C_VEL → nodecel
• C_ORI → nodecel
Supported configurations:
• mounted gun
• mounted workpiece
• robot on rail
Reis-Robstar
(ABB) Trallfa-Robtalk
o JUMP num
o LABEL num
o IF cond
o instr
o cond
o INPUT num
o op
o <
o >
o #
INTERNAL_HALT
• Other instructions
o WAIT OBJPOS X|Y|Z >|< value - as a wait for specific conveyor position
o BRUSH num
o GUN ON|OFF
Limitations:
• Following commands are not supported in simulation:
o #include filename
o REL
o MOVE NEGOFFS
o MOVE POSREG
• All Commands supported in RRS simulation (see above) will also be simulated in
MOP simulation, except :
o Gun/Brush instructions with condition
Supported configurations:
• mounted gun
• robot on rail
Yaskawa-Inform
o AOUT
o WAIT
o PULSE
o SET
o CLEAR
o INC
o DEC
o ADD/SUB
o MUL/DIV
o AND/OR/NOT/XOR
o CALL
o TIMER
o RET
o CWAIT
Limitations:
• In the case of JUMP JOB:<job name> UF#(<user frame no>) the UF# part is not
simulated
o </Controller>
• All Commands supported in RRS simulation (see above) will also be simulated in
MOP simulation, except :
• Speed
o SpeedType = VJ
o SpeedType = V
o SpeedType = VR
• Zone
o FlyLevel
o CONT : nodecel
o PL0: fine
o PL1: medium
o PL2…PL8: coarse
Supported configurations:
• Pneumatic mounted gun
• Robot on rail
• Robot Macros - Entered in a robot macro file and referenced as OLP commands
on a location (i.e. grip which executes a series of commands). A macro is
downloaded as just the macro name (the contents of the macro are not downloaded.
• Robot Module - (i.e. tip dress/counter, sub program), setting up logic that can be
simulated.
o Can load modules from the program
OLP Customization:
In the next chapter we will discuss how to create customized OLP and Motion
commands and which ESRC support it.
Details of Options:
• option 1a: gripper device and gripper locations
• Conditional statements can’t be processed ahead of time because the “look ahead”
for motion smoothing
• So need to cancel existing motion and them start it again with another point
• Can avoid not knowing the start point between 2 paths by always stopping at the
same point.
Summary
Subjects learned in this topic:
• How use the standard OLP commands of emulated robot specific controllers
(ESRC).
• The list of the supported OLP commands for several of the robot controllers.
6 Calibration
Purpose
To describe how to use the Process Simulate calibration tools.
Objectives
After you complete this chapter, you should be familiar with:
• An overview of the concepts of calibration.
• How to create a calibration and use it to calibrate the position of a path relative to a
robot.
Calibration Introduction
This topic provides an overview of the concepts of calibration.
It contains the following subtopics:
• Calibration Basics
• What is Calibration?
• Calibration Sets
• Calibration Results
Calibration Basics
• Enable transferring on-line teach programs from one robot study to another study
that is theoretically identical, without requiring manual corrections of robot
destinations.
What is Calibration?
Calibration is the process of bringing the modeled Process Simulate study into
conformity with the real-world study. This is done by creating a filter which describes
how the real-world study differs from the Process Simulate model. This filter is called a
"calibration set".
Calibration is needed by those users who require high accuracy in the downloaded
program locations, or in programs with a large number of locations, in order to avoid
manual touchups. Calibration would not be required in a program with few locations
needing high accuracy; manual touchups in this case would be more efficient.
The calibration process involves measuring the real study in some manner, and bringing
that information into Process Simulate. The robot itself is the primary method of study
measurement. However, external systems such as theodolites can be used to bring XYZ
coordinate data into Process Simulate.
Calibration Sets
After creating objects in Process Simulate, it is possible to measure the equivalent real
objects on the shop floor. In this case, you may wish to calibrate (transform) the source
points to be as close as possible to the destination points, as measured and stored in
Process Simulate. The Robotics → Calibration command accepts multiple pairs
of points (each pair consists of a source point and an destination point) and uses an
algorithm to adjust the position and orientation of the source pairs so that the average
distance between the sources and destinations is as small as possible. The algorithm
calculates the optimum transformation for all the pairs - there will be an improvement
for most of the pairs but one or two may not be improved. Siemens recommends using
not more than ten pairs to maintain system performance.
After adding all the desired pairs, the system calculates the transformation and you can
apply it if you are satisfied. You can Apply more transformations and Unapply them.
At the end of your session, you can store the calibration set in the eMServer.
There must be at least three calibration pairs to enable calibration calculation (because
three pairs define a plane).
The user can produce more than one calibration set for the same Process Simulate
study, in order to account for more than one actual study. Each set has a unique identity.
Any set can be used when a robot program is downloaded. In addition, a program
can be uploaded from the actual robot study with the use of one set, and then can be
downloaded to another actual study with the use of another set.
square root of the mean of the squares of the values. It is a power mean with the power t
= 2.
and the corresponding formula for a continuous function f(t) defined over the interval
is:
Calibration Results
The calibration calculation runs in real time, updating the Calibration Results
automatically when new calibration pairs are added, removed, activated, or deactivated.
The system displays the following results.
• dX, dY, and dZ - Displays the transformation distance results on the X, Y, and Z
axes.
• Rx, Ry, and Rz - Displays the transformation rotation results around the X, Y, and
Z axes.
• Maximum distance - Displays the distance between a transformed object and the
original object for the calibration pair with the largest average distance.
• Average distance - Displays the average distance between all the transformed
objects and the original objects.
• RMS - Displays the RMS (root mean square) distance between all the transformed
objects and the original ones.
Study calibration is used to calculate the actual location of the robot relative to the
workpiece.
What we will need to do is independently create a path on the real robot and the Process
Simulate robot that includes the robot touching the same three points on the workpiece.
Then we will would upload the path from the real robot and use the calibration window
to reconcile them. In doing so, we create a calibration set that can act as a filter to adjust
the downloaded path from Process Simulate to better fit to environment of the real
robot.
Calibration Pairs are used to effect the rms calculation by means of pairs of download
and upload locations: locations placed in the Process Simulate study are downloaded
to the actual study, they are corrected according to the actual, relative placement of
the robot and workpiece, and the corrected locations are uploaded back to the Process
Simulate study.
The Calibration command is used to perform the rms calculation based on user-
supplied data, and then display the results of the calculation and apply the results to a
selected component as a transformation to the location of that component.
1. In Process Simulate, create (i.e. three) locations in a path to define the workpiece
calibration. These points are typically on known common “landmarks” such as
point on the fixture blocks.
3. On the real robot, teach the same three locations into a new program.
4. Upload the program from the real robot into Process Simulate.
5. Using the Process Simulate Calibration window, create a calibration set with these
two paths as input.
6. Apply the calibration set to the desired robotic path created in Process Simulate to
properly locate it relative to the robot.
Summary
Subjects learned in this topic:
• An overview of the concepts of calibration.
• How to create a calibration and use it to calibrate the position of a path relative to a
robot.
Purpose
To describe how to do OLP customization.
Objectives
After you complete this chapter, you should be familiar with:
• Got an overview of the capabilities in this area.
• Dialog Standards
Customized
Customized OLP Robot Path
Controller Motion
Configuration Template
Configuration
ABB Yes Yes Yes
ABB Volvo (Volvo
Yes No Yes
only)
Comau Yes Yes Yes
Comau Volvo
Yes No Yes
(Volvo only)
Duerr Yes No Yes
Fanuc F100iA
Yes No Yes
(CFLEX)
Fanuc Yes Yes Yes
Fanuc Japan (Japan
Yes No Yes
only)
Fanuc VW (VW
Yes No Yes
only)
Kawasaki Yes No Yes
Kuka Yes Yes Yes
Kuka Volvo (Volvo
Yes No Yes
only)
Kuka VKRC (VW
Yes No Yes
only)
NC Code Yes Yes Yes
Reis Yes Yes Yes
(ABB) Trallfa Yes No Yes
Yaskawa
Yes No Yes
(Motoman)
Siemens PLM Software, together with its customers, invests a lot of effort, based
on broad knowledge gained over many years, to offer advanced OLP programming
capabilities. The availability of the Teach Pendants, and in more recent versions, the
greater use of the Path Editor, provides our users a much greater scope of functionality
than in the past. Nevertheless, there is always room for user customization and the
flexible application of customer "flavors".
As the environment becomes ever more complex, the only solution that can serve users'
needs is an open solution. This is due to the following constraints:
• The system must be flexible enough to add commands which utilize correct syntax
but are still easy to use.
ESRC technology allows simulation and verification of many of the commands. The
customizable User Interface, based on ESRC, is designed to take advantage of these
capabilities.
In Process Simulate, we use XML files to support customization of OLP commands and
motion commands ... WYSIWYG
• The first layer, the User Interface Layer, defines the dialog that can be opened
from within the Teach Pendant during the session.
• The Download Layer is the last and probably most important of the three layers.
Here users define the actual controller specific commands from a form in the dialog
from the User Interface layer.
• Finally there are Upload Capabilities to reuse the definition and present the data in
a form to the user.
Checker will load the new configuration. (Closing the Teach Pendant and re-
opening it will also load the new configuration).
Dialog Standards
All OLP command dialogs are generated with the same layout.
Dialog Size:
The size of the dialog should be automatically calculated according to configuration file
data.
This is not an exercise. A detailed exercise on this topic can be found later in this
chapter.
• With the desired robot controller set for the assigned robot: Right click a robotic
operation and select Teach Pendant .
This is not an exercise. A detailed exercise on this topic can be found in the next
chapter.
• With the desired robot controller set for the assigned robot: Add the path to the
Path Editor (and the Customized Motion, Customized Debug, and Process
type Columns).
• Look at the custom user interface results in the bottom half of the Teach Pendant
window.
The rest of this chapter deals with OLP command customization. The next
chapter will tackle motion command customization.
For each controller there may be several configuration files. During the OLP package
installation, the configuration files should be installed in the OLPConfiguration
subfolder (.\Tecnomatix\eMPower\Robotic\Olp\<Controller name>/
OLPConfiguration/*.xml). Users can assign any names they wish to configuration
files.
The following illustrates an example installation with a customized user interface for
Kuka:
The XML file must start and end with the RobotController element. This tab contains
three other elements which represent the three main parts of the file:
• RobotController - This element must occur only once and be the root. It contains
these attributes:
o The Name must appear in the RobotController element. It should be the
robot controller as specified in the rrs.xml file. Example value: “Fanuc-Rj”
• RoboticParams
• OlpCommands
• OlpDialogs
This element includes all the robotic parameters (Param elements) which are used by
customized OLP/Motion commands. Process Simulate reads this section from within all
the relevant XML files (per controller per version) into one cache which is used by all
customized commands. Therefore it is necessary for each robotic parameter name to be
unique.
It is used to define the parameters (i.e. the parameter’s type, list of values, min, max
values, etc…)
Basic Description:
Each parameter (Param element) should have a name, a type and (optionally) a value.
It contains these attributes:
• Name - This element determines the name of the parameters
• ValueType - This element must occur only once. Values are either:
o Int – a number
o Double – a number
o String – text
• part_instance,
• part_physical_appearance,
• part_prototype_assignment,
• compound_resource,
• resource_instance,
• Allow only filtered objects from a list using the ShowList attribute of the
PickTypes tab
• Allow only objects based on the type using the TxValidatorType attribute of the
Param tab.
• Layers
This element includes all the OLP commands (Command elements) which are used by
customized OLP commands. The Process Simulate application reads this section from
all relevant XML files (per controller per version) into one cache which is used by all
customized commands. Therefore, each OLP command name must be unique.
• Command – This element represents one customized OLP command
and it contains the command name and parameters names. Contains the
RoboticParamRef and Layers elements. Attributes for this element:
o Name - Example value: “Do Something”
• Layers - This element is optional, but can occur only once. This element contains
the primary layers: UILayer, SimulationLayer, and DownloadLayer.
Layers
• SimulationLayer - This element is optional, but can occur only once. It defines
how the customized OLP command will be simulated. During simulation, when the
controller encounters a customized OLP Command, replaces it with its simulation
layer and interprets this simulation layer instead. Inside the simulation layer, users
can write any elementary command (one per <line> ... </line> section) that is
understood by the controller:
o "default controller" standard commands (ex : # SendSignal sig1, # WaitTime
2, # Blank PaintFanEntity,....)
• Item - Only allowed below Line elements. Contains the Type attribute as well as
either a parameter name (when the type is parameter) or a constant. Attributes for
this element:
o Type – Values are either const, optional, or parameter, or
dynamicParameter
The OlpDialogs element contains a list of dialogs, each of which allows you to create
one or more OLP commands. It contains one or more Dialog elements.
• Dialog - Attributes for this element:
o Title - Shows the title of the dialog in the Teach Pendant. Each ‘|’ is a new
subdirectory. For example: Title="MyTest|Customized|ChooseLocation"
o Description - A short description inside the dialog for the user. For example:
Description=”Please select a location”
<RobotController Name=””>
<RoboticParams>
<Param Name=”” ValueType=”” Default=””>
<ComboDef>
<ElmDef>xxx<ElmDef/>
</ComboDef>
</Param>
</RoboticParams>
<OlpCommands>
<Command Name=””>
<RoboticParamRef>
<Param>xxx</Param>
</RoboticParamRef>
<Layers>
<UILayer>
<Line>
<Item Type="">xxx</Item>
</Line>
</UILayer>
<SimulationLayer>
<Line>
<Item Type="">xxx</Item>
</Line>
</SimulationLayer>
<DownloadLayer>
<Line>
<Item Type="">xxx</Item>
</Line>
</DownloadLayer>
</Layers>
</Command>
</OLPCommands>
<OLPDialogs>
<Dialog Title="" Description="">
<OlpCommandRef>
<OlpCommand>xxx</Param>
</ OlpCommandRef >
</Dialog>
</OLPDialogs>
</RobotController>
• ABB Activity: Creating a Custom Command for Send Signal and Wait Signal
• Fanuc Activity: Creating a Custom Command for Send Signal and Wait Signal
• Kuka Activity: Creating a Custom Command for Send Signal and Wait Signal
• Yaskawa Activity: Creating a Custom Command for Send Signal and Wait Signal
In this lesson we will create a custom command for send signal and wait signal in the
robot controller’s specific language (i.e. it will be downloadable).
Note: The below examples assume that we have a PLC Input (and robot) signal defined
named DO[2] and a PLC Output (and robot) signal defined named DI[1].
For ABB-Rapid:
• Send Signal: SetDO DO[2], 1;
For Fanuc-Rj:
• Send Signal: DO[2] = ON
For Kuka-Krc:
• Send Signal: OUT 1 ‘DO[2]’ State= TRUE
For Yaskawa-Inform:
• Send Signal: DOUT OT#(2) ON
A possible macro could look like this – although it should be mentioned that this macro
is specific (“hardcoded”) for a predefined equipment name:
Macro METHOD1_RIVET
# Destination xyz_riveter_rr_01
# Drive CLOSE
# Destination xyz_ riveter _rr_01
# WaitDevice CLOSE
# WaitTime 2
# Destination xyx_ riveter _rr_01
# Drive OPEN
# Destination xyz_ riveter _rr_01
# WaitDevice OPEN
Macro files must be stored in the defined macro folder under the system root (as
defined in Tools → Options) and named with a .macro file extension.
The advantage of this solution is the fact that the original .cojt including only
kinematics can be used.
The disadvantage of using this kind of macro is being it not flexible at all for any kind
of equipment change.
A much more and realistic way is turning the xyx_ riveter _rr_01 into a smart
component (which provides built in joint value sensors and the ability to move to a pose
using a signal). The entries and exists of this smart component could be connected to
generic signal names which follow our company standard.
Then we can reference these signals in our macro.
• Digital Output Signals:
The following would be added to the SimulationLayer of the OLP Command XML
file:
<SimulationLayer>
<Line>
<Item Type=”const”>METHOD2_RIVET<Item>
</Line>
The .macro file must already exist, since this tool checks for the file before
offering it as a choice.
Summary
Subjects learned in this topic:
• Got an overview of the capabilities in this area.
Purpose
To provide a description on how to do Motion and Robotic Path Template
customization.
Objectives
After you complete this chapter, you should be familiar with:
• How to create an enhanced motion XML
• Description
For each controller there may be several OLP and motion configuration files. After
the OLP controller installation, your custom configuration files should be installed
in the MotionConfiguration folder (.\eMPower\Robotics\Olp\<Controller>
\MotionConfiguration). Users can assign any names they wish to configuration files.
Description
All the syntax of the OLPConfiguration elements can be used here as well.
Representation of Layers of motion commands:
Customized motion commands are stored in the Database only one time, but for each
motion command, there are three different representations. (User Interface, Simulation
and Download)
The purpose of this service is to retrieve the right motion command representation
according the user needs.
In the XML file, for each location type and each process type, there will be three layers:
1. UILayer – The user interface layer shows what will be shown in Process Type
column of Path Editor.
1. When the user clicks in the ProcessType column in the Path Editor, the service
read the XML (only the first time and saves it in a cache for reusability) and an
appropriate list of process types (according to the suitable location type) will be
shown for the user to select.
2. When the user chooses a value – a custom user interface is opened with the current
values displayed.
3. After setting the desired values and click [OK], the values are set on all the
referenced location attributes.
The Customized Motion and Customized Debug columns can be
added to the Path Editor as well. If the location has not been customized,
there won’t be a value in these fields.
For motion command XML files the RobotController element contains the
RoboticParams and Location elements.
Location – This element represents the type of the location the user will select and
contains a Type attribute which can have these values: VIA, WELD, Seam Start,
Seam End, Seam Middle
• Process – This element is one of the values of the list of values shown for the
selected location type. This is the value that will be shown in the Process Type
column. Several of these elements can be placed within a Location element.
o Force - Once users select a process type for a location, the application forces
new values for specific robotic parameters.
o Motion – The type of motion with the following Types: 1 Joint, 2 Linear, 3
Slew, 4 Circular Via, 5 Circular2, 6 Circular Radius, 7 Circular Full, and 8
Spline.
Your custom motion XML will show a specific list of values for the Process Type
based on location type. For example for Weld locations, the user has the ability to
choose either Style1 or Style2 for the Process Type (in the Path Editor).
Each Process type can have its own dialog which can be opened from the
Customized Motion column of the Path Editor.
One or all layers can be filtered based on the assigned motion type.
For example:
• Weld (location type)
o Style1 (process type) — Weld location dialog for Style1
■ PTP (motion type)
◊ Simulation layer
◊ Download layer
◊ Simulation layer
◊ Download layer
◊ Simulation layer
◊ Download layer
■ PTP
◊ Simulation layer
◊ Download layer
◊ Simulation layer
◊ Download layer
◊ Simulation layer
◊ Download layer
◊ Simulation layer
◊ Download layer
■ PTP
◊ Simulation layer
◊ Download layer
• The regular parameters – the service should find their value on the location,
• The controller parameters – the service will get their values by API from the
controller.
• Finally, Process Simulate will return one string to the controller with everything it
needs (or an empty string if it required)
• Capabilities
• Description
It is often necessary to configure location parameters (tool, speed, zone, etc.) to define
a path for a specific process. Additionally, approach and depart via locations with the
same parameters are added to the path. Each action can add locations to the selected
path, and/or change location orientation and robotic parameters, and OLP commands.
For example, in a gluing operation, the user configures the gluing start, stop, and robot
speed. These are process specific parameters to be applied to each gluing path.
Process Simulate enables you to define actions in an XML template and apply the
actions to multiple operations. You can set parameters and OLP commands for
locations, add approach and depart via locations, and set their coordinates. You can
define many actions in the XML template and apply them with a single click, saving
repetitive manual configuration, increasing productivity, and reducing errors.
The robotic templates are stored as XML files in dedicated folders. Since each robot
controller has its own OLP commands (standard, specific, and customized) and
motion parameters (regular, complex, and customized), each controller requires its
own PathTemplateConfiguration folder for storing template files. The folder is
created during controller installation and is located under …\eMPower\Robotics\Olp
\<Controller>\PathTemplateConfiguration. All the XML files in this folder are taken
in account, without any dependency on their names.
The following is an example of simple actions:
• Action A: For the first seam location with the Polishing process type:
o Set RRS_MOTION_TYPE to 2
• Action B: For the last seam location with the Polishing process type:
o Set RRS_MOTION_TYPE to 2
Basic Steps:
• Create custom path template XML file.
• Use the custom path template XML in Process Simulate by selecting Operations
→ Path Editing → Apply Path Template Action .
Capabilities
• Adding locations
• Support different templates for each controller, with and without parameters
Description
For robot path template XML files the RobotController element contains the
ActionList and ActionFilter elements.
• ActionList - This element contains a list of Action elements.
• ActionFilter
any other filters; use it only for OLP commands, color, and motion for the
selected operation level.
o MotionTypes - Filters the locations by motion type. This attribute can take
more than one value.
o etc …
• Olp - For a standard or controller specific controller, the system creates a free text
command at the location. For a standard customized controller, the system creates
a composite command at the location. If there is already an OLP command with the
same name at the location, a new OLP command is added.
• Color - The possible values are: Red, green, yellow, blue, magenta, cyan, orange,
white, pink, gray, brown, wood, dark green, dark red, dark brown, light blue, black.
• AddLoc - This element describes the creation of a new via location and setting
its coordinates in degrees (double) value. In the AddLoc element, the user should
define what to do with the new via location. Outside the AddLoc element, the
system checks again that the filter is on the fixed operation. It then continues with
the new output of the filter.
If several locations pass the action filter, each location entering the operation
may change the location pointed to by RefLoc.
In this lesson, we will describe how to create an example robotic path template
customization file and use it in Process Simulate.
For example:
We want to define a path template XML to:
• Give the abilities to apply all defined path templates
o Add a location before the first location in the path, offset -100 along the X-
axis, and 100 along the Y-axis.
o Add a location before each weld location, offset -5 along the X, add an _01
suffix to the name, and set its color to yellow. Also on these locations: set the
zone to z30, the speed to v1000, and the motion type to 1 (joint motion).
o Add a location after each weld location, offset -5 along the X, add an _02
suffix to the name, and set its color to blue. Also on these locations: set the
zone to z80, the speed to v600, and the motion type to 1 (joint motion).
• Picture Attribute
Custom Debugging
From the Teach Pendant right click the command in the OLP commands list and select
Show Layers or Customized Upload Parameter Checker.
Can be done in the Path Editor by picking in the Custom Debug column and select
Show Layers or Custom Checker.
In order to set values for customized motion only once for several locations:
In the Path Editor, select several locations and click Set Locations Properties .
In the Set Locations Properties window, set the process type for all locations, and then
select the Customized motion row, and click in order to open the window.
Picture Attribute
The picture in the dialog changes dynamically according to the combobox selection.
This aids you in selecting the correct gun.
Picture is an optional attribute. Its value is the relative path from the
CustomizedPictures folder.
Under this folder, the user can manage pictures with nested subfolders as desired. For
example:
Add the Help attribute to the Dialog element will add a help button to the UI. This
attribute is available in Custom Motion and OLP files.
If you wish to launch a URL, add the shortcut to the folder and the XML (using the
shortcut name and ".url").
• You can now launch the desired item over the net (internet, intranet).
• You can store all items on a single server and use shortcuts to access them.
Users can place all the .XML files under a shared folder in single location, allowing
all users to just point to this folder by adding the CustomizedPath attribute to the
Version element in the rrs.xml file. Typically this folder would be a shared drive such
as N:\sysroot\Kuka-Krc or \\ilhzsomebody\Kuka-Krc. This folder would contain
all of the .XML customization folders that are found under the install folder (i.e. .
\Tencomatix\eMPower\Robotics\OLP\Kuka-Krc (of course it would not include the
executables for the robot controller).
Summary
Subjects learned in this topic:
• How to create an enhanced motion XML
9 Final Comments
Purpose
To various other interesting topics related to robotics that have not been covered in the
previous courses.
Objectives
After you complete this chapter, you should be familiar with:
• An overview of the robotic parameters viewer
This tool has own executable which must be installed first. It can be downloaded
from the GTAC FTP site separately from Process Simulate: from ftp.ugs.com/
tecnomatix, browse to Tecnomatix → Planning Applications → Robot
Controllers → v10.1 → Tools → Robotic Parameters Viewer and
download it.
After this viewer is installed, it will then be available in Tools → Customize list
under the OLP category. Add it to the Robotics menu.
Usage:
Select an operation or a location (or a robot when the API will be available).
All the object parameters (with their value) are automatically displayed in the viewer.
You can select another object while the RoboticParametersViewer is open and it will
update the parameters list.
To open the Robot Modules window, select the desired robot instances and then select
Robotics → Robot Modules .
• Robot modules should be loaded / edited with the Robot Modules standard tool in
Process Simulate.
• Those modules can contain any number of procedures or functions defined in the
controller native language syntax (standard controller syntax [# commands] can
also be used if needed in the procedure body)
• In simulation, the procedure call is replaced by the procedure body (in which the
procedure parameters have been replaced with the call arguments).
Comau Yes
Comau Volvo (Volvo only) Yes
Duerr No
Fanuc CFLEX (F100iA) No
Fanuc Yes
Fanuc Japan (Japan only) Yes
Fanuc VW (VW only) Yes
Kawasaki No
Kuka Yes
Kuka Volvo (Volvo only) Yes
Kuka VW (VW only) Yes
Reis (Not covered in class)
Trallfa No
Yaskawa / Motoman No
Basic Usage:
1. Select a robot in the Graphic Viewer or Object Tree.
2.
Select Robotics → Robot Modules .
The Roller Hemming Tool is a set of tools that provide functionalities for
RollerHemming process that are missing inside Process Simulate standard commands.
The currently available tool is named Assign Servo Value And Speed
This tool has own executable which must be installed first. It can be downloaded
from the GTAC FTP site separately from Process Simulate: from ftp.ugs.com/
tecnomatix, browse to Tecnomatix → Planning Applications → Robot
Controllers → v10.1 → Tools → Roller Hemming Tool and download it.
After this viewer is installed, it will then be available in Tools → Customize list
under the OLP category. Add it to the Robotics menu.
Usage:
• Start and end locations belong to the same robotic operation, and start location is
before end location
• The robot that operates the robotic operation has a servo gun
• In case Apply Speedis checked, the application will also check the validity of the
Distance to speed Table grid (no interval should intersect)
When these conditions are fulfilled, the min and max of Start Servo field should be
initialized with the Min and Max joint limits of the servo gun.
This distance will be recalculated for all location between the 2 selected ones: Start and
End
The Start location will have the servo value equal to Servo Start Value
For the other location the Servo Value will be calculated like follow :
ServoValue (loc N) = ServoValue (loc N-1) + Distance (loc N and loc N-1) *
Override Value
The % of override can take value from -100% to +100% according to this formula:
ServoValue (loc N) = ServoValue (loc N-1) + Distance (loc N and loc N-1) * [0 ÷ 2]
In case the calculated servo gun value is beyond the servo gun limits, a warning
message will be logged but the servo value will be assigned anyway
Accordingly to the Distance to speed mapping table the speed of the all location
belong the current selection will be updated.
• Smooth External
• Smooth Rail
This tool has own executable which must be installed first. It can be downloaded
from the GTAC FTP site separately from Process Simulate: from ftp.ugs.com/
tecnomatix, browse to Tecnomatix → Planning Applications → Robot
Controllers → v10.1 → Tools → OLP Tool and download it.
After this is installed, several new commands will become available in Tools →
Customize list under the OLP category:
Smooth External
Smooth Rail
Detailed descriptions follow later in this lesson.
OLP Tools are a set of commands which are necessary to do several things, including
define attributes needed by the controllers.
This tool allows the conversion of weld locations into robotic via locations.
To use it:
1. Select one or several weld locations. It is also possible to select weld operations (in
this case all weld locations inside the operations will be considered selected).
2.
Select Robotics → Convert to Via Location .
This tool allows the conversation of robotic via locations into weld locations.
To use it:
1. To enable the command, select one or several via locations. It is also possible to
select weld operations (in this case all via locations inside the operations will be
considered selected).
2.
Select Robotics → Convert to Weld Location .
3. In the Convert to Weld Location window, you can select the discrete process
(SPOT, STUD, etc...). This will determine the discrete MFG type that will be
created.
4. Click Apply.
This tool allows the conversion of robotic via locations into seam locations gathered
into seam operations.
To use it:
1. To enable the command, select a list of robotic via locations inside a continuous
operation
2.
Select Robotics → Create Seam Operation .
3. In the Create Seam Operation window, you can select the continuous process
(GLUE, ARC, PAINT, etc..). This will determine the continuous MFG type that
will be created.
4. Click Apply.
The selected via locations are converted to seam locations and are put inside
seam operations.
This tool allows users to define the main joint of a servo or pneumatic servo gun (this
step is required for pneumatic servo gun simulation as well as for servo gun hot swap
simulation, in case the gun is modeled with more than one prismatic joint).
To use it:
1. Select a servo or pneumatic servo gun.
2.
Select Robotics → Define Gun Main Joint .
3. In the Define Gun Main Joint window, select the Main Joint.
This tool allows the automatic setting of current rail value to a list of locations.
To use it:
2.
Select Robotics → Mark Current Rail Value .
The command will create/update the rail value on all locations with the
current rail position.
This tool allows jogging a rail while keeping the robot TCPF in a fixed position.
To use it:
1. Select one location.
2.
Select Robotics → Rail Jog with Locked TCPF .
3. In the Rail Jog with Locked TCPF window, you can jog the rail with the slider or
by typing a numerical value in the numeric control.
• You can change the step of the numeric control via the Step link
If robot cannot maintain its TCPF at the location, the Update Location
button will be disabled.
• Reset will revert back the rail at the rail value as stored in the location
external axes ("Reset" is disabled in case the location does not have yet a rail
value).
• Update Location will update the location external axes with the current rail
value.
2.
Select Robotics → Shift Rail Value .
3. Select the amount of mm you would like to shift the rail value on the selected
locations (the numeric control automatically limits the possible values so that no
rail values on any of the selected locations could be outside limits)
4. Click [OK].
The rail value will be updated accordingly on all selected locations (locations
without existing rail value will be left unchanged).
Smooth External
This tool allows the automatic setting of external axis values along a path.
To use it:
1. Select a robot.
2.
Select Robotics → Smooth External .
4. If the robot has more than one external axis, select the external joint you want to
interpolate
The application will create/update the external joint values on all locations
between the selected ones. It will interpolate the external joint values set on
the start and end locations with the relative Cartesian travel distance from the
start location, along the path.
Smooth Rail
This tool allows the automatic setting of rail values along a path.
To use it:
1.
Select Robotics → Smooth Rail .
2. In the Smooth Rail window, select a start and an end location inside a robotic
operation. These locations should already have an external axis value defined.
4. Click [OK] or Apply. The application will create/update the rail values on all
locations between the selected ones.
1. Prepare the OLP materials - This step is also accomplished by the Process
Simulate user, who will create the program files, and prepare the OLP
documentation, which is a reproduction of the study layout, gun mounting, and
locations of calibration points.
2. Verify robot and study installation - This step is done by the robot programmer,
who uses the OLP materials to verify that the robot, tool, and study infrastructure
match the Process Simulate layout.
3. Generate robot program and download - The final step is combined action by
the process designer and robot programmer. The user creates the robot program,
which is input by the robot programmer.
Summary
Subjects learned in this topic:
• An overview of the robotic parameters viewer