ABB Translators

This section provides details about 3DEXPERIENCE support for the ABB1 translator.

This page discusses:

Instruction Support

ABB Instruction Support

The following table summarizes the level of support for each ABB file by the DELMIA Rapid translator and DELMIA simulation.

ABB Rapid File Level of Support DELMIA Equivalent Comments
mod-file Supported Task(s), all profile types Multiple module, proc and func definitions possible in a single mod file
prg-file Supported Task(s), all profile types Multiple module, proc and func definitions possible in a single prg file
sys-file Supported Task(s), all profile types Multiple module, proc and func definitions possible in a single sys file
moc.cfg Supported Robot location relative to station Used to determine the robots offset relative to world, ideally the Delmia workcell will match. If not translator will adjust tags/targets to compensate.
eio.cfg Supported I/O signals I/O port declarations

The following table summarizes the level of support for each ABB Instruction by the DELMIA Rapid translator and DELMIA simulation. Any instruction which does not appear in this list is uploaded as a V6 Comment instruction and will not be used in simulation.

DELMIA Instruction Level of Support ABB RAPID Instructions Comments
Goto Supported GOTO
Condition Supported IF
For Supported FOR
Do While, While do Supported WHILE DO
Test, Case, Default Case Supported TEST, CASE, DEFAULT
Return Supported RETURN
Break Supported BREAK
Run (service) Not Supported NA
Run (procedure) Partial Support CALL Arguments are supported. No complex data types for upload.
Procedure Supported PROC/ENDPROC
Custom Supported Any unsupported instruction
Grab/Release Supported CALL
Assign Partial Support Expression No complex data types for upload.
Wait Partial Support WaitDI, WaitDO, WaitTime, or WaitUntil No complex data types for upload.
Robot Motion Supported MoveJ, MoveL, MoveC, MoveAbsJ with args for motion, accuracy, tool, and object profile.
Spot Operation Supported SpotJ, SpotL, SpotMJ, SpotML with args for motion, accuracy, tool, object and spot profile.
Arc Operation Supported ArcL, ArcC, ArcLStart, ArcLEnd with args for motion, accuracy, tool object and arc profile
Seam Search Operation Supported SearchL, SearchC with args for motion, accuracy, tool and object profile
Paint OperationSupported PaintL, PaintC with args for motion, accuracy, tool, object, triggers, and paint profiles. Paint operation created during upload using Surface Painting or Surface Sealing application. DispL and DispC also uploaded as a Paint operation for these application types.
Sealant OperationSupported DispL, DispC with args for motion, accuracy, tool, object, and bead profiles. Sealant operation created during upload using Arc Sealing application. Upload using Surface Painting or Surface Sealing application creates Paint Operation.
TriggerPartial Support For an immediate trigger (meaning no trigger plane is set), the equivalent command is SetBrush <brush no>. If a trigger plane is used, an event will be added to the next PaintL instruction (see PaintL description below). Array of brushdata (typically stored in system files) is not downloaded.
Unsupported Instructions
To ensure that the generated file remains a valid ABB task, any instruction that is not supported on download is skipped. A message is displayed indicating that this DELMIA instruction is not supported by the ABB RAPID language.
Goto

A DELMIA Goto instruction is translated into a Goto <label>. In DELMIA, the label is defined on a specific instruction.

On upload, the label will be set on the first instruction after the <label>, and named the same as the ABB RAPID <label>. If there are no more instructions, a custom activity is created with the name <label>. If the label referenced by a GOTO does not exist in the program, a warning is displayed and the label is placed on the instruction following the GOTO.

On download, the LBL instruction is output just before the instruction that has the DELMIA label defined on it. The label name must follow the format for ABB RAPID identifiers, otherwise an error is displayed.

Condition

A DELMIA Condition instruction is translated into an IF.

If a DELMIA else is used in the condition, it is downloaded to an ELSE.

A DELMIA else followed immediately by an IF is downloaded to an ELSE IF.

A DELMIA Condition instruction is translated into an IF. The expression for the IF must conform to the ABB IF rules for the valid IF expressions. Additionally, multiple expressions can be joined with AND and OR expressions however AND and OR cannot be mixed.

ABB Rapid also has compact if instructions that have the condition and instruction on a single line.

IF nProgNum <> 102 nProgNum:=102;

This is equivalent to a DELMIA condition instruction with only a single instruction in the condition block and no else block.

Custom
A custom instruction text is downloaded into the task exactly as is. On upload, any unsupported instruction is created as a custom instruction with the name of the custom instruction being the RAPID instruction's text. The RAPID semi-colon at the end of the instruction is removed during upload and appended during download.
Grab/Release

On download, the instruction name is downloaded exactly as-is. This is generally the procedure call name used to grab the product.

On upload, if the name of a call instruction contains the phrase "grab" or "pick", a grab activity is created. If it contains "release" or "drop", a release activity is created. The part to grab or release is specified in the parameter PartGrabbed of the "ABB Controller Profile".

Assign

A DELMIA assign instruction is translated into an ABB RAPID assignment.

For download, the RAPID assignment will match the DELMIA assignment.

For upload no complex data types such as robtargets, tooldata, wobjdata can be used in assignments. If they are, a warning is displayed and a custom instruction is created.

Wait

A DELMIA Wait (FALSE) Timeout instruction is translated as a RAPID WaitTime instruction.

A DELMIA Wait (I/O) Timeout instruction is translated as a RAPID WaitDI or WaitDO. If a Timeout value is specified, a \MaxTime will be output.

A DELMIA Wait <condition> Timeout instruction is translated as a RAPID WaitUntil <condition>. If a Timeout value is specified, a \MaxTime will be output.

A DELMIA Wait that uses a condition with a conveyor referential (i.e. $"Referential.1">nWaitWobjPos) is output as a linetracking WaitWObj <wobjdata>\RelDist:=<expression>. The wobjdata is set based on the movable objectframe profile used. The expression is derived from the right-hand side of the wait condition.

A template called WaitAssignOnTimeout can be used for a RAPID WaitDI/DO or WaitUntil with a TimeFlag argument.

WaitDI di1,1\MaxTime:=10\TimeFlag:=bool1;

