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
Is there a possibility to cause the CANopen stack to reconfigure a node with new SDO information during runtime? I have a node that I would like to have programmed two different ways based upon a flag that is set by the user. I need to change the Transmit PDO Type and Inhibit timer. I have no problems sending the SDO. The issue is the slave node will not use the new parameters until it enters into pre-operational. Once started again the new parameters will take effect. After changing the slave node parameters manually by using the CanOpenSendSDO FB and setting pre-operational the CoDeSys CANopen stack see's the transition to pre-operational and automatically takes over reconfiguring the node based on the PLC Configuration settings of the node and starts it operational over writting what I have just programmed. Any suggestions?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I believe I found my own solution thanks to the CANopen for 3S Runtime Systems manual. Since I have the PDO set to cyclic an object dictionary entry for event timer is not found in ODEntries. So I can't change that entry at runtime. But a key point that I was not aware of is sending a NMT start message to the node would cause the device to re-read the OD entries. This worked so I did the following.
Configured two OD entries on the slave node using the CanOpenSendSDO FB.
Used a CAN_Layer1 FB to send the NMT Start node command.
That worked.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Is there a possibility to cause the CANopen stack to reconfigure a node with new SDO information during runtime? I have a node that I would like to have programmed two different ways based upon a flag that is set by the user. I need to change the Transmit PDO Type and Inhibit timer. I have no problems sending the SDO. The issue is the slave node will not use the new parameters until it enters into pre-operational. Once started again the new parameters will take effect. After changing the slave node parameters manually by using the CanOpenSendSDO FB and setting pre-operational the CoDeSys CANopen stack see's the transition to pre-operational and automatically takes over reconfiguring the node based on the PLC Configuration settings of the node and starts it operational over writting what I have just programmed. Any suggestions?
I believe I found my own solution thanks to the CANopen for 3S Runtime Systems manual. Since I have the PDO set to cyclic an object dictionary entry for event timer is not found in ODEntries. So I can't change that entry at runtime. But a key point that I was not aware of is sending a NMT start message to the node would cause the device to re-read the OD entries. This worked so I did the following.
Configured two OD entries on the slave node using the CanOpenSendSDO FB.
Used a CAN_Layer1 FB to send the NMT Start node command.
That worked.