NI 9144拡張シャーベンチマーク

内容

NI EtherCAT再構成可能I/O (RIO) 拡張シャーシは、確定性に優れたネットワーク経由で、リモートI/Oの同期が行えるよう設計されています。NI LabVIEW Real-Timeモジュールでプログラムされたシャーシは、以下のプラットフォームで2つのEthernetポートを備えたNI リアルタイムプログラマブルオートメーションコントローラ (PAC) からデイジーチェーン接続することができます。NI CompactRIO、PXI、NI 産業用コントローラまた、EtherCAT RIOシャーシにはLabVIEW FPGAモジュールでプログラムできるFPGA (field-programmable gate array) が搭載されていますので、カスタムタイミングやインライン処理にも対応できるインテリジェントな分散デバイスを実現できます。この技術資料では、LabVIEW Real-TimeのNI スキャンエンジンを使用して行ったNI 9144システムループレートのベンチマークの技術的詳細と結果について解説します。


図1. NI 9144シャーシを使用したリアルタイムEthernet拡張システム

リアルタイムEthernetベンチマーク

マスタコントローラとNI 9144の間の通信ネットワークには、EtherCATと呼ばれるリアルタイムのオープンEthernetプロトコルを利用します。高レベルでは、EtherCATベンチマークには、ロジック、ドライバ、EhterCATネットワーク、I/Oが含まれます。


図2.マスタ/スレーブベンチマークのコンポーネント

EtherCATマスタデバイスの場合、マスタベンチマークは、ユーザのコードと、コードとEtherCATネットワークの間でデータを移動させるEtherCATドライバに依存します。一般に、EtherCATマスタコントローラは、その処理能力がユーザロジックとドライバでのデータの処理速度に大きく影響するため、システムのループレートの制約要因となります。コントローラの処理能力が高いほど、短時間でより多くのI/Oデータを処理できます。 

一方スレーブデバイスのベンチマークは、パケットがEtherCATネットワーク上を移動する距離と、スレーブI/Oがアップデートするレートに依存します。EtherCATネットワークのパケット速度は、スレーブデバイスノードの数、Ethernetケーブルの長さ、そして何よりもワイヤに送信されるI/Oデータの量など、多くの要因に影響されます。確定性に優れたプロトコルにより、EtherCATネットワークのタイミングを高精度で計れるため、マスタはスレーブがデータをアップデートし転送するタイミングを知ることができます。当然のことながら、EtherCATネットワークの速度は、システムループレート全体における最速のコンポーネントです。

NI 9144 EtherCAT RIOシャーシをNI PACとともに使用する際、これらのベンチマークコンポーネントは下図のようになります。


図3.NIマスタ/スレーブベンチマークのコンポーネント

ロジックとはユーザが作成したLabVIEWコードで、ドライバとはLabVIEWのNI スキャンエンジンとNI-Industrial Communications for EtherCATソフトウェアのことです。EtherCATネットワークとは実際のEthernetケーブル経由の通信のことで、I/OとはCシリーズI/Oモジュールのことをいいます。それら全てのソフトウェアとハードウェアによって、NIシステム全体のシステムループレートが決まります。

NIシステムループベンチマーク

1回のスキャンループまたはサイクルで、EtherCATパケット (I/Oスキャン) の転送をマスタコントローラとNI 9144スレーブシャーシの間で同期させる必要があります。I/Oスキャンの際、マスタは新規の出力と命令を含むパケットをスレーブに送信し、スレーブはマスタの新規の入力値を含むパケットを返します。EtherCATパケットからのアップデートデータを使用して、マスタはプログラムスキャンを、NI 9144シャーシはスレーブのアップデートを開始します。プログラムスキャンとは、マスタがデータを処理してLabVIEWプログラムを実行するのにかかる時間のことです。スレーブアップデートとは、スレーブがDMA転送やデータ処理、I/Oのアップデートを行う時間のことです。そのため最小ループレートは、プログラムスキャンとスレーブアップデートのいずれか時間がかかる方の制約を受けます。


図4.スキャンサイクルのタイミング図

ネットワーク上のスレーブ数とI/O数が増えると、マスタコントローラがより多くのデータを処理しなくてはならないため、プログラムスキャンにかかる時間は長くなります。ただし、スレーブはI/Oを並列で同時にアップデートするため、スレーブアップデートの時間が増えることはありません。したがって、ネットワーク上のスレーブI/O数が多ければ多いほど、マスタのプログラムスキャンがボトルネックになる可能性が高くなります。アプリケーションのI/Oチャンネル数が多い場合は、マスタとしてPXIなどの高性能コントローラの使用をお勧めします。


図5.NI 9144シャーシを使用したCompactRIO/PXIシステム

マスタコントローラベンチマーク

マスタコントローラ用のデフォルトのLabVIEWプログラミングモードでは、NI スキャンエンジンを実行します。NI スキャンエンジンは、シングルポイントI/Oの値をユーザ指定のレートでメモリに書き込むLabVIEW Real-Timeのコンポーネントです。マスタコントローラのベンチマークが目的なので、ユーザのコードを実行するのにかかる時間は計算しません。そのため、残るマスタベンチマークコンポーネントはドライバ速度ですが、これにはコントローラがデータをNI スキャンエンジンのメモリからI/O変数にマップするのにかかる時間などが含まれます。I/O変数を使用してNI スキャンエンジンのメモリマップからデータにアクセスし、LabVIEW VIのI/O変数ノードの各インスタンスが実行します。各I/O変数ノードの平均実行時間は、ブロックダイアグラム上のノード数が増えても一定に保たれる傾向にあります。あるマスタコントローラの実行時間を図6のチャートに示します。このデータに基づいて計算すると、各I/O変数ノードの平均実行時間は、NI cRIO-9074統合システムでは約8マイクロ秒、NI cRIO-9022組込リアルタイムコントローラでは3.5マイクロ秒、NI PXI-8106デュアルコア組込コントローラでは0.3マイクロ秒となります。 


