Leistungsvergleich für das EtherCAT-Slave-Chassis NI 9144

Inhalt

Das Slave-Chassis NI 9144 für EtherCAT stellt synchronisierte, dezentrale I/O über ein deterministisches Ethernet-Netzwerk zur Verfügung. Dieses modulare Chassis mit acht Steckplätzen für NI-Module der C-Serie wird mit der grafischen Entwicklungsumgebung NI LabVIEW programmiert. Das Slave-Chassis kann mit echtzeitfähigen Programmable Automation Controllers (PACs) von NI, die über zwei Ethernet-Anschlüsse verfügen, für folgende Plattformen verwendet werden: CompactRIO, PXI und industrielle Controller von NI. Das NI 9144 besitzt zudem einen integrierten FPGA, der mit dem LabVIEW FPGA Module programmiert werden kann, um intelligente Funktionen für benutzerdefiniertes Timing und prozessbegleitende Verarbeitung zu erstellen. In diesem Artikel werden die technischen Details und Leistungsmerkmale des NI 9144 unter Einsatz der NI Scan Engine in LabVIEW Real-Time näher beleuchtet.


Abb. 1: EtherCAT-I/O-System mit PACs von NI und dem Slave-Chassis NI 9144

EtherCAT-Leistungsvergleiche

Das Kommunikationsnetzwerk zwischen dem Master-Controller und dem NI 9144 basiert auf dem offenen, echtzeitfähigen Ethernet-Protokoll EtherCAT. Möchte man einen EtherCAT-Leistungsvergleich anstellen, so muss man vier Komponenten bzw. Teilbereiche in Betracht ziehen: implementierte Logik, Treiber, EtherCAT-Netzwerk und I/O.


Abb. 2: Komponenten der EtherCAT-Master- und Slave-Leistungsbewertung

Beim EtherCAT-Master-Controller wird die Leistung vom Programmcode des Anwenders sowie vom EtherCAT-Treiber, welcher Daten zwischen dem Code und dem EtherCAT-Netzwerk überträgt, beeinflusst. Der EtherCAT-Master-Controller ist in erster Linie für die Begrenzung der Systemzykluszeit verantwortlich, da seine Verarbeitungsleistung großen Einfluss auf die Verarbeitungsgeschwindigkeit der Daten in der Anwenderlogik und im Treiber hat. Je leistungsstärker der Controller ist, desto mehr I/O-Daten können in einem kürzeren Zeitraum verarbeitet werden.

Die Leistung des Slave-Geräts andererseits wird davon beeinflusst, wie lange ein Datenpaket im EtherCAT-Netzwerk unterwegs ist und wie schnell die Slave-I/Os aktualisiert werden. Die Paketgeschwindigkeit im EtherCAT-Netzwerk wird von vielen Faktoren beeinflusst, u. a. von der Anzahl der Slave-Geräteknoten, der Länge des Ethernet-Kabels und in erster Linie von der Menge der zu übertragenden I/O-Daten. Da es sich bei EtherCAT um ein deterministisches Protokoll handelt, wird das Netzwerk-Timing präzise kalkuliert, so dass der Master genaue Angaben erhält, wann die Slave-I/Os aktualisiert und Daten übertragen werden. Somit ist also die Geschwindigkeit des EtherCAT-Netzwerks die schnellste Komponente der gesamten Systemzykluszeit.

Wird der Slave NI 9144 mit PACs von NI mit EtherCAT-Master-Unterstützung eingesetzt, werden bei der Leistungsbewertung die folgenden Bestandteile berücksichtigt:


Abb. 3: Bestandteile der NI-Master- und Slave-Leistungsbewertung

Bei der implementierten Logik handelt es sich um den vom Anwender erstellten LabVIEW-Code. Der Treiber bezieht sich auf die NI Scan Engine in LabVIEW und die Treibersoftware NI-Industrial Communications for EtherCAT. Das EtherCAT-Netzwerk stellt die Kommunikation über das Ethernet-Kabel dar und die I/O beziehen sich auf die I/O-Module der C-Serie. All diese Hard- und Softwarebestandteile beeinflussen die gesamte Zykluszeit des EtherCAT-Systems.