The WaitAssignOnTimeout is uploaded only if the robot simulation templates have been imported.

Run (procedure)

A DELMIA run instruction, where the run is calling a procedure, is translated into a RAPID procedure call instruction.

Run instructions can have arguments. For upload, complex data types such as robtarget, tooldata, etc. are not supported and will result in a warning displayed and custom instruction generated.

Robot Motion
The following are ABB Rapid standard robot motion commands. The table below gives basic information on the level of support for different motion options.
MoveL/J [\Conc] ToPoint [\ID] Speed [\V] | [\T] Zone [\Z] [\Inpos]
    Tool [\WObj]
MoveC [\Conc] CirPoint ToPoint [\ID] Speed [\V] | [\T] Zone [\Z]
    [\Inpos] Tool [\WObj] [\Corr]
MoveAbsJ [\Conc] ToJointPos [\ID] [\NoEOffs] Speed [\V] | [\T]
    Zone [\Z] [\Inpos] Tool [\WObj]

ABB Rapid Motion Option Support Level DELMIA Equivalent Description Translation Notes
MoveJ, MoveL, MoveC Supported Joint, Linear, Circular motion type
MoveAbsJ Supported Joint motion type
CirPoint,ToPoint Supported Tag RobTarget Variable or explicit Targets which are explicit meaning the coordinates are in the command are uploaded as a tag with prefix "EXPLICIT". If a robtarget name is found a tag with that name is used. The type of declared targets CONST, VAR, PERS, LOCAL CONST, and LOCAL VAR is stored in the PositionType on the robot motion.
ToJointPos Supported Joint target Jointtarget All ABB Rapid jointtargets are uploaded as jointtargets in V6. If a declared jointtarget is used (joints not explicitly shown in the instruction) then the Position Name on the robot motion will be set. . The type of declared targets CONST, VAR, PERS, LOCAL CONST, and LOCAL VAR is stored in the PositionType on the robot motion.
Speed Supported Motion Profile speeddata A motion profile with the same name as the speeddata will be created. If one of the predefined speeddata v500, v1000,etc. are used the values as documented by ABB will be uploaded. If the speeddata is declared the values from that declaration will be used. The v_tcp will be used to set the profile linear speed. The v_ori will be used to set the profile rotational speed.
Zone Supported Accuracy Profile zonedata An accuracy profile with the same name as the zonedata will be created. If one of the predefined zonedata fine, z1,etc. are used the values as documented by ABB will be uploaded. If the zonedata is declared the values from that declaration will be used. The fine_p will be used to set the profile flyby value where fine_p=true is flyby off…fine_p=false is flyby on. The pzone_tcp will be used to set the profile distance.
Tool Supported Tool Profile tooldata A tool profile with the same name as the tooldata will be created. If the predefined tool0 is used the values as documented by ABB will be used. If the tooldata is declared the values from that declaration will be used. The robhold will determine if the tool profile is a fixed TCP where robhold=false is fixed and robhold=true is not fixed. The tframe will be used to set the toolprofile x,y,z,yaw,pitch, roll coords. The tload will be used to set the mass, cog and inertia.
\WObj Partial Support Objectframe profile wobjdata A objectframe profile with the same name as the wobjdata will be created. If the predefined wobj0 is used the values as documented by ABB will be used. If the wobjdata is declared the values from that declaration will be used. The robhold will determine how the objectframe coordinates are used by default. If robhold=false then the uframe and oframe values are treated as relative to the world coordinate system by default. If robhold = true they are relative to the mount plate by default. The default can be changed by selecting a part for the objectframe profile. The uframe and oframe values will be used to set the X,Y,Z, Yaw, Pitch, and Roll of the objectframe profile. If both uframe and oframe exist an additional objectframe profile will be created with the same name as the wobjdata with a _uframe suffix. This additional objectframe profile will have the uframe coordinates only. This is done so the uframe and oframe values can be downloaded again. If the ufprog is set to false (movable wobjdata) then the objectframe profile created will be named with an _ufprog suffix. Note that ufprog if used for line tracking is not supported. If the movable wobjdata is attached to a positioner then it is supported. The ufmec string value is not currently supported. Note that for download the \WObj argument will only be included if the objectframe profile name is not Default and not wobj0.
\Conc Partial Support Motion Switch applicative profile Concurrent Stored in MotionSwitch applicative profile linked to the robot motion. Not supported for simulation.
\ID Partial Support Motion Switch applicative profile Identifier number Stored in MotionSwitch applicative profile linked to the robot motion. Multiple motion group identifier which is not supported for simulation.
\V,\T, \Z Not supported Switch args for speed, time and zone
\InPos Not supported Stop point data
\NoEOffs Not Supported No external offsets
Spot Welding
The following are ABB Rapid spot welding commands. The table below provides basic information on the level of support for different spot options.
S4C controller
SpotL/J   ToPoint, Speed, Spot \InPos \NoConc \Retract, Gun, Tool \WObj   
        
S4C+ controller
 
SpotL/J ToPoint, Speed, GunNo, Spot \InPos \Conc, Tool \WObj
SpotML/J ToPoint, Speed \G1 \G2, Spot \InPos \Conc, Tool \WObj

C5 controller

