- ベストアンサー
VB6.0でMSCommを使ってシリアルにデータを送信できない問題
- VB6.0のMSCommを使用してシリアルにデータを送信したいがうまくいかない。送信するデータが正しくバッファに送られていない可能性がある。
- MSComm1.CommPortを2に設定し、データの送信準備をする。送信データをバイト配列に格納し、ループで1バイトずつ送信していくが、バッファのカウントが途中で0のままになる。
- 問題の解決方法として、送信データのタイミングや時間間隔に注目する。レーザーの説明書には、2バイト間の時間間隔が6msを超えないようにし、最小時間は55μs以上を保証するようにと書かれているため、それに合わせた設定が必要と思われる。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
DTR が、下がってたりしてませんか? ケーブルの結線図もありそうです。確認して下さい。 >・レーザーに送信する2バイト間の時間間隔は6msを超えないように だって、キャラクタ間まで注意書きつきですから・・ >どうやれば,この時間のタイミングで送れるんでしょうか? このボーレートで、このプログラムなら時間関係はOKと思います。 >チェックする方法などご存知でないでしょうか? PCを2台使ったり、クロスケーブルでCOM1とCOM2を接続する手や、モデムとATコマンド/レスポンスをやりとりする方法があります。 私もはじめ、MSComm の自分勝手な動作には、参ったことがあります。 MSCommのプロパティページの内容、RTS/CTSの設定など、補足があれば、詳細に回答できるかも知れません。 とりあえず、OnCommイベントの中で、送信(した後)のイベント種類を確認してみて下さい。 また、 MSComm1.Output = chr$(s(j)) と文字列で送信した場合の結果もわかるとなおよいです。 >Output プロパティ >送信バッファに文字列を書き込みます。 なので・・
その他の回答 (1)
- ponnta
- ベストアンサー率17% (31/179)
回答ではないですが参考までに COMが2個あるのならCOM1とCOM2を クロスケーブルで繋いで片方でフリーのターミナル ソフトを動かせばデータが来てるかどうか判ります。
お礼
遅くなって申し訳ありません.アドバイスありがとうございました. 原因が判明しましたので締め切らせていただきます. どうやら原因は使用していたPCカードが特注で,ボーレート設定を2150にしなければいけないということでした. しかし,VBでどうやって2150bpsを設定するのかわからず困っています. 別の質問として「ボーレートを2150にしたい!」を投稿させてもらいました. また,よろしくおねがいします.
お礼
どうもありがとうございます。2日ほど留守にするので、その後、ご指摘いただいた点について調べてみたいと思います。また、よろしくおねがいします。