こんにちは。最近VB6.0を使い始めた者です。よろしくお願いします。
PCからシリアル機器にアクセスしてデータをやり取りするプログラムを作りたいのですが、どうも私が作ったプログラムでは機器の方が反応してくれません。
【ハイパーターミナルでは通信は出来ましたので機器やケーブルには異常はないかと思います。】
となるとプログラムの方ですが、VB初心者の私には何処が悪いのか分かりません。コードを載せておきます。
---------------------------------------------------------------------
Private Sub Command1_Click()
MSComm1.PortOpen = True
MSComm1.Output = Text1.Text
Text2.Text = MSComm1.Input
End Sub
Private Sub Form_unLoad(cansel As Integer)
MSComm1.PortOpen = False
End Sub
もしかしたらすごい勘違いをしてこのコードを書いているのかも知れません。
もしよろしければアドバイスおねがいします。または勉強になるサイトのアドレスでもかまわないのでお教えいただければ幸いです。
すいませんがよろしくおねがいします。
ざっと見たところ明示的に使用するポート番号、通信速度とかの設定はしていない
ようですが大丈夫でしょうか?
あと、送信した後にすぐに受信していますが、きっとそんなに早くデータは来ない
ですよ。ウェイトを入れた後、受信、OnCommイベントで受信、Timer等でポーリン
グして受信のいずれかの処理をしないと。
ご返答ありがとうございます。
comの設定やデリミタのことを何もしてないのが原因でした。
おっしゃるとおりです。送信した後にすぐ受信ではデータがこないので、Command1ではポートを空けて送信バッファにコマンドを入れ、機器に送信するだけにして、新しくCommand2とText2を設けてクリック時に受信バッファからText2にデータが来るようにしました。
しかしこれだと二度手間なのでボタン一つで出来るようにウェイトを入れようかと思っています。とりあえずググッてみます。
ありがとうございました。VB初心者ですのでまたここにおじゃまさせていただくことがあると思います。そのときはよろしくおねがいします。/(__)/
ツイート | ![]() |