When we start our system for many times(about 1000 times),There would be an error from EtherCAT master: 1)The master is in IDLE state(using command tool: ethercat master); 2) All datagram are marked lost frames(using ethercat master, Rx frames = 0) 3)The master can not find any slaves(using commmand tool:ethercat sl, no slave info display) 4)If I restart master(sudo /etc/init.d/ethercat restart), the master can find its slaves again. 5)When I set master debug to 1(sudo ethercat debug 1) and dmesg. The following debug info will display: .......... [53970.871062] EtherCAT DEBUG 0: TIMED OUT datagram f667c3e0, index 80 waited 8000 us. [53970.879062] EtherCAT DEBUG 0: TIMED OUT datagram f667c3e0, index 81 waited 8000 us. [53970.887062] EtherCAT DEBUG 0: TIMED OUT datagram f667c3e0, index 82 waited 8000 us. ........... 6) I also use wireshark to capture ethercat datagram, and find all send datagram have been received successfully(wkc is not zero) I find this debug info printed in master.c file, function is:void ecrt_master_receive(ec_master_t * master) Generally master has set a time out value for received datagram, using parameter EC_IO_TIMEOUT(in file globals.h), which is set 500us. I want to know is it a bug in master? how should we resolve this problem? can we just simply reset the parameter EC_IO_TIMEOUT to a large value like 1ms or 10ms or more?
----- 原始邮件 ----- 发件人:[email protected] 收件人:[email protected] 主题:etherlab-users Digest, Vol 72, Issue 6 日期:2013年05月06日 18点00分
_______________________________________________ etherlab-users mailing list [email protected] http://lists.etherlab.org/mailman/listinfo/etherlab-users
