OK here is a solution to your problem without changing EtherCAT put all your input slaves into one domain and all your output domains in another. Then
while (true) { ecrt_domain_queue(input_domain); ecrt_master_send(); sleep(1ms); ecrt_master_receive(); ecrt_domain_process(input_domain); ecrt_domain_process(output_domain); calculate(); ecrt_domain_queue(output_domain); ecrt_master_send(); sleep(39ms); } > Finally, I would end the conversation if your reason for arguing is just > because "you don't really want to change the code", either because "you > don't get paid for it" or "you don't want to get back to old code" or "you > are too lazy" and we'd try to modify the drivers ourselves. None of the above, except that time is a continuous deficiency on our side. The issue is that cyclic tasks by nature are timer driven tasks, not interrupt driven. These two models mix as good as oil and water. The master does not react on network card interrupts. If the input_domain has not come back by the time ecrt_master_receive() is called, the master *will* puke and there is no way from stopping him from doing so. That is by definition so, not by policy. On the other hand, EtherCAT code is LGPL. You are free to modify the master in terms of the Licence. That means that you are not allowed to break the ethercat portion of the code in terms of the Beckhoff License (NOTE: NO new thread on this point), but if you wish to change the master's response to missing frames and ignore it if the master recons that the frame might not have had the chance to be back by the time master_receive() is called, then sleep a little longer or whatever, you can do it yourself. Mit freundlichem Gruß Richard Hacker -- ------------------------------------------------------------------------ Richard Hacker M.Sc. richard.hac...@igh-essen.com Tel.: +49 201 / 36014-16 Ingenieurgemeinschaft IgH Gesellschaft für Ingenieurleistungen mbH Heinz-Bäcker-Str. 34 D-45356 Essen Amtsgericht Essen HRB 11500 USt-Id.-Nr.: DE 174 626 722 Geschäftsführung: - Dr.-Ing. S. Rotthäuser, - Dr.-Ing. T. Finke, - Dr.-Ing. W. Hagemeister Tel.: +49 201 / 360-14-0 http://www.igh-essen.com ------------------------------------------------------------------------ _______________________________________________ etherlab-users mailing list etherlab-users@etherlab.org http://lists.etherlab.org/mailman/listinfo/etherlab-users