I am new to CANopen and am designing a system with up to 30 CANopen nodes. Each node may support multiple industrial control functions. All the functions in each node will require something like 15 TPDOs and 4 RPDOs. For simplicity I assume each PDO has 8 data bytes and is transmitted 10x/sec.
Would like a small number of displays based on Sphere II running Linux to allow an operator to dynamically "attach" to any function in any node. To support this kind of flexibility, the display must receive all nodes' TPDOs, a lot of data. The UI cannot ignore the PDOs from nodes the operator is not currently "attached" to because of possible alarm conditions the operator must see.
For those who have had experience with CANopen:
1. Is it realistic for a single CANopen node to process something like 4500 PDOs/sec?
2. Is there a better way to implement a non-dedicated display than having it receive every transmitted PDO on the network?
We haven't used CANOpen in-house, though I know some of our customers have.
Does your CANOpen driver support setting message filters? That might reduce the number of messages to process. Otherwise that's a pretty heavy load on your board.
The CAN controller for the Sphere II (SJA1000T) can do filtering. Whether processor must respond to each CAN frame (interrupt) depends on how many message ids are desired, and where the message ids of interest are in the range 0x181 - 0x57F. Worst case: every received frame generates an interrupt which the processor must handle.