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

How to disable the RTR option for RPDOs?

Ben Lewis
2023-07-14
2023-07-18
  • Ben Lewis - 2023-07-14

    I have a CANOpen device that does not allow the RTR option on PDOs (both receive and trasmit). When configuring this device in Codesys I can edit the TRANSMIT PDO and untick the RTR option, but there is no tick box for the RECEIVE PDO. As a result, errors are raised during initialization (abort code 16#06090030) and the RPDO does not function. I then have to manually override the COB-ID used by RPDO to get it working.

    Is there a reason why the RPDO editor is missing the RTR tick box? Can anything be done about this?

     
  • Ben Lewis - 2023-07-16

    For clarity, I've attached screenshots of the RPDO and TPDO configuration dialog boxes.

     
  • Ben Lewis - 2023-07-18

    The Codesys online help makes it clear that the RTR option is only available for transmit PDOs (see attached screenshot "RTR.png").

    https://content.helpme-codesys.com/en/CODESYS%20CANbus/_can_edt_canopen_device_pdos.html

    Given that this is the intended behaviour I need to find a work around.

    The device that I'm working with is an Axiomatic AX021101 CANOpen valve controller. Here is a link to the user manual.

    https://products.axiomatic.com/Asset/UMAX021101.pdf

    Section 3.1.14 (p. 54) makes it clear that there is no RTR (Remote Transmission Request) allowed for Receive PDOs (see attached screenshot "Section 3_1_14.png").

    When the device is initialised, there is an error raised for each of the four RPDOs and they fail to operate (will not receive valves from the PLC (see attached screenshot "Event log.png").

    I can do an SDO read of index 16#1400 sub 16#01 to find the COB-ID used by RPDO1. It is 16#8000027F, that is, the RTR bit (bit 30) is not set, meaning RTR is allowed.

    I can do an SDO write to the same index with a value of 16#4000027F and the RPDO will start working (receiving data from the PLC). That is, setting the RTR bit (bit 30) to 1 disables the RTR option and everything works as expected.

    Is there a way to configure this device to avoid the initialisation errors and having to do an SDO write to correct the RTR bit?

     

    Last edit: Ben Lewis 2023-07-18

Log in to post a comment.