CAN Object ID conventions at the HZB

Preface

Knowledge of CAN bus concepts is assumed in this document. This document contains conventions for the assignment of CAN Object IDs (COBs) for the BESSY facility. This specification is compatible with the CAN application layer (CAL).

Two ways to construct COBs

A COB must be an integer in the range from 0 to 2047. The following chapters describe two ways we create COBs from two other numbers. The first number identifies the node on the CAN bus that is the server for a variable, the other identifies the variable on the server.

Node channel scheme

With this scheme we construct the COB from a Node-ID (NID) and a Channel-ID (CID) and a direction flag according to the following table:

CID

d

NID

bit number within COB

10

9

8

7

6

5

4

3

2

1

0

integer range

0..12

0..1

1..63

The direction flag is defined like this:

Type of CAN object on the server

d

read (for incoming data)

1

write (for outgoing data)

0

Note that for CAL variables that require the usage of two COBs (like multiplexed variables) you use the same channel ID (CID) and both variants of the direction flag to construct the COBs.

Node subobject scheme

This scheme should only be used where it is impossible to use the node channel scheme (e.g. when some of the needed COBs for this scheme are already taken).

With this scheme we construct the COB from a Node-ID (NID) and a subobject-ID (SOB) according to the following table:

SOB

NID

bit number within COB

10

9

8

7

6

5

4

3

2

1

0

integer range

0..26

1..63

Note that for CAL variables that require the usage of two COBs (like multiplexed variables) you should use the same channel ID (CID) to construct the COBs.