NI​ハードウェア​と​ソフトウェア​で​リアルタイム​システム​を​構築​する

概要

​NI​の​リアルタイム​ハードウェア​と​ソフトウェア​は​シームレス​に​動作​する​ため、​アプリケーション​を​正確​な​タイミング​で​確実​かつ​確定​的​に​実行​する​こと​が​でき​ます。​この​ドキュメント​では、​NI​リアルタイム​システム​の​作成​に​必要​な​各種​の​コンポーネント​について​説明​し、​使用​できる​ハードウェア​と​ソフトウェア​の​オプション​を​明示​し​てい​ます。​また、​プロジェクト​に​最適​な​オプション​の​選択​方法​について​も​説明​し​てい​ます。

NI​リアルタイム​システム​を​構築​する​に​は、​開発​ソフトウェア​と​ハードウェア​プラットフォーム​を​選択​する​必要​が​あり​ます。​各​ソフトウェア​や​ハードウェア​の​オプション​に関する​詳細​情報​は、​下記​の​セクション​で​説明​し​ます。​この​ドキュメント​を​読み​進める​前​に、​リアルタイム​システム​について​の​基本​的​理解​および​リアルタイム​システム​構築​が​プロジェクト​に​もたらす​改善​点​を​確認​し​て​おく​こと​が​大切​です。​この​情報​について​は、「リアルタイム​システム​を​採用​する​メリット」​を​参照​し​て​くだ​さい。

リアルタイム​システム​を​構築​する​場合、​リアルタイム​対応​の​OS​を​選択​する​必要​が​あり​ます。​NI​の​リアルタイム​開発​ツール​では、​必要​な​すべて​の​リアルタイム​OS (RTOS) ソフトウェア​が​パッケージ​に​含​まれ​てい​ます​ので、​この​コンポーネント​を​個別に​選択​する​必要​は​ありま​せん。​ハードウェア​プラットフォーム​に​基​づ​い​て、​NIはNI Linux Real-​Time OS​または​Phar Lap ETS OS​を​使用​し​ます。 

開発​環境​を​選択​する

リアルタイム​プログラム​を​開発​する​に​は、LabVIEW​グラフィカル​プログラミングLabWindows™/​CVI ANSI C​環境 (Phar Lap​用)、​または​任意のLinux​互換​C/​C​+​+開発​環境 (NI Linux Real-​Time​用) の​いずれ​か​を​使用​でき​ます。

開発​オプション: LabVIEW Real-​Time​グラフィカル​プログラミング

図​1.LabVIEW​使用​した​グラフィカル​プログラミング。

NI​が​サポート​する​リアルタイム​ハードウェア​を​グラフィカル​に​プログラミング​する​に​は、​LabVIEW Real-​Time​モジュール​とともに​LabVIEW​を​使用​する​必要​が​あり​ます。​LabVIEW Real-​Time​では、​1​つ​の​ツール​を​使用​し​て、​信頼​性​の​高い​強固​な​リアルタイム​アプリケーション​を​作成​し、​それらの​アプリケーション​を​ハードウェア​に​ダウンロード​でき​ます。​また、​アプリケーション​を​デ​バック​し、​実行​する​こと​も​でき​ます。

比例/​積分/​微分 (PID) 制御​機能​など、​LabVIEW​に​付属​し​て​いる​標準​の​数学​アルゴリズム​や​信号​処理​アルゴリズム​の​ほとんど​を​リアルタイム​アプリケーション​で​使用​する​こと​が​でき​ます。​さらに、​オプションのLabVIEW MathScript RT​モジュールを​使用​し​て、​リアルタイム​システム​で​テキスト​形式​の​数学​スクリプト​を​実行​した​り、​オプションのLabVIEW Model Interface (モデル​インタフェース) ツール​キットを​使用​し​て、​MathWorks, Inc.​社​の​Simulink ®​ソフトウェア​で​作成​した​モデル​を​統合​した​り​する​こと​も​でき​ます。

LabVIEW Real-​Time: アプリケーション​の​開発、​ダウンロード、​実行

LabVIEW​で​リアルタイム​アプリケーション​を​開発​する​場合、​LabVIEW​プロジェクト​エ​クス​プ​ローラ​を​使用​し​て、​プログラム (VI) を​整理​した​り、​プログラム​を​実行​する​ハードウェア​を​割り当て​たり​する​こと​が​でき​ます。​コード​は、​汎用​の​Windows​ホスト​コンピュータ​で​開発​し、​その後​で、​Ethernet​または​USB​接続​を​経由​し​て​リアルタイム​ハードウェア​に​デプロイ​し​ます。

 

