NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

PCI-6030Eを用いていた時、アナログデータの読み込みにNIDAQmx.libの

PCI-6030Eを用いていた時、アナログデータの読み込みにNIDAQmx.libの
DAQmxReadBinaryU16
を使用していました。

今回PCI-6281へと変更しましたが、分解能が18Bitに上がっており、上記関数が
使用できません。そこで
DAQmxReadBinaryU32
を使用してデータを読み込むようにしました。

この変更で読み込みそのものは動く様になりましたが、他のモジュールとの互換
性の為、データを16Bitへと落とし込む必要があります (精度は従来通りの16Bit
で十分です)。この場合、どのようにデータの落としこみをすればよいのでしょ
うか?

お教え願います よろしくお願いします

0 件の賞賛
メッセージ1/3
3,327件の閲覧回数

tsuji 様


日本ナショナルインスツルメンツの原でございます。

平素より NI 製品をご利用頂きまして誠にありがとうございます。


32bit のデータを 16bit に落としたいという理解でよろしいでしょうか。
その場合ですと、LabVIEW の「デシメート1D配列」関数にて可能かと思います。

(プログラミング » 配列 » デシメート1D配列)

 

半分のビット数にするには、元のデータ配列を入力端子に結び、上の出力端子からは半分になったデータが出力されます。
因みに、関数を下に引き伸ばしていただくと、3分の1、4分の1等、データ数をより減らすことも可能などで、ご参考ください。


お試し頂き結果をご連絡いただけますでしょうか。

 

宜しくお願い致します。


+---+---+---+---+---+---+---+---+---+---+---+---+

日本ナショナルインスツルメンツ株式会社

技術部  原 智 (Satoshi Hara)

 

弊社のサポートに関する情報は以下のサイトをご覧ください。

http://www.ni.com/support/ja

技術データベース: http://www.ni.com/kb

お問い合わせフリーダイヤル  0120-527196

+---+---+---+---+---+---+---+---+---+---+---+---+

メッセージ2/3
3,314件の閲覧回数

Hara様

ご回答有り難うございました

今回 ANSI CとNIDAQmx.libの機能の中で実装する必要があった為

使用できませんでした。

英語のフォーラムに似たような記述があったので、
そちらを参照し
DAQmxReadBinaryU32

関数で取得したデータを2ビット右シフトした後、
0xFFFFとビットごとの論理積を取ることで
18Bit → 16Bitの変換をしました。

 

誠に有り難うございました

今後ともよろしくお願い致します

 

0 件の賞賛
メッセージ3/3
3,230件の閲覧回数