I am using the CANopen libraries in order to realize a test system with 254 CANopen nodes (127 in each CAN port of my PLC). Unfortunately my PLC can only handle a memory segment of up to 64K. I do not know where this limitation is coming from, since there are 8Mbytes of SDRAM in the processor, but I presume there will be a workaround. Here comes my question: How can I redirect the global variables of the CANopen libraries to different memory segments so as to have enough space to add all the required nodes?
Thanking you in advance for all your time,
D. Armenis
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
One problem you may run into is the following. I believe on previous versions of the CANopen library < 2.3.8.4 you were limited to 32 nodes. After version > 2.3.8.4 3S increased it to 64. Running 128 CANopen nodes will make a huge impact on PLC performance and would be strongly discouraged. I don't know why you would want to do this but my recommendation would be to segment the buss architecture to something more reasonable like <=32 nodes. The 3S CANopen stack is a memory hungry animal. Depending on how you are commissioning the system you can try and decrease the memory capacity required by the CANopen stack by not performing any initialization on the nodes so that SDO information is not stored in PLC memory and use an external configuration device. Also modifications to EDS files can help.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi everyone,
I am using the CANopen libraries in order to realize a test system with 254 CANopen nodes (127 in each CAN port of my PLC). Unfortunately my PLC can only handle a memory segment of up to 64K. I do not know where this limitation is coming from, since there are 8Mbytes of SDRAM in the processor, but I presume there will be a workaround. Here comes my question: How can I redirect the global variables of the CANopen libraries to different memory segments so as to have enough space to add all the required nodes?
Thanking you in advance for all your time,
D. Armenis
One problem you may run into is the following. I believe on previous versions of the CANopen library < 2.3.8.4 you were limited to 32 nodes. After version > 2.3.8.4 3S increased it to 64. Running 128 CANopen nodes will make a huge impact on PLC performance and would be strongly discouraged. I don't know why you would want to do this but my recommendation would be to segment the buss architecture to something more reasonable like <=32 nodes. The 3S CANopen stack is a memory hungry animal. Depending on how you are commissioning the system you can try and decrease the memory capacity required by the CANopen stack by not performing any initialization on the nodes so that SDO information is not stored in PLC memory and use an external configuration device. Also modifications to EDS files can help.