NI再構成可能I/O (RIO) 製品は、柔軟な開発プラットフォームで高速の閉ループ制御と高精度計測を行う必要のあるシステムレベルのアプリケーションで使用します。これらのアプリケーションの中には、多くのチャンネルや分散アーキテクチャが必要なために、コアシステムでは対応できないものもあります。拡張I/Oシステムを使用することで、コントローラ1つに「N」個のFPGA (field-programmable gate array) とI/Oノードを使用した1対Nシステムトポロジが可能となります。これにより、分散制御とローカル処理の両方を実行できる柔軟性に優れた多チャンネルシステムが実現します。
多チャンネルシステムは幅広い分野で求められています。NIの拡張I/Oプラットフォームでは、それらの多様なニーズを満たせるよう、あらゆる製品を取り揃えています。拡張I/Oオプションの間での最も大きな相違点は、図1に示すように、I/Oとプロセッサを分離するバスにあります。 それぞれのバスには固有の利点があり、拡張I/Oアプリケーションの各部分に最適な設計となっています。
図1:拡張I/OはプロセッサをI/Oから分離するもので、各拡張オプションではその間に異なる通信バスを導入しているため、適するアプリケーション分野も異なります。
それぞれの拡張I/Oオプションでは、固有の通信バス (Ethernet、EtherCAT、MXI) に基づき、システムの特定の機能を決定します。表1は、各拡張I/Oオプションの主な相違点をまとめたものです。
堅牢な4または8スロットEthernet RIOシャーシを使用して、FPGA対応のリモートI/Oを任意のEthernetネットワークに追加することができます。Ethernet RIOシステムは、柔軟性に優れた標準CAT-5ケーブルを使用して、NI CompactRIO、リアルタイムPXIコントローラ、NI産業用コントローラなど、イーサネットをサポートするほぼ全てのホストに接続することができます。また、Ethernet RIO拡張システムをWindows搭載PCに接続すると、FPGA対応のミックスドシグナル調節付きI/Oによる柔軟な分散ネットワークを構築することができます。オンボードFPGAを使用すれば、カスタム信号解析、制御、さらに各シャーシ固有の安全保護装置を組み込んで、真のモジュール式システムを作成することが可能です。 Ethernet RIOベースのシステムは、使いやすさとコストと柔軟性が重視されるアプリケーションに最適です。例として、温度やフローといったシングルポイント計測の分散監視などがあります。
EtherCAT (Ethernet Control Automation Technology) RIOは、確定性に優れたEtherCATプロトコルを利用してイーサネット経由の通信を実装する8スロットスレーブシャーシです。EtherCAT RIOを使用すると、多チャンネルシステムやリモートI/OシステムにFPGA対応I/Oを追加することができ、確定性や同期性能のレベルも規定することができます。1つのマスタデバイスから複数のスレーブデバイスにデイジーチェーン接続し、I/Oを1つのマスタクロックで同期することも可能です。EtherCAT RIOは、複数のシャーシ間での同期を必要とする分散型のシングルポイント制御/モーションアプリケーションに最適です。たとえば、風力タービンの構造モニタリング、同期テスト装置、長距離制御アプリケーションなどに使用されています。
NIでは、MXI-Express RIO拡張シャーシの提供を終了しました。代わりに、EtherCAT RIOまたはEthernet RIO拡張シャーシの使用をご検討ください。これらの拡張シャーシを表1で比較して、最適な移行パスを決定することができます。
Ethernet RIO、EtherCAT RIO、およびMXI-Express RIOシステムでは、CシリーズI/Oモジュールを介して任意のセンサやバスに接続することができます。I/OはFPGAに直接につながっており、インライン信号処理、カスタムタイミング、専用トリガ、閉ループ制御などが実装できます。CシリーズI/Oモジュールは全て信号調節機能を内蔵し、ネジ留め式端子、BNC、D-Subコネクタを搭載しています。熱電対、電圧、測温抵抗体 (RTD)、電流、抵抗、歪み、デジタル (TTLなど)、加速度計、マイクロホンなど、異なる計測に対応したNIおよびサードパーティCシリーズモジュールが現在、100種類以上あります。各モジュールのチャンネル数は3~32で、幅広いシステム要件に対応します。
あらゆる業界でFPGAチップが採用されているのは、FPGAがASIC (特定アプリケーション向け集積回路) とプロセッサ搭載システムの優れた部分を兼ね備えているためです。FPGAの速度と信頼性はハードウェアタイミングによるものですが、カスタムASIC設計のように高額な初期費用を大量生産でまかなう必要はありません。
再プログラミング可能なチップは、プロセッサ搭載システム上で実行するソフトウェアと同じ柔軟性を備えながらも、利用可能なプロセッサコア数の制約を受けることがありません。またプロセッサと異なり、FPGAは並列性を備えているため、異なる処理操作が同じリソースを巡って競合することもありません。個々の処理タスクはチップ上の専用セクションに割り当てられ、他の論理ブロックからの影響を受けずに機能します。そのため、アプリケーションの各部は処理を追加しても影響されずに実行することができます。
EtherCATネットワークの理論上のデバイス数制限は65,535個のスレーブであり、高速イーサネット (100 Mビット/秒) の制限の上限値も同様に高い傾向にあります。このシステムの最大デバイス数を制限する本当の要因は、デプロイしているI/Oチャンネル数、コントローラの速度、そして実行しているアプリケーションです。
デイジーチェーン上の全シャーシは、システムの構成時や総スループット要件の計算時に、ホストコントローラへ同じ「パイプ」、つまり帯域幅を共有しています。また、各シャーシおよびケーブルごとにシステムの遅延時間が追加されるため、ループレートはバス上のデバイス数とデータによって決まります。
MXI-Express RIOでは、スター構成またはデイジーチェーン構成が利用できます。使用できるシャーシの数はシステムによって異なりますが、一般には1つのデイジーチェーンで最大6台のシャーシの接続が可能です。スター構成で使用できるシャーシ総数は、ホストコントローラで利用可能なPCIバスセグメントによって決まりますが、1つのコントローラで40台以上になります。
MXI-Express RIOでは、バス上のシャーシ間の距離が7 mに制限されています。Ethernet RIOとEtherCATのどちらのスレーブシャーシでも、最大100 mまで離れたデバイス同士を、ハブ、スイッチ、またはリピータなしで接続できます。
メモ: EtherCATネットワークの範囲を拡張するには、EtherCAT対応のデバイスを使用する必要があります。通常のイーサネットスイッチはEtherCATネットワークとは互換性がありません。
タイミングと同期により、イベントの時間的な相関または協調が可能です。この機能は、多くの計測/制御アプリケーションにおいて、特にチャンネル数が増加するにつれて不可欠になります。
EtherCATバス通信規格では、ネットワーク上の全デバイスが参照するマスタシステムクロックを定義しているため、EtherCAT RIOは他のシステムと自動で同期されます。そのためEtherCATは、緊密な同期 (1マイクロ秒未満) とハードウェアの確定性が求められるシステムには最適なバスです。
MXI-Express RIOおよびEthernet RIOシャーシは、通信バス経由 (それぞれMXI-ExpressとFast Ethernet) でのネイティブ同期をサポートしていません。クロックの共有機能はバスアーキテクチャに組み込まれていないため、ネットワークトポロジが原因のパケットの見落としや衝突によって生じた遅延は考慮されていないということになります (システム上のノード間通信は非同期です)。ただし、1つのシャーシ内の全モジュールはシャーシのバックプレーンを共有しているため同期することができ、複数のMXI-Express/Ethernet RIOシャーシを同期するには、CシリーズデジタルI/Oモジュールを使用して基準クロック信号をシャーシ間で分散することができます。
これは、通信バスのみによって生じたジッタのことをいいます。システム内のジッタの主な原因は、通常通信バスではなくコントローラに関連しています (特にWindowsコントローラの場合)。またシステム内のジッタは、システムアーキテクチャと、ホストに到達するまでにデイジーチェーン内でデータが対応しなければならないシャーシの数の影響を受けます。
確定的通信は、分散されたリアルタイムコンピュータノード間のデータ通信が制御ループの欠かせない部分となるアプリケーションでは重要です。つまり、ネットワークで生じたジッタは、制御ループのジッタとなるということです。制御ループのジッタの許容範囲はそれぞれのシステムにより異なりますが、標準的な範囲は制御ループ時間の±10%です。1 kHzの制御ループの場合、各反復は900~1,100 μsの範囲で実行されますが、この範囲内であれば適切な応答が得られます。
EtherCAT RIOとMXI-Express RIOの通信ジッタは、それぞれ10マイクロ秒未満と、1マイクロ秒未満です。 Ethernet RIOデバイスには、ジッタの仕様がありません。 これは、高速イーサネット/ワイヤレス通信は確定的なデータ転送方式ではないためです。
理論上の帯域幅がEthernet RIOでは25 MB/s、EtherCATでは12.5 MB/秒であるのに対し、MXI-Express RIOの場合は最大250 MB/秒であり、コントローラとの間で最も高速なデータ転送が可能です。ただし、バスの性能は、バスの理論上の最大帯域幅だけで決まるわけではないことに留意してください。帯域幅以外にも、レイテンシ、実装環境、所要電力、使用するアプリケーションなどの要素も考慮する必要があります。高スループットアプリケーションにとって、MXI-Express RIOは最適なオプションです。一方で、Ethernet RIOとEtherCAT RIOのスループット機能は、ほとんどの制御/監視アプリケーションに十分に対応できる性能を備えています。
API (アプリケーションプログラムインタフェース) とは、ソフトウェアアプリケーションの構成要素として使用するルーチンのセットです。拡張I/Oターゲットをプログラミングする方法は2つあります。NI CompactRIOスキャンモードまたはNI LabVIEW FPGAホストインタフェースAPIです。
EtherCAT/Ethernetシャーシでは、NI CompactRIOスキャンモード (別名RIOスキャンインタフェース、RSI) を使用することができます。CompactRIOスキャンモードは、自動でI/Oモジュールを検出しLabVIEWプロジェクトに追加します。そしてI/O変数をLabVIEW Real-Time/ホストVIのブロックダイアグラムにドラッグアンドドロップすれば、FPGAのプログラミングやコンパイルを行わなくても、I/Oデータの読み取りと書き込みが即座に実行できます。
図2:CompactRIOスキャンモードの使用
FPGAを直接プログラミングするには、LabVIEW FPGAモジュールを使用します。FPGA VIを作成したら、ビットストリームにコンパイルされてFPGAに実装されます。ホストアプリケーションからFPGAと通信するには、LabVIEW FPGAホストインタフェースAPIを使用します。これにより、レジスタの読み取りと書き込み、DMA転送などの機能の実行が可能となります。
EtherCATシャーシでは、コントローラのリアルタイムVIと拡張シャーシのFPGA VIの間でのトークに、ユーザ定義のI/O変数しか使用できない点にご注意ください。(ユーザ定義のI/O変数は、NIスキャンエンジンを使ってFPGAデータを同期するのに使用します。)つまり、拡張シャーシのFPGA VIには、FPGAホストインタフェース、DMA転送関数、フロントパネルデバッグ機能がありません。
LabVIEW FPGAホストインタフェースAPIは、MXI-Express RIOとの通信にのみ使用できます。
また、モジュールによるNIスキャンモードのサポートの有無という点で、各シャーシと互換性のあるCシリーズモジュールの種類についても多少の制約があります。MXI-Express RIOはLabVIEW FPGAのみをサポートしますので、NI 986x CANモジュールのようにNIスキャンモードを多用するモジュールは、MXI-Express RIOに対応していません。Cシリーズモジュールの互換性に関する完全なリストは、NI Cシリーズモジュール互換性チャートでご覧いただけます。
4種類の拡張オプションでは全て異なるバスを使用するため、コントローラ側の接続も異なります。
Ethernet RIOは、イーサネットポートを備えた任意のシステムで使用できるとともに、ほとんどの標準ネットワークトポロジにも対応しています。Ethernet RIOをリアルタイムコントローラのセカンダリイーサネットポートに直接接続する場合は、「Connect an Ethernet RIO Expansion Chassis to a Secondary Ethernet Port on a Real-Time Controller」を参照してください。NI-9149およびNI-9147 Ethernet RIOシャーシには、デバイス構成を容易にするためのUSBポートも装備されています。ただし、このポートはイーサネットポートの代わりに使用するためのものではありません。
EtherCAT RIOシャーシは、CompactRIO、PXI、産業用コントローラプラットフォームなど、イーサネットポートを2個搭載したリアルタイムコントローラなら全てに対応しています。EtherCATでは、リアルタイムPXIコントローラにイーサネットポートが2個装備されていない場合、NI PXI-8231/8232イーサネットインタフェースが搭載されている必要があります (NI 8234イーサネットインタフェースは非対応)。このインタフェースは、リアルタイムコントローラでのみサポートされています。また、NI-Industrial Communications for EtherCATドライバソフトウェアも必要であり、かつセカンダリイーサネットポートがEtherCATモードになっている必要があります。
MXI-Express RIOには、ホストシステムへのMXI-Expressインタフェースが必要です。オプションとしては、CompactRIO、PXI、または産業用コントローラの他、MXI-Express PCIカードインタフェースを内蔵したWindowsまたはリアルタイムOS搭載PCがあります。MXI-Express ExpressCardアダプタを使用すると、NI PXIe-8115のように、MXI-Expressインタフェースはなくても内蔵ExpressCardスロットを搭載しているコントローラに、MXI-Express RIOシャーシを接続することができます。また、NI PXIe-8364 MXI-Expressインタフェースを使用すると、MXI-Express RIOをPXIシステムに接続することができます。MXI-ExpressからPCIまたはPCI Expressへのアダプタを使用すると、MXI-Express RIOをPCに接続することが可能です。
Ethernet | EtherCAT | MXI (販売終了) | |
---|---|---|---|
FPGA対応のI/Oをイーサネットネットワークのどこにでも追加できます。 | 分散型アプリケーションには、EtherCAT経由の確定性に優れたI/Oが利用できます。 | 高性能拡張シャーシは、多チャンネルアプリケーションへの使用をお勧めします。 | |
I/O数 | Cシリーズスロット: 4または8 | Cシリーズスロット: 8 | Cシリーズスロット: 8または14 |
FPGA | Artix-7 | Artix-7 | Virtex-5 (LX50/LX85/LX110) |
ネットワークトポロジ | Ethernetと同じ | デイジーチェーン/スター | デイジーチェーン/スター |
距離 | ハブまで100 m | リピータまで100 m | シャーシ間7 m |
複数デバイスの同期 | FPGAベースのDIO | バス内で暗黙的 | FPGAベースのDIO |
通信ジッタ | 仕様なし | <1 μs | <10 μs |
バススループット | 25 MB/s | 12.5 MB/s | 250 MB/s |
APIサポート | FPGAホストインタフェース/RSI | RSI | FPGAホストインタフェース |
ホスト | Windows/Real-Time | Real-Timeのみ | Windows/Real-Time |
表1:主な拡張I/Oの機能比較
シャーシ | FPGA | ゲート | Flip-Flops | LUT | Multiplier | ブロックRAM (kB) |
---|---|---|---|---|---|---|
Ethernet | ||||||
NI-9149 | Artix-7 | – | 106,400 | 53,200 | 220 | 4,480 |
NI-9147 | Artix-7 | – | 106,400 | 53,200 | 220 | 4,480 |
NI-9148 (販売終了) | Spartan-3 2000 | 200万 | 40,960 | 40,960 | 40 | 720 |
NI-9146 (販売終了) | Spartan-6 LX 45 | – | 54,576 | 54,576 | 58 | 2,088 |
EtherCAT | ||||||
NI-9145 | Artix-7 | – | 106,400 | 53,200 | 220 | 4,480 |
NI-9144 (販売終了) | Spartan-3 2000 | 200万 | 40,960 | 40,960 | 40 | 720 |
MXI-Express | ||||||
NI-9159 (販売終了) | Virtex-5 LX110 | – | 69,120 | 69,120 | 64 | 4,608 |
NI-9157 (販売終了) | Virtex-5 LX85 | – | 51,840 | 51,840 | 48 | 3,456 |
NI-9155 (販売終了) | Virtex-5 LX85 | – | 51,840 | 51,840 | 48 | 3,456 |
NI-9154 (販売終了) | Virtex-5 LX50 | – | 28,800 | 28,800 | 48 | 1,728 |
表2:拡張RIO製品で使用されるFPGAを参照してください。