A SYSTEM AND A METHOD FOR OFF-LINE PROGRAMMING OF AN INDUSTRIAL ROBOT

18-02-2010 дата публикации
Номер:
WO2010017835A1
Принадлежит: ABB TECHNOLOGY AB
Контакты:
Номер заявки: EP05-06-200861
Дата заявки: 12-08-2008

[0001]

A SYSTEM AND A METHOD FOR OFF-LINE PROGRAMMING OF AN INDUSTRIAL ROBOT

[0002]

FIELD OF THE INVENTION AND PRIOR ART

[0003]

The present invention relates to a system and a method for offline programming of an industrial robot comprising a robot controller for controlling the movements of the robot. In particular, the invention covers the area of transferring data required for configuration and programming of an industrial robot to and from an external computer having a programming and simulation tool with the capability of running one or more virtual robot controllers.

[0004]

Industrial robots are conventionally programmed via a robot pro- gramming language. The result of the programming is a progam that instructs the controller not only in the movements of the specific robot, but also in input and output actions, using the specific I/O system that is present in the current controller as well as other specific equipment connected to that controller, such as external axes, special devices with special I/O requirements. The programming of robots is a time consuming process and the conventional methods of using the robot during the programming and teaching the process ties up the production equipment and delays production start. In order to save time and speed up production start, the robot is programmed off-line. Conventionally, this is done by an off-line programming and simulation tool run on an external computer. The output from the simulation is a robot program. When the simulation and off-line programming is completed, the robot program is transferred to the real robot. The off-line programming and simulation tool contains descriptions of the robot and the robot controller that it is trying to simulate. There is a need for accurate robot simulations that not only reproduce the motion of the robot, but also the program execution and duplicates even the system errors that the real robot may show. Industries cannot tie up expensive equipment when making new installations and cannot afford to stop production when re-programming a robot cell or line for a new product. The new set of robot programs for a new cell, or the re- programmed cell must work immediately without a lot of errors. Based on this need, robot simulation software has included more and more accurate duplicates of the real robot controllers, which has led to the use of virtual robot controllers during the simulation. A virtual robot controller is a sufficiently accurate representation of a real robot controller where it not only simulates the motion of the controller, but also includes a language execution component. This is the basic components for a virtual robot controller. They can be more accurate and complex, but not much simpler. In other systems, there is only a motion com- ponent and no language, or only a simple language parser without any execution. WO03/059582 discloses a method for programming an industrial robot by means of a virtual robot controller.

[0005]

However, the use of virtual robot controllers has unfortunately brought with it the problem of transferring the description of the real robot controllers to the virtual robot controllers and transferring the corresponding programs and configuration data from the virtual robot controllers to the real robot controller. Currently, this is a difficult, time-consuming and error-prone process.

[0006]

The problem starts when a new robot it to be programmed using a simulation system. This typically occurs when the programmer wants to start before the robot is delivered or fully connected on the factory floor. The programmer must build a virtual robot con- troller and configure it with the necessary I/O and other system configurations that match the real robot controller and also program the virtual robot controller with a robot program, coordinate frames, tool descriptions etc. When the real robot controller is delivered, the robot program and other data, for example frame data such as tools, work objects, and external axes, must be transferred from the programming tool to the real robot controller. However, once the real robot is delivered, the real robot system always differs in some ways from the simulated system, for example by signal names, frames and calibration. In order to avoid overwriting correct data in the real robot controller with incorrect data from the virtual robot controller, the programmer wants to only move selected data from the virtual robot controller to the real robot controller. This is a problem, as there is a lot of data to be transferred to the real robot controller and it is hard to keep track of which files and which configuration data is to be transferred, and which is to be kept different on the virtual robot controller and real robot controller. Today the files are manually transferred, manually edited, and manually installed in the real robot controller.

[0007]

The problem continues when an existing robot system is to be off-line programmed. The need for this is, for example, that the robot is in production and cannot be stopped, the programmer is not physically in the same site, or the system is down for repair. The problem in this case is to build an accurate representation of the real robot controller in the virtual robot controller. This also involves the issue of transferring selected data, such as configuration data and program files, from the real robot controller to the virtual robot controller. This is the same problem as mentioned above, only reversed, where many files must be transferred, edited, and installed in the simulation tool and a virtual robot controller is to be created. The state of the art is that programs and configuration data in the form of files are manually edited and transferred to-and-from the real robot controller. OBJECTS AND SUMMARY OF THE INVENTION

[0008]

