3​ステップ​で​NI​ハードウェア​と​ソフトウェア​を​使​って​リアルタイム​システム​を​構築

概要

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

内容

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

通常、​リアルタイム​システム​を​構築​する​場合、​リアルタイム​対応​の​OS​を​選択​する​必要​が​あり​ます。​NI​の​リアルタイム​環境​ツール​に​は、​必要​な​全て​の​リアルタイム​OS(RTOS)​ソフトウェア​が​パッケージ​に​含​まれ​てい​ます​ので、​この​コンポーネント​を​個別に​選択​する​必要​は​ありま​せん。​ユーザ​が​ダウンロード​および​リアルタイム​プログラム​を​実行​する​ハードウェア​プラットフォーム​に​基​づ​い​て、​NI​は​自動的​に​Wind River VxWorks​または​Phar Lap ETS OS​を​ベース​と​したNI Linux Real-​Time OS​ソフトウェア​を​使用​し​ます。

NI​開発​環境​および​オプション​の​デバッグ​ツール​を​選択​する

リアルタイム​プログラム​を​開発​する​に​は、LabVIEW​グラフィカル​プログラミング(推奨)、LabWindows™/​CVI ANSI C​環境、​またはC/​C​+​+コードの​いずれ​か​を​使用​でき​ます。

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

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

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

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

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

 

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

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

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

ハードウェア​プラットフォーム​で​LabVIEW RT​コード​を​テスト​する​に​は、​「実行」​の​矢印​を​クリック​する​だけ​です。​すると​Ethernet​経由でアプリケーションが自動でリアルタイムハードウェアに転送され、​実行​を​開始​し​ます。​RT​プログラム​が​別​の​システム​上​で​実行​し​てい​て​も、​実行​の​ハイライト、​シングル​ステップ、​ブレーク​ポイント​といった​開発​システム​の​標準​の​NI​デバッグ​ツール​を​使用​する​こと​が​でき​ます。

RT​プログラム​が​完成​したら、​LabVIEW​で​実行​可能​ファイル​(EXE​ファイル)​を​作成​し、​スタート​アップ​アプリケーション​として​RT​ハードウェア​に​ダウンロード​でき​ます。​プログラム​は、​RT​ハードウェア​の​再​起動​後に​スタンドアロン​で​自動的​に​実行​し​ます。

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

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

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

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

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

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

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

開発​オプション: LabWindows/​CVI Real-​Time Module

ANSI C​を​標準​として​使用​し​て​いる​組織​では、LabWindows/​CVI​開発​環境を​用いる​こと​で、​NI​の​信号​処理​アルゴリズム​や​多彩​な​I/​O​モジュール​を​活用​した​テキスト​ベース​の​計測・​制御​アプリケーション​を​作成​でき​ます。LabWindows/​CVI Real-​Time Moduleを​追加​する​こと​で、​NI​対応​の​リアルタイム​ハードウェア​ターゲット​上​で、​これらの​アプリケーション​を​確定​的​に​実行​する​こと​が​可能​に​なり​ます。

LabWindows/​CVI Real-​Time​は、​この​ドキュメント​で​後に​説明​する​リアルタイム​PXI、​工業​用​コントローラ、​PC​ハードウェア​で​のみ​サポート​さ​れる​点​に​ご​注意​くだ​さい。​さらに​広範囲​の​NI​リアルタイム​ハードウェア​ターゲット​に​アクセス​する​に​は、​LabVIEW Real-​Time​モジュール​を​使用​し​て​アプリケーション​を​開発​する​こと​を​勧め​し​ます。

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

NI RT​ハードウェア​プラットフォーム​は、​全て​共通​の​アーキテクチャ​を​ベース​として​いる​ので、​LabVIEW Real-​Time​モジュール​で​作成​した​プログラム​は、​少し​の​変更​を​加える​だけ​で​様々​な​NI​対応​ハードウェア​で​使用​する​こと​が​でき​ます。​特に、​各​ハードウェア​プラットフォーム​は​マイクロプロセッサ、​RAM、​不揮発​性​ストレージ、​I/​O​バス​インタフェース​を​含む​市販​の​コンピュータ​コンポーネント​を​搭載​し​て​おり、​一部​の​ハードウェア​プラットフォーム​に​は、LabVIEW FPGA Moduleソフトウェア​を​使用​し​て​プログラム​できる​オン​ボード​FPGA​を​搭載​し​て​いる​もの​も​あり​ます。

NI​の​RT​プラットフォーム​は、​いずれ​も​特定​の​使用​条件​に​準拠​した​特性​を​備え​てい​ます。​最先端​の​マルチ​コア​性能​から​コンパクト​で​堅牢​な​フォーム​ファクタ​まで、​プロジェクト​の​ニーズ​を​満たす​NI RT​ハードウェア​を​お​求め​い​た​だけ​ます。​NI​の​リアルタイム​ハードウェア​プラットフォーム​は、​全て​自律​システム​として​機能​し​ます。

PXI (PCI Extensions for Instrumentation)

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

