mum様がご所望の動作は集録したデータをデータの抜け落ち無しにリアルタイムに表示させるということでよろしいでしょうか。
表示する際のディスプレイのリフレッシュレートが60ヘルツ程度になりますので、それよりもある程度速い速度でのデータの更新が行われれば、ご所望のオシロスコープとしての動作が実現可能ですので、特にRealTimeを使用する必要性は無いように思われます。
現在、AI Read関数の「読み取るスキャン数」の設定はどのようになっておりますでしょうか。
(AI Start関数の「集録するスキャン数」が0に設定されているとしてご説明いたします。)
こちらの入力端子は、本関数が呼び出された時にバッファ内にあるデータを一度に読み出す個数の設定を行う箇所になります。何も入力されていない場合は、デフォルトの「-1」が使用され、関数が呼び出された時にバッファ内にあるデータを即時に全て読み出すようになり、本関数をループ処理などで繰り返し呼び出している場合には、ループの速度がソフトウェア処理の最大速度であるCPUの最大処理能力で繰り返されるようになります。ですので、この「読み取るスキャン数」をグラフ表示器等に一度に表示させたいデータの数に設定することによって、本関数が呼び出された時にバッファに指定したサンプルの数が保持されていなければ、集録されるまで本関数で待機するようになるため、CPUの使用率が低減されるようになります。また、表示のリアルタイム性としては、例えば、スキャンレートの1/100の値に読み取るスキャン数を設定することにより、10msに一度の頻度(100Hz)でデータの更新が行われるようになりますので、表示速度としては十分なレベルを得ることが可能です。LabVIEW RealTimeのご使用の前に上記内容をご検討頂ければと思います。サンプルコードの画像を添付いたしますのでご参考下さい。
上記内容の変更ですが、LabVIEW6.1ですと「従来型NI-DAQ」というドライバソフトウェアにしか対応しておりませんが、LabVIEW8.5ですと「NI-DAQmx」という、集録性能と利便性が大幅に進化したドライバソフトウェアに対応しておりますので、LabVIEWのバージョンアップを合わせてご検討頂けますと幸いです。
ちなみに、LabVIEW RealTimeに必要な環境は下記のとおりです。 PCI-6040Eをご使用とのことですので、弊社より提供させて頂いておりますPXIを使用したRTシステムは使用せずに、デスクトップPCをRealTimeターゲットとして使用することを前提にご紹介いたします。(PXIを使用したRTシステムにつきましては、
https://www.ni.com/en-us/shop/category/pxi-controllers.html をご参照下さい。)今回、ご紹介いたしますデスクトップPC(PCIボードを使用のため)をリアルタイムターゲットとして使用するシステムの概要はに記載がありますように、RTXとETSという2つの方法を提供しております。RTXとETSの詳細につきましては をご参照下さい。
LabVIW6.1 RealTimeはETSに対応しておらず、また、RTXにつきましても、最新バージョンの販売しか行っておりませんので、既にLabVIEW6.1用のRTXをお持ちであるということでなければ、LabVIEW8.5でのご使用になります。また、LabVIEW8.5であればETSとしてのご使用も可能です。
長文で分かり難い部分もあるかと思いますが、ご不明な点などございましたら、ご返信願います。
よろしくお願い申し上げます。
日本ナショナルインスツルメンツ技術部櫻田
このメッセージは 01-06-2008 11:42 PMに N.Sakurada が編集しています。
このメッセージは 01-06-2008 11:43 PMに N.Sakurada が編集しています。