NI製品ディスカッション

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

外部トリガに関して

現在、PXI-6251とSCB-68、LabVIEW2009SP1を使用し実験をしています。

内容は、時間軸方向のある区間におけるパルスをパソコンに取り込みその数をカウントするといったものです。

このとき、パルスカウントを開始するタイミング、終了するタイミングを外部クロックで制御したいと考えていますが、可能でしょうか?

宜しくお願いします。 

 

0 件の賞賛
メッセージ1/16
4,921件の閲覧回数

TAROKICHI 様

 

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

 

DAQmxトリガ関数を用いれば、エッジカウントの開始に関してはご希望の動作が行えます。ただし、そのプログラムではカウント終了の
立下りが反映されませんので、トリガ信号をカウンタのゲートに渡し、トリガ信号として使用しているデジタル信号が論理Highか論理Lowかで
エッジカウントの値が有効か無効かを分けることが出来ます。

 

具体的には、DAQmxトリガプロパティノードを使用します。ご希望の動作を行うサンプルをご用意致しましたので添付致します。
こちらのサンプルでは、カウンタ1のゲート用入力端子であるPFI4のラインをトリガラインと指定しており、PFI4に渡しているデジタル信号が
論理Lowの場合はエッジカウントがカウントアップしない設定になっております。

 

上記につきまして何かご不明点等ございましたらどうぞお気軽にご連絡下さい。
今後とも宜しくお願い致します。

 

日本ナショナルインスツルメンツ技術部
伊藤

メッセージ2/16
4,906件の閲覧回数
日本ナショナルインスツルメンツ技術部
伊藤 様

早速のご回答ありがとうございます。
添付していただいたサンプルですが、私の使用しているLabVIEWのバージョンでは開くことができませんでした。
申し訳ありせんが、なにか解決策はないでしょうか?
よろしくお願いします。
0 件の賞賛
メッセージ3/16
4,902件の閲覧回数

TAROKICHI様

 

早速ご連絡頂きまして誠にありがとうございました。
LabVIEW2009SP1用に再保存したものを添付いたします。

 

ご利用のLabVIEWのバージョンが異なることを失念しておりまして、
大変申し訳ございませんでした。こちらのサンプルをご参考にして頂けますと幸いです。

 

日本ナショナルインスツルメンツ技術部
伊藤

メッセージ4/16
4,897件の閲覧回数

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

伊藤 様

 

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

サンプルファイルの動作確認しました。希望通りに動作しており、大変感謝しています。

もう一つ質問させていただきたいのですが、よろしくお願いします。

添付ファイルの画像のように、「数bitの入力信号のHighとLowを、 トリガ信号の立ち下がり時に

パソコンに取り込む」という動作を考えていますが、

サンプルにいただいたファイルを応用すれば可能でしょうか?

 

何度も質問して申し訳ありませんがよろしくお願いします。 

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

TAROKICHI様

 

早速ご連絡頂きまして誠にありがとうございます。
カウンタを使用したエッジカウントとは別に、デジタル入力つまりDIのタスクを作成してLSBやMSBのデジタル入力を行い、
DIの集録するタイミングを決定づけるサンプルクロックを外部からの信号に設定してあげることでご希望の動作が可能になるかと存じます。

 

添付のVIをご参考にして下さい。添付のVIは、トリガを使用したカウンタのエッジカウントCI(CounterInput)のタスクに加え、
デジタル集録用のDI(Digital Input)のタスクを行うプログラムとなっております。DIのタスクを開始する前の、サンプルクロックの関数の
ソースという入力端子に、PFI4と設定しておりますので、PFI4のラインに渡されたデジタル信号の立下りのタイミングで、デジタル集録を
行うよう設定されております。


日本ナショナルインスツルメンツ技術部
伊藤

メッセージ6/16
4,875件の閲覧回数

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

伊藤 様

 

度々の質問に答えていただきありがとうございます。

サンプルプログラム確認させていただきました。 1bitのデジタル入力に関しては動作を確認しましたが、

実験では、12bitのデジタル入力をサンプルクロックの立ち下がりのタイミングで収録したいと考えています。

PXI-6251では同時に12bitのデジタル入力を使用することは可能でしょうか?

 

また、12bitのデジタル値を2つ同時に入力し(12bitのデジタル値を2種類)比較するというプログラムを作成したいと考えていますが、

LabVIEWで行うことは可能でしょうか?

 

質問ばかりで申し訳ありませんが、よろしくお願いします。 

 

0 件の賞賛
メッセージ7/16
4,859件の閲覧回数

TAROKICHI様


