Best Practices for Structuring Virtual Submodules in a Simple PROFINET Device

sbsprofi
Posts: 4
Joined: 28 May 2025, 17:46

Best Practices for Structuring Virtual Submodules in a Simple PROFINET Device

Post

I am currently working on defining the I/O submodules of a Profinet IO device. From what I understand, modules typically correspond to physically pluggable components, while the definition of submodules within a module is generally left to the device manufacturer's discretion.

Source: https://reference.opcfoundation.org/PRO ... docs/4.1.3

With that being said, what are some common paradigms used in separating virtual submodules for a given module? The I/O device I am working on is a very mechanically simple single-port device targeting Conformance Class A. No other modules can be attached to it, so my GSDML will only include a single module with at least one virtual submodule.

Right now, I have defined a single virtual submodule that handles all I/O data. However, I could just as easily split it into multiple virtual submodules based on logical functionality — for example:
  • Spindle RPM Submodule
  • Acoustic Signal Submodule
  • Current State Submodule
  • Status Flags Submodule
Are there any commonly accepted guidelines or best practices for structuring virtual submodules in a case like this? Does breaking them up improve clarity or interoperability from the perspective of the engineering tool or PLC programmer, or can it act as a hinderance if broken up too finely?
Raik.Zachmann
PROFINET Expert
Posts: 38
Joined: 19 Sep 2023, 07:37

Re: Best Practices for Structuring Virtual Submodules in a Simple PROFINET Device

Post

sbsprofi wrote: 03 Jul 2025, 20:39 I am currently working on defining the I/O submodules of a Profinet IO device. From what I understand, modules typically correspond to physically pluggable components, while the definition of submodules within a module is generally left to the device manufacturer's discretion.

Source: https://reference.opcfoundation.org/PRO ... docs/4.1.3

With that being said, what are some common paradigms used in separating virtual submodules for a given module? The I/O device I am working on is a very mechanically simple single-port device targeting Conformance Class A. No other modules can be attached to it, so my GSDML will only include a single module with at least one virtual submodule.

Right now, I have defined a single virtual submodule that handles all I/O data. However, I could just as easily split it into multiple virtual submodules based on logical functionality — for example:
  • Spindle RPM Submodule
  • Acoustic Signal Submodule
  • Current State Submodule
  • Status Flags Submodule
Are there any commonly accepted guidelines or best practices for structuring virtual submodules in a case like this? Does breaking them up improve clarity or interoperability from the perspective of the engineering tool or PLC programmer, or can it act as a hinderance if broken up too finely?
Hi,

I am not aware of any best practices for structuring virtual submodules.

Within the zip-file of the GSDML Specification you can find example files for different use cases. Maybe those can help as a blueprint.
https://www.profibus.com/download/gsdml ... r-profinet

To your specific case:
The decision if you provide a single virtual submodule containing all I/O data or to split them up to logical functionality should be based on the use case you expect on customer side.

- Is all the data necessary all the time
- Does the customer want to adapt the I/O data and reduce the cyclic data amount
- …

From engineering point of view:
- You can ease the process by defining “AllowedInSubslots”, “UsedInSubslots” and “FixedInSubslots” for the pluggable submodules
Ask another Question