図​2.LabVIEW​プロジェクト​エ​クス​プ​ローラ​を​使用​し​て​LabVIEW​プログラム (VI) を​管理​し、​リアルタイム​ハードウェア​に​割り当て​ます。

LabVIEW​で​の​リアルタイム​プログラム​の​開発​は、​PC​向け​の​通常​の​LabVIEW​アプリケーション​の​開発​と​ほとんど​同じ​です。​その他​に​も​リアルタイム​システム​に​特​化​した​以下​の​よう​な​機能​が​いくつか​あり、​Real-​Time VI​パレット​に​含​まれ​てい​ます。

  • プログラム​が​停止​した​場合​に​一部​の​ハードウェア​ターゲット​を​自動的​に​再​起動​する​ウォッチドッグ​機能
  • リアルタイム​プログラム​の​構成​要素​間​で​データ​を​確定​的​に​通信​できる​機能
  • 複数​の​CPU​コア​を​搭載​した​システム​で​負荷​調整​を​構成​する​ユーティリティ
  • リアルタイム​プログラム​で​ループ​の​実行​を​正確​に​制御​する​タイミング​機能

ハードウェア​で​LabVIEW Real-​Time​コード​を​テスト​する​に​は、​「実行」​の​矢印​を​クリック​する​だけ​です。​これによりアプリケーションがリアルタイムハードウェアにデプロイされ、​アプリケーション​の​実行​が​開始​さ​れ​ます。​リアルタイム​プログラム​が​リアルタイム​ターゲット​上​で​実行​し​てい​て​も、​開発​コンピュータ​では、​実行​の​ハイライト、​シングル​ステップ、​ブレーク​ポイント​など​の​標準​NI​デバッグ​ツール​を​使用​する​こと​が​でき​ます。

リアルタイム​プログラム​が​完成​したら、​LabVIEW​で​実行​ファイル​を​作成​し、​その​ファイル​を​スタート​アップ​アプリケーション​として​リアルタイム​ハードウェア​に​ダウンロード​でき​ます。​リアルタイム​ハードウェア​を​再​起動​すると、​プログラム​は​信頼​性​の​高い​スタンドアロン​方式​で​自動的​に​実行​さ​れ​ます。

LabVIEW Real-​Time: 並列​コード​セクション​へ​の​優先​順位​割り当て​と​マルチ​コア​処理

LabVIEW​の​データ​フロー​プログラミング​モデル​を​使用​すると、​テキスト​ベース​の​プログラミング​言語​の​シーケンシャル​アーキテクチャ​を​使用​する​必要​が​なく​なり​ます。​実行​順序​は​ノード​間​の​データ​フロー​によって​決定​さ​れる​ため、​複数​の​処理​を​並列​実行​する​アプリケーション​を​簡単​に​作成​でき​ます。​また、​LabVIEW​では、​タイミング​ループ​ストラクチャ​によって​スレッド​の​優先​順位​も​容易​に​割り当てる​こと​が​でき​ます。​以下​に​示す​よう​に、​構成​可能​な​タイミング​ソース、​期間、​優先​順位​など​を​各​ループ​に​含める​こと​が​でき​ます。

図​3.LabVIEW​タイミング​ループ​ストラクチャ​を​使用​し​て、​さまざま​な​コード​セクション​の​優先​順位​と​プロセッサ​割り当て​を​指定​し​ます。 

LabVIEW Real-​Time​は​マルチ​コア​処理​を​サポート​し​て​おり、​並列​した​コード​セクション​を​OS​の​各​スレッド​に​自動的​に​マッピング​する​ので、​スレッド​を​手動​で​作成​した​り、​管理​した​り​する​必要​は​ありま​せん。​デフォルト​で、​これらの​スレッド​は​リアルタイム​ハードウェア​で​使用​可能​な​CPU​に​自動的​に​分配​さ​れ​ます。

リアルタイム​システム​の​パフォーマンス​と​信頼​性​は、​タイミング​ループ​を​特定​の​プロセッサ​コア​に​手動​で​割り当てる​こと​で​向上​させる​こと​が​でき​ます。​たとえば、​プロセッサ​の​1​つ​の​コア​を​1​つ​の​タイム​クリティカル​ループ​の​実行​専用​に​割り当て​て、​別​の​コア​上​で​実行​さ​れる​優先​順位​の​低い​タスク​から​隔離​する​こと​が​でき​ます。

トラブル​シューティング​オプション: Real-​Time Trace Viewer​を​使用​した​デバッグ

