Transmitting and Receiving PDOs 

This topic describes how the transmit and receive PDO messages are added and configured

 

To export PDOs into a PDF or Excel file, press SHIFT + ALT + S.

To search PDOs, press CTRL + F.

 

Adding, Editing and Deleting PDOs

 

To add a PDO message,  

  1. Select the CAN channel from the tabs

  2. Then select icon from the Transmit PDOs section or icon from the Receive PDOs section for manually added receive PDO

  1. Then add the variables that should be transmitted.

 

To delete a PDO message,

  1. Select the PDO message

  2. Then select icon from the Transmit PDOs section or icon from the Receive PDOs section

 

To change the variable's location on the PDO message, drag-and-drop the variable to the new location.

 

MultiTool Creator provides two ways of adding variables to a PDO message:

 

  1. adding variables on the Object Dictionary tab and then adding them to the PDO message

  2. adding variables directly on the PDO tab (automated definition to the OD)

 

The following chapters describe these two ways in more detail.

 

 

 

Adding Variables Defined on the Object Dictionary Tab

An object dictionary variable can be seen on the PDO tab's list when the index properties have Variable Type RAM and PDO Mapping selected. To add an existing variable to a PDO message:

 

  1. Open the device's PDO tab and select the correct CAN channel

  2. Add a PDO

  3. Drag-and-drop the variable from the variable list to the PDO message (see the image below)

 

 

 

Adding Variables Directly on the PDO Tab

In addition to the Object Dictionary tab, variables can be created directly to a PDO message on the PDO tab. These variables are automatically added to the Object Dictionary as RAM parameters.

 

Giving a variable name and data type  on the PDO tab creates a new variable into the Object Dictionary. The OD index depends on the defined data type. MultiTool Creator reserves the indexes from 5FFFh to 5FB0h for PDO Variables.

 

PDO Variables have the following properties:

 

To add a PDO Variable,

  1. Open the device's PDO tab and select the correct CAN channel

  2. Add a PDO

  3. Select an empty byte, start typing a variable name and press ENTER

 

 

  1. If there is no existing variable, a dialog is opened (see the image below). A description of the variable can be added. Select the Data Type and click Create New Variable

 

 

  1. The created PDO Variable is automatically added to the Object Dictionary

 

 

PDO Message Properties

PDO Properties are always configured in the device where the PDO message was created:

  • Selecting Received By device(s) for Transmit PDOs automatically generates them to the receivers' Receive PDOs list

  • Selecting Transmitter device for Receive PDOs automatically generates them to the transmitters' Transmit PDOs list

 

Automatically generated PDOs are shown with lighter font.

 

Select an automatic generated PDO to show its properties. 

 

Selecting the transmitters name in the generated RPDO properties, navigates to the transmitter's PDO.

 

 

 

 

The following table describes the configurable fields of each PDO.

Fields with (*) are hidden by default. Click Advanced.. to show them in PDO Properties section.

 

Property

Description

Name

PDO name

COB-ID

COB-ID (Communication Object ID) is an unique identifier for PDO message that also determines the priority of the message. It can be edited on the PDO Message Properties or directly on the Transmit/Receive PDOs table.

 

Is Manual*

When the Is Manual is not selected: the COB-ID is automatically generated according to the CANopen predefined connection set using the Application Node-ID and the Node-ID Offset for PDOs given on the CAN tab. Predefined connection set defines a pattern for message identifiers. For example, the transmit PDO COB-ID pattern is:

  • 180 + node-ID (1. Transmit PDO)

  • 280 + node-ID (2. Transmit PDO)

  • 380 + node-ID (3. Transmit PDO)

  • 480 + node-ID (4. Transmit PDO)

  • 180 + node-ID + Offset (5. Transmit PDO)

  • etc.

When the Is Manual is selected: the COB-ID can be set manually to the COB-ID field

 

Is Extended*

 

When the Is Extended is selected: 29 bit (extended) COB-IDs are used

 

When the Is Extended is not selected: 11 bit (standard) COB-IDs are used

 

If the COB-ID exceeds 7FFh, Is Extended is automatically selected.

 

DLC

Data Length Code, the length of the data field in bytes.

 

Transmission Type*

Transmission Type can be Sync, Manual and Async.

 

Sync: The PDO is transferred synchronously and cyclically. The PDO is sent/received after the Sync Count amount of SYNC messages has been received

 

Manual: Asynchronous transmission. Manufacturer specific functionality, sending the PDO can be triggered from application. Sending is triggered by setting a CANopen PDO Boolean variable CAN1_CANopenDevice_TPDOS[x].i_TriggerSend to TRUE (x = the PDO number).

 

Async: Asynchronous transmission. The PDO is sent according to the Event Time and Inhibit Time

 

Transmitter settings*

CANopen slave unit RPDO messages are added as TPDOs of another selected unit. Settings under Transmitter settings are used in the TPDO of the transmitter

Transmitter settings -> Transmission Type*

Transmission Type can be FromRPDOSync, Manual and Async.

 

If FromRPDO is selected, the transmitter uses the same transmission type and sync count that is selected for the RPDO.  

 

For more information about the other settings, see Transmission Type

 

Transmitter settings ->

Sync Count*

Sync Count defines the amount of SYNC messages that is required before sending/receiving the PDO message.

Values between 1...240 (dec) allowed.

 

If From RPDO is selected in the Transmitter settings -> Transmission Type, the transmitter uses the same sync count that is selected for the RPDO.

 

Transmitter settings -> Event time*