Bewertung der Systemzykluszeit

Bei einem einzelnen Scan oder einer Schleifeniteration, die einen Scan ausführt, ist es wichtig, dass die Übertragung des EtherCAT-Pakets zwischen dem Master-Controller und dem Slave-Chassis NI 9144 synchronisiert ist. Während des I/O-Scans sendet der Master ein Paket mit neuen Ausgangsdaten und Anweisungen an die Slaves, die das Paket anschließend mit neuen Eingangswerten an den Master zurücksenden. Mithilfe der aktualisierten Daten des EtherCAT-Pakets beginnt der Master die Programmabarbeitung, während das Chassis NI 9144 mit der I/O-Aktualisierung beginnt. Die Programmabarbeitung ist der Zeitraum, den der Master für die Verarbeitung der Daten und Ausführung des LabVIEW-Programms benötigt. Die Update-Rate der Slaves wiederum ist der Zeitraum, den der Slave für DMA-Übertragungen, Datenverarbeitung und Aktualisierung der I/O-Werte benötigt. Aufgrund dessen wird die Mindestzykluszeit entweder von der Slave-Update-Rate oder der Programmabarbeitungszeit beeinflusst, je nachdem, welcher der beiden Vorgänge länger dauert.


Abb. 4: Timing des Scan-Zyklus

Die Dauer der Programmabarbeitung erhöht sich mit der Anzahl der Slaves und I/O im Netzwerk, da der Master-Controller eine größere Menge an Daten verarbeiten muss. Die Dauer der Slave-Aktualisierung verlängert sich hingegen nicht, da alle I/O zur gleichen Zeit aktualisiert werden. Deshalb gilt, je höher die Anzahl der Slaves in einem Netzwerk, desto höher die Wahrscheinlichkeit, dass es bei der Programmabarbeitung zu einem Engpass kommt. Umfasst eine Anwendung eine hohe Anzahl an I/O-Kanälen, sollte deshalb ein Hochleistungs-Controller wie z. B. PXI als Master verwendet werden.


Abb. 5: CompactRIO- und PXI-Systeme mit dem EtherCAT-Slave-Chassis NI 9144

Leistungsbewertung des Master-Controllers

Die Standardeinstellung für die LabVIEW-Programmierung des Master-Controllers ist die Verwendung der NI Scan Engine, die Bestandteil des LabVIEW Real-Time Module ist und Einzelpunkt-I/O-Werte mit einer vom Anwender spezifizierten Geschwindigkeit in den Speicher überträgt. In dieser Leistungsbewertung wird die Zeit, die für die Ausführung des Anwendercodes notwendig ist, nicht berechnet. Aufgrund dessen ist die verbleibende Komponente für die Leistungsbewertung somit die Verarbeitungsgeschwindigkeit der Treibersoftware. Diese setzt sich aus der Zeit, die der Controller für den Datentransfer zwischen dem NI-Scan-Engine-Speicher und der I/O-Variablen benötigt, zusammen. Bei I/O-Variablen handelt es sich um einfache Drag-and-drop-Variablen für die Datenübertragung vom Speicherabbild in die Programmierumgebung LabVIEW. Jede Instanz eines I/O-Variablenknotens in ein LabVIEW-Programm braucht eine gewisse Zeit. Die durchschnittliche Ausführungszeit eines I/O-Variablenknotens bleibt in der Regel konstant, unabhängig davon, ob sich die Anzahl der Knoten in der Programmierumgebung erhöht. In der folgenden Grafik werden die Ausführungszeiten für verschiedene Master-Controller von NI dargestellt. Basierend auf diesen Daten beträgt die durchschnittliche Ausführungszeit pro I/O-Variablenknoten ca. 8 µs für das integrierte System NI cRIO-9074, 3,5 µs für den Embedded-Echtzeit-Controller NI cRIO-9022 und 0,3 µs für den Embedded-Dual-Core-Controller NI PXI-8106.


