多チャンネルシステムには様々なニーズがあり、NIの拡張I/Oプラットフォームでは、そのようなシステムの多彩なニーズを満たせるようあらゆる製品を取り揃えています。拡張I/Oオプションの間での最も大きな相違点は、図1に示すように、I/Oとプロセッサを分離するバスにあります。 それぞれのバスには固有の利点があり、拡張I/Oアプリケーションの各部分に最適な設計となっています。
図1:拡張I/OはプロセッサをI/Oから分離するもので、各拡張オプションではその間に異なる通信バスを導入しているため、適するアプリケーション分野も異なります。
各拡張I/Oオプションは、それぞれ異なる通信バス (MXI-Express、Ethernet、EtherCAT、ワイヤレスなど) を採用しており、システムの特定の機能に影響を与えます。表1は、各拡張I/Oオプションの主な相違点をまとめたものです。
MXI 高性能拡張シャーシは、多チャンネルアプリケーションへの使用をお勧めします。 | Ethernet FPGA対応のI/OをEthernetネットワークのどこにでも追加できます。 | EtherCAT 分散型アプリケーションには、EtherCAT経由の確定性に優れたI/Oが利用できます。 | |
I/O数 | Cシリーズスロット: 8または14 | Cシリーズスロット: 4または8 | Cシリーズスロット: 8 |
FPGA | Virtex-5 (LX50/LX85/LX110) | Artix-7/Spartan 2M/Spartan 6 (LX45) | Spartan 2M |
ネットワークトポロジ | デイジーチェーン/スター | Ethernetと同じ | デイジーチェーン/スター |
距離 | シャーシ間7 m | ハブまで100 m | リピータまで100 m |
複数デバイスの同期 | FPGAベースのDIO | FPGAベースのDIO | バス内で暗黙的 |
通信ジッタ | <10 μs | 仕様なし | <1 μs |
バススループット | 250 MB/s | 25 MB/s | 12.5 MB/s |
APIサポート | FPGAホストインタフェース | FPGAホストインタフェース/RSI | RSI |
ホスト | Windows/Real-Time | Windows/Real-Time | Real-Timeのみ |
表1:主な拡張I/Oの機能比較
MXI-Express RIO拡張シャーシは、高スループット、多チャンネル、ミックスドシグナル調節済みI/O、カスタム信号処理・制御アルゴリズムを必要とするアプリケーションに適した高性能ソリューションを提供します。それぞれのMXI-Express RIOシャーシは8個または14個のCシリーズI/Oモジュールをサポートしており、クラス最高のVirtex-5 LX50、LX85、またはLX110 FPGAを搭載しています。シャーシは最大6台をデイジーチェーン接続でき、ホストコントローラとの通信には有線のPCI Express x1リンクを使用するので、EthernetやEtherCAT RIO拡張シャーシに比べスループットが20倍にもなります。このMXI-Expressリンクにより、NI LabVIEW Real-TimeまたはWindowsを搭載したマルチコアのNI CompactRIOやデュアル/クアッドコアのPC、PXI、工業用コントローラなど、様々なホストシステムに接続することが可能となります。MXI-Express RIOシステムは、HIL (hardware-in-the-loop) テスト、工業用機械の状態監視、音響・振動、物理学で見られるような複雑な研究アプリケーションなどに最適です。
堅牢な4または8スロットEthernet RIOシャーシを使用して、FPGA対応のリモートI/Oを任意のEthernetネットワークに追加することができます。Ethernet RIOシステムは、柔軟性に優れた標準CAT-5ケーブルを使用して、NI CompactRIO、リアルタイムPXIコントローラ、NI工業用コントローラなど、Ethernetをサポートするほぼ全てのホストに接続することができます。またEthernet RIO拡張システムをWindows搭載PCに接続すると、FPGA対応のミックスドシグナル調節済みI/Oの柔軟な分散ネットワークを構築することができます。オンボードFPGAを使用すれば、カスタム信号解析、制御、さらに各シャーシ固有の安全保護装置を組み込んで、真のモジュール式システムを作成することが可能です。 Ethernet RIOベースのシステムは、使いやすさとコストと柔軟性が重視されるアプリケーションに最適です。例として、温度やフローといったシングルポイント計測の分散監視などがあります。
EtherCAT (Ethernet Control Automation Technology) RIOは、確定性に優れたEtherCATプロトコルを利用してEthernet経由の通信を実装する8スロットスレーブシャーシです。EtherCAT RIOを使用すると、多チャンネルシステムやリモートI/OシステムにFPGA対応I/Oを追加することができ、確定性や同期性能のレベルも規定することができます。1つのマスタデバイスから複数のスレーブデバイスにデイジーチェーン接続し、I/Oを1つのマスタクロックで同期することも可能です。EtherCAT RIOは、複数のシャーシ間での同期を必要とする分散型のシングルポイント制御/モーションアプリケーションに最適です。例えば風力タービン、同期テスト装置、長距離制御アプリケーションなどに使用されています。
MXI-Express RIO、Ethernet RIO、およびEtherCAT 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は並列性を備えているため、異なる処理操作が同じリソースを巡って競合することもありません。個々の処理タスクはチップ上の専用セクションに割り当てられ、他の論理ブロックからの影響を受けずに機能します。そのため、アプリケーションの各部は処理を追加しても影響されずに実行することができます。
シャーシ | FPGA | ゲート | Flip-Flops | LUT | Multiplier | ブロックRAM (KB) |
Ethernet | ||||||
NI 9149 | Artix-7 | -- | 106,400 | 53,200 | 220 | 4,480 |
NI 9148 | Spartan-3 2000 | 200万 | 40,960 | 40,960 | 40 | 720 |
NI 9147 | Artix-7 | -- | 106,400 | 53,200 | 220 | 4,480 |
NI 9146 | Spartan-6 LX45 | -- | 54,576 | 54,576 | 58 | 2,088 |
EtherCAT | ||||||
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, 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を参照してください。
MXI-Express RIOでは、スター構成またはデイジーチェーン構成が利用できます。使用できるシャーシの数はシステムによって異なりますが、一般には1つのデイジーチェーンで最大6台のシャーシの接続が可能です。スター構成で使用できるシャーシ数は、ホストコントローラで利用可能なPCIバスセグメントによって決まりますが、1つのコントローラで40台以上になります。
EtherCATネットワークの理論上のデバイス数制限は65,535個のスレーブで、高速Ethernet (100 MB/秒) の制限も同様の数です。このシステムの最大デバイス数を制限する本当の要因は、実装しているI/Oチャンネル数、コントローラの速度、そして実行しているアプリケーションです。
デイジーチェーン上の全シャーシは、システムの構成時や総スループット要件の計算時に、ホストコントローラへ同じ「パイプ」、つまり帯域幅を共有しています。また、各シャーシおよびケーブルごとにシステムの遅延時間が追加されるため、ループレートはバス上のデバイス数とデータによって決まります。
MXI-Express RIOでは、バス上のシャーシ間距離が7 mに制限されています。Ethernet RIOとEtherCATどちらのスレーブシャーシも、ハブ、スイッチ、またはリピータなしでデバイス間最大100 mまでサポートします。
注:EtherCATネットワークの範囲を拡張するには、EtherCAT対応のデバイスを使用する必要があります。通常のEthernetスイッチはEtherCATネットワークとは互換性がありません。
タイミングと同期により、時間におけるイベントの相関または協調が可能となります。これは多くの計測・制御アプリケーションで、特に多チャンネルになるほど重要な機能です。
MXI-Express RIOおよびEthernet RIOシャーシは、通信バス経由 (それぞれMXI-ExpressとFast Ethernet) でのネイティブ同期をサポートしていません。クロックの共有機能はバスアーキテクチャに組み込まれていないため、ネットワークトポロジが原因のパケットの見落としや衝突によって生じた遅延は考慮されていないということになります (システム上のノード間通信は非同期です)。ただし、シャーシ内の全モジュールはシャーシのバックプレーンを共有しているため同期することができ、複数のMXI-Express/Ethernet RIOシャーシを同期するには、CシリーズデジタルI/Oモジュールを使用してリファレンスクロック信号をシャーシ間で分散することができます。
EtherCATバス通信規格では、ネットワーク上の全デバイスが参照するマスタシステムクロックを定義しているため、EtherCAT RIOは他のシステムと自動で同期されます。そのためEtherCATは、緊密な同期 (1マイクロ秒未満) とハードウェアの確定性が求められるシステムには最適なバスです。
これは、通信バスのみによって生じたジッタのことをいいます。システム内のジッタの主な原因は、通常通信バスではなくコントローラに関連しています (特にWindowsコントローラの場合)。またシステム内のジッタは、システムアーキテクチャと、ホストに到達するまでにデイジーチェーン内でデータが対応しなければならないシャーシの数の影響を受けます。
確定的通信は、分散されたリアルタイムコンピュータノード間のデータ通信が制御ループの欠かせない部分となるアプリケーションでは重要です。つまり、ネットワークで生じたジッタは、制御ループのジッタとなるということです。許容できる制御ループジッタはそれぞれのシステムにより異なりますが、標準的な範囲は制御ループ時間の±10パーセントです。1 kHzの制御ループの場合、各反復は900~1,100 μ秒の範囲で実行することができ、それでもシステムは適切に応答します。
MXI-Express RIOとEtherCAT RIOの通信ジッタは、それぞれ10マイクロ秒未満と、1マイクロ秒未満です。Ethernet RIOデバイスには、ジッタの仕様がありません。これは、Fast Ethernet/ワイヤレス通信は確定的なデータ転送方式ではないためです。
理論上の帯域幅が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つあります。CompactRIOスキャンモードまたはLabVIEW FPGAホストインターフェイスAPIです。
EtherCAT/Ethernetシャーシでは、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種類の拡張オプションでは全て異なるバスを使用するため、コントローラ側の接続も異なります。
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 RIOは、Ethernetポートを備えたシステムなら全て使用できるほか、ほとんどの標準ネットワークポロジに対応しています。Ethernet RIOをリアルタイムコントローラのセカンダリEthernetポートに直接接続する場合は、Ethernet RIO拡張シャーシをリアルタイムコントローラのセカンダリEthernetポートに接続するには (英語) を参照してください。9149および9147 Ethernet RIOシャーシには、デバイス構成を容易にするためのUSBポートも含まれています。ただし、このポートはEthernetポートの代わりに使用するためのものではありません。
EtherCAT RIOシャーシは、CompactRIO、PXI、工業用コントローラプラットフォームなど、Ethernetポートを2個搭載したリアルタイムコントローラなら全てに対応しています。EtherCATでは、リアルタイムPXIコントローラにEthernetポートが2個搭載されていない場合、NI PXI-8231/8232 Ethernetインタフェース (NI 8234 Ethernetインタフェースは対応していません) が搭載されている必要があります。このインタフェースは、リアルタイムコントローラでのみサポートされています。また、NI-Industrial Communications for EtherCATドライバソフトウェアも必要なほか、2個目のEthernetポートが「EtherCAT」モードになっている必要があります。