CANOpen Multi client Single server SDO communication

613 views Asked by At

As SDO communication is for peer to peer communication. Is there a way a CANOpen server can communicate with two different clients at same time for same object?

For example: Node-1 (Server): ID-5, OD:6023h, Length:100 bytes Node-2 (Client): ID-10 Node-3 (Client): ID-11

Can Node-2 and Node-3 upload 6023h from Node-1 simultaneously?

If not is this a limitation on CANOpen protocol?

2

There are 2 answers

0
Jos Seldenthuis On

No, that's not possible. SDO is a request-response protocol and is inherently one-to-one. If you want to communicate with multiple clients at the same time, use PDOs, which is basically a publish-subscribe protocol.

1
Tagli On

There can be only one transmitter for a given CAN identifier, otherwise it wouldn't be possible to resolve bus collisions. Therefore, it's not possible for multiple SDO clients to exist for a single SDO server.

However, one CANopen device can contain/host multiple logical SDO servers, which may allow them to serve multiple SDO clients.

When programmed & configured accordingly, it may also be possible for a CANopen node to act as a gateway, accepting connections from multiple SDO clients and routing them to another SDO server. But I don't know if there is a standard protocol for this.

Again, the main rule is only one transmitter for a given CAN identifier.