Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Profinet fault with codesys control V3 - Receive packet error

2024-02-27
2024-02-29
  • tim-roelant - 2024-02-27

    I have set up a brandnew Beckhoff panel pc with a codesys control runtime V3.

    I configured it together with 2 profinet field devices: a 16in/16out IO module from Turck and an MTS linear encoder.

    The machine works fine untill all of a sudden the communication breaks and the profinet participants become unreachable.

    At that point I can still ping the device, but the profinet master does not find them anymore: When i do a scan they are not found.

    When i do a cold restart, the profinet master becomes active again and the devices are found again.

    In the log i get Ethercat packet receive error: sysethernet.

    I am a little confused, there is no ethercat device in the device tree.

    I already set the send clock and the reduction ratio to higher values, but without result.

    Can codesys be configured, so that the communication re-establishes without doing the cold reset?

    This is very annoying and is causing a lot of prodution losses.

    regards

    Tim

     
  • TimvH

    TimvH - 2024-02-28

    Are you using the Control Win SL (installed together with the development environment of CODESYS)? If yes, you might want to consider using the CODESYS RTE instead. This has real-time capabilities (running on separate core(s)). But to be able to use this, you have to install the CODESYS Ethernet driver for your network interface to be able to let the RTE access the network port also in realtime.

    See:
    https://store.codesys.com/en/codesys-control-rte-sl-bundle.html
    https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_windows_rts_v3.html

    PS, I haven't tested this myself yet, but you could try to use the SetCommunicationState method of the Profinet controller to see if you can reset and start the bus communication:

    result := PN_Controller.SetCommunicationState(eRequestedState := DED.DEVICE_TRANSITION_STATE.START);
    

    PS, if you are located in the Netherlands or Belgium, we could also provide the license(s) for you.

     
  • TimvH

    TimvH - 2024-02-28

    Are you using the Control Win SL (installed together with the development environment of CODESYS)? If yes, you might want to consider using the CODESYS RTE instead. This has real-time capabilities (running on separate core(s)). But to be able to use this, you have to install the CODESYS Ethernet driver for your network interface to be able to let the RTE access the network port also in realtime.

    See:
    https://store.codesys.com/en/codesys-control-rte-sl-bundle.html
    https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_windows_rts_v3.html

    PS, I haven't tested this myself yet, but you could try to use the SetCommunicationState method of the Profinet controller to see if you can reset and start the bus communication:

    result := PN_Controller.SetCommunicationState(eRequestedState := DED.DEVICE_TRANSITION_STATE.START);
    

    PS, if you are located in the Netherlands or Belgium, we could also provide the license(s) for you.

     
  • tim-roelant - 2024-02-29

    Hello Tim,

    We already met via extendsmartcoding.nl, I already bought 2 licences of codesys control.

    I will try you method, thx for you answer.

     

Log in to post a comment.