VB6,XPで外部機器に10〜20文字のデータ約2000個を
シリアル通信(RS232C)で送っています。
通信速度は19200bpsで指定値です。
あるパソコンでだけ、極たまに最初の1文字だけ
送られない事があります。(400番目近辺?)
受信データの取りこぼしは経験がありますが、
出力データ欠落はあまりなく、どう対処したものかと
悩んでいます。
原因、チェック方などご助言いただきますよう
お願い申し上げます。
これだけの情報ではアドバイスは難しいと思われます。
さしあたりドライバーやランタイムを最新の物にしてみた下さい。
これでだめならRS232Cではループバックと言ってRS232Cのケーブルを加工して、
自分の出した信号を自分で受け取る伝統的なデバッグ方法が有ります。
http://www.shoshin.co.jp/computer/digi/io/edgeportinst/index.html
この方法で送信のデーターと受信のデーターをリアルタイムに比較すると
どのタイミングで問題が起きるかはわかります。
コンピューターが2つコムポートを持っているなら、クロスケーブルで
繋ぎ、ひとつのプログラムの中で2つコムポートを開き、送信データーと
受信データーを比較する方法も有ります。
最近のコンピュータでコムポートを2つ持っているものは稀ですので、
1つしかない場合(一つも無い場合)は、USBの仮想ポートを使用します。
この方法でボーレートを上げたり、一回で送る文字を多くしたりすると、
何か原因がつかめるかも知れません。
我龍院様、ご回答ありがとうございました。
ドライバ、ランタイムの最新化を行ってみるようにします。
通信モニターがあって、自分が出した信号が、外部機器、モニターとも
抜けているので、物理的にシリアルポートから出た段階では抜けている
ようです。
2000個のデータはみな同じルーチンで送るのに、たまにしか
脱落しないのは何が原因か頭を抱えます。
ツイート | ![]() |