NI Linux Real-​Time​の​内部

概要

NI LabVIEW Real-​Time​モジュール​は、​一部​の​NI​ハードウェア​に​搭載​さ​れ​て​いる​NI Linux Real-​Time OS​を​サポート​し​ます。​この​記事​では、​アプリケーション​で​NI Linux Real-​Time​を​最大限​に​活用​する​ため​の​新​機能​や​上級​トピック​について​紹介​し​ます。

内容

Linux​シェル​の​サポート

NI Linux Real-​Time OS​は、​Linux​シェル​を​フル​サポート​し​ます​ので、​複雑​な​管理​タスク​を​実行​し​て、​Real-​Time​ターゲット​の​管理​を​し​や​すく​し​ます。​シェル​に​アクセス​する​に​は、​ターミナル​ク​ライアン​ト​が​必要​です。​Windows 7​以降​を​使用​し​て​いる​場合、​PuTTYがPuTTY: A Free Telnet/​SSH Clientで​よく​使用​さ​れ​て​いる​フリーク​ライアン​ト​です。

ターミナル​ク​ライアン​ト​の​他​に、​NI Linux Real-​Time OS​が​動作​し​て​いる​Real-​Time​ターゲット​上​で、​「Secure Shell​サーバ (sshd) を​有効​化 」​オプション​を​選択​する​必要​が​あり​ます。​NI Measurement & Automation Explorer (MAX) またはWeb-​Based Configuration and Monitoring Interfaceの​いずれ​か​を​使用​でき​ます (図​1​および​2​を​参照)。​セキュリティ​上の​理由​から、​管理者​アカウント​で​デフォルト​の​パスワード​を​変更​する​こと​を​強​く​推奨​し​ます。​パスワード​は、​Web-​Based Configuration and Monitoring Interface​で​変更​でき​ます。​Linux​シェル​に​SSH​から​ログイン​する​に​は、adminユーザ​名​と​設定​した​パスワード​を​使用​し​て​ルート​アクセス​を​取得​し​ます。​設定​し​てい​ない​場合​パスワード​は​空白​です。​Web-​Based Configuration and Monitoring Interface​で、​追加​の​ユーザ​を​作成​する​こと​も​でき​ます。​それらの​ユーザ​は​SSH​経由​で​ログイン​する​こと​は​でき​ます​が、​ルート​アクセス​を​保持​し​てい​ま​せん。

図​1. Measurement & Automation Explorer​では、​Real-​Time​ターゲット​の​「システム​設定」​タブ​に、​「Secure Shell​サーバ (sshd) を​有効​化 」​オプション​が​あり​ます。​NI Linux Real-​Time​が​動作​し​て​いる​Real-​Time​ターゲット​に​アクセス​する​に​は、​この​オプション​を​選択​する​必要​が​あり​ます。

 

図​2. 「Secure Shell​サーバ (sshd) を​有効​化 」​オプション​は、​Real-​Time​ターゲット​の​Web-​Based Configuration and Monitoring Interface​に​も​あり​ます。​NI Linux Real-​Time​が​動作​し​て​いる​Real-​Time​ターゲット​に​アクセス​する​に​は、​この​オプション​を​選択​する​必要​が​あり​ます。

 

ファイル​転送​と​ファイル​パス

LabVIEW 2013​以降、​すべて​の​NI Real-​Time​ターゲット​は​WebDAV​ファイル​転送​を​サポート​し​てい​ます。​WebDAV​は、​HTTP​上​に​構築​さ​れ​た​業界​標準​プロトコル​です。​Dropbox​など​の​一般​的​な​アプリケーション​で​使用​さ​れ​て​おり、​機密​情報​を​含む​ファイル​を​安全​に​転送​する​こと​が​でき​ます。​WebDAV​は、​NI Linux Real-​Time​が​動作​し​て​いる​Real-​Time​ターゲット​用​の​デフォルト​の​ファイル​転送​メカニズム​と​な​って​い​ます。​詳​しく​は、「WebDAV​を​使用​した​ファイル​を​Real-​Time​ターゲット​へ​転送​する」​を​参照​し​て​くだ​さい。

VxWorks​や​Phar Lap​を​ベース​に​した​以前​の​リアルタイム​デバイス​と​異​なり、​NI Linux Real-​Time​ターゲット​は​FTP​サーバ​が​デフォルト​で​インストール​さ​れ​てい​ま​せん。​アプリケーション​の​下位​互換性​を​維持​する​ため​に​FTP​サポート​が​必要​な​場合​は、​MAX​から​安全​策​が​施​さ​れ​てい​ない​レ​ガ​シー​FTP​サーバ​を​インストール​する​こと​が​でき​ます。​NI Linux Real-​Time​の​FTP​サポート​の​詳細​について​は、「NI Linux Real-​Time​ターゲット​で​FTP​を​使用​する」​を​参照​し​て​くだ​さい。​NI Linux Real-​Time​ターゲット​は、​WebDAV​が​特定​の​アプリケーション​に​適​し​てい​ない​場合​に​備え​て、​SSH​経由​の​SFTP​機能​も​サポート​し​ます。

