Sample: FoE data throughput
A sample of an FoE throughput determination using an EL6695 is shown below. The values should be regarded as an example of this layout and as coarse guiding values. The real achievable throughput in the respective application must be determined otherwise if necessary.
The TwinCAT program used for that is not part of this documentation; it is based on the specified FoE sample program.
The data throughput is defined as the ratio of data quantity to the time required (data quantity per unit of time). With the FoE access blocks already described, a given data quantity is written to or read from the EL6695. The EL6695 is designed to establish communication between two different TwinCAT systems. However, it is also possible with the terminal to establish a connection between the primary and secondary side within a TwinCAT system, for example if the connection of its secondary side via X1 originates from output X2 of the EK1100 coupler. There are then also two independent EtherCAT segments in a TwinCAT system (cf. Example configuration).
The time measurement takes place indirectly via the number of task cycles required for each completely executed reading access (i.e. the number of bytes written is the same as the number read) via the FB_EcFoeAccess function block (see Notes on the program example). If data are pending, the "DataBytesPending" PDO of the side of the terminal to be read is > 0 and marks the start of the read access. The end of the reading access is determined from the known written data quantity (with two independent systems the file size must be known).
With a task cycle time of 1 ms, the data throughput is simply calculated as follows:
{data quantity [bytes]} / {number of task cycles} = throughput in [kB/s]
Measurement sequence
- the test environment determines the number of task cycles required by the terminal for a reading access. A data set of a different size with different data packet sizes written to the terminal was repeatedly and completely read out again. The number of task cycles was thereby counted for each individual reading access.
- The FoE throughput of the test program without the intermediately connected EL6695 was also determined. This results in the "virtual" time requirement of the test program.
- the actual number of task cycles required by the terminal (and thus the data throughput) then results from the difference between the required "real" task cycles (with EL6695) and the virtual task cycles.
- The entire throughput test encompasses several thousand individual tests with different data quantities and data packet sizes.
Configuration in the sample:
- C6015 + EK1100 + EL6695 (primary side) + EL9011
- EK1100 + EL6695-0002 (secondary side)
Key data for the sample:
- Cycle time = 1 ms
- The test run encompassed all FoE and packet sizes. Since the throughput does not change significantly outside of defined key ranges, the following limits were chosen for the compressed graphic illustration in the following:
- Data quantity transmitted by FoE (FoE file size): from 1167 to 32767 bytes in 50 steps, with 632 bytes per step
- Data packets (i.e. packets into which the FoE file is divided): from 30 to 470 bytes in 40 steps, with 11 bytes per step
Result:
Data packet size (incremented in steps) = X-axis
Data quantity (incremented in steps) = Y-axis
Number of task cycles required = Z-axis; equivalent to Z(X, Y)
However, this also includes the system-related virtual values on account of the sequential data access (see above). If these are also recorded accordingly and subtracted from the individual values of the Z-axis for each X/Y test point, the result is a quasi linear diagram curve that is no longer dependent on the data packet size:
In the linear approximation this FoE example results in a throughput of about 171 kB/s.