Industrial Communications

cancel
Showing results for 
Search instead for 
Did you mean: 

CANopen over Ethercat (CoE) SDO read/write with 3rd party slaves

Hello,

 

I am using a cRIO 9023 with 3rd party slaves (copley accelnet) in CoE. So far I have been able to communicate with the slaves successfully using PDOs defined in the XML file. However, I have been unable to reliably read or write SDOs. Interestingly, a select few SDOs do work, specifically x1018 (Identity Object) and x6510 (Amplifier data). However, virtually every other SDO I have attempted to use does not work. I have tried the read SDO example in both blocking and non blocking mode. The typical behavior is for readSDO to time out and send error -2147138468 CoE operation failed because the CoE service has timed out.

 

I have tried operating in Pre-OP, Safe-OP, and OP modes, each time ensuring that the scan engine is set to configuration mode. I have also looked through EtherCAT Parameters in the Online Slave Device State menu, expecting to find a comprehensive list of the object dictionary. Surprisingly, there are no entries listed in this submenu, including the SDOs that do work.

 

Thanks,

Patrick 

0 Kudos
Message 1 of 5
(9,040 Views)

Hi Patrick, 

 

It sounds like those parameters don't exist. Discovering the slaves in the project should populate the parameter list, but I don't remember if slaves are required to send a list of CoE in the spec. 

 

If your XML file has multiple hardware revisions you also need to discover the slave instead of adding it as a new device. That would be my first step if you haven't already.

 

Otherwise post your xml file and I will see if anything else stands out. 

 

Jesse Dennis
Engineer
INTP
0 Kudos
Message 2 of 5
(9,027 Views)

Thanks for your help! I did discover the slaves as new devices, and I did a deploy all through the cRIO. For what it's worth, I do see all of the parameters that should exist in the object dictionary (see xml, attached)

0 Kudos
Message 3 of 5
(9,023 Views)

The xml looks ok, 

 

what does your labview code look like? The device doesn't support complete access. There are two SDO methods in labview, one complete access and one not. 

 

Jesse Dennis
Engineer
INTP
0 Kudos
Message 4 of 5
(8,997 Views)

I have used both of the Read SDO examples (blocking and non-blocking) as well as a modified version of the non-blocking. In either case, I am not using complete access. I've attached my modified version of the examples.

0 Kudos
Message 5 of 5
(8,973 Views)