OpenEtherCATsociety / SOEM

Simple Open Source EtherCAT Master
Other
1.35k stars 684 forks source link

IO mapped registers cannot be accessed through SDO #753

Open ProgMatFiz opened 1 year ago

ProgMatFiz commented 1 year ago

Hello,

I am trying to move a Maxon motor through CoE (CANopen over EtherCAT) using the SOEM library. When the PDOs are set for moving the motor, (the registers for the PDO transmission) sending and receiving data via SDO is not working for some reason for the same registers. So for example if I want to send the target velocity in the Porfile Velocity Mode it is not working if I send it with an SDO if the register is already PDO mapped. Why is this? I haven't encountered this type of problem with CoC (CANopen over CAN), so I am guessing it has to do something with EtherCAT or the SOEM library.

Do you have any insight to what could be causing this?

Cheers!

nakarlsson commented 1 year ago

If the SDOs are mapped as PDOs. Use the process data to move the motor using ecx_send_processdata / ecx_receive_processdata. The SDO write would be a single write that would immediately be overwritten by the PDO write using the process data.