RS-232C接続でパソコンとシーケンサの通信を行っています。
タイマーを使って、一定時間内に受信を行わなければ
メッセージボックスを出すようにしているのですが
シーケンサの電源を切って、返答がない状態にして
startbottonをクリックしても、メッセージボックスが現れません。
何が原因でしょうか?よろしくお願いします。
Private Sub Timer1_Timer()
MsgBox "一定時間内に受信できませんでした。"
Timer1.Enabled = False
End Sub
Private Sub startbotton_Click()
Timer1.Enabled = True
MSComm1.Output = "00FFBW0M0903050000023"
End Sub
Private Sub MSComm1_OnComm()
Timer1.Enabled = False 'タイマーの解除
End Sub
追加説明です。
MSComm1.Output = "00FFBW0M0903050000023"
の所を
MSComm1.Output = ""
にすればタイマーが動作しました。
送信内容を書いた状態で、タイマーを動作させるにはどうすればよいでしょうか?
お願いします。
Private Sub MSComm1_OnComm()
Timer1.Enabled = False 'タイマーの解除
End Sub
↑でタイマーが止まってるということはないですか。
OnCommイベントの発生要因は受信だけではないので、
CommEventプロパティをチェックしたほうがいいのでは?
SThreshold プロパティの値によっては送信完了時に発生するOnCommイベントでタイマーが解除されてしまう様な気がします。
送信バッファ空でOnCommイベント発生
MSComm1.SThreshold = 1
を行っていました。。。こんな所に盲点が。。。
本当にありがとうございました!!