According to CiA 301, there is something called TPDO Mapping
and TPDO Communication
.
TPDO communication is used for describing how the message is going to be sent for example in every 100ms or for every 10th sync
message.
TPDO mapping is used to describe what data the software is going to pick from the object dictionary
to create the message that are going to be sent out.
PDO
is a producer & consumer
So my question is: If PDO is a producer and consumer, why use TPDO channel when you are going to send?
Because when you send a PDO message, you are sending to the receive channel.
Normally, a producer sends to the consumer. That means TX -> RX. In that case, I only need to send to eg 0x200 + Node ID
if I want to send to PDO RX channel 1 or 0x280 + Node ID
if I want to send to PDO RX channel 2.
But when should RX send to TX? Will that happen too in CANopen? Because PDO is a transmit to receive service, not transmit to receive and receive to transmit. Right?
0x200 + Node ID = 0x202
. If the consumer want to reply with a PDO1 message, it will send out TPDO COB ID =0x180 + Node ID = 0x182
because Node ID = 2. Is that correct? If yes: What type of request can be sended with PDO? I thought that PDO was only producer and consumer, and not server and client or master and slave. \$\endgroup\$