Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In this example the application shall handle I&M data on the application side. For that, it is necessary to change the configuration packet, to implement "Write I&M indication“, "Read I&M indication" and "Reset to factory indication". For that, the application needs a possibility to save information remanent in a flash.

The extendedConfig example can be found in the Knowledge Base on the following website:

netX 90: https://kbhilscher.hilscheratlassian.comnet/wiki/display/NXLFWHST/netX+90+-+PROFINET+IO+Device+-+Examples



This can alternatively be found under:

...

The extendedConfig project can be opened by double-clicking the ".solproject" file. This requires the latest version of netXStudio (https://kbhilscher.hilscheratlassian.comnet/wiki/display/NDT/).


2. PROFINET Sources

A GSDML file is required for this example. The GSDML file can be found in the netXStudio project in Project Explorer at:

...

4. Values from GSDML file

In the GSDML the device, the developer needs to give information about which module has I&M data. Below you see the default configuration in our PNS V5.1.0.4 device.

...

That means, I&M0 is supported to 3. I&M4 and 5 is not supported. Only the DAP module has I&M Data.


It is possbile possible to use Writeable_IM_Records="1 2 3 4" on a different module. For example:

...

That means the DAP has now I&M0 to 3 and the 10 Byte Input module has its own dataset for I&M0 to 2.

In this case, the I&M data handling needs to be implemented in your application , because the stack can only handle the default I&M data on the DAP.

...

  • PNS_IF_READ_IM_IND
  • PNS_IF_WRITE_IM_IND


The stack does not know anything about the GSDML file. The stack first needs the information about supported I&M data.Therefore, the stack sends application needs to implement in PNS_IF_READ_IM_IND in startup, with the parameter PNS_IF_IM_TYPE_IM0FILTER. With IM0FILTER

That means the stack wants to get information of which modules do support their the application can return which module and submodule has own I&M data.


To get this IM0FILTER request, it is necessary to send this from the applicationIO Controller. An easy way is to use the Testcase  IP_UDP_RPC_I&M_EPM testcase from ART Test Tool.

The application can response respond with some flags to this stack request.


For example, the stack requests for Slot 0 and Subslot 1 (DAP):

...

PNS_IF_IM0_FILTER_DATA_MODULE_REF means, that the I&M data of this Modul module are the reference for all submodules which belong to this module:

...

PNS_IF_IM0_FILTER_DATA_DEVICE_REF is only used one time once (on the DAP) and means , that all other modules and submodules without own I&M data will refer to this module:

...

      ptReadImRes->tData.tData.atIM0FilterData[0].ulFlags = PNS_IF_IM0_FILTER_DATA_HAS_IM_DATA | PNS_IF_IM0_FILTER_DATA_MODULE_REF | PNS_IF_IM0_FILTER_DATA_DEVICE_REF;


Modulmodule: <VirtualSubmoduleItem ID="10byteinput" MayIssueProcessAlarm="false" SubmoduleIdentNumber="0x00000001" Writeable_IM_Records="1 2">

...

      ptReadImRes->tData.tData.atIM0FilterData[0].ulFlags = PNS_IF_IM0_FILTER_DATA_HAS_IM_DATA; 

is necessary , because there are no submodules).


More informations information to I&M can be found here: How to deal with I&M data?

...