(57)【要約】【課題】安価な無線ネットワークを構築するため、マスタ機器より各スレーブ機器に対して、各種動作実行時刻をネットワーククロック値で送信して、マスタ機器と各スレーブ機器との同期、また、各スレーブ機器相互間の同期を確実にとる。【解決手段】マスタ機器１０と各スレーブ機器２０は、同期ソースとして無線ネットワークのネットワーククロックを共有し、マスタ機器１０は各スレーブ機器２０に対して動作開始時刻をネットワーククロックで換算された動作開始計数値として送信し、各スレーブ機器では、自機のネットワーククロックカウンタの計数値を監視し、その計数値が動作開始計数値と一致した時点で所定の動作を実行し、その実行結果を所定のタイミングで上記マスタ機器に送信する。【選択図】図１
2014116811.tif 000002
【特許請求の範囲】
【請求項１】
１台のマスタ機器と複数台のスレーブ機器とにより無線ネットワークが構築され、上記マスタ機器より上記各スレーブ機器に対して動作開始時刻が送信され、上記各スレーブ機器は上記動作開始時刻が到来した時点で所定の動作を実行し、その実行結果を所定のタイミングで上記マスタ機器に送信する無線通信システムにおいて、
上記マスタ機器および上記各スレーブ機器は、それぞれ制御系ＣＰＵとネットワーククロックカウンタとを含み、上記マスタ機器と上記各スレーブ機器との同期ソースとして上記無線ネットワークのネットワーククロックを共有し、
上記マスタ機器の制御系ＣＰＵは、上記各スレーブ機器に対して上記動作開始時刻を上記ネットワーククロックで換算された動作開始計数値として送信し、
上記各スレーブ機器の制御系ＣＰＵは、自機の上記ネットワーククロックカウンタの計数値を監視し、その計数値が上記動作開始計数値と一致した時点で所定の動作を実行し、その実行結果を所定のタイミングで上記マスタ機器に送信することを特徴とする無線通信システム。
【請求項２】
上記マスタ機器のみに実時間を計時する内部時計を備え、上記マスタ機器の制御系ＣＰＵは、上記各スレーブ機器に対して上記動作開始計数値を送信するにあたって、上記動作開始計数値と上記内部時計による実時間とを関連付けて、その相関を記憶することを特徴とする  請求項１に記載の無線通信システム。
【請求項３】
上記各スレーブ機器の制御系ＣＰＵは、上記動作開始計数値を受信した際、自機のネットワーククロックカウンタから、その受信時点のネットワーククロック値を取得し、上記動作開始計数値と上記受信時点のネットワーククロック値との差分クロックを算出するとともに、上記制御系ＣＰＵの内部クロックの計数を開始し、その内部クロック計数値が上記差分クロックに相当する時間に達した時点で所定の動作を実行することを特徴とする  請求項１または２に記載の無線通信システム。
【請求項４】
上記マスタ機器の制御系ＣＰＵは、上記各スレーブ機器に対して、上記動作開始計数値を同一時刻として送信するとともに、動作開始後において同一の時間間隔で動作を実行させる動作実行間隔を併せて送信し、上記各スレーブ機器は、上記動作開始計数値に基づいて一斉に動作を開始し、その後上記動作実行間隔ごとに動作を実行することを特徴とする請求項１ないし３のいずれか１項に記載の無線通信システム。
【請求項５】
上記動作実行間隔は、上記ネットワーククロックのクロック値として上記マスタ機器から上記各スレーブ機器に送信され、上記各スレーブ機器の制御系ＣＰＵは、上記動作実行間隔を内部クロックのクロック数に換算し、動作開始後は上記内部クロックの計数値に基づいて動作を繰り返し実行することを特徴とする請求項４に記載の無線通信システム。
【請求項６】
上記マスタ機器の制御系ＣＰＵは、上記各スレーブ機器の動作開始後に、上記各スレーブ機器に対して、現在時点から所定時間経過後に一斉に動作を実行させる同期時刻を所定時間ごとに送信して、上記各スレーブ機器の動作に同期をかけることを特徴とする請求項４または５に記載の無線通信システム。
【請求項７】
上記マスタ機器の制御系ＣＰＵは、上記同期時刻をネットワーククロック値として上記各スレーブ機器に送信し、上記各スレーブ機器の制御系ＣＰＵは、上記同期時刻受信時点のネットワーククロック値と上記同期時刻との差分差分クロックを算出するとともに、上記制御系ＣＰＵの内部クロックの計数を開始し、その内部クロック計数値が上記差分クロックに相当する時間に達した時点で同期のための動作を実行することを特徴とする請求項６項に記載の無線通信システム。
【請求項８】
上記マスタ機器の制御系ＣＰＵは、ＧＰＳの基準時刻系もしくは標準電波時計系等の外部クロック校正手段から送信される基準パルスを受信するインターフェイスを有し、上記基準パルスにより上記内部時計を定期的に校正することを特徴とする請求項１ないし７のいずれか１項に記載の無線通信システム。
【請求項９】
上記マスタ機器の制御系ＣＰＵは、上記基準パルスの受信時点を基準として、上記各スレーブ機器に動作を実行させることを特徴とする請求項８に記載の無線通信システム。
【請求項１０】
上記各スレーブ機器が所定の物理量を測定するセンサを有する測定ユニットであり、上記マスタ機器が上記各測定ユニットにて測定された測定データを収集して所定に処理する測定器本体であることを特徴とする請求項１ないしの９いずれか１項に記載の無線通信システム。
【請求項１１】
上記無線ネットワークが、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ）により構築されることを特徴とする請求項１ないし１０のいずれか１項に記載の無線通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１台のマスタ機器と複数台のスレーブ機器とを無線ネットワークで接続してなる無線通信システムに関し、さらに詳しく言えば、そのネットワーク内機器間の同期をとる技術に関するものである。
【背景技術】
【０００２】
図１７に模式的に示すように、１台のマスタ機器１と複数台のスレーブ機器２（２ａ〜２ｎ）とを無線ネットワークで接続し、マスタ機器１からの指令に基づいて各スレーブ機器２を同じタイミングで一斉に動作させるような場合、それら機器間の同期をとるため、マスタ機器１に内部時計Ｔ１を搭載するとともに、各スレーブ機器２にも内部時計Ｔ２を搭載するようにしている（例えば、特許文献１参照）。
【０００３】
この種の同期システムにおいては、マスタ機器１が各スレーブ機器２の動作実行時刻を一元的に集中制御する。その動作実行時刻は、マスタ機器１の内部時計Ｔ１により計時される時刻を基準として設定され、マスタ機器１から各スレーブ機器２に他の情報とともにコマンドを用いて送信される。その際、コマンドの送信は、所定のタイムスロットに基づいて各スレーブ機器２ごとに時間差をおいて行われる。
【０００４】
各スレーブ機器２は内部時計Ｔ２を監視し、マスタ機器１により指定された動作実行時刻になると、あらかじめ設定されているプログラムにしたがって動作し、その実行結果を各スレーブ機器２ごとに割り当てられた時刻にマスタ機器１に送信する。その際、実行結果には内部時計Ｔ２の時計情報が付随して送信される。
【０００５】
このように、マスタ機器１がすべてのスレーブ機器２に対して同一の動作実行時刻を送信することにより、各スレーブ機器２に異なったタイミングで動作実行時刻が送信されたとしても、その動作実行時刻が、マスタ機器１からの送信時刻よりも後に設定されていれば、すべてのスレーブ機器２に指定された動作実行時刻で各スレーブ機器２を動作させることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−２８９５８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来技術によると、各スレーブ機器２にも内部時計Ｔ２を搭載する必要があり、コスト的に好ましくない。特に、スレーブ機器２の台数が多い場合には、その台数分のコストがかかる。
【０００８】
また、定期的にマスタ機器１の内部時計Ｔ１と、各スレーブ機器２の内部時計Ｔ２との時間合わせを行う必要がある。その時間合わせは、コマンドを介して行うことから、厳密にマスタ機器１と各スレーブ機器２の時刻合わせを行うことが難しい。
【０００９】
したがって、本発明の課題は、１台のマスタ機器と複数台のスレーブ機器とを無線ネットワークで接続してなる無線通信システムにおいて、マスタ機器よりスレーブ機器に対して、各種動作実行時刻をネットワーククロック値で送信することにより、マスタ機器と各スレーブ機器との同期、また、各スレーブ機器相互間の同期を確実にとることができる安価な無線通信システムを提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明は、１台のマスタ機器と複数台のスレーブ機器とにより無線ネットワークが構築され、上記マスタ機器より上記各スレーブ機器に対して動作開始時刻が送信され、上記各スレーブ機器は上記動作開始時刻が到来した時点で所定の動作を実行し、その実行結果を所定のタイミングで上記マスタ機器に送信する無線通信システムにおいて、上記マスタ機器および上記各スレーブ機器は、それぞれ制御系ＣＰＵとネットワーククロックカウンタとを含み、上記マスタ機器と上記各スレーブ機器との同期ソースとして上記無線ネットワークのネットワーククロックを共有し、上記マスタ機器の制御系ＣＰＵは、上記各スレーブ機器に対して上記動作開始時刻を上記ネットワーククロックで換算された動作開始計数値として送信し、上記各スレーブ機器の制御系ＣＰＵは、自機の上記ネットワーククロックカウンタの計数値を監視し、その計数値が上記動作開始計数値と一致した時点で所定の動作を実行し、その実行結果を所定のタイミングで上記マスタ機器に送信することを特徴としている。
【００１１】
また、本発明は、上記マスタ機器のみに実時間を計時する内部時計を備え、上記マスタ機器の制御系ＣＰＵは、上記各スレーブ機器に対して上記動作開始計数値を送信するにあたって、上記動作開始計数値と上記内部時計による実時間とを関連付けて、その相関を記憶することを特徴としている。
【００１２】
本発明の好ましい態様によると、上記各スレーブ機器の制御系ＣＰＵは、上記動作開始計数値を受信した際、自機のネットワーククロックカウンタから、その受信時点のネットワーククロック値を取得し、上記動作開始計数値と上記受信時点のネットワーククロック値との差分クロックを算出するとともに、上記制御系ＣＰＵの内部クロックの計数を開始し、その内部クロック計数値が上記差分クロックに相当する時間に達した時点で所定の動作を実行する。
【００１３】
また、本発明の好ましい態様によると、上記マスタ機器の制御系ＣＰＵは、上記各スレーブ機器に対して、上記動作開始計数値を同一時刻として送信するとともに、動作開始後において同一の時間間隔で動作を実行させる動作実行間隔を併せて送信し、上記各スレーブ機器は、上記動作開始計数値に基づいて一斉に動作を開始し、その後上記動作実行間隔ごとに動作を実行する。
【００１４】
また、本発明の好ましい態様によると、上記動作実行間隔は、上記ネットワーククロックのクロック値として上記マスタ機器から上記各スレーブ機器に送信され、上記各スレーブ機器の制御系ＣＰＵは、上記動作実行間隔を内部クロックのクロック数に換算し、動作開始後は上記内部クロックの計数値に基づいて動作を繰り返し実行する。
【００１５】
また、本発明の別の態様においては、上記マスタ機器の制御系ＣＰＵは、上記各スレーブ機器の動作開始後に、上記各スレーブ機器に対して、現在時点から所定時間経過後に一斉に動作を実行させる同期時刻を所定時間ごとに送信して、上記各スレーブ機器の動作に同期をかけることを特徴としている。
【００１６】
このように同期をとるにあたって、上記マスタ機器の制御系ＣＰＵは、上記同期時刻をネットワーククロック値として上記各スレーブ機器に送信し、上記各スレーブ機器の制御系ＣＰＵは、上記同期時刻受信時点のネットワーククロック値と上記同期時刻との差分差分クロックを算出するとともに、上記制御系ＣＰＵの内部クロックの計数を開始し、その内部クロック計数値が上記差分クロックに相当する時間に達した時点で同期のための動作を実行する。
【００１７】
また、本発明の好ましい態様によると、上記マスタ機器の制御系ＣＰＵは、ＧＰＳの基準時刻系もしくは標準電波時計系等の外部クロック校正手段から送信される基準パルスを受信するインターフェイスを有し、上記基準パルスにより上記内部時計を定期的に校正する。
【００１８】
また、本発明には、同期をとる別の態様として、上記マスタ機器の制御系ＣＰＵは、上記基準パルスの受信時点を基準として、上記各スレーブ機器に動作を実行させる態様も含まれる。
【００１９】
本発明は、データロガーと呼ばれるデータ収集機器を含む測定装置に好ましく適用される。この種の測定装置において、上記各スレーブ機器が所定の物理量を測定するセンサを有する測定ユニットであり、上記マスタ機器が上記各測定ユニットにて測定された測定データを収集して所定に処理する測定器本体である。
【００２０】
本発明において、上記無線ネットワークは、好ましくはブルートゥース（Ｂｌｕｅｔｏｏｔｈ：登録商標）により構築される。
【発明の効果】
【００２１】
本発明によれば、マスタ機器と各スレーブ機器との同期ソースとして無線ネットワークのネットワーククロックを共有し、マスタ機器側から各スレーブ機器に対して動作開始時刻をネットワーククロックで換算された動作開始計数値として送信し、各スレーブ機器側では、自機の上記ネットワーククロックカウンタの計数値を監視し、その計数値が上記動作開始計数値と一致した時点で所定の動作を実行し、その実行結果を所定のタイミングで上記マスタ機器に送信するようにしたことにより、特に各スレーブ機器は内部時計を備える必要がないことから、安価な構成でありながら、マスタ機器と各スレーブ機器とを確実に同期させることができる。
【００２２】
また、マスタ機器より、各スレーブ機器の動作開始後に、スレーブ機器に対して現在時点から所定時間経過後に一斉に動作を実行させる同期時刻を所定時間ごとに送信して、各スレーブ機器の動作に同期をかけるようにしたことにより、各スレーブ機器相互間においても同期をとることができる。
【００２３】
また、本発明の好ましい態様によれば、マスタ機器のみに実時間を知るうえで内部時計が設けられるが、その内部時計をＧＰＳの基準時刻系もしくは標準電波時計系等の外部クロック校正手段から送信される基準パルスにて定期的に校正することにより、内部時計による実時間とネットワーククロックとを正確に関連付けることができる。
【００２４】
また、上記基準パルスを受信した時点におけるネットワーククロックに基づいて、各スレーブ機器に動作を実行させることにより、マスタ機器と各スレーブ機器間、また、各スレーブ機器相互間の同期を確実にとることができる。
【００２５】
また、無線通信手段として、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ）を用いることにより、安価かつ低消費電力で無線ネットワークを構築することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明による無線通信システムの構築例を示す模式図。
【図２】ブルートゥースで実行される周波数ホッピングを示すタイミングチャート。
【図３】本発明の第１実施形態において、マスタ機器で実行される動作説明用のフローチャート。
【図４】上記第１実施形態において、マスタ機器が備える内部時計の校正手順を示すフローチャート。
【図５】上記第１実施形態において、マスタ機器で実行される別の動作説明用のフローチャート。
【図６】上記第１実施形態において、スレーブ機器で実行される動作説明用のフローチャート。
【図７】上記第１実施形態において、スレーブ機器で実行される別の動作説明用のフローチャート。
【図８】本発明の第２実施形態において、マスタ機器で実行される動作説明用のフローチャート。
【図９】上記第２実施形態において、マスタ機器で実行される別の動作説明用のフローチャート。
【図１０】上記第２実施形態において、スレーブ機器で実行されるコマンド処理を示すフローチャート。
【図１１】上記第２実施形態において、スレーブ機器で実行される測定開始処理を示すフローチャート。
【図１２】上記第２実施形態において、スレーブ機器で実行される別の測定開始処理を示すフローチャート。
【図１３】上記第２実施形態において、スレーブ機器で実行されるデータサンプリング処理を示すフローチャート。
【図１４】上記第２実施形態において、スレーブ機器で実行されるデータ送信処理を示すフローチャート。
【図１５】上記第２実施形態において、スレーブ機器で実行される通常のデータサンプリング状態を示すタイミングチャート。
【図１６】上記第２実施形態において、スレーブ機器で実行されるサンプリング同期補正時のデータサンプリング状態を示すタイミングチャート。
【図１７】無線通信システムの従来技術を示す模式図。
【発明を実施するための形態】
【００２７】
次に、図１ないし図１６により、本発明のいくつかの実施形態について説明するが、本発明はこれに限定されるものではない。
【００２８】
まず、図１に示すように、この実施形態に係る無線通信システムは、基本的に、１台のマスター機器１０と、複数台のスレーブ機器２０（２０Ａ，２０Ｂ，…，２０Ｎ）とにより構築される。
【００２９】
この実施形態において、スレーブ機器２０は、所定の物理量を検出するデータロガー等と呼ばれる測定ユニット（子機）であり、マスター機器１０は、各スレーブ機器２０にて測定された測定データ（物理量）を収集して所定に処理する測定器本体（親機）である。
【００３０】
マスター機器１０および各スレーブ機器２０はともに無線通信モジュールを有し、双方向通信可能である。例えば、店舗やオフィス等として提供される室内の空調設計を行う場合、各スレーブ機器２０は、温度測定用ユニットとして室内の天井，壁面および床面等に配置されるため、マスター機器１０との通信はたかだか数メートル〜数百メートルの短距離無線でよい。
【００３１】
このような短距離無線通信には、２．４ＧＨｚ帯の電波を利用した短距離無線通信手段として、例えばブルートゥース（Ｂｌｕｅｔｏｏｔｈ：登録商標）とジグビー（Ｚｉｇｂｅｅ：登録商標）とがあるが、この実施形態ではブルートゥースを採用している。なお、ブルートゥースの場合、マスター機器１０に対して同時に接続できるスレーブ機器２０の台数に制約があり最大７台である。
【００３２】
マスター機器１０は制御部として、各種の処理を行うメインの制御系ＣＰＵ１１と、無線通信モジュールを制御するモジュール内ＣＰＵ１２の２つのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備え、両ＣＰＵ１１，１２は双方向接続で、相互にデータ等の遣り取りが行われる。
【００３３】
また、マスタ機器１０は、実時間を計時する内部時計１１１，外部インタフェース１１２，無線通信送受信部１２１およびネットワーククロックカウンタ１２２を備え、このうち、内部時計１１１と外部インタフェース１１２は制御系ＣＰＵ１１に属し、無線通信送受信部１２１とネットワーククロックカウンタ１２２はモジュール内ＣＰＵ１２に属している。
【００３４】
また、制御系ＣＰＵ１１は、スレーブ機器２０から取得する測定データのデータ番号を計数するデータ番号カウンタ１１ａと、スレーブ機器２０から取得する測定データ数を計数するデータ受信カウンタ１１ｂとを備えている。
【００３５】
外部インタフェース１１２は、マスター機器１０と、ＧＰＳの基準時刻系もしくは標準電波時計系等の絶対時刻発生手段である外部クロック校正手段３０とを接続するインタフェースで、その接続は無線，有線の別を問わないが、その接続タイミング等は制御系ＣＰＵ１１により制御される。
【００３６】
各スレーブ機器２０は同一構成で、マスター機器１０と同じく制御部として、制御系ＣＰＵ２１と、無線通信モジュール制御用のモジュール内ＣＰＵ２２の２つのＣＰＵを備えており、両ＣＰＵ２１，２２は双方向接続で、相互にデータ等の遣り取りが行われる。
【００３７】
各スレーブ機器２０は、測定系として、図示しないセンサからの測定データが入力される入力チャネルＣＨ１〜ＣＨｎを択一的に選択するマルチプレクサ（切替スイッチ）２１１と、マルチプレクサ２１１にて選択された入力チャネルの測定データを所定に増幅する増幅器２１２と、増幅された測定データをデジタル値に変換するＡ／Ｄ変換器２１３とを備え、Ａ／Ｄ変換された測定データが制御系ＣＰＵ２１に与えられる。測定データは、制御系ＣＰＵ２１のメモリに一時的に保存される。
【００３８】
また、制御系ＣＰＵ２１には、測定データのアドレスを計数するアドレスカウンタ２１ａと、制御系ＣＰＵ２１の基準クロックパルスを計数する計数カウンタ２１ｂとが含まれている。
【００３９】
なお、上記センサには、測定対象に応じて電流センサ，電圧センサ，温度センサ等が適宜用いられる。また、センサは一つであってもよく、その場合、マルチプレクサ２１１は不要である。
【００４０】
また、各スレーブ機器２０は、マスター機器１０と同じく、無線通信送受信部２２１およびネットワーククロックカウンタ２２２を備え、これらはモジュール内ＣＰＵ２２に属している。
【００４１】
制御系ＣＰＵ２１のメモリに保存された測定データは、制御系ＣＰＵ２１からモジュール内ＣＰＵ２２を介して無線通信送受信部２２１に送られ、無線通信送受信部２２１よりマスタ機器１０に向けて送信される。
【００４２】
図１に示すように、本発明においては、マスター機器１０にのみ内部時計１１１が搭載され、各スレーブ２０には内部時計が搭載されないが、無線ネットワークのネットワーククロックを同期ソースとして、マスタ機器１０と各スレーブ機器２０の同期をとるようにしている。
【００４３】
この実施形態では、上記したようにブルートゥースを採用していることから、同期ソースとして用いられるブルートゥースでのネットワーククロックについて、図２のタイミングチャートを参照して説明する。
【００４４】
ブルートゥースでは、２４０２〜２４８０ＭＨｚの周波数帯を１ＭＨｚずつ７９の周波数帯に区分けし、図２に示すように、使用する周波数帯を６２５μｓごとに疑似的にランダムに変化させながら通信を行う。これを周波数ホッピングと呼び、通信周波数ｆ（ｋ）は次式により表される。
通信周波数ｆ（ｋ）＝２４０２＋ｋ（ＭＨｚ）、但しｋ＝０，１，２…７８
【００４５】
ブルートゥースの規格によれば、１台のマスター機器１０に接続できるスレーブ機器２０の台数が最大７台として制限されており、ブルートゥースによる無線ネットワークは「ピコネット」と呼ばれている。
【００４６】
マスター機器１０は、ピコネット内において同じ時間内に同じ周波数帯で通信できるようにピコネットを制御し、各スレーブ機器２０は、マスター機器１０の制御のもとで、マスター機器１０に同期して通信する。
【００４７】
また、ブルートゥースでは、スロットと呼ばれる時間単位で通信が行われる。スロットとは、同じ周波数帯で通信する時間であり、その時間間隔は６２５μｓである。一つのスロットの通信が終了すれば、スロット番号が逐次加算され、次の周波数帯にホッピングすることになる。
【００４８】
このスロット番号は、ブルートゥースクロックと呼ばれ、２８ビットの値をとり、同一のピコネット内で共有される。ブルートゥースクロックが偶数のとき、マスター機器１０からスレーブ機器２０に対して通信が行われ、マスター機器１０は、スレーブ機器２０を指定して通信を開始する。
【００４９】
マスター機器１０は、通信開始時に同期信号を送り、スレーブ機器２０は、その同期信号に基づいてマスター機器１０との同期をとる。マスター機器１０は、同期信号の後にデータの内容を送信する。ブルートゥースクロックが奇数のとき、スレーブ機器２０からマスター機器１０に対して通信が行われ、スロットで指定されたスレーブ機器２０がマスター機器１０に対して通信する。
【００５０】
次に、ピコネット内同期について説明する。同一のピコネット内に存在するスレーブ機器２０は、マスター機器１０の周波数ホッピングパターンとブルートゥースクロックを共有することにより通信が可能になる。
【００５１】
周波数ホッピングパターンは、マスター機器１０のブルートゥースデバイスアドレスとブルートゥースクロックとから一意に算出され、ピコネット構築の際に、マスター機器１０から接続相手のスレーブ機器２０にブルートゥースデバイスアドレスとブルートゥースクロックを与える。なお、ブルートゥースデバイスアドレスとは、スレーブ機器２０を識別するために一意に与えられる４８ビットのアドレスである。
【００５２】
スレーブ機器２０では、与えられたアドレスとクロック値に基づいてホッピングパターンを算出し、そのホッピングパターンにてマスター機器１０と通信可能となった時点でピコネットが形成される。このように、ピコネット内でマスター機器１０を基準として周波数ホッピングパターンとブルートゥースクロックが共有されている状態をピコネット内同期という。
【００５３】
本発明において、マスター機器１０と各スレーブ機器２０は、概略次のような手順で交信が行われる。前提として、マスター機器１０が各スレーブ機器２０に対する動作実行時刻（この実施形態では測定開始時刻）を集中制御する。
【００５４】
マスター機器１０は、無線ネットワーク（この実施形態ではブルートゥース）を介して複数台のスレーブ機器２０と通信を行うにあたって、まず最初に、通信可能なスレーブ機器２０を検索する。
【００５５】
検索が完了したら、所望のスレーブ機器２０と通信の確立をはかる。そして、通信が確立すると、マスター機器１０のネットワーククロック（ブルートゥースの場合、ピコネットクロック）のカウント値を各スレーブ機器２０に与える。
【００５６】
以後、定期的（ブルートゥースの場合、６２５μｓごと）に通信が行われ、その都度、マスター機器１０から各スレーブ機器２０に対してネットワーククロックのカウント値が送信され、マスター機器１０と各スレーブ機器２０との同期がとられる。
【００５７】
そして、各スレーブ機器２０に同一時刻で一斉に測定を開始させる場合、マスター機器１０は、その同期させたいタイミングのネットワーククロックのカウント値Ｘを各スレーブ機器２０に対して送信するとともに、上記カウント値Ｘと内部時計１１１による実時間との相関を記憶する。
【００５８】
なお、各スレーブ機器２０に対してブルートゥースの場合には６２５μｓの時間間隔をもって順次送信されることから、上記カウント値Ｘは、その各スレーブ機器２０に対する送信が一巡されるまでの時間を考慮して決められる。
【００５９】
各スレーブ機器２０においては、常に自機のネットワーククロックのカウント値を監視し、自機のネットワーククロックのカウント値が上記カウント値Ｘに一致した時点で、指定された動作、すなわち図示しない被測定物の物理量の測定を開始する。
【００６０】
各スレーブ機器２０は、上記被測定物の物理量の測定を完了したら、マスター機器１０に測定完了を通知し、マスター機器１０に測定データを送信する。
【００６１】
その際、通信トラフィックが重ならないように、各スレーブ機器２０からマスター機器１０への測定データの送信は、好ましくはマスター機器１０からあらかじめ指定されたタイムスロットにしたがって行われる。
【００６２】
〔第１実施形態〕
次に、図３〜図７を参照して、本発明の第１実施形態の動作について説明する。まず、マスタ機器１０の具体的な動作例を図３のフローチャートに沿って説明する。なお、マスタ機器１０と各スレーブ機器２０は、すでにブルートゥースにより通信が確立しているものとする。
【００６３】
初期のステップＳＴ１００として、各スレーブ機器２０に測定を開始させるかどうかの判断ステップがあり、測定を開始させると判断された場合、まず、次のステップＳＴ１０１で、内部時計１１１より実時間（Ｍ＿Ｔｉｍｅ）を読み出すとともに、ステップＳＴ１０２で、ネットワーククロックカウンタ１２２からそのクロックカウンタ値（Ｍ＿ＮｅｔＣｋ）を取得する。
【００６４】
そして、ステップＳＴ１０３で、実時間（Ｍ＿Ｔｉｍｅ）とネットワーククロックカウンタ値（Ｍ＿ＮｅｔＣｋ）との関連付けを行う。すなわち、ネットワーククロックカウンタ値（Ｍ＿ＮｅｔＣｋ）から実時間（Ｍ＿Ｔｉｍｅ）が分かるように関連付ける。
【００６５】
その後、ステップＳＴ１０４で、測定開始時刻（Ｍ＿ＴｉｍｅＳｔｔ）に対応したネットワーククロック値（ＮｅｔＣｋＳｔｔ）を決める。測定開始時刻（Ｍ＿ＴｉｍｅＳｔｔ）は、スレーブ機器２０で測定データの取り込みを開始させる時刻で、各スレーブ機器２０に対して共通に割り当てられる。なお、測定開始時刻（Ｍ＿ＴｉｍｅＳｔｔ）は、各スレーブ機器２０に測定開始の指示が行き渡った後の時刻とする。
【００６６】
また、ステップＳＴ１０５で、データ取得時刻（ＤｔＳｔｇＴｉｍｅ）に対応したネットワーククロック値（ＮｅｔＣｋＤｔＳｔｇ）を決める。このデータ取得時刻（ＤｔＳｔｇＴｉｍｅ）は、スレーブ機器２０からマスタ機器１０へ測定データを転送する時刻、すなわちマスタ機器１０がスレーブ機器２０から測定データを取得する時刻である。
【００６７】
そして、ステップＳＴ１０６で、まず測定開始時刻（Ｍ＿ＴｉｍｅＳｔｔ）を各スレーブ機器２０に送信し、続いてデータ取得時刻（ＤｔＳｔｇＴｉｍｅ）を各スレーブ機器２０に送信したのちに、ステップＳＴ１０７で、通信待機状態（スレーブ機器２０からの送信（返信）待ち状態）に入る。
【００６８】
ステップＳＴ１０７の通信待機状態で、スレーブ機器２０からの送信を受信すると、ステップＳＴ１０８で、その受信内容からスレーブ機器２０側で送信準備ができているかどうかを判断し、送信準備ＯＫであれば、ステップＳＴ１０９で、スレーブ機器２０から送信される測定データを受信する。
【００６９】
なお、スレーブ機器２０に対するデータ取得時刻（ＤｔＳｔｇＴｉｍｅ）は、通信トラフィックが重ならないように、データ送信時刻を各スレーブ機器２０ごとに異ならせることが好ましい。
【００７０】
そして、ステップＳＴ１１０で、データ受信完了かどうかを判断し、受信完了であれば、ステップＳＴ１１１で、スレーブ機器２０に測定を終了させるかどうかを判断し、測定を終了させない場合には、ステップＳＴ１０７に戻る。
【００７１】
測定を終了させる場合には、スレーブ機器２０に測定停止のコマンド（Ｓｔｏｐ）を送信して、スレーブ機器２０との通信を終了し、制御系ＣＰＵ１１は、各スレーブ機器２０から収集された測定データを所定に処理し、その結果を図示しない表示器に表示したり、マスタ機器１０に接続されている外部のパソコン等に送信する。
【００７２】
先に説明したように、マスタ機器１０は、外部インタフェース１１２を介して外部クロック校正手段３０と接続されており、内部時計１１１が外部クロック校正手段３０からの基準パルスにより定期的もしくは不定期的に校正される。
【００７３】
すなわち、図４のフローチャートに示すように、制御系ＣＰＵ１１は、まずステップＳＴ３０１で、内部時計１１１を校正するかどうかを判断する。外部クロック校正手段３０から例えば１秒間隔で基準パルスが送信されるとすると、制御系ＣＰＵ１１は、それに合わせて１秒間隔でステップＳＴ３０１を実行することが好ましいが、例えば２秒間隔等もしくは不定期的としてもよい。
【００７４】
内部時計１１１を校正する場合には、ステップＳＴ３０２で、外部クロック校正手段３０から校正値としての基準パルス（Ｅｘｔ＿Ｃｋ）を取得し、ステップＳＴ３０３で、その基準パルス（Ｅｘｔ＿Ｃｋ）に基づいて内部時計１１１の実時間（Ｍ＿Ｔｉｍｅ）を校正する。
【００７５】
次に、マスタ機器１０の別の動作例を図５のフローチャートに沿って説明する。この別の動作例では、外部クロック校正手段３０からの基準パルスを受信した時点のネットワーククロック値により、データ取得時刻（ＤｔＳｔｇＴｉｍｅ）に対応したネットワーククロック値（ＮｅｔＣｋＤｔＳｔｇ）を決めるようにしている点で、先に説明した図３のフローチャートと異なっている。
【００７６】
図５のフローチャートにおいて、ステップＳＴ１００〜ＳＴ１０４までは図３のフローチャートと同じであるが、この別の動作例では、ステップＳＴ１０４に続くステップＳＴ１０５ａで、ステップＳＴ１０４で決定した測定開始時刻（Ｍ＿ＴｉｍｅＳｔｔ）に対応したネットワーククロック値（ＮｅｔＣｋＳｔｔ）を先にスレーブ機器２０に送信する。
【００７７】
次にステップＳＴ１０５ｂで、外部クロック校正手段３０からの基準パルスを受信したかどうかを判断し、基準パルスを受信すると、ステップＳＴ１０５ｃで、再度ネットワーククロックカウンタ１２２からそのクロックカウンタ値（Ｍ＿ＮｅｔＣｋ）を取得する。
【００７８】
そして、このネットワーククロックカウンタ値（Ｍ＿ＮｅｔＣｋ）をもとに、ステップＳＴ１０５ｄで、データ取得時刻（ＤｔＳｔｇＴｉｍｅ）に対応したネットワーククロック値（ＮｅｔＣｋＤｔＳｔｇ）を決め、ステップＳＴ１０６ａで、データ取得時刻（ＤｔＳｔｇＴｉｍｅ）をスレーブ機器２０に送信する。以後は、図３のフローチャートと同じく、ステップＳＴ１０７〜ＳＴ１１１を実行する。
【００７９】
この別の動作例によれば、基準パルスを受信した時点のネットワーククロックカウンタ値（Ｍ＿ＮｅｔＣｋ）をもとにデータ取得時刻（ＤｔＳｔｇＴｉｍｅ）に対応したネットワーククロック値（ＮｅｔＣｋＤｔＳｔｇ）を決めるようにしたことにより、基準パルスにより校正された内部時計１１１の時間とデータ取得時刻とを一致させることができる。
【００８０】
次に、スレーブ機器２０の動作例について、図６のフローチャートを参照しながら説明する。なお、マスタ機器１０と各スレーブ機器２０は、すでにブルートゥースにより通信が確立しているものとする。
【００８１】
まず、ステップＳＴ２００の通信待機状態において、マスタ機器１０からの送信を受信すると、ステップＳＴ２０１で、マスタ機器１０からの送信が測定開始であるかどうかを判断し、測定開始でなければ当該ルーチンを終了する。
【００８２】
測定開始であれば、ステップＳＴ２０２で、マスタ機器１０側のステップＳＴ１０４で決められた測定開始時刻（Ｍ＿ＴｉｍｅＳｔｔ）に対応したネットワーククロック値（ＮｅｔＣｋＳｔｔ）を自機の例えばモジュール内ＣＰＵ２２に設定したのち、ステップＳＴ２０３で、自機のネットワーククロックカウンタ２２２からネットワーククロックカウンタ値（Ｓ＿ＮｅｔＣｋ）を取得する。
【００８３】
そして、ステップＳＴ２０４で、Ｓ＿ＮｅｔＣｋ＝ＮｅｔＣｋＳｔｔであるかどうかを判断する。すなわち、マスタ機器１０より指定された測定開始時刻（Ｍ＿ＴｉｍｅＳｔｔ）になったかどうかを判断する。
【００８４】
ステップＳＴ２０４での判断がＹＥＳで、マスタ機器１０より指定された測定開始時刻（Ｍ＿ＴｉｍｅＳｔｔ）になると、ステップＳＴ２０５で、モジュール内ＣＰＵ２２から制御系ＣＰＵ２１に測定開始の指示が出され、制御系ＣＰＵ２１は、図示しないセンサにて測定された被測定対象の測定データの取り込みを開始しメモリに保存する。
【００８５】
次に、ステップＳＴ２０６で、マスタ機器１０側のステップＳＴ１０５（もしくはステップＳＴ１０５ｄ）で決められたデータ取得時刻（ＤｔＳｔｇＴｉｍｅ）に対応したネットワーククロック値（ＮｅｔＣｋＤｔＳｔｇ）を自機の例えばモジュール内ＣＰＵ２２に設定したのち、ステップＳＴ２０７で、自機のネットワーククロックカウンタ２２２から再度ネットワーククロックカウンタ値（Ｓ＿ＮｅｔＣｋ）を取得する。
【００８６】
そして、ステップＳＴ２０８で、Ｓ＿ＮｅｔＣｋ＝ＮｅｔＣｋＤｔＳｔｇであるかどうかを判断する。すなわち、マスタ機器１０より指定されたデータ取得時刻（ＤｔＳｔｇＴｉｍｅ）になったかどうかを判断する。
【００８７】
ステップＳＴ２０８での判断がＹＥＳで、マスタ機器１０より指定されたデータ取得時刻（ＤｔＳｔｇＴｉｍｅ）になると、ステップ２０９で測定データを取得し、マスタ機器１０に対する測定データの送信を用意する。
【００８８】
続くステップＳＴ２１０で、送信データの用意が完了したかどうかを判断する。送信データの用意が完了していなければ、その用意が完了するまで待つが、送信データの用意が完了していれば、ステップＳＴ２１１で、測定データをマスタ機器１０に送信する。
【００８９】
そして、ステップＳＴ２１２で、マスタ機器１０へのデータ送信が完了したかどうかを判断し、データ送信が完了したならば、ステップＳＴ２１３で、測定終了かどうかを判断し、ＹＥＳであれば当該ルーチンを終了し、ＮＯであればステップＳＴ２０６に戻る。
【００９０】
次に、スレーブ機器２０の別の動作例について、図７のフローチャートを参照しながら説明する。この別の動作例では、測定開始時刻と現在時刻との時間差を算出し、その時間差が経過した時点で、測定を開始するようにしている点で、先に説明した図６のフローチャートと異なっている。
【００９１】
図７のフローチャートにおいて、ステップＳＴ２００〜ＳＴ２０３までは、図６のフローチャートと同じであるが、この別の動作例によると、ステップＳＴ２０３で、自機のネットワーククロックカウンタ２２２からネットワーククロックカウンタ値（Ｓ＿ＮｅｔＣｋ）を取得したのちのステップＳＴ２０４ａにおいて、次の動作を実行する。
【００９２】
すなわち、ステップＳＴ２０４ａでは、ステップＳＴ２０２で設定された測定開始時刻（Ｍ＿ＴｉｍｅＳｔｔ）に対応したネットワーククロック値（ＮｅｔＣｋＳｔｔ）と、ステップＳＴ２０３で取得したネットワーククロックカウンタ値（Ｓ＿ＮｅｔＣｋ）との時間差（Ｄｉｆｆ  Ｔｉｍｅ）を算出する。すなわち、Ｄｉｆｆ  ＴｉｍｅをＮｅｔＣｋＳｔｔ−Ｓ＿ＮｅｔＣｋにより算出する。
【００９３】
このようにして、時間差（Ｄｉｆｆ  Ｔｉｍｅ）を算出したのち、ステップＳＴ２０４ｂにおいて、時間差（Ｄｉｆｆ  Ｔｉｍｅ）を制御系ＣＰＵ２１が備えている内部クロック計数手段のカウント値（Ｉｎｔ  Ｃｎｔ）に変換する。
【００９４】
そして、次段のステップＳＴ２０４ｃで、制御系ＣＰＵ２１の計数手段のカウントを開始し、続くステップＳＴ２０４ｄで、そのカウント値（Ｉｎｔ  Ｃｎｔ）＝時間差（Ｄｉｆｆ  Ｔｉｍｅ）となったかどうかを判断する。すなわち、測定開始時刻（Ｍ＿ＴｉｍｅＳｔｔ）になったかどうかを判断する。
【００９５】
その結果がＹＥＳで、測定開始時刻（Ｍ＿ＴｉｍｅＳｔｔ）になると、先に説明した図６のフローチャートと同じく、ステップＳＴ２０５〜ＳＴ２１３までが実行され、スレーブ機器２０にて測定された測定データがマスタ機器１０に向けて送信される。
【００９６】
〔第２実施形態〕
次に、図８〜図１６を参照して、本発明の第２実施形態の動作について説明する。この第２実施形態においても、図１に示したマスタ機器１０およびスレーブ機器２０が用いられるが、この第２実施形態では、上記第１実施形態に対してマスタ機器１０から各スレーブ機器２０に対してサンプリングクロックの補正をかける点が加味され、また、マスタ機器１０およびスレーブ機器２０の動作についても改良が加えられている。
【００９７】
サンプリングクロックの補正の必要性について説明すると、測定を開始させるにあたって、マスタ機器１０から各スレーブ機器２０にネットワーククロックを基準としたサンプリング間隔が指定されるが、各スレーブ機器２０側では、制御系ＣＰＵ２１とネットワーククロックカウンタ２１１との間でネットワーククロックを遣り取りするのに時間がかかる。
【００９８】
そこで、各スレーブ機器２０側では、サンプリング間隔を制御系ＣＰＵ２１の内部クロック基準に換算して、その内部クロックのカウント値でサンプリングを行うようにしているが、経時的にマスタ機器１０から指定されたサンプリング間隔とずれが生じ、また、スレーブ機器２０の相互間でも、それらの内部クロックにずれがあるため、同一時刻で測定データをサンプリングするように、適宜サンプリングクロックを補正する必要がある。
【００９９】
まず、第２実施形態におけるマスタ機器１０の具体的な動作例を図８のフローチャートに沿って説明する。なお、マスタ機器１０と各スレーブ機器２０は、すでにブルートゥースにより通信が確立しているものとする。
【０１００】
マスタ機器１０から各スレーブ機器２０に測定開始の指示を与えるあたって、まず、ステップＳＴ３０１で、内部時計１１１より実時間（Ｍ＿Ｔｉｍｅ）を読み出したのち、ステップＳＴ３０２で、ネットワーククロックカウンタ１２２から、現在のネットワーククロックカウンタ値（Ｍ＿ＮｅｔＣｋ）を取得する。
【０１０１】
そして、ステップＳＴ３０３で、実時間（Ｍ＿Ｔｉｍｅ）とネットワーククロックカウンタ値（Ｍ＿ＮｅｔＣｋ）との関連付けを行う。すなわち、ネットワーククロックカウンタ値（Ｍ＿ＮｅｔＣｋ）から実時間（Ｍ＿Ｔｉｍｅ）が分かるように関連付ける。
【０１０２】
そして、次のステップＳＴ３０４で、測定開始時刻に対応したネットワーククロック値（Ｔｓｔｔ）と、サンプリング間隔に対応したネットワーククロック基準の値（Ｔｓａｍｐ）と、測定開始データ番号（ＳＮｓｔｔ）とを決定する。
【０１０３】
測定開始時刻（Ｔｓｔｔ）は、ネットワーククロックカウンタ１２２から現在のネットワーククロック値（Ｔｎｏｗ）を取得し、各種処理時間や通信時間等を考慮した余裕時間（Ｔａｄｄ１）を算出して、（Ｔｓｔｔ）＝（Ｔｎｏｗ＋Ｔａｄｄ１）として決められる。
【０１０４】
サンプリング間隔に対応したネットワーククロック基準の値（Ｔｓａｍｐ）は、サンプリング間隔がネットワーククロック値の何カウント分に相当するかの値であり、以下の説明において、サンプリング間隔を（Ｔｓａｍｐ）と言うことがある。
【０１０５】
また、測定開始データ番号（ＳＮｓｔｔ）は、通常は「０」であるが、例えばマスタ機器１０とスレーブ機器２０との間の通信が一時的に途絶え、再開されたときに、改めて測定開始データ番号が指定されること等を考慮して、拡張性を持たせるために自由度の高い選択肢を持たせている。
【０１０６】
そして、次のステップＳＴ３０５で、データ番号カウンタ１１ａのデータ番号（ＳＮｄｔ）に測定開始データ番号（ＳＮｓｔｔ）をセット（ＳＮｄｔ＝ＳＮｓｔｔ）したのち、ステップＳＴ３０６で、各スレーブ機器２０に対して測定開始コマンド（Ｓｔａｒｔ）が送信される。この測定開始コマンド（Ｓｔａｒｔ）には、測定開始時刻（Ｔｓｔｔ）と測定開始データ番号（ＳＮｓｔｔ）とサンプリング間隔（Ｔｓａｍｐ）とが含まれる。
【０１０７】
続くステップＳＴ３０７で、サンプリング間隔（Ｔｓａｍｐ）を補正するかどうかの判定がなされる。その結果がＹＥＳで補正する必要がある場合には、ステップＳＴ３０８ａに移行し、まず、そのときのネットワーククロックカウンタ値（Ｍ＿ＮｅｔＣｋ）を取得する。
【０１０８】
そして、次段のステップＳＴ３０８ｂで、サンプリングクロックの補正をかけるネットワーククロック値（Ｔｓｙｎｃ）および補正をかけるデータ番号（ＳＮｓｙｎｃ）を決定する。
【０１０９】
そして、ステップＳＴ３０８ｃで、ネットワーククロック値（Ｔｓｙｎｃ）とデータ番号（ＳＮｓｙｎｃ）とを含む同期コマンド（Ｓｙｎｃ）を各スレーブ機器２０に送信したのち、ステップＳＴ３０７に戻る。
【０１１０】
このステップＳＴ３０８ｂで、補正をかける時刻（ネットワーククロック値（Ｔｓｙｎｃ））を決めるには、ネットワーククロックカウンタ１２２から現在のネットワーククロック値（Ｔｎｏｗ）を取得するとともに、各種処理時間を考慮したＮ秒分のネットワーククロック値（Ｔａｄｄ２）を算出し、補正時刻に相当するネットワーククロック値（Ｔｓｙｎｃ）を、（Ｔｓｙｎｃ）＝（Ｔｎｏｗ）＋（Ｔａｄｄ２）より得る。
【０１１１】
また、補正をかけるデータ番号（ＳＮｓｙｎｃ）を決めるには、データ番号カウンタ１１ａから現在の最新データ番号（ＳＮｎｏｗ）を取得し、補正をかける時刻で算出したＮ秒分のネットワーククロック値（Ｔａｄｄ２）をサンプリング間隔（Ｔｓａｍｐ）で除算し、その値を最新データ番号（ＳＮｎｏｗ）に加算して、Ｎ秒後に補正をかけるデータ番号（ＳＮｓｙｎｃ）を得る。
【０１１２】
上記ステップＳＴ３０７での結果がＮＯで、サンプリング間隔（Ｔｓａｍｐ）を補正しない場合には、ステップＳＴ３０９で、スレーブ機器２０に対して測定データの受信を要求するかどうかの判断が行われる。
【０１１３】
その結果が、ＮＯで測定データの受信を要求しない場合には、ステップＳＴ３０７に戻るが、要求するＹＥＳの場合には、ステップＳＴ３１０で、データ受信カウンタ１１ｂをクリア（ＤＴｎｕｍ＝０）したうえで、次段のステップＳＴ３１１で、データ取得コマンド（ＧｅｔＤａｔａ）をスレーブ機器２０に送信する。
【０１１４】
このデータ取得コマンド（ＧｅｔＤａｔａ）には、取得する先頭データ番号（ＳＮｔｒｓｓｔ）と最終データ番号（ＳＮｔｒｓｔｏｐ）とが含まれ、取得する測定データが１つだけの場合は（ＳＮｔｒｓｓｔ）＝（ＳＮｔｒｓｔｏｐ）になる。
【０１１５】
データ取得コマンド（ＧｅｔＤａｔａ）の送信後にスレーブ機器２０からマスタ機器１０に測定データが送信されるが、ステップＳＴ３１２で、測定データの受信が完了したかが判断され、受信中であれば、ステップＳＴ３１２ａで、受信した測定データの数に応じてデータ受信カウンタ１１ｂをカウントアップ（ＤＴｎｕｍ＝ＤＴｎｕｍ＋１）する。
【０１１６】
測定データの受信が完了すると、ステップＳＴ３１３で、データ番号カウンタ１１ａのデータ番号（ＳＮｄｔ）を更新（ＳＮｄｔ＝ＳＮｄｔ＋ＤＴｎｕｍ）したのち、ステップＳＴ３１４で、測定終了かが判断される。その結果がＮＯで測定を終了しない場合には、ステップＳＴ３０７に戻り、ＹＥＳで測定を終了する場合には、ステップＳＴ３１５で、スレーブ機器２０に測定停止コマンド（Ｓｔｏｐ）を送信する。
【０１１７】
次に、この第２実施形態におけるマスタ機器１０の別の動作例を図９のフローチャートに沿って説明する。この別の動作例は、上記第１実施形態で説明した図５の動作例（外部基準パルスによるサンプリングの同期）に対応している。
【０１１８】
このマスタ機器１０の別の動作例では、まず第１ステップＳＴ３００で、外部クロック校正手段３０からの基準パルスを受信したかどうか判断され、基準パルスを受信すると、その基準パルスの受信時点ごとに、スレーブ機器２０に対して測定開始の指示が出さことから、サンプリング間隔（サンプリングクロック（Ｔｓａｍｐ））の補正は不要である。
【０１１９】
したがって、このマスタ機器１０の別の動作例に係る図９のフローチャートでは、先に説明した図８のフローチャートから、サンプリングクロックを補正するかどうかのステップＳＴ３０７と、ＹＥＳ（補正する）の場合に実行されるステップＳＴ３０８ａ〜ＳＴ３０８ｃまでが削除されている。
【０１２０】
すなわち、このマスタ機器１０の別の動作例では、図９のフローチャートに示すように、まず最初の第１ステップＳＴ３００で、外部クロック校正手段３０からの基準パルスが受信されると、ステップＳＴ３０１（内部時計１１１より実時間（Ｍ＿Ｔｉｍｅ）の読み出し）〜ステップＳＴ３０６（測定開始コマンド（Ｓｔａｒｔ）の送信）までが実行され、その後において、ステップＳＴ３０９（測定データの受信要求）〜ステップＳＴ３１５（測定停止コマンド（Ｓｔｏｐ）の送信）までが実行される。
【０１２１】
なお、このマスタ機器１０の別の動作例の場合、ステップＳＴ３０４では、測定開始時刻に対応したネットワーククロック値（Ｔｓｔｔ）と、測定開始データ番号（ＳＮｓｔｔ）とが決定されればよく、サンプリング間隔に対応したネットワーククロック基準の値（Ｔｓａｍｐ）については決定する必要がない。
【０１２２】
次に、図１０〜１６により、第２実施形態におけるスレーブ機器２０の動作について説明する。
【０１２３】
まず、図１０を参照して、スレーブ機器２０の基本的な動作であるコマンド処理フローについて説明する。ステップＳＴ４０１でのマスタ機器１０との通信待機状態で、受信有りの場合には、ステップＳＴ４０２で、その受信内に、測定開始コマンド（図８，図９のステップＳＴ３０６より送信される測定開始時刻（Ｔｓｔｔ），測定開始データ番号（ＳＮｓｔｔ），サンプリング間隔（Ｔｓａｍｐ）を含むコマンド）があるかどうかが判断され、ＹＥＳで測定開始コマンドがある場合には、ステップＳＴ４０２ａで「測定開始フラグ」をセットしたのち、ステップＳＴ４０１に戻る。
【０１２４】
なお、この実施形態において、フラグがセットされていない場合、フラグ領域には「０」が書き込まれるが、フラグがセットされると、フラグ領域は「１」となる。
【０１２５】
ステップＳＴ４０２での判断がＮＯで、測定開始コマンドがない場合には、次段のステップＳＴ４０３に進み、受信内にサンプリング同期補正コマンド（図８のステップＳＴ３０８ｃより送信される補正をかけるネットワーククロック値（Ｔｓｙｎｃ）とデータ番号（ＳＮｓｙｎｃ）を含むコマンド）があるかどうかが判断され、ＹＥＳでサンプリング同期補正コマンドがある場合には、ステップＳＴ４０３ａで「サンプリング同期フラグ」をセットしたのち、ステップＳＴ４０１に戻る。
【０１２６】
ステップＳＴ４０３での判断がＮＯで、サンプリング同期補正コマンドがない場合には、次のステップＳＴ４０４に進み、受信内にデータ送信要求コマンド（図８，図９のステップＳＴ３１１より送信される取得する先頭データ番号（ＳＮｔｒｓｓｔ）と最終データ番号（ＳＮｔｒｓｔｏｐ）含むコマンド）があるかどうかが判断され、ＹＥＳでデータ送信要求コマンドがある場合には、ステップＳＴ４０４ａで「データ送信開始フラグ」をセットしたのち、ステップＳＴ４０１に戻る。
【０１２７】
ステップＳＴ４０４での判断がＮＯで、データ送信要求コマンドがない場合には、次のステップＳＴ４０５に進み、受信内に測定停止コマンド（図８，図９のステップＳＴ３１５より送信される測定停止コマンド（Ｓｔｏｐ））があるかどうかが判断され、ＹＥＳで測定停止コマンドがある場合には、ステップＳＴ４０５ａで「測定終了フラグ」をセットしたのち、ステップＳＴ４０１に戻る。
【０１２８】
上記各ステップＳＴ４０２〜ＳＴ４０５で、その判断がいずれもＮＯである場合には、ステップＳＴ４０６に移行し、他のコマンド処理があれば、その処理を行ってステップＳＴ４０１に戻る。
【０１２９】
なお、上記各ステップＳＴ４０２ａ〜ＳＴ４０５ａでフラグをセットしたのち、ステップＳＴ４０１に戻しているのは、マスタ機器１０から上記各コマンドが一辺に続けて送信されることがないためである。
【０１３０】
次に、図１１と図１２を参照して、この第２実施形態におけるスレーブ機器２０の測定開始処理フローの２例について説明する。
【０１３１】
図１１は、制御系ＣＰＵ２１でネットワーククロックカウンタ２２２のカウント値（Ｓ＿ＮｅｔＣｋ）を定期的に読み出し、そのカウント値（Ｓ＿ＮｅｔＣｋ）がマスタ機器１０から送信された測定開始時刻（Ｔｓｔｔ）と一致した場合に、測定を開始させる処理フローである。
【０１３２】
まず、ステップＳＴ４１０で、「測定開始フラグ」が「１」にセットされたことを検知すると、次のステップＳＴ４１１で、次の測定開始処理に備えて「測定開始フラグ」をクリア「０」としたうえで、ステップＳＴ４１２で、ネットワーククロックカウンタ２２２から現在のネットワーククロックのカウント値（Ｓ＿ＮｅｔＣｋ）を取得する。
【０１３３】
そして、ステップＳＴ４１３で、ネットワーククロックのカウント値（Ｓ＿ＮｅｔＣｋ）が、マスタ機器１０から送信された測定開始時刻（Ｔｓｔｔ）と一致（Ｓ＿ＮｅｔＣｋ＝Ｔｓｔｔ）したかどうかを判断し、一致していない場合には、ステップＳＴ４１２を繰り返し実行して、ネットワーククロックのカウント値（Ｓ＿ＮｅｔＣｋ）を取得する。
【０１３４】
ネットワーククロックのカウント値（Ｓ＿ＮｅｔＣｋ）と測定開始時刻（Ｔｓｔｔ）とが一致すると、ステップＳＴ４１４で、「データサンプリング開始フラグ」を１にセットして、この測定開始処理を終了する。
【０１３５】
図１２は、測定開始時刻（Ｔｓｔｔ）とネットワーククロックのカウント値（Ｓ＿ＮｅｔＣｋ）との差分（Ｔｓｔｔｄｉｆｆ）を算出し、この差分（Ｔｓｔｔｄｉｆｆ）を制御系ＣＰＵ２１の内部クロック基準で計時して、測定を開始させる処理フローである。
【０１３６】
図１１のステップＳＴ４１０〜ＳＴ４１２と同じく、ステップＳＴ４２０で、「測定開始フラグ」が「１」にセットされたことを検知すると、次のステップＳＴ４２１で、次の測定開始処理に備えて「測定開始フラグ」をクリア「０」としたうえで、ステップＳＴ４２２で、ネットワーククロックカウンタ２２２から現在のネットワーククロックのカウント値（Ｓ＿ＮｅｔＣｋ）を取得する。
【０１３７】
そして、ステップＳＴ４２３で、測定開始時刻（Ｔｓｔｔ）とネットワーククロックのカウント値（Ｓ＿ＮｅｔＣｋ）との差分（Ｔｓｔｔｄｉｆｆ）を算出し、この差分（Ｔｓｔｔｄｉｆｆ）から制御系ＣＰＵ２１の内部クロック基準の時間差（ＣＮＴｓｔｔｄｉｆｆ）を計算する。この時間差（ＣＮＴｓｔｔｄｉｆｆ）は、差分（Ｔｓｔｔｄｉｆｆ）に相当する制御系ＣＰＵ２１の内部クロックの計数値である。
【０１３８】
続くステップＳＴ４２４で、計数カウンタ２１ｂにて制御系ＣＰＵ２１の内部クロックのカウントを開始させる。なお、ここで用いる内部クロックは、制御系ＣＰＵ２１のシステムクロックを所定の分周したクロックであってもよい。
【０１３９】
そのカウント値の変数を（ＩｎｔＣｎｔ）として、ステップＳＴ４２５で、カウント値（ＩｎｔＣｎｔ）が差分（Ｔｓｔｔｄｉｆｆ）になるまで待ち、（ＩｎｔＣｎｔ）＝（Ｔｓｔｔｄｉｆｆ）になった時点、すなわち測定開始時刻（Ｔｓｔｔ）になった時点で、ステップＳＴ４２６で、「データサンプリング開始フラグ」を１にセットし、計数カウンタ２１ｂのカウント値（ＩｎｔＣｎｔ）をクリア（ＩｎｔＣｎｔ＝０）して、この測定開始処理を終了する。
【０１４０】
次に、図１３を参照して、この第２実施形態におけるスレーブ機器２０のデータサンプリング処理フローについて説明する。このデータサンプリング処理は、図１１もしくは図１２の測定開始処理後に実行される。
【０１４１】
まず、ステップＳＴ５０１で、「データサンプリング開始フラグ」が「１」にセットされたことを検知すると、次のステップＳＴ５０２で、次のデータサンプリング処理に備えて「データサンプリング開始フラグ」をクリア「０」としたうえで、ステップＳＴ５０３で、アドレスカウンタ２１ａに書き込まれる測定データのアドレス番号（ＡＤＲｃｎｔ）に、マスタ機器１０から送信された測定開始データ番号（ＳＮｓｔｔ）をセットして、（ＡＤＲｃｎｔ）＝（ＳＮｓｔｔ）とする。通常は、（ＳＮｓｔｔ）＝０であるから、（ＡＤＲｃｎｔ）にも「０」が書き込まれる。
【０１４２】
そして、ステップＳＴ５０４で、計数カウンタ２１ｂのカウント値（ＩｎｔＣｎｔ）をクリア（ＩｎｔＣｎｔ＝０）したのち、ステップＳＴ５０５で、「サンプリング同期フラグ」が「１」にセットされているかどうかの判断が行われる。
【０１４３】
まず、ステップＳＴ５０５での判断がＮＯで、「サンプリング同期フラグ」がセットされていない場合について説明する。この場合には、ステップＳＴ５０６ａで、サンプリング間隔（Ｔｓａｍｐ）を、制御系ＣＰＵ２１の内部クロック基準の時間差（ＣＮＴｓａｍｐｉｎｔｖ）として計算する。換言すれば、サンプリング間隔（Ｔｓａｍｐ）が、制御系ＣＰＵ２１の内部クロックのカウント値で何カウントに相当するかを計算する。
【０１４４】
そして、ステップＳＴ５０６ｂで、時間差（ＣＮＴｓａｍｐｉｎｔｖ）をカウント変数値（ＣＮＴｉｎｔｄｉｆｆ）に置き換えて、ステップＳＴ５０８に移行して、計数カウンタ２１ｂで内部クロックのカウントを開始させる。
【０１４５】
カウント開始に伴い、ステップＳＴ５０９で、第１回目の測定データをサンプリングし、ステップＳＴ５１０で、その測定データを書込アドレスＡＤＲｗｒ＝ＡＤＲｃｎｔとして制御系ＣＰＵ２１の内部メモリに書き込み、ステップＳＴ５１１で、アドレスカウンタ２１ａのアドレス番号（ＡＤＲｃｎｔ）をカウントアップ（ＡＤＲｃｎｔ＝ＡＤＲｃｎｔ＋１）する。
【０１４６】
そして、ステップＳＴ５１２で、先のステップＳＴ５０８でカウントを開始させた計数カウンタ２１ｂのカウント値（ＩｎｔＣｎｔ）が、時間差（ＣＮＴｓａｍｐｉｎｔｖ）に相当するカウント変数値（ＣＮＴｉｎｔｄｉｆｆ）になるまで待ち、（ＩｎｔＣｎｔ）＝（ＣＮＴｉｎｔｄｉｆｆ）になった時点で、ステップＳＴ５１３で、「測定終了フラグ」が「１」にセットされているかどうかを判断する。
【０１４７】
その結果がＮＯで「測定終了フラグ」が「１」にセットされていなければ、データサンプリング続行として、ステップＳＴ５０４に戻り、ステップＳＴ５０５を経てステップＳＴ５０６に至り、「サンプリング同期フラグ」がセットされていなければ、上記と同様に、ステップＳＴ５０６ａ→ＳＴ５０６ｂ→ＳＴ５０８〜ＳＴ５１２の手順を実行し、ステップＳＴ５０９で第２回目の測定データをサンプリングする。これを「測定終了フラグ」が「１」にセットされるまで繰り返す。
【０１４８】
これに対して、ステップＳＴ５０５での判断がＹＥＳで、「サンプリング同期フラグ」がセットされている場合には、ステップＳＴ５０７ａに移行し、ネットワーククロックカウンタ２２２から現在のネットワーククロックのカウント値（Ｓ＿ＮｅｔＣｋ）を取得する。
【０１４９】
そして、次段のステップＳＴ５０７ｂで、マスタ機器１０から送信された補正をかける時刻（ネットワーククロック値（Ｔｓｙｎｃ））と、現在のネットワーククロックのカウント値（Ｓ＿ＮｅｔＣｋ）との差分（Ｔｓｙｎｃｄｉｆｆ）を算出し、この差分（Ｔｓｙｎｃｄｉｆｆ）から制御系ＣＰＵ２１の内部クロック基準の時間差（ＣＮＴｓｙｎｃｄｉｆｆ）を求める。すなわち、現在時点から何秒後に、サンプリング補正としての同期をかけるかの時間を算出する。
【０１５０】
次に、ステップＳＴ５０７ｃで、時間差（ＣＮＴｓｙｎｃｄｉｆｆ）を、上記ステップＳＴ５０６ｂと同じく、カウント変数値（ＣＮＴｉｎｔｄｉｆｆ）に置き換えたのち、上記ステップＳＴ５０８以降を実行する。
【０１５１】
その過程の中で、ステップＳＴ５０９で、測定データをサンプリングし、ステップＳＴ５１２で、（ＩｎｔＣｎｔ）＝（ＣＮＴｉｎｔｄｉｆｆ）になった時点（Ｔｓｙｎｃ時点）で、次のデータサンプリングを行うため、ステップＳＴ５１３経て、ステップＳＴ５０４に戻り（ＩｎｔＣｎｔ＝０）としたうえで、ステップＳＴ５０８で、（ＩｎｔＣｎｔ）のカウントが開始される。このようにして、サンプリング同期補正が行われる。
【０１５２】
なお、ステップＳＴ５１３で、「測定終了フラグ」が「１」にセットされたと判断すると、ステップＳＴ５１４で、次のデータサンプリング処理に備えて、測定終了フラグをクリア「０」にして、当該データサンプリング処理を終了する。
【０１５３】
ここで、スレーブ機器２０Ａ，２０Ｂの２台を例にして、サンプリング同期を行わない場合と、サンプリング同期を行う場合とについて、図１５，図１６のタイミングチャートにより説明する。なお、スレーブ機器２０Ａの制御系ＣＰＵ２１の内部クロックをＣ１，スレーブ機器２０Ｂの制御系ＣＰＵ２１の内部クロックをＣ２とする。
【０１５４】
図１５は、上記ステップＳＴ５０４で、「サンプリング同期フラグ」がセットされてなく、ステップＳＴ５０６ａ，ＳＴ５０６ｂを辿る場合のタイミングチャートである。
【０１５５】
スレーブ機器２０Ａでは、上記ステップＳＴ５０６ａで説明したように、サンプリング間隔（Ｔｓａｍｐ）と内部クロックＣ１の時間差（ＣＮＴｓａｍｐｉｎｔｖ）として、サンプリング間隔（Ｔｓａｍｐ）を内部クロックＣ１基準のカウント値（ＣＮＴｉｎｔｄｉｆｆ）に変換する。
【０１５６】
同様に、スレーブ機器２０Ｂにおいても、サンプリング間隔（Ｔｓａｍｐ）と内部クロックＣ２の時間差（ＣＮＴｓａｍｐｉｎｔｖ）として、サンプリング間隔（Ｔｓａｍｐ）を内部クロックＣ２基準のカウント値（ＣＮＴｉｎｔｄｉｆｆ）に変換する。
【０１５７】
そして、スレーブ機器２０Ａ，２０Ｂともに、内部クロックＣ１，Ｃ２をカウントし、そのカウント値（ＩｎｔＣｎｔ）が、サンプリング間隔（Ｔｓａｍｐ）相当時間であるカウント値（ＣＮＴｉｎｔｄｉｆｆ）に達したときに、測定データのサンプリングを行う。
【０１５８】
しかしながら、内部クロックＣ１，Ｃ２相互間のずれにより、この例では、スレーブ機器２０Ａ側では、マスタ機器１０より指定されたサンプリング間隔（Ｔｓａｍｐ）よりも長い間隔で（遅れて）測定データをサンプリングし、これに対して、スレーブ機器２０Ｂ側では、サンプリング間隔（Ｔｓａｍｐ）よりも短い間隔で（速く）測定データをサンプリングしている。
【０１５９】
最初のサンプリング開始は同時に行われるが、２回目のサンプリング時におけるスレーブ機器２０Ａ側の誤差を（＋ｔｄｉｆｆ１），スレーブ機器２０Ｂ側の誤差を（−ｔｄｉｆｆ２）とすると、スレーブ機器２０Ａ，２０Ｂの相対誤差は（ｔｄｉｆｆ１＋ｔｄｉｆｆ２）で、この誤差はサンプリング回数が回を重ねるに連れて累積的に増加する。
【０１６０】
そこで、マスタ機器１０から、相対誤差（ｔｄｉｆｆ１＋ｔｄｉｆｆ２）が無視し得なくなる前に、スレーブ機器２０Ａ，２０Ｂに対して、同期コマンド（Ｓｙｎｃ）を送信する。これにより、スレーブ機器２０Ａ，２０Ｂ側に「サンプリング同期フラグ」がセットされ、上記ステップＳＴ５０７ａ〜ＳＴ５０７ｃまでが実行される。
【０１６１】
図１６は、このときのタイミングチャートであり、この例では、スレーブ機器２０Ａ，２０Ｂは、ともにｎ回目のサンプリングを行っており、次のｎ＋１回目のサンプリング時点で同期させることを意図して、マスタ機器１０は、ｎ＋１回目のサンプリング時点の時刻を補正をかける時刻（Ｔｓｙｎｃ）として、スレーブ機器２０Ａ，２０Ｂに送信する。
【０１６２】
すると、スレーブ機器２０Ａ，２０Ｂは、それぞれ、ネットワーククロックカウンタ２２２から現在のネットワーククロックのカウント値（Ｓ＿ＮｅｔＣｋ）を取得する。
【０１６３】
そして、スレーブ機器２０Ａ，２０Ｂは、（Ｔｓｙｎｃ）と（Ｓ＿ＮｅｔＣｋ）の差分（Ｔｓｙｎｃｄｉｆｆ）を算出し、その差分（Ｔｓｙｎｃｄｉｆｆ）をスレーブ機器２０Ａでは内部クロックＣ１でカウントし、スレーブ機器２０Ｂでは内部クロックＣ２でカウントする。
【０１６４】
スレーブ機器２０Ａで取得する現在のネットワーククロックのカウント値（Ｓ＿ＮｅｔＣｋ）と、スレーブ機器２０Ｂで取得する現在のネットワーククロックのカウント値（Ｓ＿ＮｅｔＣｋ）は異なるため、（Ｔｓｙｎｃ）に至るまでの時間もそれぞれ異なり、この例では、（Ｔｓｙｎｃ）に到達する時間がスレーブ機器２０Ｂの方がスレーブ機器２０Ａよりも長いが、その分、スレーブ機器２０Ｂの方が時間的に早く内部クロックのカウントを開始する。
【０１６５】
したがって、スレーブ機器２０Ａ，２０Ｂの各カウント値（ＩｎｔＣｎｔ）は、ほぼ同時に差分（Ｔｓｙｎｃｄｉｆｆ）に達することから、（Ｔｓｙｎｃ）で指定されたｎ＋１回目のサンプリングをほぼ同時に行うことになる。このようにして、スレーブ機器２０Ａ，２０Ｂのサンプリング同期がとられる。
【０１６６】
次に、図１４を参照して、この第２実施形態でのデータ送信処理フローについて説明する。
【０１６７】
まず、ステップＳＴ６０１で、「データ送信開始フラグ」が「１」にセットされていることを検知すると、ステップＳＴ６０２で、次のデータ送信処理に備えて「データ送信開始フラグ」をクリア「０」にしたうえで、ステップＳＴ６０３で、アドレスカウンタ２１ａに読み出しアドレスを設定する。
【０１６８】
すなわち、マスタ機器１０からデータ取得コマンド（Ｇｅｔｄａｔａ）として、取得する先頭データ番号（ＳＮｔｒｓｔｔ）と最終データ番号（ＳＮｔｒｓｔｏｐ）とが送信されてくるが、ステップＳＴ６０３では、アドレスカウンタ２１ａのアドレス番号（ＡＤＲｃｎｔ）に、取得する先頭データ番号（ＳＮｔｒｓｔｔ）をセットして、（ＡＤＲｃｎｔ）＝（ＳＮｔｒｓｔｔ）とする。
【０１６９】
そして、次段のステップＳＴ６０４で、制御系ＣＰＵの内部メモリに保存されている測定データを、アドレス番号（ＡＤＲｃｎｔ）にしたがって順次読み出し、ステップＳＴ６０５で、マスタ機器１０に送信し、その都度、ステップＳＴ６０６で、（ＡＤＲｃｎｔ）＝（ＳＮｔｒｓｔｏｐ）かどうかが判断される。
【０１７０】
その結果がＮＯで最終データに至っていなければ、ステップＳＴ６０６ａで、アドレスをカウントアップ（ＡＤＲｃｎｔ＝ＡＤＲｃｎｔ＋１）したうえで、ステップＳＴ６０４→ＳＴ６０５→ＳＴ６０６→ＳＴ６０６ａ→ステップＳＴ６０４を繰り返し実行する。
【０１７１】
そして、ステップＳＴ６０６で、（ＡＤＲｃｎｔ）＝（ＳＮｔｒｓｔｏｐ）になったと判断すると、当該データ送信処理を終了する。
【０１７２】
以上説明したように、本発明によれば、１台のマスタ機器１０と複数台のスレーブ機器２０とを無線ネットワークで接続してなる無線通信システムにおいて、マスタ機器１０にのみ内部時計を備える安価な構成でありながら、マスタ機器１０と各スレーブ機器２０との同期、また、各スレーブ機器２０相互間の同期を確実にとることができる。
【符号の説明】
【０１７３】
１０  マスタ機器
１１  制御系ＣＰＵ
１１ａ  データ番号カウンタ
１１ｂ  データ受信カウンタ
１１１  内部時計
１１２  外部インタフェース部
１２  モジュール内ＣＰＵ
１２１  無線通信送受信部
１２２  ネットワーククロックカウンタ
２０  スレーブ機器
２１  制御系ＣＰＵ
２１ａ  アドレスカウンタ
２１ｂ  計数カウンタ
２１１  マルチプレクサ
２１２  増幅器
２１３  Ａ／Ｄ変換器
２２  モジュール内ＣＰＵ
２２１  無線通信送受信部
２２２  ネットワーククロックカウンタ
【図１】
2014116811.tif 000003
【図２】
2014116811.tif 000004
【図３】
2014116811.tif 000005
【図４】
2014116811.tif 000006
【図５】
2014116811.tif 000007
【図６】
2014116811.tif 000008
【図７】
2014116811.tif 000009
【図８】
2014116811.tif 000010
【図９】
2014116811.tif 000011
【図１０】
2014116811.tif 000012
【図１１】
2014116811.tif 000013
【図１２】
2014116811.tif 000014
【図１３】
2014116811.tif 000015
【図１４】
2014116811.tif 000016
【図１５】
2014116811.tif 000017
【図１６】
2014116811.tif 000018
【図１７】
2014116811.tif 000019