CAN Interface reading CanOpen Index with datatype Domain

An existing machine uses a X20CS1070 can interface for the communication to a device.
The interface uses the Flat mode.
Now I should add reading a index of the datatype “Domain” which contains 180 integer values. When I read the index, do I get back the 380 byte data in the same way like reading an index with a single value?

With CAN you always get 8 bytes data maximum and CANopen cannot change that. It’s just organizing the device data and control. Since all values in the screenshot are RO I imagine that there is some other ID where you can write and set the index for the data point. Once you did that, you can read the point for that index in 0x3220. You then cycle through all 180 data points.

Hello,

i do not know what ELBR is.
But i would assume that:

  • SubIndex 0 available subindexes → USINT

  • SubIndex 1 provides the 1 Point for 0° → UINT LSB first

  • Subindex 2 provides the 2 Point for 2° → UINT LSB first

  • SubIndex 3 provides the 3 Point for 4° → UINT LSB first

  • Subindex 180 provides the 180 Point for 258° → UINT LSB first

could this be the case?

Greetings
Michael Bertsch

No the ELBR means “electronic brake” and the CAN device is a CAN gateway for 16 electronic brakes. That means: Index 0x3220 is the main index for all 16 brakes and the subindex 1-16 are the subindexes for each individual brake. And each brake has the 360 bytes of data.

The thing is I have no experience how the datatype “domain” is handled. This kind of datatype is often used for an object where you can write the firmware of a device (therefore is a B&R example available (LibAsCANopen5).

But my X20CS1070 interface has only a 8 Byte RxData IO Interface (like Stephan told before). I used there the mode “Flat” - maybe I have to use another mode for this application.

1 Like

Perhaps you could use cyclic streaming as function model and use CMS Domain transfer from the CAN_LIB library.

1 Like

Even if CAN can only transmit 8 bytes, CANopen also supports the transmission of data types > 8 bytes.

I would be optimistic that CANopenSDOReadData also supports this ‘domain’ type.

But then you have to switch on the CyclicStream model on the X20CS1070 and the CANopen- Master support.