Tutorial 1: Introduction
In this tutorial you will:
- Learn how to introduce robots and robot controllers in a system.
- Integrate a robot programming tool with Simumatik OEP.
- Use a basic approach to teach and program a robot.
Start by loading the tutorial system into the workspace, and then navigate through the components in the tree and the scene to explore them.
The system includes one assembly with a 3-phase power supply, ABB robot controller, the ABB IRB6620 robot, and three posts.
Let's download the diagrams and take a look at the configuration of the system.
The port connections are very simple. The robot controller is connected to the three-phase supply and then each axis mechanical port is connected to the corresponding robot axis on the robot component.
The posts are placed around the robot and our final goal will be to teach those positions to the robot and create a path so it moves from one to the other in a loop.
Robot controllers and robots
Industrial robots are very common in many manufacturing processes, 6-axes robots being the most used ones nowadays. Automated systems are usually controlled using PLCs, but robots can be integrated into them to create more flexible and sophisticated solutions.
A robot arm has built-in actuators and sensors to allow accurate control of each axis position, but the robot program execution, forward/inverse kinematics calculations, communication with other devices, and other algorithms are executed on the robot controller. We can say that a robot controller is just a special industrial computer for such an application, being the brain of the robot arm. Usually, industrial robot manufacturers develop robot controllers that are compatible with several robot arms of the same family, allowing using the same controller for different robot arm models. Finally, the most common configuration is that a robot controller can command a single robot arm.
With this idea in mind, we have modeled several robots from different manufacturers and even different robot controllers separately, to provide some examples, trying to mimic this equipment as close as possible to the reality.
As you have seen, in this tutorial we have introduced as an example an ABB Robot and an ABB robot controller to show how robots can be used in our platform.
If you know what a PLC is and can program one, we recommend taking the PLC tutorials first before you continue with the robotics tutorials.
The robot controller components created for the next tutorials are quite similar to the PLC component (8IO OPCUA) used on the PLC tutorials. The program for the robot is executed on a soft-controller or simulated controller depending on the third-party software, and the Simumatik component will just read and write variables from it, mapping IO signals. In addition to that, the component will read even each axis position of the robot arm, to mirror it in real-time, so the robot can move and physically interact with other elements inside the model. This way, the native robot program can be used when emulating the robots in our platform, and there is no need to make any advanced calculations inside the model.
Opening the component information panel will provide you with more information about the component itself and its public variables.
Another difference with the PLC is that instead of using the OPCUA driver to communicate with the third-party software, the robot controllers use specific API, SDK, or native communication protocols.
We have included 8 electric input ports (In_0..7) and 8 electric output ports (Out_0..7) on all example robot controllers so it is even possible to control other devices such as grippers, directly from the robot controller. Similar to the PLC, the user just need to decide a name for an input and output variable that will map all these signals to the robot program. The variable names can be adjusted in the public variable panel. Furthermore, the robot controllers have 6 mechanical output ports to be connected to the robot components, to send the actual robot axes positions (axis1..6). Finally, the power feeding ports (l1..3) are included.
Robot arms are quite easy to model in Simumatik OEP. Based on our data-model, ideal robot components are multi-body components with several links and joints, that will follow the given position and therefore the trajectory commanded by the controller. Robots can be modeled with more detail, but for basic applications such as this demo, this is a good approach. There is not much to configure on the example robot components we provide, they just have one mechanical input port for each axis. This way, switching robots between each other becomes a trivial thing as it is shown below.
Change a robot controller or robot arm
The steps in this chapter are not mandatory to carry out the tutorial. They may be useful if you want to use another robot arm or controller rather than the ones included in the original system.
If you want to use this or other tutorial or demo system with another robot arm rather than the given one, you just need to follow the next steps.
Change robot controller
Right-click on the 'robot' assembly and select 'Add component'. This will open the component selection window. You can type some text to filter the components by their name ('controller' in the example below) so it is easier to find them. Explore the public component libraries to find another robot controller you may want to use. Once you find it, just click on the add button ('+') and give it a name.
Now the new robot controller probably is hidden under the robot arm, at the center of the assembly. To relocate the new robot controller select it and then use the arrows in 'Move' mode.
To remove the original robot controller right click on the component name on the left panel and select 'Remove'. Then confirm with 'Yes' when the pop-up window appears.
Now you have to connect all ports back to the robot controller. Start connecting the supply ports:
Finally, connect the robot arm axes back to the controller.
The new robot controller should be ready to go now!
Change robot arm
Right-click on the 'robot' assembly and select 'Add component'. This will open the component selection window. You can type some text to filter the components by their name ('kuka' in the example below) so it is easier to find them. Explore the public component libraries to find another robot arm you may want to use. Once you find it, just click on the add button ('+') and give it a name.
Now the new robot arm probably appeared on top of the existing one like in the picture below.
To remove the original robot arm right click on the component name on the left panel and select 'Remove'. Then confirm with 'Yes' when the pop-up window appears.
Finally, connect the new robot arm axes to the controller.
The new robot arm should be ready to go now!
Activate the Gateway
The connection to third-party software or hardware controllers is done using the Gateway. The Gateway allows some components loaded on the server to communicate with third-party software or hardware on your machine or network.
Click on the workspace menu button on the toolbar ('⁝') and open the Gateway tab.
If you are using the Gateway for the first time, the initial step is to download and install it.
If the Gateway is properly installed it will display the version and the status 'STANDBY'. Click on the switch and if everything is working as expected, it should become green and the status 'connected' should be displayed, as seen below.
The connection with the Gateway is now done, and as soon as the emulation is started, the gateway will be available for the components that require it, so they can communicate with third-party software or hardware devices.
Connect to a robot controller
Check out the Third-party connection section to learn how to set up different robotics third-party software or hardware to connect them with Simumatik OEP.
Depending on the robot controller you want to use (RobodK in the example below), you may need to make some setup on the third-party software to allow the robot controller connection. After that, with the gateway connected, just click on the start button.
The 'status' variable on the robot controller should show 'RUNNING' and if you move the robot arm on the third-party software, the movement should be mirrored by the robot in Simumatik.
Most likely, if you haven't declared the 'inputs' and 'outputs' variables on the third-party software, there will be some warning on the robot controller 'info' variable, as shown in the previous picture.
Time to play!
Now is time to practice your basic robot programming skills. You should be able to move the robot around and teach three target positions, the ones defined by the top of the posts. After that, program a path so the robot moves from one post to the next in a loop.
The picture below shows an example program created using RoboDK.