Beispiel FoE – Datendurchsatz

Im Folgenden ist ein Beispiel für eine FoE-Durchsatzermittlung durch eine EL6695 gegeben. Die Werte sind als exemplarisch für diesen Aufbau und als grobe Richtwerte zu verstehen. Der in der jeweiligen Applikation real erreichbare Durchsatz ist im Bedarfsfall anwenderseitig zu ermitteln.

Das dazu verwendete TwinCAT-Programm ist nicht Bestandteil dieser Dokumentation, es basiert auf dem angegebenen FoE-Beispielprogramm.

Der Datendurchsatz wird als Quotient von Datenmenge durch den dafür benötigten Zeitbedarf definiert (Datenmenge pro Zeit). Mit den bereits beschriebenen FoE-Zugriffsbausteinen wird eine gegebene Datenmenge in die EL6695 geschrieben bzw. von ihr gelesen. Die EL6695 ist dafür ausgelegt, Kommunikation zwischen zwei unterschiedliche TwinCAT‑Systeme herzustellen. Es ist mit der Klemme aber auch möglich, eine Verbindung der Primär- und Sekundärseite innerhalb eines TwinCAT‑Systems aufzubauen indem Beispielsweise die Verbindung ihrer Sekundärseite über X1 vom Ausgang X2 des Kopplers EK1100 ausgeht. Dann liegen ebenfalls zwei unabhängige EtherCAT‑Stränge in einem TwinCAT‑System vor (vgl. hierzu Beispiel - Konfiguration).

Die Zeitmessung erfolgte indirekt über die Anzahl der benötigten Taskzyklen für jeden komplett durchgeführten Lesezugriff (d.h. Anzahl geschriebener Bytes ist gleich Anzahl gelesener Bytes) über den FB_EcFoeAccess Baustein (siehe hierzu Erläuterungen zum Programmbeispiel). Das PDO „DataBytesPending“ der zu lesenden Seite der Klemme ist >0 falls Daten anstehen und kennzeichnet den Beginn des Lesezugriffs. Das Ende des Lesezugriffs ist aus der bekannten geschriebenen Datenmenge ermittelt worden (bei zwei unabhängigen Systemen muss die Dateigröße bekannt sein).

Bei 1 ms Taskzykluszeit ergibt sich für die Berechnung des Datendurchsatzes einfach:
{Datenmenge [Bytes]} / {Anzahl Taskzyklen} = Durchsatz in [kB/s]

Ablauf der Messung

Konfiguration im Beispiel:

Eckdaten des Beispiels:

Ergebnis:

Datenpaketgröße (Schrittweise inkrementiert) = X-Achse

Datenmenge (Schrittweise inkrementiert) = Y-Achse

Anzahl benötigter Taskzyklen = Z-Achse; entspricht Z(X, Y)

Beispiel FoE – Datendurchsatz 1:
FoE-Durchsatztest mit EL6695: Anzahl der Taktzyklen in Abhängigkeit von Datenpaketgröße und Datenmenge

Hierin enthalten sind jedoch auch die systembedingten virtuellen Werte aufgrund des sequenziellen Datenzugriffs (s.o.). Werden diese entsprechend ebenfalls aufgezeichnet und für jeden Testpunkt X/Y von den einzelnen Werten der Z-Achse subtrahiert, so ergibt sich ein quasi linearer Diagrammverlauf, welcher keine Abhängigkeit von der Datenpaketgröße mehr hat:

Beispiel FoE – Datendurchsatz 2:
Zum exemplarischen FoE-Datendurchsatz der EL6695

In der linearen Näherung ergibt dieses FoE-Beispiel einen Durchsatz von rund 171 kB/s.