SpotL/J ToPoint, Speed, GunNo \InPos \OpenHLift \CloseHLift, Tool \Wobj
SpotML/J ToPoint, Speed \G1 \G2 \G3 \G4, \InPos \OpenHLift \CloseHLift, Tool \WObj
ABB Rapid Motion Option Support Level DELMIA Equivalent Description Translation Notes
SpotL,SpotJ Supported Joint Linear Spot instruction Joint or Linear spot welding
SpotML, SpotMJ Partial support Joint Linear Spot instruction multiple gun Joint or Linear spot welding with 2-4 guns Multiple gun upload/downloaded but only a single gun can be simulated.
ToPoint Supported Tag RobTarget Variable or explicit See ToPoint description for robot motion above
Speed Supported Motion Profile speeddata See Speed description for robot motion above
GunNo Supported ABBgundataC5 applicative profile gunnum An applicative profile of type ABBgundataC5 will be created with the same name as the gunnum and linked to the spot operation. A parameter GunNo in the applicative profile is used to upload/download the value. For S4C+/C5 controller an ABBgundataSchedule will be uploaded if found with the index set equal to the GunNo.
Spot Supported ABBspotdata or ABBspotdataSchedule applicative profile spotdata An applicative profile of type ABBspotdata (S4C) or ABBspotdataSchedule (S4C+ and C5) will be created with the same name as the spotdata. This profile is linked to the spot operation. Any spotdata declarations will be uploaded/download into/from the applicative profile parameters. For S4C+/C5 controller a ABBWeldDelaySchedule will be uploaded if found with an index equal to the spotdata progno parameter.
Gun Supported ABBgundata applicative profile gundata An applicative profile of type ABBgundata (S4C) will be created with the same name as the gundata. This profile is linked to the spot operation. Any gundata declarations will be uploaded/download into/from the applicative profile parameters.
\G1,\G2,\G3,\G4 Partial Support Multiple guns 1-4 Multigun spotdata An applicative profile of type ABBspotdataSchedule (S4C+ and C5) will be created with the same name as the spotdata for each of the guns. These profiles are linked to the spot operation. Any spotdata declarations will be uploaded/download into/from the applicative profile parameters. Only a single gun can be simulated.
\InPos Partial Support SpotSwitch applicative profile Gun preclose Stored in SpotSwitch applicative profile linked to the robot motion. Not supported for simulation.
\NoConc, \Retract Partial Support SpotSwitch applicative profile No concurrent and gun retract (S4C only) Stored in SpotSwitch applicative profile linked to the robot motion. Not supported for simulation.
\Conc Partial Support SpotSwitch applicative profile Concurrent (S4C+ and C5 only) Stored in SpotSwitch applicative profile linked to the Spot operation. Not supported for simulation.
\OpenHLift, \CloseHLift Partial support SpotSwitch applicative profile Gun large gap or small gap (C5 only) Stored in SpotSwitch applicative profile linked to the Spot operation. Not supported for simulation.
Tool Supported Tool Profile tooldata See Tool description for robot motion above.
\WObj Supported Objectframe profile Wobjdata See WObj description for robot motion above.
S4C+/C5 Controller spotweld schedules

ABBspotdataSchedule

On upload, the spotdata is uploaded into an applicative profile. The profiles are named based on the identifier used in the ABB Rapid program. This identifier matches the way the spotdata is referenced on the spot instruction.

Parameter Example Value Default Value Measure
progno 1 0 Integer
tipforce 1000N 0.0 Force
platethickness 0.0mm 0.0 Length
platetolerance 0.0mm 0.0 Length

These values come directly from the spotdata found in the MOD-files/PRG-files uploaded, or in any of the MOD-files/PRG-files/SYS-files found in the same folder as the files being uploaded. Alternatively, the files can be in a TASK#\SYSMOD directory if the upload directory is TASK#\PROGMOD. Files that contain the spotdata can be exported from ABB S4C+ or C5 controllers. The spotdata has the same format for both the S4C+ and C5 controller:

PERS spotdata spot1 := [1, 1000, 0, 0];

All values are uploaded into and downloaded from the applicative profile. If the modules that contain the spotdata are not in the correct directory as described above, or if no spotdata is found in the uploaded programs, an applicative profile with default values is created and named the same as the spotdata (name only) referenced in the ABB spot instruction. If an applicative profile with the same name already exists it will be used, but the values are overwritten only if a spotdata declaration is found. The progno and platethickness are used for servo gun simulation.

ABBgundataSchedule

On upload, the gundata is uploaded into an applicative profile. The profiles are named based on the gundata array identifier used in the ABB Rapid SWUSER.sys file.

Parameter Example Value Default Value Measure
Index 1 1 Integer
gun_name "SERVO GUN1" "NOT USED" String
pre_close_time .05sec 0.0 Time
pre_equ_time .05sec 0.0 Time
weld_counter 120 0 Integer
max_nof_welds 1000 0 Integer
curr_tip_wear 0 0 Integer
max_tip_wear 10 0 Integer
weld_timeout 2sec 0 Time
softw_equ True False Boolean
curr_wear_fix 0 0 Integer
release_dist 10mm 0 Length
deflection_dist 0mm 0 Length
deflection_force 5000N 0 Force
deflection_time .1 0 Time
tip_wear_ratio 50% -1 Percent

These values come directly from the SWUSER.sys file if it exists in the same folder as the MOD-files/PRG-files being uploaded. Alternatively, the SWUSER.sys file can be in a TASK#\SYSMOD directory if the upload directory is TASK#\PROGMOD. SWUSER.sys is a file that can be exported from ABB S4C+ and C5 controllers. The format of the gundata is the same for S4C+ and C5, but does depend on the type of servo weldgun being used. Software equalizing is used on the ABB controller to replace mechanical equalizing and is enabled by setting the parameter soft_equ to true. If software equalizing is used the format is:

PERS gundata curr_gundata{4} :=
[[“SERVOGUN”, 0.05, 0, 0, 1000, 0, 10, 2,TRUE, 0, 10, 0, 5000,0.1,-1],
 [“NOT USED”, 0.05, 0, 0, 1000, 0, 10, 2,TRUE, 0, 10, 0,
5000,0.1,-1],
[“NOT USED”, 0.05, 0, 0, 1000, 0, 10, 2,TRUE, 0, 10, 0,
5000,0.1,-1],
[“NOT USED”, 0.05, 0, 0, 1000, 0, 10, 2,TRUE, 0, 10, 0,
5000,0.1,-1]];

If software equalizing is not used, the format is:

PERS gundata curr_gundata{4} :=
[[“SERVOGUN”, 0.1, 0, 0, 1000, 0, 10, 2],
[“NOT USED”, 0.1, 0, 0, 1000, 0, 10, 2],
[“NOT USED”, 0.1, 0, 0, 1000, 0, 10, 2],
[“NOT USED”, 0.1, 0, 0, 1000, 0, 10, 2]];

