Process data object (PDO)

Process data objects (PDOs) are used in CANopen for broadcasting high-priority control and status information. A PDO consists of a single CAN frame and communicates up to 8 byte of pure application data. Device designers have to evaluate the amount of process data that the device needs to receive and transmit. Based on the result of this evaluation process, they have to provide the related amount of receive and transmit PDOs within the device.

PDO parameter sets

In case a device is supposed to support the 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).

Among others, the communication parameters indicate the CAN-Identifier that is used by this PDO, and the triggering event that prompts the transmission of the related PDO. The mapping parameters indicate which information of the local object dictionary is supposed to be transmitted and where the received information is to be stored.

The communication parameters for receive PDOs are arranged in the index range 1400h - 15FFh and for transmit PDOs in the range 1800h - 19FFh. The related mapping entries are managed in the index ranges 1600h -17FFh and 1A00h - 1BFFh.

PDO triggering events

The following triggering events for PDOs are defined:

Event or timer-driven: A device-internal event triggers the PDO transmission (e.g. when the temperature value exceeds a certain limit; event-timer elapses; etc.).

Remotely-requested: As PDOs consist of a single CAN data frame, they can be requested via remote transmission request (RTR).

Synchronous transmission (cyclic): The transmission of the PDO can be coupled with the reception of the SYNC message.

Synchronous transmission (acyclic): These PDOs are triggered by a defined device-specific event but transmitted with the reception of the next SYNC message.

PDO mapping

PDO mapping defines which application objects are transmitted within a PDO. It describes the sequence and length of the mapped application objects. The mapping of the application objects is described in the related CANopen object dictionary entries for each PDO. CANopen distinguishes between three types of PDO mapping:

Static PDO mapping: In case static mapping is supported for a PDO, the content of the PDO is strictly predefined by the device manufacturer and cannot be changed via the CANopen interface.

Variable PDO mapping: Variable PDO mapping describes that the mapping entries of a PDO can be changed during NMT pre-operational state.

Dynamic PDO mapping: A device supports dynamic mapping if the PDO mapping entries in the CANopen object dictionary can be changed during NMT operational state as well.

PDO mapping procedures

In contrast to a strictly predefined mapping, device designers have the option of offering to change the mapping of the PDOs. In CANopen such a flexibly adjustable PDO mapping capability is called variable or dynamic PDO mapping. In case variable or dynamic mapping is supported, the mapping entries of the PDO can only be changed by using the defined mapping procedure:

  1. Set PDO invalid by switching Bit 31 in the related COB-ID entry.
  2. Set PDO mapping invalid by writing 00h to sub-index 00h of the related mapping entries.
  3. Adjust the desired PDO mapping.
  4. Set sub-index 00h of the related mapping index to number of mapped objects.
  5. Switch PDO valid by means of Bit 31 in the related COB-ID entry.