NI製品ディスカッション

cancel
Showing results for 
Search instead for 
Did you mean: 

ティックカウントを用いた一定時間の監視

Solved!
Go to solution

whileループ内でティックカウント関数と次のミリ秒倍数まで待機関数を用いて、一定間隔で動作しているかを監視するプログラムを作成しております。

 

80msで一定動作すると思っているのですが、79ms~81msと変動してしまいます。

LabVIEW_v2011では問題なく80msが出力され続けたのですが、v2016で変わってしまいます。

原因についてわかることがあればご教授お願い致します。

 

添付のプログラムはv2016_32bitで作成しています。

Download All
0 Kudos
Message 1 of 4
(1,186 Views)
Highlighted
Solution
Accepted by topic author sugiura

sugiuraさん、こんにちは

 

添付されているプログラム、拝見しました。

ループの速度にばらつきがでるのは、windows OSだからある程度仕方ないと思います。

(windowsはLabVIEW以外の、バックグラウンドで動いているアプリケーションも含めて、様々なアプリケーションが実行されているため、CPUのリソース状況によってループ速度にばらつきが出るかと)

NI社のReal Time OSであれば、ループのタイミングのばらつき(ジッタ)はwindows OSよりも少なくなると思います。

 

リアルタイムオペレーティングシステム(RTOS)とは - National Instruments
https://www.ni.com/ja-jp/innovations/white-papers/07/what-is-a-real-time-operating-system--rtos--.ht...

 

また、LV 2011ではばらつかなかった、ということですが、同じPCでLV 2011、LV 2016それぞれで動作させていましたか?あるいは、LV 2011で動作させていても、CPUにわざと負荷をかけた環境で実行すればばらつきがでるんじゃないかなと思うのですがいかがでしょうか?

Message 2 of 4
(1,140 Views)
Highlighted

marble_workerさん、ご回答ありがとうございます。

 

windows OSの依存ということ理解しました。

 

今回windows7のサポート終了に伴いwindows10にしたことでv2011がwindows10に対応していなかったため

v2016にしたという経緯でこのような症状が出てきました。

 

PC自体は、同じものですが確かにOS違いによる更新頻度や割り込み入り方が違いがあると思いますので

別の方法で時間監視を検討しようかと思います。

0 Kudos
Message 3 of 4
(1,125 Views)
Highlighted

sugiuraさん、

 

win7からwin10に変えたということだったんですね。

割り込み処理の発生は仕方ないと思うのでループのばらつきはある程度は許容するしかないですね・・・。

 

頑張ってください!

0 Kudos
Message 4 of 4
(1,111 Views)