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 Operation | Supported | 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 Operation | Supported | 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. |
Trigger | Partial 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 beWAIT $"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.