VIPMダウンロード:
cRIO波形リファレンスライブラリはNIコミュニティから入手できます。 このツールネットワークから簡単にインストールすることができ、新しいアップデートがリリースされると、自動的に通知されます。
再構成可能I/O (RIO) アプリケーションの多くは、同期された複数のNI Cシリーズモジュールから連続的なデータを集録します。このチュートリアルでは、RIOの最適化とベストプラクティスを組み込んだCompactRIOのデータ収集VIについて説明するとともに、アプリケーションの開発を始めるにあたって役立つサンプルプログラムを紹介します。
図1. 連続集録のサンプル
cRIO Wfmライブラリは、vi.lib¥NIディレクトリにインストールされ、LabVIEWのアドオンパレットの下に表示されます。
図2: cRIO Wfmリファレンスライブラリパレット
cRIO Wfm Examples.lvprojは、一般的な集録モードとホストコードをFPGAコードにリンクする方法を示しています。 このサンプルは、LabVIEW環境にサンプルプロジェクトとしてインストールされ、スタートアップウィンドウの「プロジェクトを作成」オプションから開くことができます。
このプロジェクト自体は次の場所にもあります。
National Instruments¥LabVIEW [Version]¥ProjectTemplates¥Source¥cRIOWfm
ソースインストールの編集を回避するには、このサンプルを別のFPGAターゲットに移動し、全てのVIを「名前を付けて保存」する必要があります。 詳細は、ni.com/infoで、Info Code欄に「fpgaex」と入力してください。
図3.サンプルプロジェクトの概要
有限集録:有限集録モードは、一定数のサンプルを集録してから集録を終了するようFPGAに指示します。この集録モードでは、ConfigTiming.viがBufferConfig.viを呼び出し、ホストアプリケーションのデータバッファを有限集録のポイント数と同じサイズに設定します。
サブセット読み取りを伴う有限集録:ここでも、有限集録はチャンネルごとに要求されるサンプルをすべて保持できる十分なメモリを割り当てます。Read(poly).viにはSamps Read per Chanという名前の制御器があり、これを利用して各呼び出しで返されるブロックサイズを指定できます。 このため複数のサブセットで有限集録を読み取ることができ、多くの処理アプリケーションで役に立ちます。
リアームソフトウェア開始トリガ装備の有限集録:有限集録が終了すると、FPGAが自動的に次の集録に備えてリアーム (トリガを待つ状態になること) します。Start.viを呼び出すだけで、次の有限集録を実行することができます。
連続集録:連続集録モードは、停止コマンドが送信されるまで、またはエラー (FIFOオーバーフロー、モジュールアンダーフローなど) が発生するまで無限にポイントを集録するようFPGAに指示します。この集録モードでは、 BufferCfg.viを使用して、明示的にホストアプリケーションのデータバッファサイズを読み取りサイズの数倍に設定します。サンプルプログラムではデフォルトでサイズを10倍にしています。ホストアプリケーションのデータバッファがいっぱいになると、FPGAでFIFOオーバーフローが発生して集録は停止します。
開始/停止/一時停止機能装備の連続集録:ホストコントローラ上で利用可能なメモリ量に対して有限集録が大きすぎる場合は、ステートマシンを使って、期間を限定して連続集録を実行します。Stop.viを呼び出すと、FPGAはただちに集録を停止し、リアームしてStart.viガ呼び出されるまで待機します。以降の集録で古いデータが返されないようにするため、停止VIはホストのデータバッファの一括消去も行います。
以下の一覧に示す各コントローラで、CompactRIOの連続集録サンプルプログラムで連続的にデータを集録し、ローカルのテクニカルデータ管理ストリーミング (TDMS) ファイル、ローカルのバイナリファイル、またはTCP/IPを介してリモートホストへストリーミングしました。帯域幅の値は、無限に (またはハードドライブがいっぱいになるまで) ストリーミング可能なデータの量を表しています。
ディスクへのストリーミング [TDMS]: サンプリングレート= 51.2 kS/s
コントローラ | 1D Wfm SGL | 2D配列SGL | インタリーブSGL |
---|---|---|---|
NI 9074 | 6チャンネル (1.23 MB/s) | 7チャンネル (1.43 MB/s) | 8チャンネル (1.64 MB/s) |
NI 9068 | 8チャンネル (1.64 MB/s) | 8チャンネル (1.64 MB/s) | 9チャンネル (1.84 MB/s) |
NI 9014 | 8チャンネル (1.64 MB/s) | 10チャンネル (2.05 MB/s) | 13チャンネル (2.66 MB/s) |
NI 9076 | 9チャンネル (1.84 MB/s) | 12チャンネル (2.45 MB/s) | 15チャンネル (3.07 MB/s) |
NI 9022 | 10チャンネル (2.05 MB/s) | 13チャンネル (2.66 MB/s) | 19チャンネル (3.89 MB/s) |
NI 9024 | 15チャンネル (3.07 MB/s) | 19チャンネル (3.89 MB/s) | 27チャンネル (5.53 MB/s) |
ディスクへのストリーミング [Binary]: サンプリングレート= 51.2 kS/s
コントローラ | インタリーブSGL |
---|---|
NI 9074 | 8チャンネル (1.64 MB/s) |
NI 9068 | 9チャンネル (1.84 MB/s) |
NI 9014 | 18チャンネル (3.69 MB/s) |
NI 9076 | 20チャンネル (4.10 MB/s) |
NI 9022 | 25チャンネル (5.12 MB/s) |
NI 9024 | 36チャンネル (7.37 MB/s) |
TCP/IP上のストリーミング:サンプリングレート= 51.2 kS/s
コントローラ | 1D Wfm SGL | 2D配列SGL | インタリーブSGL |
---|---|---|---|
NI 9074 | 12チャンネル (2.46 MB/s) | 13チャンネル (2.66 MB/s) | 18チャンネル (3.69 MB/s) |
NI 9014 | 12チャンネル (2.46 MB/s) | 14チャンネル (2.87 MB/s) | 23チャンネル (4.71 MB/s) |
NI 9022 | 16チャンネル (3.28 MB/s) | 20チャンネル (4.10 MB/s) | 35チャンネル (7.17 MB/s) |
NI 9024 | 29チャンネル (5.94 MB/s) | 32チャンネル (6.55 MB/s) | 45チャンネル (9.22 MB/s) |
NI 9068 | 40チャンネル (8.19 MB/s) | 40チャンネル (8.19 MB/s) | 45チャンネル (9.22 MB/s) |
このリファレンスアプリケーションはNI Systems Engineeringグループによって作成されました。
フィードバックがございましたら、CompactRIO波形リファレンスアプリケーションのディスカッションフォーラムにお送りください。