The object of the present invention is to facilitate the transfer of configuration and program data between a real robot controller and an off-line programming and simulation tool, and to ensure that only selected data is transferred.

[0009]

According to one aspect of the invention, this object is achieved with a system as defined in claim 1 .

[0010]

Such a system comprises a data transfer module configured to, upon request, automatically transfer configuration and program data between a real robot controller and a virtual robot controller running on an external computer, and a filter component con- figured to filter the transferred configuration and program data according to defined filtering rules.

[0011]

The dividing line between configuration data and program is different from manufacturer to manufacturer, but all together there is the same type of data. Configuration data may, for example, include data defining I/O signals, the number of program tasks, external axes, and the base frames of the external axes. The program data may, for example, contain tool definitions, object and user frame definitions, as well as the program files to be executed. Some manufacturers may place the frame data into the configuration data, or keep all of the frame data in the program data.

[0012]

The invention makes it possible to, upon request, automatically transfer configuration and program data between the real robot controller and a virtual robot controller running on an external computer. The filter component ensures that only allowed data is transferred. The invention highly increases productivity and reliability in the off-line programming process and enhances use of the industrial robot equipment. The filtering rules determine which data is selected to be transferred. The filtering rules include information on which parts of the configuration and program data are to be transferred between the robot controller and the external computer, and which parts of the configuration and program data are not allowed to be transferred between the robot controller and the external computer. The filtering rules may differ in dependence on which direction the data is transferred. For the most part, the filtering defines the data transfer for both directions, from the real-to- virtual, and virtual-to-real, but there are cases where one wants to transfer tool data or work object data from the virtual to the real robot controller, but not the other way around.

[0013]

According to an embodiment of the invention, the data transfer module is configured to, upon request, automatically: create backup files, including configuration and program data, of the robot controller, instruct the filter component to process the backup files according to the filtering rules, and create a virtual robot controller on the external computer based on the filtered backup files. This embodiment automatically transfers selected data from the real robot controller to the external computer and automatically creates a virtual robot controller on the external computer. Accordingly, the process of creating a virtual robot controller is simplified and accelerated.

[0014]

According to an embodiment of the invention, the data transfer module is configured to, upon request, automatically: retrieve program files from the virtual robot controller, retrieve program files from the robot controller, instruct the filter component to process the program files according to the filtering rules, and transfer the resulting files to the robot controller. This embodiment automatically transfers selected parts of program files from the virtual robot controller to the real robot controller. Suitably, the filtering rules include instructions regarding which parts of the program files from the robot controller should be protected from being overwritten by the transfer operation. According to the filtering rules, some parts of the program files are not transferred to the real robot controller. The parts which are not allowed to be transferred are exchanged with corresponding parts of corresponding program files from the real robot controller. Accordingly, the transfer of off-line programmed files to the robot controller is facilitated and accelerated. No manual editing or transferring of files in needed any more.

[0015]

According to an embodiment of the invention, the filtering rules include instructions regarding specific types of elements within the robot programming language that should be protected from being overwritten by the transfer operation. For example, tool data, where the simulation system shall use the virtual tool data in the program, but the real program shall use the re-calibrated tool that comes from a calibration program running on the controller. This embodiment makes it possible to specify certain types of elements in the within the robot programming language that should be protected from being overwritten by the transfer operation.

[0016]

According to an embodiment of the invention, the system comprises a user interface provided with a first activation means for requesting data transfer from the real robot controller to the virtual robot controller and a second activation means for request- ing data transfer from the virtual robot controller to the robot controller. The activation means can be any type of physical or software element that can be activated by a user in order to request the data transfer, for example a physical button, a soft button, or a command in a menu on the user interface. This em- bodiment makes it easy for the user to request transfer of data between the real and virtual robot controller.

[0017]

According to an embodiment of the invention, the data transfer module is configured to, upon request, compare the configura- tion and programs data on the real robot controller with the configuration and program data on the virtual robot controller, and to display the differences. This is information that may be of interest for the user. The system comprises a user interface configured to display the differences in configuration and program data between the real robot controller and the virtual robot con- troller. The user interface is, for example, a display screen connected to the external computer, or a teach pendant unit connected to the robot controller.

[0018]

According to an embodiment of the invention, the data transfer module and the filter component are stored on the external computer. The data transfer module and the filter component can be stored on the external computer or the robot controller. However, due to the limited processing and storing capability of the robot controller, it is more advantageous to store the data trans- fer module and the filter component on the external computer.

[0019]

