NI製品ディスカッション

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

デジタル変化検出

解決済み
解決策を見る

デジタル変化検出を添付のviのように行っています。

デジタルポートが0Vから3.3Vになった時に立ち上がりを検出、3.3Vから0Vになった時に

立下りを検出しようと思っているのですが、実際に入力を入れても変化がありません。

 

基本的な問題と思いますが、ご教授お願いします。

0 件の賞賛
メッセージ1/38
5,285件の閲覧回数

shinichiro 様

平素より NI 製品をご利用いただきまして誠にありがとうございます。
日本ナショナルインスツルメンツ技術部のワカスと申します。

 

今回、デジタル変化検出で収録されておりますが、どのようなハードウェアデバイスをご使用中でしょうか。
デジタル変検出手法とご利用頂けるハードウェアデバイスについて下記のリンクをご参照頂ければと思います。

NI-DAQmxでのデジタル変化検出:
http://zone.ni.com/devzone/cda/tut/p/id/9266

 

デジタル変検出のサンプルVIを添付致しますので、ご確認ください

 

お手数ですが,上記をお試し頂いて経過をご連絡頂けれと思います。

宜しくお願い致します。

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

日本ナショナルインスツルメンツ技術部 ワカス様

 

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

変化検出は無事にできました。しかし、目的としてはデジタル信号が立ち上がった時にbooleanをtrue、

下がった時にbooleanをfaultとしたいのですが、どうすればよいでしょうか?添付ファイルでは一回だけしか変化検出を行いません。

ご教授お願いします。

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

shinichiro 様

ご連絡頂きましてありがとうございます。

 

ディジタル信号を検出されたいということですが、この場合、デジタルライン一個の変化を検出されたいのでしょうか。

もしそうであれば、添付頂きましたプログラムにてDaqmx チャネルの作成で「One Channel for each line」を設定する必要があります。同様に、立ち上がりと立ち下がりDAQmx物理チャンネルにも該当するディジタルラインを指定することが考えられます。

この場合、While ループの処理が早いと思いますが、待機関数を配置して頂き、変化検出をお試し頂けますでしょうか。

 

なお、もしディジタルラインの変化のみをご確認されたい場合は、DIをご利用頂ければと思われます。
サンプルプログラムを添付致しますので、ご参考頂ければと思います。

0 件の賞賛
メッセージ4/38
5,229件の閲覧回数

ファイルを添付致します。

0 件の賞賛
メッセージ5/38
5,228件の閲覧回数

日本ナショナルインスツルメンツ技術部 ワカス様

 

添付でいただいたRead Dig Chan.viではうまくいくのですが、添付ファイルのようにデジタル変化検出で行うと

うまくいきません。

具体的には、デジタルラインがHighの時にプログラムを起動すると、立下りしか検出せず、Lowの時にプログラムを

起動すると、立ち上がりしか検出しません。理想的にはデジタル入力のようにHighの時は常にLEDをon、Lowの時に

常にLEDをoffとしたいのでしが、どのようにすればよろしいのでしょうか?

 

また、デジタル入力での検出とデジタル変化検出を用いた検出では、時間的な精度は変わるのでしょうか?

ご教授お願いします。

0 件の賞賛
メッセージ6/38
5,217件の閲覧回数

shinichiro 様

 

ご返信頂きましてありがとうございます。

ディジタルラインの変化のみを検出されたい場合は、是非 Read Dig Chan.vi をご利用頂ければと思います。

こちらはソフトウェアタイミングでディジタルラインを収録し、ブールに表示します。

 

ディジタル変化検出はデジタルポート状態で変化を迅速に認識するため、ソフトウェアループをポールせずにハードウェアタイミングでポートを監視します。ブールで表示されるのはソフトウェアタイミングなので、多少時間ずれや変化が高速で反映されないことが考えられます。


そこで、プールの値をWhile ループの外部の配列に保存すると変化したビットをご確認頂けます。
添付ファイルをご参照頂ければと思います。

 

なお、デジタル変化検出はポートのあるラインに変化が生じたら、そのポートをラッチし、ポートを読み込むような仕組みとなっております。

 

以上、宜しくお願い致します。

0 件の賞賛
メッセージ7/38
5,200件の閲覧回数

日本ナショナルインスツルメンツ技術部 ワカス様

 

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

最終的には添付ファイルのように複数のデバイスでアナログデータを取得しながら、他のパソコンから送られてくる

デジタルデータも取得したいと考えています。その際、Dev1,2,3ではアナログデータを30000Hzで取得しているので

同様にデジタルデータも30000Hzで取得したいと考えています。デジタル信号の変化検出を用いて、このように

サンプリングレートを指定しデータを取得することはできますでしょうか?

0 件の賞賛
メッセージ8/38
5,189件の閲覧回数

shinichiro 様

 

ご返信頂きましてありがとうございます。
ご添付頂きましたファイルを現在、確認中です。

下記の点についてご指示頂けますでしょうか。


ご利用中のハードウェアデバイスは何でしょうか。
この場合、ディジタル信号データを30000Hzで収録されたいでしょうか。
そこで、なぜディジタル変化検出をご使用されたいのでしょうか。

 

以上、宜しくお願い致します。

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

日本ナショナルインスツルメンツ技術部 ワカス様

 

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

PXI-1045のシャーシにPXI-6259,PXI6254×2,PXI6220でデータを取得しています。PXI6259,PXI6254×2で30,000Hzでアナログデータを取得し、

PXI6220で4000Hzでアナログデータを取得しています。PXI6220はBNC2090Aを経由しているので、PXI6220を用いてデジタルデータも取得しています。

 

デジタルデータのデータとしては他のパソコンから実験のタスクの状況(0→1→2→3→0と周期的に変化)を取得しています。最終的にはステップ2の時の

データを使いたいので、ステップ2の間のアナログデータを切り出す必要があります。その際にアナログデータとデジタルデータを比較しながら行うので、

アナログデータと同じサンプリングレートのほうが比較しやすいので、30,000Hzで取得できないかと相談いたしました。

 

また、できるだけ時間的に正確にアナログとデジタルのデータを比較したいので、変化検出を用いようと思いました。

よろしくお願いします。

0 件の賞賛
メッセージ10/38
5,168件の閲覧回数