- ベストアンサー
別個の機器から同期データ収集について
- 測定関連のソフトウェア開発した方、意見をお願いいたします!USB接続式のI/OデータログデバイスとRS232対応の測定器をパソコンに接続して、データを同期して収集する方法について検討しています。
- プログラム的にはデータを取り込んで時系列に並べ、指定の条件でデータを記録しますが、ハードウェア的な問題や測定システムのアブノーマルさについて意見を頂きたいです。
- また、別個の機器をトリガとして受ける場合には、どのような方法が一般的なのかアドバイスを頂きたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
各測定器が同期しない状態では、そもそもデータ事態を同期させること自体がもんだいがあるのではないですか? こういう場合は、トリガとなる共通の信号を各測定器に与えて、測定をスタートさせてそれぞれのデータの相関とします。 双方のデータ測定完了を待って次回のトリガ入力待ちとします。 こうすることで、データとしての同期は誤差範囲に収めることができますが、最低速の測定器からのデータ取得完了に足を引きずられることになります。 この点については機器選定ミスもしくは構成に問題があるといえるので、そのあたりをどうするか、というプログラム以前の問題に立ち返るべきなのではないでしょうか。 構成の変更ができない場合、データ欠落があるむねのログを残しておくということで、告知だけでもしておくのがよさそうですね。
その他の回答 (2)
- techa
- ベストアンサー率60% (41/68)
各測定器が同期しない状態では、そもそもデータ事態を同期させること自体がもんだいがあるのではないですか? こういう場合は、トリガとなる共通の信号を各測定器に与えて、測定をスタートさせてそれぞれのデータの相関とします。 双方のデータ測定完了を待って次回のトリガ入力待ちとします。 こうすることで、データとしての同期は誤差範囲に収めることができますが、最低速の測定器からのデータ取得完了に足を引きずられることになります。 この点については機器選定ミスもしくは構成に問題があるといえるので、そのあたりをどうするか、というプログラム以前の問題に立ち返るべきなのではないでしょうか。 構成の変更ができない場合、データ欠落があるむねのログを残しておくということで、告知だけでもしておくのがよさそうですね。
- techa
- ベストアンサー率60% (41/68)
USBを使うか否かにかかわらず、根本的な問題がありますね。RS232Cの測定器からのデータ転送速度はどの程度になっていますか?9600bpsの時1バイトの転送で1msとなりますから、IO側のサンプルレートが1kHzだとすると、シリアル側から1バイト転送でやっとですね。データの真偽判定とデリミタを加えて処理を行おうとすると、10倍ぐらいの転送速度が必要に思えます。 で、通信速度が満足できるとした場合、念のため、低速側デバイスの速度に合わせるため、双方のデバイス用に十分なバッファをおいて速度の不均衡を緩和する方策をとるのが一般です。(リングバッファ形式をとるのが一般的なのでしょうか) 問題なのはおっしゃるように、バッファあふれがでたときの処理ではないかと思います。これを完全に回避するのを防ぐには1000個のデータがたまるのを待つのではなく、逐次的に読み出してバッファを開けていくことと、バッファの量を双方のデバイスからのデータ速度比以上の量を確保することで、ある程度は回避できそうです。 データの取得速度に開きがある場合の計測というのはある種当たり前に存在している状況ですので、それをいかに実装するのかが腕のみせどころとなります。 ただ、これが成立するのはあくまで、ハード側で本当に同期したデータである場合だけです。 ご指定の環境で、データ自体同期しているかどうかの保証がないようにおもうのですがいかがでしょうか?
補足
懇切丁寧な御回答ありがとうございます。 RS232の速度は115200bpsですが、おっしゃられるように、二つのデバイスは、まったく関連がありません。パソコン上の設定で二つのデバイスのサンプルレートと取込バッファを同一に指定し、取込を同時に開始するという手順です。 ためしに、取り込んだ回数をログしていくプログラムを組んで見ましたが、USBのほうがRS232のデータ取込に比べ、若干早いようで、4,5分するとちょうど1000個分ずれていました。つまり、RS232の取込が4,5分したら1秒おくれになったということです。 ということは、こういう場合、ハードウェア的にたとえばRS232測定器のクロックをUSB機器に与えてハードウェア的に同期してやるなどの作業が必要になるということですね?
お礼
御回答ありがとうございます。 こういったプログラムをするのは現在、勉強中でして、ハードウェア的に同期のとれていないものをなんとかソフト的に同期がとれないかな、と半ば祈りみたいな気持ちで取り組んでましたが、原理的に考えて無理なんですよね。 通常、専門家のかたがされる場合でも、「同期がとれないから無理」といって断るような内容でしょうか? いずれにしても、お付き合いくださり、ありがとうございました。