11-02-2011 08:00 PM
LabVIEW7で添付のようなプログラムを作成し、DAQmx7.5でUSB-6008をコントロールしようとしています。
これで、dataをTrueにした状態でプログラムを実行させると、出力が一瞬LowになってからHighになります。
これにWhileLoopを適用して6008への命令を繰り返させたとき、dataがFalseの間は問題ありませんが、Trueにすると
6008にTrueが指示される直前に一度Falseになるため当該ラインに接続されたデバイスがON-OFFを繰り返してしまいます。
一方、LabVIEW2009とDAQmx9.3との組み合わせなら、おなじ構成のプログラムでもこのような問題は起こりません。
WhileLoopで6008へFalse命令を繰り返している状態からTrueに切り替えても、出力は一度Highに切り替わりLowに
戻ることはありません。
6008、あるいはDAQmxの設定やバージョンに問題があるのでしょうか?
添付のプログラム(ダイヤグラムのイメージ)
仮想チャネルを作成して、ラインを指定し、デジタル出力をブールでコントロールするものです。
11-09-2011 04:19 AM
Cm7 さん
こんにちわ!ハードウェアの問題ではなく、ドライバ・ソフトウェアっぽぃですね。
別PCにLabVIEW7とDAQmx7.5入れても同じか試してみるといいかもしれません
結構古いバージョン使ってますね!基本的な組み方は同じはずだけど、、
8.xや2009以降と比べると使いづらくないですか?
11-10-2011 03:31 PM
lonestarさん
反応ありがとうございます。
私も原因はドライバソフトで、一瞬"入力モード"になっているように思われます。
現在調べている回路は、デジタル出力をトランジスタのベースとエミッタに直接つなげたものです。
トランジスタの入力に抵抗を挿入してベース電流を制限することで解決できました。
以下は、蛇足ながら想像です。
MAXのテストパネルで、デジタルチャンネルの動作を見るとき、4.0では開始・停止がありません。
4.8にはあります。古いDAQmxでは、ハードウエアをアクティブにしたときに、まず"入力"に
なってしまうように思います。つまり、負荷の抵抗値が低いときはデジタル入力がLOWだと。
でも負荷がトランジスタなので、LOWとは言え0.7Vぐらいになります。
だからトランジスタの入力としてはHIGH状態で出力もLOWになってしまう。
ソフトウエアがアウトプットモードでLOWにすることになっていても、一瞬HIGHなってしまうと
考えられます。よって抵抗を入れることでトランジスタのベース電流を制限したつもりです。
ちなみに、DAQmxを8.01に変えても同じでした。