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モジュールを使用すると異なる結果になる場合があります。