Craig,
Yeah, well... time will tell. The road is paved with protocols and ideas that never got out of the way of the traffic. Some of these where indeed better ideas. There were lots of "better" Modbus type protocols but yet Modbus remains. Yaskawa had Mechatrolink that they are now abandoning. Then there was the BetaMax vs. VHS battle. Technically, BetaMax was better but yet VHS endured. At this point, it does look like EtherCat is the "survivor" of these type of technologies. But will the rest of the world move to it? It is hard to say. I know people that want to move to something like EtherCat and then I know others that say "No way! Why? We already move motors with a proven way. Why is it needed?" It does offer a better way of handling a distributed system. But does every system need to be a distributed system?
One of the things that EtherCat suffers from is that it gives a set of standards but fails to define how those very standards should be implemented. For example (and it is a loose example), they may define that an EtherCat slave servo motor drive should have a velocity register. But the EtherCat specification doesn't specify what the velocity is. Is it counts per second squared? Or just counts per second? Or is it mm/s? Or some dreamed up unit that the manufacturer came up with? So all of the EtherCat hardware manufactures seem to do it all a bit differently. They all seem to WANT to be on the EtherCat bandwagon, but they all want to do it their own way. All of these manufacturers want you to buy EVERYTHING from them. The controller, the servo drive, and the motor. So the tendency to make something "special" is undeniable. Until they just can't anymore.
At this point, all of the EtherCat controllers either only support a few servo drive manufacturers or their systems need to be flexible enough to "define" what they are talking to. Even though the basic technology (EtherCat) is the same! This makes configuring an EtherCat system a lot more difficult than it really needs to be. And in no way is it to the point where you can just hook anything EtherCat from manufacturer X to anything else EtherCat from manufacturer Y and have it all work. So, in my opinion, the jury is still out because it just hasn't matured enough. Others will disagree.
Windows does NOT have what it takes to ever be a real-time system. It will never be "real-time enough" to get the job done. It has a hard time even calculating what a millisecond of time is. Forget microsecond and nanoseconds. All of the systems that use Windows for real-time are not really using Windows at all but are rather using another operating system hidden behind the scenes. It is very much the case where two machines running, one real-time and the other Windows, on the same hardware. There are multiple ways to do this, but the common idea is that Windows doesn't do the real-time processing, ever. It just looks like it does.
Steve