Compare Device Data with an ESI File Using SDO

When configuring E-CAT SubDevices using an ESI file, the devices may return errors for Service Data Objects (SDOs) defined in the file. Ensuring consistency between the hardware data and the ESI file is crucial. If the hardware does not align with the ESI definitions, proper configuration is not possible, and the retrieved values may be incorrect.

For devices that support the SDO Info feature, you can use the following E-CAT API functions to verify the consistency between the hardware and the ESI data:

  • RtecatCoeReadSdoODList: Use this function to read the object dictionary. This function returns a list of object indexes. Once you have the desired index, you can retrieve detailed information using RtecatCoeReadSdoObjectDescription.
  • RtecatCoeReadSdoObjectDescription: Use this function to retrieve detailed information about an object. Before calling this function, define an RTECAT_SDO_OBJECT_DESCRIPTION structure and set field Index with the object index obtained from RtecatCoeReadSdoODList. This function fills in the remaining fields such as DataType, MaxSubIndex, and ObjectCode. Please note that field DataType contains a numeric value that varies between hardware. You must refer to the device's ESI file to interpret this number. For example, in the Kollmorgen AKD drive, a DataType value of 0 corresponds to the first entry under the DataTypes tag in the ESI file, typically a 32-bit DINT. A value of 1 corresponds to the second entry, a 16-bit INT.
  • RtecatCoeReadSdoEntryDescription: Use this function to retrieve the individual entries within an object. Before calling this function, define an RTECAT_SDO_ENTRY_DESCRIPTION structure by populating the Index, SubIndex, and ValueInfo fields with the object index, subindex, and data selection bitmask, respectively. The resulting data will be returned in field Data. Please refer to the ESI file or your hardware's user guide to interpret the returned values.