Event Time defines the time that elapses between two consecutively transmitted messages.

 

When the Event Time is set to 0 ms, the PDO is sent when the variable value changes.

 

Transmitter settings ->  Inhibit time*

Inhibit time defines the minimum time that has to elapse between two consecutively transmitted messages of a PDO service to avoid blocking the bus with messages.

 

The message is sent only as often as the Inhibit Time defines, even if the variable values are changing more often.

 

Sync Count*

Sync Count defines the amount of SYNC messages that is required before sending/receiving the PDO message.

Values between 1...240 (dec) allowed.

 

Event Time*

Event Time defines the time that elapses between two consecutively transmitted messages.

When the Event Time is set to 0 ms, the PDO is sent when the variable value changes.

 

Inhibit Time*

Inhibit time defines the minimum time that has to elapse between two consecutively transmitted messages of a PDO service to avoid blocking the bus with messages.

The message is sent only as often as the Inhibit Time defines, even if the variable values are changing more often.

 

Receive Timeout*

Receive Timeout defines the timeout for the receiver (0 = not in use). If the RPDO is not received within the given time period, the timeout flag in the receiver device is enabled and RPDO content is reset to zero.

 

For more information, see Epec Programming and Libraries Manual (available in Epec Extranet), section Libraries > CANopen > POUs > PDO > CANopenPDO (FB).

 

Enabled*

Enabled field is only configurable when

  • configuring slave PDOs that are EDS imported

and

  • the slave has a master device that uses NetworkManagement library version

    • 1.2.5 or newer (CODESYS 2.3)

    • 3.2.4.8 or newer (CODESYS 3.5)

 

Enabled defines the PDO to be disabled or enabled in the master device’s code template. If unchecked, the PDO will not be sent to the bus (in case of TPDO) or it will not be received by the receiver device (in case of RPDO).

 

RTR Enabled*

RTR Enabled field is visible only when configuring slave PDOs that are EDS imported. The field is editable when the slave has a master device with a library version with the feature enabled (NetworkManager.lib version 1.2.5 or newer, NetworkManager.library version 3.2.4.8 or newer).

RTR Enabled defines whether the PDO can be requested using RTR message (remote transmission request).

Communication parameters read only*

Communication parameters read only field is visible only when configuring slave PDOs that are EDS imported.

If Communication parameters read only is selected, the PDO communication parameters (COB-ID, transmission type, event time, inhibit time, Sync count) cannot be changed.

Mappings read only*

Mappings read only field is visible only when configuring slave PDOs that are EDS imported.  

This field is automatically selected and cannot be unselected if Communication parameters read only is selected.

If Mappings read only is selected, the PDO mappings cannot be changed.  

Write Configuration*

Write Configuration field is visible only when configuring slave PDOs that are EDS imported. This field is disabled if Communication parameters read only is selected.

 

Write Configuration defines if the PDO configuration is added to the master device’s code template.

 

 

 

Receiving PDOs

Received By

When configuring a transmit PDO, the Received By setting can be used to define the devices that receive the PDO. The Received By list shows all the devices in the same network.

Selecting the devices from the Received By list adds

 

For example,

 

 

 

 

 

 

Receive PDOs List

 

The Receive PDOs section on the PDO tab lists all the PDOs and SRDOs that are transmitted on the same network. The following table describes the Receive PDO properties:

 

Property

Description

Is Received

In Is Received column it is possible to select/unselect the receive PDO messages. Selecting Is Received adds the PDO variables to the OD with the prefix DeviceName_ and to the receiving device's Receive PDOs list. Select a unit name to open its settings.

 

Transmitter

The device sending the PDO.

Unknown transmitter means that the PDO is manually added.

Selecting Transmitter  adds the PDO variables to the OD with the prefix DeviceName_ and adds the corresponding TPDO to the transmitter device's Transmit PDOs list.

 

 

 

Variable Properties

The Variable Properties show the variable definition: Name, Data Type and Bits selection. Editing the Variable Properties is only allowed for PDO Variables (created directly on the PDO tab), not for the variables that are created on the Object Dictionary tab.

 

Property

Description

Name

Name of the OD variable.

 

DataType

The Data Type is one of CODESYS' variable types:

 

Data Type

Lower limit

Upper limit

Memory space

SINT

-128 

127 

8 Bit 

INT

-32768 

32767 

16 Bit 

DINT

-2147483648 

2147483647 

32 Bit 

BYTE

0

255

8 Bit 

WORD

0

65535 

16 Bit

DWORD

0

4294967295 

32 Bit

USINT

0

255

8 Bit

UDINT

0

4294967295 

32 Bit

UINT

0

65535 

16 Bit

REAL

1.175494351e-38 

3.402823466e+38 

32 Bit

 

A STRING type variable are initialized as STRING(79), 79 characters long variables. STRING type variables cannot be mapped into PDO.

A BOOL type variable can have values TRUE or FALSE, 8 bits of memory space will be reserved. BOOL type variables cannot be mapped into PDO.

 

Bits

When Bits is selected, the bit variables are generated to CODESYS code according to selected Data Type. The variable names for the bits can be edited here too.

 

 

 

MultiTool Creator does not restrict the use of access types but CANopen standard does. According to the standard the OD variables that can be mapped to TPDO can have only access types RO, CONST and RWR. RDPO supports only types WO and RWW. RWR and RWW are used for objects that can be read and written via SDO.

 

 

 

Epec Oy reserves all rights for improvements without prior notice.

 

Source file 7_9_4_TPDO.htm

Last updated 21-Feb-2025