高度​な​マルチ​コア​デバッグ​では、​Real-​Time Trace Viewer​を​使用​する​こと​で、​コード​の​実行​を​停止​した​り​中断​した​り​する​こと​なく、​LabVIEW​または​LabWindows/​CVI​の​リアルタイム​プログラム​の​パフォーマンス​を​検証​でき​ます。​リアルタイムコードを極力変更せずに、​アプリケーション​の​パファーマンス​を​ファイル​に​記録​し、​その​ファイル​を​ホスト​コンピュータ​に​送り、​参照、​解析​する​こと​が​でき​ます。 トレース​ツール​の​ビューア​では、​マルチスレッドコードの実行が視覚化され、​スレッド​の​スワップ、​ミューテックス、​メモリ​割り当て​が​ハイライト​さ​れ​ます。​Real-​Time Trace Viewer​を​使用​すると、​不要​な​実行​特性​や​見つける​こと​が​難しい​競合​状態​を​特定​する​こと​で、​アプリケーション​の​パフォーマンス​を​最適​化​する​こと​が​でき​ます。

C​および​C​+​+向け​の​開発​オプション

C​や​C​+​+を​標準​として​使用​し​て​いる​組織​では、​LabWindows/​CVI​開発​環境、​Eclipse、​または​他の​開発​環境​を​使用​でき​ます。​LabWindows/​CVI Real-​Time​では​Real-​Time PXI​コントローラ​のみ​が​サポート​さ​れ​ます​が、​NI Linux Real-​Time​を​使用​する​ターゲット (CompactRIO​コントローラ​など) は​オープン​ソース​の​ため、​開発​ツール​を​自由​に​選択​し​て​利用​する​こと​が​でき​ます。Eclipse​版​の​Linux-​Real Time​用​C/​C​+​+開発​ツールは、​NI​の​Web​サイト​から​ダウンロード​でき​ます。

NI​の​ハードウェア​プラットフォーム​と​I/​O​モジュール​を​選ぶ

NI​リアルタイム​ハードウェア​プラットフォーム​は、​すべて​共通​の​アーキテクチャ​を​ベース​として​いる​ので、​LabVIEW Real-​Time​で​作成​した​プログラム​は、​わずか​な​変更​を​加える​だけ、​または​変更​を​加​え​ず​に​さまざま​な​NI​ハードウェア​で​使用​でき​ます。​特に、​各​ハードウェア​プラットフォーム​は、​プロセッサ、​RAM、​不揮発​性​ストレージ、​I/​O​バス​インタフェース​など​の​市販​の​コンピュータ​コンポーネント​を​搭載​し​て​おり、​一部​の​ハードウェア​プラットフォーム​に​は、LabVIEW FPGA​モジュールを​使用​し​て​プログラム​できる、​ユーザ​による​プログラム​が​可能​な​FPGA​を​搭載​し​て​いる​もの​も​あり​ます。

PXI (計測​器用​の​拡張​型​PCI)

業界​標準​の​PXI​プラットフォーム​は、​統合​型​タイミング/​トリガ​ライン、​組​込​コントローラ、​および​プラグ​イン​I/​O​モジュール​を​搭載​した​堅牢​な​シャー​シ​で​構成​さ​れ​てい​ます。​シリアル、​USB、​ギガ​ビット​イ​ー​サ​ネット、​GPIB​の​各​ポート​も​コントローラ​に​組み​込​まれ​てい​ます。​PXI​リアルタイム​ハードウェア​は、​LabVIEW Real-​Time​または​LabWindows/​CVI Real-​Time​の​いずれ​か​を​使用​し​て​プログラム​する​こと​が​でき​ます。

Windows​が​動作​する​PXI​コントローラ​を​既に​お​持ち​で、​これ​を​リアルタイム​コントローラ​に​変更​した​い​場合​は、LabVIEW Real-​Time​デ​プロ​イ​メン​トライ​センスを​購入​すると、​コントローラ​の​変更​や​デュアル​ブー​ト​システム​の​セットアップ​を​行う​こと​が​でき​ます。

オンライン​PXI​アドバイザを​使用​し​て、​コントローラ、​シャー​シ、​I/​O​モジュール、​ソフトウェア​を​含む​独自​の​PXI​リアルタイム​システム​を​構成​でき​ます。


図​4.PXI​ハードウェア​は、​リアルタイム​プロジェクト​向け​の​堅牢​かつ​高性能​な​オプション​です。

NI PXI​ハードウェア​は、​電子​制御​ユニット​の​HIL (hardware-​in-​the-​loop) テスト​や​機械​状態​監視​アプリケーション​の​振動​解析​など​の​高性能​リアルタイム​システム​に​使用​さ​れる​場合​が​あり​ます。​Real-​Time PXI​システム​を​使用​すると、​高​精度​の​I/​O​トリガ​や​複数​モジュール​間​の​同期​を​簡素​化​する​上級​タイミング/​同期​ハードウェア​機能​を​アプリケーション​で​活用​でき​ます。

CompactRIO

