The Copley Xenus Plus controller I'm working with has two vendor pre-defined PDOs (for Rx and Tx) which map the most common elements used in motor control. Those PDOs contain what we need, at least to start with, so I tried assigning them to their associated sync managers using ecrt_slave_config_pdo_assign_add. It failed.

Wireshark and dmesg showed what happened. For whatever reason, ethercat master requested the PDO mappings and then apparently initiated the process to change or reassign them. The actual failure occurs when EM tries to set the number of mappings in the PDO to 0, because the register is read only.

Question 1: Why does EM need to know the mappings to assign a PDO to a sync manager?

Question 2: What did EM think it was going to remap the vendor assigned entries with? Nothing had been provided for that.

Unless I made a mistake, I can only assume EM doesn't provide a mechanism to assign fixed entry PDOs to sync managers. The PDO assignments in the documentation and examples which use static arrays and the wrapper method ecrt_slave_config_pdos works, so I'm not stuck, but I thought I'd report the problem I ran into.

Keith Rogers

_______________________________________________
etherlab-users mailing list
[email protected]
http://lists.etherlab.org/mailman/listinfo/etherlab-users

Reply via email to