The index is dependent upon the index in the gundata array. The gundata index is used for a given move is dependent on the gun number specified in the SpotL, SpotJ, SpotML or SpotMJ instruction. All gundata values are uploaded. If the modules that contain the gundata are not in the correct directory as described above, or if no gundata is found in the uploaded programs, an applicative profile with default values is created and named the same as the GunNo (name only) referenced in the ABB spot instruction. If an applicative profile with the same index or name already exists it will be used, but the values are overwritten only if a gundata declaration is found. The release_dist will be used for servo gun simulation. Because the gundata is stored in a system variable file (SWUSER.SYS), they are not downloaded.

ABBWeldDelaySchedule

On upload, weld times are uploaded into an applicative profile. The profile is named progno=<index>. This naming corresponds to the spotdata progno parameter used for the spot instruction.

Parameter Example Value Default Value Measure
Index 1 1 Integer
Weld Delay 0.44s 0s Time

These values come from a file (WDELAY.SCD) if it exists in the same folder as the MOD-files/PRG-files being uploaded. WDELAY.SCD is not a file that can be exported from ABB controllers. You must create this file based on the weld controller's schedule files, as those files are not robot controller-specific and depend on the weld controller. Ypu can customize the ABB Rapid translator to read your weld controller's schedule files directly, if desired.

WDELAY.SCD is a text file that has the same encoding as the MOD-files, and is a comma delimited list. The format has one schedule per line. Any number of lines can be in the file. Time is expressed in seconds.

Index,Time(sec)

Here is a sample file with 8 schedules:

1,0.440
2,0.440
3,0.440
4,0.440
5,0.440
6,0.460
7,0.460
8,0.460

If WDELAY.SCD is not found, an applicative profile with only the index set is created and linked to the spot profile. If more than one time is specified for a given schedule, the first value found is used.

S4C+/C5 Controller Spot commands and spotprofile

The upload and download behavior of SpotL, SpotJ, SpotML, and SpotMJ links the applicative profiles created from uploading the spotdata, gundata (SWUSER.sys) and the WDELAY.SCD file with the spot profile, so that the uploaded values are used in simulation. Other spot profile parameters are also configured as described below with the appropriate values.

If any of the spotdata, gundata or WDELAY.SCD files are not present during upload, the spot profile is created with default values for these profiles.

For the most common use cases, the SpotL, SpotJ, SpotML, and SpotMJ instructions are automatically generated on download, based on the parameters in the spot profile. For these use cases, the spot profile is alsoconfigured during upload so that simulation with and without RRS is as accurate as possible.

The following is a table of all the known arguments to SpotL/J and SpotML/MJ instructions used in S4C+ and C5 controllers. The parameters used in simulation are GunNo, Spot, \G1, \G2, \G3, and \G4.

Measure Used in SpotL/J or SpotML/MJ Optional? Can be set to Variable? Meaning
GunNo Integer SpotL/J No Yes Index of gundata to use (only 1 and 2 supported)
Spot spotdata SpotL/J No Yes Spotdata
\G1 spotdata SpotML/MJ Yes Yes spotdata gun 1 with gundata index 1
\G2 spotdata SpotML/MJ Yes Yes spotdata gun 2 with gundata index 2
\G3 spotdata SpotML/MJ Yes Yes spotdata gun 3 with gundata index 3 (not supported)
\G4 spotdata SpotML/MJ Yes Yes spotdata gun 4 with gundata index 4 (not supported)
\InPos Boolean Both Yes No If set no gun preclose

SpotL/J vs SpotML/MJ

SpotL/J are linear and joint motion instructions with servo welding for a single weldgun. SpotML/MJ are linear and joint motion instructions with servo welding for multiple weldguns. Both are compound instructions which include moving the robot to a clearance position, to the weld position, performing the welding, and finally back to the clearance position.

The spot profile approach move is disabled for both these instructions. The pressure start move is enabled for both provided the \InPos argument is not set. If pressure start is enabled (no \InPos) then the stationary tip clearance for these moves is set to the release_dist parameter from the gundata. The moving tip clearance for the software equalization case (gundata softw_equ true) will also be set to release_dist. If the servo_equ gundata parameter is false (mechanical equalization), the moving tip clearance is set to the servo joint value, minus the spotdata platethickness (<servo joint>-platethickness). For both single/multi gun, the pressure move weld delay is set based on the spotdata progno and corresponding WDELAY.SCD value. A pressure end move is always enabled for both with the stationary tip clearance set to 0 and the moving tip clearance set to the servo joint value minus the spotdata platethickness (<servo joint>-platethickness). The servo backup move is enabled if software equalization is enabled with the move stroke set to the servo axis value and the stationary tip clearance set to the gundata release_dist.

During download, spot instructions are downloaded as SpotL/J if a single gun is used. If two guns are used, SpotML/MJ is downloaded. Note that only two guns are supported.

GunNo, \G1, and \G2

If GunNo is an integer or variable (the more common scenario) set to either 1 or 2, it is supported for simulation. For a variable GunNo, the value set when declaring the variable is used. Here is an example of a GunNo variable declaration:

PERS gunnum gun1:=1;

GunNo corresponds to the "Gun 1" and "Gun 2" check boxes in the spot profile dialog box. If both are checked, a SpotML/MJ instruction has been used with a \G1 and \G2.

Here is an example single gun instruction:

SpotL p100, vmax, gun1, spot10, tool1;

Here is an example two gun instruction:

SpotML p100, vmax\G1:= spot10\G2:= spot20, tool1;

GunNo or \G1-\G2 are used to create an ABBgundataC5 applicative profile.

Additionally, the ABBgundataSchedule applicative profile associated with the GunNo or \G1-G2 is linked to the spot weld profile. The release_dist parameter is used to set the start stationary tip clearance, the start moving tip clearance, and the backup stationary tip clearance when software equalization is used (softw_equ true).

Spot, \G1 and \G2

The Spot, \G1, and \G2 arguments specify the spotdata for each gun. For each, an ABBspotdataSchedule applicative profile is created.