また、​NI Linux Real-​Time​では、​既存​の​Real-​Time​ターゲット​や​Windows​に​比べ、​重要​な​ファイル​パス​が​いくつか​異​な​って​い​ます。​新しい​Linux​ベース​の​RTOS​を​サポート​する​ターゲット​上​で​コード​の​移行​や​データ​ログ​の​管理​を​行う​際、​ファイル​パス​エラー​の​発生​を​防ぐ​に​は、こちら​の​ドキュメントを​ご覧​くだ​さい。

 

プログラム​による​システム​アクセス

LabVIEW Real-​Time​モジュール​は、​NI Linux Real-​Time​ターゲット​上​で​「システム​実行」​VI​を​サポート​し​ます。​NI Linux Real-​Time​ターゲット​上の​「システム​実行」​VI​では、​Linux​コマンド​ライン​に​アクセス​する​こと​が​でき​ます。​この​ため、​NI Linux Real-​Time OS​を​プログラム​で​管理​した​り、​LabVIEW Real-​Time​アプリケーション​から、​ターゲット​上​で​実行​さ​れ​て​いる​他の​プログラム​と​通信​した​り​する​こと​が​でき​ます。

NI Linux Real-​Time​ターゲット​上​では、​「システム​実行」​VI​の​他​に、​「ライブラリ​関数​呼び出し」​ノード​も​サポート​し​てい​ます。​「ライブラリ​関数​呼び出し」​ノード​を​使用​すると、​外部​C/​C​+​+コード​を​LabVIEW Real-​Time​アプリケーション​に​簡単​に​統合​できる​ほか、​NI Linux Real-​Time​ターゲット​に​インストール​さ​れ​実行​し​て​いる​他の​プログラム​が​提供​する​任意​の​C API​用​に、​LabVIEW​ラッパー​を​作成​する​こと​も​可能​です。

 

図​3. 「システム​実行」​VI​と​「ライブラリ​関数​呼び出し」​ノード​は、​NI Linux Real-​Time​ターゲット​で​サポート​さ​れ​てい​ます。​LabVIEW Real-​Time​アプリケーション​から、​NI Linux Real-​Time OS​や​他の​プログラム​と​スムーズ​に​通信​する​こと​が​でき​ます。

 

Linux​エコ​システム​に​アクセス

NI Linux Real-​Time​搭載​の​ターゲット​は、​Linux​で​使用​できる​充実​した​IP​エコ​システム​から​多く​の​メリット​を​得る​こと​が​でき​ます。​エコ​システム​を​インストール、​管理、​利用​する​ため​に、​NI Linux Real-​Time​に​は​パッケージ​マネージャ (opkg) が​用意​さ​れ​てい​ます。​opkg​の​詳細​について​は、「OPKG Package Manager」​を​参照​し​て​くだ​さい。

NI Linux Real-​Time​ターゲット​は、​「システム​実行」​VI​と​「ライブラリ​関数​呼び出し」​ノード​で​C/​C​+​+コード​を​より​簡単​に​統合​できるだけ​で​なく、​Linux​エコ​システム​の​コード​の​使用、​社内​コード​の​再​利用、​Eclipse​ベース​の​ツール​による​C/​C​+​+コード​の​開発、​デプロイ、​デバッグ​も​可能​です。C/​C​+​+開発​ツール - NI Linux Real-​Time​用 (Eclipse Edition) の​詳細​について​は、「Building C/​C​+​+ Applications for NI Linux Real-​Time」​を​参照​し​て​くだ​さい。

お​使い​の​Linux​システム​の​ドライ​バ​サポート​を​受ける​に​は、「NI Linux Real-​Time​オフライン​インストール​サポート」​に​アクセス​し​て​くだ​さい。

 「NI Linux Real-​Time​オペレーティングシステム​PXI​ハードウェア​サポート」​を​参照​し​て​くだ​さい。

上級​リアルタイム​パフォーマンス

新しい​NI Linux Real-​Time​では、​現在​の​Real-​Time​ターゲット​に​搭載​さ​れ​て​いる​もの​と​類似​した​Real-​Time​スケジューラ​を​使用​し​て、​タイム​クリティカル​な​コード​の​スケジューリング​を​処理​し​ます。​また、​重要性​の​低い​すべて​の​コード​の​スケジューリング​を​処理​する​場合​は、​CFS (Completely Fair Scheduler) を​使用​し​ます。​専用​RTOS​を​備え​た​現在​の​Real-​Time​ターゲット​では、​タイム​クリティカル​な​タスク​に​も​優先​度​の​低い​システム​タスク​に​も、​Real-​Time​スケジューラ​のみ​を​使用​し​てい​ます。​NI Linux Real-​Time​の​CFS​は​さらに​高性能​化​し、​低​優先​タスク​が​より​効率​的​に​スケジューリング​さ​れる​よう​に​な​って​い​ます。​CFS​の​詳細​について​は、「Inside the Linux 2.6 Completely Fair Scheduler.」​を​参照​し​て​くだ​さい。

