Timerの使い方について

解決


キム  2005-10-17 16:00:53  No: 126340  IP: [192.*.*.*]

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

編集 削除
キム  2005-10-17 16:10:37  No: 126341  IP: [192.*.*.*]

追加説明です。

    MSComm1.Output = "00FFBW0M0903050000023"

の所を

    MSComm1.Output = ""

にすればタイマーが動作しました。
送信内容を書いた状態で、タイマーを動作させるにはどうすればよいでしょうか?
お願いします。

編集 削除
GOD  2005-10-17 16:40:49  No: 126342  IP: [192.*.*.*]

Private Sub MSComm1_OnComm()
    Timer1.Enabled = False 'タイマーの解除
End Sub
↑でタイマーが止まってるということはないですか。

編集 削除
ひろ  2005-10-17 18:19:54  No: 126343  IP: [192.*.*.*]

OnCommイベントの発生要因は受信だけではないので、
CommEventプロパティをチェックしたほうがいいのでは?

SThreshold プロパティの値によっては送信完了時に発生するOnCommイベントでタイマーが解除されてしまう様な気がします。

編集 削除
キム  2005-10-18 09:07:39  No: 126344  IP: [192.*.*.*]

送信バッファ空でOnCommイベント発生
MSComm1.SThreshold = 1          
を行っていました。。。こんな所に盲点が。。。
本当にありがとうございました!!

編集 削除