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.

AM3356: The ISR of Ti and To is frequently lost on PROFINET IRT

Part Number: AM3356

I have a problem about PROFINET IRT.

When both RT and IRT devices work on the network, the ISR of Ti and To is frequently lost for IRT device. The network topology is shown below.

Have you ever solved  a problem like this?

When the last device is changed to IRT,  all is normal. That is say, the problem is to mix RT and IRT device.

TMG replied to me " If there are lost ISOM interrupts, this is probably a problem of ICSS-PRU firmware. ICSS-PRU firmware does cyclic data exchange and generates ISOM interrupts. In case of lost ISOM interrupts, TI has to be contacted to check ICSS-PRU firmware."

Could you test the ISOM in IRT and RT mixed ?

Looking forward to your reply!

  • TMG is TMG Technologie and Engineering GmbH (TMG TE) 

  • Hi Andy,

    We will be testing to reproduce this issue on our end and will get back to you with an update by tomorrow.

    Regards,
    Laxman


  • Hi Andy,

    Apologies for the delay.

    We are trying to reproduce the issue on our side but are facing some setup issues. Will resolve them and provide an update on this by Monday.


    Thank you for your patience,
    Laxman 

  • Hello Andy,

    We are observing some issues with the ISOM ISR misses. We will be actively working on this and will provide an update on the progress by next week.

    In the meanwhile could you answer the following questions to ensure there are no setup differences:

    1) Are you using ISOM interrupt mode for both Ti and To? Or are you using the ISOM GPIO mode also?

    2) Do you observe ISR miss on both Ti and To? How are you checking for the ISR hits and misses?

    3) What are the parameters passed to the "PN_ISO_initGPIOEvent"? Mainly the "timing value" and "duration" for both Ti and To.

    Thank you for your patience.

    Regards,
    Laxman

  • 1) Are you using ISOM interrupt mode for both Ti and To? Or are you using the ISOM GPIO mode also?

    ISOM interrupt mode

    2) Do you observe ISR miss on both Ti and To? How are you checking for the ISR hits and misses?

    I monitored the count of ISOM interrupt between 2 Tdc. When Cacf is 1, the normal count should be 2 . I find it often is not 2.

    3) What are the parameters passed to the "PN_ISO_initGPIOEvent"? Mainly the "timing value" and "duration" for both Ti and To.

    To_IsoMHandle=PN_ISO_initGPIOEvent(appPnHandle,PNISO_MODE_GPIO,to_ns,1000); //If duration is set too low ,it will cause loss of Ti/To interrupt
    Ti_IsoMHandle=PN_ISO_initGPIOEvent(appPnHandle,PNISO_MODE_INTERRUPT,ti_delay_ns,1000);

    Ti time and To time are from PLC.Ti time =250 ns, To time=375 ns, Tdc time=1 ms.

    to_ns = To time = 375.

    ti_delay_ns = Tdc time - Ti time = 1000 - 250 = 750.

  • Hi Andy,

    Thank you for your responses.

    Could you try setting "ti_delay_ns" and "to_ns" with values greater than 10us. This is because the sync signals require some time to get configured at the start of every cycle.

    I monitored the count of ISOM interrupt between 2 Tdc. When Cacf is 1, the normal count should be 2 . I find it often is not 2.

    In this case, what is the count value? Are you receiving atleast 1 interrupt or none?

    Ti time and To time are from PLC.Ti time =250 ns, To time=375 ns, Tdc time=1 ms.

    to_ns = To time = 375.

    ti_delay_ns = Tdc time - Ti time = 1000 - 250 = 750.

    T_dc is 1ms right? So ti_delay_ns = 1,000,000 - 250 = 999,750 ns. According to this calculations, there might be some delay in sending the ISR. So if new cycle starts, then this ISR might be lost. Could you try reducing the ti_delay_ns and repeat the experiment once?

    Thanks and Regards,
    Laxman

  • Hi Laxman,

    Thanks for your reply!

    1." try setting "ti_delay_ns" and "to_ns" with values greater than 10us" Now it is the key. I will continue to test for a long time.

    2.When ISR miss, the count value is 1.

    3.I am sorry that I misdescribed it in the last post. My actual configuration is correct and never changed.

    Make corrections about description:

    Ti time and To time are from PLC.Ti time =250 us, To time=375 us, Tdc time=1 ms.

    to_ns = To time = 375000.

    ti_delay_ns = Tdc time - Ti time = 1000000 - 250000 = 750000.

    Best Regards,

    Andy

  • Hi Laxman,

    When both RT and IRT devices work on the network,the PLC have "life  signal loss" error after 2-3 hours. But when only IRT devices work on the network,it is ok.

    Best Regard,

    Andy

  • Hi Andy,

    Thank you for providing the results from long test run. Could you answer a few queries to confirm that I have understood the error properly?

    1) So before the "life signal loss" error, are you not observing any ISR misses?

    2) What do you mean by "life signal loss" error? Are you observing the "life signal loss" error in the TIA portal? If yes, do you see green tick marks on both the devices after the error occurs? Could you provide some screenshots for context?

    Best Regards,
    Laxman

  • Hi Laxman,

    1)I don't observe any ISR misses.So I suspect that Ti and To loss is the part of the story, not the whole story.Now the Ti and To are not missed when the duration is changed to 20000.

    Maybe the PRU forwarded the RT packet causing an IRT processing error. I was just guessing.

    2)Yes it is in PLC diagnostics buffer and PositioningAxis Technology objects from PLC.But the device has no Sign-Of-Life failure and device is also monitoring.When the error occurs,the tick marks on both the devices is always green.

    Best Regards,

    Andy

  • Hi Andy,

    Glad to know that you do not observe any ISR misses when duration changed to 20us. We will be running long term test to check if we get similar output on TIA portal.
    Also we will be investigating on how changing the duration is affecting the ISR drops. 

    Few questions regarding the "Positioning Axis Technology":

    1) It looks like this object is not present by default, are you adding this object in TIA portal? If yes, could you let us know what are the parameters you set for for this object to replicate the issue on our side?

    2) Are you able to observe any logs in PLC diagnostics without adding the object?

    Regards,
    Laxman

  • Hi Laxman,

    1)I added "TO_PositioningAxis"

    2)TO_PositioningAxis should have to be added.I deleted it and rebuild the project. It has error.

     

    I think the signal of life monitor mechanism in PROFIDrive is lower tolerance than PROFINET IO for packet loss.

    Maybe you can not reproduce it because of only PROFINET IRT IO application added.

    Best Regards,

    Andy

  • Hi Andy,

    Thank you for the steps. We will check whether the issue is reproducible without adding the object.

    On our side, we have got the setup working and have tested the setup with different configurations.

    1) We have observed that with just one IRT device connected to PLC, we do not observe any ISR miss for both Ti and To.

    2) However with two IRT devices connected to PLC, the DUT connected directly to the PLC does not have any ISR misses, but the second DUT does have To ISR misses. If we change the duration to 20000 ns, then we do not see any ISR misses in both the devices.

    3) Also with one IRT and RT device, the To ISR misses are occurring. If we change duration to 20,000 ns, then no ISR misses occur 

    We are currently investigating this behavior and will get back to you next week on the progress made on this issue.

    Thank you for your patience,
    Laxman

  • Hi Andy,

    Apologies, There will be a slight delay for the update on this issue, due to some unexpected activities. We will be providing an update by mid next week
    Best Regards,
    Laxman

  • Hi Andy,

    We have run some tests on our side to understand how the ISOM mode configurations affect the ISR miss rate.

    While setting the "value" and "duration" parameters in the function call "PN_ISO_initGPIOEvent", few considerations are required:

    1) The "duration" value must be set to a value greater than sync width, currently the sync width is set to 5 us. Hence "duration" must be set to 5 us or above.

    2) There is some setup time required due to additional processing taking place in the firmware which requires the Ti "value" to be set to a minimum of 10us.

    If these two conditions are met then no ISR misses should occur for Ti or To. Please let us know if you face any other issues regarding this topic.

    Thank you for your patience,
    Laxman

  • Hi Laxman,

    I found something new. PN_cpmIsrHandler misses occasionally in IRT device when IRT and RT mixed.So the PLC did not receive the  the signal of life value it expected.The "duration" is 20000ns and no ISR misses should occur for Ti or To.

    Best Regards,

    Andy

  • Hi Andy,

    We will test this on our side once and get back to you by end of this week.

    In the meanwhile could you confirm once, with the above mentioned thresholds you do not see any issues with the ISOM ISR misses?
    Also do you observe any ISOM ISR miss when the PN_cpmIsrHandler misses?

    Regards,
    Laxman

  • Hi Laxman,

    ISOM ISR is normal and not miss.

    Best Regards,

    Andy

  • Hi Andy,

    Thank you for your prompt response.

    Since this issue is fixed, please create a separate E2E thread to discuss more about the CPM ISR miss. 

    Regards,
    Laxman