The applicative profile instance created from the spotdata is linked to the spot weld profile. The prog_no and plate_thickness parameters are used to set spot weld profile values. The plate_thickness is used to set the part thickness in the spot weld profile. This same plate_thickness is used to set the pressure start moving tip clearance and the pressure end moving tip clearance(servo axes - plate_thickness).The prog_no identifies the weld condition schedule from the WDELAY.SCD file. The applicative profile instance created from the WDELAY file for this schedule number is linked to the spot weld profile. The weld delay factor for "pressure weld and move" is linked to the "Weld Delay" parameter of the linked WDELAY profile.

If the WDELAY.SCD file does not exist, but an existing WDELAY applicative profile instance for this schedule number does exist, it will be used. If neither exists, a new profile instance is created with default values and linked to the profile.

\InPos

If \InPos is used, the spot weld profile will have no pressure start move and no backup move.

Default values for spotprofile Parameters

All other spot profile parameters are set to default values. The following table summarizes the value of each spot profile parameter. If the uploaded gundata and spotdata results in two spot profiles with identical values, only one profile is created . Also, if a spot profile already exists that has identical parameters, that will be used. In this case, the profile name will not be set.

Parameter Measure Specify for each gun? Uploaded Value
Profile Name String No Same as spotdata name(s) as specified in the SpotL/J or SpotML/MJ
Gun Enabled Boolean Yes True if GunNo present in instruction
Joint Number Integer Yes Identified from motion group.
Gun Closed Joint Value Double (mm) Yes 0
Approach Enabled Boolean No Always False because ABB has not servo gun approach move
Pressure Start Enabled Boolean No True unless \InPos used
Pressure End Enabled Boolean No True
Backup Enabled Boolean No True if softw_eq is true
Approach Direction Enum No +Z-Axis
Gun Close Direction Enum Yes -ve Axis
Part Thickness Length No Link to plate_thickness from spotdata
Approach Moving Tip Clearance Length Yes N/A because ABB servo spot has not approach move
Pressure Start Stationary Tip Clearance Length Yes Link to release_dist (softw_eq true) or 0
Pressure Start Moving Tip Clearance Length Yes Link to release_dist (softw_eq true) or set to servo axis value - plate_thickness
Pressure End Stationary Tip Clearance Length Yes 0
Pressure End Moving Tip Clearance Length Yes AxisValue - partthickness AxisValue is the servo gun's position for the spot instruction move
Backup Stationary Tip Clearance Length No Link to release_dist(softw_eq true) or 0
Pressure Start Accuracy Profile Accuracy Profile No z30 for soft_equ = true (software equalization) or fine for false (mechanical)
Pressure Start Stationary Tip Clearance Length Yes Link to release_dist (softw_eq true) or 0
Pressure End Stationary Tip Clearance Length Yes 0
Pressure Move Accuracy Profile Accuracy Profile No Fine
Pressure End Accuracy Profile Accuracy Profile No Fine
Backup Move Accuracy Profile Accuracy Profile No z30 for soft_equ = true (software equalization) or fine for false (mechanical)
Pressure Start Acceleration Percent No 100% or last AccSet value
Pressure Move Acceleration Percent No 100% or last AccSet value
Pressure End Acceleration Percent No 100% or last AccSet value
Backup Move Acceleration Percent No 100% or last AccSet value
Pressure Move Push Depth Length Yes 1mm
Pressure Move Speed Factor Percent Yes 100%
Weld Delay Time Yes Link to WDELAY profile
Backup Move Stroke Length Yes Servo axis value
Weld time table Profile No NA
Arc Welding
The following are ABB Rapid arc welding commands. The table below gives basic information on the level of support for different arc options.

S4C controller

ArcL [\On][\Off] ToPoint, Speed, Seam, Weld, Weave, Zone, Tool [\WObj]
ArcC [\On][\Off] CirPoint, ToPoint, Speed, Seam, Weld, Weave, Zone, Tool [\WObj]

S4C+ or C5 controller

<ArcL/ArcLStart/ArcLEnd> ToPoint [\ID], Speed, Seam, Weld [\Weave], Zone, Tool [\WObj]
[\Corr] [\Track] [\SeamName]
<ArcC/ArcCStart/ArcCEnd> CirPoint, ToPoint [\ID], Speed, Seam, Weld [\Weave], Zone,
Tool [\WObj] [\Track] [\Corr][\Seamname]
ABB Rapid Motion Option Support Level DELMIA Equivalent Description Translation Notes
ArcL,ArcC,ArcLStart, ArcCStart, ArcLEnd, ArcCEnd Supported Linear or Circular Arc operation Linear or Circular arc welding The L1,L2,C1 and C2 variation of these commands (i.e. ArcL1Start or ArcC2) are also supported. The type of command Start, End or weld (no start/end) determines how arc profile data is handled.
\On,\Off Supported Arc on or off For S4C only used to determine how arc profile data is handled. \On is a start move…\Off is an end move.
CirPoint,ToPoint Supported Tag Robtarget variable or explicit See ToPoint description for robot motion above
Speed Supported Motion Profile Speeddata See Speed description for robot motion above
Seam Supported ABBseamdata (S4C) or ABBseamdataC5 (S4C+ and C5) applicative profile Seamdata An applicative profile of type ABBseamdata (S4C) or ABBseamdataC5 (S4C+ and C5) will be created with the same name as the seamdata. This profile is linked to an arc profile which is in turn linked to the arc operation. The applicative profile will be part of the start, weld or end section of the arc profile. For \On or Start moves the start section is used. For weld (no Start/End) moves the weld section is used. For \Off or End points the end section is used. Any seamdata declarations will be uploaded/download into/from the applicative profile parameters.
\ID Partial Support MotionSwitch applicative profile Identifier Number See \ID in robot motion above.
Weld Supported ABBwelddata or ABBwelddata C5 applicative profile Welddata Handled the same as seamdata above in regard to linking and arc profile sections. In addition the weld_speed parameter is linked to the robot speed for the arc instruction to insure accurate simulation.
Weave Partial support ABBweavedata or ABBweavedata C5 applicative profile weavedata Handled the same as seamdata above in regard to linking and arc profile sections. Weaving is not simulated.
Zone Supported Accuracy Profile zonedata See Zone for robot motion above.
\Corr,\SeamName Partial Support ArcSwitch applicative profile Correction and seam name Stored in ArcSwitch applicative profile linked to the Arc operation. Not supported for simulation.
\Track Partial Support ABBTrackDataC5 applicative profile trackdata Handled the same as seamdata above in regard to linking and arc profile sections. Tracking is not simulated.
Tool Supported Tool Profile tooldata See Tool description for robot motion above.
\WObj Supported Objectframe profile wobjdata See WObj description for robot motion above.
Seam Searching

