RE: Setting PDO parameters in CANopen

"John Dammeyer" <[email protected]> Thu, 14 Jul 2016 21:46:01 -0700
Newsgroups gmane.comp.hardware.bus.can
Message-ID <[email protected]>
The specific product in this case is a Step/Servo Motor that we use in both Velocity and Torque mode.  

The default PDOs send status and velocity or Status and Position.  

We need Velocity, Motor Current and several status OD entries.  

This motor requires the system to be in PRE-OP for configuring PDOs.   Then the PDO has to be disabled.  Then the number of objects set to 0.  Next, if we map 4 OD entries into one PDO we can fill the mapping entries, after that set the last entry # and then enable the PDO.   Finally back to OP Mode and we get the new PDO on whatever period has been programmed.
 
If we want to keep this between power/reset cycles we have to write “SAVE” to 0x1010:00

Even if a module doesn’t need PRE-OP, doesn’t need the PDO disabled and doesn’t need the number of entries set to 0, normally none of those operations would cause issues if it were done in that order.

Since I know very little about the CANopen tools out there I was wondering if there was something out there that would do this.

On my system all host PC commands to the CANopen  master through the USB port are in the format @@@_@@@ where a 6 means an SDO operation.

As it is now I’ve written out a detailed set of instructions for the installation guys to perform these operations using the interface application which is written in Delphi XE7.  For example:  
@@@6@@@W1.30,1A01,1,63000310 

We’re Writing 32 bit unsigned (1), to Node 0x30, OD index 0x1A01, SubIndex  0x01, the value 0x63000310 which is OD index 0x6300, Subindex 0x03 and is a 16 bit entry.

They don’t have to type all the characters. It's a windows application.   They just fill in fields in a menu and click on the WRITE or READ button.  The program generates the actual string of characters.
The 0x580+NodeID reply is echoed in the text window.

I was trying to avoid having to write a parser for EDS entries like this which is the status register of the motor from the EDS file:
[1A01sub1]
ParameterName=PDO Mapping Entry 1
ObjectType=0x7
DataType=0x0007
AccessType=ro
DefaultValue=0x60410010
PDOMapping=0
LowLimit=0x60410010
HighLimit=0x60410010


Hope that all makes sense.   This isn’t really as much a CAN question as a High Level Protocol CANopen question.  The Vector Tool has a nice tree structure for the OD but making sense of it and being able to generate CAN messages to actually change the OD is the challenge.  Maybe the tool doesn’t actually exist.

Thanks
John Dammeyer



--
Archives and useful links: http://groups.yahoo.com/group/CANbus
Subscribe and unsubscribe at www.vector.com/canlist/
Report any problems to <[email protected]>