On Mon, May 03, 2010 at 06:44:48PM +0200, Fabian Herb wrote: > I have a little problem with a slave generating dynamic PDOs. I get warnings > like this: > > EtherCAT WARNING: Slave 5 does not support assigning PDOs! > EtherCAT WARNING: Currently assigned PDOs: (none). PDOs to assign: 0x1A85 > 0x1A00 > EtherCAT WARNING: Slave 5 does not support assigning PDOs! > EtherCAT WARNING: Currently assigned PDOs: (none). PDOs to assign: 0x1600
This means, that the master read out the PDO assignment and there are no PDOs assigned. But the slave tells the master via the SII (check 'ethercat slave -v'), that the PDO assignment can't be changed. This is bad. ;-) Could it be, that the slave *supports* changing the PDO assignment? > And the whole process data for this slave is all zeroes. > > However when I look at SDOs 0x1c12 and 0x1c13, in which PDO assignment is > configured, they contain the correct PDO indices. This is strange. Please try to switch the slave on while the master is loaded and check 'ethercat pdos'. Then unload the master, load it again and check 'ethercat pdos' again. > I suppose the EtherLab master reads the PDO assignment before it gets > generated by the slave. Is this likely to be the cause for the process data > to > be zero? Or do I have to look somewhere else? All-zero process data may be perfectly valid. You can monitor the validity via ecrt_domain_state() (or command-line: 'ethercat domain'). > I have pasted a full debug output here: > http://pastebin.de/pastebin.php?dl=6058 A few comments to your log file: - Why do you call ecrt_master_slave_config() for the same configuration hundereds of times? - When using ecrt_slave_config_pdo_*_add() you should first call ecrt_slave_config_pdo_*_clear(), to be sure, that no objects are mapped/assigned before. -- Best regards, Florian Pose http://etherlab.org _______________________________________________ etherlab-users mailing list [email protected] http://lists.etherlab.org/mailman/listinfo/etherlab-users