The following are ABB Rapid seam search commands. The table below gives basic information on the level of support for different seam options.

S4C controller

SearchC/L [ \Stop ] | [ \PStop ] | [ \SStop ] | [ \Sup ] Signal, [ \Flanks ]
SearchPoint, CirPoint, ToPoint, Speed [ \V ] | [ \T ], Tool [ \WObj ] [ \Corr]

S4C+ or C5 controller

Identical to S4C but [ID] option added following ToPoint
ABB Rapid Motion Option Support Level DELMIA Equivalent Description Translation Notes
SearchL/C Supported Linear or Circular Search operation Linear or Circular search
CirPoint,ToPoint Supported Tag Robtarget variable or explicit See ToPoint description for robot motion above
Speed Supported Motion Profile Speeddata See Speed description for robot motion above
\Stop,\PStop,\SStop,\Sup,Signal,\Flanks,\Corr, SearchPoint Supported SearchData applicative profile search arguments Stored in SearchData applicative profile linked to the Search operation. Not supported for simulation.
\ID Partial Support MotionSwitch applicative profile Identifier Number See \ID in robot motion above.
Tool Supported Tool Profile tooldata See Tool description for robot motion above.
\WObj Supported Objectframe profile wobjdata See WObj description for robot motion above.

Controllers with SmarTac option

Search_1D [\NotOff] [\Wire] Result [\SearchStop] StartPoint
SearchPoint Speed Tool [\WObj ] [\PrePDisp] [\Limit]
[\SearchName] [\TLoad]
ABB Rapid Motion Option Support Level DELMIA Equivalent Description Translation Notes
Search_1D Supported Search Via followed by Search Touch

Linear Search Via and Touch

StartPoint, SearchPoint Supported Tag Robtarget variable or explicit See ToPoint description for robot motion above
Speed Supported Motion Profile Speeddata See Speed description for robot motion above
\NotOff,\Wire,Result,\SearchStop,\PreDisp,\Limit,\SearchName,\TLoad Supported RapidSearch1D_Data user profile search arguments Stored in RapidSearch1D_Data user profile linked to the Search operation. Not supported for simulation.
Tool Supported Tool Profile tooldata See Tool description for robot motion above.
\WObj Supported Objectframe profile wobjdata See WObj description for robot motion above.
Dispensing
The following are ABB Rapid dispense commands. The table below gives basic information on the level of support for different dispense options.
DispL [\On]|[\Off] ToPoint[\ID]Speed Bead [\D][\P1][\P2] Zone Tool
     [\WObj] [\Corr] [\T1] [\TLoad]
DispC [\On]|[\Off] CirPoint ToPoint[\ID] Speed Bead [\D][\P1][\P2]
     Zone Tool [\WObj] [\Corr] [\T1] [\TLoad]
ABB Rapid Motion Option Support Level DELMIA Equivalent Description Translation Notes
DispL,DispC Supported Linear or Circular Sealant operation Linear or Circular dispensing Sealant operation created if application in upload dialog is Arc Sealing. For Surface Painting or Surface Sealing application, a Paint Operation is created.
CirPoint,ToPoint Supported Tag Robtarget variable or explicit See ToPoint description for robot motion above
Speed Supported Motion Profile Speeddata See Speed description for robot motion above
Bead Supported ABBbeaddata beaddata An applicative profile of type ABBbeaddata will be created with the same name as the beaddata and linked to the sealant operation. Any seamdata declarations will be uploaded/download into/from the applicative profile parameters.
Zone Supported Accuracy Profile zonedata See Zone in robot motion above.
\ID Partial Support MotionSwitch applicative profile Identifier Number See \ID in robot motion above.
\D, \P1, \P2 Partial Support DispSwitch applicative profile Distance, general1 and general2 Stored in DispSwitch applicative profile linked to the sealant operation. Not supported for simulation.
\Corr, \T1, \TLoad Not supported Correction, triggdata, and loaddata
Tool Supported Tool Profile tooldata See Tool description for robot motion above.
\WObj Supported Objectframe profile wobjdata See WObj description for robot motion above.
Painting
The following are ABB Rapid paint commands. The table below gives basic information on the level of support for different paint options.
PaintL ToPoint[\ID]Speed [\E1] [\E2] [\E3] [\E4]…[E10] Zone Tool [\WObj]
PaintL CirPoint ToPoint[\ID]Speed [\E1] [\E2] [\E3] [\E4]…[\E10] Zone Tool [\WObj]
ABB Rapid Motion Option Support Level DELMIA Equivalent Description Translation Notes
PaintL, PaintC Supported Linear or Circular Paint operation Linear or Circular dispensing
CirPoint,ToPoint Supported Tag Robtarget variable or explicit See ToPoint description for robot motion above
Speed Supported Motion Profile Speeddata See Speed description for robot motion above
E1-E10 Supported Trigger instruction and paint profile. Event for setting paint profile brush parameters. Event includes the axis X/Y/Z, the location along this axis, and a brush number. A paint profile will be created with the name SETBRUSH<brush number> linked to the trigger instruction. The brush number points to an array of brushdata which are used to set the paint profile parameters Flow rate, percentage of solids, and Gun transfer efficiency.
Zone Supported Accuracy Profile Zonedata See Zone in robot motion above.
\ID Partial Support MotionSwitch applicative profile Identifier Number See \ID in robot motion above.
Tool Supported Tool Profile tooldata See Tool description for robot motion above.
\WObj Supported Objectframe profile wobjdata See WObj description for robot motion above.
Linetracking

Linetracking is handled using a conveyor and a tracking profile.

The key to setting up a successful tracking profile for OLP is ensuring that the Distance in the referential parameters is correct. Changing the Referential Distance changes the location of the trolley 0.0. The trolley 0.0 is the equivalent of the Rapid conveyor Base frame. The world coordinates location of the trolley when it is jogged to 0.0 should match the Rapid base frame X value.



