NI製品ディスカッション

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

Linuxにおける基準化シグナルエンドの選択方法

LinuxでUSB6009を使っているのですが、
/usr/local/natinst/nidaqmxbase/examples/ai内のサンプルプログラムを参考にしています。
しかし、差動モードで動作しているようです。
基準化シグナルエンドモードで動かして、使用チャンネル数を増やしたいのですが
どのように指定すればいいのでしょうか。
0 件の賞賛
メッセージ1/8
4,255件の閲覧回数
numadu様

日本ナショナルインスツルメンツの井関と申します。
差動/基準化シングルエンド/非基準化シングルエンドの切り替えは、DAQmxCreateAIVoltageChan関数にて設定を行います。

DAQmxCreateAIVoltageChan (TaskHandle taskHandle, const char physicalChannel[ ], const char nameToAssignToChannel[ ], int32 terminalConfig, float64 minVal, float64 maxVal, int32 units, const char customScaleName[ ]);

DAQmxCreateAIVoltageChan内の引数terminalConfigは、デフォルトは差動モードになっておりますので、基準化シングルエンドはDAQmx_Val_RSEと設定して変更できます。

関数についての詳細は下記フォルダのDAQmx Base C Function Referenceをご参照下さい。
/usr/local/natinst/nidaqmxbase/documentation

ご不明な点などございましたらご連絡下さい。
よろしくお願い致します。
0 件の賞賛
メッセージ2/8
4,240件の閲覧回数

動作を確認いたしましたが、どのチャンネルも何も接続していない状態で1.4ボルトの測定結果が出てしまいます。ただ実際につなげてみると電圧は測れているようです。これは仕様なんでしょうか?

また、マニュアルをみて、思ったのですが使用できるチャンネルは3chまででしょうか?7chまで使用しようとするとエラーが発生しました。200036、ヘッダファイルによると

#define DAQmxErrorInvalidLoopIterationsInScript                                (-200036)

だということです。

4chまでの指定でも同様でした。

基準化シグナルエンドモードに限らず0~7chまで同時に使用できる方法はありませんでしょうか。

 

0 件の賞賛
メッセージ3/8
4,231件の閲覧回数
numadu様

チャンネルに何も信号をつなげていない場合は、電圧値はいくつと表示されるかは不明になりますので、numadu様の現象は問題ありません。
下記の技術サポートページが参考なるかと思いますのでURLを記載します。

「信号が接続されていない場合、いくつかのスキャンされたチャネルの信号に同じ信号が現れる。」
http://digital.ni.com/public.nsf/websearchj/DA365AD5C6DF896E86256C530020AA09?OpenDocument

USB-6009は差動で4ch、シングルエンドで8chご使用になっていただけます。
繰り返しの条件でエラーが起きているようですので、そのあたりをご確認いただけますでしょうか。
問題が解決しない場合はまたご連絡下さい。よろしくお願い致します。
0 件の賞賛
メッセージ4/8
4,195件の閲覧回数

返信ありがとうございます。

繰り返しの条件でエラーが起きているのでは、という件なのですが、こちらは方法としては

プログラム内でDAQmxBaseCreateAIVoltageChanphysicalChannelの項目を通常Dev1/ai0:3として動作させていたところをDev1/ai0:7として動かしたときにエラーが発生しました。

またマニュアルにも

The names of the physical channels to use to create virtual channels. You can specify a list or range of physical channels such as the following: Dev1/ai0:3 or Dev1/ai0,Dev1/ai2

とあり、ch4~7の動作をサポートしていないような印象を受けます。

まったく見当違いなことをしているのかもしれませんが、誤りがあればご指摘ください。

0 件の賞賛
メッセージ5/8
4,180件の閲覧回数
numadu様

channelの書き方としては、Dev1/ai0:7で、その場合は、DAQmxBaseCreateAIVoltageChanのterminalConfigの項がDAQmx_Val_RSEもしくはDAQmx_Val_NRSEと設定されていれば問題ありません。
もしDAQmx_Val_DiffでDev1/ai0:7の設定にした場合は、差動モードでは4チャンネル以上集録できませんので、サンプルであればSpecified value for input terminal configuration is not valid for this channel.とエラーを返します。

チャンネル名以外にサンプルプログラムを変更されている点はありませんでしょうか。
0 件の賞賛
メッセージ6/8
4,154件の閲覧回数
この不具合がでてから、RSEモードで0から3chを使ってデータ採取を行っており、
その間に何回かのプログラムの改変を行っていくうちにこの不具合が解消されたようです。
 
当時からRSEモードでおこなっており、原因について心当たりがありません。
 
度々なるご指摘ありがとうございました。
 
 
0 件の賞賛
メッセージ7/8
4,139件の閲覧回数
numadu様

直接的な回避方法をお伝えできなく申し訳ありませんでしたが、現在問題が解消されているとのこと、何よりです。
今後ともよろしくお願い致します。
0 件の賞賛
メッセージ8/8
4,136件の閲覧回数