edgecountで検出されるトリガーについて

現在、外部からのトリガーをNational instruments社製のDAQを用いて取得、
トリガーを4回取得するとmatlabのプログラムが駆動する仕様をめざしています。
トリガーを取得するコードはhelpを参照し、以下のようなコードになっています。
dq = daq("ni");
ch = addinput(dq,"cDAQ1Mod5","ctr0","EdgeCount");
ch.ActiveEdge = 'Rising';
count_max=4;
while true
count=read(dq,"OutputFormat","Matrix")
if count==count_max
break;
end
end
<ご教示頂きたい点>
トリガーは0→5Vとなっています。
しかし、5Vに到達したのち、±0.1V程度の微妙な変化を生じることがあり
この変化もEdgecountがカウントしてしまっております。
つきましては、Edgecountで参照する電圧幅を設定することは可能でしょうか。
(例えば:0V~3Vで生じた電圧の変化のみを参照する)
もしくは、他の解決策はございますでしょうか。
ご教示頂けますと幸いです。

5 个评论

NI LabVIEWまたはMicrosoft Visual Studio®などのプログラミング環境で動作するNI-DAQmxのドキュメントにそれらしき項目があります。複数箇所に同名のプロパティがあるのが何故かはわかりません。
しかし Data Acquisition Toolbox のドキュメントには、カウンタ入力:エッジカウント:入力:しきい値レベルプロパティに相当する項目が見つかりませんでしたが、下記の様なプロパティが存在すると想定します(動かす環境を持っておらず、あてずっぽうですいません)
  • ch.ThreshVoltage
  • ch.CountDir.ThreshVoltage
あと、測定ツールのプロパティがお使いのハードウェアに適用可能かどうかは、物によりけりです。
普通なら「利用不可のプロパティは設定出来ない様になっている」はずですが、必ずしもそうとは限りません。
なので、お使いのDAQハードウェアの仕様も併せて調べる事をお勧めします。
丁寧にご回答を頂き、誠にありがとうございます。
ご教示頂きましたプロパティ、
  • ch.ThreshVoltage
  • ch.CountDir.ThreshVoltage
ですが、残念ながら存在しませんでした。
例えば、一定時間、外部からのトリガー入力を無視するような仕様などは可能でしょうか。
重ねてのご質問で申し訳ございません。
NI-DAQmxのドキュメントにはデジタルフィルタ機能やゲート機能が存在しますが
  • カウント対象の入力信号
  •  ⇒デジタルフィルタ(おそらく一定幅未満のパルスを無効にする)
  • カウント方向(カウント値の増加または減少)を制御する入力信号
  •  ⇒デジタルフィルタ(おそらく一定幅未満のパルスを無効にする)
  • ゲート(おそらく外部入力信号によりカウント対象のカウントを有効/無効にする)
やはりMATLAB(Data Acquisition Toolbox)のドキュメントにはこれらの項目が見つかりません。
MATLABの方は様々なベンダの機器をサポートする必要がある分、全項目には対応しきれないということではないでしょうか?
ご教示頂き誠にありがとうございます。
Ueno様が仰られます通り、全項目に対応していないと私も思います。
Labviewで制御できるパラメータをMatlabで操作しようとするのではなく、
別の方法にて検討してみたいと思います。
丁寧なご回答を頂き、重ねて感謝申し上げます。
ありがとうございました。

请先登录,再进行评论。

回答(0 个)

类别

帮助中心File Exchange 中查找有关 Data Acquisition Toolbox Supported Hardware 的更多信息

产品

版本

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!