Windows​を​搭載​した​既存​の​PXI​コントローラ​を​RT​コントローラ​に​変更​した​い​場合、LabVIEW Real-​Time Deployment Licenseを​購入​し​て​コントローラ​を​転用​する​か、​デュアル​ブー​ト​システム​を​構成​する​こと​が​でき​ます。

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


図​3. PXI​ハードウェア​は​RT​プロジェクト​向け​の​堅牢​かつ​高性能​な​オプション​です。

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

CompactRIO​と​Single-​Board RIO

CompactRIOは、​リアルタイム​プロセッサ、​FPGA、​およびC​シリーズ​I/​O​モジュールを​統合​した​もの​です。​さらに、​コントローラ​に​は​シリアル、​USB、​Ethernet​ポート​が​搭載​さ​れ​てい​ます。​CompactRIO​を​使用​した​場合、​I/​O​モジュール​は​FPGA​に​接続​さ​れ​て​いる​ため​ハードウェア​で​の​高速​処理​が​可能​で、​FPGA​と​リアルタイム​プロセッサ​の​間​で​自由​に​データ​の​交換​が​でき​ます。

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

 

図​4. CompactRIO​は、​RT​アプリケーション​に​適​した​柔軟​かつ​堅牢​な​ポータブル​オプション​です。

CompactRIO​ハードウェア​ターゲット​の​リアルタイム​プロセッサ​は、​LabVIEW Real-​Time​を​使用​し​て​プログラム​でき​ます。​また、​LabVIEW FPGA​モジュール​を​使用​し​て​オン​ボード​FPGA​で​コード​を​開発​した​り、​この​ステップ​を​スキップ​し、​LabVIEW Real-​Time​モジュール​に​組み​込​まれ​て​いる​NI​スキャン​エンジン​を​使用​し​て​I/​O​モジュール​から​読み取り​を​行う​こと​も​でき​ます。

図​5. LabVIEW RIO​アーキテクチャ​では、​リアルタイム​プロセッサ、​再​構成​可能​FPGA、​I/​O​モジュール​が​全て​LabVIEW​で​プログラム​可能​です。

CompactRIO​ハードウェア​は、​機械​状態​監視、​モーション​コントロール、​データ​ログ​など​の​工業​用​アプリケーション​に​しばしば​使用​さ​れ​ます。​また、​組​込​システム​の​プロトタイプ​もす​ば​やく​作成​できる​ため、​短期間​で​市場​に​投入​する​こと​が​でき​ます。

Single-​Board RIOシステム​の​アーキテクチャ​は、​CompactRIO​システム​の​アーキテクチャ​と​全く​同じ​ですが、​単一​回路​ボード​の​フォーム​ファクタ​のみ​です。​Single-​Board RIO​ハードウェア​に​は、​CompactRIO​と​同様​RT​プロセッサ​と​プログラミング​可能​な​FPGA​が​搭載​さ​れ​て​おり、​ボード​オンリー​の​フォーム​ファクタ​で​使用​可能​な​I/​O​モジュール​も​複数​あり​ます。

図​6. Single-​Board RIO​ハードウェア​の​アーキテクチャ​は、​CompactRIO​システム​の​アーキテクチャ​と​全く​同じ​ですが、​単一​回路​ボード​の​フォーム​ファクタ​のみ​です。

柔軟性、​信頼​性、​高性能​を​必要​と​する​大量​アプリケーション​に​は、​Single-​Board RIO​ハードウェア​が​最適​です。​使用​例​に​は、​医療​機器​の​制御​と​監視、​ロボット/​無人​自動車​制御​など​が​あり​ます。

LabVIEW RIO​評価​キットでは、​再​構成​可能​I/​O(RIO)​を​使用​した​LabVIEW Real-​Time​モジュール​と​LabVIEW FPGA​モジュール​の​評価​が​でき​ます。

CompactDAQ

CompactDAQは、​ベンチ​トップ​や​計測​現場、​製造​ライン​で​の​センサ/​電気​計測​を​可能​に​する​堅牢​な​モジュール​式​DAQ​システム​です。​RTOS​を​搭載​した​4​または​8​スロット​コントローラ​は、​Ethernet​経由​で​ホスト​コンピュータ​に​接続​する​こと​も​スタンドアロン​で​動作​する​こと​も​でき​ます。​また​不揮発​性​ストレージ​を​搭載​し​てい​ます。​I/​O​モジュール​が​FPGA​に​接続​さ​れ​てい​ない​という​点​で、​CompactRIO​と​は​異​なり​ます。

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


図​7. CompactDAQ​コントローラ​を​使用​すると、​組​込​計測/​データ​ロギング​用​の​高性能​プラットフォーム​が​構築​でき​ます。

Real-​Time Vision(Smart Camera、​Smart Camera、​組​込​ビジョン​システム)

NI​では​一体​型​ソリューション​用​の​Smart Camera、​複数​の​カメラ​から​の​データ​を​処理​する​ため​の​Compact Vision System、​高性能​の​ファン​レス​組​込​ビジョン​システム​など、​リアルタイム​アプリケーション​用​の​ビジョン​ハードウェア​を​多彩​に​ご​用意​し​てい​ます。

