VB6.0でMSCommを用いてシリアル(レーダとつながってる)にデータを送りたいんですがどうもうまく送れません.outputしてすぐoutbuffercountをチェックしてもcnt=0(cntは下記プログラム参照)のままでバッファにちゃんとデータが送れていないのでは?と悩んでいます.
なにが原因なんでしょうか?もしくは,他に送信バッファにデータが届いてるかどうかをチェックする方法などご存知でないでしょうか?よろしくおねがいします.
MSComm1.CommPort = 2
MSComm1.InputMode = 1
MSComm1.InputLen = 0
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
Dim s(16) As Byte ’←以下のデータを送りたいんですが・・
s(0) = &H2
s(1) = &H0
s(3) = &HA
s(4) = &H0
s(5) = &H20
s(6) = &H0
s(7) = &H53
s(8) = &H49
s(9) = &H43
s(10) = &H4B
s(11) = &H5F
s(12) = &H4C
s(13) = &H4D
s(14) = &H53
s(15) = &HBE
s(16) = &HC5
For j = 0 To 16
MSComm1.Output = s(j)
cnt = MSComm1.OutBufferCount
Next j
End Sub
あと,レーザーの説明書に
・レーザーに送信する2バイト間の時間間隔は6msを超えないように
・レーザーに送信する2バイト間の最小時間は55μs以上としてください
という記述があるんですが,これを満たしてないという可能性も疑ってます.
どうやれば,この時間のタイミングで送れるんでしょうか?
長くなってすいません,なにかヒントなどおねがいします.
No.1ベストアンサー
- 回答日時:
DTR が、下がってたりしてませんか?
ケーブルの結線図もありそうです。確認して下さい。
>・レーザーに送信する2バイト間の時間間隔は6msを超えないように
だって、キャラクタ間まで注意書きつきですから・・
>どうやれば,この時間のタイミングで送れるんでしょうか?
このボーレートで、このプログラムなら時間関係はOKと思います。
>チェックする方法などご存知でないでしょうか?
PCを2台使ったり、クロスケーブルでCOM1とCOM2を接続する手や、モデムとATコマンド/レスポンスをやりとりする方法があります。
私もはじめ、MSComm の自分勝手な動作には、参ったことがあります。
MSCommのプロパティページの内容、RTS/CTSの設定など、補足があれば、詳細に回答できるかも知れません。
とりあえず、OnCommイベントの中で、送信(した後)のイベント種類を確認してみて下さい。
また、
MSComm1.Output = chr$(s(j))
と文字列で送信した場合の結果もわかるとなおよいです。
>Output プロパティ
>送信バッファに文字列を書き込みます。
なので・・
どうもありがとうございます。2日ほど留守にするので、その後、ご指摘いただいた点について調べてみたいと思います。また、よろしくおねがいします。
No.2
- 回答日時:
回答ではないですが参考までに
COMが2個あるのならCOM1とCOM2を
クロスケーブルで繋いで片方でフリーのターミナル
ソフトを動かせばデータが来てるかどうか判ります。
遅くなって申し訳ありません.アドバイスありがとうございました.
原因が判明しましたので締め切らせていただきます.
どうやら原因は使用していたPCカードが特注で,ボーレート設定を2150にしなければいけないということでした.
しかし,VBでどうやって2150bpsを設定するのかわからず困っています.
別の質問として「ボーレートを2150にしたい!」を投稿させてもらいました.
また,よろしくおねがいします.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- 統計学 こんな問題を使って教育するのは、文科省の方針ですか。 3 2022/06/17 09:14
- 軍事学 アメリカ空軍に居た頃、ギャラクシーに体験搭乗した事が有りました(^^)かなりの大型戦略輸送機で、我々 4 2022/06/07 14:44
- デジタルカメラ 「フラッシュ補正+露出補正」連動とは? 2 2022/03/23 00:06
- Excel(エクセル) ハイパーリンクの削除について 2 2022/11/10 07:32
- 数学 写真数学の質問です。 どうしてOM=1/√2になるのですか? 5 2023/05/16 12:28
- アニメ ガンダムSEED ストライクダガーとシグー、どちらが強いですか? 性能的に パイロットの腕は互角なら 3 2023/06/20 13:08
- Mac OS あっちこっち見ていたが、m2の性能がM1よりダメらしいです。 今持っているMacBook airは7 2 2022/08/17 12:00
- Mac OS M1のiMacで16GB RAMのものはありますか?Final Cut Proを使うため。 4 2022/03/24 13:23
- デジタルカメラ カメラ初心者です 現在 オリンパスのOM-Dmark4を使用中です そろそろ単焦点レンズが欲しくなっ 1 2022/11/24 15:13
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
MSCommを用いたRS-232-Cデータ転送
Visual Basic(VBA)
-
Comポートについて
Windows 95・98
-
VisualBasic6.0のFormat関数でmSecを表示したい
Visual Basic(VBA)
-
-
4
mscommの受信バッファ異常について
Visual Basic(VBA)
-
5
rs232cでの受信データ(mscomm)の受信方法VB6
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# シリアル通信でデータ受信...
-
シリアル通信の出力バッファと...
-
WriteFile()でのデータ送信がで...
-
socket: recvはいつ,どれだけ...
-
WinsockAPIのrecvfromの受信デ...
-
シリアル通信エラー
-
rs232cでの受信データ(mscomm)...
-
バッファ領域がありません。と...
-
シリアルポート通信
-
Connection reset by peer
-
バイナリデータ受信時のデータ順
-
Linuxでのシリアル通信について...
-
TCPでの非同期型select関数につ...
-
再現性の無いバグ
-
mscommの受信バッファ異常について
-
0byteデータの送信と受信
-
winsockでソケット通信の開発を...
-
ラズパイで、ウェブから、ウェ...
-
write関数でEAGAINのエラー発生...
-
VB2005でWin32APIを用いてRS-23...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# シリアル通信でデータ受信...
-
winsockでソケット通信の開発を...
-
RS232C通信(PC⇔PLC)
-
socket: recvはいつ,どれだけ...
-
「スイッチングハブのバッファ...
-
シリアル通信の出力バッファと...
-
SocketのSend関数でのCLOSEの検...
-
SerialPortのDataReceivedイベ...
-
Linuxでのシリアル通信について...
-
Connection reset by peer
-
RS-232Cでバイナリデータを受信...
-
VC++2010 TCPIP通信の受信処理...
-
WriteFile()でのデータ送信がで...
-
C#で通信処理。応答がない場合...
-
ソケット通信内 read関数について
-
write関数でEAGAINのエラー発生...
-
シリアル通信エラー
-
recv関数の受信結果について
-
シリアル通信 大きいサイズの...
-
WinsockAPIのrecvfromの受信デ...
おすすめ情報