0

I'm planning a CANopen network with a few nodes (8-9) so I'm thinking of the Node-ID using 4 bits, and 7 for the rest of the COB-ID to indicate more than the 4 basic PDOs there seems to be (as up to 512 PDO are possible, apparently). from the below table (source: https://en.wikipedia.org/wiki/CANopen?msclkid=cc03ecf1cf8911ec8b496ce77ca22492#Predefined_Connection_Set[7])

enter image description here

I have the following questions:

  1. Can I have my PDOs at 180 + NodeID , 190 + NodeID , 1A0 + NodeID , etc. as NodeID is 4 bits?
  2. Do I have to have pairs of TPDO and RPDO or may I have an unequal number?
  3. Same with SDOs, can I have different Transmit and Receive number of them?
  4. Can I rearrange the Sync, Emgy, Timestamp and NMT COB-IDs to have more PDO/ SDO? Like Sync at 010, Timestamp at 020, NMT 030, etc. Or can I but better not, for whatever reason?
  5. As an alternative to the above, could I map PDOs/ SDOs to COB-IDs like 010 + NodeId, etc?
  6. What is LSS?
Joan
  • 1,403
  • 1
  • 9
  • 11
  • 1
    Node ID is 7 bits. Do not invent your own standard. (ps: You can make a device be multiple Nodes if you need more PDO's.) – Jeroen3 May 09 '22 at 12:25
  • Jeroen3, I'm aware of that, but the same CANopen spec also states that up to 512 PDO per node are possible, is that exclusively for 29-bit COB-ID extended CAN? – Joan May 09 '22 at 12:31
  • Jeroen3, so you would have 7-bit nodes XXXYYYY and I would have 4-bit nodes (YYYY) with their function codes extended by 3 bits (XXX), is there any practical difference? – Joan May 09 '22 at 12:39

1 Answers1

1

For my answers I'm assuming you're using CAN 2.0A, because otherwise your proposed 'hacks' wouldn't make any sense.

  1. Can I have my PDOs at 180 + NodeID , 190 + NodeID , 1A0 + NodeID , etc. as NodeID is 4 bits?

Sure

"180 + NodeID, 200 + NodeID, ..., 500 + NodeID" are only default assignments.

You may use any of the following COB-IDs for TPDO and RPDO:

  • 181 .. 1FF
  • 201 .. 27F
  • 281 .. 2FF
  • 301 .. 37F
  • 381 .. 3FF
  • 401 .. 47F
  • 481 .. 4FF
  • 501 .. 57F
  1. Do I have to have pairs of TPDO and RPDO or may I have an unequal number?

You can mix and match TPDOs and RPDOs as it fits your application.

You may map a TPDO to any number of RPDOs. And likewise any number of TPDOs to an RPDO.

  1. Same with SDOs, can I have different Transmit and Receive number of them?

I'm not sure what you mean. Please clarify.

But essentially, an SDO request COB-ID (e.g. 601) is mapped to an SDO response COB-ID (e.g. 581). The funtion code (bits 7 .. 10) defines the protocol type (e.g. NMT, SDO rx, SDO tx).

  1. Can I rearrange the Sync, Emgy, Timestamp and NMT COB-IDs to have more PDO/ SDO? Like Sync at 010, Timestamp at 020, NMT 030, etc. Or can I but better not, for whatever reason?

No, that would be a violation of the CANopen standard.

You may define your own application layer on top of CAN. You just cannot call it CANopen if you do so.

  1. As an alternative to the above, could I map PDOs/ SDOs to COB-IDs like 010 + NodeId, etc?

No.

  1. What is LSS?

The Layer Settings Service are primarily used to configure NodeIDs and the CAN baudrate.

Velvet
  • 4,299
  • 4
  • 14
  • 32