It is possible that the conveyor frame in the Rapid MOC.cfg file does not have a 0.0 X value, in which case the X value relative to World in would not be 0.0. A conveyor frame that is 0.0 will be similar to the following:

SINGLE:
    -name "CNV1" -use_single_type "CNV1" -use_joint "CNV1" -base_frame_pos_x 1.0

A non-zero base frame would have an X value specified:

SINGLE:
    -name "CNV1" -use_single_type "CNV1" -use_joint "CNV1" -base_frame_pos_x 1.0

A movable objectframe profile is used in all track moves. This objectframe profile must be attached to a part that is moved by the conveyor.

During upload, the conveyor trolley is selected for the wobjconv1 objectframe profile. All tags associated with the wobjconv1 objectframe profile are attached to the same conveyor trolley as the objectframe profile.

All tracked tags are uploaded and/or downloaded relative to the movable objectframe profile.

In addition to getting the frame of reference setup correctly, another key component of linetracking is the wait command. In the Rapid language this is done using WaitWObj <objectframe profile>\RelDist:=<track dist>. The corresponding V6 instruction would be WAIT $"Referential.1">track dist/1000.0, where Referential.1 is the same referential that is referred to in the Tracking profile.

In order to simulate correctly, the conveyor speed must be set to match the Rapid controller. The num variable used to store the conveyor speed will vary among installations. As an example, assume PERS num nSimConvSpeed:=5.28; is used and that the units are m/min. In this case, the velocity for the conveyor should be set to 5.88/60 or .088 m/s. The units and conversion factor will vary.

In V6, this speed is set by editing the conveyor device in equipment design.

Gripload and loaddata

ABB RAPID loaddata and the GripLoad instruction are used to add a payload to the current tooldata. Here is an example of loaddata use in a Rapid program.

