Table of Contents
NI 9144拡張シャーシは、確定性に優れたネットワーク経由で、リモートI/Oの同期が行えるよう設計されています。このNI Cシリーズモジュール用8スロットシャーシは、NI LabVIEW Real-Timeモジュールでプログラムし、NI CompactRIOとEthernetポートを2個搭載した組込リアルタイムPXIコントローラからデイジーチェーン接続することができます。また、NI 9144にはLabVIEW FPGAモジュールでプログラムできるFPGA(field-programmable gate array)が搭載されていますので、カスタムタイミングやインライン処理にも対応できるインテリジェントな分散デバイスを実現できます。この技術資料では、LabVIEW Real-TimeのNIスキャンエンジンを使用して行ったNI 9144システムループレートのベンチマークの技術的詳細と結果について解説します。
[+] Enlarge Image
図1. NI 9144シャーシを使用したリアルタイムEthernet拡張システム
リアルタイムEthernetのベンチマーク
マスタコントローラとNI 9144の間の通信ネットワークには、EtherCATと呼ばれるリアルタイムのオープンEthernetプロトコルを利用します。EtherCATベンチマークには、ロジック、ドライバ、EhterCATネットワーク、そしてI/Oが含まれます。
[+] Enlarge Image
図2. マスタ/スレーブベンチマークのコンポーネント
EtherCATマスタデバイスの場合、マスタベンチマークは、ユーザのコードと、コードとEtherCATネットワークの間でデータを移動させるEtherCATドライバに依存します。一般に、EtherCATマスタコントローラは、その処理能力がユーザロジックとドライバでのデータの処理速度に大きく影響するため、システムのループレートの制約要因となります。コントローラの処理能力が高いほど、短時間でより多くのI/Oデータを処理できます。
一方スレーブデバイスのベンチマークは、パケットがEtherCATネットワーク上を移動する距離と、スレーブI/Oがアップデートするレートに依存します。EtherCATネットワークのパケット速度は、スレーブデバイスノード数、Ethernetケーブルの長さ、そして何よりもワイヤに送信されるI/Oデータの量など、多くの影響を受けます。確定性に優れたプロトコルにより、EtherCATネットワークのタイミングを高精度で計れるため、マスタはスレーブがデータをアップデートし転送するタイミングを知ることができます。当然のことながら、EtherCATネットワークの速度は、システムループレート全体における最速のコンポーネントです。
NI 9144をNIプログラマブルオートメーションコントローラ(PAC)とともに使用する際は、ベンチマークコンポーネントは下図のようになります。
[+] Enlarge Image
図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などの高性能コントローラの使用をお勧めします。
[+] Enlarge Image
図5. NI 9144とともに使用するCompactRIOとPXIシステム
マスタコントローラのベンチマーク
マスタコントローラ用のデフォルトのLabVIEWプログラミングモードでは、NIスキャンエンジンを実行します。NIスキャンエンジンは、シングルポイントI/Oの値をユーザ指定のレートでメモリに書き込むLabVIEWReal-Timeのコンポーネントです。マスタコントローラのベンチマークが目的なので、ユーザのコードを実行するのにかかる時間は計算しません。残るマスタベンチマークコンポーネントはドライバ速度ですが、これにはコントローラがデータをNIスキャンエンジンのメモリからI/O変数にマップするのにかかる時間などが含まれます。I/O変数を使用してNIスキャンエンジンのメモリマップからデータにアクセスし、LabVIEW VIのI/O変数ノードの各インスタンスが実行します。各I/O変数ノードの平均実行時間(英語)は、ブロックダイアグラム上のノード数が増えても一定に保たれる傾向にあります。あるマスタコントローラの実行時間を下記のチャートに示します。このデータに基づいて計算すると、各I/O変数ノードの平均実行時間は、NI cRIO-9072統合システムでは約8μ秒、NI cRIO-9022組込リアルタイムコントローラでは3.5 μ秒、NI PXI-8106デュアルコア組込コントローラでは0.3 μ秒となります。
[+] Enlarge Image
図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_chart.xls)を本技術資料の末尾にご用意していますので、お客様のシステムのループレートの概算にご利用ください。使用しているアナログおよびデジタルI/Oチャンネルの数と、LabVIEWコードの実行にかかるおおよその時間を入力すると、システムのループレートを計算できます。この式は特定のハードウェアセットアップに基づいていますので、別のI/Oモジュールを使用すると異なる結果になる場合があります。
関連リンク
NIスキャンエンジンのパフォーマンスベンチマーク(英語)
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にダウンロードすることもできます。
関連リンク
確定的リモートI/O入門
NI 9144拡張シャーシの内部
CompactRIOアドバイザ
確定的Ethernet製品選択ガイド
Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).
