NI Linux Real-Time unter der Lupe

Überblick

Das neue Betriebssystem NI Linux Real-Time wird vom NI LabVIEW Real-Time Module unterstützt. Linux Real-Time ist mit ausgewählter NI-Hardware verfügbar, darunter der Controller NI cRIO-9068, NI myRIO und die neuen, leistungsstarken CompactRIO-Controller. In diesem Artikel werden Ihnen einige neue Eigenschaften des Betriebssystems sowie Hilfethemen vorgestellt, damit Sie NI Linux Real-Time für Ihre Anwendung optimal nutzen können.

Inhaltsverzeichnis

  1. Unterstützung der Linux-Shell
  2. Dateitransfer und -pfade
  3. Programmatischer Systemzugriff
  4. Zugriff auf das Linux-Ökosystem
  5. Bessere Leistung in Echtzeit
  6. Erfüllen aller Anforderungen mit vertrauten Tools

Unterstützung der Linux-Shell

Das Betriebssystem NI Linux Real-Time bietet vollständige Unterstützung für die Linux-Shell, sodass komplexe administrative Aufgaben zur Verwaltung von Echtzeitsystemen einfacher ausgeführt werden können. Für den Zugriff auf die Shell ist ein Terminal-Client erforderlich. Falls Sie Windows 7 oder eine neuere Version verwenden, empfiehlt sich der häufig genutzte, kostenlose Client PuTTY.

Zusätzlich zu einem Terminal-Client müssen Anwender den Secure Shell Server (SSHD) auf der Echtzeithardware aktivieren, auf dem das Betriebssystem NI Linux Real-Time ausgeführt wird. Anwender können dabei den NI Measurement Automation Explorer (MAX) oder das Hilfsprogramm NI-Webkonfiguration und Überwachung (siehe Abbildungen 1 und 2) nutzen. Aus Sicherheitsgründen empfiehlt es sich unbedingt, das voreingestellte Kennwort auf dem Admin-Konto zu ändern. Das Kennwort lässt sich über das Programm „NI-Webkonfiguration und Überwachung“ ändern. Um sich in der Linux-Shell über SSH (Secure Shell) anzumelden, können Anwender den Admin-Nutzernamen mit dem Kennwort verwenden, das sie für den Zugriff auf das Stammverzeichnis konfiguriert haben. Das Kennwort ist leer, falls es nicht konfiguriert wurde. Zusätzliche Nutzer können über die „NI-Webkonfiguration und Überwachung“ erstellt werden. Diese Nutzer können sich ebenfalls über SSH anmelden, haben jedoch keinen Zugriff auf das Stammverzeichnis.

Abbildung 1: Der Secure Shell Server (SSHD) kann auf der Registerkarte „Systemeinstellungen“ für das Echtzeitsystem im Measurement and Automation Explorer aktiviert werden. Die Aktivierung ist erforderlich, wenn Anwender auf die Echtzeithardware zugreifen möchten, auf der NI Linux Real-Time ausgeführt wird.

 

Abbildung 2: Der Secure Shell Server (SSHD) kann ebenfalls über die „NI-Webkonfiguration und Überwachung“ für das Echtzeitsystem aktiviert werden. Die Aktivierung ist erforderlich, wenn Anwender auf die Echtzeithardware zugreifen möchten, auf der NI Linux Real-Time ausgeführt wird.

 

Nach oben

Dateitransfer und -pfade

Ab NI LabVIEW 2013 wird zwischen allen Echtzeitsystemen der WebDAV-Dateitransfer unterstützt. Bei WebDAV handelt es sich um ein Standardprotokoll, das auf HTTP aufbaut. Das Protokoll kommt in häufig genutzten Anwendungen wie Dropbox zum Einsatz und ermöglicht einen einfachen Schutz beim Übertragen von Dateien mit vertraulichen Informationen. WebDAV ist das Standardverfahren für die Dateiübertragung auf Echtzeitsystemen mit NI Linux Real-Time. Weitere Informationen hierzu erhalten Sie hier.