Abb. 6: Durchschnittliche Ausführungszeit pro I/O-Variablenknoten

Hinweis: Es handelt sich hierbei nicht um eine vollständige Liste aller mit EtherCAT kompatiblen NI-Controller. Weitere Informationen entnehmen Sie der Spezifikationstabelle für EtherCAT. Als Faustregel gilt, je leistungsstärker der Prozessor, desto schneller werden die I/O-Variablen gelesen bzw. geschrieben.

Leistungsbewertung des Slave-Geräts

Eine häufig gestellte Frage zur EtherCAT-Kommunikation richtet sich nach der maximalen Anzahl der NI-9144-Slave-Chassis, die vom Master-Controller aus in Reihe geschaltet werden können. Laut EtherCAT-Protokoll liegt die theoretisch mögliche maximale Anzahl an Slave-Geräten in einem Netzwerk bei 65.535. Allerdings verlangsamt eine solch große Anzahl die Scan-Rate wesentlich. Wird eine solch hohe Geräteanzahl angestrebt, sollten deshalb mehrere Master-Controller eingesetzt werden. In der Praxis hat jedoch die Anzahl der I/O-Kanäle einen größeren Einfluss auf die Systemzykluszeit des Master-Controllers als die Anzahl der Slave-Geräte. Wie in Abb. 4 zu sehen, erhöht sich der Zeitraum der Programmabarbeitung, je mehr Daten über das EtherCAT-Netzwerk übertragen werden, jedoch nicht die Aktualisierungszeit der Slaves. Aufgrund dessen bleibt die Systemschleifenrate trotz des Overheads für jedes zusätzliche Slave-Gerät gleich, unabhängig davon, ob 300 I/O-Kanäle auf zwei oder zwanzig NI-9144-Chassis aufgeteilt werden.

Zusammengefasste Systemzykluszeit

In Tabelle 1 sind die Leistungsdaten für den Master-Controller und das NI 9144 dargestellt, die zusammen die Systemzykluszeit bzw. Systemschleifenrate bilden.

Mindestzykluszeit = Treiber + EtherCAT-Netzwerk + I/O-Updates

Es ist zu beachten, dass die Leistungsbewertungen nicht berücksichtigen, wie viel Zeit für die Ausführung des Anwendercodes benötigt wird. Weitere Informationen entnehmen Sie den nachfolgenden Links.


Tabelle 1: Systemzykluszeit für die Master-Controller cRIO-9074, cRIO-9022 und PXI-8106

Am Ende dieses Whitepapers befindet sich die Tabelle system_loop_rate_chart.xls mit den Leistungsdaten der zwei hier überprüften Controller mit vier verschiedenen I/O-Modulen. Die Tabelle ermöglicht es, die ungefähre Schleifenrate Ihrer Konfiguration zu berechnen, wenn in Ihrem EtherCAT-Netzwerk nur NI-Hard- und -Software zum Einsatz kommt. Für die Berechnung müssen Sie nur die Anzahl der Analog- und Digital-I/O-Kanäle in Ihrem modularen NI-9144-Chassis sowie die ungefähre Ausführungszeit des LabVIEW-Codes eingeben. Da diese Formel auf einem spezifischen Hardwareaufbau beruht, können sich die Ergebnisse je nach I/O-Modul unterscheiden. Auch die Zeit, die durch I/O-Module im lokalen Chassis oder der Backplane des Master-Controllers hinzugefügt wird, kommt nicht zum Tragen.

Verwandte Links
Leistungsbewertung für die NI Scan Engine
Evaluierung der Einzelpunkterfassungsleistung bei Echtzeithardware von National Instruments

Leistungsbewertung für NI 9144