"12bitのデジタル値"について詳しくご説明頂くことは可能でしょうか。
デジタル信号というのは基本的に論理Highか論理Lowの2通りのみであり、デジタル値というのは0か1の2通りのみです。
ワイヤ配線によって渡される電圧値によって、論理Highか論理Lowの切り分けを行うため、ワイヤの配線先であるラインについて、
1つのラインで1bitのデジタル信号を読み取ります。

 

CAN通信やI2C,SPI,GPIB通信といった通信は全てデジタル信号によって通信を行いますが、最もシンプルな通信規格はシリアル通信です。
シリアル通信は2線式と4線式のものがありますが、通信方法としては調歩同期式と呼ばれます。

 

簡易的な2線式では片方が書き込み、もう片方が読み取り用のデジタル信号を渡すためのラインとなっており、それぞれのラインに、
数十bitのデジタル信号が渡されます。例えば、12bitだったとします。ここでいう12bitのデジタル信号というのは、特定のあるラインに対して、時系列で
スタートビット→データビット→パリティビット→ストップビットという順番でデータが渡されます。非現実的ですがもし転送速度が1bps(bit per sec)であったなら、通信開始を知らせる論理Highの信号が1秒間送られた後に、毎秒データビットとしてのデジタル信号がおくられ、12秒後には論理Lowとなるデジタル信号になります。この間に使用しているラインは1ラインです。1ラインから1bitずつのデジタル信号を12秒間かけて12bitのデジタル信号を読み取ることになります。

 

上記の例では、1ラインでの信号を時系列で数ビット読み取る通信のためのデジタル信号ですが、画像データやデジタル波形データを送る際は送るデータ情報自体が、2通りでは納まりきらないため、同時に複数ビットで送ります。モノクロ画像は1つ1つのピクセルを8bitのデジタル信号、つまり数値に変換すると0~255までの256通り(=2^8)の整数値という情報として渡します。この場合、8bitのデジタル信号を同時に読み取る必要があるため、デジタル入力で信号を読み取るには8ライン必要になります。

 

ご使用のPXI-6251には、DIO用に用意されているポートがport0からport2までの3ポートあり、各ポートがLine0からLine7まで8ラインございますので、計24ライン確保されています。TAROKICHI様は、”同時に12bitのデジタル入力”と記載されましたので、12ラインからのデジタル入力を行うと理解しております。

 

そのため、先日お送りさせて頂いたサンプルプログラムでは、”Dev5/port0/line0:1”と入力することで、複数ラインからのデジタル入力用サンプルとして、line0とline1の2ラインから読み取るように設定し、かつWhileループのDAQmx読み取り関数も1チャンネル複数サンプルとすることで複数ラインからのデータを読み取れるように作成致しました。

 

port0のLine0からLine7までの8ラインに加え、port1のLine0からLine3までの4ライン、計12ラインを使用するためには、
”Dev5/port0/line0:7,Dev5/port1/line0:3”と入力します。

 

 

上記につきまして、何かご不明点等ございましたらどうぞお気軽にご連絡頂けますようお願い致します。

 


日本ナショナルインスツルメンツ技術部
伊藤

メッセージ8/16
4,852件の閲覧回数

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

伊藤 様

 

返事が遅くなり申し訳ありません。

 

「12bitのデジタル値」は、「12個の並列のデジタル入力」ということでおわかり頂けますでしょうか。添付画像におけるMSBやLSBのような矩形波(パルス)のHighとLowを12個同時に読み取り、12bitのデジタル値 (例:010101010111)としてパソコンに取り込みたいと考えています。

つまり24ラインを使用し上記の例のようなデジタル値を二つ作成し、比較するようなプログラムを組みたいのですが、前回頂いたサンプルファイルを使用して可能でしょうか?

宜しくお願いします。 

 

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

TAROKICHI様

 

返信が遅れまして大変申し訳ございません。
先日添付したサンプルプログラムを編集して頂くことでご希望の動作は十分可能です。

 

上記の投稿にてご案内致しましたように、複数ラインからの集録となるよう、リソース入力には
”Dev5/port0/line0:7,Dev5/port1/line0:3”と設定するだけで、複数ラインからの集録が可能です。

 

サンプリングされたデータをどのように読み取り、どのように処理するかはプログラム作成者によって様々です。
Whileループ内のDAQmx読み取り関数の設定によって、変更することが可能です。

 

1チャンネル>複数サンプル>1D U8>数値の配列から処理する方法もございますし、波形を選択して
デジタル波形からデータを取り出して処理を行う方法もございます(おそらく後者の方がデジタル波形データとして表示出来る分、理解が早いかと存じます)。 デジタル波形データから01011といった数値の変換方法につきましては
添付のプログラムをご参考にして頂けますと幸いです。

 

 

日本ナショナルインスツルメンツ技術部
伊藤

メッセージ10/16
4,740件の閲覧回数