NI Linux Real-Time unter der Lupe

Überblick

Das NI LabVIEW Real-Time Module unterstützt das Betriebssystem NI Linux Real-Time, das auf ausgewählter NI-Hardware verfügbar ist. 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.

Inhalt

Unterstützung für Linux-Shell

Das Betriebssystem NI Linux Real-Time bietet vollständige Unterstützung für die Linux-Shell, sodass komplexe administrative Aufgaben zum Verwalten von Echtzeitsystemen einfacher ausgeführt werden können. Zum Zugriff auf die Shell ist ein Terminal-Client erforderlich. Wenn Sie Windows 7 und höher verwenden, ist PuTTY ein beliebter und kostenloser Client, der Ihnen zur Verfügung steht unter PuTTY: Ein kostenloser Telnet-/SSH-Client.

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. Sie können entweder den NI Measurement & Automation Explorer (MAX) oder die webbasierte Konfigurations- und Überwachungsschnittstelle verwenden (siehe Abbildungen 1 und 2). 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.

Sie finden die Option Secure Shell Server aktivieren (sshd) auf der Registerkarte Systemeinstellungen

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.

 

Die Option Secure Shell Server aktivieren (sshd) finden Sie auch über die webbasierte Konfiguration

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.

 

Dateitransfer und -pfade

NI LabVIEW 2013 unterstützt nun den WebDAV-Dateitransfer zwischen allen Echtzeitsystemen. 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 finden Sie unter Verwenden von WebDAV zum Übertragen von Dateien auf Ihr RT-Ziel.

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. Weitere Informationen zur FTP-Unterstützung für NI Linux Real-Time finden Sie unter How do I Use FTP with my NI Linux Real-Time Target. 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.

 

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.

 

Abbildung 3. Das VI „Systembefehl ausführen“ und der Knoten zum Aufruf externer Bibliotheken werden auf NI Linux Real-Time-Zielsystemen 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.

 

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. Um mehr über opkg zu erfahren, besuchen Sie den OPKG Paketmanager.

Zielsysteme mit NI Linux Real-Time bieten nicht nur eine leichtere Integration von C/CC+-Programmcode mit dem VI „Systembefehl ausführen“ und dem Knoten zum Aufrufen externer Funktionen, sondern ermöglich 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. Weitere Informationen zu den C/C++-Entwicklungstools für NI Linux Real-Time, Eclipse Edition, finden Sie unter Erstellen von C/C++-Anwendungen für NI Linux Real-Time.

Greifen Sie auf den Linux-Real-Time-Offline-Download zu, um Treiberunterstützung für Ihr Linux-System zu erhalten.

 Erfahren SIe mehr über PXI-Hardware-Support für das NI Linux Real-Time-Betriebssystem.

Bessere Leistung in Echtzeit

Das neue NI Linux Real-Time verwendet zum Verarbeiten von zeitkritischem Code einen Real-Time Scheduler, der denen auf aktuellen Echtzeitsystemen ähnlich ist, sowie einen Completely Fair Scheduler (CFS) zum Verarbeiten 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. Um mehr über dem CFS zu erfahren, besuchen Sie Innerhalb des 2.6 Completely Fair Scheduler.

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; andernfalls würde die Systemleistung merklich beeinträchtigt. 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. Das Übermitteln 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 zu den empfohlenen Methoden in LabVIEW Real-Time zur Optimierung auf Multicore-Systemen finden Sie unter Konfigurieren der Einstellungen einer zeitgesteuerten Struktur.

In LabVIEW Real-Time gibt es zwei Methoden zur Zuweisung der Prozessoraffinität mit Hilfe der zeitgesteuerten Schleifenstruktur.

Abbildung 4: In LabVIEW Real-Time gibt es zwei Methoden zur Zuweisung der Prozessoraffinität mit Hilfe einer zeitgesteuerten Schleifenstruktur: (1) Legen Sie den Prozessor entweder durch einen Doppelklick auf die zeitgesteuerte Schleife fest, um das Konfigurationsdialogfeld anzuzeigen, oder (2) Verbinden Sie einen Wert direkt mit dem Knoten links von 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 zu Verbesserungen oder Minderungen bei der Leistung einzelner Funktionen kommen kann, sodass womöglich nicht mehr alle Systemanforderungen erfüllt werden. Insbesondere Speicherzuweisungen auf Linux-basierten Echtzeitsystemen können größere Auswirkungen auf Jitter haben.

 

Alle Anforderungen mit vertrauten Tools erfüllen

Die Unterstützung des neuen NI Linux Real-Time durch LabVIEW ermöglicht eine Reihe von Funktionen, mit denen Sie die Anforderungen Ihrer Embedded-Systeme leichter und schneller erfüllen können, während Sie weiterhin mit der vertrauten Entwicklungsumgebung von LabVIEW arbeiten.

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

Linux® ist ein in den USA und anderen Ländern eingetragenes Warenzeichen von Linus Torvalds.