VB6のMSCommを使用して、現在H8ボードからRS232C経由でデータを1行(35バイト)ずつ取得するプログラムを作成しています。
<設定内容>
MSComm1.Settings = "38400,N,8,1"
MSComm1.Handshaking = comNone
MSComm1.InputMode = comInputModeBinary
MSComm1.InputLen = 0
MSComm1.InBufferSize = 1024
MSComm1.RThreshold = 35
上記プログラムで、データは10msec毎に追加されてファイルに出力しているのですが、プログラムを作成しているPC上(ThinkPad WinXP、CPU:1.90GHz、メモリ:512MB)では長時間でも問題なく動作するのですが、別のPC(Pentium4、CPU:2.8GHz、メモリ:1G)だと、時々画面が固まってしまうことがあります。
ちなみにこのPCはVBの開発環境は入っていませんので、動作に必要なDLLファイルをコピーして動かしています。
CMDLGjp.DLL, COMDLG32.OCX, MSCOMM32.OCX, VB6JP.DLL
何か他に必要な設定があるのではないかと思っているのですが、
お気づきの点があればご指摘いただけると助かります。
また、データ取得中にH8ボードの電源を切ってしまうと、プログラムはエラーで死んでしまいます。相手との通信が突然切断された際のエラーの受取り方、またはポートを使用しているかしていないかをチェックする方法があれば教えてください。
本掲示板を「RS232C」で検索してみましょう
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200501/05010050.txt
とか
RThresholdの値を大きくしてあげることで解決しました。
ありがとうございました。
ツイート | ![]() |