To answer the constant question whether Array or Record is 8 or 9, this article provides an explanation of CANopen object codes.
All data of a CANopen device, which are accessible via CANopen, are stored in objects in the object dictionary. The objects have different object codes based on the their internal structure.
An object with the object code ‘variable’ is a single variable like e.g. a variable in the programming language C. It has a data type and various attributes.
An object with the object code ‘array’ is a structured data set like e.g. an array in the programming language C. All elements of this array (sub-index 0 not included) have the same data type.
An object with the object code ‘record’ is a structured data set like e.g. a struct in the programming language C. All elements of this record (sub-index 0 not included) may have different data type.
CANopen Object Code definitions
- 7 – Variable
- 8 – Array
- 9 – Record
A few additional values are listed in the CANopen specification CiA 301.
The object code definitions are called object type in EDS files (CiA 306) and XDD files (CiA 1311).