VBで計測機器を制御しています。
非常に長い時間計測をしていて、計測時間が30時間以上になってしまいます。
で、なぜかわからないのですけど日付が変わる時間になると(つまり0:00になると)必ずプログラムが止まってしまいます。
おそらくwindowsが何か操作をしているのだと思うのですが。
こういったことをVBで解決する方法は無いでしょうか?
よろしくお願いします。
書かれた内容からは、
「プログラムがとまるようなコードを書いているからだ。」
としか答えようがありません。
もし、0:00になるとプログラムがとまるようWindowsが操作しているなら、
世界中いたるところでプログラムがとまりまくっているはずです。
>こういったことをVBで解決する方法は無いでしょうか?
VBに限らず、0:00になってもとまらないようにコーディングすれば
解決されるでしょう。
具体的にどうすればいいかは、書かれた内容からは、残念ながらわかりません。
Sayさん返答ありがとうございます。
>具体的にどうすればいいかは、書かれた内容からは、残念ながらわかりません
全くその通りでした。
時間に関する記述は、このホームページのvisual basic技術テクニック20に書かれている、
Dim Now As Long
Now = Timer
While Timer < Now +1 '1秒間待機する
DoEvents
Wend
というものを用いてみました。
そのほかにも現在いろいろ試してみようと思っています。
よかったらまたアドバイスをください。
よろしくお願いします。
While〜Wend は古いBASIC互換のための過去の遺物です。
Do While 〜 Loop を使うことをお勧めします。
Sayさんご返答ありがとうございます。
>While〜Wend は古いBASIC互換のための過去の遺物です。
>Do While 〜 Loop を使うことをお勧めします。
すべてそのように修正します。ありがとうございます。
それから、自己解決しましたので、それについて書きます。
Timer は一日を秒数で表したもので、0秒から60*60*24秒(86400)までの数値で表されていました。
それで、23時59分55秒とかで「10秒待機する」と書くと、「Timerが86405になるまで待機」と書いていたのでした。これではいつまで経っても動き出さないのは当然でした。
>「プログラムがとまるようなコードを書いているからだ。」
本当にそのとおりでした。Sayさん、本当に有難うございました。
ツイート | ![]() |