Process data object (PDO)
Process data objects (PDOs) are used in CANopen for broadcasting high-priority control and status information. A PDO in CANopen CC consists of a single CAN CC 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 parameter 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 from 1400h to 15FFh and for transmit PDOs in the range from 1800h to 19FFh. The related mapping entries are managed in the index ranges 1600h to 17FFh and 1A00h to 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) in CANopen CC.
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 pre-defined 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 the 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 the NMT operational state as well.
PDO mapping procedures
In contrast to a strictly pre-defined 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:
- Set PDO invalid by switching Bit 31 in the related COB-ID entry.
- Set PDO mapping invalid by writing 00h to sub-index 00h of the related mapping entries.
- Adjust the desired PDO mapping.
- Set sub-index 00h of the related mapping index to number of mapped objects.
- Switch PDO valid by means of Bit 31 in the related COB-ID entry.