Anders als bei älteren Geräten, die auf VxWorks und Phar Lap beruhen, ist bei Echtzeitsystemen mit NI Linux Real-Time ein FTP-Server nicht standardmäßig installiert. Um die Unterstützung für FTP in Hinblick auf Abwärtskompatibilität zu gewährleisten, können Sie einen älteren, allerdings unsicheren FTP-Server über MAX installieren. Mehr über die FTP-Unterstützung bei NI Linux Real-Time erfahren Sie hier. Zielsysteme für NI Linux Real-Time unterstützen auch SFTP-Funktionalität über SSH, falls WebDAV für eine Anwendung ungeeignet ist.

Zusätzlich enthält NI Linux Real-Time im Dateipfad einige bedeutende Unterschiede im Vergleich zu bestehenden Echtzeitsystemen und Windows. Wie Sie Fehlern in den Dateipfaden bei der Migration von Programmcode oder der Verwaltung von Protokollen auf einem System vorbeugen, das das neue Linux-basierte Echtzeitbetriebssystem unterstützt, erfahren Sie hier.

 

Nach oben

Programmatischer Systemzugriff

Das LabVIEW Real-Time Module unterstützt nun das VI „Systembefehl ausführen“ auf Systemen mit NI Linux Real-Time. Das VI „Systembefehl ausführen“ ermöglicht auf Systemen mit NI Linux Real-Time Zugriff auf die Linux-Befehlszeile, sodass Anwender das Betriebssystem NI Linux Real-Time programmatisch verwalten und direkt von der LabVIEW-Real-Time-Anwendung aus mit anderen Programmen auf dem Zielsystem interagieren können.

Neben dem VI „Systembefehl ausführen“ wird ebenfalls der Knoten zum Aufruf externer Bibliotheken auf Zielsystemen mit NI Linux Real-Time unterstützt. Mit diesem Knoten können Anwender externen C/C++-Programmcode leichter in LabVIEW-Real-Time-Anwendungen integrieren und LabVIEW-Wrapper für alle C-APIs erstellen, die von anderen Programmen bereitgestellt werden, die auf dem System mit NI Linux Real-Time installiert sind und dort ausgeführt werden.

 

Screenshot.PNG 

Abbildung 3: Das VI „Systembefehl ausführen“ und der Knoten zum Aufruf externer Bibliotheken werden auf Systemen mit NI Linux Real-Time unterstützt. Von der LabVIEW-Real-Time-Anwendung aus können Anwender nahtlos mit dem Betriebssystem NI Linux Real-Time wie auch anderen Programmen interagieren.

 

Nach oben

Zugriff auf das Linux-Ökosystem

Zielsysteme mit NI Linux Real-Time können enorm von dem weitreichenden IP-Ökosystem für Linux profitieren. Mithilfe des Paketmanagers von NI Linux Real-Time, opkg, lassen sich Anwendungen aus dem Ökosystem installieren, verwalten und optimal einsetzen. Mehr über opkg erfahren Sie hier.

Zielsysteme mit NI Linux Real-Time ermöglichen nicht nur eine leichtere Integration von C/C++-Programmcode mithilfe des VIs „Systembefehl ausführen“ und des Knotens zum Aufrufen externer Funktionen, sondern ermöglichen auch das Verwenden von Code aus dem Linux-Ökosystem, das Wiederverwenden von internem Code sowie das Entwickeln, Verteilen und Debuggen von C/C++-Code mit einem Eclipse-basierten Werkzeug. Mehr über die C/C++-Entwicklungswerkzeuge für NI Linux Real-Time, Eclipse Edition erfahren Sie hier.

 

Nach oben

Bessere Leistung in Echtzeit