According to an embodiment of the invention, the system is capable of off-line programming a plurality of robots, said programming and simulation tool has the capability of running a plurality of virtual robot controllers corresponding to a plurality of real robot controllers, and the system comprises storage means for storing the identity of the real robot controllers together with the identity of the corresponding virtual robot controller in order to accomplish data transfer at a later time be- tween the real robot controller and the corresponding virtual robot controller. This embodiment makes it possible for the external computer to remember which virtual robot controller and real robot controller belongs to each other, and thereby to accomplish data transfer at a later time between the real robot control- ler and the corresponding virtual robot controller.

[0020]

According to another aspect of the invention this object is achieved by a method as defined in claim 1 1 .

[0021]

Such a method comprises: receiving a request for data transfer and upon receiving the request automatically transfer configura- tion and program data between the real robot controller and the virtual robot controller, and filtering the transferred configuration and program data according to defined filtering rules.

[0022]

BRIEF DESCRIPTION OF THE DRAWINGS

[0023]

The invention will now be explained more closely by the description of different embodiments of the invention and with reference to the appended figures.

[0024]

Fig. 1 shows a system for off-line programming of an industrial robot according to an embodiment of the invention.

[0025]

Fig. 2 shows a system for off-line programming of a plurality of industrial robots according to another embodiment of the invention.

[0026]

Fig. 3 shows a flow diagram of a method for transferring data from a real robot controller to a virtual robot controller according to an embodiment of the invention.

[0027]

Fig. 4 shows a flow diagram of a method for transferring data from a virtual robot controller to a real robot controller according to an embodiment of the invention.

[0028]

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0029]

OF THE INVENTION

[0030]

Figure 1 shows a system for off-line programming of an indus- trial robot according to an embodiment of the invention. The system comprises a robot 1 and a robot controller 2 for controlling the movements of the robot 1 . The system further comprises an external computer 3 for off-line programming and simulation of the robot. The external computer is, for example, a personal computer (PC). The robot controller 2 and the external computer 3 are configured to allow communication with each other, for ex- ample via a communication link 5. The communication link 5 is, for example, a network. The robot controller 2 is a conventional robot controller including all necessary hardware and software for controlling the movements of the robot, such as memory, one or more processors, and communication equipment. The robot controller comprises a communication component 6, by which the robot controller packages and transfers files or groups of files to the external computer 3. This is often done via Ftp, HTTP or other protocols.

[0031]

The robot controller 2 further comprises data storage 7 for storing robot configuration data, and data storage 8 for storing robot programs. Which configuration data the robot controller has may vary from manufacture to manufacture. The communication component 6 is connected to the data storages 7, 8, and is configured to, upon request, store robot configuration data and robot programs received from the external computer 3 in the data storages 7, 8. The communication component 6 is further configured to, upon request, retrieve configuration data and robot programs from the data storage 7, 8 and to transmit the configuration data and program files to the external computer via the communication link 5.

[0032]

The external computer 3 comprises a programming and simula- tion tool 10 for off-line programming of the robot. The programming and simulation tool comprises a 3D simulator and logics necessary for interacting with a virtual robot controller. Outputs from the programming and simulation tool 10 are robot programs and configuration data for the controller. The external computer further comprises storage means 12 for storing a virtual robot controller. The storage means 12 for the virtual robot controller includes data storage 13 for storing robot configuration data and data storage 14 for storing robot programs and program data. The virtual robot controller further includes references to a 3D model of the robot, and an execution engines (not disclosed in the figure) for motion and language processing. The virtual robot controller is a highly accurate representation of the real robot controller and as such contains almost identical configuration data and program data as the real robot controller. The external computer further comprises a communication component 15, which is responsible for communication with the robot controller 2 via the communication link 5. The communication component 15 is configured to retrieve the necessary program files and configuration data from the robot controller 2 and store the program files and configuration data on the external computer 3 in cor- rect locations, i.e. in data storage 13, 14, and to move program files and configuration data from virtual robot controller 12 to the robot controller 2. The communication component 15 can be complex with own states, or a simple FTP client.

[0033]

