(57)【要約】      （修正有）【課題】リアルタイム性の無いＯＳを使用して、計測および制御におけるサンプリング周期精度を向上させる計測制御方法およびそのプログラムを提供する。【解決手段】単位時間当たりのＣＰＵチックカウント数を計測するステップと、前記所定サンプリング周期をＣＰＵチックカウント数に変換するステップと、前記所定サンプリング周期とＣＰＵチックカウント数を比較するステップを含む周期生成スレッドを立ち上げるステップと、この周期生成スレッドによりＣＰＵチックカウント数を計測しつつポーリングを実行し、ポーリング中にＣＰＵチックカウント数が前記所定サンプリング周期相当のＣＰＵチックカウント数と等しくなったときに前記所定の処理を実行するステップとを備え、前記周期生成スレッドは、該周期生成スレッドの実行優先順位を最高に上げるステップと、前記所定の処理を実行した後に前記周期生成スレッドの実行優先順位を最高から下げる。【選択図】図２
2008171111.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに接続された計測制御装置との間で所定サンプリング周期ごとに所定の処理を実行する計測制御方法であって、
単位時間当たりのＣＰＵチックカウント数を計測するステップと、
前記所定サンプリング周期をＣＰＵチックカウント数に変換するステップと、
前記所定サンプリング周期とＣＰＵチックカウント数を比較するステップを含む周期生成スレッドを立ち上げるステップと、
この周期生成スレッドによりＣＰＵチックカウント数を計測しつつポーリングを実行し、ポーリング中にＣＰＵチックカウント数が前記所定サンプリング周期相当のＣＰＵチックカウント数と等しくなったときにポーリングを抜けて前記所定の処理を実行するステップとを備え、
前記周期生成スレッドは、前記ポーリングを実行する前に、該周期生成スレッドの実行優先順位を最高に上げるステップと、
前記ポーリングを抜けて前記所定の処理を実行した後に前記周期生成スレッドの実行優先順位を最高から下げて他の処理を可能にするステップとを含むことを特徴とするコンピュータを用いた計測制御方法。
【請求項２】
請求項１記載のコンピュータを用いた計測制御方法において、前記他の処理を可能にした後に前記ポーリングに戻るときは、前記実行優先順位を最高に上げるステップを経て戻るコンピュータを用いた計測制御方法。
【請求項３】
請求項１または２記載のコンピュータを用いた計測制御方法において、前記他の処理は、前記コンピュータに接続された入出力手段の入出力処理、ディスプレイの描画処理を含み、前記最高から下げた実行優先順位は、これらの処理の実行優先順位よりも高いコンピュータを用いた計測制御方法。
【請求項４】
請求項１乃至３記載のコンピュータを用いた計測制御方法において、前記計測制御装置との間における所定の処理は、データ、コマンドの入出力処理を含むコンピュータを用いた計測制御方法。
【請求項５】
請求項１乃至４のいずれか一項記載のコンピュータを用いた計測制御方法において、前記コンピュータは、Windows（登録商標）オペレーティングシステムで動作するコンピュータを用いた計測制御方法。
【請求項６】
請求項５記載のコンピュータを用いた計測制御方法において、前記単位時間当たりのＣＰＵチックカウント数を計測するステップではQueryPerformanceFrequency()ＡＰＩ関数を用い、前記周期生成スレッドによりＣＰＵチックカウント数を計測しつつポーリングを実行し、ポーリング中にＣＰＵチックカウント数が前記所定サンプリング周期相当のＣＰＵチックカウント数と等しくなったときにポーリングを抜けて前記所定の処理を実行するステップにおけるＣＰＵチックカウント数の計測にはQueryPerformanceCounter()ＡＰＩ関数を用いるコンピュータを用いた計測制御方法。
【請求項７】
請求項５または６記載のコンピュータを用いた計測制御方法において、前記最高の実行優先順位は、「THREAD_PRIORITY_TIME_CRITICAL」であるコンピュータを用いた計測制御方法。
【請求項８】
請求項５乃至７のいずれか一項記載のコンピュータを用いた計測制御方法において、前記最高の実行優先順位よりも低い実行優先順位は、「THREAD_PRIORITY_HIGHEST」であるコンピュータを用いた計測制御方法。
【請求項９】
コンピュータに接続された計測制御装置との間で所定サンプリング周期ごとに所定の処理を実行するプログラムであって、
単位時間当たりのＣＰＵチックカウント数を計測するステップと、
前記所定サンプリング周期をＣＰＵチックカウント数に変換するステップと、
前記所定サンプリング周期とＣＰＵチックカウント数を比較するステップを含む周期生成スレッドを立ち上げるステップと、
この周期生成スレッドによりＣＰＵチックカウント数を計測しつつポーリングを実行し、ポーリング中にＣＰＵチックカウント数が前記所定サンプリング周期相当のＣＰＵチックカウント数と等しくなったときにポーリングを抜けて前記所定の処理を実行するステップとを備え、
前記周期生成スレッドは、前記ポーリングを実行する前に、この周期生成スレッドの実行優先順位を最高に上げるステップと、
前記ポーリングを抜けて前記所定の処理を実行した後に前記スレッドの実行優先順位を最高から下げて他の処理を可能にするステップとを含むことを特徴とする計測制御プログラム。
【請求項１０】
請求項９記載の計測制御プログラムはさらに、前記スレッドの実行優先順位を最高から下げて他の処理を可能にするステップの後、前記ポーリングに戻るときは前記周期生成スレッドの実行優先順位を最高に上げるステップを含む計測制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイムに実行する機能の無い（所定サンプリング周期ごとのサンプリング動作機能を有しない）オペレーティングシステム（以下「ＯＳ」という）で動作するコンピュータにおいて、計測および制御におけるサンプリング周期精度を向上させることができる計測制御方法およびそのプログラムに関する。
【背景技術】
【０００２】
Windows（登録商標） CE、 Embedded Windowsを除くWindows 98、 2000、 XPといったWindows系ＯＳ（Operating System／オペレーティングシステム）は元来計測制御用には設計されておらず、計測・制御に必須の機能であるリアルタイム性（ここでは一定周期ごとのサンプリング動作をさすものとする）に関する機能を備えていない。そのため、正確なサンプリング周期を発生することができず、正確もしくは短いサンプリング周期が要求されるような計測制御分野においてWindows ＯＳを使用することはほとんど無かった。このような計測制御分野では一般的に、専用のハードウエアであるＤＳＰ（Digital Signal Processor）を用いたり、あらかじめリアルタイム性に関する機能を重視して設計されたＯＳであるTron、VxWorks（登録商標）、 Windows CE、 Embedded Windowsなどの組込み系ＯＳやRT-Linux（登録商標）が用いられている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、ＤＳＰなどの専用ハードウエアは、Windows ＯＳで動作するＰＣ（パーソナルコンピュータ）と比較して、搭載されているＣＰＵの計算能力は低く、搭載されているメモリ容量も少なく、しかも性能と価格を比較すると高価である。また、専用ハードウエアは、新たにAD/DA変換やＵＳＢ（Universal Serial Bus）ポートなどハードウエアを拡張する際に、それぞれのハードウエアについての高度な専門知識を必要とする。
【０００４】
ＵＳＢやＰＣＩ（Peripheral Components Interconnect bus）バス上で動作する一般的なハードウエアの多くはWindows ＯＳ上で動作することでハードウエアが有する機能を最大限発揮するよう設計されているものが多い。Windows ＯＳ以外の組み込み系ＯＳやRT-Linux ＯＳなどのリアルタイムＯＳを用いる場合は、ＯＳ自体が拡張用ハードウエアに対応しない場合や機能が限定される場合があり、簡単にはハードウエアを拡張することはできない。また、標準で提供されるドライバソフトウエアはWindows ＯＳ用のソフトウエアのみの場合も多い。さらに、Windows 系ＯＳ以外のＯＳで動作するハードウエアではメモリの使用量に制限があって計測、制御ソフト、機器を使用できない場合もある。
【０００５】
ＤＳＰを用いる場合は、リアルタイム性を得るために、割り込みを利用する。しかしながら、プログラムにバグが存在するなどによりプログラムが暴走すると、システム全体に影響を及ぼしてしまうおそれがある。組み込み系のＯＳではタスクのスケジューリングを厳密に行うことでリアルタイム性を実現しているが、ユーザープログラムの実行がカーネル領域で行われるため、こちらもプログラムのバグなどによって容易にシステム全体が停止してしまうなどの問題がある。また、カーネル領域からアクセスすることのできるメモリ容量には制約があるので、大容量のプログラムは実行できないことがある。
【０００６】
リアルタイム性の無いＯＳを計測制御に用いた場合は、リアルタイム性に関する性能、精度が低い。例えば、Windows ＯＳの標準的なWM_TIMERメッセージによる定周期動作は、高速なＣＰＵを用いた場合でも精度が確保される周期は最大限に良く見積もっても数ミリ秒程度である。実際にはWindows ＯＳのタイマー処理の精度はＣＰＵの使用状況に依存するので、使用状況によって精度はさらに低下してしまうおそれがある。
【０００７】
Windows ＯＳのカーネル領域にリアルタイム性を確保するためのモジュールを組み込んで、リアルタイム機能を付加する製品も発売されているが、リアルタイム性を確保するためにカーネル領域でプログラムを実行するため、バグなどによってシステム全体が停止するおそれがある。
【０００８】
しかし、広く普及したＯＳ（Windows ＯＳ）を計測制御用のプラットフォームとして利用することができれば、高性能ＣＰＵを活用でき、拡張ハードウエアとの親和性が向上し、大容量のメモリを利用できる。さらに、Windows ＯＳの特徴である高度なユーザーインターフェースを利用でき、既存のコンパイラの機能を拡張することなくそのまま使用することでプログラミングが可能であるなど、すでにあるWindows ＯＳ用の豊富なソフトウエア資源やハードウエア資源をそのまま使用することができる。しかもWindows ＯＳ用のＰＣは性能と比較して低価格で入手が可能であり、コストパフォーマンスの高い柔軟な計測制御システムを構築することが可能となる。
【０００９】
本発明は、かかる従来技術の課題を解決するためになされたものであって、広く普及したリアルタイム性の無いＯＳを使用して、計測および制御におけるサンプリング周期精度を向上させることができるコンピュータを使用した計測制御方法およびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
かかる課題を解決する本発明は、コンピュータに接続された計測制御装置との間で所定サンプリング周期ごとに所定の処理を実行する計測制御方法であって、単位時間当たりのＣＰＵチックカウント数を計測するステップと、前記所定サンプリング周期をＣＰＵチックカウント数に変換するステップと、前記所定サンプリング周期とＣＰＵチックカウント数を比較するステップを含む周期生成スレッドを立ち上げるステップと、この周期生成スレッドによりＣＰＵチックカウント数を計測しつつポーリングを実行し、ポーリング中にＣＰＵチックカウント数が前記所定サンプリング周期相当のＣＰＵチックカウント数と等しくなったときにポーリングを抜けて前記所定の処理を実行するステップとを備え、前記周期生成スレッドは、前記ポーリングを実行する前に、該周期生成スレッドの実行優先順位を最高に上げるステップと、前記ポーリングを抜けて前記所定の処理を実行した後に前記周期生成スレッドの実行優先順位を最高から下げて他の処理を可能にするステップを含むことに特徴を有する。
【００１１】
前記他の処理を終了した後に前記ポーリングに戻るときは、前記実行優先順位を最高に上げるステップを経て戻る。
前記他の処理は、前記コンピュータに接続された入出力手段の入出力処理、ディスプレイの描画処理を含み、前記最高から下げた実行優先順位は、これらの処理の実行優先順位よりも高く設定する。
前記計測制御装置との間における所定の処理は、データ、コマンドの入出力処理を含む。
【００１２】
実際的には、前記コンピュータは、Windows ＯＳで動作する。
前記単位時間当たりのＣＰＵチックカウント数を計測するステップではQueryPerformanceFrequency()ＡＰＩ関数を用い、前記周期生成スレッドによりＣＰＵチックカウント数を計測しつつポーリングを実行し、ポーリング中にＣＰＵチックカウント数が前記所定サンプリング周期相当のＣＰＵチックカウント数と等しくなったときにポーリングを抜けて前記所定の処理を実行するステップにおけるＣＰＵチックカウント数の計測にはQueryPerformanceCounter()ＡＰＩ関数を用いる。前記最高の実行優先順位は、「THREAD_PRIORITY_TIME_CRITICAL」とし、前記最高の実行優先順位よりも低い実行優先順位は、「THREAD_PRIORITY_HIGHEST」とする。
【００１３】
別の観点からなる本発明は、コンピュータに接続された計測制御装置との間で所定サンプリング周期ごとに所定の処理を実行するプログラムであって、単位時間当たりのＣＰＵチックカウント数を計測するステップと、前記所定サンプリング周期をＣＰＵチックカウント数に変換するステップと、前記所定サンプリング周期とＣＰＵチックカウント数を比較するステップを含む周期生成スレッドを立ち上げるステップと、この周期生成スレッドによりＣＰＵチックカウント数を計測しつつポーリングを実行し、ポーリング中にＣＰＵチックカウント数が前記所定サンプリング周期相当のＣＰＵチックカウント数と等しくなったときにポーリングを抜けて前記所定の処理を実行するステップとを備え、前記周期生成スレッドは、前記ポーリングを実行する前に、この周期生成スレッドの実行優先順位を最高に上げるステップと、前記ポーリングを抜けて前記所定の処理を実行した後に前記スレッドの実行優先順位を最高から下げて他の処理を可能にするステップとを含むことに特徴を有する。
さらに実際的には、前記スレッドの実行優先順位を最高から下げて他の処理を可能にするステップの後、前記ポーリングに戻るときは、前記周期生成スレッドの実行優先順位を最高に上げるステップを含める。
【発明の効果】
【００１４】
本発明によれば、非リアルタイム性のオペレーティングシステムの持つ入出力処理、画面の描画処理、拡張性などの機能を損なうことなく、精度の高いマイクロ秒オーダーのサンプリング周期の実現が可能になる。
本発明は、機能の実現をすべてアプリケーション領域において、マルチスレッド機能によって実現しているため、カーネルが暴走してシステム全体が停止してしまうおそれがほとんどない。
【００１５】
本発明のソフトウエアをWindows ＯＳ上で動作させることにより、Windows ＯＳを用いて簡便にハードウエアの拡張性の高い、コストパフォーマンスの高い計測制御システムの構築を可能とする。
【発明を実施するための最良の形態】
【００１６】
本発明の計測・制御方法およびそのプログラムを実行するコンピュータの概要を図１に示した。このパーソナルコンピュータ１０は、Windows ＯＳによって動作するパーソナルコンピュータであって、全体を統括的に制御するＣＰＵ１１を、周辺回路、バスなどを有するチップセット（マザーボード）１３上に備えている。ＣＰＵ１１は、チップセット１３を介してＲＡＭ１５、磁気ディスクドライブ１７との間でプログラム、データ等の読み込み、書き込みを行い、所定の表示をディスプレイ１９に行う。さらにチップセット１３には、このパーソナルコンピュータ１０への入力手段としてキーボード２１、マウス２３が接続されている。また、本発明のプログラムが書き込まれた記憶媒体の読み込みを可能にする光学ドライブ２５が接続されている。
【００１７】
さらにこのパーソナルコンピュータ１０には、ＰＣＩタイプの計測制御機器３１がチップセット１３に備えられたＰＣIバスに装着され、あるいは、チップセット１３に備えられたＵＳＢポート、ＩＥＥＥ(Institute of Electrical and Electronics Engineers)１３９４ポート等に計測制御機器３３が接続される。これらの計測制御機器３１、３３は、このパーソナルコンピュータ１０によって制御される。また、本発明の計測制御方法およびそのプログラムは記憶手段、通常は磁気ディスクドライブ１７にインストールされていて、使用者は必要に応じて読み出すことができる。
【００１８】
次に、本発明の計測制御方法およびそのプログラムについて、図２（Ａ）、（Ｂ）に示したフローチャートを参照して説明する。図２（Ａ）のフローチャートは、図１に示した計測制御システムの計測制御処理に関するルーチンである。図２（Ｂ）のフローチャートは、計測制御周期生成処理に関するルーチンである。この実施形態では、これらの計測制御処理Ａおよび計測制御周期生成処理Ｂを、マルチスレッド化して実行する。
【００１９】
計測制御処理スレッドに入ると、先ず、メッセージループ処理を開始して、必要な情報、入力項目等をディスプレイ１９に表示する（ステップＳ１０１）。次に使用者は、ディスプレイ１９の表示を見ながら、キーボード２１、マウス２３を操作してサンプリング周期等の入力、選択等を行い、ＣＰＵ１１は、その入力操作に対応する処理を施し、その結果をディスプレイ１９に表示する描画処理などを行う（ステップＳ１０２）。そうして、計測制御開始の入力の判定を行う（ステップＳ１０３）。計測制御開始で無ければ（ステップＳ１０３：ＮＯ）、計測制御終了か否かチェックするが（ステップＳ１０８）、まだ計測制御を開始していない場合は計測制御を終了することも無いので（ステップＳ１０８：ＮＯ）ステップＳ１０２に戻り、入出力処理、描画処理を実行しながら計測制御開始コマンド等が入力されるのを待つ。なお、ステップＳ１０１、１０２の表示処理、入力処理の実行優先順位は、デフォルトで「THREAD_PRIORITY_NORMAL」に設定されているので、ＰＣ上で実行されるほかのプログラムに対して、この実施形態の計測制御処理自体の優先順位を上げるため、実行優先順位を「THREAD_PRIORITY_ABOVE_NORMAL」に設定する。
【００２０】
計測制御開始の場合（ステップＳ１０３：ＹＥＳ）は、先ず、サンプリング周期設定および計測制御開始処理を実行する（ステップＳ１０４）。サンプリング周期設定処理では、単位時間当たりのＣＰＵチックカウント数を計測し、サンプリング周期当たりのＣＰＵチックカウント数を演算してメモリする。そうして、計測制御開始処理として、計測制御機器３１、３３の初期化等を実行する。
【００２１】
次に、メモリしたサンプリング周期当たりのＣＰＵチックカウント数に基づいて、計測制御周期生成用スレッドをサスペンド状態で作成する（ステップＳ１０５）。つまり、サンプリング周期当たりのＣＰＵチックカウント数をサンプリング周期として設定した後、図２（Ｂ）の計測制御周期生成フローチャート（プログラム）を実行待ち状態で起動して実行の準備を行う。
【００２２】
これらの準備が完了したら、計測制御開始処理を実行する（ステップＳ１０６）。そうして、計測制御周期生成用スレッドに対して計測制御周期生成開始命令を出して、計測制御周期生成用スレッドを実行状態に変更する（ステップＳ１０７）。この実行状態への変更により、計測制御周期生成用スレッドが実行される。この実施形態では計測制御周期生成用スレッドがマルチスレッド化されているので、計測制御処理と並行して計測制御周期生成用スレッドが実行される。
【００２３】
続いて、計測制御終了か否かをチェックし（ステップＳ１０８）、終了でなければ（ステップＳ１０８：ＮＯ）、ステップＳ１０２に戻る。その後、通常は計測制御が終了するまでステップＳ１０２、ステップＳ１０３：ＮＯ、ステップＳ１０８：ＮＯ、ステップＳ１０２のループ処理を繰り返す。
【００２４】
計測制御が終了すると（ステップＳ１０８：ＹＥＳ）、計測制御周期生成終了命令を出し（ステップＳ１０９）、計測制御終了処理を実行して（ステップＳ１１０）、ステップＳ１０２に戻る。ステップ１０９の計測制御周期生成終了命令では、計測制御周期生成用スレッドを停止状態に変更し、破棄する。ステップＳ１１０の計測制御終了処理では計測制御機器３１、３３を停止させる。
【００２５】
以上の計測制御スレッドは、計測制御に関するメイン動作である。次に、サンプリング周期設定処理および計測制御周期生成用スレッドの動作について、図２の（Ｂ）に示した計測制御周期生成用スレッドのフローチャートを参照して説明する。
【００２６】
この計測制御周期生成用スレッドは、計測制御スレッドのステップＳ１０５においてサスペンド状態で生成される。計測制御周期生成用スレッドでは、アプリケーション領域において、サンプリング周期ごとに処理が進行するように、ポーリングを行う。このとき、標準的には時間計測用のＡＰＩ（Application Programming Interface）関数として、ミリ秒オーダーの精度を持つＡＰＩ関数（「timeGetTime」、「timeGetSystemTime」）が使用される。しかしながら、これらのＡＰＩ関数を使用する方法では、サンプリング周期にミリ秒オーダーの誤差が生じる可能性がある。
【００２７】
そこで本発明では、最も時間的な精度の高い、ＣＰＵクロック（チックカウント）相当の精度を持つＡＰＩ関数、この実施形態ではQueryPerformanceCounter()ＡＰＩ関数を使用する。つまり、ステップＳ１０４のサンプリング周期設定処理では、QueryPerformanceFrequency()ＡＰＩ関数によって単位時間（１秒）当たりのＣＰＵチックカウント数を計測し、計測結果に基づいて、指定されたサンプリング周期をＣＰＵチックカウント数に変換してセットする。
【００２８】
以上の処理を含む計測制御周期生成処理の詳細について、さらに図２（Ｂ）を参照して説明する。計測制御処理のステップＳ１０７において計測制御周期生成開始命令が出されると、ステップＳ２０２において計測制御周期生成用スレッドが実行状態に設定される。すると、まず、スレッドの実行優先順位を「最高」に上げる（ステップＳ２０３）。Windows ＯＳでは、実行優先順位を最高の「THREAD_PRIORITY_TIME_CRITICAL」に設定する。これにより、以下のポーリングに関するスレッドの実行優先順位が「最高」になる。
【００２９】
次に、QueryPerformanceCounter()ＡＰＩ関数によってＣＰＵチックカウント数を計測して（ステップＳ２０４）、設定したサンプリング周期と比較してＣＰＵチックカウント数が設定したサンプリング周期相当のチックカウント数に達したか否かチェックする（ステップＳ２０５）。このポーリングを繰り返して、ＣＰＵチックカウント数がサンプリング周期相当のチックカウント数を超えるのを待つ（ステップＳ２０５：ＮＯ、ステップＳ２０４）。
【００３０】
ＣＰＵチックカウント数がサンプリング周期相当のチックカウント数に達すると(ステップＳ２０５：ＹＥＳ）、所定の処理である一定周期計測制御処理を行い（ステップＳ２０６）、スレッドの実行優先順位を下げて（ステップＳ２０７）、その後ステップＳ２０３に戻る。ステップＳ２０３に戻るとスレッドの実行優先順位を最高に上げて、ステップＳ２０４、ステップＳ２０５のポーリングを繰り返す。なお、一定周期計測制御処理（ステップＳ２０６）では、所定の処理として例えば、計測制御機器３１、３３から計測データを入力し、所定の制御に関する演算を実行してコマンド、制御データを計測制御機器３１、３３に出力する入出力処理や、通信処理を実行する。
【００３１】
以上のようにこの実施形態では、プログラムをマルチスレッド化し、ＣＰＵチックカウント数を計測しつつポーリングを行う部分（ステップＳ２０４、ステップＳ２０５）に単一のスレッドを割り当て、さらにこのポーリングに関するスレッド（ステップＳ２０４、ステップＳ２０５）の実行優先順位を、ポーリングを実行する際には「最高」の実行優先順位（「THREAD_PRIORITY_TIME_CRITICAL」）に変更してＣＰＵチックカウント数の比較を最優先で行うことにより、サンプリング周期の精度が向上した。
【００３２】
実行優先順位が最高のスレッドでポーリングを行った場合、他のスレッドにＣＰＵ時間が割り当てられずに、実行優先順位が高よりも低い画面の描画、ファイルの操作、マウス、キーボード入力処理等の通常の処理ができなくなる。しかし本発明の実施形態では、ポーリングを抜けて計測制御処理を行った後に実行優先順位を「最高」から「高」に、この実施形態では（「THREAD_PRIORITY_HIGHEST」）に下げる。このように計測制御周期生成スレッドの実行優先順位を下げることで、計測制御処理を行いつつ、キーボード２１、マウス２３などの入力手段からの入力、メモリなどへのアクセス、ディスプレイ１９への描画処理など、実行優先順位が「高」よりも低いスレッドとの並列処理を可能にした。
【００３３】
一方、計測制御周期生成スレッドの実行優先順位は常にこれらの入出力、描画処理を行う計測制御スレッドの実行優先順位よりも高いので、確実にステップＳ２０３に戻ってポーリング処理を繰り返すことを可能にした。さらに、ステップＳ２０３では実行優先順位を「最高」に設定し、かつQueryPerformanceCounter()ＡＰＩ関数によってＣＰＵチックカウント数を計測するので、ＣＰＵクロック（チックカウント）オーダーでのサンプリング周期設定が可能になる。
【００３４】
本実施形態において、計測制御機器、または計測制御機器に接続される装置としては、例えばアクティブ制振装置がある。アクティブ制振装置に適用した場合は、ステップＳ２０６の一定周期計測制御処理において、アクティブ制振装置からセンサ信号を入力し、アクティブ装置を駆動制御する信号を出力する。本実施形態によれば、この入出力を正確なサンプリング周期で実行できるので、安定した制振制御が可能になる。
【００３５】
このように本発明の計測制御方法によれば、Windows ＯＳが備えた入出力処理、画面の描画、拡張性などの機能を犠牲にすることなく、精度の高いマイクロ秒オーダーのサンプリング周期が実現された。
さらに本発明の実施形態ではプログラムの実行が通常のソフトウエアが実行されるアプリケーション領域で行われるため、計測用ハードウエアをプログラム上から利用する際にハードウエアメーカーからWindows ＯＳ用として提供されるドライバをそのまま使用することができ、ＵＳＢフラッシュメモリなどのハードウエアなどもWindows ＯＳの機能を利用してそのまま利用でき、大容量のメモリ（ＲＡＭ１５、磁気ディスクドライブ１７など）も使用可能である。
【図面の簡単な説明】
【００３６】
【図１】本発明のコンピュータを用いた計測制御方法を実施するための計測制御システムの実施形態をブロックで示す図である。
【図２】コンピュータを用いた計測制御方法、そのプログラムの実施形態をフローチャートで示す図である。
【符号の説明】
【００３７】
１０  パーソナルコンピュータ
１１  ＣＰＵ
１３  チップセット
１５  ＲＡＭ
１７  磁気ディスクドライブ
１９  ディスプレイ
２１  キーボード
２３  マウス
２５  光学ドライブ
３１  ３３  計測制御機器
【図１】
2008171111.tif 000003
【図２】
2008171111.tif 000004