Das neue NI Linux Real-Time verwendet zur Verarbeitung von zeitkritischem Code einen Real-Time Scheduler, der denen auf aktuellen Echtzeitsystemen ähnlich ist, sowie einen Completely Fair Scheduler (CFS) zur Verarbeitung von nichtkritischem Code. Aktuelle Systeme mit dedizierten Echtzeitbetriebssystemen arbeiten ausschließlich mit einem Real-Time Scheduler zum Verarbeiten von zeitkritischen Tasks sowie von Systemtasks mit niedrigerer Priorität. Der CFS in NI Linux Real-Time ermöglicht eine höhere Leistung, da Tasks mit niedrigerer Priorität effizienter geplant werden. Mehr Informationen über den CFS erhalten Sie hier.

Neben den Änderungen beim Scheduler gibt es auch Neuerungen bei der Multicore-Unterstützung auf NI Linux Real-Time, da sämtliche Embedded-Hardware von NI, die das neue Echtzeitbetriebssystem unterstützt, Multicore-basiert ist. Bei der Multicore-Unterstützung ist es besonders wichtig, den besten Verfahrensweisen bei der Programmierung zu folgen und die Ausführung einer zeitkritischen Schleife auf einem Prozessorkern bei voller Auslastung zu vermeiden. Jeder Kern in Multicore-Systemen, die auf NI Linux Real-Time basieren, beansprucht nämlich Zeit für die Wartung/Overheadfunktionen des Betriebssystems, da andernfalls die Systemleistung erheblich beeinträchtigt würde. Daher sollten Anwender sicherstellen, dass zeitkritische Schleifen der CPU im Betrieb alle 10 Sekunden einen Ruhezustand von 10 Millisekunden ermöglichen, damit Overhead verarbeitet werden kann.

Ebenfalls ist zu beachten, dass Leistungsminderungen in zeitkritischen und systemweiten Tasks auf Multicore-Systemen mit NI Linux Real-Time auftreten können, falls seriell abhängige Tasks in mehreren Prozessorkernen parallel ablaufen dürfen. Die Übermittlung von Informationen ist nämlich ineffizient, wenn seriell abhängige Tasks auf verschiedenen Prozessorkernen gleichzeitig ausgeführt werden. Um solche Leistungsminderungen zu vermeiden, sollten Anwender den Programmierempfehlungen mit NI LabVIEW Real-Time folgen und zeitkritischen Code sowie Systemtasks beim Verteilen auf die Prozessorkerne voneinander getrennt halten. Dies lässt sich erreichen, indem ein Prozessorkern so eingestellt wird, dass er nur zeitkritische Funktionen verarbeitet und der Prozessorkern so festgelegt ist, dass er von jeder zeitgesteuerten Schleife oder Struktur genutzt werden kann, siehe Abbildung 4. Weitere Informationen über beste Vorgehensweisen bei LabVIEW Real-Time zur Optimierung von Multicore-Systemen erhalten Sie hier.

Abbildung 4: Es gibt zwei Methoden zur Zuordnung von Prozessorkernen mit der zeitgesteuerten Schleife in LabVIEW Real-Time: (1) Einstellen des Prozessors durch Doppelklick auf die zeitgesteuerte Schleife über das anschließende Konfigurationsdialogfeld oder (2) Verbinden eines Werts direkt mit dem Knoten auf der linken Seite der Struktur. 

 

Wie auch bei anderen Systemupgrades empfohlen, sollten Anwender ihre Applikation erneut validieren, nachdem diese auf ein Zielsystem mit NI Linux Real-Time migriert wurde, da es eventuell zu Verbesserungen oder Minderungen bei der Leistung einzelner Funktionen kommt, sodass nicht mehr alle Systemanforderungen erfüllt werden können. Insbesondere Speicherzuweisungen auf Linux-basierten Echtzeitsystemen können größere Auswirkungen auf Jitter haben.

 

Nach oben

Erfüllen aller Anforderungen mit vertrauten Tools

Da LabVIEW das neue NI Linux Real-Time unterstützt, werden eine Reihe von Funktionen ermöglicht, mit denen Anforderungen von Embedded-Systemen leichter und schneller erfüllt werden können, während Anwender weiterhin mit der vertrauten Entwicklungsumgebung von LabVIEW arbeiten.

Diskutieren Sie mit anderen Anwendern in der NI Linux Real-Time Community

Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.

Nach oben