03-27-2015 04:13 AM
お世話になっております。
USB6361とUSB6341の2台を1台のPCで使用し、6361のAnalogTrigger(開始トリガ)で6361側からCOをPFI0 or 1から出力し6341のDIへデジタルトリガによるDOを試みております。
Start Task実行後、6361の方はAnalog Triggerをかけている電圧閾値を超えるまで開始しませんが、6341側ではStart Task実行後ai0-3までの4chに入ってくる値をReadしたいのですが、Analog Triggerを6361で使用すると6341側もトリガが入らないと作動しないものでしょうか?
03-28-2015 08:47 PM
こんにちは。
今回の投稿は、前回の投稿の続きでしょうか
6361がアナログトリガ待ちの状態そして6341 側のDO がトリガ待ちの状態であっても、6341 側のアナログタスクは別々のタイミングで実行できますので、
6341 のai0-3 の信号は任意の長さで集録できます。
前回、ソフトウェアタイミングになると説明したのは、一つのDAQ で色々行おうとしてたからです。
NI のDAQ はアナログ入力、アナログ出力、デジタル入力、デジタル出力でタスクの動作がそれぞれまとめられているのでトリガの融通がきかないときがあります。
ただDAQ を複数用意すれば、トリガの設定方法は色々と可能性がふえますよ。
04-01-2015 08:38 PM
6361のアナログトリガによるCOの3ch出力、および6341でアナログ4ch計測はできるようになりました。
ありがとうございます。
ただ、この後実現したかったCO3chの出力タイミング制御がどうしても実現できなくて悩んでいます。
もし、解決の仕方があるようでしたら教えていただけますでしょうか?
実現したかったのは、
アナログトリガ開始による3種類のパターンを出力します。
ai/StartTriggerの開始でCountOutTaskに以下のルートを設定してます。
Ctr0 - PFI0
Ctr1 - PFI1
Ctr2 - PFI2 (PFI0と同じパターンを出力)
analog in(trg)
____|^^^^|__________|^^^^|______|^^^^|___
PFI0(CO)
____|^^^^|__________|^^^^|______|^^^^|___
PFI1(CO)
________|^^^^^^^^^^^|____|^^^^^^^|__ _|^^^^^^
上図は便宜上アナログ信号をデジタル信号のように書いており、アナログトリガが立ち上がり(_|^)になったタイミング
であることを伝えたかったのですが、
要は、PFI0はアナログトリガがかかると毎回指定時間幅のパルスを出すようにしています。
問題はPFI1のパルスですが、これはPFI0が立ち下がったタイミングで立ち上がり、次のトリガがかかるまでずっと
パルスを出力するようにしたいのです。
PFI0(PFI2)については決まった時間をHighにすればよいのでパルスは作れますが、
PFI1の場合はPFI0のN回目の立ち下がり~N+1回目の立ち上がりまでのパルス幅が毎回異なるため、
設定ができないわけです。
この問題を解決する有効な手段があれば是非教えていただけると幸いです。
よろしくお願いいたします。
04-01-2015 10:55 PM
こんにちは。
|^^^^| という表現は何個分のパルスなのでしょうか。^^^が続いている間はHIGH ということでしょうか
6361 や6341といったDAQ には停止トリガという機能があり、
あるラインのHIGH LOW状態により出力のオンオフ を切り替えることができます。
ですので例えばPFI 8 を条件ラインとして使用して、片方を出力させ、実質的に反転させるということも可能かもしれませんが、
開始トリガと併用できないみたいなので難しいところですね。
DAQ などで連携が必要な複雑なタイミングを実現しようとすると色々と頭が痛くなりますので、
USB タイプの安いFPGA ボードを検討してみてはいかがですか。FPGA であれば上記の様なタイミングや
デジタル入出力のためにLabVIEW のプログラムを書いて実現できます
04-01-2015 11:18 PM
" ^^^ "の意味はこの期間はHighの状態という意味です。
ですので|^^^|は1回のパルス幅ということです。
わかり難くてすみません。
停止トリガとは、Ansi Cで言うDAQmxSetExportedPauseTrigOutputTermのことでしょうか?
停止トリガについては使い方がよくわかっていないので、早速調べてみます。
それと、お勧めされた
NI USB-7845Rのページをざっと見ましたが、これはアナログトリガも使用できるのでしょうか?(仕様にはトリガについては記載が
見つからなかったので)。
04-03-2015 10:03 PM
こんにちは。
停止トリガはPause Trigger 関連の関数になりますね。
よかったら下記ユーザーマニュアルの、カウンタ出力やデジタル出力の停止トリガの項目などを見てみてください。
なおFPGA でもアナログトリガは使えます。使えるというよりも、トリガ機能をもった電子回路をプログラムしながら
構築するといった方が正しいかもしれません。
ただ一つ問題としてテキスト言語を使用されていることを忘れていました。
NI 製のFPGAボードはLabVIEW が必要となります。ですので、今回のアプリケーションでの使用は難しいかもしれませんが、
今後似たようなトリガ方法やアプリケーションを開発されるのであれば検討してみてください。
04-06-2015 06:50 PM
情報下さり、ありがとうございます。
Pause Triggerでは、Start Triggerと一緒に使用できないことから、AIのトリガ経由でSignalEvent関数を使い1,2msecの遅延はあるものの
DOのOn/Off切り替えをその時に行うことで対応することにしました。
FPGAだと思ったような処理が遅延なくできるのかもしれませんが、今回はすでに決まったデバイスで対応しないといけなかったので、
上述した方法で良しとしました。
貴重な御助言頂き、ありがとうございました。