(57)【要約】【課題】デバイスの同期されたローカル・クロックに基づく動作発生のスケジューリングを通じて、複数のデバイスの動作を調整するシステム及び方法を提供する。【解決手段】本発明が提供するシステムに含まれるデバイスは、通信ネットワークを介して通信可能に結合されており、デバイスのローカル・クロックは、ＩＥＥＥ１５８８、ＮＴＰ、または、他の技法を利用して、高精度の同期がとられている。デバイスのそれぞれがイベントマネージャを含んでいる。このイベントマネージャは、スケジュールされた動作を指定の時間に発生させるようにプログラム可能であり、対応するデバイスをトリガして、該対応するデバイスの同期されたクロックに従って、指定の時間にスケジュールされた動作を実施するように実行可能である。【選択図】図２
2006079625.tif 000002
【特許請求の範囲】
【請求項１】
同期されたクロックを備え、通信ネットワークを介して通信可能に結合された、少なくとも２つのデバイスを有し、
前記少なくとも２つデバイスのそれぞれがイベントマネージャを含んでおり、該イベントマネージャのそれぞれは、スケジュールされた動作を指定の時間に発生させるようにプログラム可能であり、前記イベントマネージャのそれぞれは、その対応するデバイスをトリガして、該対応するデバイスの同期されたクロックに従って、前記指定の時間に前記スケジュールされた動作を実施するように実行可能である、
システム。
【請求項２】
前記少なくとも２つのデバイスが、互いに対話することにより、そのクロックを能動的に同期させる、請求項１に記載のシステム。
【請求項３】
前記少なくとも２つのデバイスが、ＩＥＥＥ１５８８規格に従ってそのクロックを同期させる、請求項１に記載のシステム。
【請求項４】
前記スケジュールされた動作を指定の時間に発生させることが、前記スケジュールされた動作を絶対時間に発生させることを含む、請求項１に記載のシステム。
【請求項５】
前記スケジュールされた動作を指定の時間に発生させることが、前記スケジュールされた動作を相対時間に発生させることを含む、請求項１に記載のシステム。
【請求項６】
複数のデバイスの動作を調整するための方法であって、
前記複数のデバイスのクロックを同期させるステップと、
第１の動作が前記複数のデバイスのうち第１のデバイスによって実施されるべき第１の時間を選択するステップと、
第２の動作が前記複数のデバイスのうち第２のデバイスによって実施されるべき第２の時間を選択し、前記第２の時間によって、前記第２の動作が、前記第１の動作と所望の時間的関係で実施されるように調整するステップと、
前記第１の動作が、前記第１の時間に前記複数のデバイスのうち前記第１のデバイスにおいて行われるようにスケジュールするステップと、
前記第２の動作が、前記第２の時間に前記複数のデバイスのうち前記第２のデバイスにおいて行われるようにスケジュールするステップと、
を有する方法。
【請求項７】
前記クロックを同期させるステップが、ＩＥＥＥ１５８８及びネットワーク・タイム・プロトコル（ＮＴＰ）からなるグループから選択された規格を利用するステップを含む、請求項６に記載の方法。
【請求項８】
同期されたクロックを備え、通信ネットワークに通信可能に結合された複数のデバイスの少なくとも１つによって、動作の識別子及び爆発時間を含むメッセージを受信するステップと、
前記少なくとも１つの受信デバイスによって、前記爆発時間になったか否かについてその（該デバイスの）同期されたクロックをモニタするステップと、
前記爆発時間になると、前記少なくとも１つの受信デバイスが前記動作を実施するステップと、
を有する方法。
【請求項９】
前記爆発時間が絶対時間を含む、請求項８に記載の方法。
【請求項１０】
前記爆発時間が相対時間を含む、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期されたローカル・クロックに基づく動作のスケジューリングを通じて、複数のデバイスの動作を調整するシステムおよび方法に関する。
【背景技術】
【０００２】
システムをなす各種コンポーネントの動作を同期させることが望ましい場合が多い。例えば、いくつかの従来のオール・イン・ワン・ボックス型計器から構成される測定システムの場合、複雑な測定には、それぞれの動作を適正に同期させるため、いくつかの計器をまとめて制御しなければならない場合が多い。一例として、信号源が整定するまで、スペクトル・アナライザによる測定を許すべきではない。また、正確さを確保するのに十分な数のサンプルについて平均値が得られるまで、電力計の測定を実施すべきではない。また、現周波数における測定が完了するまで、周波数掃引信号源の新周波数への切換えを許すべきではない。従って、各種コンポーネントの相対的動作の同期が望ましくなる。
【０００３】
ハードウェア・トリガ・ライン（Hardware Trigger Line）を利用して、テスト・システムにおける各種計器を同期させる場合が多い。ハードウェア・トリガ・ラインは、正確な同期が必要とされる、あるいは、測定速度が重要になる測定システムにおいてとりわけ有効である。ハードウェア・トリガ・ラインを実施する場合、計器には、トリガ出力とトリガ入力が設けられ、専用ハードウェア・ライン（例えば、ワイヤ）によって１つの計器のトリガ出力と別の計器のトリガ入力が接続される。
【０００４】
例えば、スペクトル・アナライザは、一般に、同じボックス内に受信計器とディジタイザが含まれており、受信計器からの出力信号の測定は、整定までのある時間期間の経過後に実施すべきである。受信計器とディジタイザの間にハードウェア・トリガ・ラインを設ける場合、受信計器のトリガ出力ポートは、ハードウェア・ライン（例えば、ワイヤ）を介してディジタイザのトリガ入力ポートに結合されることになる。このハードウェア・ラインの電圧は、受信計器からの出力信号が整定する時点において高になる。ディジタイザ・ユニットのトリガ入力によってその電圧の高への変化が感知され、その測定が開始するようトリガされる。従って、ハードウェア・トリガ・ラインによれば、計器の相対的動作を所望のやり方で確実に同期させることになる。
【０００５】
ハードウェア・トリガ・ライン技法には、これら２つの計器間に延びる物理的ワイヤが必要になり、そのワイヤの機能は、トリガとしての利用に固定され、専用化される。さらに、こうしたハードウェア・トリガ・ラインを取り入れると、配線量が増大し、従って、ワイヤの経路指定に関する問題が生じたり、問題解決の困難さが増すといったように、配線の複雑性及び／または混乱を生じることになる。また、ハードウェア・トリガ・ラインの長さが増すにつれて（例えば、結合される計器相互間の配置間隔が増すにつれて）、こうしたハードウェア・トリガ・ラインによって伝達される信号の待ち時間も長くなる。
【０００６】
もう１つの同期技法では、ソフトウェアを用いて、各種計器の動作を同期がとれるように制御する。こうしたソフトウェアによる同期は、同期させる計器の配置が、あまりにも離れすぎていて、ハードウェア・トリガ・ラインを利用することができないといった場合のように、ハードウェア・トリガを利用できない状況において用いることが可能である。各種計器の動作の同期を制御するために、ソフトウェアを実施する場合、ソフトウェアは、所定の時間遅延、計器への問い合わせ、及び／または、ソフトウェア割り込みを利用して、計器の動作を調整することが可能である。例えば、第１の計器に命じて、第１の動作を実施させた後、外部コントローラのソフトウェアは、ある特定の時間量にわたって待機してから、別の計器に対して、第１の動作の完了後に実施すべきある特定の動作を行うように命じる。場合によっては、外部コントローラのソフトウェアが、計器に問い合わせて、ある特定の機能の完了時点を確認し、その結果、次の動作のトリガに適した時点を決定することが可能になることもある。場合によっては、計器を使用して、外部コントローラに信号を送り、コントローラにソフトウェア割り込みを発生させて、例えば、ある特定の計器がある特定の動作を完了したことを表示することも可能である。
【０００７】
上述の受信計器及びディジタイザの動作の同期にソフトウェア同期化技法を利用する例として、制御コンピュータから受信計器に、周波数変更を命じるメッセージを送ることが可能である。既知のように、周波数が変更された信号の測定をトリガする前に、ある量の待機時間が必要になる（変更周波数を整定させるため）。従って、受信計器に周波数変更を命じた後、制御コンピュータは１００ミリ秒といった、所定の時間量にわたって待機（または「休止」）する。その後、制御コンピュータは、ディジタイザに命じて、測定を開始させる。
【０００８】
ネットワーク化されたデバイス（device）のクロックを高い精度で同期させる技法も既知のところである。一例として、ネットワーク・タイム・プロトコル（Network Time Protocol、ＮＴＰ）は、コンピュータ・ネットワークにおけるコンピュータ・クロック時間の同期に利用されるプロトコルである。同様のプロトコルと同じように、ＮＴＰは協定世界時（Coordinated Universal Time、ＵＴＣ）を利用して、１ミリ秒以内まで、場合によっては、数分の１ミリ秒以内まで、コンピュータ・クロック時間を同期させる。もう１つの例として、電気電子技術者協会規格協会（Institute of Electrical and Electronics Engineers Standards Association、ＩＥＥＥ−ＳＡ）によって、ＩＥＥＥ１５８８「ネットワーク化測定及び制御システムのための精密同期プロトコルに関する規格」と呼ばれる、ネットワークにおけるクロック間の同期性を維持するための新規の規格が承認されている。一般に、このＩＥＥＥ１５８８規格では、クロックを同期状態に保つため、ネットワーク化されたデバイス間におけるタイミング情報の交換に利用することが可能なメッセージが定義されている。ＩＥＥＥ１５８８規格によれば、ＮＴＰによって得られるよりいっそう高精度の（例えば、１マイクロ秒以内までの）クロック同期が可能になる。
【０００９】
しかし、ＮＴＰ及びＩＥＥＥ１５８８規格によれば、ネットワーク化されたデバイスのクロックを高精度で同期させることによって、それぞれ、ローカル・クロックを備えるネットワーク化されたデバイスが、共通時間感覚を持つようにする技法が得られるが、これらの技法は、デバイスの動作の同期に対応しない。それどころか、こうした技法は、ネットワーク化されたデバイス間において、クロックを同期された状態に能動的に（actively）維持することに焦点を絞ったものである。従って、この能動クロック同期化技法の場合、仮にあるとしても、それぞれの動作を同期させるために、デバイスが同期されたクロック（synchronized clock）を活用できるようにする方法については未解決のままである。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、デバイスの同期されたローカル・クロックに基づく動作発生のスケジューリングを通じて、複数のデバイスの動作を調整するシステム及び方法を提供することにある。
【課題を解決するための手段】
【００１１】
従って、複数のデバイスは、通信ネットワークを介して通信可能に結合されており、デバイスのローカル・クロックは、ＩＥＥＥ１５８８、ＮＴＰ、または、ローカル・クロックを同期させるための他の何らかの技法を利用して、高精度の同期がとられている。デバイスに対する「時限爆弾（Time Bombs）」をスケジュールして、それぞれの時限爆弾について設定された爆発時間に基づいて、デバイス間における動作発生の調整を行うことが可能である。これに関して、「時限爆弾」はプログラムされた時間に爆発するが、この時間は、絶対時間（absolute time）（例えば、１：００：００）とすることもできるし、あるいは、相対時間（relative time）（例えば、あるイベント（event、事象）の発生の２秒後）とすることも可能であり、その爆発によって、それぞれのデバイスにおけるある特定の動作がトリガされる。実施態様によっては、爆発時間だけではなく、爆発によってトリガされるそれぞれの動作も、各デバイス毎に、プログラム可能である。本明細書においてさらに解説されるように、各種デバイスで実施される時限爆弾を利用して、高い時間精度で各種デバイスの動作を調整することが可能である。さらに、実施態様によっては、時限爆弾と、デバイスが通信ネットワークを介して伝達することが可能なイベントメッセージを組み合わせて利用することにより、それぞれの動作を調整することが可能な場合もある。
【００１２】
例えば、少なくとも実施態様の１つによれば、あるシステムには、通信ネットワークを介して通信可能に結合された少なくとも２つのデバイスが含まれており、少なくとも２つのデバイスには、それらのクロックを同期させるための手段が含まれている。本明細書に提示の各種実施態様に従ってそれらのクロックを同期させるための手段は、例えば、デバイス間におけるメッセージの交換によってデバイスのローカル・クロックを同期させる。こうした同期されたクロック（synchronized clock）は、例えば、ＩＥＥＥ１５８８規格またはＮＴＰ規格に従って実施することが可能である。少なくとも２つのデバイスには、それぞれ、さらに、それぞれの動作を調整するための手段も含まれており、この場合、調整手段には、ある特定時点に発生するようにある動作をスケジュールするための手段が含まれている。例えば、調整手段は、イベントマネージャ（event manager）とすることも可能であり、この場合、イベントマネージャは、スケジュールされた動作をある指定時間に生じさせるようにプログラムすることが可能であり、また、イベントマネージャは、対応するデバイスの同期されたクロックに従って、その対応するデバイスをトリガし、指定された時間にスケジュールされた動作を実施させる働きが可能である。
【００１３】
以上の説明は、下記の本発明に関する詳細な説明をより明確に理解できるようにするため、本発明の特徴及び技術的利点をかなり大まかに概説したものである。本発明の請求の範囲の内容を形成する本発明のさらなる特徴及び利点については、後述することにする。当然明らかなように、開示の概念及び特定の実施態様は、本発明の同じ目的を実施するための修正または他の構造の設計の基礎として容易に利用することが可能である。やはり当然明らかなように、こうした同等構成は、付属の請求の範囲に記載された本発明から逸脱するものではない。その構成と動作方法の両方に関して本発明に固有のものであると信ずるところの新規の特徴、並びに、さらなる目的及び利点については、付属の図と関連づけて検討すれば、下記の説明からさらに明確な理解が得られるであろう。ただし、特に理解しておくべきは、図のそれぞれは、例証及び説明だけを目的として提示されたものであり、本発明の限界を定義することを意図したものではないという点である。
【発明を実施するための最良の形態】
【００１４】
次に、本発明のより完全な理解が得られるように、添付の図面に関連してなされる下記の説明について言及することにする。
【００１５】
上述のように、測定システムは、正確な測定結果が得られるようにするため、適切なやり方で、いくつかの計器の動作を同期させる（または調整する）必要がある。例えば、スペクトル・アナライザは、信号源計器がその出力周波数で整定するのに十分な機会を得た後で、その測定を行うように調整すべきである。測定システムの全てまたは一部は、「合成計器」によって形成することが可能である。合成計器は、単独で測定を達成することはできないが、代わりに、それらの集合体が、共同作業によって、測定を実施しなければならない。一方、従来のオール・イン・ワン・ボックス計器（本明細書では、「完全収納計器（fully contained instruments）」と呼ばれる）には、所望の測定を実施するのに必要な全てのサブシステムが完全に収納されている。例えば、スペクトル・アナライザは、完全収納計器として実施することもできるし、あるいは、こうしたスペクトル・アナライザは、通信ネットワークを介して通信可能に結合された、受信計器、ディジタイザ等のような、合成計器の集合体によって形成することも可能である。完全収納システムは、測定対象を得るため、他のシステムとのインターフェイスが必要になる可能性がある。例えば、完全収納スペクトル・アナライザは、信号源計器（source）によって生じる信号を測定するため、信号源計器とインターフェイスする。複数の完全収納計器（例えば、スペクトル・アナライザ、ＲＦ源等）を利用するか、複数の合成計器（または、完全収納計器と合成計器の組み合わせ）を利用するかにかかわらず、正確な測定を可能にするため、何らかのやり方で、各種計器の相対動作を調整するのが望ましい場合が多い。
【００１６】
従来の完全収容計器内の各種サブシステムは、ハードウェア・トリガ・ライン及び／またはその基礎ファームウェアを介して時間調整及び同期機能を実施することが可能である。完全収納計器の機能部品である合成計器は、例えば、その配置があまりに離れすぎているために、ハードウェア・トリガ・ラインの利用が実用的でなくなるので、及び／または、こうしたハードウェア・トリガ・ラインの導入にかかわる配線の複雑さによって、その解決法が望ましくないものになる可能性があるので、他の何らかの方法で同期させることが必要になるかもしれない。さらに、各合成計器（または「モジュール」）には、より小規模の組をなす機能が含まれているので、合成計器の同期に関する要件は、独立した完全収容計器間における同期よりも厳しい場合が多い。
【００１７】
もう一度、スペクトル・アナライザの上述の例に言及すると、最新の完全収容スペクトル・アナライザには、一般に、受信計器（receiver）とディジタイザ（digitizer）が含まれている。スペクトル・アナライザのファームウェアは、受信計器の掃引周波数、並びに、ディジタイザを制御し、正確な測定の実施を保証するため、ディジタイザと受信計器周波数を容易に同期させることが可能である。一方、合成計器システムには、受信計器とディジタイザを含むことが可能であるが、同じ計器にではない。従って、これらのデバイス間の同期は、単一計器内に制限されない。この合成計器システムの場合、ディジタイザと受信計器周波数の同期は、ディジタイザによる測定が受信計器周波数の整定時に行われ、それより早くも、遅くもならないことを保証することが求められる。本明細書では、複数の合成計器及び／または完全収容計器の動作を同期させるのに用いることが可能な技法が提示される。
【００１８】
図１を参照すると、複数のネットワーク化されたデバイス（または「計器（instrument）」）の動作を調整するためのシステム例１０が、実施態様に従って示されている。システム例１０には、ローカル・エリア・ネットワーク（ＬＡＮ）、インターネット、または、他の広域ネットワーク（ＷＡＮ）、公衆交換電話網（ＰＳＴＮ）、無線ネットワーク、以上の任意の組み合わせ、及び／または、少なくとも１つのデバイスから他の少なくとも１つのデバイスに情報を伝達するための、現在知られているか、または、今後開発される他の任意のネットワークとすることが可能な、通信ネットワーク１４を介して通信可能に結合された信号源計器１２と受信計器１３が含まれている。この例では、信号源計器１２及び受信計器１３が示されているが、もちろん、本明細書で解説される、動作の同期をとるための実施態様は、これら典型的な計器への適用に制限されるものではない。本明細書で解説される技法は、測定システムを形成する複数の計器の動作を同期化するために利用され得る。こうした技法は、測定システムの合成計器及び／または完全収容計器の動作の同期にも用いることが可能である。さらに、これらの技法は、測定の実施に利用される各種計器の動作に高精度の同期を施すため、とりわけ、測定システムに適用可能であるが、本明細書で解説の技法は、複数のネットワーク化されたデバイスの動作を同期させることが求められる、他のタイプのシステムにおいても同様に用いることが可能である。
【００１９】
信号源計器１２には、ＣＰＵ１０５Ａが含まれており、受信計器１３には、ＣＰＵ１０５Ｂが含まれている。さらに、信号源計器１２及び受信計器１３は、この例の場合、同期されたローカル・クロックを備えている。この特定の例では、ＩＥＥＥ１５８８が利用されており、信号源計器１２はＩＥＥＥ１５８８クロック１０３Ａを使用し、受信計器１３はＩＥＥＥ１５８８クロック１０３Ｂを使用している。もちろん、他の実施例では、ＮＴＰを用いるといったように、ローカル・クロックを能動的に同期させるための他の技法を用いることも可能である。デバイスが互いに対話して、用いられる特定の同期技法（例えば、ＩＥＥＥ１５８８またはＮＴＰ）に従ってそれぞれのローカル・クロックを同期された状態に維持するので、ローカル・クロックは、「能動的に同期された（actively synchronized）」と称される。代替実施態様の場合、ＧＰＳ（全地球測位システム）受信計器等を用いてローカル・クロックを同期させる、他の技法（例えば、受動技法）を用いることも可能である。従って、信号源計器１２及び受信計器１３は、共通時間感覚を備えるように、ローカル・クロック１０３Ａ及び１０３Ｂに高精度の同期が施される。
【００２０】
図１の例の場合、「時限爆弾（time bomb）」は、信号源計器１２と受信計器１３のそれぞれにおいて実施される。すなわち、信号源計器１２では時限爆弾１０６Ａが実施され、受信計器１３では時限爆弾１０６Ｂが実施される。時限爆弾によって、計器が爆発時間（detonation time）と呼ばれる所定の時間に動作を行う（例えば、命令を実行する）ようにプログラムすることが可能になる。爆発時間は、１：００：００のような絶対時間とすることもできるし、あるいは、ある特定のイベントの発生から１０秒後といった相対時間とすることも可能である。一例として、時限爆弾１０６Ａは、信号源計器１２に関して、１：００：００に爆発して、信号源計器１２をトリガし、その周波数を変更させるようにプログラムすることが可能である。周波数が信号源計器１２においてその変更値で整定するのに１秒かかることが分っているものと仮定すると、時限爆弾１０６Ｂは、受信計器１３に関して、１：００：０１に爆発して、受信計器１３をトリガし、その周波数を測定させるようにプログラムすることが可能である。これに関して、周波数がその変更値で整定してから、測定がなされることを保証するため、受信計器１３によって実施される測定動作と信号源計器１２による周波数の変更との調整が行われる。さらに、ローカル・クロック１０３Ａと１０３Ｂとの間の精度が高いので、信号源計器と受信計器のそれぞれの動作を効率よく（例えば、それぞれの動作間において不必要に多量の時間を要することなく）スケジュールすることが可能になる。
【００２１】
この例では、信号源計器１２の時限爆弾１０６Ａが爆発すると、バス１０７Ａを介してＣＰＵ１０５Ａに割り込んで、トリガし、対応する動作（上例の場合の周波数変更といった）を実施させる割り込み１０８Ａが発生する。同様に、受信計器１３の時限爆弾１０６Ｂが爆発すると、バス１０７Ｂを介してＣＰＵ１０５Ｂに割り込んで、トリガし、対応する動作（上例の場合の測定実施といった）を実施させる割り込み１０８Ｂが発生する。
【００２２】
実施態様によっては、爆発時間及び各デバイスが実施すべき対応する動作のプログラムが可能なものもある。図２を参照すると、コントローラを利用して、信号源計器１２と受信計器１３の時限爆弾に対するプログラミングが施される、測定システム例が示されている。図２のシステム例１０Ａには、通信ネットワーク１４を介して信号源計器１２及び受信計器１３と通信可能に結合されたコントローラ１１が含まれている。パーソナル・コンピュータ（ＰＣ）または他のプロセッサ・ベースのデバイスとすることが可能なコントローラ１１には、中央演算処理装置（ＣＰＵ）１０５Ｃが含まれている。さらに、コントローラ１１のローカル・クロック１０３Ｃは、この例の場合、信号源計器１２及び受信計器１３のローカル・クロックと同期がとられている（例えば、ＩＥＥＥ１５８８によって）。しかし、実施態様によっては、コントローラ１１のローカル・クロックと、信号源計器１２及び受信計器１３のような、測定システムにおける他の計器のクロックとの同期がとれている必要がないものもある。
【００２３】
信号源計器１２、受信計器１３、及び、コントローラ１１は、それぞれ、それぞれ、１０１Ａ、１０１Ｂ、及び、１０１Ｃで表示された、それらにおいて実行するイベントマネージャを備えている。一般に、イベントマネージャは、各種計器による時間依存イベントに関する情報伝達を可能にするように設計されたソフトウェア及び／またはハードウェアである。本実施態様例によるイベントマネージャの働きについては、さらに詳細に後述する。図示のように、信号源計器１２のイベントマネージャ１０１Ａは、時限爆弾１０６Ａの実施を管理し、受信計器１３のイベントマネージャ１０１Ｂは、時限爆弾１０６Ｂの実施を管理する。例えば、イベントマネージャ１０１Ａは、情報を受信して（例えば、コントローラ１１から）、爆発時間、及び、時限爆弾１０６Ａの爆発時にトリガすべき対応する動作をプログラムすることが可能である。
【００２４】
さらに図２のシステム例１０Ａについての論考を続行する前に、本明細書において用いられることになる用語のいくつかについて簡単に述べておくことが有用である。
【００２５】
「イベント（event）」という用語は、単独で用いられる場合、システム例１０Ａの信号源計器１２内または受信計器１３内といった、計器内部で発生するものを表わしている。例えば、ディジタイザの入力バッファが満杯になると、あるいは、出力信号が整定すると、あるイベントが生じる可能性がある。「イベント」のもう１つの例としては、計器における時限爆弾の爆発がある。イベントは、通常、計器のハードウェアによって生じるが、それは制限ではない。ソフトウェアによってイベントを生じさせることも可能である。
【００２６】
「イベントメッセージ（event massage）」という用語は、イベントの発生を他の計器に通知するために用いられる、通信ネットワークで送られるメッセージを表わしている。本明細書に提示のいくつかの実施態様では、イベントメッセージは、例えば、ユーザ・データグラム・プロトコル（ＵＤＰ）を利用して、ある特定の通信ネットワークにおける（例えば、ある特定のサブネットにおける）全ての計器に同報通信される。他の実施態様では、イベントメッセージは、伝送制御プロトコル（ＴＣＰ）のようなポイント・ツー・ポイント・プロトコルによって送られる。どの計器も、イベントメッセージを送ることが可能である。他の計器には、イベントメッセージに応答することが可能なものもあれば、あるいは、無視することが可能なものもある。
【００２７】
「出力イベント（output event）」という用語は、その結果、イベントメッセージが通信ネットワークで伝達されることになるイベントを表わしている。全てのイベントが出力イベントというわけではないという点に留意されたい。ある計器は、いくつかのイベントを内部で処理することが可能である。時限爆弾が爆発する計器に、こうした爆発に応答してあるイベントメッセージを伝達するようにプログラミングが施されている場合、時限爆弾の爆発は出力イベントである。
【００２８】
「入力イベント（input event）」という用語は、別の計器から受信するイベントを表わしている。入力イベントは、通信ネットワークによってイベントメッセージの形で到着する。
【００２９】
「動作（action）」という用語は、イベントまたはイベントメッセージに応答して、計器が実施する何かを表している。本明細書に提示されているいくつかの実施態様では、動作は、コールバック・ルーチンによって実行される。これに関して、動作は原子イベントではない、例えば、コールバック・ルーチンは、複雑なシーケンスの命令を実行することが可能である。
【００３０】
「プログラミング・メッセージ」という用語は、通信ネットワークで送られ、ある特定イベントの検出に応答してある特定動作を行うように受信者デバイスにプログラムするために用いられるメッセージを表わしている。例えば、プログラミング・メッセージは、計器に時限爆弾をプログラムするために利用可能であり、爆発時間の設定、及び、時限爆弾の爆発時に計器が行うべき動作の指定を含むことが可能である。
【００３１】
本明細書に解説の実施態様によれば、時限爆弾は、信号源計器１２及び受信計器１３のような、計器の動作の少なくとも一部を調整するために利用される。さらに、実施態様によっては、通信ネットワーク１４を介してイベントメッセージを送ることにより、信号源計器１２及び受信計器１３のような計器の特定の動作の調整を援助することが可能なものもある。従って、測定システムに用いられる全ての計器間にハードウェア・トリガ・ラインが必要というわけではなく、本明細書に解説の時限爆弾及び／またはイベントメッセージを利用して、少なくとも特定の計器の同期がとられる。少なくとも実施態様の１つによれば、イベントメッセージには、イベントの識別子並びに対応するタイムスタンプが含まれる。こうしたイベントメッセージを実施し、それらを用いて、ネットワーク化されたデバイスの動作を調整する例については、その開示が参考までに本明細書において援用され、同時に提出され譲渡先が共通の、「SYSTEM AND METHODS FOR SYNCHRONIZING OPERATIONS OF A PLURALITY OF DEVICES VIA MESSAGES OVER A COMMUNICATION NETWORK」と題する米国特許出願（代理人整理番号１００４１３２９−１）にさらに詳細な記載がある。
【００３２】
計器は、内部で受信するイベントまたはイベントメッセージ（「入力イベント」）に含まれるイベントとすることが可能な、ある特定のイベントを受信すると、特定の動作を行うように構成／プログラムすることが可能である。本明細書においてさらに明らかにされるように、実施態様によっては、動作の動的プログラミングが可能な場合もある。例えば、コントローラ１１は、ある特定イベントの検出時に、信号源計器１２にプログラミング・メッセージを送り、そのイベントマネージャ１０１Ｂに対してある特定の動作を行うように命じることが可能である。実施態様によっては、信号源計器１２は、このように動的にプログラムされるのではなく、ある特定イベントに応答して、所望の動作を行うように事前構成することが可能なものもある。
【００３３】
図１の実施態様例の場合、信号源計器１２、受信計器１３、及び、コントローラ１１のそれぞれには、それぞれ、１０２Ａ、１０２Ｂ、及び、１０２Ｃと表示された、プログラムイベント情報が含まれている。こうしたプログラムイベント情報によって、例えば、対応する計器が指定のイベントに応答して行うように設定された動作を指定することが可能である。例えば、こうしたプログラムイベント情報によって、ある特定の時限爆弾の爆発時に計器が行うべき動作を識別することが可能になる。プログラムイベント情報は、例えば、データベースとして構成することもできるし、あるいは、他の任意の適切なやり方で記憶することも可能である。実施態様によっては、ユーザ１５がイベントマネージャ１０１Ａとの対話によって、例えば、各種計器に関するイベント情報をプログラムできるようにするため、コントローラ１１にユーザ・インターフェイス１０４を設けることも可能である。例えば、ユーザ１５は、イベントマネージャ１０１Ａと対話して、信号源計器１２における時限爆弾の爆発時間を設定し、信号源計器１２がその爆発に応答して行うべき対応する動作を指定することが可能である。実施態様によっては、ユーザ１５が、時限爆弾がその爆発時にトリガするイベント（例えば、１番イベント）を指定し、計器に対して、そのイベントの検出に応答して、特定の動作を行う（例えば、「１番イベント」に応答して、周波数を変更する）ようにプログラミングを施すことが可能なものもある。実施態様によっては、代わりに、ユーザ１５がその爆発時に実行すべき時限爆弾に関する命令を指定できるものある。例えば、ユーザは、コントローラ１１から信号源計器１２に、時限爆弾１０６Ａに関して設定される爆発時間、並びに、爆発時に信号源計器が実行すべき命令（例えば、ソフトウェア・コード）を指定するプログラミング・メッセージを伝達することが可能である。
【００３４】
プログラムイベント情報１０２Ａ〜１０２Ｃの例については、後掲の表２に提示された特定の例を含めて、本明細書においてさらに解説することにする。
【００３５】
計器のローカル・クロックは高精度の同期がとられるので、各種ネットワーク化計器の動作には、こうした高精度の調整を施すことが可能になる。
【００３６】
図３を参照すると、時間ベース・スケジューリング技法１０Ａ（図２の）を利用して、ネットワーク化計器の動作を調整する第１の例が示されている。図３の例では、操作ブロック３０１において、コントローラ１１を利用して、信号源計器１２のプログラミングが行われる。例えば、ユーザ１５は、ユーザ・インターフェイス１０４と対話して、どの信号源計器１２のプログラミングを実施するかに従って、特定の情報を指定することが可能である。この例の場合、信号源計器１２は、１：００：００にその周波数を変更するようにプログラムされる。従って、信号源計器１２は、コントローラ１１からこの情報を受信すると（プログラミング・メッセージによって）、そのプログラムイベント情報１０２Ａに納める。上述のように、このやり方で絶対時間または相対時間（例えば、「イベントＸを識別したイベントメッセージに含まれるタイムスタンプから１０秒」といったように、他のある時間に対して指定された時間）に生じるようにあるイベントのスケジューリングを行うことは、絶対または相対爆発時間を有する「時限爆弾」をセットすると称することが可能であり、こうした時限爆弾が爆発すると、時限爆弾がセットされた対応するデバイス（この例の場合、信号源計器１２）は、あるプログラム動作を実施する（この例の場合、その周波数を変更する）。
【００３７】
操作ブロック３０２では、コントローラ１１を利用して、受信計器１３のプログラミングが行われる。例えば、ユーザ１５は、ユーザ・インターフェイス１０４と対話して、どの受信計器１３のプログラミングを実施するかに従って、特定の情報を指定することが可能である。この例の場合、受信計器１３は、１：００：０１に信号源計器１２の周波数を測定して、その結果を記憶するようにプログラムされる。従って、受信計器１３は、コントローラ１１からこの情報を受信すると、そのプログラムイベント情報１０２Ｂに納める。
【００３８】
さらに、この例の場合、ブロック３０３では、時限爆弾を１：００：１０に爆発するようにセットすることにより、コントローラ１１がトリガされて、受信計器１３から測定データを読み取り、こうした測定データを表示するように、コントローラ１１自体のプログラミングが施される。従って、こうした時限爆弾のプログラミングに関する情報は、コントローラ１１のプログラムイベント情報１０２Ｃに納められる。
【００３９】
図３の操作ブロック３０４に示されるように、１：００：００に、信号源計器１２のセットされた時限爆弾が爆発し、その結果、信号源計器１２は、その周波数を変更する。操作ブロック３０５では、１：００：０１に、受信計器１３のセットされた時限爆弾が爆発し、その結果、受信計器１３が信号源計器１２の周波数を測定する（ブロック３０２においてプログラムされた動作に従って）。操作ブロック３０６では、受信計器１３がその測定結果を記憶する。
【００４０】
１：００：１０に、コントローラ１１のセットされた時限爆弾が爆発し、その結果、コントローラ１１は、受信計器１３から測定データを読み取り（操作ブロック３０７において）、前記データを表示する（操作ブロック３０８において）。従って、コントローラ１１は、受信計器１３から測定データを読み取る。例えば、１：００：０１に受信計器１３が捕捉した測定データは、受信計器１３のある特定のメモリ・アドレスに記憶することが可能であり、ブロック３０７において、コントローラ１１は、受信計器のその特定メモリ・アドレスの読み取りを行うことが可能である。次に、ブロック３０８において、コントローラ１１は読み取った測定データを表示する。
【００４１】
上記例の場合、計器のローカル・クロックの同期がとれているので、コントローラ１１は、適切な測定データを表示しているという確信を持つことができる。例えば、信号源計器１２における変更周波数の整定に、わずか１秒しか要しないということが分っているものと仮定すると、信号源計器１２が１：００：００に周波数を変更した後、受信計器１３が１：００：０１に測定すると、正確な測定結果が得られることになる。さらに、コントローラ１１は、この例の場合、１：００：１０まで測定データを読み取って、表示しないにもかかわらず、１：００：０１に捕捉された測定データを表示しているという確信を持つことができる。
【００４２】
もちろん、本明細書に提示された、デバイスの動作を同期させるための実施態様の適用については、図３の特定の例に制限されるものではない。例えば、図３では、動作の同期に絶対時間が利用されているが（例えば、信号源計器１２は、１：００：００にその周波数を変更し、受信計器１３は、１：００：０１にその測定を行い、コントローラ１１は、１：００：１０に測定データを読み取って表示する）、時限爆弾は、相対時間に爆発するようにセットすることが可能である。こうした相対時間の利用例については、図４のオペレーショナル・フロー・チャートで示される。
【００４３】
従って、図４には、システム１０Ａ（図２の）に時間ベース・スケジューリングを利用して、ネットワーク化計器の動作を調整するもう１つの例が示されている。図４の例では、操作ブロック４０１において、コントローラ１１を利用して、信号源計器１２のプログラミングが行われる。例えば、ユーザ１５は、ユーザ・インターフェイス１０４と対話して、どの信号源計器１２のプログラミングが行われるのかに従って、特定の情報を指定することが可能である。この例では、信号源計器１２は、開始メッセージを受信すると、その周波数を変更するようにプログラムされる。こうした「開始メッセージ」は、「開始」イベントを識別するイベントメッセージである。従って、信号源計器１２は、コントローラ１１からこの情報を受信すると（プログラミング・メッセージを介して）、そのプログラムイベント情報１０２Ａに納める。信号源計器１２には、開始メッセージの受信直後に周波数変更の発生をトリガするのではなく、開始メッセージの受信から２秒後といったように、開始メッセージの受信後に所望の時間間隔が経過してからその周波数を変更するようにプログラムすることが可能である。もう１つの例として、開始メッセージには、メッセージが送られた時間に対応するタイムスタンプ（同期クロックに基づく）を含むことが可能であり、信号源計器１２には、開始メッセージに含まれるタイムスタンプから２秒後といった、開始メッセージに含まれるタイムスタンプから所望の時間間隔の経過後にその周波数を変更するようにプログラムすることが可能である。
【００４４】
操作ブロック４０２では、コントローラ１１を利用して、受信計器１３のプログラミングが行われる。例えば、ユーザ１５は、ユーザ・インターフェイス１０４と対話して、どの受信計器１３のプログラミングが行われるのかに従って、特定の情報を指定することが可能である。この例では、受信計器１３は、開始メッセージの受信から１秒後に、信号源計器１２の周波数を測定するようにプログラムされる。従って、受信計器１３の時限爆弾は、開始メッセージの受信から１秒後に爆発するようにセットされる。もちろん、受信計器１３が開始メッセージを受信する時間に基づいて測定の実施をトリガするのではなく、開始メッセージに、メッセージが送られた時間に対応するタイムスタンプ（同期クロックに基づく）を含むことが可能であり、受信計器１３には、開始メッセージに含まれるタイムスタンプから所望の時間間隔の経過後にその周波数を変更するようにプログラムすることが可能である。受信計器１３は、コントローラ１１からプログラム情報を受信して、そのプログラムイベント情報１０２Ｂに納める。
【００４５】
さらに、この例の場合、ブロック４０３では、時限爆弾を開始メッセージの同報通信から５秒後に爆発するようにセットすることにより、コントローラ１１がトリガされて、受信計器１３から測定データを読み取り、そのデータを表示するように、コントローラ１１自体のプログラミングが施される。従って、こうした時限爆弾のプログラミングに関する情報は、コントローラ１１のプログラムイベント情報１０２Ｃに納められる。
【００４６】
操作ブロック４０４において、コントローラ１１は、通信ネットワーク１４を介して、信号源計器１２及び受信計器１３に対して「開始」メッセージの同報通信を行う（例えば、ユーザ・データグラム・プロトコル（ＵＤＰ）を利用して）。開始メッセージの同報通信によって、ブロック４０３でコントローラ１１に関してセットされた相対時間時限爆弾のタイマがトリガされ、そのカウントダウンが開始される。ブロック４０５において、信号源計器１２は、開始メッセージを受信し（そのイベントマネージャ１０１Ａを介して）、その結果その周波数を変更することになる。同様に、ブロック４０６において、受信計器１３は、開始メッセージを受信し（そのイベントマネージャ１０１Ｂを介して）、これによって、ブロック４０２で受信計器１３に関してセットされた相対時間時限爆弾のタイマがトリガされ、そのカウントダウンが開始される。ブロック４０７において、１秒後には、受信計器１３の相対時間時限爆弾が爆発し、その結果、受信計器１３は、信号源計器１２の周波数測定を行って、その結果を記憶する。この例の場合、ネットワーク１４におけるネットワーク待ち時間は、ごくわずかであるため、信号源計器１２及び受信計器１３は、同報通信された開始メッセージをほぼ同時に受信することになるものと推測される。すなわち、この例の場合、存在するいかなるネットワーク待ち時間も、信号源計器１２及び受信計器１３に関してほぼ同じであり、それぞれ、開始メッセージを同時に受信するものと推測される。もちろん、ネットワーク待ち時間がより重大な問題になる場合には、受信計器１３に対して、開始メッセージ受信後１秒間以上延長してから、その測定を開始することにより、信号源計器１２がメッセージを受信して、その周波数変更を行うのに十分な時間が得られることを保証するようにプログラミングが施される。
【００４７】
あるいはまた、上述のように、信号源計器１２及び受信計器１３の動作が、開始メッセージに含まれるタイムスタンプに基づいて行われるようにプログラムすることにより、ネットワーク待ち時間を取るに足りないものとすることが可能である。例えば、同報通信される開始メッセージには、その送信時間（例えば、１：００：００）のタイムスタンプを施すことが可能であり、信号源計器１２は、開始メッセージに含まれるタイムスタンプから２秒後にその周波数を変更するようにプログラムすることが可能である。ネットワーク待ち時間によって、受信計器が同報通信から２秒以内に開始メッセージを受信できなくなると仮定すると、信号源計器１２は、開始メッセージの送信時間に対する相対時間に基づいて、その周波数を変更することになる。受信計器１３及びコントローラ１１は、同期されたローカル・クロックを備えているので、周波数変更が行われる時間は高精度である。同様に、受信計器１３は、開始メッセージに含まれるタイムスタンプから３秒後に測定を行うようにプログラムすることが可能である（変更周波数の整定に１秒かかることを見越して）。
【００４８】
図４に示す特定の例に戻ると、コントローラ１１による開始メッセージの同報通信から５秒後に、その時限爆弾が爆発し、その結果、コントローラ１１は、受信計器１３から測定データを読み取って（操作ブロック４０８において）、前記データを表示する（操作ブロック４０９において）。従って、コントローラ１１は、受信計器１３から測定データを読み取る。例えば、操作ブロック４０７において受信計器１３が捕捉した測定データは、受信計器１３のある特定のメモリ・アドレスに記憶することが可能であり、ブロック４０８において、コントローラ１１は、受信計器のその特定メモリ・アドレスの読み取りを行うことが可能である。次に、ブロック４０９において、コントローラ１１は読み取った測定データを表示する。
【００４９】
従って、図４の例によって示されるように、時限爆弾が、あるイベント（特定のイベントを識別するイベントメッセージの受信等のような）の発生に対する時間といった相対時間に基づいて爆発するようにセットすることが可能である。実施態様によっては、時限爆弾とイベントメッセージを組み合わせて利用し、測定システムにおける計器の動作を調整することも可能である。
【００５０】
図５を参照すると、時間ベース技法とシステム１０Ａのメッセージ・ベース技法（図２の）を組み合わせて利用することにより、ネットワーク化計器の動作を調整する特定の例が示されている。図５の例では、操作ブロック５０１において、コントローラ１１を利用して、信号源計器１２のプログラミングが行われる。例えば、ユーザ１５は、ユーザ・インターフェイス１０４と対話して、どの信号源計器１２のプログラミングが行われるのかに従って、特定の情報を指定することが可能である。この例では、信号源計器１２は、１：００：００にその周波数を変更し、さらに、１番イベントを識別するイベントメッセージを同報通信するようにプログラムされる。従って、信号源計器１２は、コントローラ１１からこの情報を受信すると（プログラミング・メッセージを介して）、そのプログラムイベント情報１０２Ａに納める。これによって、信号源計器１２において１：００：００に爆発するようにスケジュールされた時限爆弾が有効にセットされる。
【００５１】
操作ブロック５０２では、コントローラ１１を利用して、受信計器１３のプログラミングが行われる。例えば、ユーザ１５は、ユーザ・インターフェイス１０４と対話して、どの受信計器１３のプログラミングが行われるのかに従って、特定の情報を指定することが可能である。この例では、受信計器１３は、１番イベントを検出すると、測定を行い、さらに、２番イベントを識別するイベントメッセージを同報通信するようにプログラムされる。従って、受信計器１３は、コントローラ１１からこの情報を受信して、そのプログラムイベント情報１０２Ｂに納める。
【００５２】
さらに、この例の場合、ブロック５０３では、特定イベントを検出して、応答動作を行うように、コントローラ１１自体のプログラミングが施される。例えば、ユーザ１５は、ユーザ・インターフェイス１０４と対話して、どのコントローラ１１のプログラミングが行われるのかに従って、特定の情報を指定することが可能である。この例では、コントローラ１１は、２番イベントを検出すると、受信計器１３から測定データを読み取り、さらに、その読み取ったデータを表示するようにプログラムされる。従って、コントローラ１１は、この情報を受信して、そのプログラムイベント情報１０２Ｃに納める。
【００５３】
図５の操作ブロック５０４に示されているように、１：００：００に、信号源計器１２についてセットされた時限爆弾が爆発し、その結果、信号源計器１２は、その周波数を変更し、さらに、１番イベントを識別するイベントメッセージを生成する。上述のように、イベントメッセージには、信号源計器１２のローカル・クロック１０３Ａに基づく対応するタイムスタンプも含まれている。この例の場合、信号源計器１２は、ＵＤＰまたは他の何らかの適合するマルチキャスト・プロトコルを利用し、通信ネットワーク１４を介して、イベントメッセージを同報通信する。例えば、このようにして通信されるメッセージがネットワーク化計器間における動作の調整に依存している場合に求められる可能性のある、その信頼性を高めるやり方で、ＵＤＰのような「信頼性の低い」プロトコルを利用するための、特定の実施態様において用いることが可能な技法については、その開示が参考までに本明細書において援用され、同時に提出されて譲渡先が共通の、「SYSTEM AND METHOD FOR ROBUST COMMUNICATION VIA A NON-RELIABLE PROTOCOL」と題する米国特許出願（代理人整理番号１００４１３３１−１）にさらに詳細な記載がある。
【００５４】
従って、信号源計器１２のイベントマネージャ１０１Ａは、１番イベントを識別し、信号源計器１２のローカル・クロック１０３Ａに基づいて対応するタイムスタンプを含むイベントメッセージを同報通信する。例えば、タイムスタンプは、変更周波数が整定する時間に対応する時間１：００：０１とすることが可能である。もちろん、信号源計器１２は、その周波数変更の開始時間にメッセージを送るようにプログラムすることが可能であり、従って、イベントメッセージに含まれるタイムスタンプは、信号源計器が周波数変更を開始する時間に対応するといって差し支えなく、この場合、受信計器１３は、周波数の整定を考慮し、含まれているタイムスタンプに対してある時間遅らして、その測定を行うようにプログラムすることが可能である。このようにすると、信号源計器において周波数変更が行われている間に、イベントメッセージが受信計器に向かっている可能性があり、この結果、測定の効率が向上する可能性がある。
【００５５】
同報通信される１番イベントは、コントローラ１１のイベントマネージャ１０１Ｃによって検出され、操作ブロック５０５において、コントローラ１１のこうしたイベントマネージャ１０１Ｃによって、コントローラ１１による応答動作が不要であると判定される。すなわち、コントローラ１１は、受信した１番イベントに対して応答動作するようにプログラムされておらず、従って、イベントマネージャ１０１Ｃは、信号源計器１２によって同報通信されたイベントメッセージを無視する。
【００５６】
同様に、同報通信された１番イベントは、受信計器１３のイベントマネージャ１０１Ｂによって検出される。受信計器１３は、１番イベントを受信すると、測定を行うようにプログラムされているので（操作ブロック５０２参照）、操作ブロック５０６において、受信計器１３のイベントマネージャ１０１Ｂは、受信計器１３にこうした応答動作を実施させる。受信計器１３は、イベントメッセージに含まれているタイムスタンプにおいてその測定を行うようにプログラムすることもできるし（受信計器１３は、こうしたタイム・スタンプに行う、緩衝記憶されている測定を検索することが可能である）、あるいは、例えば、イベントメッセージに含まれているタイムスタンプからプログラムされた時間間隔が経過してから、その測定を行うようにプログラムすることも可能である。
【００５７】
受信計器１３がブロック５０２において実施するようにプログラムされていたのとちょうど同じように、操作ブロック５０７において、受信計器１３は、２番イベントを識別し、そのローカル・クロック１０３Ｂに基づいて対応するタイムスタンプを含むイベントメッセージの同報通信を行う。同報通信される２番イベントは、信号源計器１２のイベントマネージャ１０１Ａによって検出され、操作ブロック５０８において、信号源計器１２のこのようなイベントマネージャ１０１Ａによって、信号源計器１２による応答動作が不要であると判定される。すなわち、信号源計器１２は、受信した２番イベントに対して応答動作するようにプログラムされておらず、従って、イベントマネージャ１０１Ａは、受信計器１３によって同報通信されたイベントメッセージを無視する。
【００５８】
同報通信された２番イベントメッセージは、コントローラ１１のイベントマネージャ１０１Ｃにも検出される。コントローラ１１は、２番イベントを受信すると、受信計器１３から測定データを読み取って、前記データを表示するようにプログラムされているので（操作ブロック５０３参照）、操作ブロック５０９において、コントローラ１１のイベントマネージャ１０１Ｃは、コントローラ１１にこうした応答動作を実施させる。従って、コントローラ１１は、受信計器１３から測定データを読み取る。例えば、受信計器１３が信号源計器１２から受信したイベントメッセージのタイムスタンプに従って、受信計器１３によって捕捉された測定データは、受信計器１３のある特定メモリ・アドレスに記憶することが可能であり、ブロック５０９において、コントローラ１１は、受信計器のその特定メモリ・アドレスの読み取りを行うことが可能である。もう１つの例として、受信計器１３によって生成されるイベントメッセージには、その測定が行われたタイムスタンプ（例えば、信号源計器１２から受信計器１３に送られたイベントメッセージに含まれている同じタイムスタンプ、または、信号源計器１２から受信計器１３に送られたイベントメッセージに含まれているタイムスタンプからある特定間隔をあけたタイムスタンプ）を含むことが可能であり、コントローラ１１は、ブロック５０９において実施された、そのタイムスタンプに対応するその測定について、受信計器１３に問い合わせることが可能である。次に、ブロック５１０において、コントローラ１１は、読み取った測定データを表示する。
【００５９】
上記の例では、コントローラ１１は、受信計器１３による測定からある時間経過するまで、２番イベントを識別するイベントメッセージを受信せず、さらに後の時間まで、こうした測定データの読み取り及び表示を行わない。しかし、イベントメッセージにおける同期されたクロックのタイプスタンプを利用するので、コントローラ１１は、適切な測定データを表示していると確信することができる。例えば、受信計器１３が、１：００：０１に測定を行った場合、コントローラ１１は、例えば、１：００：０５まで測定データの読み取り及び表示を行うことができなくても、１：００：０１に捕捉された測定データを表示していると確信することができる。
【００６０】
もちろん、デバイスの動作を同期させるため、本明細書に提示の実施態様を適用することについては、上述の図３〜図５の特定例に制限されるものではない。
【００６１】
以下では、図２のシステム１０Ａに示すイベントマネージャ１０１Ａ〜１０１Ｃのような、イベントマネージャの特定の実施態様についてさらに詳述するが、実施態様は、この特定の実施例に制限されるものではない。この説明に役立つ実施例の場合、イベントマネージャは、多くの点で、ＦＴＰサーバまたはＷｅｂサーバのような、ネットワーク・サービス・デーモンと類似しており、入力を待ち、それに従って動作する。こうした実施例の場合、イベントマネージャは、入力を処理する場合、受信専用ネットワーク・サーバであるが、出力イベントの場合、その実施例は異なる。イベントマネージャの説明に役立つこの実施例は、スレッドの集合とみなすことが可能であるが、イベントマネージャが、実際に、スレッド・モデルを用いて実施されるものと決めてかかるべきではない（これは、オペレーティング・システムによって決まる）。説明に役立つ実施例は、全て、あるタイプの入力を待っているスレッドの集合としてモデル化することが可能である。各スレッドは、その入力バッファのデータが利用可能になるまで、休止状態になる。
【００６２】
入力イベントは、通信ネットワークで到着する。イベントマネージャは、まさに他の全てのネットワーク・サーバがするように、ただイベントメッセージの到着を待つだけである。イベントメッセージが到着すると、イベントマネージャは、目を覚まして、データ・パケットを調べる。データ・パケットに、計器が応答するようにプログラムされているイベントＩＤ（さらに後述する）が含まれていると、イベントマネージャは、対応するコールバック・ルーチンを呼び出す。
【００６３】
出力イベントが内部で生じる。出力イベント（例えば、時限爆弾）は、ハードウェア割り込みの結果である。この場合、計器に用いるため、割り込みサービス・ルーチン（ＩＳＲ）がインストールされる。ＩＳＲは、イベントのタイムスタンプを捕捉し、データを記憶し、イベントマネージャの目を覚ます責務を負っており、その結果、イベントマネージャが、適正なコールバック・ルーチンを実行することになる。ＩＳＲはコールバック・ルーチンと同じではない。
【００６４】
このイベントマネージャの説明に役立つ例において利用されるデータ・タイプが、いくつか存在する。第１のデータ・タイプは、時間である。イベントマネージャは、２つの異なる時間ベース・データ・タイプを備えている。１つは、絶対時間に関するものであり（TimeStamp）、もう１つは、時間間隔に関するものである（TimeInterval）である。
【００６５】
もう１つのデータ・タイプは、機能ＩＤ（「ＦＩＤ」）である。ＦＩＤは、計器のある内部機能を表わした値（例えば、１６ビットの整数）である。ＦＩＤは、計器に固有の各種機能を識別するために用いられる、計器固有番号として導入することが可能である。
【００６６】
計器機能は、「入力」または「出力」として分類される。この命名法において、「出力」機能は、計器内部で生じ、その結果、イベントメッセージを他の計器に送らせることになる何かである。「入力」機能は、計器が他のどこかからのイベントメッセージに応答して実行することが可能なものである。時限爆弾は、そのために特定のＡＰＩ操作（例えば、爆発時間をセットする）が存在する、特殊バージョンの出力機能である。これらの機能は、「入力イベント」及び「出力イベント」の定義にしっかりと対応している。厳密に言えば、「入力イベント」は、結果として、「入力機能」を実行させることになるイベントである。
【００６７】
この実施例の場合、全ての計器が、下記の表１に示す例のように、ＦＩＤ値及びその記述を備えている。
【表１】
2006079625.tif 000003
【００６８】
留意すべきは、これらの機能の一部は、対応するハードウェア・トリガ（トリガ入力またはトリガ出力）を備えることも可能であるという点である。
【００６９】
ユーザは、ある特定の計器について、機能ＩＤをプログラムで拡張することが可能である。計器に対して、外部イベントに応答するようにプログラムする必要がある場合、例えば、新しい内部機能を表に加えることが可能である。
【００７０】
もう１つのデータ・タイプは、イベントＩＤ（「ＥＩＤ」）である。ＥＩＤは、同報通信イベントメッセージに含まれ、イベントを識別するためのユーザ定義値（例えば、１６ビットの整数）である。イベントメッセージが入力されると、計器は、ＥＩＤを読み取って、応答すべきか否かを判定する（例えば、識別されたイベントが、計器がある応答動作を行うように設定／プログラムされたものであるか否かを判定する）ことになる。出力時には、計器は、他の計器がイベントの信号源計器を識別することができるように、イベントメッセージ・パケットにＥＩＤを付加する。
【００７１】
一般に、これによって、ユーザがＦＩＤ値と共に用いられるＥＩＤ値を定義することが可能になる。例えば、計器は、「時限爆弾」イベントに遭遇する可能性があり、このイベントのＦＩＤは「３」である（計器にハード・コードされる）。しかし、イベントメッセージがこのイベントの結果として同報通信される場合には、ＥＩＤ値はユーザ定義が可能であり、ＦＩＤと同じである必要はない。
【００７２】
各個別計器は、ＦＩＤの大部分について省略時ＥＩＤを事前定義することが可能である。しかし、システム・インテグレータ・エンドユーザは、ＦＩＤのうち所望される任意のものについてＥＩＤ値を設定／変更することが可能である。
【００７３】
ユーザは、例えば、テスト・システムの各計器に一意なＥＩＤを指定することが可能である。さもなければ、テスト・システムに複数の同一計器が含まれる場合には必ず問題に遭遇する可能性がある。ある特定のテスト・システムの場合、ユーザは、各計器のイベント毎に一意なＥＩＤを指定することも可能である。
【００７４】
この実施例の場合、機能ＩＤ／イベントＩＤマップが設けられる。すなわち、各計器のイベントマネージャ・サブシステムはＦＩＤ／ＥＩＤマップを保持している。これは、例えば、表として実施することが可能である。この表には、ＥＩＤとＦＩＤとの間のマッピングが保持され、また、下記のような他のデータも含まれている。
【００７５】
（ａ）各機能をディスエーブル／イネーブルにするためのフラグ、
（ｂ）イベントに利用されるコールバック機能（のアドレス）、
（ｃ）問題となるイベントが入力であるか、出力であるかに関する情報。時限爆弾が出力イベントであれば、特定のＡＰＩ機能が対応付けられるので、テーブル中においてそのイベントに対する特殊なフラグを立てることが可能である。
【００７６】
（ｄ）時間切れ値。これは、入力イベントに用いられ、イベントメッセージの受信前に許容することが可能な最大遅延を表わしている。
【００７７】
計器に関するこうした表の一例が、下記の表２に提示されている。
【表２】
2006079625.tif 000004
【００７８】
表のある特定のＦＩＤは、入力または出力を表すが、両方を表わすことはない。時限爆弾は、特殊タイプの出力機能である。表２には、信号源計器１２のプログラムイベント情報１０２Ａに納めることが可能な情報の一例が示されている。受信計器１３及びコントローラ１１のプログラムイベント情報１０２Ｂ及び１０２Ｃも同様に構成することが可能である。
【００７９】
表２のイネーブル／ディスエーブル設定によって、出力イベントに関する通信ネットワークによる不必要なトラフィックが減少することになり、また、これらを利用して、入力イベントに関する関連イベントメッセージが識別される。省略時設定により、個々の計器は、全ての機能にイネーブル／ディスエーブル・フラグ状態を設定することが可能であり（ほとんどがディスエーブルになる）、各機能毎に省略時ＥＩＤを設定することが可能になる。ある特定のＦＩＤに関して複数のＥＩＤを指定する（そしてイネーブルにする）ことが可能である。これにより、イベントマネージャは、ＥＩＤのどれかを受信すれば、それに一致する機能を実行することが可能になる。
【００８０】
この説明に役立つ実施例には、さまざまなＡＰＩ関数が設けられている。設けられているＡＰＩ関数の１つにMapFIDtoEID(FID, EID)がある。この関数は、ある特定のＦＩＤをあるＥＩＤにマップする。ユーザが存在しないＦＩＤからのマッピングを試みると、この関数は何もせずに、エラーを戻す。
【００８１】
UnMapFIDtoEID（FID，EID）は、あるＥＩＤからある特定のＦＩＤをマップ解除するＡＰＩ関数である。これによって、マッピングが省略時状態に戻され、さらに、イベントが不能になる（後述のEnableEvent参照）。この関数は、EnableEvent呼び出し（後述する）と同様であるが、複数ＥＩＤが単一ＦＩＤにマップされ、ＥＩＤの１つだけしかマップ解除されない場合に利用される。ある特定のＦＩＤ／ＥＩＤ対を見つけることができなければ、この関数は何もせずに、エラーを戻す。
【００８２】
EnableEvent（FID，EID，true/false）は、ＦＩＤまたはＥＩＤまたは両方を利用して、あるイベントをイネーブルまたはディスエーブルにするＡＰＩ関数である。機能が入力であれば、その全ての発生に同意／不同意し、機能が出力であれば、その出力の全ての発生をイネーブル／ディスエーブルする。ＦＩＤまたはＥＩＤにゼロが指定されている場合、パラメータは無視されることになり、他の（おそらくは、非ゼロの）パラメータが用いられることになる。
【００８３】
ある特定のＦＩＤが時限爆弾に相当する場合、その機能は、この関数によってイネーブルされ、CreateTimeBomb（）関数（下記参照）によって初期化される。この関数enableeventを利用して、時限爆弾をディスエーブルにすることが可能であり、この場合、CancelTimeBomb（）呼び出しと同じことを行う。ＦＩＤ／ＥＩＤ対を見つけることができなければ、このEnableEvent関数は何もせずにエラーを戻す。
【００８４】
SendEvent（EID，TimeStamp，Data，Byte）は、設けられているもう１つのＡＰＩ関数である。この関数は、イベントメッセージの同報通信を行う。それは、コールバック・ルーチン内から呼び出されることを意図したものであり、その機能がディスエーブルの場合には呼び出すべきではないが、これによって、エラーが生じることはない。
【００８５】
CreateTimeBomb（FID，TimeStamp，RepeatCount，TimeInterval）は、設けられているもう１つのＡＰＩ関数である。この関数は、ある特定のタイムスタンプから開始される反復時限爆弾をセットし、次に、特定の時間間隔を利用してＲｅｐｅａｔＣｏｕｎｔ−１回にわたって反復する（従って、爆発総数は、RepeatCountである）。無限ループの場合、RepeatCountを−１に設定することが可能である。時限爆弾が期限切れになる毎に、実行のため、CallBackFnが呼び出される。
【００８６】
CreateTimeBomb（FID，TimeStamp，Frequency）は、上記関数の特殊バージョンであるもう１つの関数である。この関数は、repeat_count=−１の反復時限爆弾を生成する。時間間隔は、周波数パラメータから計算される。
【００８７】
設けられているもう１つのＡＰＩ関数は、CancelTimeBomb（FID）である。この関数は、時限爆弾をキャンセルしようとする。時限爆弾が発火前にキャンセルされるという保証はない。場合によっては、CallBackFnが、内部フラグでこれを処理することもあり得る。このCancelTimeBomb関数は、EnableEvent（）を利用して、時限爆弾機能をディスエーブルにする場合のEnableEvent（）と同じことをする。特定のＦＩＤに、セットされた時限爆弾がないか、あるいは、ＦＩＤが開始する時限爆弾ではない場合、CancelTimeBomb関数は、エラーを戻し、何もしない。
【００８８】
GetFunctionMap（）は、ＦＩＤ／ＥＩＤマップ（上述の）に含まれる情報を戻す関数である。この関数は、例えば、デバッギングのために利用することが可能である。
【００８９】
イベントマネージャには、通信ネットワークでコマンドを受信し、計器のローカル・プロセッサで適正なＡＰＩ呼び出しを行う、ネットワーク・デーモンが含まれている。この機能によって、（遠隔）ホスト・コンピュータは、計器に対して測定固有タスクに関するプログラミングを施すことが可能になる。制御コンピュータは、例えば、計器に対して、ある特定のイベントメッセージを受信すると、測定を開始するようにプログラムすることが可能である。そうするため、制御コンピュータは、計器にプログラミング・コマンドを送る。
【００９０】
上述のように、イベントマネージャは、他の計器からの同報通信イベントメッセージも受信する。これは、この実施例のイベントマネージャに２つのネットワーク・リスナが含まれることを表わしており、１つは、他の計器からのイベントメッセージを受信し（マルチキャストＵＤＰポートで受信し）、１つは、遠隔プログラミング・コマンドを受信する（ＴＣＰポートで受信する）。
【００９１】
ネットワーク・デーモンは、ただ単にＴＣＰポートでコマンドを受信するだけである。各コマンドは、追加データを伴う可能性がある。許されるコマンドが上述のＡＰＩ関数に対応するという点に留意されたい。
【００９２】
イベントマネージャの説明に役立つ実施例について詳細に上述したが、実施態様は、その実施例に制限されるものではない。それどころか、代替実施態様では、上述の各種特徴及び実施例の細部を変更することが可能である。例えば、実施態様によっては、ＵＤＰを介してイベントメッセージを同報通信するのではなく、ＴＣＰを利用してイベントメッセージを送ることも可能である。また、上述のイベントマネージャ例に設けられているさまざまなＡＰＩ関数例が変更可能であり、こうした関数の全てまたは一部を設けることができないかもしれず、及び／または、代替イベントマネージャに追加関数を設けることが可能であるかもしれない。
【００９３】
次に図６を参照すると、少なくとも部分的に、実施態様の１つによる時間ベース技法に基づいて、複数のネットワーク化されたデバイスの動作を同期させるためのオペレーショナル・フロー図が示されている。操作ブロック６１において、複数のデバイスのローカル・クロックが同期させられる。上述のように、こうしたローカル・クロックは、例えば、ＩＥＥＥ１５８８、ＮＴＰ、または、ＧＰＳのような同期化技法を利用して、高精度の同期をとることが可能である。操作ブロック６２では、第１の動作が複数のデバイスのうち第１のデバイスによって実施されることになる第１の時間が選択される。上述のように、こうした「第１の時間」は絶対時間とすることもできるし、あるいは、相対時間とすることも可能である。
【００９４】
操作ブロック６３では、第２の動作が複数のデバイスのうち第２のデバイスによって実施されることになる第２の時間が選択される。やはり、こうした「第２の時間」は、絶対時間とすることもできるし、あるいは、相対時間とすることも可能である。第２の時間は、第２の動作が調整されて、第１の動作と所望の時間関係で実施されるように選択される。操作ブロック６４では、第１の動作が、第１の時間に、複数のデバイスのうちの第１のデバイスで生じるようにスケジュールされる。例えば、第１のデバイスにおいて第１の時間に爆発するように時限爆弾をセットし、それによって、第１のデバイスにおける第１の動作がトリガされることが可能である。操作ブロック６５では、第２の動作が、第２の時間に、複数のデバイスのうちの第２のデバイスで生じるようにスケジュールされる。例えば、第２のデバイスにおいて第２の時間に爆発するように時限爆弾をセットし、それによって、第２のデバイスにおける第２の動作がトリガされることが可能である。この様に第１及び第２のデバイスにおける時限爆弾のこうした実施によって、それぞれの第１及び第２の動作を時間的に所望のように調整することが可能になる。従って、上述のように、第１及び第２のデバイスを通信ネットワークに分散させることが可能になり、本明細書に提示の時間ベース・スケジューリング技法を利用して、それぞれの動作に高精度の調整を施すことが可能になる（単独で、または、メッセージ・ベース・スケジューリング技法と併用して）。
【００９５】
上述のように、実施態様によっては、特定爆発時間及び爆発時に行うべき応答動作をプログラムすることが可能なものもある。例えば、図７には、少なくとも部分的に、プログラマブル時間ベース技法に基づいて、複数のネットワーク化されたデバイスの動作を同期させるためのオペレーショナル・フロー図の一例が示されている。操作ブロック７１では、複数のデバイスの少なくとも１つによってメッセージが受信されるが、ここで、メッセージには、動作及び爆発時間の識別子が含まれている。例えば、メッセージはコントローラ（コントローラ１１のような）から受信することが可能である。メッセージにおいて識別される動作は、複数の動作とすることが可能である。さらに、識別される動作には、爆発時に少なくなくとも１つのデバイスが実行すべき命令、及び／または、少なくとも１つのデバイスにおいてトリガされるイベントを含むことが可能である。爆発時間は、絶対時間とすることもできるし、あるいは、相対時間とすることも可能である。複数のネットワーク化されたデバイスは、通信ネットワークに通信可能に結合されており、同期されたクロックを備えている。上述のように、例えば、ＩＥＥＥ１５８８、ＮＴＰ、または、ＧＰＳのような同期化技法を利用して、ローカル・クロックに高精度の同期を施すことが可能である。
【００９６】
操作ブロック７２では、少なくとも１つのデバイスが、爆発時間になったか否かについてその同期されたクロックをモニタする。さまざまな実施態様に従って、爆発時間になったか否かに関する同期されたクロックのモニタは、ハードウェア論理及び／またはソフトウェア論理によって実施することが可能である。例えば、実施態様の１つでは、イベントマネージャがある時限爆弾の爆発時間をセットするメッセージを受信すると、イベントマネージャは、ハードウェア・レジスタに爆発時間を記憶する。ハードウェアのレジスタ内の爆発時間とＩＥＥＥ１５８８ローカル・クロックの現在時間を比較し、ローカル・クロックの時間が爆発時間に等しい場合には、ＣＰＵに対して割り込みを発生するハードウェア論理が含まれている。割り込みサービス・ルーチン（ＩＳＲ）によって、イベントマネージャは、時限爆弾が爆発すると、デバイスが行うべき対応する動作をトリガすることになる。あるいはまた、１５８８ローカル・クロックを用いて、各クロック・サイクル毎に割り込みを発生させることも可能であり、イベントマネージャは、ローカル・クロックの現在時間と受信した爆発時間を比較することができる。しかし、ソフトウェアを利用して、受信した爆発時間についてローカル・クロックをモニタするこの代替技法は、ハードウェア論理で爆発時間についてローカル・クロックをモニタする技法ほど効率が良くない。
【００９７】
操作ブロック７３では、爆発時間になると、少なくとも１つの受信デバイスが動作を実施する。従って、上述のように、所望の動作が、所望の時間（絶対時間または相対時間）に少なくとも１つのデバイスにおいて生じるようにプログラムすることが可能であり、そのデバイスは同期されたローカル・クロックを備えているので、前記動作が、他のデバイスにおける他の動作の発生に対して所望の連携がとれる状態で、そのデバイスにおいて発生するようにプログラムすることが可能である。
【００９８】
本発明及びその利点について、詳述してきたが、もちろん、付属の請求の範囲で定義されている本発明から逸脱することなく、さまざまな変更、置換、及び、改変を施すことが可能である。さらに、本出願の範囲は、本明細書に記載のプロセス、機械、製造、合成物、手段、方法、及び、ステップの特定の実施態様に制限されるものではない。本開示から容易に明らかになるように、本明細書に記載の対応する実施態様とほぼ同じ機能を実施するか、または、ほぼ同じ結果を実現する、現存する、または、今後開発されることになるプロセス、機械、製造、合成物、手段、方法、または、ステップを利用することも可能である。従って、付属の請求の範囲は、その範囲内に、こうしたプロセス、機械、製造、合成物、手段、方法、または、ステップを包含することを意図したものである。
【図面の簡単な説明】
【００９９】
【図１】実施態様の１つに従って示された、複数のネットワーク化されたデバイスの動作を調整するための典型的なシステムの図である。
【図２】コントローラが信号源計器及び受信計器における時限爆弾をプログラムするために用いられる、測定システム例を示す図である。
【図３】図２のシステムにおいて、時間ベース・スケジューリング技法を利用して、ネットワーク化計器の動作を調整する第１の例を示す図である。
【図４】図２のシステムにおいて、時間ベース・スケジューリング技法を利用して、ネットワーク化計器の動作を調整するもう１つの例を示す図である。
【図５】図２のシステムにおいて、時間ベース技法とメッセージ・ベース技法の組み合わせを利用して、ネットワーク化計器の動作を調整する特定の例を示す図である。
【図６】少なくも部分的に、実施態様の１つによる時間ベース技法に基づいて、複数のネットワーク化されたデバイスの動作を同期させるためのオペレーショナル・フロー図である。
【図７】少なくも部分的に、プログラマブル時間ベース技法に基づいて、複数のネットワーク化されたデバイスの動作を同期させるためのオペレーショナル・フロー図の一例である。
【符号の説明】
【０１００】
１２、１３  デバイス
１４    通信ネットワーク
１０３Ａ、１０３Ｂ  クロック
【図１】
2006079625.tif 000005
【図２】
2006079625.tif 000006
【図３】
2006079625.tif 000007
【図４】
2006079625.tif 000008
【図５】
2006079625.tif 000009
【図６】
2006079625.tif 000010
【図７】
2006079625.tif 000011