08-10-2011 08:50 AM
デジタル変化検出を添付のviのように行っています。
デジタルポートが0Vから3.3Vになった時に立ち上がりを検出、3.3Vから0Vになった時に
立下りを検出しようと思っているのですが、実際に入力を入れても変化がありません。
基本的な問題と思いますが、ご教授お願いします。
解決済! 解決策の投稿を見る。
08-16-2011 05:38 AM
shinichiro 様
平素より NI 製品をご利用いただきまして誠にありがとうございます。
日本ナショナルインスツルメンツ技術部のワカスと申します。
今回、デジタル変化検出で収録されておりますが、どのようなハードウェアデバイスをご使用中でしょうか。
デジタル変検出手法とご利用頂けるハードウェアデバイスについて下記のリンクをご参照頂ければと思います。
NI-DAQmxでのデジタル変化検出:
http://zone.ni.com/devzone/cda/tut/p/id/9266
デジタル変検出のサンプルVIを添付致しますので、ご確認ください
お手数ですが,上記をお試し頂いて経過をご連絡頂けれと思います。
宜しくお願い致します。
08-18-2011 07:23 AM
日本ナショナルインスツルメンツ技術部 ワカス様
回答ありがとうございます。
変化検出は無事にできました。しかし、目的としてはデジタル信号が立ち上がった時にbooleanをtrue、
下がった時にbooleanをfaultとしたいのですが、どうすればよいでしょうか?添付ファイルでは一回だけしか変化検出を行いません。
ご教授お願いします。
08-19-2011 01:56 AM
shinichiro 様
ご連絡頂きましてありがとうございます。
ディジタル信号を検出されたいということですが、この場合、デジタルライン一個の変化を検出されたいのでしょうか。
もしそうであれば、添付頂きましたプログラムにてDaqmx チャネルの作成で「One Channel for each line」を設定する必要があります。同様に、立ち上がりと立ち下がりDAQmx物理チャンネルにも該当するディジタルラインを指定することが考えられます。
この場合、While ループの処理が早いと思いますが、待機関数を配置して頂き、変化検出をお試し頂けますでしょうか。
なお、もしディジタルラインの変化のみをご確認されたい場合は、DIをご利用頂ければと思われます。
サンプルプログラムを添付致しますので、ご参考頂ければと思います。
08-19-2011 01:57 AM
ファイルを添付致します。
08-21-2011 05:44 AM
日本ナショナルインスツルメンツ技術部 ワカス様
添付でいただいたRead Dig Chan.viではうまくいくのですが、添付ファイルのようにデジタル変化検出で行うと
うまくいきません。
具体的には、デジタルラインがHighの時にプログラムを起動すると、立下りしか検出せず、Lowの時にプログラムを
起動すると、立ち上がりしか検出しません。理想的にはデジタル入力のようにHighの時は常にLEDをon、Lowの時に
常にLEDをoffとしたいのでしが、どのようにすればよろしいのでしょうか?
また、デジタル入力での検出とデジタル変化検出を用いた検出では、時間的な精度は変わるのでしょうか?
ご教授お願いします。
08-22-2011 12:25 AM
shinichiro 様
ご返信頂きましてありがとうございます。
ディジタルラインの変化のみを検出されたい場合は、是非 Read Dig Chan.vi をご利用頂ければと思います。
こちらはソフトウェアタイミングでディジタルラインを収録し、ブールに表示します。
ディジタル変化検出はデジタルポート状態で変化を迅速に認識するため、ソフトウェアループをポールせずにハードウェアタイミングでポートを監視します。ブールで表示されるのはソフトウェアタイミングなので、多少時間ずれや変化が高速で反映されないことが考えられます。
そこで、プールの値をWhile ループの外部の配列に保存すると変化したビットをご確認頂けます。
添付ファイルをご参照頂ければと思います。
なお、デジタル変化検出はポートのあるラインに変化が生じたら、そのポートをラッチし、ポートを読み込むような仕組みとなっております。
以上、宜しくお願い致します。
08-22-2011 07:17 AM
日本ナショナルインスツルメンツ技術部 ワカス様
回答ありがとうございます。
最終的には添付ファイルのように複数のデバイスでアナログデータを取得しながら、他のパソコンから送られてくる
デジタルデータも取得したいと考えています。その際、Dev1,2,3ではアナログデータを30000Hzで取得しているので
同様にデジタルデータも30000Hzで取得したいと考えています。デジタル信号の変化検出を用いて、このように
サンプリングレートを指定しデータを取得することはできますでしょうか?
08-22-2011 10:22 PM
shinichiro 様
ご返信頂きましてありがとうございます。
ご添付頂きましたファイルを現在、確認中です。
下記の点についてご指示頂けますでしょうか。
ご利用中のハードウェアデバイスは何でしょうか。
この場合、ディジタル信号データを30000Hzで収録されたいでしょうか。
そこで、なぜディジタル変化検出をご使用されたいのでしょうか。
以上、宜しくお願い致します。
08-23-2011 01:44 AM
日本ナショナルインスツルメンツ技術部 ワカス様
回答ありがとうございます。
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で取得できないかと相談いたしました。
また、できるだけ時間的に正確にアナログとデジタルのデータを比較したいので、変化検出を用いようと思いました。
よろしくお願いします。