PERS loaddata load_GR3_FrntEnd:=[[50.000,[4.800,-138.500,700.000],[1.000000,0.000000,0.000000,0.000000],37.000,35.300,36.200]];
PERS tooldata t_nz_1:=[TRUE,[[1839.510,-2400.090,2202.200],[0.996195,0.000000,0.087156,0.000000]],[137.500,[-11.200,175.500,388.400],[1.000000,0.000000,0.000000,0.000000],33.661,18.450,26.920]];
GripLoad load_GR3_FrntEnd;
MoveJ
[[3273.150,-506.690,1853.490],[0.838646,0.534243,-0.088272,-0.058869],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v1000,z1,t_nz_1\WObj:=w_1gr_1;

The use of loaddata is common in material handling applications where the robot uses a gripper to pick up a part. During upload of the GripLoad and move instruction, the loaddata load_GR3_FrntEnd is added to the t_nz_1 tload value. The uploaded tool profile has mass properties set based on the tload and loaddata values.

The name of the tool profile is set using both the tooldata name and the loaddata name. In addition, the loaddata is set in a scoped ABBloaddata applicative profile on the tool profile.

The GripLoad instruction is uploaded into a custom instruction.

For download, a tool profile with an ABBloaddata defined results in both a tooldata and a loaddata declaration being output. The tooldata tload is set equal to the tool profile mass properties minus the ABBloaddata. The name of the tooldata is identical to the toolprofile name without the ABBloaddata name appended. The ABBloaddata is output as-is into a loaddata declaration.

When a move that uses a toolprofile with ABBloaddata is downloaded, a Gripload command is output if the ABBloaddata has changed since the last move.

Expressions

ABB RAPID expressions used in IF, WAIT, Assignment, and Argument passing allow more capability than DELMIA expressions. On download, the DELMIA expression can be converted into an ABB RAPID expression with very few exceptions. However, converting the ABB RAPID expression to a DELMIA expression is not always possible on upload.

An example of an unsupported RAPID expression would be assignment of components within a data type such as a robtarget or tooldata. Another would be the passing of data types such as tooldata or robtarget as an argument in a PROC call.

If an error occurs converting an expression on upload, the instruction containing the expression is uploaded as a custom instruction. If an error occurs converting an expression on download, the instruction containing the expression is skipped. This prevents compile errors in the generated program. In both cases, a warning is displayed.

Variable Conversion

ABB RAPID has many data types. Only a subset of these are supported for upload/download. Each variable in RAPID has a scope, data type, and identifier.

The scope is PERS, CONST, VAR, LOCAL CONST, or LOCAL VAR. The scope is currently only supported for the robtarget and jointtarget data types. For these two types, the scope is stored in the OLP data Position Type.

The data types supported for upload/download are as follows:

RAPID data type Level of Support DELMIA data type Comments
robtarget Partial support Tag in robot motion Setting of components not supported. Use of this type as an argument in a call only supported in certain motion commands as described in the Instructions section above.
jointtarget Partial support Jointtarget robot motion Setting of components not supported. Use of this type as an argument in a call only supported in certain motion commands as described in the Instructions section above.
tooldata Partial support Tool profile Setting of components not supported. Use of this type as an argument in a call only supported in certain motion commands as described in the Instructions section above.
wobjdata Partial support Objectframe profile Setting of components not supported. Use of this type as an argument in a call only supported in certain motion commands as described in the Instructions section above.
speeddata Partial support Motion profile Setting of components not supported. Use of this type as an argument in a call only supported in certain motion commands as described in the Instructions section above.
zonedata Partial support Accuracy profile Setting of components not supported. Use of this type as an argument in a call only supported in certain motion commands as described in the Instructions section above.
gundata Partial support ABBgundata profile Setting of components not supported. Use of this type as an argument in a call only supported in certain motion commands as described in the Instructions section above.
spotdata Partial Support ABBspotdata profile Setting of components not supported. Use of this type as an argument in a call only supported in certain motion commands as described in the Instructions section above.
seamdata Partial Support ABBseamdata profile Setting of components not supported. Use of this type as an argument in a call only supported in certain motion commands as described in the Instructions section above.
weavedata Partial Support ABBweavedata profile Setting of components not supported. Use of this type as an argument in a call only supported in certain motion commands as described in the Instructions section above.
welddata Partial Support ABBwelddata profile Setting of components not supported. Use of this type as an argument in a call only supported in certain motion commands as described in the Instructions section above.
searchdata Partial Support Searchdata profile Setting of components not supported. Use of this type as an argument in a call only supported in certain motion commands as described in the Instructions section above.
num Supported Integer or Real
bool Supported Boolean
String Supported String
signaldo, di, ao, ai Partial support Unknown type with direction input/output set

Expression Conversion

ABB expressions have many of the operators supported in DELMIA.

Category Description Deurr Operator DELMIA Operator
Binary Integer/Double Plus + +
Minus - -
Multiply * *
Division / /
Integer DivisionNANA
Modulus NA mod(x,y)
Power NA **
Unary Negative - -
Not not Not
Bitwise Not NA ~
Binary Comparison Equals = =
Not Equals <> <>
Less Than < <
Less Than or Equal <= <=
Greater Than > >
Greater Than or Equal >= >=
Binary Boolean And AND And
Or OR Or
XOR XOR Xor
Bitwise And NA &
Bitwise Or NA |
Left Shift NA <<
Right Shift NA >>
Bitwise XOR NA ^^
Other Grouping ( ... ) ( ... )
conditional (if) If...then...else... If...then...else

There are no ABB operators that do not have a DELMIA equivalent. ABB expressions can contain functions, however, if any functions are encountered the expression will be in error and uploaded as a custom instruction.

Controller Parameters

The ABB Controller Parameters are created as a standalone applicative profile called "ABB S4C Controller Profile". The parameters for the current release are shown below.

Parameter Measure Purpose Default Value
ProgramFileEncoding String This parameter is used to set the encoding used in the robot program. (i.e. Shift-JIS)
CommentWaitSignal Boolean Used to treat all Wait signal instructions during upload as custom instructions. False
PartGrabbed String This parameter is used to set the grabbed part in an uploaded grab instruction.
RailGroup String This parameter determines which auxiliary axes values in the downloaded/uploaded program will map to RailTrackGantry. Two formats can be used. First is to set the starting axes number for all RailTrackGantry axes. Second is to use a semi-colon delimited value with the axes numbers for each aux. axes 3;5 would put the first rail axes into robtarget aux. axes value 3 and the second rail axes into aux. axes value 5.
TagPrefix String This parameter is used to add a prefix to all tag names during upload.
ToolGroup String This parameter determines which auxiliary axes values in the downloaded/uploaded program will map to EndOfArmTooling. Two formats can be used. First is to set the starting axes number for all EndOfArmTooling axes. Second is to use a semi-colon delimited value with the axes numbers for each aux. axes 2;4 would put the first tool axes into robtarget aux. axes value 2 and the second tool axes into aux. axes value 4.
WorkGroup String This parameter determines which auxiliary axes values in the downloaded/uploaded program will map to WorkpiecePositioner. Two formats can be used. First is to set the starting axes number for all WorkpiecePositioner axes. Second is to use a semi-colon delimited value with the axes numbers for each aux. axes 1;6 would put the first work axes into robtarget aux. axes value 1 and the second work axes into aux. axes value 6.
WorldCoords Boolean This parameter detemines whether tags are downloaded/uploaded relative to station or robot coordinates. True
ProfiledataOutput Boolean Used to bypass output of all Motion, Accuracy, Tool, Objectframe, ABBspotdata and ABBgundata profiles. True
SpeeddataOutput Boolean Used to bypass output of all Motion profiles. True
ZonedataOutput Boolean Used to bypass output of all Accuracy profiles. True
SpotdataGundataOutput Boolean Used to bypass output of all ABBspotdata and ABBgundata profiles. True
ToodataOutput Boolean Used to bypass output of all tool profiles True
WobjdataOutput Boolean Used to bypass output of all objectframe profiles True
MOC_ConfigFileName String Set to the absolute path of the MOC_ConfigFileName. This is only needed if the MOC.cfg is not in the SYSPAR directory of a controller backup and/or the uploaded program is not in that same controller backup.
Version Real Determines if S4C+/C5 (value greater than 1) or S4C is used. Note that during upload program content may override this value. For example if the Rapid SpotL format matches the S4C+/C5 format then this controller is assumed. Similarly if C5 ArcLStart/End are found then this controller is assumed. 1

Template File Download

When uploading from a controller backup followed by a download, or when wanting to download to an already existing controller backup, the template file download allows you to keep most of the backup files intact.

Programs are typically downloaded using the RAPID\TASK0\PROGMOD as the template directory.

The download does not overwrite files in the template directory, but rather uses all the PROGMOD and SYSMOD files to determine how the download data should be output. All robtarget and profile data (i.e. speedata, tooldata, spotdata…) declarations are found in the template directory files. If a robtarget or profile being downloaded matches a declaration found, the file that contains it will be used as a template file. The template file is used exactly as found in the backup, but the downloaded declaration of the robtarget or profile data overwrites the declaration found in the template file.

For example, if a move to perch is found in Syle1App1#STY1APP1, by default (no template directory) the declaration for perch is put into a module called STY1APP1.mod. For template directory download, however, if the perch declaration was found in another module file called ROBOT64.mod, the download includes a ROBOT64.mod with the perch declaration overwritten. If spotdata is additionally downloaded and found declared in a module file named DECLSPMOD.mod, that file also is included with the spotdata overwritten.

This same concept applies to downloaded PROC (task) declarations. If the PROC declaration is found in an already existing file in the template directory, that template file is included in the download with the PROC declaration overwritten with the downloaded task.

During template directory download, targets that have the OLP data Position Type set to "LOCAL VAR" or "LOCAL CONST" can have duplicates. This means that you could have, for example, a LOCAL CONST weldtag1 in module STY1APP1.mod and another LOCAL CONST weldtag1 in STY1APP2.mod.

The result of a template directory download is nearly identical to the original backup with only data selected for download being updated.

[1] ABB, S4, S4C, S4CPlus, IRC5, RAPID and RobotStudio are or may be trademarks or registered trademarks of ABB or its subsidiaries in the U.S. and in other countries.