プロが教えるわが家の防犯対策術!

現在RS232C経由でデジタルマルチメータ(KEITHLEY 2000 MULTIMETER)の自動計測をしようとしています(C#.NET)。

timerで高速制御(10msぐらいで電圧値がほしい)しようとすると、KEITHLEYのバッファがオーバーフローして困っています。timerをゆっくり(200msぐらい)にするとちゃんとデータを送ってきてくれます。

そこで、最速の時間分解能で計測するために、PCから、マルチメータのバッファの中身が0だったら、次の電圧値要求を送るというようにしたいのですが、「バッファの中身が0だったら」という命令が分かりません。

どのようにしたらよいでしょうか。また他のいいやり方はあるのでしょうか。

A 回答 (3件)

ブツは知りませんが、


http://www.keithley.jp/products/localizedproduct …
で、DCシステムスピードで
RS-232(ボーレート19.2k)へのアスキー転送 : 55/秒
ACシステムスピードで
RS-232(ボーレート19.2k)ヘのアスキー転送 : 50/秒
とありますから、10ms周期では最初から無理なのでは?
    • good
    • 0

timerを設定して、Triggerをかけて計測を開始し、データの要求をするまでに、10msではバッファがあふれてしまうが、200msではあふれないということは、Triggerからデータ要求までの間隔が長すぎる、か、データの桁数が多すぎるのではないでしょうか。



「バッファが空だったら」データ要求をする意味がないと思います。

また、バッファの中身を送信してから、次のバッファの中身を送信するまでの時間間隔というのはTimerの設定とは無関係のように思われますから、それらのデータを一定時間間隔での連続したものとして扱うのは誤りだと思います。
バッファに収まる範囲でのデータだけを取るものなのではないでしょうか。
    • good
    • 0

双方同じ値でボーレートを落とすってのは、だめですか?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!