> -----Original Message-----
> From: Nicklas Karlsson [mailto:nicklas.karlsso...@gmail.com]
> On Sun, 10 Mar 2019 09:45:02 -0700
> "John Dammeyer" <jo...@autoartisans.com> wrote:
> 
> > Not all devices allow changing the PDO Mapping entries.  Some of them
> first require setting the unit into a programming mode.  Then you write to
> those locations.  Then send a save command.  On power up the device fills
> them in itself.   You need to use SDOs to change those locations so you will
> get back an RDO that shows success or failure.
> > Others don't let you change them at all.
> 
> It will work as long as the mapping entries are possible to read. For
> meaningful names and it is also neccessary to read an eds file, otherwise
> there will be only numbers.

Well yes and no.
For example let's take a look at an object dictionary for a RPDO:  Here I read 
each of the RPDO3 OD locations of Node 0x1A.
###6###,19/03/10,10:55:34,r,0A,1402:00,05,(5)                           We have 
5 entries
###6###,19/03/10,10:55:36,r,0A,1402:01,0000041A,( 1050)         It responds to 
0x41A
###6###,19/03/10,10:55:39,r,0A,1402:02,FF,(255)                 Processed 
immediately
###6###,19/03/10,10:55:41,r,0A,1402:03,0000,(0)                 No inhibit time
###6###,19/03/10,10:55:44,r,0A,1402:04,06090011,(101253137)     Invalid read 
error
###6###,19/03/10,10:55:46,r,0A,1402:05,0000,(0)                 Event timer is 
not used
###6###,19/03/10,10:55:57,r,0A,1602:00,03,(3)                           The 
RPDO will have three values
###6###,19/03/10,10:56:08,r,0A,1602:01,60710010,( 1618018320)   The first two 
bytes go to 0x6071:00
###6###,19/03/10,10:56:11,r,0A,1602:02,60010008,( 1610678280)   The next byte 
goes to 0x6001:00
###6###,19/03/10,10:56:15,r,0A,1602:03,22720020,( 577896480)    The last 4 
bytes go to 0x2272:00

The user manual for this battery charger lists 0x6001 as the charger enable.
Location 0x6071 is a 16 bit signed scaled value of Charger Set Current.
Location 2272 is a 32 bit signed scaled value of Charger Set Voltage.

All of these locations are R/W and as long as the charger receives a heartbeat 
from the CANopen Master.  Rather than send three SDO messages with 
corresponding RDO replies  they are all packed into one PDO.

These values in the PDO configuration are normally set by the factory including 
the NodeID 0x1A.  A USB dongle is plugged into it to configure firmware 
upgrades, configuration and set the node ID.  An EDS file isn't required.  But 
is really interesting when captured by the right kind of tool such as one from 
port.de

; This EDS file was created by the CANopen Design Tool 2.2.47.0.
; port GmbH Halle/Saale Germany, http://www.port.de, mailto:serv...@port.de

This tool can query a CANopen device and create a complete map of what is what. 
 Of course you'd still have to know what is in 6071 and what the scaling would 
be and the OD doesn't tell you that.

Here's a command to the charger from my system master as reported in logging 
mode.
Tx141A773010100700000
Broken apart it's 
Tx1 41A 7 7301 01 00700000

Tx1 means 11 bit ID transmitted from Channel 1
41A is the 11 bit ID for node 0x1A
There are 7 bytes
The first data value is 0x0173 and from above that's a scaled current setting
The second data value is 0x01 which means the charger is enabled.
The third data value is 0x00007000 which is a scaled voltage setting.

This is all just done with a tool that reads from the CAN bus and formats the 
output knowing that the messages are CANopen.  Once you know how the stuff is 
organized any CANopen module is like an open book.

John Dammeyer
http://www.autoartisans.com




> 
> Nicklas Karlsson
> 
> 
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users



_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to