• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MSCommでoutputできない)

VB6.0でMSCommを使ってシリアルにデータを送信できない問題

このQ&Aのポイント
  • VB6.0のMSCommを使用してシリアルにデータを送信したいがうまくいかない。送信するデータが正しくバッファに送られていない可能性がある。
  • MSComm1.CommPortを2に設定し、データの送信準備をする。送信データをバイト配列に格納し、ループで1バイトずつ送信していくが、バッファのカウントが途中で0のままになる。
  • 問題の解決方法として、送信データのタイミングや時間間隔に注目する。レーザーの説明書には、2バイト間の時間間隔が6msを超えないようにし、最小時間は55μs以上を保証するようにと書かれているため、それに合わせた設定が必要と思われる。

質問者が選んだベストアンサー

  • ベストアンサー
  • ykkw_2001
  • ベストアンサー率26% (267/1014)
回答No.1

DTR が、下がってたりしてませんか? ケーブルの結線図もありそうです。確認して下さい。 >・レーザーに送信する2バイト間の時間間隔は6msを超えないように  だって、キャラクタ間まで注意書きつきですから・・ >どうやれば,この時間のタイミングで送れるんでしょうか?  このボーレートで、このプログラムなら時間関係はOKと思います。 >チェックする方法などご存知でないでしょうか? PCを2台使ったり、クロスケーブルでCOM1とCOM2を接続する手や、モデムとATコマンド/レスポンスをやりとりする方法があります。 私もはじめ、MSComm の自分勝手な動作には、参ったことがあります。 MSCommのプロパティページの内容、RTS/CTSの設定など、補足があれば、詳細に回答できるかも知れません。 とりあえず、OnCommイベントの中で、送信(した後)のイベント種類を確認してみて下さい。 また、 MSComm1.Output = chr$(s(j)) と文字列で送信した場合の結果もわかるとなおよいです。 >Output プロパティ >送信バッファに文字列を書き込みます。 なので・・

snuf
質問者

お礼

どうもありがとうございます。2日ほど留守にするので、その後、ご指摘いただいた点について調べてみたいと思います。また、よろしくおねがいします。

その他の回答 (1)

  • ponnta
  • ベストアンサー率17% (31/179)
回答No.2

回答ではないですが参考までに COMが2個あるのならCOM1とCOM2を クロスケーブルで繋いで片方でフリーのターミナル ソフトを動かせばデータが来てるかどうか判ります。

snuf
質問者

お礼

遅くなって申し訳ありません.アドバイスありがとうございました. 原因が判明しましたので締め切らせていただきます. どうやら原因は使用していたPCカードが特注で,ボーレート設定を2150にしなければいけないということでした. しかし,VBでどうやって2150bpsを設定するのかわからず困っています. 別の質問として「ボーレートを2150にしたい!」を投稿させてもらいました. また,よろしくおねがいします.

関連するQ&A