3HAC051193 - RobotWare Add-Ins
3HAC051193 - RobotWare Add-Ins
3HAC051193 - RobotWare Add-Ins
RobotWare Add-Ins
Trace back information:
Workspace R16-2 version a5
Checked in 2016-09-08
Skribenta version 4.6.318
Application manual
RobotWare Add-Ins
RobotWare 6.04
Table of contents
Overview of this manual ................................................................................................................... 7
Product documentation, IRC5 .......................................................................................................... 9
Safety ................................................................................................................................................ 11
1 Introduction 13
1.1 About RobotWare Add-Ins .................................................................................. 13
1.2 The CIRCLEMOVE example ................................................................................ 15
4 License Generator 91
4.1 Introduction ...................................................................................................... 91
4.2 The user interface ............................................................................................. 92
4.2.1 The Preferences window .......................................................................... 92
4.2.2 The main window .................................................................................... 93
4.3 Creating the License .......................................................................................... 94
Index 95
Usage
With the help of this manual, you can package functionality into an Add-In and
create a license that allows access to the Add-In.
Prerequisites
The reader should...
• be experienced in working with ABB robots
• be experienced RAPID programmer
• be familiar with system parameters
References
Reference Document ID
Technical reference manual - System parameters 3HAC050948-001
Operating manual - RobotStudio 3HAC032104-001
Revisions
Revision Description
- Released with RobotWare 6.00.01
First release.
A Released with RobotWare 6.02
• Added section about I/O signals, see Topic I/O System on page 44.
• Updated the path to the utility folders throughout the manual, for example
see Template files on page 33.
• Added section Hide RAPID content on page 59.
• Added section Optional settings for RAPID arguments (RAPID meta
data) on page 61 and updated section register on page 27.
• Updated the section RobotWare Add-In Packaging tool on page 71.
• Minor corrections.
Revision Description
B Released with RobotWare 6.03
• Added the tag VersionName to the version.xml file, see version.xml on
page 19.
• Updated the section register on page 27.
• Added sections Argument filter on page 66 and Argument value range
on page 68.
• Updated the section Product details tab on page 81.
• Minor corrections.
C Released with RobotWare 6.04
• Added commands for deleting items in the FlexPendant programming
window picklist, see install.cmd on page 21.
• Added command direxist, see Commands on page 22.
• Minor corrections.
Product manuals
Manipulators, controllers, DressPack/SpotPack, and most other hardware is
delivered with a Product manual that generally contains:
• Safety information.
• Installation and commissioning (descriptions of mechanical installation or
electrical connections).
• Maintenance (descriptions of all required preventive maintenance procedures
including intervals and expected life time of parts).
• Repair (descriptions of all recommended repair procedures including spare
parts).
• Calibration.
• Decommissioning.
• Reference information (safety standards, unit conversions, screw joints, lists
of tools).
• Spare parts list with exploded views (or references to separate spare parts
lists).
• Circuit diagrams (or references to circuit diagrams).
Application manuals
Specific applications (for example software or hardware options) are described in
Application manuals. An application manual can describe one or several
applications.
An application manual generally contains information about:
• The purpose of the application (what it does and when it is useful).
• What is included (for example cables, I/O boards, RAPID instructions, system
parameters, DVD with PC software).
• How to install included or required hardware.
• How to use the application.
• Examples of how to use the application.
Operating manuals
The operating manuals describe hands-on handling of the products. The manuals
are aimed at those having first-hand operational contact with the product, that is
production cell operators, programmers, and trouble shooters.
The group of manuals includes (among others):
• Operating manual - Emergency safety information
• Operating manual - General safety information
• Operating manual - Getting started, IRC5 and RobotStudio
• Operating manual - IRC5 Integrator's guide
• Operating manual - IRC5 with FlexPendant
• Operating manual - RobotStudio
• Operating manual - Trouble shooting IRC5
Safety
Safety of personnel
A robot is heavy and extremely powerful regardless of its speed. A pause or long
stop in movement can be followed by a fast hazardous movement. Even if a pattern
of movement is predicted, a change in operation can be triggered by an external
signal resulting in an unexpected movement.
Therefore, it is important that all safety regulations are followed when entering
safeguarded space.
Safety regulations
Before beginning work with the robot, make sure you are familiar with the safety
regulations described in the manual Operating manual - General safety information.
1 Introduction
1.1 About RobotWare Add-Ins
What is an Add-In
In RobotWare 6 the concept of additional options has been replaced with RobotWare
Add-Ins. If you were familiar with the additional option concept, you will see that
from a structural point of view, additional options and Add-Ins are handled the
same way on the robot controller. What is new is that the packaging has been
changed to simplify installation with Installation Manager. For more information
about the packaging tool and process, see RobotWare Add-In Packaging tool on
page 71.
Using Add-Ins
Add-Ins allow to create installable supplemental software packages that extend
the capabilities offered by RobotWare, making ABB's robot controllers even smarter
and even more user-friendly. Creating RobotWare Add-Ins is also the recommended
way for 3rd party developers to add new features into RobotWare.
An Add-In can include a number of RAPID modules, system modules, or program
modules which hold the basic code for the Add-In. The Add-In also includes some
files for loading and configuration at start up. The Add-In may also include .xml
files with event log messages in different languages.
An Add-In can also consist of more advanced coding, such as C# code, for
FlexPendant applications. This manual will cover the first case, with coding done
in RAPID only. For more advanced coding, use RobotStudio SDK applications.
Licensed Add-Ins
What you need from ABB to package your own licensed Add-In is:
• RobotWare Add-In Packaging tool
• a licence certificate for the RobotWare Add-In Packaging tool for your Add-In
name
To license the Add-In, you will also need:
• License Generator
• a publisher certificate.
• a licensing certificate for the License Generator
For more information, see Digital signing on page 76.
Basic approach
These are the major steps for creating an Add-In. More detailed descriptions are
given later in this manual.
1 Create the RAPID code for the Add-In, see RAPID code on page 31.
2 Create the event message files, see Event log messages on page 33.
3 Create configuration files for system parameters, see System parameters
on page 38.
4 Create the file version.xml, see version.xml on page 19.
5 Create the file install.cmd, see install.cmd on page 21.
6 Create and package the RobotWare Add-In, see RobotWare Add-In Packaging
tool on page 71.
7 For licensed Add-Ins:
Create a licence file, see License Generator on page 91.
8 Use the Installation Manager in RobotStudio to create a system that uses
the Add-In.
For more information, see Operating manual - RobotStudio.
Introduction
Throughout this manual, an example Add-In is used to illustrate how to implement
an Add-In. This Add-In is called CIRCLEMOVE.
Some parts of this manual have detailed reference information for commands and
syntax used in the Add-In files. Looking at the examples can be a way of solving
your problem without having to read all the reference information.
Description
The Add-In CIRCLEMOVE contains an instruction called MoveCircle that will
move the robot in a complete circle. This instruction is added to a pick list on the
FlexPendant and behaves just like one of the original instructions.
Error messages are stored in .xml files (in this example only in English), and are
used in the RAPID code.
Add-In files
An Add-In consists of a number of files that you need to create in order to make
your own Add-In.
File type Description
version.xml Name, version number and description of the Add-In, see version.xml
on page 19.
install.cmd Installation script. Specifies for example which .cfg files to load, see in-
stall.cmd on page 21.
.cfg One or several .cfg files with the configuration of system parameters. If
the Add-In includes RAPID, one of the .cfg files should specify which
RAPID module (.sys file) to load, see System parameters on page 38.
.sys or .mod The RAPID source code, see RAPID code on page 31.
File structure
This picture displays the layout the of an Add-In, required by the robot controller,
before it has been packaged with the RobotWare Add-In Packaging tool.
The tps folder is used for FlexPendant applications, see FlexPendant applications
on page 69.
<option name>
version.xml
install.cmd
...
config
sys.cfg
mmc.cfg
language
install.cmd
en
elogtext.xml
elogtitles.xml
de
elogtext.xml
elogtitles.xml
...
elogtext.xml
elogtitles.xml
RAPID
<. . .>.sys
<. . .>.mod
tps
xx1400002781
Note
Note that mmc.cfg, sys.cfg, and the folder language (and everything in that folder)
are optional. How to set up the language folders and their content is described
in Including language files on page 58.
2.2 version.xml
Introduction
A RobotWare 6 Add-In contains a version.xml file that holds the name, version,
and description of the Add-In. This is the same as for a RobotWare 5 additional
option.
When converting a RobotWare 5 additional option to a RobotWare 6 Add-In, the
information in the version.xml file is read by the RobotWare Add-In Packaging tool.
Note
In RobotWare 6, the role of the version.xml file has been largely replaced by the
product manifest file. However some client applications may still require the file
to be present and the RobotWare Add-In Packaging tool will therefore
automatically create a version.xml file based on the product manifest information.
XML description
The file version.xml is using the following tags:
Tag Description
Major Major version number. This number is changed every time a new
Add-In version with major changes is released.
Integer between 0 and 65535.
Minor Minor version number. This number is changed every time a new
Add-In version with minor changes is released.
Integer between 0 and 65535.
Revision Revision number. This number is changed every time a revision of
the Add-In is released.
Integer between 0 and 65535.
Build Build number. To be used internally during developing and testing
of the Add-In.
Integer between 0 and 65535.
VersionName The complete product version as displayed to the end user.
This may include additional identifiers such as "Beta" or "Release
Candidate".
Title The name of the Add-In.
Description A description of what the Add-In is used for.
Max 255 characters.
Date The release date for this version of the Add-In.
Format: YYYY-MM-DD
Type Always set to AdditionalOption.
Example file
<Version>
<Major>1</Major>
<Minor>01</Minor>
<Revision>01</Revision>
<Build>001</Build>
2.3 install.cmd
2.3.1 Introduction
Description
The install.cmd file is an installation script that for example define which
configuration files and event log messages files to load. One of the configuration
files (sys.cfg) defines which RAPID program files (.sys) to load.
2.3.2 Commands
Overview
This section describes the syntax of the commands that can be used in the
installation script install.cmd.
The script install.cmd is executed when using the restart mode Reset system to
automatically install a number of different files, like configuration files or text files.
The install.cmd file can contain conditions so that certain actions only are executed
if certain conditions are true.
$
The command $ defines the name of a string variable.
Example:
setstr -strvar $LANG -value "en"
Predefined strings:
String Predefined value
$BOOTPATH The folder where install.cmd is executed. For example:
/hd0a/<system name>/PRODUCTS/<Add-In folder>
$HOME /hd0a/<system name>/HOME
$SYSPAR /hd0a/<system name>/SYSPAR
$RWTEMP /hd0a/temp
#
Comment, if # followed by a space.
Label, if no space between # and text.
Example:
# A comment
#Label1
config
Does one of the following:·
• Load configuration resource files into the configuration database
• Erase unprotected instances of the specified configuration domain
Parameter Description Default
filename The cfg file name, including file path.
domain The topic of the cfg file. Allowed values are:
• SIO - Communication
• SYS - Controller
• EIO - I/O
• MMC - Man-machine communication
• MOC - Motion
erase Erase unprotected instances of the specified configuration FALSE
domain.
Examples
config -filename $BOOTPATH/eio.cfg -domain EIO -load
config -filename $BOOTPATH/sys.cfg -domain SYS -internal
config -filename $BOOTPATH/eiopw.cfg -domain EIO -replace
config -filename $BOOTPATH/awNoSimPrompt.cfg -domain SYS -replace
-internal
config -erase -domain MOC
copy
Copy a file.
Parameter Description Default
from The file to be copied, including the file path.
to The new file name, including the file path.
Example:
copy -from $BOOTPATH/instopt.cmd -to $RWTEMP/instopt.cmd
delay
Delay the running of the command script.
Parameter Description Default
time Number of milliseconds to delay. 100
Example:
delay -time 1000
delete
Delete a file.
Parameter Description Default
name Name of file to delete, including file path.
Example:
delete -path $RWTEMP/opt_l0.cmd
direxist
If a directory exists, go to a label.
Parameter Description Default
path The complete path to the folder.
label The label to go to if the folder exists.
Example:
direxist -path $TEMP/MyFolder -label CLEANUP_0
echo
Echo (print) a message to the VxWorks console output during the system start.
Parameter Description Default
text The text to show on the FlexPendant.
Example:
echo -text "Installing configuration files"
fileexist
If a file exists, go to a label.
Parameter Description Default
path File name, including the file path.
label The label to go to if the file exists.
Example:
fileexist -path $RWTEMP/opt_l0.cmd -label CLEANUP_0
find_replace
Find and replace occurrences of a string in a file. Only the first occurrence of the
string in each line of the text is replaced.
Parameter Description Default
path File to search, including the file path.
find String to find.
replace String to replace with.
Example:
find_replace -path $HOME/myfile.txt -find "ABC" -replace "CBA"
getkey
A number of selections can be made by user at the time of system creation. These
selections are stored by the system as a number of keys. The values stored in
these keys can be read at the system startup time by using getkey command.
Example:
getkey -id "LangSelect" -strvar $ANSWER -errlabel ENGLISH
goto
Go to a label.
The label to go to can either be specified directly, using the parameter label, or via
a string containing the label name, using the parameter strvar.
Examples:
goto -strvar $ANSWER
goto -label END_LABEL
ifstr
If a string variable is equal to a string value, go to the specified label. If not equal,
the next statement is executed.
If the string variable is undefined, the command returns an error code.
Parameter Description Default
strvar String variable to be compared with a string value.
value String value to compare the string variable with.
label Label to go to if the comparison is true.
Example:
ifstr -strvar $ANSWER -value "IRT5454_2B" -label APP2
ifvc
If the script containing this command is run on the virtual controller, go to the
specified label.
Parameter Description Default
label Label to go to if the script is run on a virtual controller.
Example:
ifvc -label NO_START_DELAY
include
Include the script of another command file. Executes all commands in the script
and then return to the current script.
Parameter Description Default
path The file name of the included script, including the file path.
Example:
include -path $BOOTPATH/instdrv.cmd
mkdir
Make a directory.
Parameter Description Default
path Directory name, including the path.
Example:
mkdir -path $RWTEMP/newdir
onerror
Set the default behavior of the script motor in case a script command fails and
returns an error status code.
It is always the most recent onerror command that sets the current default
behavior. The onerror semantics of included scripts does not affect the onerror
semantics of any script that includes it.
Parameter Description Default
action Defines if an error should result in: go to label, continue execu- continue
tion, stop execution, system failure or return from included
script to the including script
Defines what behavior an error should result in. The allowed
values are:
• goto - Go to a label
• continue - Ignore errors and continue execution
• stop - Stop execution of startup task using assert()
• sysfail - Call SYS_FAIL()
• return - If used by a script included by another script,
execution returns to the calling script. The included
script returns an error code that needs to be handled by
the including script.
label The label to go to if action is goto.
Examples:
onerror -action goto -label MY_LABEL1
onerror -action continue
onerror -action stop
onerror -action sysfail
onerror -action return
print
Prints a text to the VXWorks console.
Parameter Description Default
text The text to show on the console.
Example:
print -text "Copying files to $BOOTPATH"
rapid_delete_palette
Deletes a picklist in the FlexPendant programming window.
Parameter Description Default
palette The name of the picklist to be deleted.
Example:
rapid_delete_palette -palette "M.C 3"
rapid_delete_palette -palette "Settings"
rapid_delete_palette_instruction
Deletes a RAPID instruction in a picklist in the FlexPendant programming window.
Parameter Description Default
palette The name of the picklist.
instruction The name of the RAPID instruction to be deleted.
Example:
rapid_delete_palette_instruction -palette "Common" -instruction
"FOR"
rapid_delete_palette_instruction -palette "Common" -instruction
":="
rapid_delete_palette_instruction -palette "Common" -instruction
"MoveAbsJ"
rapid_delete_palette_instruction -palette "M.C 1" -instruction
"MoveJ"
register
Registers additional information from an xml to controller registers, depending on
the type parameter. The supported types are:
• Error messages (elogmes) – register the xml-file to the elogtext_registry.xml
file. Once registered, these messages can be used by the RAPID program.
• Error message titles (elogtitle) – register the xml-file to the
elogtext_registry.xml file.
• Options (option) - Registers the option in the option_registry.xml file. This
will enable automatic loading of FlexPendant applications from the tps folder
for the Add-In.
• RAPID meta data (rapid_metadata) – Registers additional RAPID argument
settings to the rapid_meta_data_registry.xml.
Parameter Description Applies to
type
type Defines which type (for example elogmes, elogtitle, option, or
rapid_metadata) that is being registered.
domain_no Error messages are stored in different domains. Which domain elogmes,
to register in is defined by domain_no. elogtitle
For Add-Ins, domain_no should always be 9.
min The first message number in the file being registered. elogmes,
elogtitle
max The last message number in the file being registered. elogmes,
elogtitle
prepath The path to the language directory. elogmes,
elogtitle, rap-
id_metadata
Examples:
# Register event log message for Add-In
register -type elogmes -domain_no 11 -min 5001 -max 5001 -prepath
$BOOTPATH/language/-postpath /CircleMove_elogtext.xml
-extopt
setenv
Define an environment variable and set its value.
An environment variable can be used in the RAPID code or in cfg files. If you define
the path to your Add-In folder as an environment variable, this variable can be
used in your programs instead of hard coding the path.
Parameter Description Default
name The environment variable to be assigned a new value.
value The string to assign to the environment variable.
Example:
setenv -name CIRCLEMOVE -value $BOOTPATH
setstr
Define a string variable and set its value. The string can only be used in the
installation script.
Parameter Description Default
strvar The string variable to be assigned a new string.
value The string to assign to the string variable.
Examples:
setstr -strvar $LANG -value "en"
setstr -strvar $CFGPATH -value $SYSPAR
text
This command loads a text description file into a text resource of a package. It
accomplishes the same thing as the RAPID instruction TextTabInstall, but can
also specify different texts for different languages.
For more information, read about user message functionality in Application
manual - Controller software IRC5.
Parameter Description Default
filename Name of the description file, including the file path.
package Package for building the text resource. "en"
Example:
text -filename $BOOTPATH/language/en/text_file.xml -package "en"
timestamp
Read the system clock and print number of seconds and milliseconds to the
standard output.
No parameters.
Overview
The RAPID code, implementing the functionality of your Add-In, is written in a
system module (.sys) file (preferably <Add-In name>.sys).
Tip
PROC MoveCircle(
robtarget pCenter,
num Radius,
speeddata Speed,
zonedata Zone,
PERS tooldata Tool
\PERS wobjdata WObj)
BookErrNo ERR_CIRCLE;
IF Radius < 2 THEN
ErrRaise "ERR_CIRCLE", errorid, ERRSTR_TASK, "Radius",
NumToStr(Radius,2), "2", ERRSTR_CONTEXT;
ENDIF
p1:=pCenter;
p2:=pCenter;
p3:=pCenter;
p4:=pCenter;
p1.trans:=pCenter.trans+[0,Radius,0];
p2.trans:=pCenter.trans+[Radius,0,0];
p3.trans:=pCenter.trans+[-Radius,0,0];
p4.trans:=pCenter.trans+[0,-Radius,0];
MoveL p1,Speed,Zone,Tool\WObj?WObj;
MoveC p2,p3,Speed,z10,Tool\WObj?WObj;
MoveC p4,p1,Speed,Zone,Tool\WObj?WObj;
BACKWARD
MoveL p1,Speed,Zone,Tool\WObj?WObj;
ERROR
IF ERRNO = ERR_CIRCLE THEN
TPWrite "The radius is too small";
RAISE;
ENDIF
ENDPROC
ENDMODULE
Overview
It is possible to create your own event log messages. The text of the message is
placed in one .xml file for each language. You can then use the RAPID instructions
ErrRaise and ErrLog to raise an error using this message. Language independent
strings can be used as arguments to ErrRaise and ErrLog, and be included in
the message.
Template files
Template files for the two required .xml files are included in the RobotWare
installation.
• template_elogtext.xml
• template_elogtitles.xml
The template files are located in the following directory in the RobotWare
installation: ...\RobotPackages\RobotWare_RPK_<version>\utility\Template\Elog.
Note
Navigate to the RobotWare installation folder from the RobotStudio Add-Ins tab,
by right-clicking on the installed RobotWare version in the Add-Ins browser and
selecting Open Package Folder.
Overview
All event log messages you want to add to the system must be written in the
following .xml file:
• <Add-In name>_elogtext.xml
The messages must have unique numbers, within its domain, which are used to
reference the message text from the RAPID code.
xx1400002871
Overview
For the internal handling of event log messages, the following .xml file listing the
message numbers and their titles is necessary:
• <Add-In name>_elogtitles.xml
Introduction
Validation checks that the event log .xml file is correctly formatted, using the
corresponding XML schema file, elogtext.xsd.
• The schema file (elogtext.xsd) and the file template_elogtest.xml are available
in the RobotWare installation, see Template files on page 33.
• The command line tool XMLFileValidator can be downloaded from the Robot-
Studio Online Community, where it is included in the Tools and Utilities
package.
To run the validation, start the tool and use your search paths using the principle
below:
xmlfilevalidator elogtext.xsd my_elogtext.xml
The result of the validation is displayed in the console. Detailed error information
including row- and column references, is displayed for any found formatting errors.
Prerequisites
The XMLFileValidator is provided as-is.
Microsoft .NET framework version 2.0 or later is required.
Overview
The cfg files are used to define instances of system parameter types in a specific
domain. The specified instances are then created by loading the cfg file. Only one
domain can be specified per cfg file.
The file shall be formatted according to the rules in the following sections.
Domain specifier
A cfg file must start with a name of a domain where the specified instances will be
created.
The row must contain the following information, where <version> and <revision>
are optional:
<domain name>:CFG_1.0:<version>:<revision>::
Example
Comments
A comment row starts with '#'.
Type specifiers
The domain specifier is followed by one or more parameter type specifiers and
their instances.
• A type specifier should always be preceded by a row containing a single
character '#'. (Not mandatory)
• A type specifier consists of a parameter type name directly followed by a ':'.
• There should be an empty row between the type name and the first instance.
(Not mandatory)
• There should be no more rows after the last instance row in a cfg file. (Not
mandatory)
• Add a description of all attributes in a type directly after the type specifier.
This is helpful for the user to understand the type. (Not mandatory)
See cfg file examples later in this section.
Mandatory attributes must be specified explicitly in the cfg file otherwise an error
will be generated when loading the file. Optional attributes that are not specified
in the cfg file will be set to the default value for this attribute at loading. If the value
of the optional attribute is specified, then the specified value will be used.
Each instance shall start with the Name attribute (if the instance has a name). Each
attribute shall start with '-' (dash) followed by the attribute name, a blank space
and value. Blank spaces are not allowed in the value except for string values with
quotation marks.
Example:
-name MoveCircle -param_nr 6
Quotation marks can be used for string values. Note, all characters (including
spaces) inside the quotation marks will be treated as one single string.
Example:
-name "M.C 1" -type "MMC_MC1"
Arrays
If an attribute is of an array type, then the attribute value may consist of several
comma separated values. Blank spaces and the multiple row separator '\' cannot
be used inside the array.
Example:
-name MoveCircle -default_struct 1,1,1,1,1,0
COM_TRP:
# -Name Name of transmissions protocol (MAN)
# -Type Name of transmissions protocol type (MAN)
# -PhyChannel Name of the physical channel (MAN)
# -HostName Name of host (OPT)
# -RemoteAdress Remote address (OPT)
# -Gateway Default gateway (OPT)
# -SubnetMask SubNetmask (OPT)
Example
CAB_TASK_MODULES:
-File "CIRCLEMOVE:/CircleMove.sys" -Install -AllTask
Tip
Example
BACKUP_RESTORE:
-ExcludeDirFromHomeAtBackup "SecretDirectory"
-IncludeFileAtBackup "SYSTEM:/ImportantFile.xml"
Example
EIO:CFG_1.0::
#
EIO_SIGNAL:
-Name "DOAccessInternal" -SignalType "DO" -Access "internal"
-Name "DOAccessInternalRAPID" -SignalType "DO" -Access "internal"
-Category "rapid"
Example
MMC_PALETTE_HEAD:
-name "M.C 1" -type "MMC_MC1"
-name "SpotWelding" -type "MMC_SPOTWELD"
Note
• The pick list types contains more parameters and more functionality. For
more information about these, see section Most Common Instruction Types
in Technical reference manual - System parameters.
• Note the use of the equal sign to define the alias type, where the type name
defined in MMC_PALETTE_HEAD is defined as an alias of the base type
MMC_PALETTE.
Example
MMC_MC1 = MMC_PALETTE:
-name MoveCircle
MMC_SPOTWELD = MMC_PALETTE:
-name "SpotL"
-name "SpotJ"
Tip
Example
The instruction TriggInt is defined with the following arguments:
TriggInt TriggData Distance [\Start] | [\Time] Interrupt
Note that Start and Time are alternative arguments and therefor have the same
argument number.
The following alternatives are examples of how to configure an instance of the type
MMC_REAL_ROUTINE:
Proposed values for TriggData, Distance, and Interrupt (the same result as
if default_struct is not defined):
-name TriggInt -default_struct 1,1,0,1
Proposed values for TriggData, Distance, Start, and Interrupt:
-name TriggInt -default_struct 1,1,1,1
Example
The instruction MoveL is defined with the following arguments:
MoveL [\Conc] ToPoint [\ID] Speed [\V] | [\T] Zone [\Z] [\Inpos]
Tool [\WObj] [\Corr] [\TLoad]
As the arguments Conc, V, T, Z, and Inpos should not be reused, the instance of
MMC_INST_NOT_REUSING_PREV_OPT_ARG would look like this:
MMC_INST_NOT_REUSING_PREV_OPT_ARG:
-name MoveL -param_nr 1,5,7,8
Note that both V and T have argument number 5, as they are alternative arguments.
Parameter Description
name_rule Specifies how the argument proposal should be generated. The
following rules can be used:
• NONE - Unexpanded placeholder. No proposal is gener-
ated.
• CUR - The parameter method is used to define the argu-
ment proposal. For example used when the tool argument
should use the current tool.
• DEF - The argument proposal should be a default value
defined by the parameter def_name.
• SEQ - The argument proposal is based on the previous
instruction with a similar argument. Based on the identifier
used in the previous instruction, an increment of the index
is used to create a new identifier. For example, if the rob-
target of the previous move instruction is p10, the next
move instruction will propose p20 (unless p20 is already
used, then p30, p40, ... will be tried until an identifier is
found that is not already used). If no similar argument is
found, looking 100 instructions back, a data value is used
instead of an identifier.
• LAST - The argument proposal gets its value from the
previous instruction with a similar argument. If no similar
argument is found, looking 100 instructions back, a default
value specified by def_name is used.
• VAL - No argument identifier is used. A literal value is used
instead.
method Method to be called if name_rule is CUR or SEQ. Supported
methods are:
• hirule_robtarget - robtarget symbol name increment value
• hirule_jointtarget - jointtarget symbol name increment
value
• hirule_tooldata - current tooldata
• hirule_wobjdata - current wobjdata
• hirule_tloaddata - current tload
def_name Default name needed if name_rule is LAST or DEF.
Example
This example shows how some arguments for the MoveL instruction are configured.
It also defines the common arguments common_point, common_speed, and
common_zone, that are used in the type MMC_COMMON_PARAM.
MMC_REAL_PARAM:
-name MoveL_V -name_rule LAST -def_name 1000
-name MoveL_ID -name_rule VAL
-name MoveL_T -name_rule DEF -def_name 5
-name MoveL_Z -name_rule LAST -def_name 50
-name MoveL_Tool -name_rule CUR -method hirule_tooldata
-name MoveL_WObj -name_rule CUR -method hirule_wobjdata
-name MoveL_TLoad -name_rule CUR -method hirule_tloaddata
Example
In this example the argument proposals for the MoveL arguments ToPoint, Speed,
and Zone are defined by common_point, common_speed, and common_zone.
MMC_COMMON_PARAM:
-name MoveL_ToPoint -common_space_name common_point
-name MoveL_Speed -common_space_name common_speed
-name MoveL_Zone -common_space_name common_zone
Example
This example defines the proposed values for the datatypes identno and
robtarget.
MMC_REAL_DATATYPE:
-name identno -def_name id -value_rule SEQ -use_value 10 \
-object_type CONST
-name robtarget -def_name p -value_rule CUR \
-method hirule_robtarget -object_type CONST\
-validate_hook hirule_validate_robtarget
Parameter Description
param_nr Parameter number for the argument to be selected.
Example
The instruction MoveC is defined with the following arguments:
MoveC [\Conc] CirPoint ToPoint [\ID] Speed [\V] | [\T] Zone [\Z]
[\Inpos] Tool [\WObj] [\Corr] [\TLoad]
Since a modify position of ToPoint is required after the instruction is added, the
argument ToPoint is selected:
MMC_SELECT_PARAM:
-name MoveC -param_nr 3
Example
MMC_INSTR_WITH_WOBJ:
-name MoveL -param_nr 10
Example
MMC_INSTR_WITH_TLOAD:
-name MoveL -param_nr 12
Example
MMC_INSTR_WITH_CIR_POINT:
-name MoveC -param_nr 2
Parameter Description
name The instruction argument, defined as <instruction name>_<argument
name> (for example MoveL_Tool).
Example
The instruction MToolTCPCalib is defined with the following arguments:
MToolTCPCalib Pos1 Pos2 Pos3 Pos 4 Tool MaxErr MeanErr
Pos1, Pos2, Pos3, Pos4 are of type jointtarget but should not be available for
modify position:
MMC_NO_MODPOS:
-name MToolTCPCalib_Pos1
-name MToolTCPCalib_Pos2
-name MToolTCPCalib_Pos3
-name MToolTCPCalib_Pos4
Targets not available for modify position when additional axes offset is active
(MMC_NO_DATA_MODPOS_IF_ACT_EOFFS)
MMC_NO_DATA_MODPOS_IF_ACT_EOFFS defines data types, targets, that should
not be modified with modify position by url (e.g. from Program Data view on the
FlexPendant) if an additional axes offset is active.
Parameter Description
name The name of the data type.
Example
MMC_NO_DATA_MODPOS_IF_ACT_EOFFS:
-name jointtarget
Example
MMC_USE_ACT_EOFFS_IN_MODPOS:
-name MoveAbsJ -param_nr 4 -use_if_present 0
Example
MMC_NO_PC_MOVEMENT:
-name movec_cirpoint
Example
MMC_NO_PC_MOVEMENT_CLEAR_PATH:
-name SpotL_ToPoint
-name SpotJ_ToPoint
-name SpotML_ToPoint
-name SpotMJ_ToPoint
Example
In this example the instruction LoadIdentify is defined as a service routine:
MMC_SERV_ROUT_STRUCT:
-name LoadIdentify
Example
This example specifies that the instruction MoveL can be changed into a MoveJ
instruction. If the argument Corr is set this change of motion mode cannot be
done.
MMC_CHANGE_MOTION_MODE:
-name MoveL -shift_name MoveJ -shift_mode Joint -param_restr 11
-name MoveJ -shift_name MoveL -shift_mode Linear
Overview
This section contains cfg example files for the Add-In CIRCLEMOVE and the
instruction MoveCircle.
CircleMove_sys.cfg
This example uses the environment variable CIRCLEMOVE that is defined in
install.cmd, see Examples of install.cmd files on page 30.
SYS:CFG_1.0::
# Installation of RAPID routines for Add-In CircleMove
# $Revision: 1.7 $
#
CAB_TASK_MODULES:
CircleMove_mmc.cfg
The instruction MoveCircle is defined with the following arguments:
MoveCircle pCenter Radius Speed Zone Tool [\WObj]
To define how MoveCircle should behave on the FlexPendant, the following
configuration is placed in a file called CircleMove_mmc.cfg, which is added to the
CircleMove Add-In.
MMC:CFG_1.0::
# MMC : RAPID PROGRAMMING RULES FOR MODULE CIRCLEMOVE
# $Revision: 1.7 $
#
MMC_MC1 = MMC_PALETTE:
-name MoveCircle
#
MMC_REAL_ROUTINE:
#
MMC_REAL_PARAM:
#
Continues on next page
Application manual - RobotWare Add-Ins 55
3HAC051193-001 Revision: C
© Copyright 2015-2016 ABB. All rights reserved.
2 RobotWare Add-In functionality
2.6.5 Example cfg files
Continued
MMC_INSTR_WITH_WOBJ:
Overview
Localized files can be installed by moving their installation to a separate install.cmd
file and including the file instlang.cmd from the system folder in your main
installation script.
include -path "$RELEASE/system/instlang.cmd"
For this mechanism to work, the Add-In should contain a subfolder called language,
this folder should contain the separate install.cmd file used to install the localized
files. The localized files themselves should be placed in language specific
subfolders of the language folder. The subfolders should be named with the 2 letter
language code, for example en, de, fr etc. See illustration in section Required files
and file structure on page 17.
The file instlang.cmd will call the file install.cmd in the language folder once for
every installed language on the robot controller with the variable $LANG set to the
corresponding language code. After this process has completed the $LANG variable
will always be reset to en.
Example
Example of how to install a localized file.
fileexist -path $BOOTPATH/language/$LANG/CircleMoveAddIn_text.xml
-label INSTALL_FILE
goto -label END
#INSTALL_FILE
text -filename $BOOTPATH/language/$LANG/CircleMoveAddIn_text.xml
-package $LANG
#END
Overview
It is possible to hide the implementation of RAPID code on the FlexPendant.
Developers of Add-Ins often exposes a public interface to their functionality that
other RAPID programmers and end users can access. In order to not confuse the
end user with implementation details they should not need to know anything about,
it is possible to hide parts of the implementation.
This section describes the two proposed ways, best practice, of hiding the code.
Example
sys.cfg
CAB_TASK_MODULES:
-File "CIRCLEMOVE:/CircleMoveImpl.sys" -Hidden -AllTask
-File "CIRCLEMOVE:/CircleMove.sys" -AllTask
CircleMove.sys - Interface
MODULE CIRCLEMOVE(SYSMODULE, NOSTEPIN)
PROC MoveCircle(
robtarget pCenter,
num Radius,
speeddata Speed,
zonedata Zone,
PERS tooldata Tool
\PERS wobjdata WObj)
ENDPROC
ENDMODULE
CircleMoveImpl.sys - Implementation
MODULE CIRCLEMOVEIMPL(SYSMODULE, NOVIEW)
VAR errnum ERR_CIRCLE:= -1;
VAR num errorid := 5001;
PROC MoveCircleImpl(
robtarget pCenter,
num Radius,
speeddata Speed,
zonedata Zone,
PERS tooldata Tool
\PERS wobjdata WObj)
...
ENDPROC
ENDMODULE
Example
sys.cfg
CAB_TASK_MODULES:
-File "CIRCLEMOVE:/CircleMove.sys" -Hidden -AllTask
mmc.cfg
MMC_CIRCLEMOVE_PALETTE = MMC_PALETTE:
-name "MoveCircle"
MMC_PALETTE_HEAD:
-name "Move Circle Palette" -type "MMC_CIRCLEMOVE_PALETTE"
Overview
It is possible to specify certain optional settings for arguments in RAPID instructions.
For instance it is possible to define if certain arguments shall be hidden when
viewing the RAPID program on the FlexPendant.
The optional settings are specified in an .xml file.
XML format
<?xml version="1.0" encoding="utf-8"?>
<Rapid>
<Edit>
<Instruction name="Instr1">
<Argument name="Arg1" show="true" showeditor="false" />
</Instruction>
</Edit>
</Rapid>
Tip
Use the template file named rapid_edit_rules.xml located in the following directory
in the RobotWare installation:
...\RobotPackages\RobotWare_RPK_<version>\utility\Template\RAPID Optional
Arguments\
Navigate to the RobotWare installation folder from the RobotStudio Add-Ins tab,
by right-clicking on the installed RobotWare version in the Add-Ins browser and
selecting Open Package Folder.
Overview
It is possible to hide any of the arguments listed when displaying a programmed
RAPID instruction in the Program Editor and the Production Window on the
FlexPendant.
Which arguments to be shown in program windows is specified in the .xml file
using the showeditor attribute. The default value is that arguments shall be
shown.
XML format
<?xml version="1.0" encoding="utf-8"?>
<Rapid>
<Edit>
<Instruction name="Instr1">
<Argument name="Arg1" showeditor="true" />
<Argument name="Arg2" showeditor="false" />
</Instruction>
</Edit>
</Rapid>
Example
This is an example of an .xml file specifying which optional arguments to show for
MoveJ.
<?xml version="1.0" encoding="utf-8"?>
<Rapid>
<Edit>
<Instruction name="MoveJ">
<Argument name="Conc" showeditor="true" />
<Argument name="ID" showeditor="true" />
<Argument name="V" showeditor="true" />
<Argument name="T" showeditor="false" />
<Argument name="Z" showeditor="false" />
<Argument name="Inpos" showeditor="false" />
<Argument name="WObj" showeditor="true" />
<Argument name="TLoad" showeditor="false" />
</Instruction>
</Edit>
</Rapid>
The result will be that only the arguments Conc, ID, V and WObj will be shown in
the program windows on the FlexPendant for the instruction MoveJ.
Note
Overview
It is possible to hide any of the optional arguments listed when a RAPID instruction
is changed from the FlexPendant.
Which optional arguments to be shown on the FlexPendant is specified in the .xml
file using the show-attribute. The default value is that arguments shall be shown.
XML format
<?xml version="1.0" encoding="utf-8"?>
<Rapid>
<Edit>
<Instruction name="Instr1">
<Argument name="Arg1" show="true" />
<Argument name="Arg2" show="false" />
</Instruction>
</Edit>
</Rapid>
Example
This is an example of an .xml file specifying which optional arguments to show for
MoveJ.
<?xml version="1.0" encoding="utf-8"?>
<Rapid>
<Edit>
<Instruction name="MoveJ">
<Argument name="Conc" show="true" />
<Argument name="ID" show="true" />
<Argument name="V" show="true" />
<Argument name="T" show="false" />
<Argument name="Z" show="false" />
<Argument name="Inpos" show="false" />
<Argument name="WObj" show="true" />
</Instruction>
</Edit>
</Rapid>
The result will be that only the optional arguments Conc, ID, V, and WObj will be
shown when changing the instruction on the FlexPendant for the instruction MoveJ.
Usage
Overview
It is possible to filter the data that is shown as arguments listed on the FlexPendant
and in RobotStudio.
The filter for a specific parameter is specified in the .xml file using the
filter-attribute. The default value is that no filter is used.
XML format
<?xml version="1.0" encoding="utf-8"?>
<Rapid>
<Edit>
<Instruction name="Instr1">
<Argument name="Arg1" filter="PLC_do_.*" />
</Instruction>
</Edit>
</Rapid>
In the example above only data with a name starting with "PLC_do_" will be matched
and shown for the parameter "Arg1" in the instruction "Instr1".
Regular expressions
The regular expressions are a powerful mechanism when it comes to matching a
multitude of names with a single expression.
In a regular expression all alphanumeric characters match, for example the
expression "abc" will match the sequence "abc". Regular expressions are case
sensitive. Most other characters also match, but a small set is known as the
meta-characters. These are:
Expression Meaning
^ Marks the beginning of the name being matched. Default.
$ Marks the end of the name being matched. Default.
. Any single character.
[s] Any character in the non-empty set s, where s is a sequence of
characters. Ranges may be specified as c-c.
[^s] Any character not in the set s.
r* Zero or more occurrences of the regular expression r.
r+ One or more occurrences of the regular expression r.
r? Zero or one occurrence of the regular expression r.
(r) The regular expression r. Used to separate a regular expression
from another.
r | r' The regular expression r or r'.
Examples
Some examples:
• The expression "MoveL" (or "^MoveL$") would match the name "MoveL",
and nothing else.
• The expression "Move.*" would match "MoveL", "MoveC", "MoveCDO" etc.
• The expression ".*Move.*" would match the names "MyMove", "MoveL",
"MoveC" , "MoveCDO" etc.
• The expressions "", ".*", or "^.*$", i.e. an empty string, matches anything.
Overview
It is possible to define minimum and maximum allowed value when specifying a
numerical value for an argument. The value will be validated by the FlexPendant
and RobotStudio when entering such a value.
The minimum and maximum allowed values for a specific parameter is specified
in the .xml file using the minvalue and maxvalue attributes. The default value is
that no minimum and maximum values are used.
XML format
<?xml version="1.0" encoding="utf-8"?>
<Rapid>
<Edit>
<Instruction name="Instr1">
<Argument name="Arg1" minvalue="1" maxvalue="16" />
</Instruction>
</Edit>
</Rapid>
In the example above only values between 1 and 16 will be allowed when entering
a numerical value for the parameter "Arg1" in the instruction "Instr1".
Note
The check for valid numerical value will only be performed when entering a
numerical value as argument. No validation will be performed if for instance a
variable is used as argument.
Introduction
Customized FlexPendant applications can be included in the RobotWare Add-In,
simply by adding the compiled application assemblies and other resources to the
file structure. No additional configuration is needed.
For the application to be loaded properly the Add-In must also register itself using
the register -type option command in the install.cmd file, see register on
page 27.
Note
File structure
When adding a FlexPendant application to the Add-In, the application assemblies
(.dll) and other resources (.jpg, .gif, .bmp) need to be placed in the tps folder in the
Add-In file structure, see File structure on page 18.
General
RobotWare Add-In Packaging tool is a PC tool that will help you to pack your Add-In
as a package that can be deployed to the robot controller using the Installation
Manager. The output of the RobotWare Add-In Packaging tool is a product manifest
file and a robot package file.
The tool will help you to:
• Re-package RobotWare 5 additional options into RobotWare 6 Add-Ins.
• Package new RobotWare 6 Add-Ins.
• Define how the end-user will see the product in the Installation Manager.
• Define rules for how options can be selected in the Installation Manager and
what other products are required for the Add-In to work.
The RobotWare Add-In and the RobotWare Add-In license can then be used together
with RobotWare to create a system using the Installation Manager in RobotStudio.
For more information about the Installation Manager, see Operating
manual - RobotStudio.
Tip
See also the tutorials on using the RobotWare Add-In Packaging tool available
at ABB Download Center.
Installation procedure
Before installing the software make sure that the certificates are available, for more
information see Digital signing on page 76.
Action
1 Install the RobotWare Add-In Packaging tool.
Action
2 Install the certificate for the RobotWare Add-In Packaging tool. Use the password
provided by ABB.
(A certificate is only needed when packaging licensed Add-Ins.)
3 Install your own publisher certificate.
(A certificate is only needed when packaging licensed Add-Ins.)
4 Start the RobotWare Add-In Packaging tool.
3.1.2 Options
Option identity
The option identity is what uniquely identifies an option in a product.
The option identity namespace must start with the product identity and also have
it's own unique part. If the Add-In has many options, the option identity part may
be built up of several parts, to group options logically.
For example: open.yourcompany.yourproduct.youroption
When you decide what scheme to use for the option identity names, keep in mind
that these option identity names are the identifiers that will be used in settings files
and license files (for licensed Add-Ins). If option identifiers are changed between
two releases of an Add-In, compatibility with old settings files and license files will
be broken.
Dependencies
A dependency specified for an option in an Add-In could be either of type AND
dependency, or of type OR dependency. This will define the dependency rule
between the options selected.
For example, dependencies like the following can be defined: Source option A is
dependent on both option B and C. Source option D is dependent on either A, B,
or C.
AND dependency
If an option does not work unless all of its dependent options are also being
installed, all these options are mandatory and should go into the AND dependency
list.
Example:
813-1 Optical Tracking
<AND dependent on>
624-1 Continuous Application Platform
628-1 Sensor Interface
OR dependency
If an option does not work unless one of its dependent options are also being
installed, all these options should go into the OR dependency list. In this case the
option will work if either of the options in the list are also selected for installation.
3.1.3 Files
Digital signing
RobotWare 6 uses signing with digital certificates to ensure the integrity of published
products. When creating a RobotWare Add-In that contains licensed options a
digital signature is mandatory.
To digitally sign a RobotWare Add-In two different types of certificates are required,
a publisher certificate and a licensing certificate.
The publisher certificate signature has 2 main purposes:
• Identify the publisher of the Add-In to the end user.
• Ensure the integrity of the published software. For example, any modifications
to the signed product manifest file will make the signature invalid and cause
the robot controller to refuse to install the Add-In.
The publisher certificate is also commonly known as a code-signing certificate.
The Add-In packaging tool will accept any x509 v3 certificate issued for this purpose.
ABB does not issue publisher certificates, it is the responsibility of the Add-In
developer to obtain a suitable certificate for example by purchasing it from a trusted
certificate authority vendor or create their own self-signed certificate.
The licensing certificate is issued by ABB. This certificate is tied to the product id
you specify and grants you as the publisher the right to issue licenses for your
Add-In. In addition to being used to sign your product the licensing certificate is
also used by the License Generator when creating license files for your RobotWare
Add-In.
Timestamping
In addition to the signing certificates the RobotWare Add-In Packaging tool also
allows you to specify a timestamping server. Timestamping is the process of
applying a timestamp from a trusted source to your digital signature. This ensures
that the signature will still remain valid even if the signing certificate expires or is
revoked at a later date.
For example, without a timestamp the act of revoking a publisher or licensing
certificate would invalidate all products ever signed with these certificates whereas
with a timestamp products signed up to the revocation date will still remain valid.
Although not required it’s considered best practice and recommended to apply a
timestamp when signing your product.
The RobotWare Add-In Packaging tool supports timestamping services that follows
Microsoft’s Authenticode® standard. If you have purchased a publisher certificate
from a certificate authority they should be able to recommend a suitable
timestamping service.
As an alternative Symantec® operates a public timestamping service at the URL
http://timestamp.verisign.com/scripts/timstamp.dll. (Note that it is not possible to
browse to this URL.)
Proceed through the wizard (you will need the pfx password provided by ABB)
until prompted to choose a certificate store:
xx1500000935
By default the wizard will try to determine the appropriate store based on the type
of certificate. This would cause parts of the certificate chain to be installed as a
trusted root certificate which is not recommended in the case of licensing certificates
for security reasons. Instead it’s recommended to change the default option and
place all the certificates in the personal store. This will not affect the signing
operations but will prevent the certificates from being trusted for operations for
which they are not intended.
xx1500000936
xx1400002260
Introduction
The product manifest view is used to fill all product related information that goes
into the product manifest file, for example product name, company name, revision,
etc. The product manifest view is also used to structure the Add-In, and to set any
dependencies or conflicts with other Add-Ins or RobotWare versions.
Product details
Note
Product dependencies
The product dependencies settings are used to setup dependencies to other
Add-Ins and RobotWare versions.
Click Import to add a dependent software. The following fields will be filled
automatically.
Field name Description
Identity The internal identifier of the product.
Name The name of the product.
Platform The installation target platform, for instance robot controller and/or
virtual controller.
Publisher The company name of the Add-In publisher.
MinVersion The minimum product version.
MaxVersion The maximum product version (optional).
Type Product type. Always set to Add-In.
Options tab
The Options tab helps the user to create options and to specify their details.
Note
For licensed products at least one option should have the Requires
license check box selected.
Min Instances Minimum number of robots in the system that can have the option.
(radio button) For options of type Robot only.
Max Instances Maximum number of robots in the system that can have the option,
(radio button) for example when using several robots in a MultiMove system.
For options of type Robot only.
Feature Data
For each option it is possible to define key values that can be retrieved from your
install.cmd file during product installation. For more information see, getkey on
page 24.
xx1400002532
#ORANGE
config ...
#NEXT
#ERROR
Categories tab
The Categories tab is used to group and structure the options according to how
the Add-In should be displayed in the Installation Manager.
It is not allowed to mix system options and robot options within the same category.
When there are both system options and robot options in the Add-In, they must
be put into separate categories.
Categories tab Installation Manager
xx1400002382
xx1400002383
Dependency tab
The Dependency tab is used to configure dependencies between options. A
dependency specified for an option in an Add-In could be either of type AND
dependency, or of type OR dependency.
For more information, see Dependencies on page 73.
Note
Add the dependencies for the option to either the AND dependency options
list or to the OR dependency options list.
Note
If you added a product dependency in the Product details tab, the options
of that product will also be listed as options that the source option can
depend upon.
Conflict tab
The Conflict tab is used to configure conflicts between options. This enables that
conflicting options cannot be selected at the same time in the Installation Manager.
Add the conflicting options one by one and group them by clicking Add Group.
Create a conflict group for each set of conflicting options.
Note
Signing Certificate
The Signing Certificate tab is used to add the publisher and licensing certificates.
This information is mandatory for licensed options and is used during signing of
the manifest and robot package files. For more information, see Digital signing on
page 76.
Basic steps
Use this procedure to create and package the Add-In.
Action See
1 Create a new empty project by clicking New
and then Project from the File menu.
Or:
Select Project from an existing folder hier-
archy, then the tool will try to generate default
data for the Add-In.
2 Enter all information about the Add-In in the The product manifest view on page 81
tabs of the product manifest view.
3 Add all files and folders. The files and folders view on page 86
4 For licensed options, add the publisher and The signing certificate view on page 87
licensing certificates.
5 Build the Add-In by selecting Build Project
from the Build menu.
6 Generate a license using the License Generat- License Generator on page 91
or.
7 Verify the Add-In by building a system using Operating manual - RobotStudio
the Installation Manager in RobotStudio.
3.4.1 Introduction
General
This section describes how to package an existing RobotWare 5 additional option
as a RobotWare 6 Add-In.
The RobotWare Add-In Packaging tool will add information from the imported
additional option as a template Add-In. It is necessary to go through all the option
details one by one to verify that the content is correct.
Limitations
• The RobotWare Add-In Packaging tool does not perform any migration of
the additional option to RobotWare 6, it is only a packaging tool. It is
mandatory to first migrate the additional option to RobotWare 6, using the
migration tool in RobotStudio.
• If the additional option has encrypted relkey.opt and .dat files, the files needs
to be decrypted. The RobotWare Add-In Packaging tool will not be able to
process any encrypted files.
Basic procedure
Use this procedure to convert an Additional option to an Add-In.
Action See
1 Convert the project by clicking Project from
an existing folder hierarchy from the File
menu.
2 Verify and correct all information about the The product manifest view on page 81
Add-In in the tabs of the product manifest
view.
3 Verify that all files and folders are present. The files and folders view on page 86
4 For licensed options, add the publisher and The signing certificate view on page 87
licensing certificates.
5 Build the Add-In by selecting Build Project
from the Build menu.
6 Generate a license using the License Generat- License Generator on page 91
or.
7 Verify the Add-In by building a system using Operating manual - RobotStudio
the Installation Manager in RobotStudio.
4 License Generator
4.1 Introduction
General
The License Generator generates license files for RobotWare Add-Ins.
Installation procedure
Action
1 Install the License Generator.
2 Install the certificate for the License Generator. Use the password provided by ABB.
3 Start the License Generator.
Preferences
Before running the License Generator it is necessary to setup the preferences in
the Preferences window.
Field name Description
Product Location The location of the product manifest files (*.rmf).
Default License Location The default location where the created licence files (*.rlf) should
be saved.
Authorization File The authorization file, license file, (*.rlf) for the License Gener-
ator provided by ABB.
Signing Certificate Install/use the certificate provided by ABB, same certificate as
(radio button) for the RobotWare Add-In Packaging tool.
• From Certificate Store - Select Certificates from store
if the certificates are already installed.
• From File - Select Certificates from file (*.pfx) to install
the certificates.
Certificate Password Use the certificate password provided by ABB.
Timestamp Server URL to a timestamp server.
For more information, see Timestamping on page 76.
xx1400002324
Tip
Tip
Use the search function to search for option names instead of browsing through
the tree-view
Index M
mkdir, 26
mmc.cfg, 45
$, 22
module, 31
#, 22
MoveCircle, 31
C N
CAB_TASK_MODULES, 41
NOSTEPIN, 31
CIRCLEMOVE, 15
config, 22 O
copy, 23 onerror, 26
D P
default argument values, 45 pick list, 45
delay, 23 print, 26
delete, 23
direxist, 24 R
rapid_delete_palette, 26
E rapid_delete_palette_instruction, 27
echo, 24 RAPID code, 31
eio.cfg, 44 RAPID rules, 45
event log messages, 33 register, 27
event log texts, 34
event log titles, 36 S
example, 15, 19 safety, 11
selections, 14
F setenv, 28
fileexist, 24 setstr, 29
file structure, 17 sys.cfg, 41
find_replace, 24 system module, 31
G T
getkey, 24 template files, 33
goto, 25 text, 29
text table files, 57
I timestamp, 29
ifstr, 25
ifvc, 25 V
include, 25 validating .xml, 37
install.cmd, 22, 30 version.xml, 19
L X
load modules, 41 xml
validating, 37
3HAC051193-001, Rev C, en
ABB AB
Discrete Automation and Motion
Robotics
S-721 68 VÄSTERÅS, Sweden
Telephone +46 (0) 21 344 400
www.abb.com/robotics