- 締切済み
RS-232C経由マルチメータを使用して自動計測でバッファがオーバフローします
現在RS232C経由でデジタルマルチメータ(KEITHLEY 2000 MULTIMETER)の自動計測をしようとしています(C#.NET)。 timerで高速制御(10msぐらいで電圧値がほしい)しようとすると、KEITHLEYのバッファがオーバーフローして困っています。timerをゆっくり(200msぐらい)にするとちゃんとデータを送ってきてくれます。 そこで、最速の時間分解能で計測するために、PCから、マルチメータのバッファの中身が0だったら、次の電圧値要求を送るというようにしたいのですが、「バッファの中身が0だったら」という命令が分かりません。 どのようにしたらよいでしょうか。また他のいいやり方はあるのでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- maccha_neko
- ベストアンサー率33% (465/1379)
ブツは知りませんが、 http://www.keithley.jp/products/localizedproducts/allmaterials/i2v/12705 で、DCシステムスピードで RS-232(ボーレート19.2k)へのアスキー転送 : 55/秒 ACシステムスピードで RS-232(ボーレート19.2k)ヘのアスキー転送 : 50/秒 とありますから、10ms周期では最初から無理なのでは?
timerを設定して、Triggerをかけて計測を開始し、データの要求をするまでに、10msではバッファがあふれてしまうが、200msではあふれないということは、Triggerからデータ要求までの間隔が長すぎる、か、データの桁数が多すぎるのではないでしょうか。 「バッファが空だったら」データ要求をする意味がないと思います。 また、バッファの中身を送信してから、次のバッファの中身を送信するまでの時間間隔というのはTimerの設定とは無関係のように思われますから、それらのデータを一定時間間隔での連続したものとして扱うのは誤りだと思います。 バッファに収まる範囲でのデータだけを取るものなのではないでしょうか。
- PECSOSO
- ベストアンサー率36% (30/83)
双方同じ値でボーレートを落とすってのは、だめですか?