• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
I have already made changes to the "Process data" in/out sizes in GSDML file + App.h file.
Now I want to go a step further and set/get "on demand" fields both in application(App.h) side and GSDML file.
Do you provide a sample how it should be done or direct where can I found information/tools how it could be done ?
few use cases:
1. configure the device to work in specific mode.
2. get async event from device something is out of order ( IRT,<IsochroneMode IsochroneModeRequired/>  from GSDML_GettingStarted_en.pdf)

Can you please provide some info regarding this need ?


Well first of all there is an official GSDML file specification available here:


This document is what a real developer has to study in all details who wants to write a program that I would call a GSDML file generator. In your case it is of course a little easier cause we are already providing a GSDML file example along with the firmware and protocol stack example.

The next document you need as a developer are the netX controller specific functions you can "activate" to get a netX chip configured right. As you have recognized maybe already is that app.h is nothing a netX controller chip understands ... the underlying example code transform the app.h settings to a command that is named "Set Configuration Request" and sent to netX during the initialization sequence.

All API manuals for all the different supported protocol are also part of the github repo of the programming example here:


For PROFINET the programming manual is PROFINET_IO-Device_V3.12_Protocol_API_17_EN.pdf

You never fail until you stop trying.“, Albert Einstein (1879 - 1955)

By the way I don't know the "GSDML_GettingStarted_en.pdf" document so I can't tell what is in there.

And you wrote something about "isochronous mode". This mode is not supported with netPI since the interface between netPI and netX controller is SPI and there is no synchronization possible.

Hilscher supports isochronous mode on high speed PCIe PC cards only that transmit their data via DMA ... but not with netPI. It was never a use case for netPI. Idea of netPI was to just integrate it in industrial ethernet networks alongside a PLC and field IO devices both communicating fast to control application of the factory automation, while netPI just forwards its data to a cloud for example.
You never fail until you stop trying.“, Albert Einstein (1879 - 1955)

Hi Armin,
I have modified the GSDML file by creating fields for output/input data instead of one bulk.
I have not made any changes in netPi side(App.h) accumulated sizes are the same.
see attached files:
1. modified GSDML
2. capture of tia portal screen
yet it seems the tia portal displays error when I try to run it.
am I doing something wrong ?
please advise.


Hi Roy,

this will not work and is expected. PROFINET is intolerant against any difference between the physical submodule configuration (set by the example) of a slave and the theoretic one given by the GSDML file. The PROFINET master will report something like "hey, there is a module configured in the GSDML, but the real slave tells me is it not there". So he will not go into data exchange with this slave.

If you want to support multiple submodules you have to forget the app.h file in the first instance and its two "simple" values configuring one input submodule and one output submodule. Instead you have to modify the underlying c-source code yourself to meet your demand. The file is PacketHandlerPNS.c and the function SetModulConfig(). There you see by the way the two #defines of the app.h beeing used and configuring the single input and the single output submodule. You will also recognize that with the pointer in the function you can can walk along each new submodule you want to configure. You could write and extend it as a loop in junks of same size or copy the existing source code x times depending on the number of your submodules in mind each having a different size. Do not forget to adjust the line ptApi->ulNumSubmodItems = 0x06 accordingly to the overall number of submodules configured. Also increase the value ptSubmod->usSlot in each new submodule configured.

There is one remark: while your pointer for the submodules (&ptSetConfigReq->tData.tModuleConfig) is moving and moving forward please do not forget that the overall memory occupied to place the submodule list is not endless. The size of a configuration message packet sent to netX mailbox and especially the data part is not more than 1560 bytes. I counted 40 bytes that each submodule configuration strcuture needs. Roughly this makes 1560 / 40= 39 submodules in max, minus the 3 submodules already been preconfigured and minus some header information will result in estimated 34 submodules in maximum.

You never fail until you stop trying.“, Albert Einstein (1879 - 1955)

Hello, Armin.
Can you suggest some free tool for viewing\verifying GSDML files?
Tools and docs on https://www.profibus.com/download are available to members only.
Thank you.
Well since Hilscher is a member I have never spent any thoughts on where to get such tools or documentation.

The only tool I know is this one https://de.profibus.com/downloads/profinet-gsd-checker/. But as you said it is for members only. And the same for the very official GSDML file specification located here https://de.profibus.com/downloads/gsdml-...-profinet/.

I am sorry this time I cannot help.

You never fail until you stop trying.“, Albert Einstein (1879 - 1955)


Possibly Related Threads…
Thread Author Replies Views Last Post
  cannot execute file: Exec format error - NETPI tuliosouza 1 63 January-13th-2022, 01:17 PM
Last Post: Armin@netPI
  GSDML file milesie 2 1,776 February-18th-2020, 05:18 PM
Last Post: Armin@netPI
  file folder with netPI RTE MGharat 1 871 December-5th-2019, 07:04 AM
Last Post: Armin@netPI
  [SOLVED] Faulty devices description file from Github Whatzittoya13 5 1,409 March-11th-2019, 11:58 AM
Last Post: Armin@netPI

Forum Jump:

Users browsing this thread: 1 Guest(s)