図6.各I/O変数ノードの平均実行時間

注記:このリストには、対応する全てのNIコントローラは掲載されていません。詳しくは「確定的Ethernet製品選択ガイド」をご覧ください。一般に、プロセッサの処理能力が高いほど、I/O変数は高速で実行します。

スレーブデバイスベンチマーク

お客様によく尋ねられるのが、マスタコントローラからデイジーチェーン接続できるNI 9144シャーシの最大数です。EtherCATプロトコルでは、理論上は1つのネットワークでの最大スレーブ数は65,535台としていますが、非常に多くのデバイスを1つのマスタコントローラで制御すると、スキャンレートが大幅に低下します。複数のマスタで実装することが推奨されます。現実には、マスタ側から見ると、スレーブデバイス数ではなくI/Oチャンネル数の方がシステムのスキャンレートにより大きな影響をもたらします。図4に示したとおり、EtherCATネットワークにより多くのデータが送信されると、マスタのプログラムスキャンは増え、一般にスレーブのアップデートは低下します。そのため、各スレーブデバイスに追加するオーバーヘッドの量に関わらず、300チャンネルのI/Oを2台のNI 9144シャーシで分けても20台のNI 9144シャーシで分けても、システムのループレートはほぼ同じになります。 

システムループレート結合

表1は、マスタコントローラとNI 9144のベンチマークを結合して、最小サイクルタイム、つまりシステムのループレートを表したものです。 

最小サイクルタイム = ドライバ + EtherCATネットワーク + I/Oアップデート

これらのベンチマークには、ユーザのコードの実行にかかる時間は含まれていません。コードにかかる時間を適宜追加し、詳細は関連リンクを参照してください。

表1.システムループレート

2種類のコントローラと4種類のI/Oモジュールのテストに基づいたベンチマーク表 (system_loop_rate_chart2.xls) を本技術資料の末尾にご用意していますので、お客様のシステムのループレートの概算にご利用ください。使用しているアナログおよびデジタルI/Oチャンネルの数と、LabVIEWコードの実行にかかるおおよその時間を入力すると、システムのループレートを計算できます。これらの式は特定のハードウェアセットアップに基づいていますので、別のI/Oモジュールを使用すると異なる結果になる場合があります。

NI 9144のみベンチマーク

NI 9144拡張シャーシには他社のEtherCATマスタデバイスを使用することもできますが、LabVIEWによる簡単なプログラミングは利用できません。そのような場合のために、マスタベンチマークコンポーネントを使用しないNI 9144とEtherCATネットワークのみでのベンチマークも行っています。これは実現可能な最小のサイクルタイムである点にご注意ください。実際のシステムループレートを計算するには、マスタのプログラムスキャンと実行時間を特定し比較する必要があります。計算式は2つの部分からなります:

スレーブの最小サイクルタイム = パケット伝送時間 + スレーブのアップデート時間

パケット伝送時間

マスタから送信されたEtherCATパケットのパケット伝送時間とは、フレーム伝送、通信遅延、伝送中に生じたジッタを合計したものです。 

パケット伝送時間 = フレーム伝送時間 + 通信遅延 + ジッタ

フレーム伝送は、1バイトのEtherCATデータあたり80ナノ秒、データを含むEtherCATフレームは1つにつき5マイクロ秒かかります。(この総EtherCATデータは、NI 9144シャーシのI/Oチャンネルの数と種類に直接対応します)。 通信遅延は、NI 9144シャーシで600ナノ秒、Ethernetケーブル1メートルあたり5ナノ秒となります。

スレーブアップデート時間

EtherCATパケットが全てのスレーブを経由して停止することなくマスタに戻った後、全てのスレーブは入力を読み取り、出力を書き込みます。そのため、システムの最小スレーブサイクルタイムは、最悪条件のスレーブアップデート時間によって決まります。 

スレーブアップデート時間 = DMA転送時間 + 最悪条件のモジュールタイミング

これを特定するには、全てのNI 9144シャーシの個々のモジュール構成を考慮する必要があります。シャーシ内のモジュールに基づいて、入出力データのDMA転送時間を計算することができます。また、最悪条件での開始、変換、屈折タイミングのモジュールを特定することもできます。それらの値を加算することで、最悪条件のスレーブアップデート時間を求めることができます。

注記:LabVIEW 2009のリリースにより、NI 9144のモジュールはLabVIEW FPGAモジュールを使用してハードウェアレベルでプログラミングできるようになりました。したがって、システムのループレートよりも速いアップデートレートを持つモジュールのメリットを活用することができます。I/Oをモジュールの最大速度で実行することで、FPGAコードを使ってカスタム信号操作とインライン処理を行い、最終結果をマスタコントローラに返すことができます。

スレーブサイクルタイム結合

NI 9144では様々なモジュールを組み合わせて使用できるため、それらの全式を適用し、最小スレーブサイクルタイムを正確に計算するためのベンチマーク表 (ni_9144_only_benchmarks.xls) を本技術資料の末尾にご用意しています。値を正しく入力したら、計算済みのスレーブベンチマークに他社マスタのベンチマークを追加して、アプリケーション全体のシステムアップデートレートを特定することができます。高速パフォーマンスをさらに向上させるには、LabVIEW FPGA機能を使用してカスタムインテリジェンスをNI 9144にダウンロードすることもできます。

Was this information helpful?

Yes

No