Robot programming
The general ABB robot programming language is called RAPID. A complete new way of programming ABB robots is called Wizard. For editing, testing and simulation RobotStudio is used.
RAPID
ABB uses a high level programming language for programming its robots called RAPID. There are more robot manufacturers using high level programming languages but when I asked one of our robotic partners what they see as differentiator they told me that ABB has a very rich programming language and that they so do not have to spent time on developing functions themselves. As an example I mention that the RAPID software contains 11 Trigg functions to carry out an action during motion of the robot between two points. See below.
TriggC Circular robot movement with events
TriggCheckIO Defines IO check at a fixed position
TriggEquip Defines a fixed position and time I/O event on the path
TriggInt Defines a position retated interrupt
TriggIO Defines a fixed position or time I/O event near a stop point
TriggJ Axis-wise robot movement with events
TriggL Linear robot movement with events
TriggLIOs Linear robot movement with I/O events
TriggRampAO Defines a fixed position ramp AO event on the path
TriggStopProc Generate restart data for trigg signals at stop
TriggSpeed Defines TCP speed proportional analog output with fixed
position-time scale event
It is not a coincident that I mention the Trigg function. It is for instance used to control grippers and so let a robot move like a sewing machine and this speed independent. See as an example the small RAPID program and explaining picture.
MODULE CalibData
PERS tooldata Gripper:=[TRUE,[[0,0,69.7],[0,1,0,0]],[0.2,[0,0,20],[1,0,0,0],0,0,0.00014]];
PERS wobjdata WO_Place:=[FALSE,TRUE,””,[[-76.957,318.869,-1141],[0.978,-0,0,-0.207]],[[0,0,0],[1,0,0,0]]];
PERS wobjdata WO_Pick:=[FALSE,TRUE,””,[[-288.460,-156.174,-1141],[0.978,-0,0,-0.207]],[[0,0,0],[1,0,0,0]]];
ENDMODULE
MODULE Module1
CONST robtarget Target_Place:=[[200,-60,11],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONST robtarget Target_Pick:=[[200,60,11],[0.7071067,0,0,0.7071067],[0,-1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONST speeddata v10000:=[10000,1000,0,0];
PERS loaddata Product:=[0.01,[0,0,0.005],[1,0,0,0],0,0,0];
VAR triggdata GripperOn;
VAR triggdata GripperOff;
VAR stoppointdata PickTime:=[stoptime,FALSE,[0,0,0,0],0.03,0,””,0,0];
VAR stoppointdata PlaceTime:=[ stoptime,FALSE,[0,0,0,0],0.05,0,””,0,0];
PROC PickPlace()
MoveL RelTool (Target_Pick,0,0,90),v10000,z50,Gripper\WObj:=WO_Pick;
TriggL Target_Pick,v10000,GripperOn,z5\Inpos:=PickTime,Gripper\WObj:=WO_Pick;
Gripload Product;
MoveL RelTool (Target_Pick,0,0,90),v10000,z50,Gripper\WObj:=WO_Pick;
MoveL RelTool (Target_Place,0,0,90),v10000,z20,Gripper\WObj:=WO_Place;
TriggL Target_Place,v10000,GripperOff,z5\Inpos:=PlaceTime,Gripper\WObj:=WO_Place;
Gripload Load0;
MoveL RelTool (Target_Place,0,0,90),v10000,z20,Gripper\WObj:=WO_Place;
ENDPROC
PROC main()
TriggIO GripperOn,0.1\Time\DOp:=DOGripper,1;
TriggIO GripperOff,0.05\Time\DOp:=DOGripper,0;
FOR i FROM 1 TO 10 DO
PickPlace;
ENDFOR
ENDPROC
ENDMODULE
Another rather important differentiator is that the RAPID programs do not have to get compiled. So all programs are open and accessible.
Wizard
Wizard is the easy, intuitive way to program the following ABB collaborative robots without needing to learn RAPID programming language:
- Single-arm Yumi (IRB 14050)
- Swifti (CRB 1100)
- GoFa (CRB 15000)
Wizard is based on Google’s Blockly.
Wizard Skill Creator enables you to create your own blocks.
Once a wizard program is completed it is translated to RAPID.
There is no additional cost.
RobotStudio
RobotStudio is ABB’s offline programming and simulation tool and runs on a PC.
The tool is build on the ABB virtual controller, an exact copy of the real software that runs your robots in production.
Even the stopping behavior of a robot in RobotStudio corresponds with the one of a real robot.
Even the software running on the FlexPendant in RobotStudio is identical to software running on the real one.