NI Linux Real-​Time​の​内部

概要

NI LabVIEW 2013 Real-​Time​モジュール​は、​新た​に​NI Linux Real-​Time OS​を​サポート​する​よう​に​なり​ま​した。​この​リアルタイム​OS(RTOS)​は、​新​製品​の​cRIO-9068​コントローラ​上​で​動作​し、​組​込​アプリケーション​の​要件​に​対応​できる​という​メリット​が​あり​ます。​この​ドキュメント​では、​より​高い​パフォーマンス​を​提供​する​アプリケーション​の​作成​に​役立つ​新​機能​や​上級​トピック​について​紹介​し​ます。

コンテンツ

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

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

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

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

図​2. Enable Secure Shell Server(sshd)​オプション​は、​リアルタイム​ターゲット​の​Web-​Based Configuration and Monitoring Interface​でも​見つける​こと​が​でき​ます。​NI Linux Real-​Time​が​実行​し​て​いる​リアルタイム​ターゲット​に​アクセス​する​に​は、​この​オプション​を​選択​する​必要​が​あり​ます。

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

LabVIEW 2013​から、​全て​の​NI​リアルタイム​ターゲット​は​WebDAV​ファイル​転送​を​サポート​し​てい​ます。​WebDAV​と​は、​HTTP​を​基​に​開発​さ​れ​た​業界​標準​プロトコル​です。​Dropbox​といった​人気​の​アプリケーション​で​使用​さ​れ​て​おり、​慎重​な​扱い​を​要する​情報​を​含む​ファイル​も​安全​に​転送​する​こと​が​でき​ます。​WebDAV​は、​NI Linux Real-​Time​を​搭載​した​リアルタイム​ターゲット​の​デフォルト​の​ファイル​転送​メカニズム​と​な​って​い​ます。​詳​しく​は、WebDAV​を​使用​し​て​リアルタイム​ターゲット​に​ファイル​を​転送​(英語)を​参照​し​て​くだ​さい。

VxWorks​や​Phar Lap​を​ベース​に​した​現在​の​リアルタイム​デバイス​と​異​なり、​NI Linux Real-​Time​ターゲット​は​FTP​サーバ​が​デフォルト​で​インストール​さ​れ​てい​ま​せん。​アプリケーション​の​下位​互換性​を​維持​する​ため​に​FTP​サポート​が​必要​な​場合​は、​MAX​から​安全​策​が​施​さ​れ​てい​ない​レ​ガ​シー​FTP​サーバ​を​インストール​する​こと​は​でき​ます​が、​これ​は​お​勧め​しま​せん。​代わり​に、​NI Linux Real-​Time​ターゲット​は、​WebDAV​以外​に​SSH​で​SFTP​機能​を​サポート​し​てい​ます。​安全​で​ない​FTP​では​なく​こちら​の​方​を​お​勧め​し​ます。

さらに​NI Linux 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​ラッパ​を​作成​する​こと​も​可能​です。

Screenshot.PNG 

図​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​パッケージ​マネージャ​(英語)を​参照​し​て​くだ​さい。

NI Linux Real-​Time​ターゲット​は、​「システム​実行」​VI​と​「ライブラリ​関数​呼び出し​ノード」​で​C/​C​+​+コード​を​より​簡単​に​統合​する​機能​を​持つ​だけ​で​なく、​Linux​エコ​システム​の​コード​の​使用、​社内​コード​の​再​利用、​Eclipse​ベース​の​ツール​による​C/​C​+​+コード​の​開発、​実装、​デバッグ​が​でき​ます。NI Linux Real-​Time、​Exlipse Edition​の​C/​C​+​+開発​ツールの​詳細​について​は、C/​C​+​+組​込​システム​開発​の​ソフトウェア​オプションを​参照​し​て​くだ​さい。

上級​リアルタイム​性能

新しい​NI Linux Real-​Time​では、​タイム​クリティカル​な​コード​スケジューリング​を​処理​する​現在​の​リアルタイム​ターゲット​に​搭載​さ​れ​て​いる​もの​に​似​た​リアル​タイムス​ケ​ジュー​ラ​と、​重要性​の​低い​全​コード​スケジューリング​を​処理​する​CFS(Completely Fair Scheduler)​を​使用​し​ます。​専用​RTOS​を​備え​た​現在​の​リアルタイム​ターゲット​は、​タイム​クリティカル​な​タスク​に​も​優先​度​の​低い​システム​タスク​に​も、​リアル​タイムス​ケ​ジュー​ラ​のみ​を​使用​し​てい​ます。​NI Linux Real-​Time​の​CFS​は​さらに​高性能​化​し、​低​優先​タスク​が​より​効率​的​に​スケジューリング​さ​れる​よう​に​な​って​い​ます。​CFS​に関する​詳細​について​は、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​ベース​の​リアルタイム​ターゲット​で​の​メモリ​割り当て​は、​ジッタ​に​大きな​影響​を​もたらす​こと​が​あり​ます。

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

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

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

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