Profinet I&M Record Data Handling


the CompactCom 40 Profinet IRT Network Guide describes the I&M Data Structures available with Anybus. My question is focussing on IM1 to IM3. The related PROFINET IO Object (F6h) supports an Instance Attribute called “Record Data Mode” providing a transparent mode and IM_Options. For me it’s hard do understand how this shall work, even if “Flowchart — I&M Record Data Handling” tries to explain that. In transparent mode, I need to save IM1 to IM3 record data non-volatile by managing that in host application code? Where is my ‘entry point’ to provide data if an engineering tool requests them?

Thanks for help, Thomas

Hello Thomas,

let me add a comment on the IM_Options:
This is a command, which can be sent to the Network PROFINET IO Object (0x0E). It is mentioned in the description of the Record Data Mode attribute, as it affects the record data handling for the I&M records.
With this command, it can be defined which I&M records are transparently forwarded to the application.

If transparent handling is activated for some records, any attempt to read or write these records will result in a Get_ or Set_Record command sent to the PROFINET IO Object 0xF6.
Our Host Application Example Code handles incoming commands in ABCC_CbfReceiveMsg() from there a command to the PROFINET IO Object will be forwarded to PRT_ProcessCmdMsg().
The code for this function is part of prt_obj.c and has to be extended to handle the record commands based on the addressed index. I&M is addressed through indices 0xAFF0 (I&M0) to 0xAFFF (I&M15).
I&M1…3 should be stored in non-volatile memory and be provided upon request.

Is there a specific reason for the I&M handling in transparent way?
For most applications, the module-internal handling should be sufficient.

Best regards