"Wait Until Next ms Multiple"関数は一番最初のループの待ち時間を正確に刻むことができません。



使用ソフトウェア: LabVIEW Development Systems
使用ソフトウェア・バージョン: 5.0
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア:

問題: "Wait Until Next ms Multiple"関数は一番最初のループの待ち時間を正確に刻むことができません。たとえば、2000という値を入れた場合、最初のループは0秒から2秒の間のどこかでループを終了してしまいますが、次のループからは正確に2秒ごとにループ処理を行います。

解決策: これは"Wait Until Next ms Multiple"関数の動作方法から生じる現象であり、この関数に問題があるというわけではありません。この関数はミリ秒倍数端子に入力された値で割り切ることのできるコンピュータの内部クロック値を使用することによって、ループスピードをコントロールしています。たとえば、ミリ秒倍数を2000と設定した場合、この関数はコンピュータの内部クロックが2000で割り切れる値になるのを待ち、その時ループ処理を終わらせます。したがって、最初のループが実行された時点での内部クロックの値が、たとえば、10163だったとすると、この内部クロックが12000になった時点で最初のループが終了し、次のループは内部クロックが14000のとき、次のループは16000の時ループ終了というように動作します。そのため、上記の例のように、最初のループは設定した値よりも短い時間間隔で終了してしまいます。この現象を確認できるサンプルプログラムが下記に添付されています。また、この現象を避けたい場合は、この関数をループに入る前に呼び出しておくという方法が考えれますが、そのサンプルプログラムも添付ファイルに含まれておりますのでそちらをご参照ください。

関連リンク:

添付:


WaitUntilNextmsMultiple.exe - WaitUntilNextmsMultiple.exe


報告日時: 12/03/2001
最終更新日: 08/01/2002
ドキュメントID: 2G27ANEW