EtherCAT Master Software on Windows
EtherCAT and Windows
Today, EtherCAT has become one of the most popular real-time Ethernet solutions in the world. The EtherCAT Technology Group (ETG) is responsible for keeping the EtherCAT technology open for all potential users. The ETG is the fieldbus organization with the largest number of members in the world. The list of members can be found on its homepage.
Running an EtherCAT Master Stack on Windows only requires a standard Ethernet network interface. EC-Master for Windows uses either an onboard (built into the motherboard) Ethernet controller, or an inexpensive external standard network card. No special interface card is required.
Of course Windows is not a real-time operating system (RTOS) and that means that a deterministic, stable, fast EtherCAT cycle time cannot be guaranteed with an off-the-self-installation. While it is possible to achieve update rates >= 4 milliseconds, even these relatively slow cycle times are still not always going to be met. Due to this, the Distributed Clocks (DC) feature of EtherCAT typically cannot be used.
One option to significantly improve the behavior on Windows is to isolate a CPU for the real-time application and the EtherCAT master. This is managed with standard tools of Windows and the acontis RtaccWin technology. With the help of the RtaccWin technology, on the one hand a stable, precise clock is generated and on the other hand direct access of the EtherCAT master to the Ethernet controller is enabled.
An alternative solution, in which the rel-time part is not based on Windows, is to run Windows in conjunction with the hard real-time solution EC-Win. EC-Win utilizes acontis' real-time hypervisor technology to run Windows and an Real-time Operating System (RTOS) together which enables the possibility to create extremely fast, deterministic, hard real-time EtherCAT applications.
Below we will describe the different options acontis offers for an EtherCAT Master implementation within Windows.
The Network Driver Interface Specification (NDIS) is the specification for a network driver architecture that allows transport protocols like TCP/IP to communicate with an underlying physical network adapter. This specification was developed jointly by Microsoft and is used in Windows. Therefore, for sending and receiving EtherCAT frames in Windows, EC-Master includes an NDIS Link Layer (emllNdis.dll) to utilize the Ethernet driver that is part of the Windows networking stack.
- Off-the-shelf Windows used (Windows is used “as is”, no specific settings are applied)
- EC-Master and customer application in Windows User Space
- acontis Windows NDIS filter driver: Use any available Ethernet Interface for EtherCAT
- Minimum cycle time = 4 ms. Not reliable!
- Operating of slaves with Distributed Clocks (DC) not possible!
- Easy and quick installation
- Standard Windows 10/11 Pro and Enterprise
On PCs with Windows IoT Enterprise, the acontis RtaccWin technology enables the stable, real-time capable operation of the EtherCAT master and the application with a guaranteed cycle time of 1 ms. First, a CPU is reserved exclusively for the real-time application using the RtaccConfig tool. The remaining CPUs are available for standard Windows applications.
The RtaccTimer.sys Windows system driver supplies the precise, adjustable clock for the entire application including the EtherCAT master. In order to ensure deterministic behavior, it is also necessary to replace the standard Windows network driver with an acontis real-time Ethernet driver.
The RtaccDevice.sys kernel driver grants direct access to the physical network controller from the Windows user mode. This allows EtherCAT frames to be sent and received without using the Windows network stack. The result is deterministic behavior, less jitter, significantly lower CPU utilization and no negative impact from traffic on other network interfaces.
The result is a lower CPU load, reduced jitter, and no detrimental impact introduced by other network traffic.
- EC-Master and customer application in Windows User Space
- Non real-time part and real-time part can run within a single application process
- Minimum reliable cycle time = 1 ms
- Hard real-time with Real-time Accelerator (RtaccWin) technology on Windows 10 IoT Enterprise using CPU isolation
- RtaccWin technology
- Real-time part of the application and master stack run on isolated CPU
- RtaccTimer driver required to support stable cycle time
- RtaccDevice driver module required to support deterministic EtherCAT frame exchange
For the best EtherCAT performance in Windows it is recommended to run an RTOS in conjunction with Windows. Acontis provides a real-time hypervisor for Windows that can run real-time Linux (RT-Linux) alongside Windows. When combined with EC-Master, we call this complete solution for EtherCAT in Windows: EC-Win.
With EC-Win, the EtherCAT Master stack and associated EtherCAT application runs within RT-Linux, enabling hard real-time performance with update rates up to 10 kHz (100 microseconds). Furthermore, acontis provides optimized real-time Ethernet drivers for Linux further improving the overall EtherCAT performance. And with the acontis real-time hypervisor, Windows and RT-Linux are safely separated, providing protection for the real-time Linux applications (including EtherCAT) from Windows system failures. Despite this separation, it is still possible to use the familiar Microsoft® Visual Studio® for the development and debugging environment, both for Windows applications and the real-time Linux applications.
- Hypervisor + Real-time Operating System (RT-Linux)
- RT-Linux controlled by acontis Hypervisor runs in parallel with Windows
- Run EC-Master and associated customer applications on RT-Linux in hard real-time performance
- Minimum reliable cycle time = 0.1 ms = 100 us
- Windows and Real-time part are isolated and fully separated
- Windows System Failure (Blue Screen of Death): Real-time part continues
- Communication layer between Windows and Real-time part required
Real-time Ethernet Drivers (Link Layers)
- Windows NDIS filter driver (emllNdis)
- Intel Pro/1000 (emllI8254x)
- Realtek Gigabit (emllRTL8169)
- Beckhoff CCAT (emllCCAT)