1

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?

Sandeep Thota
  • 135
  • 1
  • 11

2 Answers2

2

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.

Tagli
  • 2,412
  • 2
  • 11
  • 14
  • 1
    There is a CAN standard for CANopen Gateways under document number CiA 302-7 which includes the routing between multiple CANopen networks. I am not sure if this routing is also applicable for routing between two nodes in the same network. – A.R.C. Sep 23 '21 at 11:09
1

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.

Jos Seldenthuis
  • 381
  • 1
  • 5