NI製品ディスカッション

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

DAQ経由で複数ch.出力しようとしたときに「メモリが不足しています」と表示される

解決済み
解決策を見る

WAVファイルをDAQ経由でスピーカーから出力することはできましたが、それを複数ch.出力しようとしたときに「メモリが不足しています」と表示されました。

 

具体的には1ch.出力で再生できたので、同様のブロックダイアグラムを4つ作成し、動作させたところ上記のエラーが表示されました。

0 件の賞賛
メッセージ1/9
2,370件の閲覧回数

LabVIEWが使用できるメモリは、OSのビットネスによって異なります。

 

 

日本語版のLabVIEWは32ビット版ですので、デフォルトで2 GBまでメモリを使用できます。ただし、データを配列に格納する場合、連続したメモリアドレスに保存されるため、上限値に達しなくても連続したメモリアドレスが確保できないとメモリがいっぱいであるエラーが発生します。一般的な対処法は下記に記載されています。

 

 

 

次に同じデバイスに対するタスクをコピーしたようなコードでは、エラー-50103が発生すると思います。これは、デバイスが1つのタスクとして使用されている状態で他のタスクを実行しようとする際に発生します。

 

 

1つのタスクでは、複数チャンネルを含めることが可能ですので、以下のページを参考に1つのタスクで複数チャンネルから出力するようにする必要があります。

 

 

メッセージ2/9
2,274件の閲覧回数

Y.Ueno 様

 

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

メモリ不足に関しては、仮想メモリの設定を変えることで解消いたしました。

 

エラー50103に関してなのですが、DAQmx Write(Analog 2D DBL Nchan Nsamp) .viにするとソース(波形 DBL)とシンク(ダイナミックデータ)のタイプが異なるので配線ができないのですが何かソースとシンクを合わせる手法はないのでしょうか。

よろしくお願いいたします。

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

横から失礼いたします。

 

ひとまず以下の様にすることでワイヤーは繋がります。ご確認いただけますか?

 

DAQ Read Selection.jpg

0 件の賞賛
メッセージ4/9
2,220件の閲覧回数

TAKASU 様

 

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

返信いただいたとおりに配線をするとチャンネル数の違いからエラーが発生するようです。

0 件の賞賛
メッセージ5/9
2,160件の閲覧回数

複数チャンネルの指定については、まずフロントパネルにある物理チャンネルを指定する制御器で指定します。たとえば、以下のとおりです。0 :(コロン)3で、チャンネル0からチャンネル3までという意味になります。

 

cDAQ1Mod1/ao0:3

 

ダイアグラムでは、DAQmx書き込みVIの多態性セレクタでアナログ>>複数チャンネル>>複数サンプル>>1D波形を選択します。これで波形データタイプの1次元配列を入力できるようになります。

この配列で、要素0にチャンネル0のデータ、要素1にチャンネル1のデータ・・・といった形でデータを渡す必要があります。

 

たとえば、下記のように音声ファイルのステレオ(2チャンネル分)音声を指標配列関数で抽出して、分岐してから4チャンネルのデータを配列連結追加関数で波形データタイプの1次元配列にすることが可能です。

 

SS1.png

 

以前お送りしたSound File to Analog Output.viという名前のサンプルプログラムでも複数チャンネルでの書き込みをおこなうように設定しておりましたので、再度ご確認ください。

 

0 件の賞賛
メッセージ6/9
2,150件の閲覧回数

Y.Ueno 様

 

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

返信遅れて申し訳ございません。

 

記載していただいたとおりに配線したところ以下のエラーが発生しました。

 

エラーコード-200293がDAQmx Write (Analog 1D Wfm NChan NSamp).vi:6390001で発生

 

考えられる理由:

生成はまだ開始されておらず、バッファ内に利用できるスペースが十分にありません。

より大きなバッファを構成するか、バッファに合うデータ以上のデータを書き込む前に生成を開始します。

プロパティ: RelativeTo
相当する値: 現在の書き込み位置
プロパティ: Offset
相当する値: 0
プロパティ: Output.BufSize
相当する値: 3924900

タスク名: _unnamedTask<9>

0 件の賞賛
メッセージ7/9
2,121件の閲覧回数
解決策
受理者 yukinoshita

バッファサイズを232にされていますが、データ数も232サンプルであっていますか?

 

信号シミュレーションで232サンプルのデータを作成し、シミュレーションデバイスで実行してみると添付VIはエラーなく動作しています。

0 件の賞賛
メッセージ8/9
2,084件の閲覧回数

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

無事解決いたしました。

ありがとうございました。

0 件の賞賛
メッセージ9/9
2,081件の閲覧回数