NI’s benchmark code determines the CPU idle time. This code is attached to this white paper. For multi-core targets, CPU0 is measured, while other CPU cores are reserved. A test fails if the data is missing or a loop that finishes late is not available for the test. The fastest loop rate test ends under this condition and is determined as the scan period of the previous iteration for the current iteration.
Install the software in the following order for the EtherCAT master benchmark testing. Visit ni.com/downloads for more information about purchasing and installing each product and verifying the version compatibility.
- NI LabVIEW 2014 SP1
- NI LabVIEW Real-Time Module 2014 SP1
- NI-RIO 14.5
- NI-Industrial Communications for EtherCAT 14.5
This article provides the test results for the following hardware
To complete the test, connect the following additional hardware:
- NI 9144 x 4 (NI EtherCAT Slave)
- NI 9474 x 1 (Digital Output Module)
- NI 9423 x 1 (Digital Input Module)
- NI 9215 x 1 (Analog Input Module)
- NI 9263 x 1 (Analog Output Module)
- NI 9214 x 23 (Thermocouple Input Module)
The Figure 2 shows how NI calibrates the hardware for the tests.
Figure 2: The EtherCAT Test Configuration
NI performed three separate cases:
- Low payload – This test utilizes the NI 9474, NI 9423, NI 9215, and NI 9263 for a total of 9 bytes of data.
- Middle payload – This test utilizes the NI 9474, NI 9423, NI 9215, NI 9263, and eight NI 9214s for a total of 553 bytes of data.
- High payload – This test utilizes all the hardware shown in Figure 2 for a total of 1573 bytes.
For all analog modules, set the value precision to 0.02, value range to 20, and value base to 10. The real-time test passes if the inputs match the outputs two cycles in the future for 90 seconds. NI chose fixed test scan periods at 500 microseconds, 1,000 microseconds, and 10,000 microseconds. To search for the fastest scan period, NI steps through scan period increments of 50 microseconds.
You can modify the value precision, value range, value base, and scan periods to customize tests.
The first set of results is related to the fastest scan period that can be achieved by a particular controller given the three data payloads (low, middle, and high). Figure 3 and Figure 4 show the performance and CPU idle time for each scan period.
Figure 3: EtherCAT Master Performance for Each Controller in Different Scan Periods in Microseconds
In Figure 3, a shorter bar shows that the controller performs faster. The figure indicates that when the payload increases, scan periods become longer. High performance controllers such as the cRIO-9082 and PXIe-8840 perform better than value controllers, such as the cRIO-9068.
Figure 4: EtherCAT Master Performance for Each Controller Using Different CPU Idle Time
Figure 4 indicates which controller can better handle the data in the given the scan period. CPU becomes less idle if the bar is shorter. Note that NI is only testing NI-Industrial Communications for EtherCAT on the RT processor. If you had any other application running on the controller it would also require processor time, which can affect achievable speeds.
The following tables show the CPU Idle Time and standard deviation for various test points, specifically at 500 microseconds, 1000 microseconds, and 10000 microseconds. These tests were also performed at 9 bytes, 553 bytes and 1573 bytes.
Table 1: The EtherCAT Master Performance of the cRIO-9024
Table 2: The EtherCAT Master Performance of the cRIO-9068
Table 3: The EtherCAT Master Performance of the cRIO-9030
Table 4: The EtherCAT Master Performance of the cRIO-9082
Table 5: The EtherCAT Master Performance of the NI PXIe-8840