スケジューラ​の​変更​以外​に、​NI Linux Real-​Time​における​マルチ​コア​サポート​の​違い​に​も​注意​が​必要​です。​この​新しい​RTOS​を​サポート​する​NI​組​込​ハードウェア​デバイス​は​すべて​マルチ​コア​で​ある​ため​です。​マルチ​コア​サポート​に関して​は、​プログラミング​の​ベスト​プ​ラ​ク​テ​ィ​ス​に従い、​コア​利用​率​100%​の​プロセッサ​コア​で​タイム​クリティカル​な​ループ​を​実行​しない​よう​に​する​こと​が​特に​重要​です。​これ​は、​マルチ​コア​の​NI Linux Real-​Time​システム​では、​各​コア​が​OS​メンテナンス/​オーバー​ヘッド​機能​の​ため​に​一定​の​時間​を​必要​と​する​ため​です。​この​機能​が​な​け​れ​ば​システム​パフォーマンス​は​大きな​影響​を​受ける​可能性​が​あり​ます。​その​よう​な​パフォーマンス​の​低下​を​防ぐ​ため​に、​タイム​クリティカル​ループ​では、​10​秒​の​動作​につき​約​10​ミリ​秒​の​スリープ​時間​を​CPU​に​与​え、​オーバー​ヘッド​処理​が​行える​よう​に​する​必要​が​あり​ます。

また​NI Linux Real-​Time​搭載​の​マルチ​コア​システム​で、​逐次​的​に​依存​する​タスク​が​プロセッサ​コア​上​において​並列​で​実行​可能​な​場合、​パフォーマンス​の​低下​は​タイム​クリティカル​タスク​と​システム​タスク​の​両方​で​起こる​可能性​が​ある​点​に​も​注意​する​必要​が​あり​ます。​その​よう​な​パフォーマンス​の​低下​は、​異なる​プロセッサ​コア​上​で​同時に​実行​する​逐次​依存​タスク​間​で​の​情報​通信​の​非​効率​性​が​原因​で​発生​し​ます。​こうした​パフォーマンス​低下​を​防ぐ​に​は、​タイム​クリティカル​コード​と​システム​タスク​を​別々​の​プロセッサ​コア​に​分ける​際、​LabVIEW Real-​Time​の​プログラミング​の​ベスト​プ​ラ​ク​テ​ィ​ス​に従う​こと​が​重要​です。​これ​を​実現​する​に​は、​プロセッサ​コア​が​タイム​クリティカル​機能​のみ​を​処理​する​よう​に​設定​し、​図​4​に​示す​よう​に​任意​の​タイミング​ループ​または​タイミング​シーケンス​ストラクチャ​で​プロセッサ​コア​が​使用​さ​れる​よう​に​指定​し​ます。​マルチ​コア​システム​の​最適​化​に関する​LabVIEW Real-​Time​の​ベスト​プ​ラ​ク​テ​ィ​ス​について​は、「タイミング​ストラクチャ​の​設定​を​構成​する」​を​参照​し​て​くだ​さい。

図​4. LabVIEW Real-​Time​で​タイミング​ループ​ストラクチャ​を​使用​し​て​プロセッサ​親和性​を​割り当てる​に​は、​2​つ​の​方法​が​あり​ます。​(1) タイミング​ループ​ストラクチャ​を​ダブル​クリック​し​て​構成​ダイアログ​を​表示​する​か、​(2) ストラクチャ​の​左側​に​ある​ノード​に​値​を​直接​配線​する​か​の​いずれ​か​により、​プロセッサ​を​設定​し​ます。

 

すべて​の​システム​アップ​グレード​で​推奨​さ​れる​こと​ですが、​NI Linux Real-​Time​ベース​の​ターゲット​に​アプリケーション​を​移行​した​場合​は、​アプリケーション​を​再​検証​する​必要​が​あり​ます。​これ​は、​個々​の​機能​の​パフォーマンス​が​向上​または​低下​した​こと​により、​すべて​の​システム​要件​を​満たす​アプリケーション​の​機能​に​影響​を​与える​可能性​が​ある​ため​です。​特に、​Linux​ベース​の​Real-​Time​ターゲット​で​の​メモリ​割り当て​は、​ジッタ​に​大きな​影響​を​もたらす​こと​が​あり​ます。

 

使い​慣​れ​た​環境​を​利用​し​つつ​要件​に​対応

LabVIEW​が​新しい​NI Linux Real-​Time​を​サポート​し​て​いる​こと​で​実現​する​多く​の​メリット​により、​使い慣れた​LabVIEW​開発​環境​を​引き続き​使用​し​ながら、​組​込​アプリケーション​の​要件​に​す​ば​やく​簡単​に​対応​する​こと​が​でき​ます。

NI Linux Real-​Time​コミュニティ​に​参加

Linux​は、​Linus Torvalds​氏​の​米国​および​その他​の​国​における​登録​商標​または​商標​です。