NI 9144 EtherCATスレーブシャーベンチマーク

内容

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


図1.NI PACとNI 9144スレーブシャーシを使用したEtherCAT I/Oシステム

EtherCATベンチマーク内容

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


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

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

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

NI 9144スレーブをEtherCATマスタをサポートするNI PACとともに使用する際は、ベンチマークコンポーネントは下図のようになります。


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

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

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 EtherCATスレーブシャーシとともに使用するCompactRIOとPXIシステム

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

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


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

注意:このリストには、EtherCATに対応する全てのNIコントローラは掲載されていません。詳しくはEtherCAT用NI製品選択ガイドをご覧ください。一般に、プロセッサの処理能力が高いほど、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. cRIO-9074、cRIO-9022、PXI-8106マスタコントローラのシステムループレート

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

関連リンク
NIスキャンエンジンのパフォーマンスベンチマーク(英語)

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にダウンロードすることもできます。

関連リンク
NI PACを使用したEtherCAT入門(英語)

 

Was this information helpful?

Yes

No