The external computer further comprises a data transfer module 17 configured to receive and handle user inputs in the form or requests for transferring data between the real robot controller 2 and the virtual robot controller 12. The data transfer module 17 is configured to, upon request, automatically transfer configura- tion and program files between the real robot controller 2 and the virtual robot controller 12 running on the external computer. The data transfer module 17 instructs the communication component 15 to move data to and from the real robot controller 2. The data transfer module 17 includes a plurality of different se- quences of instructions to be run in dependence on the input from the user. For example, the user can instruct the data transfer module 17 to transfer data from the real robot controller to the virtual robot controller, or the user can instruct the data transfer module 17 to transfer configuration data and robot pro- grams from the virtual robot controller 12 to the real robot controller 2. The programming and simulation tool 10 is configured to store the generated robot programs and possible program execution data (example is a program that reads values out of a data file and executes according to that data file. Other re- sources, such as text translations, may also be saved in the data storage 14 of the virtual robot controller. The data transfer module is configured to, upon request, transfer the off-line generated robot programs from the data storage 14 to the data storage 8 of the real robot controller 2.

[0034]

The system also comprises a filter component 18 configured to filter the transferred configuration data and program files according to defined filtering rules. The filtering rules have been decided beforehand and are stored in the filter component. The filtering rules include information on which parts of the configu- ration data and robot program files are to be transferred between the real robot controller and the virtual robot controller, and which parts of the configuration data and robot program files are not allowed to be transferred. For example, the filtering rules may include information on that certain types of data, such as calibration data, or specific type of elements within the robot program language, must be protected from being overwritten by the transfer operation. The filtering rules can be predefined by the robot manufacture, or can be selected by the user. For example, the filter component can be provided with a default set of filtering rules upon delivery and the user may amend the filtering rules, and add new filtering rules. The filter component 18 is instructed by the data transfer module 17 to filter configuration data and robot program files. The filter component 18 may include different sets of filtering rules, and which set is to be used depends on the direction of the transfer of data. If data is transferred from the real robot controller to the virtual robot controller one set of filtering rules is used, and when data is transferred from the virtual robot controller to the real robot controller another set of filtering rules is used.

[0035]

The external computer 3 further comprises a user interface 20, for example a touch screen, a computer monitor, a keyboard and/or a pointing device, for communicating with a user. The user interface 20 is provided with activation means 22,24 for re- questing data transfer between the real and virtual robot controller. The activation means includes a first activation means 22 for requesting data transfer from the real robot controller to the virtual robot controller, and a second activation means 24 for requesting data transfer from the virtual robot controller to the real robot controller. The activation means are, for example, imple- mented as soft buttons displayed on the screen or as commands on a toolbar. When the user selects and activates the activation means 22,24, configuration data and robot program files are automatically transferred between the real and virtual robot controller in dependence on the selected direction.

[0036]

In an embodiment of the invention, the data transfer module 17 is configured to, upon a user request, compare the configuration data and robot programs from the real robot controller with the configuration data and robot programs from the virtual robot controller and to display the differences on the screen 20. This embodiment enables the user to requests the data transfer module to display the differences between the configuration and program data of the real and virtual robot controller. The data transfer module retrieves the configuration and program data from the real robot controller and compares the received data with the data stored in the virtual robot controller 12 and thereafter displays the generated differences on the user interface. The differences in data between the real and the virtual robot controller can be presented in graphic form, such as tables, parallel editors or similar.

[0037]

In an embodiment of the invention, updated history and data transfer history are stored either on the external computer or the real robot controller as a log and record of what has been trans- ferred and changed. The user may request the data transfer history to be displayed on the screen 20.

[0038]

In one embodiment of the invention, the data transfer module 17 is configured to transfer only selected data and files between the real and virtual robot controller. The user is given options to select how much and which configuration data and program files to be transferred between the real and virtual robot controller. Upon receiving a request for data transfer, the data transfer module only transfers the selected configuration data and program files. The selected configuration data and program files are processed by the filter component.

[0039]

Figure 2 shows a system capable of off-line programming a plurality of industrial robots according to another embodiment of the invention. The robots are connected to a plurality of robot controllers 25a-c for controlling the movements of the robots. The system comprises an external computer 3a for off-line programming and simulation of the robots. The robot controllers 25a-c and the external computer 3a are in communication with each other, for example, via a network. The external computer has a programming and simulation tool 10 capable of running a plurality of virtual robot controllers 26,27,28 corresponding to the real robot controllers 25a-c. The system comprises storage means 29 for storing the identity of the real robot controllers 25a-c together with the identity of the corresponding virtual ro- bot controllers 26,27,28 in order to accomplish data transfer at a later time between the real robot controller and the corresponding virtual robot controller.

[0040]

Figure 3 shows a flow chart of a method for transferring data from the real robot controller to the robot virtual robot controller according to an embodiment of the invention. It will be understood that each block of the flow chart can be implemented by computer program instructions. The program instructions are executed by the data transfer module.

[0041]

Figure 3 represents a case when a highly accurate copy of a real robot controller is to be made and used for off-line programming of the robot by a programming and simulation tool on an external computer. In this case, the user selects activation means 22 denoted "go off-line" from the user interface 20. If there is more than one robot controller connected to the net- work, the user must selects which one of the robot controllers that is to be copied. The same off-line programming computer can be used for programming a plurality of robot controllers. When the user has selected "go off-line", a sequence of steps is performed. In a first step, block 30, system information, such as configuration data and program files, are collected from the real robot controller. The data transfer module 17 instructs the communication component 6 of the robot controller to retrieve configuration data and program files from data storage 7, 8.

[0042]

Based on the retrieved system information, a backup of the real robot controller is performed and backup files are created, block 32. The backup files are transferred from the real robot controller to the external computer. The filter component is instructed to process the backup files according to the stored filtering rules, block 33. An example of a filtering rule is that tool data is not allowed to be transferred from the real robot controller to the virtual robot controller. This is because the real tool is often bent slightly and re-calibrated during use, and it is not a good idea to use the bent tool in a simulation. When the filter component has processed the backup files, only the necessary configuration data and programming files to be used on the virtual robot controller remains. The filtered data is stored in the data storages 13, 14 on the virtual robot controller. Thereafter a vir- tual robot controller is created based on the filtered backup files, block 34. When the virtual robot controller has been created, the virtual robot controller is started, block 35. The backup files are restored to the virtual robot controller, block 36.

[0043]

In most robot controllers, there is a mechanism to save out the contents of the controller memory to disk, this is called a backup. This memory content can be re-read back into memory by a restore operation. Most of the time, but not all, the memory content contains the entire configuration and program informa- tion necessary to built a virtual robot controller. In some cases, there are additional resource or data files saved on disk in the controller and these may not be included in the memory dump. Thus the process for building a working virtual robot controller includes that of copying the files, taking a backup of the memory, and then starting a virtual robot controller and loading the contents of memory from the real robot controller into the virtual robot controller.

[0044]

Figure 4 shows a flow chart of a method for transferring data from a virtual robot controller to a real robot controller according to an embodiment of the invention. Each block in the flow chart can be implemented by computer program instructions. The sequence of instructions disclosed in figure 4 is executed by the data transfer module 17. This case occurs when the programmer has completed working with the virtual robot controller in the simulated environment and needs to transfer the configuration data and robot program to the real robot controller. Not all data is to be transferred. For example, tool data is often a model in the simulation tool, but it is a calibrated tool in the real robot system. The difference may not be large, but the virtual robot controller tool data shall normally not be transferred to the real robot controller. Another example of that which is not to be transferred is the object data in certain use-cases. For example, the simulation system may have a table whose coordinates are given by an object frame stored in the program. The real robot controller also has a table and there are real coordinates for that table in the robot controller's program. The table object frame from the simulation system shall not overwrite the real robot controller. In the transfer from the real robot controller to the virtual robot controller, different customers have different preferences. Preferably, the user is given options to select how much and which configuration data and program data is to be transferred to the real robot controller. When the user has selected which configuration and program data to be transferred to the real robot controller, the he activates the activation means 24 for "go online" on the user interface 20. When the sequence for "go online" has been started, the selected program files and configuration data are retrieved from the virtual robot controller, block 40. Thereafter, program files and configuration data from the real robot controller are re- trieved, block 42. The filter component is instructed to process the program files from the virtual robot controller according to the filtering rules. If the filtering rules specify that certain parts of the files or types of data should not be overwritten, those parts are fetched from the program files from the real robot con- troller and put into the program files from the virtual robot controller. Accordingly, new program files are generated including parts from the files from the virtual robot controller and parts from the files of the real robot controller, block 44. Alternatively, parts of the program files, which are allowed to be overwritten, from the real robot controller, are exchanged by parts from the program files from the virtual robot controller. The resulting program files and configuration data are transferred from the virtual robot controller to the real robot controller, block 46.

[0045]

The present invention is not limited to the embodiments disclosed but may be varied and modified within the scope of the following claims. For example, in the embodiment shown in figure 1 , the data transfer module 17 and the filter component 18 are stored on the external computer 3. However, in an alterna- tive embodiment, the data transfer module and the filter component can be stored on the robot controller 2.



[0000]

The present invention relates to a system for off-line programming of an industrial robot (1) comprising a robot controller (2) for controlling the movements of the robot. The system further comprises an external computer (3) having a programming and simulation tool (10) with the capability of running one or more virtual robot controllers (12), and the real robot controller and the external computer are configured to allow communication with each other. The system further comprises a data transfer module (17) configured to, upon request, automatically transfer configuration and program data between the real robot controller and a virtual robot controller running on the external computer, and a filter component (18) configured to filter the transferred configuration and program data according to defined filtering rules.

[1]



CLAIMS

1 . A system for off-line programming of an industrial robot (1 ) comprising a robot controller (2;25a-c) for controlling the move- ments of the robot, the system further comprises an external computer (3;3a) having a programming and simulation tool (10) with the capability of running one or more virtual robot controllers (12;26,27,28), and the real robot controller and the external computer are configured to allow communication with each other, characterized in that the system comprises: a data transfer module (17) configured to, upon request, automatically transfer configuration and program data between the real robot controller and a virtual robot controller running on the external computer, and a filter component (18) configured to filter the transferred configuration and program data according to defined filtering rules.

2. The system according to claim 1 , wherein the filtering rules include information on which parts of the configuration and program data are to be transferred between the robot controller (2;25a-c) and the external computer (3;3a), and which parts of the configuration and program data are not allowed to be transferred between the robot controller and the external computer.

3. The system according to claim 1 or 2, wherein the data transfer module (17) is configured to, upon request, automatically: create backup files, including configuration and program data, of the real robot controller, instruct the filter component (18) to process the backup files according to the filtering rules, and create a virtual robot controller (12) on the external computer based on the filtered backup files.

4. The system according to any of the previous claims, wherein the data transfer module (17) is configured to, upon request, automatically: retrieve program files from the virtual robot controller (12;26,27,28), retrieve program files from the real robot controller (2;25a- c), instruct the filter component (18) to process the program files according to the filtering rules, and transfer the resulting files to the real robot controller.

5. The system according to claim 4, wherein the filtering rules include instructions regarding which parts of the program files from the real robot controller should be protected from being overwritten by the transfer operation.

6. The system according to any of the previous claims, wherein the filtering rules include instructions regarding specific types of elements within the robot programming language that should be protected from being overwritten by the transfer operation.

7. The system according to any of the previous claims, wherein the system comprises a user interface (20) provided with a first activation means (22) for requesting data transfer from the real robot controller (2) to the virtual robot controller (12) and a second activation means (24) for requesting data transfer from the virtual robot controller to the real robot controller.

8. The system according to any of the previous claims, wherein the data transfer module (17) is configured to, upon request, compare the configuration and programs data on the real robot controller with the configuration and program data on the virtual robot controller, and to display the differences.

9. The system according to any of the previous claims, wherein the data transfer module (17) and the filter component (18) are stored on the external computer.

10. The system according to any of the previous claims, wherein the system is capable of off-line programming a plurality of robots, said programming and simulation tool (10) has the capability of running a plurality of virtual robot controllers (26,27,28) corresponding to a plurality of real robot controllers (25a-c), and the system comprises storage means (29) for storing the identity of the real robot controllers together with the identity of the corresponding virtual robot controller in order to accomplish data transfer at a later time between the real robot controller and the corresponding virtual robot controller.

1 1 . A method for transferring data between a real robot controller (2;25a-c) and a virtual robot controller (12;26,27,28) located at an external computer (3;3a) during off-line programming of an industrial robot, characterized in that the method comprises: receiving a request for data transfer and upon receiving the request automatically transfer configuration and program data between the real robot controller and the virtual robot controller, and filtering the transferred configuration and program data according to defined filtering rules.

12. The method according to claim 1 1 , wherein the method comprises, upon request, automatically: creating backup files, including configuration and program data, of the real robot controller, transferring the backup files to the external computer, filtering the backup files according to the filtering rules, and creating a virtual robot controller on the external computer based on the filtered backup files.

13. The method according to claim 1 1 or 12, wherein the method comprises, upon request, automatically: retrieving program files from the virtual robot controller, retrieving program files from the real robot controller, filtering the program files according to the filtering rules, and transferring the resulting files to the real robot controller.

14. The method according to any of the claims 1 1 -13, wherein the method comprises displaying the differences in configuration and program data between the real robot controller and the virtual robot controller.

15. The method according to any of the claims 1 1 -14, wherein the method comprises storing the identity of the real robot controller together with the identity of the corresponding virtual robot controller in order to accomplish data transfer at a later time between the real robot controller and the corresponding virtual robot controller.