CompactRIOは、​リアルタイム​プロセッサ、​FPGA、​およびC​シリーズ​I/​O​モジュールを​統合​した​もの​で、​パッケージ​レベル​および​ボード​レベル​の​両方​の​フォーム​ファクタ​で​提供​さ​れ​ます。​また、​コントローラ​に​は​シリアル、​USB、​Ethernet​の​各​ポート​が​搭載​さ​れ​てい​ます。

オンラインCompactRIO​アドバイザを​使用​し​て、​コントローラ、​I/​O​モジュール、​ソフトウェア​を​含む​独自​の​CompactRIO​システム​を​構成​でき​ます。

 

図​5.パッケージ化された​CompactRIO​コントローラ​に​は、​リアルタイム​アプリケーション​に​適​した、​柔軟性​が​高​く​堅牢​で​ポータブル​な​オプション​が​用意​さ​れ​てい​ます。

LabVIEW Real‐​Time​または​任意​の​C/​C​+​+開発​ツール​を​使用​し​て、​CompactRIO​の​プロセッサ​を​プログラム​する​こと​が​でき​ます。​また、​LabVIEW FPGA​を​使用​し​て、​FPGA​コード​を​開発​する​こと​も​でき​ます。​プロセッサ​上の​IO​データ​に​アクセス​する​に​は、​NI​の​最高​クラス​の​計測​用​プログラミング​API​で​ある​NI-​DAQmx API、​または​NI​スキャン​エンジン​を​使用​でき​ます。​また、​LabVIEW FPGA​を​使用​し​て​FPGA​から​直接​データ​に​アクセス​する​こと​も​でき​ます。 

 

図​6.CompactRIO​の​異種​アーキテクチャ​に​は、​リアルタイム​プロセッサ、​再​構成​可能​な​FPGA、​I/​O​が​搭載​さ​れ​てい​ます。

CompactRIO​ハードウェア​は、​機械​状態​監視、​HIL (hardware-​in-​the-​loop) テスト、​物理​システム​テスト、​機械​制御​など​の​産業​用​アプリケーション​に​使用​さ​れる​場合​が​あり​ます。

CompactRIO Single-​Board​コントローラ (sbRIO) など​の​CompactRIO​ボード​レベル​コントローラ​は、​パッケージ化された​CompactRIO​コントローラ​と​同じ​アーキテクチャ​を​備え​てい​ます​が、​堅牢​な​パッケージ​が​なく、​フォーム​ファクタ​が​小​さく​な​って​い​ます。

図​7.CompactRIO​ボードレベルコントローラはパッケージ化された​CompactRIO​コントローラ​と​同じ​アーキテクチャ​を​備え​てい​ます​が、​フォーム​ファクタ​が​小​さく​な​って​い​ます。

柔軟性、​信頼​性、​高性能​を​必要​と​する​大規模​アプリケーション​に​は、​CompactRIO Single-​Board​コントローラ​や​System on Module​が​最適​です。

産業​用​コントローラ

NI​産業​用​コントローラは、​高性能​な​産業​用​ファン​レス​コンピュータ​です。​過酷​な​環境​における​自動​画像​処理、​データ​収集、​および​制御​アプリケーション​に対して、​最高​レベル​の​処理​能力​と​接続​性​を​提供​し​ます。​これらの​コントローラ​に​は、​最高​で​2.2 GHz​の​Intel Core i7​デュアル​コア​プロセッサ、​8 GB​の​DDR3 RAM、​64 GB​の​ストレージ​が​搭載​さ​れ​て​おり、​可動​部品​の​ない​堅牢​な​設計​が​施​さ​れ​てい​ます。​また​IP​定​格​は​最高​で​IP67​に​なり​ます。​また、​Kintex-7 FPGA​では、​カスタム​I/​O​タイミング、​同期、​制御、​および​画像​コ​プロセッシング​によって、​システム​パフォーマンス​が​向上​し​ます。

図​8.産業​用​コントローラ​は、​ビジョン​システム​に​最適​な​高い​処理​能力​と​接続​性​を​備え​てい​ます。

NI​産業​用​コントローラ​は、​Time Sensitive Networking (TSN) 対応​の​CompactDAQ​シャー​シ、​EtherCAT/​Ethernet CompactRIO​シャー​シ、​EtherCAT​モーション​ドライブ、​GigE Vision/​USB3 Vision​カメラ、​その他​の​自動化​機器​と​の​通信​および​同期​で​最適​な​接続​性​を​実現​し​ます。​また、​オン​ボード​ISO、​TTL、​および​差動​デジタル​I/​O​が​搭載​さ​れ​て​いる​ため、​追加​の​連結​I/​O​を​接続​し​なく​て​も、​同期/​制御​タスク​を​実行​する​こと​が​でき​ます。