NI Smart Cameraは、​LabVIEW Real-​Time​で​プログラミング​可能​な​工業​用​の​高画質​画像​センサ​と​リアルタイム​電力​プロセッサ​を​統合​した​もの​です。​Vision Development Module​を​購入​し​て、​多数​の​画像​処理/​マシン​ビジョン​関数​を​利用​する​こと​も​でき​ます。​Smart Camera​に​は、​2​つ​の​光​絶縁​型​デジタル​入力、​2​つ​の​光​絶縁​型​デジタル​出力、​RS232​シリアル​ポート​1​つ、​そして​Gigabit Ethernet​ポート​が​2​個​装備​さ​れ​てい​ます。

図​8. Smart Camera​は、​LabVIEW Real-​Time​を​使用​し​て​プログラム​できる​オン​ボード​リアルタイム​プロセッサ​を​搭載​し​てい​ます。

Compact Vision Systemハードウェア​は、​組​込​リアルタイム​プロセッサ、​FPGA、​および​3​台​の​DCAM​カメラ​へ​の​IEEE 1394​接続​機能​を​搭載​し​てい​ます。​Compact Vision System​コントローラ​に​は、​VGA​出力、​Ethernet​ポート、​15​個​の​デジタル​入力、​14​個​の​デジタル​出力​が​装備​さ​れ​てい​ます。​オン​ボード​リアルタイム​プロセッサ​は、​LabVIEW Real-​Time​を​使用​し​て​プログラム​でき​ます。​また​FPGA(デジタル​入出力​と​の​通信​用)​の​カスタマイズ​に​は、​LabVIEW FPGA​を​使用​でき​ます。

組​込​ビジョン​システムハードウェア​は、​ビジョン​アプリケーション​向け​の​堅牢​で​高性能​の​ファン​レス​オプション​です。​組​込​ビジョン​システム​コントローラ​は、​GigE​および​IEEE 1394​カメラ​に​対応​し、​29​の​デジタル​I/​O​ライン、​シリアル、​USB、​Ethernet​接続​を​備え​てい​ます。​オン​ボード​リアルタイム​プロセッサ​は、​LabVIEW Real-​Time​を​使用​し​て​プログラム​でき​ます。​FPGA​は、​LabVIEW FPGA​を​使用​し​て​カスタマイズ​でき​ます。

NI​の​ビジョン​ハードウェア​は、​部品​の​自動​検査、​1D/​2D​バーコード​の​読み取り、​テキスト​の​読み取り​と​検証、​赤外線​カメラ​を​使用​した​熱​計測​など​に​最適​です。​ビジョン​システム​では、​高​確度​の​非破壊​計測​を​行う​こと​が​でき​ます。

その他​の​ハードウェア​オプション

NI​の​工業​用​コントローラに​は、​堅牢​な​ファン​レス​シャー​シ、​高性能​プロセッサ、​I/​O​モジュール​用​の​シングル​PCI/​PCIe​スロット​が​装備​さ​れ​てい​ます。​コントローラ​に​は、​シリアル、​USB、​CompactFlash、​Ethernet​接続​機能​が​搭載​さ​れ​てい​ます。​NI​の​リアルタイム​工業​用​コントローラ​は、​LabVIEW Real-​Time​モジュール​または​LabWindows/​CVI Real-​Time​モジュール​で​プログラム​でき​ます。

NI​の​工業​用​コントローラ​は、​冷却​ファン​を​使用​でき​ない​過酷​な​環境​下​で​の​リアルタイム​アプリケーション​に​最適​です。​また、​様々​な​センサ​や​アクチュエータ​に​確定​的​に​接続​する​ため、​拡張​シャー​シ​へ​の​EtherCAT/​MXIe-​Express​シャー​シ​へ​の​接続​を​サポート​し​てい​ます。

ハードウェアが特定のシステム要件を満たしていれば、​標準​の​デスク​トップ​PC​でも​NI​の​リアルタイム​ソフトウェアで動作できる​よう​に​なり​ます。​その​際​に​は、​NI​リアルタイム​開発​ソフトウェア​(LabVIEW Real-​Time​または​LabWindows/​CVI Real-​Time)​の​ほかに、LabVIEW Real-​Time Deployment Licenseを​購入​する​必要​が​あり​ます。

NI​に​お​問い合わせ

ご​質問​につきまして​は、​NI​まで​ご​連絡​くだ​さい。​お客様​の​ご​案件​に​最適​な​ソフトウェア、​ハードウェア、​I/​O​の​選択​を​お手伝い​い​た​し​ます。​また、​エンジニア​による​デモ​や​NI RT​システム​の​構築​および​トレーニング​も​行​って​い​ます。

0120-527196(代表)​まで​お​電話​くだ​さい。

 

Simulink®​は​The MathWorks, Inc.​社​の​登録​商標​です。​登録​商標​Linux®​は、​全世界​における​商標​保持​者​Linus Torvalds​氏​から​排他​的​ライセンス​を​受け​て​いる​LMI(Linux Mark Institute)​から​の​許諾​により​使用​し​てい​ます。