I am in early stages of developing a PROFINET device. Can anyone explain me how "process data" is mapped in PROFINET protocol? I am referring to the variables exchanged in real-time (with RT or IRT protocol), and I would like to know how the master controller can configure a slave device to get the desired data, in general. Is it a standard procedure?

I have experience with EtherCAT, where the master write some objects to define which variables will be exchanged as "process data" with PDO protocol (procedure known as "PDO mapping"). I am looking for the similar procedure in PROFINET.

I'm asking to someone who has experience with PROFINET protocol, even just to get a reference to the proper standard document.

Many thanks!


Unless you are a member of Profibus/Profinet organization, you will get exactly zero information on that purpose.


I do use PROFINET every day. While ETHERCAT has all mechanisms documented open source, the PROFINET doesn't. For the end user it is not important how this initial handshake takes place. ¸

The slave device is configured with a list of received and sent bytes, that you can configure in editor. A GSMDL file has the options about how many modules (byte sequences) a device can have.

enter image description here Figure 1: A PROFINET device, cyclic data exchange configuration, catalog with possible modules - for this device only one module with 4 bytes output is possible.

enter image description here Figure 2: A module RES-5010 has a default submodule Communication with 6 bytes in, 4 bytes out. However you can add additional submodules (yet some bytes of other information)

enter image description here Figure 3: An absolute encoder with telegram options as submodules. Only one telegram can be configured, no additional submodules are possible.

If the device is capable of acyclic transfer, then you can change device parameters in the PLC program if needed. Many new devices have this possibility.

enter image description here For example the device from Figure 3 (encoder) has also parameters that are sent upon initialization. These are usually fixed parameters tailored for that specific application, but if needed they can be changed by acyclic transfer from PLC program.


At the power up, the PROFINET master sends the configuration of the cyclic data exchange and device parameters (if any). After completion of the startup, the cyclic data exchange takse place.

If for any reason a device parameter has to be changed or some debug information is required, it can be done by using a acyclic read/write. The acyclic exchange is useful for very large data transfer (one by one) that have no impact on real-time response. Meaningful real-time data shall be transferred within cyclic data exchange.

  • \$\begingroup\$ My question is addressed to who uses PROFINET. I guess that not all the users are PI members. \$\endgroup\$ Sep 3 '20 at 8:56
  • \$\begingroup\$ @AlessioCaligiuri See edits. \$\endgroup\$ Sep 3 '20 at 9:56
  • \$\begingroup\$ Many thanks. Two more questions: 1) in general, can the PLC configure a set of cyclic data that is not "predefined" in the GSDML? 2) is that mapping configuration set-up at "low" protocol level during the establishment of AR/CR? \$\endgroup\$ Sep 4 '20 at 10:51
  • \$\begingroup\$ @AlessioCaligiuri ad 1) No, because the PLC is an end product, programmed with engineering software that follows profibus.org guidelines, so it needs a GSMDL. Indeed the PLC doesn't need the GSMDL, the software needs it. 2) The mapping is configured during the start-up of the PLC. An embedded system could perform this without the need of GSMDL, this file is only a XML document description of data exchange. \$\endgroup\$ Sep 4 '20 at 14:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.