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.
Log in to post a comment.