Welcome to Ars-Informatica  

 
 
 
 
 
 

If you want to build a ship don't herd people together to collect wood and don't assign them tasks and work, but rather teach them to long for the endless immensity of the sea. (Antoine-Marie-Roger de Saint-Exupéry)

Complex Data Types


Complex Data Types are types that contain one or more of the standard data types grouped together, allowing sets of data to be constructed. This is analogous to structures in the C programming language.

There are four pre-defined complex data types defined in the CANopen specification.

Data TypeDescriptionStored in OD Index
PDO_COMMUNICATION_PARAMETERRecord to hold the communication parameters used for a PDO0020h
PDO_MAPPINGRecord to hold the mapping parameters used for a PDO0021h
SDO_PARAMETERRecord to hold the communiucation parameters used for a SDO0022h
IDENTITYRecord to hold identity information, such as vendor ID and product ID0023h

Among these data types an important role is taken by PDO_COMMUNICATION_PARAMETER. Process data objects (PDOs) are used in CANopen for broadcasting high-priority control and status information. In case a device is supposed to support transmission/reception of a PDO, the corresponding parameter sets for this PDO have to be provided in the object dictionary of that device. A single PDO requires a set of communication parameters (PDO communication parameter record) and a set of mapping parameters (PDO mapping record). The communication parameter is made by these fields:

IndexSubindexNameType
0020h00hNumber of highest SubindexUNSIGNED8
0020h01hCOB IDUNSIGNED32
0020h02hTransmission TypeUNSIGNED8
0020h03hInhibit TimeUNSIGNED16
0020h04hReservedUNSIGNED8
0020h05hEvent TimerUNSIGNED16