NI Linux Real-Time を搭載したリアルタイムコントローラ上でスタートアップアプリケーションを実行できない理由



ハードウェア: CompactRIO>>Chassis (Backplanes)>>cRIO-9030, CompactRIO>>Controllers>>cRIO-9031, CompactRIO>>Chassis (Backplanes)>>cRIO-9033, CompactRIO>>Controllers>>cRIO-9068, CompactRIO>>Chassis (Backplanes)>>CRIO-9066, CompactRIO>>Controllers>>CRIO-9067

問題:
現在、OS として NI Linux Real-Time を搭載した CompactRIO (cRIO-903x, 906x) を使用しています。リアルタイムターゲットのトップレベル VI を開発環境から実行すると問題なく実行するのですが、リアルタイムアプリケーションにビルドし、スタートアップとして実行させると、起動時に実行されません。

そこで、リアルタイムアプリケーションのビルド仕様にて、デバッグを許可プロパティを有効にしてビルドし、スタートアップに指定して再起動した後、開発環境からリモートデバッグを行うと、以下の点に気づきました。



なお、同じトップレベル VI からビルドしたリアルタイムアプリケーションを、OS として VxWorks が搭載された CompactRIO (cRIO-901x, 902x) 上でスタートアップとして実行させることはできます。

NI Linux Real-Time を搭載した CompactRIO 上でスタートアップとして実行できないのは、何が原因でしょうか。また、回避策はありますか。

解決策:
VI 名やグローバル変数 VI 名、ならびに、プロジェクトに関連するファイルが所属する Windows のフォルダ名に、半角英数字・記号のみを用いることで、この問題を回避できます。

なお、この問題は、NI Linux Real-Time の仕様に起因しています。NI Linux Real-Time では、スタートアップとして実行されるリアルタイムアプリケーションのトップレベル VI が呼び出すサブ VI やグローバル変数 VI に対し、トップレベル VI から見た相対ファイルパスが半角英数字・記号のみで構成されていなければならない制約があります。この制約が満たされないと、リアルタイムアプリケーション内のトップレベル VI がサブ VI やグローバル変数を適切にロードできず、結果としてリアルタイムアプリケーションが実行できなくなります。

関連リンク:
技術サポートデータベース 4LRA4IQ0: Real-Time コントローラのオペレーティングシステム (OS)
製品マニュアル: スタンドアロンリアルタイムアプリケーションをビルドおよびデプロイする(Real-Timeモジュール)
製品マニュアル: スタンドアロンリアルタイムアプリケーションをデバッグする(Real-Timeモジュール)
製品マニュアル: LabVIEW Real-Timeモジュールスタートアップガイド
ホワイトペーパー: NI Linux Real-Timeの概要


添付:





報告日時: 02/23/2015
最終更新日: 06/06/2016
ドキュメントID: 6UMJ9IW2