Hey guys, I am currently performing some realtime tests with a PowerPC 1.5 GHz. Loop is running at 10 kHz (100us). Here is my EtherCAT topology:
PowerPC -> EK1100 -> EL4732 -> EL4732 -> EL4732 The logical process image comprises 12 Byte only (4 Byte per analog out slave). Problem now is, that I get error messages from the domain approx. every second (I am checking the domain state with every cycle, so every 100us): EtherCAT WARNING: 1 datagram UNMATCHED! EtherCAT: Domain 0: 2 working counter changes - now 3/3. Domain1: WC 0. Domain1: State 0. Domain1: WC 3. Domain1: State 2. I also sniffed the Ethernet packets with an ET2200 but could not find any errors. A packet with LWR datagram leaves every 100us (with WC 0) and about 2us later it returns after being proccessed by all slaves (with WC 3). At 5 kHz and 1 kHz, the error comes up with the same periodicity (and always 1 unmatched datagram with 2 working counter changes). At 100 Hz, everything is fine. Something similar happens on a 3 GHz P4, but much later, 5 kHz is almost stable and at 10 kHz the same error starts showing up, however with more than 1 unmatched datagrams and more than 2 working counter changes per error (I am wondering how this is possible if I check the domain every cycle...).. What makes me wonder is that if I put some load on the P4 system, it also seems to fail to adhere to the 5 kHz loop with the above mentioned error. What is going wrong here? I am not sure whether it is really the PC that is too slow, as I can see the packets are sent and must have been received with all slaves having done their job (judging from the WC). The application runs in user-space without any realtime patches applied (kernel 2.6.26.8). I have done some realtime tests before by sending an Ethernet frame every 100us via raw sockets, also from a user-space application. Jitter was 1-2us. Does anybody have any comments regarding that? Greets, Daniel _______________________________________________ etherlab-dev mailing list [email protected] http://lists.etherlab.org/mailman/listinfo/etherlab-dev
