Timerの使い方について

解決


キム  2005-10-18 01:00:53  No: 126340

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-18 01:10:37  No: 126341

追加説明です。

    MSComm1.Output = "00FFBW0M0903050000023"

の所を

    MSComm1.Output = ""

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


GOD  2005-10-18 01:40:49  No: 126342

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


ひろ  2005-10-18 03:19:54  No: 126343

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

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


キム  2005-10-18 18:07:39  No: 126344

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加