This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MCU-PLUS-SDK-AM243X: ProfiNet Demo - Data Handling and Buffers Questions

Part Number: MCU-PLUS-SDK-AM243X

Dear Community,

we are currently evaluating the latest release of the MCU-PLUS-SDK-AM243X with focus on the ProfiNet demo for the launchpad.
We managed to run the demo on the launchpad and add the device to ProfINet network with a Siemens S7 as ProfiNet Master.  

As we have several questions, is there further documentation for the API and the Industrial Ethernet stacks available? 

The collection of our questions: 

  • Cyclic Data:
    • How is the cyclic data mapped from the application side via the stack API to the PLC side (represented by the GSD file)? 
    • How to check for data written by the PLC to the device (Output Data)? Is there a manual how to do this? 
    • How are the three buffers required by the input and output buffer function handled and what are the restrictions here (PN_API_DEV_setOutputDataBuffer, PN_API_DEV_setInputDataBuffer)? 
           In the demo the same buffer is provided for three buffer parameters required by the functions. 

  • Acyclic Data 
    • Is there a demo how to handle acyclic data  and how the data is structured for this? 

  • Evaluation License
    • We faced the issue, that the demo stops to work after some time (about 1h) 
      • Is there a possibility to get a  demo without time limitations? 
      • To our understanding, the license for the Industrial Ethernet Stack is provided by the MCU itself.

Thanks in advance for you help (and sorry for asking so many questions ;) ) 

BR

Robin

  • Hi team,

    Is there any update on this?

    Thanks,

    Connie

  • Hi
    Sorry for the delay in response. We will provide answers by end of this week.

    Regards
    Dhaval Khandla

  • Hi

    Cyclic Data:
    • How is the cyclic data mapped from the application side via the stack API to the PLC side (represented by the GSD file)? 
    • How to check for data written by the PLC to the device (Output Data)? Is there a manual how to do this? 
    • How are the three buffers required by the input and output buffer function handled and what are the restrictions here (PN_API_DEV_setOutputDataBuffer, PN_API_DEV_setInputDataBuffer)? 
           In the demo the same buffer is provided for three buffer parameters required by the functions. 

    The Process Data is mapped in APP_configureSubmodules().

    The previously allocated Process Data is now split in submodules/those are assigned to memory regions by defining Offset and Length within Input/Output Data Buffer. We have a video explaining this process, which can be downloaded from following link.

    Link : https://tidrive.ext.ti.com/u/zzrCPAY6wjHdOsI0/76487039-a0d0-42de-897e-52b1141e7362?l
    Password : 6SmN6F,f

    • Acyclic Data 
      • Is there a demo how to handle acyclic data  and how the data is structured for this? 

    Acyclic Data for example I&M Data is registered in APP_configureImData within so called I&M Carrier

    See Below the I&M Carrier Descriptor:

    /*
     *  Example of how different flavors of I&M carriers can be added to the array.
     *  A real submodule must be plugged prior adding an I&M carrier.
     *  Submodule must be able to be an I&M carrier (consistency with GSD).
     *  By adding a new I&M set, don't forget to adjust APP_IM_CARRIER_NUM.
     *
     *   {.api = 0x00000000, .slotNumber = 0x0001, .subslotNumber = 0x0001,
     *   .supportedIm = PN_API_IM_eSUPPORT_IM1 | PN_API_IM_eSUPPORT_IM2 | PN_API_IM_eSUPPORT_IM3,
     *   .deviceRepresentative = false, .moduleRepresentative = true, .memoryIndex = 1},
     *
     *   {.api = 0x12344567, .slotNumber = 0x00aa, .subslotNumber = 0x00fe,
     *   .supportedIm = PN_API_IM_eSUPPORT_IM2,
     *   .deviceRepresentative = false, .moduleRepresentative = false, .memoryIndex = 2},
     */
    static const APP_SImCarrierDescriptor_t imCarrierDescriptors_s[APP_IM_CARRIER_NUM] =
    {
        {.api = 0x00000000, .slotNumber = 0x0000, .subslotNumber = 0x0001,
        .supportedIm = PN_API_IM_eSUPPORT_IM1 | PN_API_IM_eSUPPORT_IM2 | PN_API_IM_eSUPPORT_IM3 | PN_API_IM_eSUPPORT_IM4,
        .deviceRepresentative = true, .moduleRepresentative = true, .memoryIndex = 0}
    };

    The I&M Carrier is filled in APP_createImDataCarrier.

    It is processed by the PROFINET Stack when given to PN_API_IM_addImCarrier.

    Evaluation License
    • We faced the issue, that the demo stops to work after some time (about 1h) 
      • Is there a possibility to get a  demo without time limitations? 

    Demos without time limitations are planned for 2Q 2022.

    Regards
    Dhaval Khandla

  • Thank you very much for this detailed answer. 

    The video is a good reference to understand how the buffer is assigned to the submodules. 

    I still have a one more questions, that would help us to proceed with the evaluation: 

    • How are the three buffers required by the input and output buffer function handled and what are the restrictions here (PN_API_DEV_setOutputDataBuffer, PN_API_DEV_setInputDataBuffer)? 
      In the demo the same buffer is provided for three buffer parameters required by the functions. 

    It would be great if we could get a reference, where we can find more information about this mechanism. 

    Regards 
    Robin

  • Closing thread as an updated PROFINET stack will be available in the MCU+ SDK by the end of the year

  • Hello Dhaval,

    can you tell us what will be changed to the current Profinet Stack in the SDK 8.3? 

    Thanks and Best Regards
    Robin