Discussion:
CANopen PDO mapping - slave does not support RTR
Francesco Meroni
2012-05-15 06:28:05 UTC
Permalink
The context:
CANopen master
Motor with integrated Drive CiA 402 compatible
The CANopen master, during the PDO mapping, try to disable the TPDO1 writing
the object index 1800h subindex 01.
601 8 23 00 18 01 81 01 00 80 (bit 30, RTR = 0 --> RTR
allowed on this PDO)
581 8 80 00 18 01 30 00 09 06
Since the, in the answer you find the related abort code ( 06090030h ) and
the write command has no effect.
At this point (I think) the master should resend the same SDO with the RTR
bit = 1 --> no RTR allowed on this PDO,
but nothing happens and in this situation is not possible to manage the PDO
mapping for TPDOx.
Could you help me to understand where is the problem?
The slave behavior seems to be OK.
What should be the correct behavior of master?
How can we set the master to resend the SDO with the RTR bit =1?
Thank you for your support
Best Regards
Francesco Meroni
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

--
Archives and useful links: http://groups.yahoo.com/group/CANbus
Subscribe and unsubscribe at www.vector.com/canlist/
Report any problems to <canlist-***@vector-informatik.de>
Torsten Gedenk
2012-05-15 07:29:07 UTC
Permalink
The behavior of the slave is okay.
The CANopen specification CiA 301 says
"... CANopen devices supporting the CAN base frame type only or do not
support RTRs, an attempt to set bit 29 (frame) to 1 or bit 30 (RTR) to 0
is responded with the SDO abort transfer service (abort code: 0609 0030h)."

So the problems seems to be in the master. Your master does not know that the
slave does not support RTRs. I do not know your master, so I do not know how
to configure it to send the request with the right RTR bit. You better contact
the vendor of the master.
From my point of view, the master should either know the RTR limitation from
the EDS file "DefaultValue=0x40000xxx" or read the COB-ID object before writing
to it. Your idea to write the value again with a set RTR bit works as well,
but feels more like trial-and-error.

Best Regards
Torsten Gedenk

--
www.emtas.de
--
Archives and useful links: http://groups.yahoo.com/group/CANbus
Subscribe and unsubscribe at www.vector.com/canlist/
Report any problems to <canlist-***@vector-informatik.de>

Loading...