タイトル : Re^12: シリアル通信で異常に時間がかかってしまう 投稿日 : 2010/01/29(Fri) 13:02 投稿者 : オショウ
> MsComm.InputLen = 1 > で OnComm にて文字列結合していく手法でしょうか? > 今の方法でやはり厳しそうならこっちの方式にするしかないかと思っています。 基本的かどうかは解りませんが、やはり1バイト受信でイベント発生するよう に設定して、CR+LFが来るまで読みためて、1パケット分問題なく受信したら その後の処理に移行させるのが適切かと。 VB6でPLCと通信していたのはもう7年も前・・・現在は.NETに完全移行 してますので、結構楽に作れたりもするんですが。 PLCとの基本的なプロトコルをちゃんとインプリメントすれば問題は解消す ると思います。 要は電文が最後まで来ない場合をちゃんと想定して正常に動作するアルゴリズ ムをプログラミングできるか・・・ということかと。 > ここらへんも判定する処理が必要かと思い、この問題が解決後に処理部分を実装予定です。 三菱PLCの電文では、最後にチェックサムを付加できたはずです。 ノイズ等で文字バケが発生することも想定しないといけないので、チェックサ ム付けるようにし、受信した電文のチェックサムが一致しない場合、ノイズの 影響等で通信が阻害されている可能性があります。その場合、NAK返してリトラ イ動作に入りますネ! 一概には言えませんがボーレートを下げると軽減する場合がありますが、根本 的な解決ではありませんので・・・ 以上。参考まで |