RobotStudio event

How to properly setup a PROFINET device with a given GSDML

edited April 2021 in RobotStudio

Hi everyone,

we are using RobotStudio 2019 and a IRC5 controller embedding RobotWare 6.10.00 to work with PROFINET I/O signals, our IRC5 is supposed to work as INTERNAL DEVICE whilst we have an external controller.

Under Controller -> Configuration -> I/O Engineering Tools -> I/O System -> PROFINET -> Device we can see under the Properties tab that the Profinet Internal Device (PN_Internal Device) has the corresponding GSDML file:  GSDML-V2.32-ABB-Robotics-INTERNAL-Robot-Device-20191114.xml:

The problem of this is that the Vendor ID is 0, this is a problem for us because our External Controller Configuration Tool does not support it, so we were focusing on another GSDML file, that we can get from is already into the Controller filesystem, under HOME -> GSDML.

So would like to import the GSDML-V2.33-ABB-Robotics-Robot-Device-20180814.xml (which has a non-zero vendor id) to this new configuration to the controller.

In order to do so first of all we removed the currently existing internal device from Controller -> Configuration -> I/O System -> PROFINET Internal Device, to work in the most clean way.

At this point from <b>Controller -> Configuration -> I/O Engineering Tools</b> we go on <b>I/O System -> PROFINET -> Device</b> and we right click to import our GSDML-V2.33-ABB-Robotics-Robot-Device-20180814.xml, we press <b>Write config</b> and restart the controller to finish our modification.

The problem is that when the controller is back online under&nbsp;Controller -> Configuration -> I/O Engineering Tools -> I/O System -> PROFINET -> Device we see again the GSD file GSDML-V2.32-ABB-Robotics-INTERNAL-Robot-Device-20191114.xml (see first image) and we are not able to understand how it is possible that .xml is restored everytime.

Does anyone have some insights on this?

Thanks in advance.

Post edited by aremus on


  • Robert_S
    As a developer of IOC/IOE I can give some comments on this.
    First of all most of the problems in this post is fixed in later versions. The "INTERNAL" GSDML-file is only supposed to be used by IO Engineering Tool, not in any external tools such as TIA or Phoenix. For external tools the other GSDML shall be used. However, in IO Engineering tool, the only file that should be used for the internal device is the "INTERNAL" (with VendorId 0).
    In later versions of IO Engineering Tool we have hidden the display of the filename for the internal device, removed the possibility to add any other devices(from other files than the INTERNAL) under the "Device"-node and also very recently removed the "INTERNAL" file from the controller HOME-folder.   
    We know this has caused problems when the INTERNAL file has been found under home and users has tried to use it in other tools. 

    To summarize: To configure your device in IO Engineering tool you use the INTERNAL-file, to configure the controller end (PLC) you use the normal file. The INTERNAL file is only used to give the same look and feel to both controller and device configuration in IO Engineering Tool. 
  • Robert_S
    Posted a long answer that got lost in cyber space... Here it goes again:
    As a developer and tester on the IO Engineering Tool I can give some insight into this issue. 

    First let me start by saying that we have remedied these issues in later versions.

    The file you have found with INTERNAL in the name is only supposed to be used by the IO Engineering Tool in RobotStudio, NOT in any external tool like TIA or Phoenix Profinet Configurator. 
    In those external tools the normal file that you found shall be used. The INTERNAL-file was added to the controller as a way for the engineering tool to have the same look and feel and internal mechanisms for both internal and external device configuration. 

    In later versions of the tool we have made sure to hide the filename of the internal device (to minimize confusion), we have removed the possibility to add any other device (from other GSDML-files) under the "Device"-node, and most recently we have also removed the INTERNAL-file from the controller's HOME-directory. 

    To summarize: In older versions (like you use) the INTERNAL-named file is used for internal device configuration only, and the normal GSDML-file is used for controller(PLC) configuration

    We know that this has caused confusion and that is why we have done our best to remedy it in later versions of RobotStudio. 

    Best Regards
    -_Robert Söderström

  • Maxim Riabichev
    @Robert the reason your replies didn't publish instantly is that your email address wasn't "verified". I.e. you had to confirm your email address via an email that was sent to your inbox, that probably ended up in your spam filter :)

    I've taken care of that now and published both of your posts.


    Maxim Riabichev
    PC Software Support Engineer
  • Robert_S
    Thanks Maxim, I had confirmed my email but still nothing happened  when posting a comment. Tried a different browser where I saw a small popup message box near the bottom telling me that my post had to be approved first. Anyway, now (both) my answers are here and hopefully Aremus got the answer he needed. 
  • aremus
    @Robert_S thank you for your feedback which clarified well the different roles of the two files, thanks also for the improvements that will be available in later versions of RobotStudio.

    We are gonna focus on the normal GSDML file for our PLC configuration as you suggested