Das Slave-Chassis NI 9144 kann auch mit EtherCAT-Master-Controllern anderer Anbieter eingesetzt werden. Allerdings kann das Chassis in diesem Fall nicht mit LabVIEW programmiert werden. Für diese Fälle steht eine Leistungsbewertung nur für das NI 9144 und das EtherCAT-Netzwerk zur Verfügung, ohne dass ein Master-Controller mit in die Betrachtung einbezogen wird. Es sollte weiterhin beachtet werden, dass es sich hierbei um die Mindestzykluszeit handelt. Um die tatsächliche Systemzykluszeit zu berechnen, muss sowohl die Programmabarbeitungs- als auch die Ausführungszeit des jeweils eingesetzten Master-Controllers ermittelt und verglichen werden. Die Formel besteht aus zwei Teilen:

Mindestzykluszeit des Slaves = Paketübertragungszeit + Update-Zeit des Slaves

Paketübertragungszeit

Sobald das EtherCAT-Paket den Master verlässt, beginnt die Paketübertragungszeit, die sich aus der Summe der Frame-Übertragung, der Kommunikationsverzögerung und dem auftretenden Jitter zusammensetzt.

Paketübertragungszeit = Frame-Übertragungszeit + Kommunikationsverzögerung + Jitter

Die Frame-Übertragungsrate beträgt 80 ns für jedes Byte an EtherCAT-Daten sowie 5 µs für jeden EtherCAT-Frame, der Daten enthält. (Die Gesamtmenge an EtherCAT-Daten hängt von der Anzahl und Art der I/O-Kanäle des NI 9144 ab.) Die Kommunikationsverzögerung beträgt 600 ns für jedes angeschlossene NI-9144-Chassis und 5 ns für jeden Meter des Ethernet-Kabels.

Update-Zeit des Slaves

Nachdem das EtherCAT-Paket ohne Unterbrechung an alle Slaves und zurück an den Master übertragen wurde, lesen alle Slaves gleichzeitig die Eingabedaten und schreiben Ausgabedaten. Dabei bestimmt der Slave mit der langsamsten Update-Rate die Mindestzykluszeit des gesamten Systems.

Update-Zeit des Slaves = DMA-Transferzeit + Langsamstes Modul-Timing

Um die Update-Rate des Slaves zu ermitteln, müssen die einzelnen Modulkonfigurationen aller NI-9144-Chassis in Betracht gezogen werden. Abhängig von den Modulen im Chassis kann die DMA-Transferrate für die Ein- und Ausgabedaten berechnet werden. Des Weiteren lässt sich das Modul mit dem schlechtesten Initialisierungs-, Wandlungs- und Refraktions-Timing ermitteln. Durch das Addieren dieser Werte kann dann die Update-Rate des langsamsten Slaves bestimmt werden.

Hinweis: Mit der Markteinführung von LabVIEW 2009 lassen sich die Module im NI 9144 hardwareseitig mit LabVIEW FPGA programmieren. Somit profitieren Anwender nun von Modulen mit schnelleren Update-Raten als der Systemschleifenrate. Während der Erfassung der I/O bei maximaler Modulgeschwindigkeit kann der implementierte FPGA-Code eingesetzt werden, um benutzerdefinierte Signalmanipulation und Inline-Verarbeitung durchzuführen und anschließend die Ergebnisse an den Master-Controller zu übertragen.

Gesamte Zykluszeit der Slaves

Da eine große Anzahl an unterschiedlichen Modulkonfigurationen zusammen mit dem NI 9144 eingesetzt werden kann, befindet sich am Ende dieses Dokuments die Übersicht ni_9144_only_benchmarks.xls, in der sich alle bisher genannten Formeln für die Berechnung der genauen Mindestzykluszeit der Slaves befinden. Sobald Sie die genauen Werte eingegeben haben, müssen Sie nur noch die Leistungswerte des Drittanbieter-Master-Controllers hinzufügen, um die Systemzykluszeit für Ihre Anwendung zu berechnen. Um eine noch höhere Geschwindigkeit zu erreichen, können Sie die Funktionen des LabVIEW FPGA Module nutzen, um benutzerdefinierte intelligente Funktionen auf das NI 9144 herunterzuladen.

Verwandte Links
Erste Schritte mit EtherCAT für NI Programmable Automation Controller
Wie funktioniert das Erweiterungschassis NI 9144?