スキャン周期のタイミングについて



使用ソフトウェア: LabVIEW Modules>>LabVIEW Real-Time Module
使用ソフトウェア・バージョン: 2014 SP1
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: Driver Software>>NI-RIO

問題:
cRIOでNIスキャンエンジンを使用する際、スキャン周期を指定できますが、スキャン周期を小さくしすぎると障害エラーが発生することがあります。ヘルプによるとスキャン周期はスキャン時間とアプリケーション論理の時間以内に収まる必要があるようですが、どのように考えて設計すればよいでしょう。


解決策:
NIスキャンエンジンは、下記ヘルプにもあるようにスキャンエンジンページで指定される、
スキャン周期で実行されます。
NIスキャンエンジンを使用する(Real-Time、Windows)



上記図は、スキャン時間とアプリケーション論理時間を合わせた時間は、スキャン周期以内に終わることが推奨される、ということを示しています。

例えばタイミングループ内でPID制御を行っており、その実行に400msecかかるとします。このアプリケーションはPID制御を行うため、タイムクリティカルである必要性があります。
スキャン周期を1msecに設定した場合、タイミングループはスキャンエンジンよりも低優先度で実行されるため、PID制御の処理が1ms毎に中断されてしまいます。これではPID制御コードの確定性が確保できません。PID制御の確定性を確保するためには、スキャン周期を必ずスキャン時間+アプリケーション論理時間(この例では400ms)より長く設定する必要があります。

スキャン周期の設定の考え方としては、
スキャン周期 > スキャン時間 + アプリケーション論理
となるように検討頂くことを推奨します。


関連リンク: NIスキャンエンジンを使用する(Real-Time、Windows)

添付:





報告日時: 02/23/2016
最終更新日: 02/26/2016
ドキュメントID: 76MJPUKL