Der CompactRIO-Controller basiert auf der LabVIEW RIO Architecture (rekonfigurierbare I/O) und umfasst modernste Technologien, etwa aus der Familie der leistungsstarken Intel Atom E3800 Systems-on-Chip (SoC) mit 64 bit sowie Kintex-7-FPGAs von Xilinx. Ein Intel Atom™ SoC sorgt für unschlagbare Leistung und Funktionalität, da es einen Grafik- und einen Multicore-Prozessor enthält. Der FPGA Kintex-7 325T verfügt über fast dreimal so viele komplexe Logikblöcke und 13-mal so viele DSP-Slices wie die FPGAs in den übrigen CompactRIO-Controllern. FPGA und Prozessor kommunizieren über den PCI-Express-Bus, wodurch sich der Durchsatz stark erhöht und Zugriff auf 16 DMA-Kanäle besteht.
Die Software innerhalb der LabVIEW-RIO-Architektur der neuen CompactRIO-Controller ist flexibel genug, um Benutzeroberfläche und Steuerung auf demselben Zielgerät und einem Betriebssystem zu konsolidieren. Dies ist nur aufgrund der besonderen Eigenschaften des Intel Atom SoC mit mehreren Kernen und des Betriebssystems NI Linux Real-Time möglich. Dieses Betriebssystem zeigt dem Entwickler die Priorisierung von Aufgaben, sodass der Steuerung eine höhere Priorität als der Benutzeroberfläche eingeräumt werden kann.
Die Kombination dieser Technologien erhöht den Systemdurchsatz erheblich und reduziert die Latenz bei Regelanwendungen. Der CompactRIO-Controller stattet Designer von Embedded-Systemen mit flexibler, leistungsstarker Hardware aus und senkt gleichzeitig die Komplexität und Kosten eines Systems.
Zur Demonstration der Fähigkeiten des CompactRIO-Controllers hat das R&D-Team von National Instruments eine Reihe von Steuer-, Regel- und Überwachungsanwendungen speziell für Benchmarktests zusammengestellt. Diese Tests gelten gleichermaßen für alle Dual-Core- und Quad-Core-Varianten des CompactRIO-Controllers (NI cRIO-903x.)
Benchmarktests wurden entwickelt, um gängige Steuer-, Regel- und Überwachungsanwendungen sowie damit zusammenhängende wichtige Aufgaben darzustellen. Folgende Tabelle zeigt einen Überblick über die in der Studie durchgeführten Tests.
Tab. 1: Auf CompactRIO-Controllern implementierte Tests zur Messung von Anwendungsleistung und -durchsatz
Die Vergleiche wurden mit folgenden Hardwarezielgeräten durchgeführt:
Diese Studie konzentriert sich auf die CompactRIO-Controller und deren Vergleich mit bestehenden Controllern derselben Familie, etwa dem cRIO-9025 als Dual-Core- und dem cRIO-9082 als Quad-Core-Version. Aber auch repräsentative Hardwareziele anderer CompactRIO-Serien wie etwa der cRIO-9068 werden als Referenz einbezogen, um ein umfassendes Bild der Möglichkeiten von CompactRIO-Systemen zu bieten.
Anhand der CPU-Auslastung wird häufig die relative Leistung dieser CompactRIO-Controller verglichen. Bei jedem Test wird die CPU-Auslastung in einem stabilen Zustand gemessen, während die Anzahl der Kanäle für das Daten-Streaming oder Regelschleifen variiert wird. Die Werte geben einen Anhaltspunkt zu den Ressourcen, die für zusätzlichen Programmcode, höhere Schleifenraten und weitere Streaming-Kanäle erforderlich sind.
Weitere Überlegungen:
Die Kombination von Technologien im neuen leistungsoptimierten CompactRIO-System sorgt für eine drastische Leistungsoptimierung bei komplexen realen Anwendungen. Für den Test eines Steuer- und Regelszenarios wurde das Beispielprojekt für Steuerung und Regelung in LabVIEW FPGA ausgewählt. Der Echtzeit-Controller des Beispielprojekts wurde um einen kubischen Spline-Algorithmus mit acht Kanälen zur Erzeugung von Trajektorien erweitert, um die CPU-Auslastung weiter auszureizen.
Abb. 1: Architekturdiagramm des Beispielprojekts für Steuerung und Regelung in LabVIEW FPGA mit achtkanaligem kubischen Spline-Algorithmus zur Erzeugung von Trajektorien
Die folgende Abbildung zeigt die CPU-Auslastung bei Ausführung der Regelschleife mit 1,5 kHz. Bei dieser Geschwindigkeit war der Prozessor des leistungsoptimierten Dual-Core-Controllers zu ca. 15 % ausgelastet. Dies ist eine erhebliche Verbesserung im Vergleich zum cRIO-9025, dessen CPU dabei schon zu 70 % ausgelastet war. Der leistungsoptimierte Quad-Core-Controller dagegen nutzte seinen Prozessor nur zu 5 % aus, was ungefähr der beobachteten Leistung beim Controller cRIO-9082 entspricht.
Abb. 2: Nötige Prozessorauslastung für eine Steuer- und Regelanwendung, die mit acht Kanälen einen kubischen Spline-Algorithmus zur Erzeugung von Trajektorien mit 1,5 kHz ausführt
Der Test wurde mit aktivierter Embedded-Benutzeroberfläche für den CompactRIO-Controller wiederholt. Allerdings wurden dabei keine erheblichen Veränderungen bei der CPU-Auslastung festgestellt, da dieser Test den HMI-Anteil des Beispielprojekts für Steuerung und Regelung in LabVIEW FPGA nicht beansprucht.
Eine gängige Aufgabe bei Überwachungsanwendungen ist die Übertragung von Daten von I/O-Kanälen auf die Echtzeitprozessoren zum Zweck der weiteren Verarbeitung, Protokollierung oder Darstellung. Für dieses Szenario wurde ein einfacher Test entwickelt und die CPU-Auslastung bei variierender Anzahl der Datenstreaming-Kanäle gemessen. Über jeden Kanal werden 16-Bit-Samples bei 100 kHz übertragen. Der Test umfasst weder Streaming auf Festplatte noch Online-Verarbeitung.
Abb. 3: Architekturdiagramm eines vereinfachten Datenstreamings im Rahmen einer Überwachungsanwendung
Die folgende Abbildung zeigt das Ergebnis für das Streaming von 100 Kanälen bei 100 kHz. In diesem Test müssen eventuelle Engpässe aufgrund der kleinen Unterschiede in den Hardwarearchitekturen berücksichtigt werden. Obwohl der cRIO-9068 und der CompactRIO-Controller z. B. über 16 DMA-Kanäle verfügen, die mit unterschiedlichen Bustechnologien implementiert sind, zeigen sie trotzdem bemerkenswerte theoretische maximale Bandbreiten: 320 MB/s für den Controller cRIO-9068 und 250 MB/s für den CompactRIO-Controller. Allerdings kann der CompactRIO-Controller eine höhere Anzahl von Streams bei niedrigerer CPU-Auslastung aufrechterhalten, da sein Prozessor die bessere Leistung aufweist.
Abb. 4: Nötige Prozessorauslastung für das Streaming von 100 Kanälen von 16-bit-Samples bei 100 kHz pro Kanal
Ähnlich wie beim Leistungstest für Steuer- und Regelanwendungen sind die Auswirkungen der aktivierten Embedded-Benutzeroberfläche auf dem CompactRIO-Controller irrelevant, da die HMI nicht beansprucht wird. Diese Auswirkungen der Embedded-UI-Komponente werden im Test 3 näher erläutert.
Die beste Möglichkeit, die Funktionen des leistungsoptimierten CompactRIO-Controllers voll auszuschöpfen, ist ein Test mit einer komplexen realen Anwendung. Größere Anwendungen kombinieren meist verschiedene Arten gängiger Überwachungs-, Steuer- und Regelaufgaben, darunter mehrere Verarbeitungsschleifen mit Steuerung in unterschiedlichen Geschwindigkeiten, Datenverarbeitung, Datenstreaming von I/O-Kanälen, Datenübertragung auf Festplatte und über ein Netzwerk an eine dezentrale HMI sowie die Durchführung nicht zeitkritischer Zustandsüberwachungsaufgaben.
Für den Test wurde eine komplexe Anwendung mit oben genannten Aufgaben implementiert. Die Anwendung umfasst Komponenten der LabVIEW-Architektur wie Echtzeit-FIFOs, zeitgesteuerte Schleifen und Netzwerk-Streams, sodass eine Koordination und Kommunikation zwischen den einzelnen Anwendungsteilen möglich ist. Darüber hinaus ist ein Task für die Darstellung von Daten auf einem Anzeigeelement des Frontpanels bei hoher Geschwindigkeit verantwortlich, damit die Embedded-Benutzeroberfläche des leistungsoptimierten CompactRIO-Controllers voll ausgelastet wird.
Abb. 5: Architekturdiagramm einer komplexen realen Steuer-, Regel- und Überwachungsanwendung
Mit dieser Anwendung konnte der cRIO-9025 eine maximale Regelschleifenrate von ca. 950 Hz erzielen. Dabei lag die CPU-Auslastung bei 91 %, während der leistungsoptimierte Dual-Core-Controller bei derselben Rate nur etwa 15 % der verfügbaren Prozessorressourcen beanspruchte. Dadurch verbleiben reichlich CPU-Ressourcen für zusätzliche Anwendungstasks oder zum Anheben der Schleifenrate auf deutlich über 2 kHz. Die Quad-Core-Version zeigte bei allen beobachteten Schleifenraten eine sehr ähnliche Leistung wie der cRIO-9082.
Abb. 6: Vergleich der CPU-Auslastung, die zum Ausführen einer komplexen Anwendung mit vielen gängigen Steuer-, Regel- und Überwachungstasks bei unterschiedlichen Regelschleifenraten erforderlich ist.
Der CompactRIO-Controller reduziert die Kosten und Komplexität eines Systems, indem er die lokale HMI mit Unterstützung der Embedded-Benutzeroberfläche implementiert. Dies ist aufgrund des neuesten Intel Atom Prozessors in diesem Controller möglich, der für Grafiksupport sorgt und eine leistungsstarke Grundlage schafft, um mit LabVIEW Logik und eine touchbasierte Benutzeroberfläche für das Steuer- und Regelsystem zu erstellen. Dafür machen die Entwicklungsumgebung LabVIEW und das Betriebssystem NI Linux Real-Time die Priorisierung für Anwender sichtbar, sodass Anwender dem Steuerungstask eine höhere Priorität zuweisen können als der HMI-Software, die in derselben Anwendung läuft.
Hierbei dienen die Ressourcen des Zielgeräts sowohl zum Steuern des Systems als auch zum Bereitstellen der Grafik der Benutzeroberfläche. Dadurch werden die Kosten für Systemhardware und -wartung gesenkt sowie die Komplexität der Softwareentwicklung reduziert. Allerdings werden im Vergleich mit anderen Displayoptionen mehr Rechenressourcen des Controllers beansprucht.
Um den Einfluss der Embedded-Benutzeroberfläche auf Prozessorressourcen zu messen, wurde Test 3 so modifiziert, dass die HMI kontinuierlich beansprucht wird, indem ihre Komponenten mit hohen Geschwindigkeiten aktualisiert werden. Folgende Abbildung zeigt die Auswirkungen der Funktion der Embedded-Bedienoberfläche mit einer sehr aktiven Benutzerschnittstelle, wie in Test 3 beobachtet.
Abb. 7: Die CPU-Auslastung erhöht sich konstant um ca. 3–10 %, wenn die Embedded-Benutzeroberfläche aktiviert ist und mit hohen Geschwindigkeiten aktualisiert wird.
Bei voller Belastung führt die Nutzung der Embedded-Bedienoberfläche beim leistungsoptimierten Dual-Core-Controller zu einer Erhöhung der CPU-Auslastung um ca. 10 % und beim leistungsoptimierten Quad-Core-Controller steigt sie um etwa 3 %. Ähnlich wie bei Test 1 und 2 sind die Auswirkungen der Nutzung der Embedded-Bedienoberfläche gleichbleibend, unabhängig davon, wie die Anzahl der übertragenen Kanäle verändert wird.
Zur Unterstützung der grafischen Fähigkeiten der Embedded-Benutzeroberfläche nutzt das Intel Atom SoC eine integrierte GPU und rüstet damit die CPU auf. Die GPU kommuniziert mit dem Prozessor über häufige Interrupt-Aufrufe an den Prozessor, die der Anwendung unter LabVIEW Real-Time etwas Verarbeitungszeit streitig machen. Doch aufgrund der hohen Leistung des Intel Atom Prozessors kann diese Erhöhung der variablen Verarbeitungszeit zur Aktualisierung der GPU im Fall der Anwendung aus Test 3 mit Schleifenraten unter 6 kHz aufrechterhalten werden. Um höhere Schleifenraten bei gleichzeitig aktivierter Embedded-Benutzeroberfläche zu erhalten, kann entweder die GPU deaktiviert oder der LabVIEW-Steuercode auf den integrierten FPGA ausgelagert werden (siehe Links unten).
Für Anwendungen, in denen diese Überlegungen zur Embedded-Benutzeroberfläche die Leistung des Systems beeinträchtigen könnten, gelten folgende Empfehlungen:
Embedded-Anwendungen finden immer mehr Einsatzfelder, darunter Motorsteuerung, Datenaufzeichnung, Bilderfassung und Mensch-Maschine-Schnittstellen (HMI). Der CompactRIO-Controller von NI eignet sich hervorragend für solche Anwendungen, da er Technologien und einzigartige Funktionen zur Beschleunigung der Entwicklungszeit und Reduzierung von Systemkosten und -komplexität in sich vereint.
Der CompactRIO-Controller bietet gegenüber anderen Controllern eine erhebliche Leistungssteigerung und erweitert die Vielfalt der potenziellen Zielgeräte, die mit Schlüsseltechnologien wie NI Linux Real-Time kompatibel sind. Außerdem umfasst der CompactRIO-Controller flexible, leistungsstarke Hardware- und Softwaretechnologien auf Basis der LabVIEW RIO Architecture und bedient eine Vielzahl unterschiedlichster Embedded-Anwendungen im Bereich Steuerung, Regelung und Überwachung.
Mit dieser Reihe von Benchmarktests wurde belegt, dass der CompactRIO-Controller eine vier- bis achtmal höhere Leistung bringt als andere CompactRIO-Controller, etwa der cRIO-9025. Darüber hinaus ist die Quad-Core-Version hinsichtlich Leistung der Reihe cRIO-908x sehr ähnlich.