2.7 ABB IRC5 Controller Internal Reference Documentation
Notes
Download the Realtime Robotics ABB RAPID programs for setup here:
Required Options
RobotStudio
ABB RobotStudio is a proprietary Windows application with a long list of features, including offline programming and robot simulation. RobotStudio is also the recommended application for installing the required scripts/configuration for interfacing with the RTR Controller.
The following ABB plugins/software are required for the RTR supplied RAPID scripts to run:
616-1 PC Interface
623-1 Multitasking
689-1 Externally Guided Motion
If you have any problems installing the plugins or software version, contact your ABB vendor for troubleshooting tips. This guide assumes the user is familiar with RobotStudio and has the robot controller connected to their RobotStudio workspace.
Robotware Compatibility
According to ABB tech support, minor releases of Robotware have potential stability issues and there have been cases where a minor version bump will make ABB incompatible with RTR (i.e. the robot will not respond to RTR commands, but won’t throw any errors either). Use the following information to guide your decision on selecting Robotware.
For IRC5 controllers, the Robotware <= v6.12.x is accepted
v6.12.x is the latest stable release recommended by ABB application engineers. Do not use a later version
For omnicore, Robotware Version <= v7.5.2 is accepted
note: RTR devs have officially tested on 7.7.0, but 7.8.0 has bugs that do not allow the attached RAPID scripts to move robot
It is observed that certain timeout settings within the provided RAPID libraries (rtr_egm.sys) files may need to be increased to prevent the program from stopping itself. It is unclear why 7.x version of Robotware have altered the behavior of these scripts.
v7.5.2 is the latest stable release recommended by ABB application engineers. Do not use a later version
1. Robot Controller Configuration
Navigate to the controller tab on the top panel.
The left panel should display on the left panel.
1.1 Network Configuration
Under Configuration, navigate to Communication. In Transmission Protocol, right-click and add a new protocol. Fill the field as follows:
In this example, we use the service port of the ABB robot, which has a fixed IP (192.168.125.1). You can use any other ethernet port in the robot controller where the IP address and port numbers can be changed to your preference. The same IP address and port number must be set in the Appliance Web Application:
1.2 Multitasking Setup
Next, double-click on Controller under the Configuration tab. Add a new task called “RTRCommandServer” and fill the remaining fields as follows:
In this example, the name T_ROB1 is changed to RTRMotion
1.3 EGM Setting Setup
Under Motion, edit External Motion Interface Data and add the following profile “RTR_EMID”:
It is critical that the “Default Proportional Gain” is set to 0, otherwise, the robot may drift when moving to goal positions.
1.4 Installing RTR RAPID API + Scripts
The final configuration step is to set up automatic loading of RTR Rapid modules. To do this, we need to add the RTR RAPID scripts to the HOME directory. In the top menu under the Controller tab, press File Transfer, and transfer the provided RAPID folder to the HOME directory. You will need to Request Write Access to do this.
With the RTR RAPID scripts added to the appropriate controller, we can automatically load the modules to the appropriate tasks. In the left panel, under double-click on Configuration, and then double-click on Controller. Go to Automatic-Loading of Modules, make sure to add the following modules.
Note in the diagram above, the RTR “RAPID” folder name is changed to “RTR”. This is not required, however, ABB support discourages naming items similar to ABB-specific keywords (i.e. “RAPID”).
With the necessary controller configuration setup, the last step is to restart the controller, which will update the controller with the new configurations/scripts.
In most cases, a “Warm Start” (restart) should be enough to activate the changes. However, if you experience any problem when connecting to the robot, backup all the data and perform a P-Start. A P-Start will also refresh the contents of the RAPID scripts (both physical or virtual/simulated). Right-click on the appropriate controller in the left panel, select Restart → Reset RAPID (P-Start). A P-Start will delete all data stored in the robot controller, hence the need for a backup.
Everything is now set up. RTR_MotionModule.mod is the included RTR example script for getting started with the RTR RAPID API.
RTR RAPID API
The RTR RAPID API is provided by rtr_egm.sys
system module file. It provides the following intended public functions:
RTRSetupEGM - sets up requirements for initiating EGM by the RTR Controller. Must call this once before any communication or motion can be done by the RTR Controller
args:
ip_address (string) - IP address of the Robot
server_port (num) - specified port number for RTR Controller.
Regarding the allowed ports: When using the Multimove Option (one controller manipulates multiple robots), both the EGM and the RTR port must be different on both robots. If each robot has a separate controller, then each controller must have a different IP-Address. In this case, the EGM port must be unique but the RTR Port could remain the same for all robots.
RTRMove() - initiates EGM motions commanded by the RTRController. On entry, this function will block until an AcquireControl command is sent by the RTRController. Afterward, the RTRController is in full control of the robot. Send a ReleaseControl command from the RTRController to exit out of the function.
call RTRMove() again to allow the RTRController to regain control of the robot
RTRShutdown() - Cleanup/reset all parameters set by RTRSetupEGM and RTRMove