(57)【要約】【課題】同期を行う頻度を高める。【解決手段】スレーブ制御装置１０の第１の比較部１０３は、差分部１０２により求められた時刻の差分が閾値記憶部１２２に記憶された閾値以下であるか否かを判定する。同期部１０４は、差分部１０２により求められた時刻の差分が閾値以下であると第１の比較部１０３によって判定された場合、時計部１３０により計時される時刻を受信部１０１により受信された時刻情報で示される時刻に同期させる。差分記憶部１２１は、差分部１０２により求められた時刻の差分を記憶する。第１の更新部１０５は、差分記憶部１２１に記憶されている時刻の差分のうちの所定数の時刻の差分のうちの最大の時刻の差分を閾値として差分記憶部１２１に記憶させ、閾値を更新する。【選択図】図１
2013167493.tif 000002
【特許請求の範囲】
【請求項１】
時刻を計時する時計部と、
外部装置から時刻情報を受信する受信部と、
前記受信部により受信された時刻情報で示される時刻と前記時計部で計時された時刻とのずれの量を求める取得部と、
ずれの量の許容範囲を示す情報を記憶する許容範囲情報記憶部と、
前記取得部により求められたずれの量が前記許容範囲情報記憶部に記憶された情報で特定される許容範囲内であるか否かを判定する判定部と、
前記取得部により求められたずれの量が許容範囲内であると前記判定部によって判定された場合、前記時計部により計時される時刻を前記受信部により受信された時刻情報で示される時刻に同期させる同期部と、
前記取得部により求められたずれの量を記憶するずれ量記憶部と、
前記ずれ量記憶部に記憶されているずれの量のうちの所定数のずれの量のうちの最大のずれの量に基づいて定められた範囲を許容範囲として前記許容範囲情報記憶部に記憶させ、許容範囲を更新する更新部と、
を備える制御装置。
【請求項２】
前記更新部は、前記ずれ量記憶部に記憶されている複数のずれの量であって、前記制御装置が起動された後の所定期間中に前記取得部により求められた所定数のずれの量のうちの最大のずれの量に基づいて定められた範囲を、許容範囲として前記許容範囲情報記憶部に記憶させる、
請求項１に記載の制御装置。
【請求項３】
前記更新部は、前記ずれ量記憶部に記憶されている複数のずれの量であって、最新を含む直近の所定数のずれの量のうちの最大のずれの量に基づいて定められた範囲を、許容範囲として前記許容範囲情報記憶部に記憶させる、
請求項１に記載の制御装置。
【請求項４】
前記許容範囲情報記憶部に記憶される許容範囲の限界範囲を記憶する限界範囲記憶部を備え、
前記更新部は、
最大のずれの量に基づいて定められた範囲が、前記限界範囲記憶部に記憶されている限界範囲を越える場合、最大のずれの量に基づいて定められた範囲を許容範囲として前記許容範囲情報記憶部に記憶させ、最大のずれの量に基づいて定められた範囲が前記限界範囲記憶部に記憶された限界範囲内の場合、前記限界範囲記憶部に記憶された限界範囲を許容範囲として前記許容範囲情報記憶部に記憶させる限界更新部、
を備える請求項１から３のいずれか一項に記載の制御装置。
【請求項５】
前記取得部は、
前記受信部により受信された時刻情報で示される時刻と前記時計部で計時された時刻との差分の絶対値を、ずれの量として求める、
請求項１から４のいずれか一項に記載の制御装置。
【請求項６】
前記取得部は、
前記受信部により受信された時刻情報で示される時刻と前記時計部で計時された時刻との差分の絶対値を取得し、前回取得した絶対値からの変化量の絶対値を、ずれの量として求める、
請求項１から４のいずれか一項に記載の制御装置。
【請求項７】
制御装置の制御方法であって、
前記制御装置が、外部装置から時刻情報を受信する受信ステップと、
前記制御装置が、前記受信ステップにより受信された時刻情報で示される時刻と時計部で計時された時刻とのずれの量を求める取得ステップと、
前記制御装置が、前記取得ステップにより求められたずれの量が、許容範囲情報記憶部に記憶された情報で特定される許容範囲内であるか否かを判定する判定ステップと、
前記制御装置が、前記取得ステップにより求められたずれの量が許容範囲内であると前記判定ステップによって判定された場合、前記時計部により計時される時刻を前記受信ステップにより受信された時刻情報で示される時刻に同期させる同期ステップと、
前記制御装置が、前記取得ステップにより求められたずれの量を記憶するずれ量記憶部に記憶されているずれの量のうちの所定数のずれの量のうちの最大のずれの量に基づいて定められた範囲を、許容範囲として前記許容範囲情報記憶部に記憶させ、許容範囲を更新する更新ステップと、
を備える制御方法。
【請求項８】
制御装置を制御するコンピュータに、
外部装置から時刻情報を受信する受信機能、
前記受信機能により受信された時刻情報で示される時刻と時計部で計時された時刻とのずれの量を求める取得機能、
前記取得機能により求められたずれの量が、許容範囲情報記憶部に記憶された情報で特定される許容範囲内であるか否かを判定する判定機能、
前記取得機能により求められたずれの量が許容範囲内であると前記判定機能によって判定された場合、前記時計部により計時される時刻を前記受信機能により受信された時刻情報で示される時刻に同期させる同期機能、
前記取得機能により求められたずれの量を記憶するずれ量記憶部に記憶されているずれの量のうちの所定数のずれの量のうちの最大のずれの量に基づいて定められた範囲を、許容範囲として前記許容範囲情報記憶部に記憶させ、許容範囲を更新する更新機能、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
制御装置と外部装置との動作のタイミングを一致させるために、制御装置の動作の際の基準として利用される時刻を計時する時計を、外部装置に備えられた時計の時刻に同期させるものとして、特許文献１に記載のスレーブクロック補正装置や特許文献２に記載の装置がある。
【０００３】
特許文献１に記載のスレーブクロック補正装置は、誤った時刻に同期することを防止するために、外部装置である加入者側通信装置から送信された時刻情報で示される時刻と自機の時計が計時している時刻との間に閾値以上となるずれが生じている場合には、時刻の同期を行わない。
【０００４】
また、特許文献２に記載の装置は、誤った時刻に同期することを防止するために、外部装置である装置から送信されたタイミングパケットの送信時間（送信時刻）と自機の時計が計時している時刻との間に閾値を超えるずれが生じている場合には、時刻の同期を行わない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１２４７５９号公報
【特許文献２】特開２００７−１７４６７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、特許文献１に記載のスレーブクロック補正装置は、許容できるずれか否かの判定に使用する閾値が固定値である。この固定値である閾値が、スレーブクロック補正装置の起動後の安定状態におけるずれを考慮して決定されている場合、閾値（許容値）以上のずれが発生し易いスレーブクロック補正装置の起動時から安定状態となるまでの間、スレーブクロック補正装置で時刻の同期が行われない場合が生じる。これにより、同期の機会が失われ、結果、同期を行う頻度が低くなるという問題点があった。
【０００７】
また、特許文献２に記載の装置は、許容できるずれか否かの判定に使用する閾値が過去の時刻のずれの平均値である。このため、前述同様、閾値を越えるずれが発生し易いスレーブクロック補正装置の起動時から安定状態となるまでの間、装置で時刻の同期が行われない場合が生じる。これにより、同期の機会が失われ、結果、同期を行う頻度が低くなるという問題点があった。
【０００８】
本発明は、上記実情に鑑みてなされたものであり、同期を行う頻度が高い制御装置、制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、この発明に係る制御装置の時計部は、時刻を計時する。受信部は、外部装置から時刻情報を受信する。取得部は、受信部により受信された時刻情報で示される時刻と時計部で計時された時刻とのずれの量を求める。許容範囲情報記憶部は、ずれの量の許容範囲を示す情報を記憶する。判定部は、取得部により求められたずれの量が許容範囲情報記憶部に記憶された情報で特定される許容範囲内であるか否かを判定する。同期部は、取得部により求められたずれの量が許容範囲内であると判定部によって判定された場合、時計部により計時される時刻を受信部により受信された時刻情報で示される時刻に同期させる。ずれ量記憶部は、取得部により求められたずれの量を記憶する。更新部は、ずれ量記憶部に記憶されているずれの量のうちの所定数のずれの量のうちの最大のずれの量に基づいて定められた範囲を許容範囲として許容範囲情報記憶部に記憶させ、許容範囲を更新する。
【発明の効果】
【００１０】
本発明によれば、固定値や時刻のずれの平均値を許容値として用いる従来のものと比較して、同期を行う頻度を高くできる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１に係る制御装置のブロック図である。
【図２】実施の形態１に係る同期更新処理を示すフローチャートである。
【図３】実施の形態１に係る記憶部に記憶される内容を示す図である。
【図４】本発明の実施の形態２に係る制御装置のブロック図である。
【図５】実施の形態２に係る同期更新処理を示すフローチャートである。
【図６】実施の形態２に係る記憶部に記憶される内容を示す図である。
【図７】本発明の実施の形態３に係る制御装置のブロック図である。
【図８】実施の形態３に係る同期更新処理を示すフローチャートである。
【図９】実施の形態３に係る記憶部に記憶される内容を示す図である。
【図１０】本発明の実施の形態４に係る制御装置のブロック図である。
【図１１】実施の形態４に係る同期更新処理を示すフローチャートである。
【図１２】実施の形態４に係る記憶部に記憶される内容を示す図である。
【発明を実施するための形態】
【００１２】
（実施の形態１）
以下、本発明の実施の形態１に係る通信システム１を、図１〜３を参照して説明する。
【００１３】
通信システム１は、図１に示すように、スレーブ制御装置１０と、マスタ制御装置６０と、を備えている。通信システム１は、スレーブ制御装置１０に内蔵された時計部１３０で計時される時刻を、マスタ制御装置６０に内蔵された時計部６１０で計時される時刻に同期させる。
【００１４】
スレーブ制御装置１０は、例えば、パーソナルコンピュータやプリンタである。スレーブ制御装置１０は、マスタ制御装置６０と通信可能に構成されている。スレーブ制御装置１０は、制御部１００と、記憶部１２０と、時計部１３０と、入力部１４０と、通信部１５０と、報知部１６０と、を備えている。
【００１５】
制御部１００は、スレーブ制御装置１０の制御を行うと共に時刻の同期に必要となる各種の演算を行う。制御部１００は、図示しないＣＰＵ（Central Processing Unit）と、ＲＯＭ（Read only Memory）と、ＲＡＭ（Random Access Memory）と、を備えている。
【００１６】
ＣＰＵは、ＲＯＭに格納されたプログラム（例えば、後述する図２に示す処理を実現するプログラム）を実行する。
【００１７】
また、ＣＰＵがＲＯＭに格納されたプログラムを実行することにより、制御部１００は、受信部１０１と、差分部１０２と、第１の比較部１０３と、同期部１０４と、第１の更新部１０５と、の機能を実現する。
【００１８】
受信部１０１は、時刻を示す時刻情報の送信要求をマスタ制御装置６０へ送信し、この送信要求に応じてマスタ制御装置６０から送信される時刻情報を受信する。
【００１９】
差分部１０２は、スレーブ制御装置１０に内蔵された時計部１３０から時刻情報を取得し、取得した時刻情報で示される時刻Ｒｏと、受信部１０１により受信された時刻情報の示す時刻Ｒｒとの差分（ずれの量）Ｄｒを求める。具体的には、差分部１０２は、時計部１３０から取得した時刻情報で示される時刻Ｒｏから、受信部１０１で受信された時刻情報の示す時刻Ｒｒを減算し、その後、減算値（Ｒｏ−Ｒｒ）の絶対値｜（Ｒｏ−Ｒｒ）｜を求めることで、時刻の差分Ｄｒを求める。
【００２０】
第１の比較部１０３は、差分部１０２で求められた時刻の差分Ｄｒと、閾値記憶部１２２に記憶された閾値（許容値）Ｄｔとを比較する。そして、第１の比較部１０３は、差分部１０２で求められた時刻の差分が、閾値記憶部１２２に記憶された閾値Ｄｔ以下（Ｄｒ≦Ｄｔ）である場合に（許容値以内となる場合に）、同期部１０４に、時計部１３０で計時されている時刻の補正を行わせる。ここで、閾値Ｄｔは、時刻の差分Ｄｒの許容範囲を規定している。
【００２１】
一方、第１の比較部１０３は、比較の結果、差分部１０２で求められた時刻の差分Ｄｒが、閾値記憶部１２２に記憶された閾値Ｄｔを越える場合には（許容値を超える場合には）、同期部１０４に、時刻の補正を行わせない。
【００２２】
これは、例えば、時刻情報を受信したスレーブ制御装置１０に一時的な負荷の増大等の何らかの障害が発生し、時刻情報の受信遅延が発生している可能性があり、このときに同期部１０４による時刻の補正を行うと、時計部１３０により計時されている時刻に、発生した遅延が反映され、結果、時計部１３０により計時されている時刻が誤った時刻に同期するためである。
【００２３】
同期部１０４は、差分部１０２で求められた減算値（Ｒｏ−Ｒｒ）を用いて、時計部１３０で計時されている時刻Ｒｏを補正し、時計部１３０で計時されている時刻Ｒｏとマスタ制御装置６０の時計部６１０で計時されている時刻Ｒｒとを同期させる。具体的には、同期部１０４は、差分部１０２で求められた減算値（Ｒｏ−Ｒｒ）が正値である場合（時計部１３０で計時される時刻Ｒｏがマスタ制御装置６０で計時される時刻Ｒｒよりも進んでいる場合）、時計部１３０で計時されている時刻Ｒｏから減算値（Ｒｏ−Ｒｒ）を引く。一方、同期部１０４は、差分部１０２で求められた減算値（Ｒｏ−Ｒｒ）が負値である場合（時計部１３０で計時される時刻Ｒｏがマスタ制御装置６０で計時される時刻Ｒｒよりも遅れている場合）、時計部１３０で計時されている時刻Ｒｏに減算値（Ｒｏ−Ｒｒ）を足す。このようにして、同期部１０４は、時計部１３０で計時されている時刻Ｒｏを補正し、時計部１３０で計時されている時刻Ｒｏとマスタ制御装置６０の時計部６１０で計時されている時刻Ｒｒとを同期させる。
【００２４】
第１の更新部１０５は、同期部１０４による時刻の同期が、スレーブ制御装置１０の起動後、所定回数行われると、同期部１０４による同期に用いられた所定回数分の時刻の差分Ｄｒから最大値Ｄｍを検索し、検索した最大値Ｄｍを、閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値（許容値）Ｄｔを更新する。
【００２５】
この第１の更新部１０５による閾値（許容値）Ｄｔの更新により、スレーブ制御装置１０の起動時における時刻の差分Ｄｒのバラツキであるにも関わらず、言い換えれば、何らかの障害により発生した遅延による時刻の差分Ｄｒのバラツキでないにも関わらず、スレーブ制御装置１０でエラーとなることを防止することで、スレーブ制御装置１０の起動時に同期の機会が失われることを防止し、結果、固定値や時刻の差分の平均値を閾値として用いる従来のものと比較して、スレーブ制御装置１０で実行される同期の頻度を高くすることができる。
【００２６】
記憶部１２０は、例えばフラッシュメモリである。記憶部１２０は、差分記憶部１２１と、閾値記憶部１２０と、を備えている。
【００２７】
差分記憶部１２１は、同期部１０４による時刻の同期が行われる度に、差分部１０２で求められた時刻の差分Ｄｒを、既に記憶しているものを保持した上で、記憶する。具体的には、差分記憶部１２１は、スレーブ制御装置１０に内蔵された時計部１３０の示す時刻Ｒｏから、受信部１０１により受信された時刻情報の示す時刻（マスタ制御装置６０で計時される時刻）Ｒｒを減算した減算値（Ｒｏ−Ｒｒ）の絶対値（｜（Ｒｏ−Ｒｒ）｜）を、少なくとも５つ記憶する。差分記憶部１２１に記憶された時刻の差分Ｄｒ（＝｜（Ｒｏ−Ｒｒ）｜）は、第１の更新部１０５による最大値Ｄｍの検索に用いられる。
【００２８】
閾値記憶部１２２は、差分部１０２で求められた時刻の差分の許容値（閾値）Ｄｔを記憶する。閾値記憶部１２２には、同期部１０４による時刻の同期が所定回数行われた場合には、第１の更新部１０５によって検索された最大値Ｄｍが記憶されるが、同期部１０４による時刻の同期が所定回数に満たない場合は、入力部１４０の操作によりユーザによって設定された設定値が記憶される。
【００２９】
時計部１３０は、スレーブ制御装置１０の動作の際の基準として利用される時刻を計時する。時計部１３０により計時される時刻Ｒｏは、同期部１０４によって、マスタ制御装置６０の時計部６１０で計時されている時刻Ｒｒに同期される。
【００３０】
入力部１４０は、例えば、キーボードである。入力部１４０をユーザが操作することで、閾値記憶部１２２に記憶させる設定値の決定等を、スレーブ制御装置１０に指示することができる。
【００３１】
通信部１５０は、例えば、通信インターフェイスであり、ケーブル７０を介して、マスタ制御装置６０との通信を媒介する。通信部１５０を介して、受信部１０１は、時刻を示す時刻情報の送信要求をマスタ制御装置６０へ送信すると共に、マスタ制御装置６０から送信された時刻情報を受信する。
【００３２】
報知部１６０は、例えば、ディスプレイやスピーカである。報知部１６０は、同期部１０４による時刻の同期が行われない場合、ディスプレイやスピーカにより、エラーを示す報知を行う。
【００３３】
バスラインＢＬは、制御部１００と、記憶部１２０と、時計部１３０と、入力部１４０と、通信部１５０と、を相互に接続する。
【００３４】
マスタ制御装置６０は、例えば、ホストコンピュータである。スレーブ制御装置１０と通信可能に構成されている。マスタ制御装置６０は、制御部６００と、時計部６１０と、通信部６２０と、を備えている。
【００３５】
制御部６００は、マスタ制御装置６０の制御を行う。具体的には、制御部６００は、スレーブ制御装置１０から送信される時刻情報の送信要求を受信した場合、時計部６１０から時刻情報を取得し、取得した時刻情報を、スレーブ制御装置１０へ送信する。
【００３６】
時計部６１０は、時計部１３０よりも時刻の計時が高精度なものである。時計部６１０は、時計部１３０で計時されている時刻Ｒｏと同期させる時刻Ｒｒを計時する。
【００３７】
通信部６２０は、例えば、通信インターフェイスであり、ケーブル７０を介して、スレーブ制御装置１０との通信を媒介する。通信部６２０を介して、制御部６００は、スレーブ制御装置１０から送信された時刻情報の送信要求を受信すると共に、時計部６１０から取得した時刻情報をスレーブ制御装置１０へ送信する。
【００３８】
バスラインＢＬは、制御部６００と、時計部６１０と、通信部６２０と、を相互に接続する。
【００３９】
上述したスレーブ制御装置１０は、図２に示す同期更新処理を実行する。同期更新処理は、時計部１３０で計時されている時刻Ｒｏをメイン制御装置６０の時計部６１０で計時されている時刻Ｒｒに同期させると共に、閾値記憶部１２２に記憶された閾値Ｄｔを更新する処理である。
【００４０】
同期更新処理は、スレーブ制御装置１０が電源オフ状態から電源オン状態に切り換えられた場合、即ち、スレーブ制御装置１０が起動された場合に開始される。開始後、同期更新処理は、定期的に（例えば、５分毎に）繰り返し実行される。
【００４１】
なお、本実施の形態の同期更新処理の実行開始時、閾値記憶部１２２には、ユーザによって設定された設定値である「２０μＳ」が閾値（許容値）として記憶される。この設定値は、同期更新処理が複数回実行され、同期部１０４による時刻の同期が５回行われると、第１の更新部１０５によって更新される。
【００４２】
また、本実施の形態の同期更新処理の実行開始時、同期部１０４で同期が行われた回数を示す変数ｎに「１」が記憶される。この変数ｎは、制御部１００が備えるＲＡＭに記憶される。
【００４３】
スレーブ制御装置１０が起動され、同期更新処理が開始されると、まず、制御部１００（受信部１０１）は、時刻を示す時刻情報の送信要求を、通信部１５０を介してマスタ制御装置６０へ送信する（ステップＳ１）。
【００４４】
その後、制御部１００（受信部１０１）は、通信部１５０を介して、マスタ制御装置６０から時刻情報を受信したか否かを判定する（ステップＳ２）。
【００４５】
制御部１００（受信部１０１）は、時刻情報を受信していないと判定すると（ステップＳ２：Ｎｏ）、時刻情報を受信するまで、ステップＳ２を繰り返し実行する。
【００４６】
一方、制御部１００（受信部１０１）で時刻情報を受信したと判定すると（ステップＳ２：Ｙｅｓ）、ステップＳ３へ移行する。ステップＳ３では、制御部１００（差分部１０２）は、スレーブ制御装置１０に内蔵された時計部１３０から時刻情報を取得し、取得した時刻情報の示す時刻Ｒｏから、受信部１０１により受信された時刻情報の示す時刻Ｒｒを減算して減算値（Ｒｏ−Ｒｒ）を求め、その後、減算値の絶対値（｜（Ｒｏ−Ｒｒ）｜）を求めることで、時刻の差分Ｄｒを求める（ステップＳ３）。
【００４７】
その後、制御部１００（第１の比較部１０３）は、差分部１０２で求められた時刻の差分Ｄｒと、閾値記憶部１２２に記憶された閾値（許容値）Ｄｔとを比較し、時刻の差分Ｄｒが閾値Ｄｔ以下であるか（Ｄｒ≦Ｄｔであるか）を判定する（ステップＳ４）。
【００４８】
制御部１００（第１の比較部１０３）は、差分部１０２で求められた時刻の差分Ｄｒが、閾値記憶部１２２に記憶された閾値Ｄｔ以下である場合には（ステップＳ４：Ｙｅｓ）、ステップＳ５以降へ移行し、同期部１０４に、時計部１３０で計時されている時刻Ｄｒの補正を行わせる。
【００４９】
一方、制御部１００（第１の比較部１０３）は、差分部１０２で求められた時刻の差分Ｄｒが、閾値記憶部１２２に記憶された閾値Ｄｔを越える場合には（ステップＳ４：Ｎｏ）、エラーを示す報知を報知部１６０に実行させ（ステップＳ３０）、実行中の同期更新処理を終了する。つまり、制御部１００（第１の比較部１０３）は、差分部１０２で求められた時刻の差分Ｄｒが、閾値記憶部１２２に記憶された閾値Ｄｔを越える場合には（ステップＳ４：Ｎｏ）、同期部１０４に、時刻の補正を行わせない。
【００５０】
これは、例えば、時刻情報を受信したスレーブ制御装置１０に一時的な負荷の増大等の何らかの障害が発生し、時刻情報の受信遅延が発生している可能性があり、このときに同期部１０４による時刻の補正を行うと、時計部１３０により計時されている時刻に、発生した遅延が反映され、結果、時計部１３０により計時されている時刻が誤った時刻に同期するためである。
【００５１】
一方、制御部１００（第１の比較部１０３）によるステップＳ４の判定でＹｅｓと判定されると、制御部１００（同期部１０４）は、ステップＳ３で差分部１０２により求められた減算値の絶対値（｜（Ｒｏ−Ｒｒ）｜）である時刻の差分Ｄｒを差分記憶部１２１に記憶し（ステップＳ５）、時計部１３０で計時されている時刻Ｒｏを補正する（ステップＳ６）。
【００５２】
ステップＳ６では、制御部１００（同期部１０４）は、差分部１０２で求められた減算値（Ｒｏ−Ｒｒ）が正値である場合（時計部１３０で計時される時刻Ｒｏがマスタ制御装置６０で計時される時刻Ｒｒよりも進んでいる場合）、時計部１３０で計時されている時刻Ｒｏから減算値（Ｒｏ−Ｒｒ）を引く。一方、制御部１００（同期部１０４）は、差分部１０２で求められた減算値（Ｒｏ−Ｒｒ）が負値である場合（時計部１３０で計時される時刻Ｒｏがマスタ制御装置６０で計時される時刻Ｒｒよりも遅れている場合）、時計部１３０で計時されている時刻Ｒｏに減算値（Ｒｏ−Ｒｒ）を足す。このようにして、制御部１００（同期部１０４）は、時計部１３０で計時されている時刻Ｒｏを補正し、時計部１３０で計時されている時刻Ｒｏとマスタ制御装置６０の時計部６１０で計時されている時刻Ｒｒとを同期させる。
【００５３】
制御部１００（同期部１０４）による時刻の同期がステップＳ６で行われた後、制御部１００（第１の更新部１０５）は、変数ｎが５であるか否かを判定する（ステップＳ７）。
【００５４】
制御部１００（第１の更新部１０５）は、変数ｎが５でないと判定すると（ステップＳ７：Ｎｏ）、制御部１００（同期部１０４）で同期が行われた回数が、５回未満であることから、閾値記憶部１２２に記憶された閾値を更新するステップＳ８およびステップＳ９をスキップして、ステップＳ１０へ移行する。
【００５５】
ステップＳ１０では、制御部１００（第１の更新部１０５）は、変数ｎを１つ増加させた後（ステップＳ１０）、同期更新処理を終了する。
【００５６】
ここで、変数ｎが５未満である場合における閾値記憶部１２２に記憶された閾値Ｄｔ、時刻の差分Ｄｒ（ｎ）および差分記憶部１２１の記憶内容は、例えば、図３に示す通りとなる。なお、図３では、ステップＳ７実行直前の各値を示している。
【００５７】
変数（同期回数）ｎが１である場合、閾値記憶部１２２に記憶された閾値は、設定値である２０μＳであり、差分部１０２が求めた時刻の差分Ｄｒ（１）は、１８μＳであったとする。このとき、第１の比較部１０３はステップＳ４でＹｅｓと判定し（図２参照）、同期部１０４は、ステップＳ５で時刻の差分Ｄｒ（１）を差分記憶部１２１に記憶する。
【００５８】
次に、変数（同期回数）ｎがカウントアップされて２となった場合、閾値記憶部１２２に記憶された閾値は、設定値のままの２０μＳであり、差分部１０２が求めた時刻の差分Ｄｒ（２）は、１５μＳであったとする。このとき、第１の比較部１０３はステップＳ４でＹｅｓと判定し（図２参照）、同期部１０４は、時刻の差分Ｄｒ（２）を、時刻の差分Ｄｒ（１）を保持した上で、差分記憶部１２１に記憶する。
【００５９】
上述した動作を繰り返し、変数ｎが４となると、差分記憶部１２１には、時刻の差分Ｄｒ（１）〜Ｄｒ（４）が記憶される。
【００６０】
図２に示すステップＳ７で、制御部１００（第１の更新部１０５）は、変数ｎが５であると判定すると（ステップＳ７：Ｙｅｓ）、制御部１００（同期部１０４）で同期が行われた回数が５回であることから、閾値記憶部１２２に記憶された閾値を更新するステップＳ８およびステップＳ９へ移行する。
【００６１】
具体的には、制御部１００（第１の更新部１０５）は、差分記憶部１２１に記憶された５回分の時刻の差分Ｄｒ（１）〜Ｄｒ（５）から最大値Ｄｍを検索し（ステップＳ８）、検索した最大値Ｄｍを、閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値Ｄｔを更新する（ステップＳ９）。その後、制御部１００（第１の更新部１０５）は、変数ｎを１つ増加させて（ステップＳ１０）、同期更新処理を終了する。
【００６２】
ここで、変数ｎが５である場合および６以上である場合における閾値記憶部１２２に記憶された閾値Ｄｔ、時刻の差分Ｄｒ（ｎ）および差分記憶部１２１の記憶内容は、例えば、図３に示す通りとなる。
【００６３】
具体的には、変数（同期回数）ｎが５である場合、閾値記憶部１２２に記憶された閾値は、設定値のままの２０μＳであり、差分部１０２が求めた時刻の差分Ｄｒ（５）は、６μＳであったとする。このとき、第１の比較部１０３はステップＳ４でＹｅｓと判定し（図２参照）、同期部１０４は、ステップＳ５で、時刻の差分Ｄｒ（５）を、時刻の差分Ｄｒ（１）〜Ｄｒ（４）を保持した上で、差分記憶部１２１に記憶する。
【００６４】
ステップＳ６実行後、第１の更新部１０５は、ステップＳ７でＹｅｓと判定すると、ステップＳ８で、５回分の時刻の差分であるＤｒ（１）〜Ｄｒ（５）から、最大値Ｄｍを検索する。この結果、第１の更新部１０５は、時刻の差分が１８μＳであったＤｒ（１）を検索する。
【００６５】
その後、第１の更新部１０５は、ステップＳ９で、検索した時刻の差分Ｄｒ（１）を閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値Ｄｔを設定値である２０μＳから１８μＳへ更新する。ここで、変数（同期回数）ｎが６以上となる場合、ステップＳ７でＮｏと判定されることから（図２参照）、差分部１０２が求めた時刻の差分Ｄｒ（６以上）は、ステップＳ４で、１８μＳの閾値と比較され続ける。
【００６６】
なお、変数（同期回数）ｎがカウントアップされて９となり、このとき、時刻の差分Ｄｒ（９）が３０μＳであった場合、制御部１００は、閾値記憶部１２２に記憶された１８μＳの閾値よりも、時刻の差分Ｄｒ（９）が大きいことから、上述したステップＳ５〜ステップＳ１０（図２参照）をスキップする。つまり、３０μＳであった時刻の差分Ｄｒ（９）は、差分記憶部１２１に記憶されない。よって、図３に示すように、差分部１０２で次に求められた時刻の差分が１０μＳであった場合、これがＤｒ（９）として記憶される。
【００６７】
上述した通り、実施の形態１に係るスレーブ制御装置１０は、スレーブ制御装置１０が起動され、同期更新処理が開始されると、差分部１０２で時刻の差分（Ｒｏ−Ｒｒ）を求め、その差分が、閾値記憶部１２２に記憶された設定値以下である場合、同期部１０４で時刻の同期を行う。そして、スレーブ制御装置１０は、起動後、同期部１０４での時刻の同期を所定回数である５回行うと、同期に用いた所定回数分の時刻の差分Ｄｒから最大値Ｄｍを検索し、検索した最大値Ｄｍを、閾値記憶部１２２に記憶させて、閾値記憶部１２２に記憶された設定値を更新する。
【００６８】
このように、スレーブ制御装置１０は、閾値記憶部１２２に記憶された閾値Ｄｔ（設定値）を更新する場合、マスタ制御装置６０との時刻のずれが発生し易いスレーブ制御装置１０の起動時における所定回数分（５回分）の時刻の差分Ｄｒを用い、時刻の差分Ｄｒのうちの最大値を、更新後の閾値Ｄｔとしている。言い換えれば、更新後の閾値Ｄｔを、スレーブ制御装置１０の起動時におけるバラツキ（安定状態となる以前のバラツキ）を含んだ時刻の差分Ｄｒのうちの最大値としている。よって、スレーブ制御装置１０で使用される更新後の閾値Ｄｔを、起動時における時刻の差分Ｄｒの最も大きいバラツキを反映させたものとすることができる。従って、スレーブ制御装置１０の起動時における時刻の差分Ｄｒのバラツキであるにも関わらず、言い換えれば、何らかの障害により発生した遅延による時刻の差分Ｄｒのバラツキでないにも関わらず、スレーブ制御装置１０でエラーとなることを防止することで、スレーブ制御装置１０の起動時に同期の機会が失われることを防止し、結果、固定値や時刻の差分の平均値を閾値として用いる従来のものと比較して、スレーブ制御装置１０で実行される同期の頻度を高くすることができる。
【００６９】
また、スレーブ制御装置１０は、前述の通り、更新後の閾値Ｄｔを、起動時におけるバラツキを含んだ時刻の差分Ｄｒのうちの最大値としている。よって、何らかの障害により発生した遅延を含む異常値が時刻の同期に用いられるような不必要に大きな閾値が、更新後の閾値Ｄｔとなることを防止できる。従って、障害における異常値が時刻の同期に使用され、スレーブ制御装置１０の時計部１３０が誤った同期になることを防止できる。
【００７０】
（実施の形態２）
次に、本発明の実施の形態２に係る通信システム２を、図４〜図６を参照して説明する。通信システム２は、実施の形態１の通信システム１で使用されたスレーブ制御装置１０の構成および処理の一部を変更して、スレーブ制御装置２０としたものである。よって、スレーブ制御装置２０では、スレーブ制御装置１０と同一の構成・同一の処理については同一の番号を付して、その説明を省略する。
【００７１】
通信システム２は、スレーブ制御装置２０と、マスタ制御装置６０と、を備えている。
【００７２】
スレーブ制御装置２０は、スレーブ制御装置１０と同様、例えば、パーソナルコンピュータやプリンタである。スレーブ制御装置２０は、スレーブ制御装置１０の第１の比較部１０３および第１の更新部１０５を、それぞれ、第２の比較部１０７および第２の更新部１０８へ変更したものである。更に、スレーブ制御装置２０は、スレーブ制御装置１０に変化部１０６を追加したものである。
【００７３】
また、スレーブ制御装置２０は、実施の形態１のスレーブ制御装置１０に、初期時閾値記憶部１２３および変化記憶部１２４を追加したものである。
【００７４】
上述の変化部１０６、第２の比較部１０７および第２の更新部１０８は、制御部１００の備えるＣＰＵがＲＯＭに格納されたプログラムを実行することにより実現される機能である。
【００７５】
変化部１０６は、差分部１０２で求められた最新の時刻の差分Ｄｒ（ｎ：ｎは１以上の自然数）とから、差分部１０２で前回求められた時刻の差分Ｄｒ（ｎ−１）（差分記憶部１２１に記憶された時刻の差分）とから、時刻の差分が変化した分の絶対値である差分の変化分（ずれの量）Ｈｒを求める。なお、差分部１０２で求められた時刻の差分Ｄｒが１回分だけであり、差分記憶部１２１に未だ時刻の差分が記憶されていない場合、変化部１０６は差分の変化分Ｈｒを求めることができない。よって、変化部１０６は、１回目に求めた差分の変化分Ｈｒを「ＮＵＬＬ」とする。
【００７６】
第２の比較部１０７は、変化部１０６で求められた差分の変化分Ｈｒと、閾値記憶部１２２に記憶された閾値（許容値）Ｄｔとを比較する。そして、第２の比較部１０７は、変化部１０６で求められた差分の変化分Ｈｒが、閾値記憶部１２２に記憶された閾値Ｄｔ以下（Ｈｒ≦Ｄｔ）である場合に（許容値以内となる場合に）、同期部１０４に、時計部１３０で計時されている時刻の補正を行わせる。つまり、閾値Ｄｔは、差分の変化分Ｈｒの許容範囲を規定している。
【００７７】
一方、第２の比較部１０７は、変化部１０６で求められた差分の変化分Ｈｒが、閾値記憶部１２２に記憶された閾値Ｄｔを越える場合には（許容値を超える場合には）、同期部１０４に、時刻の補正を行わせない。
【００７８】
これは、前述の通り、例えば、時刻情報を受信したスレーブ制御装置２０に一時的な負荷の増大等の何らかの障害が発生し、時刻情報の受信遅延が発生している可能性があり、このときに同期部１０４による時刻の補正を行うと、時計部１３０により計時されている時刻に、発生した遅延が反映され、結果、時計部１３０により計時されている時刻が誤った時刻に同期するためである。
【００７９】
なお、第２の比較部１０７は、変化部１０６が求めた差分の変化分Ｈｒが「ＮＵＬＬ」の場合（１回目に求めた差分の変化分Ｈｒである場合）、差分の変化分Ｈｒと閾値Ｄｔとの比較を行えないので、閾値Ｄｔとの比較には、差分部１０２で求められた時刻の差分Ｄｒを用いる。
【００８０】
第２の更新部１０８は、同期部１０４による時刻の同期が、スレーブ制御装置２０の起動後、所定回数行われると、変化部１０６で求められた所定回数分の差分の変化分Ｈｒから最大値Ｈｍを検索し、検索した最大値Ｈｍを、閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値（許容値）Ｄｔを更新する。
【００８１】
この第２の更新部１０８による閾値（許容値）Ｄｔの更新により、スレーブ制御装置２０の起動時における時刻の差分Ｄｒのバラツキに伴う差分の変化分Ｈｒのバラツキであるにも関わらず、言い換えれば、何らかの障害により発生した遅延による差分の変化分Ｈｒのバラツキでないにも関わらず、スレーブ制御装置２０でエラーとなることを防止することで、スレーブ制御装置２０の起動時に同期の機会が失われることを防止し、結果、固定値や時刻の差分の平均値を閾値として用いる従来のものと比較して、スレーブ制御装置２０で実行される同期の頻度を高くすることができる。
【００８２】
初期時閾値記憶部１２３は、変化部１０６が求めた２回目〜所定回数目における差分の変化分Ｈｒと比較される閾値（許容値）Ｄｔｓを記憶する。
【００８３】
変化記憶部１２４は、変化部１０６で求められた差分の変化分Ｈｒ、具体的には、差分部１０２で求められた最新の時刻の差分と、差分部１０２で前回求められた時刻の差分との変化分Ｈｒを、既に記憶しているものを保持した上で、記憶する。具体的には、変化記憶部１２４は、差分の変化分Ｈｒを、少なくとも５つ記憶する。変化記憶部１２４に記憶された差分の変化分Ｈｒは、第２の更新部１０８による最大値の検索に用いられる。
【００８４】
上述したスレーブ制御装置２０は、図４に示す同期更新処理を実行する。この同期更新処理は、実施の形態１のスレーブ制御装置１０で実行される同期更新処理の一部を変更したものである。よって、スレーブ制御装置３０の同期更新処理では、スレーブ制御装置１０の同期更新処理と同一の処理については同一の番号を付して、その説明を省略する。
【００８５】
同期更新処理は、時計部１３０で計時されている時刻Ｒｏをメイン制御装置６０の時計部６１０で計時されている時刻Ｒｒに同期させると共に、閾値記憶部１２２に記憶された閾値Ｄｔを更新する処理である。
【００８６】
同期更新処理は、スレーブ制御装置２０が電源オフ状態から電源オン状態に切り換えられた場合、即ち、スレーブ制御装置２０が起動された場合に開始される。開始後、同期更新処理は、定期的に（例えば、５分毎に）繰り返し実行される。
【００８７】
なお、本実施の形態の同期更新処理の実行開始時、閾値記憶部１２２には、差分部１０２により求められた時刻の差分との比較に用いる設定値である「２０μＳ」が閾値（許容値）として記憶される。また、同期部１０４で同期が行われた回数を示す変数ｎには「１」が記憶される。この変数ｎは、前述の通り、制御部１００が備えるＲＡＭに記憶される。
【００８８】
また、同期更新処理の実行開始時、初期時閾値記憶部１２３には１０μＳが記憶されている。
【００８９】
スレーブ制御装置２０が起動されて、同期更新処理が開始され、ステップＳ１〜ステップＳ３の実行後、制御部１００（変化部１０６）は、差分部１０２で求められた最新の時刻の差分Ｄｒ（ｎ）と、差分部１０２で前回求められた時刻の差分（差分記憶部１２１に記憶された時刻の差分）Ｄｒ（ｎ−１）とから、時刻の差分の変化分（Ｄｒ（ｎ）−Ｄ（ｎ−１））を求め、求めた変化分の絶対値である差分の変化分Ｈｒ（ｎ）を求める（ステップＳ１１）。
【００９０】
その後、制御部１００（第２の比較部１０７）は、変化部１０６で求められた差分の変化分Ｈｒ（ｎ）と、閾値記憶部１２２に記憶された閾値（許容値）Ｄｔとを比較し、変化部１０６で求められた差分の変化分Ｈｒ（ｎ）が、閾値記憶部１２２に記憶された閾値Ｄｔ以下（Ｈｒ（ｎ）≦Ｄｔ）であるかを判定する（ステップＳ１２）。制御部１００（第２の比較部１０７）は、変化部１０６で求められた差分の変化分Ｈｒ（ｎ）が、閾値記憶部１２２に記憶された閾値Ｄｔ以下（Ｈｒ（ｎ）≦Ｄｔ）である場合（ステップＳ１２：Ｙｅｓ）、ステップＳ１３以降に移行し、同期部１０４に、時計部１３０で計時されている時刻の同期を行わせる。
【００９１】
一方、制御部１００（第２の比較部１０７）は、変化部１０６で求められた差分の変化分Ｈｒ（ｎ）が、閾値記憶部１２２に記憶された閾値Ｄｔを越える場合には（ステップＳ１２：Ｎｏ）、ステップＳ３０へ移行して、同期部１０４に、時刻の補正を行わせない。
【００９２】
これは、前述の通り、時計部１３０により計時されている時刻に、発生した遅延が反映され、結果、時計部１３０により計時されている時刻が誤った時刻に同期するためである。
【００９３】
ここで、ステップＳ１１において、制御部１００（変化部１０６）によって求められた差分の変化分Ｈｒが「ＮＵＬＬ」の場合（１回目に求めた差分の変化分Ｈｒ（１）である場合）、制御部１００（第２の比較部１０７）は、差分の変化分Ｈｒ（１）と閾値Ｄｔとを比較するのではなく、閾値Ｄｔとの比較には、差分部１０２で求められた時刻の差分Ｄｒ（１）を用いる。このとき、時刻の差分Ｄｒ（１）と比較されるのは、同期更新処理の実行開始時に閾値記憶部１２２に記憶された設定値である２０μＳである。
【００９４】
ステップＳ１２で、制御部１００（第２の比較部１０７）は、Ｎｏと判定すると、エラーを示す報知を報知部１６０に実行させ（ステップＳ３０）、その後、誤った同期を防止するため、実行中の同期更新処理を終了する。
【００９５】
一方、ステップＳ１２で、制御部１００（第２の比較部１０７）は、Ｙｅｓと判定すると、ステップＳ１３へ移行する。ステップＳ１３では、制御部１００（同期部１０４）は、差分の変化分Ｈｒ（ｎ）を変化記憶部１２４に記憶する（ステップＳ１３）。
【００９６】
その後、制御部１００（同期部１０４）は、ステップＳ３で差分部１０２により求められた減算値（Ｒｏ−Ｒｒ）の絶対値（｜（Ｒｏ−Ｒｒ）｜）である時刻の差分Ｄ（ｎ）を差分記憶部１２１に記憶し、時計部１３０で計時されている時刻Ｒｏを補正して、時計部１３０で計時されている時刻Ｒｏとマスタ制御装置６０の時計部６１０で計時されている時刻Ｒｒとを同期させる（ステップＳ１４）。このステップＳ１４の処理内容は、ステップＳ６の処理内容と同様である。
【００９７】
制御部１００（同期部１０４）による時刻の同期がステップＳ１４で行われた後、制御部１００（第２の更新部１０８）は、変数ｎが１であるか否かを判定する（ステップＳ１５）。
【００９８】
制御部１００（第２の更新部１０８）は、変数ｎが１であると判定すると（ステップＳ１５：Ｙｅｓ）、差分記憶部１２１に時刻の差分Ｄｒが記憶され、次回以降、変化部１０６で差分の変化分Ｈｒを求めることができることから、時刻の差分Ｄｒとの比較用として閾値記憶部１２２に記憶された設定値２０μＳをクリアし、初期時閾値記憶部１２３に記憶された初期時用値（変化部１０６が求めた２回目〜所定回数目における差分の変化分と比較される閾値）を、閾値記憶部１２２に記憶する（ステップＳ１６）。具体的には、１０μＳが閾値記憶部１２２に記憶される。
【００９９】
一方、制御部１００（第２の更新部１０８）は、変数ｎが１でない、即ち、変数ｎが２以上であると判定すると（ステップＳ１５：Ｎｏ）、閾値記憶部１１２には既に初期時用値が記憶されていることから、ステップＳ１６をスキップして、ステップＳ７へ移行する。
【０１００】
その後、制御部１００（第２の更新部１０８）は、変数ｎが５であるか否かを判定する（ステップＳ７）。
【０１０１】
制御部１００（第２の更新部１０８）は、変数ｎが５でないと判定すると（ステップＳ７：Ｎｏ）、制御部１００（同期部１０４）で同期が行われた回数が、５回未満であることから、閾値記憶部１２２に記憶された閾値を更新するステップＳ１７およびステップＳ９をスキップして、ステップＳ１０へ移行する。
【０１０２】
ステップＳ１０では、制御部１００（第２の更新部１０８）は、変数ｎを１つ増加させて（ステップＳ１０）、同期更新処理を終了する。
【０１０３】
ここで、変数ｎが５未満である場合における閾値記憶部１２２に記憶された閾値Ｄｔ、時刻の差分Ｄｒ（ｎ）、時刻の変化分Ｈｒ（ｎ）および差分記憶部１２１の記憶内容は、例えば、図６に示す通りとなる。なお、図６では、ステップＳ７実行直前の各値を示している。
【０１０４】
変数（同期回数）ｎが１である場合、閾値記憶部１２２に記憶された閾値は、２０μＳであり、差分部１０２が求めた時刻の差分Ｄｒ（１）は、１８μＳであったとする。このとき、差分の変化分Ｈ（１）はＮＵＬＬとなるため、ステップＳ１２では、時刻の差分Ｄｒ（１）と設定値である２０μＳとの比較が行われる。比較の結果、第２の比較部１０７はステップＳ１２でＹｅｓと判定し（図５参照）、同期部１０４はステップＳ１３で変化分Ｈｒ（１）を変化記憶部１２４に記憶する。
【０１０５】
次に、変数（同期回数）ｎがカウントアップされて２となった場合、ステップＳ１６が実行されていることから（図５参照）、閾値記憶部１２２に記憶された閾値Ｄｔは、初期時用値である１０μＳである。また、差分部１０２が求めた時刻の差分Ｄｒ（２）は、１５μＳであったとし、差分の変化分Ｈｒ（２）は、Ｄｒ（２）−Ｄｒ（１）の絶対値、即ち、３μＳであったとする。このとき、第２の比較部１０７はステップＳ１２でＹｅｓと判定し（図５参照）、同期部１０４は、差分の変化分Ｈｒ（２）を、差分の変化分Ｈｒ（１）（＝ＮＵＬＬ）を保持した上で、変化記憶部１２４に記憶する。
【０１０６】
上述した動作を繰り返し、変数ｎが４となると、変化記憶部１２４には、差分の変化分Ｈｒ（１）〜Ｈｒ（４）が記憶される。
【０１０７】
図５に示すステップＳ７で、制御部１００（第２の更新部１０８）は、変数ｎが５であると判定すると（ステップＳ７：Ｙｅｓ）、制御部１００（同期部１０４）で同期が行われた回数が５回であり所定回数を満たすことから、閾値記憶部１２２に記憶された閾値を更新するステップＳ１７およびステップＳ９へ移行する。
【０１０８】
具体的には、制御部１００（第２の更新部１０８）は、変化記憶部１２４に記憶された５回分の差分の変化分Ｈｒ（１）〜Ｈｒ（５）から最大値Ｈｍを検索し（ステップＳ１７）、検索した最大値Ｈｍを、閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値を更新する（ステップＳ９）。その後、制御部１００（第２の更新部１０８）は、変数ｎを１つ増加させて（ステップＳ１０）、同期更新処理を終了する。
【０１０９】
ここで、変数ｎが５である場合および６以上である場合における閾値記憶部１２２に記憶された閾値Ｄｔ、時刻の差分Ｄｒ（ｎ）および差分記憶部１２１の記憶内容は、例えば、図６に示す通りとなる。
【０１１０】
具体的には、変数（同期回数）ｎが５である場合、閾値記憶部１２２に記憶された閾値Ｄｔは、初期時用値の１０μＳである。また、差分部１０２が求めた時刻の差分Ｄｒ（５）は、６μＳであったとし、差分の変化分Ｈｒ（５）は、Ｄｒ（５）−Ｄｒ（４）の絶対値、即ち、２μＳであったとする。このとき、第２の比較部１０７はステップＳ１２でＹｅｓと判定し（図５参照）、同期部１０４は、ステップＳ１３で、差分の変化分Ｈｒ（５）を、差分の変化分Ｈｒ（１）〜Ｈｒ（４）を保持した上で、変化記憶部１２４に記憶する。
【０１１１】
その後、ステップＳ１４以降の処理へ移行し、第２の更新部１０８は、ステップＳ７でＹｅｓと判定すると、ステップＳ１７で、５回分の差分の変化分であるＨｒ（１）〜Ｈｒ（５）から、最大値Ｈｍを検索する。この結果、第２の更新部１０８は、差分の変化分が８μＳであったｒＨ（３）を検索する。
【０１１２】
その後、第２の更新部１０８は、ステップＳ９で、検索した差分の変化分Ｈｒ（３）を閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値Ｄｔを初期時用値である１０μＳから８μＳへ更新する。ここで、変数（同期回数）ｎが６以上となる場合、ステップＳ７でＮｏと判定されることから（図５参照）、変化部１０６が求めた差分の変化分Ｈｒ（６以上）は、ステップＳ１２で、８μＳの閾値と比較され続ける。
【０１１３】
なお、変数（同期回数）ｎがカウントアップされて９となり、このとき、時刻の差分Ｄｒ（９）が３０μＳであったとし、差分の変化分Ｈ（９）が２４μＳであった場合、制御部１００は、閾値記憶部１２２に記憶された８μＳの閾値Ｄｔよりも、差分の変化分Ｈｒ（９）が大きいことから、上述したステップＳ１３以降の処理（図５参照）をスキップする。つまり、２４μＳであった差分の変化分Ｈｒ（９）は変化記憶部１２４に記憶されず、また、３０μＳであった時刻の差分Ｄｒ（９）も差分記憶部１２１に記憶されない。よって、図６に示すように、差分部１０２で次に求められた時刻の差分が１０μＳであったとし、これがＤｒ（９）として記憶され、時刻の差分Ｄｒ（９）から６μＳであった時刻の差分Ｄｒ（８）を減算することで変化部１０６により求められた差分の変化分４μＳが、Ｈ（９）として記憶される。
【０１１４】
上述した通り、実施の形態２に係るスレーブ制御装置２０は、スレーブ制御装置１０が起動され、同期更新処理が開始されると、差分部１０２で時刻の差分（Ｒｏ−Ｒｒ）を求め、その時刻の差分と前回の時刻の差分とから変化部１０６で差分の変化分Ｈｒを求め、その差分の変化分Ｈｒが、閾値記憶部１２２に記憶された初期時用値以下である場合、同期部１０４で時刻の同期を行う。そして、スレーブ制御装置２０は、起動後、同期部１０４での時刻の同期を所定回数である５回行うと、所定回数分の差分の変化分Ｈｒから最大値Ｈｍを検索し、検索した最大値Ｈｍを、閾値記憶部１２２に記憶させて、閾値記憶部１２２に記憶された初期時用値を更新する。
【０１１５】
このように、スレーブ制御装置２０は、閾値記憶部１２２に記憶された閾値Ｄｔを更新する場合、マスタ制御装置６０との時刻のずれが発生し易いスレーブ制御装置２０の起動時における所定回数分（５回分）の差分の変化分Ｈｒを用い、差分の変化分Ｈｒのうちの最大値を、更新後の閾値Ｄｔとしている。言い換えれば、更新後の閾値Ｄｔを、スレーブ制御装置２０の起動時における時刻の差分のバラツキ（安定状態となる以前のバラツキ）を数値で示した差分の変化分Ｈｒのうちの最大値としている。よって、スレーブ制御装置２０で使用される更新後の閾値Ｄｔを、起動時における差分の変化分の最も大きい変化を反映させたものとすることができる。従って、スレーブ制御装置２０の起動時における時刻の差分Ｄｒのバラツキに伴う差分の変化分Ｈｒのバラツキであるにも関わらず、言い換えれば、何らかの障害により発生した遅延による差分の変化分Ｈｒのバラツキでないにも関わらず、スレーブ制御装置２０でエラーとなることを防止することで、スレーブ制御装置２０の起動時に同期の機会が失われることを防止し、結果、固定値や時刻の差分の平均値を閾値として用いる従来のものと比較して、スレーブ制御装置２０で実行される同期の頻度を高くすることができる。
【０１１６】
また、スレーブ制御装置２０は、前述の通り、更新後の閾値Ｄｔを、起動時における時刻の差分のバラツキを数値で示した差分の変化分Ｈｒのうちの最大値としている。よって、何らかの障害により発生した遅延を含む異常値が時刻の同期に用いられるような不必要に大きな閾値が、更新後の閾値Ｄｔとなることを防止できる。従って、障害における異常値が時刻の同期に使用され、スレーブ制御装置２０の時計部１３０が誤った同期になることを防止できる。
【０１１７】
（実施の形態３）
次に、本発明の実施の形態３に係る通信システム３を、図７〜図９を参照して説明する。通信システム３は、実施の形態１の通信システム１で使用されたスレーブ制御装置１０の構成および処理の一部を変更して、スレーブ制御装置３０としたものである。よって、スレーブ制御装置３０では、スレーブ制御装置１０と同一の構成・同一の処理については同一の番号を付して、その説明を省略する。
【０１１８】
通信システム３は、スレーブ制御装置３０と、マスタ制御装置６０と、を備えている。
【０１１９】
スレーブ制御装置３０は、スレーブ制御装置１０と同様、例えば、パーソナルコンピュータやプリンタである。スレーブ制御装置３０は、スレーブ制御装置１０の第１の更新部１０５を、第３の更新部１０９へ変更したものである。
【０１２０】
また、スレーブ制御装置３０は、スレーブ制御装置１０に最低値記憶部１２５を追加したものである。
【０１２１】
上述した第３の更新部１０９は、制御部１００の備えるＣＰＵがＲＯＭに格納されたプログラムを実行することにより実現される機能である。
【０１２２】
第３の更新部１０９は、同期部１０４による時刻の同期が、スレーブ制御装置３０の起動後、所定回数（例えば、５回）行われると、差分記憶部１２１に記憶された直近の所定回数分（例えば、５回分）の時刻の差分Ｄｒから最大値Ｄｍを検索し、検索した最大値Ｄｍを、閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値（許容値）Ｄｔを更新する。第３の更新部１０９は、所定回数以降、これを、時刻の差分Ｄｒが差分記憶部１２１に記憶され、時刻の同期が行われる度に実行する。ここで、直近の所定回数分の時刻の差分Ｄｒとは、差分記憶部１２１に記憶された複数の時刻の差分Ｄｒのうち最新を含む直近の所定数（例えば、５つ）の時刻の差分Ｄｒである。
【０１２３】
最低値記憶部１２５は、第３の更新部１０９により検索された最大値Ｄｍと比較される閾値（許容値）Ｄｔの限界値である最低値Ｍｉｎを記憶する。即ち、最低値Ｍｉｎは、時刻の差分Ｄｒの許容範囲の限界範囲を規定している。第３の更新部１０９は、最大値Ｄｍを検索すると、その最大値Ｄｍと最低値Ｍｉｎとを比較する。そして、第３の更新部１０９は、最大値Ｄｍが最低値Ｍｉｎ以上（最大値Ｄｍ≧最低値Ｍｉｎ）であると判定すると、検索した最大値Ｄｍを閾値記憶部１２２に記憶する。一方、第３の更新部１０９は、最大値Ｄｍが最低値Ｍｉｎ未満であると判定すると、検索した最大値Ｄｍが小さすぎることから、検索した最大値Ｄｍに代えて、最低値記憶部１２５に記憶された最低値Ｍｉｎを閾値記憶部１２２に記憶する。これにより、閾値記憶部１２２に記憶された閾値が小さくなりすぎ、制御部１００でエラーと判定されることで、時計部１３０の時刻が、マスタ制御装置６０の時刻と同期できない状態が頻発することを防止している。
【０１２４】
上述したスレーブ制御装置３０は、図８に示す同期更新処理を実行する。この同期更新処理は、実施の形態１のスレーブ制御装置１０で実行される同期更新処理の一部を変更したものである。よって、スレーブ制御装置３０の同期更新処理では、スレーブ制御装置１０の同期更新処理と同一の処理については同一の番号を付して、その説明を省略する。
【０１２５】
同期更新処理は、スレーブ制御装置３０が電源オフ状態から電源オン状態に切り換えられた場合、即ち、スレーブ制御装置３０が起動された場合に開始される。開始後、同期更新処理は、定期的に（例えば、５分毎に）繰り返し実行される。
【０１２６】
なお、本実施の形態の同期更新処理の実行開始時、閾値記憶部１２２には、ユーザによって設定された設定値である「２０μＳ」が閾値（許容値）として記憶される。
【０１２７】
また、本実施の形態の同期更新処理の実行開始時、同期部１０４で同期が行われた回数を示す変数ｎに「１」が記憶される。この変数ｎは、制御部１００が備えるＲＡＭに記憶される。
【０１２８】
スレーブ制御装置３０が起動されて、同期更新処理が開始され、ステップＳ１〜ステップＳ６の実行後、制御部１００（第３の更新部１０９）は、変数ｎが５以上であるか否かを判定する（ステップＳ１８）。
【０１２９】
制御部１００（第３の更新部１０９）は、変数ｎが５未満であると判定すると（ステップＳ１８：Ｎｏ）、スレーブ制御装置３０の起動後、制御部１００（同期部１０４）で同期が行われた回数が、所定回数を満たしていないことから、具体的には、５回未満であることから、閾値記憶部１２２に記憶された閾値を更新するステップＳ１９〜ステップＳ２２をスキップして、ステップＳ１０へ移行する。
【０１３０】
ステップＳ１０では、制御部１００（第３の更新部１０９）は、変数ｎを１つ増加させて（ステップＳ１０）、同期更新処理を終了する。
【０１３１】
ここで、変数ｎが５未満である場合における閾値記憶部１２２に記憶された閾値Ｄｔ、時刻の差分Ｄｒ（ｎ）、時刻の変化分Ｈｒ（ｎ）および差分記憶部１２１の記憶内容は、例えば、図９に示す通りとなる。なお、図９では、ステップＳ１８の実行直前の各値を示している。
【０１３２】
変数（同期回数）ｎが１である場合、閾値記憶部１２２に記憶された閾値Ｄｔは、設定値である２０μＳであり、差分部１０２が求めた時刻の差分Ｄｒ（１）は、１８μＳであったとする。このとき、第１の比較部１０３はステップＳ４でＹｅｓと判定し（図９参照）、同期部１０４は、ステップＳ５で時刻の差分Ｄｒ（１）を差分記憶部１２１に記憶する。
【０１３３】
上述した動作を繰り返し、変数ｎがカウントアップされて４になると、差分記憶部１２１には、時刻の差分Ｄｒ（１）〜Ｄｒ（４）が記憶される。
【０１３４】
図８に示すステップＳ１８で、制御部１００（第３の更新部１０９）は、変数ｎが５以上であると判定すると（ステップＳ１８：Ｙｅｓ）、スレーブ制御装置３０の起動後、制御部１００（同期部１０４）で同期が行われた回数が５回以上であり所定回数以上であることから、閾値記憶部１２２に記憶された閾値Ｄｔを更新するステップＳ１９以降の処理へ移行する。
【０１３５】
具体的には、制御部１００（第３の更新部１０９）は、差分記憶部１２１に記憶された直近の５回分の時刻の差分Ｄｒから最大値Ｄｍを検索し（ステップＳ１９）、検索した最大値Ｄｍと、最低値記憶部１２５に記憶された閾値の限界値である最低値Ｍｉｎとを比較する（ステップＳ２０）。
【０１３６】
そして、制御部１００（第３の更新部１０９）は、最大値Ｄｍが最低値Ｍｉｎ以上であると判定すると（ステップＳ２０：Ｙｅｓ）、検索した最大値Ｄｍが閾値の限界値以上であることから、検索した最大値Ｄｍを閾値記憶部１２２に記憶する（ステップＳ２１）。
【０１３７】
一方、制御部１００（第３の更新部１０９）は、最大値Ｄｍが最低値Ｍｉｎ未満であると判定すると（ステップＳ２０：Ｎｏ）、検索した最大値Ｄｍが、閾値の限界値未満であり、小さすぎることから、検索した最大値Ｄｍに代えて、最低値記憶部１２５に記憶された最低値Ｍｉｎを、閾値記憶部１２２に記憶する（ステップＳ２２）。これにより、閾値記憶部１２２に記憶された閾値が小さくなりすぎ、制御部１００でエラーと判定されることで、時計部１３０の時刻が、マスタ制御装置６０の時刻と同期できない状態が多発することを防止している。
【０１３８】
制御部１００（第３の更新部１０９）は、ステップＳ２１またはステップＳ２２の何れか一方の実行後、変数ｎを１つ増加させて（ステップＳ１０）、同期更新処理を終了する。
【０１３９】
ここで、変数ｎが５である場合および６以上である場合における閾値記憶部１２２に記憶された閾値Ｄｔ、時刻の差分Ｄｒ（ｎ）、時刻の変化分Ｈｒ（ｎ）および差分記憶部１２１の記憶内容は、例えば、図６に示す通りとなる。
【０１４０】
具体的には、変数（同期回数）ｎが５である場合、閾値記憶部１２２に記憶された閾値Ｄｔは、設定値である２０μＳであり、差分部１０２が求めた時刻の差分Ｄｒ（５）は、３μＳであったとする。このとき、第１の比較部１０３はステップＳ４でＹｅｓと判定し（図８参照）、同期部１０４は、ステップＳ５で、時刻の差分Ｄｒ（５）を、時刻の差分Ｄｒ（１）〜Ｄｒ（４）を保持した上で、差分記憶部１２１に記憶する。
【０１４１】
ステップＳ６実行後、第３の更新部１０９は、ステップＳ１８でＹｅｓと判定すると、ステップＳ１９で、直近の５回分の時刻の差分であるＤｒ（１）〜Ｄｒ（５）から、最大値Ｄｍを検索する。この結果、第３の更新部１０９は、時刻の差分が１８μＳであったＤｒ（１）を検索する。
【０１４２】
そして、第３の更新部１０９は、ステップＳ２０で、検索した時刻の差分Ｄｒ（１）と、最低値記憶部１２５に記憶された最低値Ｍｉｎである５μＳとを比較し、Ｙｅｓと判定する。
【０１４３】
その後、第３の更新部１０９は、ステップＳ２１で、検索した時刻の差分Ｄｒ（１）を閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値Ｄｔを設定値である２０μＳから１８μＳへ更新する。これにより、変数（同期回数）ｎが６となると、差分部１０２が求めた時刻の差分Ｄｒ（６）は、ステップＳ４で、１８μＳの閾値Ｄｔと比較される。
【０１４４】
変数（同期回数）ｎがカウントアップされて６になった場合、閾値記憶部１２２に記憶された閾値は、１８μＳであり、差分部１０２が求めた時刻の差分Ｄｒ（６）は、２μＳであったとする。このとき、第１の比較部１０３はステップＳ４でＹｅｓと判定し（図８参照）、同期部１０４は、ステップＳ５で、時刻の差分Ｄｒ（６）を、少なくとも時刻の差分Ｄｒ（２）〜Ｄｒ（５）を保持した上で、差分記憶部１２１に記憶する。
【０１４５】
ステップＳ６実行後、第３の更新部１０９は、ステップＳ１８でＹｅｓと判定すると、ステップＳ１９で、直近の５回分の時刻の差分であるＤｒ（２）〜Ｄｒ（６）から、最大値Ｄｍを検索する。この結果、第３の更新部１０９は、時刻の差分が１５μＳであるＤｒ（２）を検索する。
【０１４６】
そして、第３の更新部１０９は、ステップＳ２０で、検索した時刻の差分Ｄｒ（２）と、最低値記憶部１２５に記憶された最低値Ｍｉｎである５μＳとを比較し、Ｙｅｓと判定する。
【０１４７】
その後、第３の更新部１０９は、ステップＳ２１で、検索した時刻の差分Ｄｒ（２）を閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値を１８μＳから１５μＳへ更新する。これにより、変数（同期回数）ｎが７となる場合、差分部１０２が求めた時刻の差分Ｄｒ（７）は、ステップＳ４で、１５μＳの閾値と比較される。
【０１４８】
制御部１００は、上述した処理を、同期部１０４による同期が行われる度に実行して、閾値記憶部１２２に記憶される閾値を更新する。
【０１４９】
ここで、変数（同期回数）ｎがカウントアップされて８となった場合、閾値記憶部１２２に記憶された閾値は、７μＳであり、差分部１０２が求めた時刻の差分（絶対値）Ｔ（８）は、１μＳであったとする。このとき、第１の比較部１０３はステップＳ４でＹｅｓと判定し（図８参照）、同期部１０４は、ステップＳ５で、時刻の差分Ｄｒ（８）を、少なくとも時刻の差分Ｄｒ（４）〜Ｄｒ（７）を保持した上で、差分記憶部１２１に記憶する。
【０１５０】
ステップＳ６実行後、第３の更新部１０９は、ステップＳ１８でＹｅｓと判定すると、ステップＳ１９で、直近の５回分の時刻の差分であるＤｒ（４）〜Ｄｒ（８）から、最大値Ｄｍを検索する。この結果、第３の更新部１０９は、時刻の差分が４μＳであったＤｒ（４）を検索する。
【０１５１】
そして、第３の更新部１０９は、ステップＳ２０で、検索した時刻の差分Ｄｒ（４）と、最低値記憶部１２５に記憶された最低値Ｍｉｎである５μＳとを比較し、Ｎｏと判定する。
【０１５２】
すると、第３の更新部１０９は、ステップＳ２２で、最低値記憶部１２５に記憶された最低値Ｍｉｎを閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値を７μＳから５μＳへ更新する。これにより、変数（同期回数）ｎがカウントアップされて９となる場合、差分部１０２が求めた時刻の差分Ｄｒ（９）は、ステップＳ４で、５μＳの閾値と比較される。
【０１５３】
なお、変数（同期回数）ｎが９であり、差分部１０２で求められた時刻の差分Ｄｒ（９）が１０μＳであった場合、制御部１００は、閾値記憶部１２２に記憶された５μＳの閾値よりも、時刻の差分Ｔ（９）が大きいことから、ステップＳ４でＮｏと判定し、上述したステップＳ５以降の処理（図８参照）をスキップする。つまり、１０μＳである時刻の差分Ｔ（９）は、差分記憶部１２１に記憶されない。よって、図９に示すように、差分部１０２で次に求められた時刻の差分３μＳが、Ｄｒ（９）として記憶される。
【０１５４】
上述した通り、実施の形態３に係るスレーブ制御装置３０は、スレーブ制御装置３０が起動され、同期更新処理が開始されると、差分部１０２で時刻の差分（Ｒｏ−Ｒｒ）を求め、その差分が、閾値記憶部１２２に記憶された設定値以下である場合、同期部１０４で時刻の同期を行う。そして、スレーブ制御装置３０は、同期部１０４での時刻の同期を所定回数（例えば、５回）以上行うと、時刻の差分Ｄｒが差分記憶部１２１に記憶され、時刻の同期を行う度に、同期に用いた直近の所定回数分の時刻の差分Ｄｒから最大値を検索し、検索した最大値を、最低値記憶部１２５に記憶された最低値Ｍｉｎと比較する。そして、スレーブ制御装置３０は、検索した最大値が最低値Ｍｉｎ以上である場合、検索した最大値を閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された設定値や閾値を更新する。
【０１５５】
このように、スレーブ制御装置３０は、閾値記憶部１２２に記憶された閾値Ｄｔ（設定値）を更新する場合、マスタ制御装置６０との時刻のずれが発生し易いスレーブ制御装置１０の起動時における所定回数分（５回分）の時刻の差分Ｄｒを用い、時刻の差分Ｄｒのうちの最大値を、更新後の閾値Ｄｔとしている。言い換えれば、更新後の閾値Ｄｔを、スレーブ制御装置３０の起動時におけるバラツキ（安定状態となる以前のバラツキ）を含んだ時刻の差分Ｄｒのうちの最大値としている。よって、スレーブ制御装置３０で使用される更新後の閾値Ｄｔを、起動時における時刻の差分Ｄｒの最も大きいバラツキを反映させたものとすることができる。従って、スレーブ制御装置３０の起動時における時刻の差分Ｄｒのバラツキであるにも関わらず、言い換えれば、何らかの障害により発生した遅延による時刻の差分Ｄｒのバラツキでないにも関わらず、スレーブ制御装置１０でエラーとなることを防止することで、スレーブ制御装置３０の起動時に同期の機会が失われることを防止し、結果、固定値や時刻の差分の平均値を閾値として用いる従来のものと比較して、スレーブ制御装置３０で実行される同期の頻度を高くすることができる。
【０１５６】
また、スレーブ制御装置３０は、前述の通り、更新後の閾値Ｄｔを、起動時におけるバラツキを含んだ時刻の差分Ｄｒのうちの最大値としている。よって、何らかの障害により発生した遅延を含む異常値が時刻の同期に用いられるような不必要に大きな閾値が、更新後の閾値Ｄｔとなることを防止できる。従って、障害における異常値が時刻の同期に使用され、スレーブ制御装置３０の時計部１３０が誤った同期になることを防止できる。
【０１５７】
更に、スレーブ制御装置３０は、閾値Ｄｔを更新する値となる最大値を、直近の所定回数分（例えば、５回分）の時刻の差分Ｄｒから検索している。この時刻の差分Ｄｒは、ステップＳ４で、閾値Ｄｔ以下と判定されたものである。これにより、最大値を、前回更新された閾値Ｄｔ以下とすることができるので、更新される閾値Ｄｔを、スレーブ制御装置３０が安定するに連れて、徐々に小さくすることができる。よって、障害における異常値をエラーと判定する精度を、スレーブ制御装置３０が安定するに連れて、高めることができる。
【０１５８】
また、スレーブ制御装置３０は、検索した最大値Ｄｍが最低値Ｍｉｎ未満である場合、検索した最大値Ｄｍが小さすぎることから、検索した最大値Ｄｍに代えて、最低値記憶部１２５に記憶された最低値Ｍｉｎを閾値記憶部１２２に記憶する。これにより、閾値記憶部１２２に記憶された閾値Ｄｔが小さくなりすぎ、制御部１００でエラーと判定されることで、時計部１３０の時刻が、マスタ制御装置６０の時刻と同期できない状態が頻発することを防止することができる。
【０１５９】
（実施の形態４）
次に、本発明の実施の形態４に係る通信システム４を、図１０〜図１２を参照して説明する。通信システム４は、実施の形態２の通信システム２で使用されたスレーブ制御装置２０の構成および処理の一部を変更して、スレーブ制御装置４０としたものである。よって、スレーブ制御装置４０では、スレーブ制御装置２０と同一の構成・同一の処理については同一の番号を付して、その説明を省略する。
【０１６０】
通信システム４は、スレーブ制御装置４０と、マスタ制御装置６０と、を備えている。
【０１６１】
スレーブ制御装置４０は、スレーブ制御装置２０と同様、例えば、パーソナルコンピュータやプリンタである。スレーブ制御装置４０は、スレーブ制御装置２０の第２の更新部１０８を、第４の更新部１１０へ変更したものである。
【０１６２】
また、スレーブ制御装置４０は、スレーブ制御装置２０に最低値記憶部１２５を追加したものである。
【０１６３】
上述した第４の更新部１１０は、制御部１００の備えるＣＰＵがＲＯＭに格納されたプログラムを実行することにより実現される機能である。
【０１６４】
第４の更新部１１０は、同期部１０４による時刻の同期が所定回数（例えば、５回）行われると、変化記憶部１２４に記憶された直近の所定回数分（例えば、５回分）の差分の変化分Ｈｒから最大値Ｈｍを検索し、検索した最大値Ｈｍを、閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値（許容値）Ｄｔを更新する。第４の更新部１１０は、所定回数以降、これを、差分の変化分Ｈｒが変化記憶部１２４に記憶される度に実行する。ここで、直近の所定回数分の差分の変化分Ｈｒとは、変化記憶部１２４に記憶されている複数の差分の変化分Ｈｒのうち最新を含む直近の所定数（例えば、５つ）の差分の変化分Ｈｒである。
【０１６５】
最低値記憶部１２５は、実施の形態３のスレーブ制御装置３０で用いたものと同一であり、閾値（許容値）Ｄｔの限界値である最低値を記憶する。即ち、最低値Ｍｉｎは、差分の変化分Ｈｒの許容範囲の限界範囲を規定している。第４の更新部１１０は、最大値Ｈｍを検索すると、その最大値Ｈｍと最低値Ｍｉｎとを比較する。そして、第４の更新部１１０は、最大値Ｈｍが最低値Ｍｉｎ以上であると判定すると、検索した最大値Ｈｍを閾値記憶部１２２に記憶する。一方、第４の更新部１１０は、最大値Ｈｍが最低値Ｍｉｎ未満であると判定すると、検索した最大値Ｈｍが小さすぎることから、検索した最大値Ｈｍに代えて、最低値記憶部１２５に記憶された最低値Ｍｉｎを閾値記憶部１２２に記憶する。これにより、閾値記憶部１２２に記憶された閾値Ｄｔが小さくなりすぎ、制御部１００でエラーと判定されることで、時計部１３０の時刻が、マスタ制御装置６０の時刻と同期できない状態が多発することを防止している。
【０１６６】
上述したスレーブ制御装置４０は、図１１に示す同期更新処理を実行する。この同期更新処理は、実施の形態２のスレーブ制御装置２０で実行される同期更新処理の一部を変更したものである。よって、スレーブ制御装置４０の同期更新処理では、スレーブ制御装置２０の同期更新処理と同一の処理については同一の番号を付して、その説明を省略する。
【０１６７】
同期更新処理は、時計部１３０で計時されている時刻Ｒｏをメイン制御装置６０の時計部６１０で計時されている時刻Ｒｒに同期させると共に、閾値記憶部１２２に記憶された閾値Ｄｔを更新する処理である。
【０１６８】
同期更新処理は、スレーブ制御装置２０が電源オフ状態から電源オン状態に切り換えられた場合、即ち、スレーブ制御装置２０が起動された場合に開始される。開始後、同期更新処理は、定期的に（例えば、５分毎に）繰り返し実行される。
【０１６９】
なお、本実施の形態の同期更新処理の実行開始時、閾値記憶部１２２には、差分部１０２により求められた時刻の差分との比較に用いる設定値である「２０μＳ」が閾値（許容値）として記憶される。また、同期部１０４で同期が行われた回数を示す変数ｎには「１」が記憶される。この変数ｎは、前述の通り、制御部１００が備えるＲＡＭに記憶される。
【０１７０】
また、同期更新処理の実行開始時、初期時閾値記憶部１２３には初期時用値である１０μＳが記憶され、最低値記憶部１２５には５μＳが記憶されている。
【０１７１】
実施の形態４の同期更新処理では、スレーブ制御装置２０が起動されて、同期更新処理が開始された後、ステップＳ１以降の処理が実行され、ステップＳ１５でＮｏと判定後、或いは、ステップＳ１６の実行後、制御部１００（第４の更新部１１０）は、変数ｎが５以上であるか否かを判定する（ステップＳ２３）。
【０１７２】
制御部１００（第４の更新部１１０）は、変数ｎが５未満であると判定すると（ステップＳ２３：Ｎｏ）、制御部１００（同期部１０４）で同期が行われた回数が、所定回数を満たさない、即ち、５回未満であることから、閾値記憶部１２２に記憶された閾値を更新するステップＳ２４〜ステップＳ２７をスキップして、ステップＳ１０へ移行する。
【０１７３】
ステップＳ１０では、制御部１００（第４の更新部１１０）は、変数ｎを１つ増加させて（ステップＳ１０）、同期更新処理を終了する。
【０１７４】
ここで、変数ｎが５未満である場合における閾値記憶部１２２に記憶された閾値Ｄｔ、時刻の差分Ｄｒ（ｎ）、時刻の変化分Ｈｒ（ｎ）および差分記憶部１２１の記憶内容は、例えば、図１２に示す通りとなる。なお、図１２では、ステップＳ２３の実行直前の各値を記載している。
【０１７５】
変数（同期回数）ｎが１である場合、閾値記憶部１２２に記憶された閾値Ｄｔは、２０μＳである。また、差分部１０２が求めた時刻の差分Ｄｒ（１）は、１８μＳであったとする。なお、変化部１０６が求めた差分の変化分Ｈｒ（１）はＮＵＬＬとなるため、ステップＳ１２（図１１参照）では、時刻の差分Ｄｒ（１）と２０μＳの閾値Ｄｔとの比較となる。比較の結果、第２の比較部１０７は、ステップＳ１２でＹｅｓと判定し（図１１参照）、同期部１０４は、ステップＳ１３で、差分の変化分Ｈｒ（１）を変化記憶部１２４に記憶する。
【０１７６】
次に、変数（同期回数）ｎがカウントアップされて２となった場合、ステップＳ１６が既に実行されていることから（図１１参照）、閾値記憶部１２２に記憶された閾値は、初期時用値１０μＳである。また、差分部１０２が求めた時刻の差分Ｔ（２）は、１５μＳであったとし、変化分Ｈ（２）は、Ｄｒ（２）−Ｄｒ（１）の絶対値、即ち、３μＳであったとする。このとき、第２の比較部１０７は、ステップＳ１２でＹｅｓと判定し（図１１参照）、同期部１０４は、ステップＳ１３で、差分の変化分Ｈｒ（２）を、差分の変化分Ｈｒ（１）を保持した上で、変化記憶部１２４に記憶する。
【０１７７】
上述した動作を繰り返し、変数ｎがカウントアップされて４になると、変化記憶部１２４には、差分の変化分Ｈｒ（１）〜Ｈｒ（４）が記憶される。
【０１７８】
図１１に示すステップＳ２３で、制御部１００（第４の更新部１１０）は、変数ｎが５以上であると判定すると（ステップＳ２３：Ｙｅｓ）、制御部１００（同期部１０４）で同期が行われた回数が所定回数の５回以上であることから、閾値記憶部１２２に記憶された閾値を更新するステップＳ２４以降の処理へ移行する。
【０１７９】
具体的には、制御部１００（第４の更新部１１０）は、変化記憶部１２４に記憶された直近の５回分の差分の変化分Ｈｒから最大値Ｈｍを検索し（ステップＳ２４）、検索した最大値Ｈｍと、最低値記憶部１２５に記憶された閾値の限界値である最低値Ｍｉｎとを比較する（ステップＳ２５）。
【０１８０】
そして、制御部１００（第４の更新部１１０）は、最大値Ｈｍが最低値Ｍｉｎ以上であると判定すると（ステップＳ２５：Ｙｅｓ）、検索した最大値Ｈｍが閾値の限界値以上であることから、検索した最大値Ｈｍを閾値記憶部１２２に記憶する（ステップＳ２６）。
【０１８１】
一方、制御部１００（第３の更新部１０９）は、最大値Ｈｍが最低値Ｍｉｎ未満であると判定すると（ステップＳ２５：Ｎｏ）、検索した最大値Ｈｍが、閾値の限界値未満であり、小さすぎることから、検索した最大値Ｈｍに代えて、最低値記憶部１２５に記憶された最低値Ｍｉｎを、閾値記憶部１２２に記憶する（ステップＳ２７）。これにより、閾値記憶部１２２に記憶された閾値Ｄｔが小さくなりすぎ、制御部１００でエラーと判定されることで、時計部１３０の時刻が、マスタ制御装置６０の時刻と同期できない状態が多発することを防止している。
【０１８２】
制御部１００（第４の更新部１１０）は、ステップＳ２６またはステップＳ２７の何れか一方の実行後、変数ｎを１つ増加させて（ステップＳ１０）、同期更新処理を終了する。
【０１８３】
ここで、変数ｎが５である場合および６以上である場合における閾値記憶部１２２に記憶された閾値Ｄｔ、時刻の差分Ｄｒ（ｎ）、時刻の変化分Ｈｒ（ｎ）および差分記憶部１２１の記憶内容は、例えば、図１２に示す通りとなる。
【０１８４】
具体的には、変数（同期回数）ｎが５である場合、閾値記憶部１２２に記憶された閾値Ｄｔは、初期時用値の１０μＳである。また、差分部１０２が求めた時刻の差分Ｄｒ（５）は、６μＳであったとし、差分の変化分Ｈｒ（５）は、Ｄｒ（５）−Ｄｒ（４）の絶対値、即ち、２μＳであったとする。このとき、第２の比較部１０７は、ステップＳ１２でＹｅｓと判定し（図１１参照）、同期部１０４は、ステップＳ１３で、差分の変化分Ｈｒ（５）を、差分の変化分Ｈｒ（１）〜Ｈｒ（４）を保持した上で、変化記憶部１２４に記憶する。
【０１８５】
ステップＳ１４以降の実行後、第４の更新部１１０は、ステップＳ２３でＹｅｓと判定すると、ステップＳ２４で、５回分の差分の変化分であるＨｒ（１）〜Ｈｒ（５）から、最大値Ｈｍを検索する。この結果、第４の更新部１１０は、差分の変化分が８μＳであったＨｒ（３）を検索する。
【０１８６】
その後、第４の更新部１１０は、ステップＳ２５で、検索した差分の変化分Ｈｒ（３）と、最低値記憶部１２５に記憶された最低値Ｍｉｎである５μＳとを比較し、Ｙｅｓと判定する。
【０１８７】
その後、第４の更新部１１０は、ステップＳ２６で、検索した差分の変化分Ｈｒ（３）を閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値Ｄｔを初期時用値の１０μＳから８μＳへ更新する。これにより、変数（同期回数）ｎが６となると、変化部１０６が求めた差分の変化分Ｈ（６）は、ステップＳ１２で、８μＳの閾値と比較される。
【０１８８】
制御部１００は、上述した処理を、差分の変化分Ｈｒが変化記憶部１２４に記憶される度に実行して、閾値記憶部１２２に記憶される閾値を更新する。
【０１８９】
ここで、変数（同期回数）ｎがカウントアップされて８である場合、閾値記憶部１２２に記憶された閾値は、８μＳである。また、差分部１０２が求めた時刻の差分Ｄｒ（８）は、６μＳであったとし、変化部１０６が求めた差分の変化分Ｈｒ（８）は、０μＳであったとする。このとき、第２の比較部１０７は、ステップＳ１２でＹｅｓと判定し（図１１参照）、同期部１０４は、ステップＳ１３で、差分の変化分Ｈｒ（８）を、少なくとも変化分Ｈｒ（４）〜Ｈｒ（７）を保持した上で、変化記憶部１２４に記憶する。
【０１９０】
ステップＳ１４以降の処理の実行後、第４の更新部１１０は、ステップＳ２３でＹｅｓと判定すると、ステップＳ２４で、直近の５回分の差分の変化分であるＨｒ（４）〜Ｈｒ（８）から、最大値Ｈｍを検索する。この結果、第４の更新部１１０は、差分の変化分Ｈｒが２μＳであるＨｒ（５）〜Ｈｒ（８）のうちのいずれかを、例えば、Ｈｒ（５）を検索する。
【０１９１】
そして、第４の更新部１１０は、ステップＳ２５で、検索した差分の変化分Ｈｒ（５）と、最低値記憶部１２５に記憶された最低値Ｍｉｎである５μＳとを比較し、Ｎｏと判定する。
【０１９２】
すると、第４の更新部１１０は、ステップＳ２７で、最低値記憶部１２５に記憶された最低値Ｍｉｎを閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された閾値Ｄｔを８μＳから５μＳへ更新する。これにより、変数（同期回数）ｎがカウントアップされて９となる場合、変化部１０６が求めた差分の変化分Ｈｒ（８）は、ステップＳ１２で、５μＳの閾値と比較される。
【０１９３】
なお、変数（同期回数）ｎがカウントアップされて９となり、差分部１０２で求められた時刻の差分Ｄｒ（９）が３０μＳであった場合、制御部１００は、閾値記憶部１２２に記憶された５μＳの閾値よりも、時刻の差分Ｄｒ（９）が大きいことから、ステップＳ１２でＮｏと判定し、上述したステップＳ１２以降の処理（図１１参照）をスキップする。これにより、３０μＳであった時刻の差分Ｄｒ（９）および２４μＳである差分の変化分Ｈｒ（９）は、それぞれ、差分記憶部１２１および変化記憶部１２４に記憶されない。よって、図１２に示すように、差分部１０２で次に求められた時刻の差分が３μＳであった場合、その値がＤｒ（９）として差分記憶部１２１に記憶され、変化部１０６で次に求められた差分の変化分３μＳが、Ｈｒ（９）として変化記憶部１２４に記憶される。
【０１９４】
上述した通り、実施の形態４に係るスレーブ制御装置４０は、スレーブ制御装置４０が起動され、同期更新処理が開始されると、差分部１０２で時刻の差分Ｄｒを求め、その時刻の差分と前回の時刻の差分とから変化部１０６で差分の変化分Ｈｒを求め、その差分の変化分Ｈｒが、閾値記憶部１２２に記憶された初期時用値以下である場合、同期部１０４で時刻の同期を行う。そして、スレーブ制御装置４０は、起動後、同期部１０４での時刻の同期を所定回数（例えば、５回）以上行うと、差分の変化分の記憶の度に、直近の所定回数分の差分の変化分Ｈｒから最大値Ｈｍを検索し、検索した最大値Ｈｍを、最低値記憶部１２５に記憶された最低値Ｍｉｎと比較する。そして、スレーブ制御装置４０は、検索した最大値Ｈｍが最低値Ｍｉｎ以上である場合、検索した最大値を閾値記憶部１２２に記憶させることで、閾値記憶部１２２に記憶された初期時用値や閾値を更新する。
【０１９５】
このように、スレーブ制御装置４０は、閾値記憶部１２２に記憶された閾値Ｄｔを更新する場合、マスタ制御装置６０との時刻のずれが発生し易いスレーブ制御装置４０の起動時における所定回数分（５回分）の差分の変化分Ｈｒを用い、差分の変化分Ｈｒのうちの最大値を、更新後の閾値Ｄｔとしている。言い換えれば、更新後の閾値Ｄｔを、スレーブ制御装置４０の起動時における時刻の差分のバラツキ（安定状態となる以前のバラツキ）を数値で示した差分の変化分Ｈｒのうちの最大値としている。よって、スレーブ制御装置４０で使用される更新後の閾値Ｄｔを、起動時における差分の変化分の最も大きい変化を反映させたものとすることができる。従って、スレーブ制御装置４０の起動時における時刻の差分Ｄｒのバラツキに伴う差分の変化分Ｈｒのバラツキであるにも関わらず、言い換えれば、何らかの障害により発生した遅延による差分の変化分Ｈｒのバラツキでないにも関わらず、スレーブ制御装置４０でエラーとなることを防止することで、スレーブ制御装置４０の起動時に同期の機会が失われることを防止し、結果、固定値や時刻の差分の平均値を閾値として用いる従来のものと比較して、スレーブ制御装置４０で実行される同期の頻度を高くすることができる。
【０１９６】
また、スレーブ制御装置４０は、前述の通り、更新後の閾値Ｄｔを、起動時における時刻の差分のバラツキを数値で示した差分の変化分Ｈｒのうちの最大値としている。よって、何らかの障害により発生した遅延を含む異常値が時刻の同期に用いられるような不必要に大きな閾値が、更新後の閾値Ｄｔとなることを防止できる。従って、障害における異常値が時刻の同期に使用され、スレーブ制御装置２０の時計部１３０が誤った同期になることを防止できる。
【０１９７】
更に、スレーブ制御装置４０は、閾値Ｄｔを更新する値となる最大値Ｈｍを、直近の所定回数分（例えば、５回分）の時刻の変化分Ｈｒから検索している。この時刻の変化分Ｈｒは、ステップＳ１２で、閾値Ｄｔ以下と判定されたものである。これにより、最大値Ｈｍを、前回更新された閾値Ｄｔ以下とすることができるので、更新される閾値Ｄｔを、スレーブ制御装置４０が安定するに連れて、徐々に小さくすることができる。よって、障害における異常値をエラーと判定する精度を、スレーブ制御装置４０が安定するに連れて、高めることができる。
【０１９８】
また、スレーブ制御装置４０は、検索した最大値Ｈｍが最低値Ｍｉｎ未満である場合、検索した最大値Ｈｍが小さすぎることから、検索した最大値Ｈｍに代えて、最低値記憶部１２５に記憶された最低値Ｍｉｎを閾値記憶部１２２に記憶する。これにより、閾値記憶部１２２に記憶された閾値Ｄｔが小さくなりすぎ、制御部１００でエラーと判定されることで、時計部１３０の時刻が、マスタ制御装置６０の時刻と同期できない状態が頻発することを防止することができる。
【０１９９】
以上、本発明の実施形態を説明したが、この発明は上記の実施の形態に限定されず、種々の変形および応用が可能である。
【０２００】
例えば、上述した実施の形態１のスレーブ制御装置１０および実施の形態３のスレーブ制御装置３０は、同期部１０４による時刻の同期が５回行われ、差分記憶部１２１に時刻の差分が５つ記憶されるまで、最大値を求めなかったが、これに限られるものではない。即ち、スレーブ制御装置１０の第１の更新部１０５およびスレーブ制御装置３０の第２の閾値更新部１０９は、同期部１０４による時刻の同期が１回以上行われ、差分記憶部１２１に時刻の差分が１つ以上記憶された場合、差分記憶部１２１に記憶されている時刻の差分から最大値を求めてもよい。また、例えば、差分記憶部１２１に記憶されている２回目分〜５回目分の時刻の差分から最大値を求めてもよい。
【０２０１】
同様に、実施の形態２のスレーブ制御装置２０および実施の形態４のスレーブ制御装置４０は、同期部１０４による時刻の同期が５回行われ、変化記憶部１２４に差分の変化分が５つ記憶されるまで、最大値を求めなかったが、これに限られるものではない。即ち、スレーブ制御装置２０の第２の更新部１０８およびスレーブ制御装置４０の第４の更新部１１０は、同期部１０４による時刻の同期が２回以上行われ、変化記憶部１２４に差分の変化分が１つ以上記憶された場合、記憶されている差分の変化分から最大値を求めてもよい。また、例えば、変化記憶部１２４に記憶されている２回目分〜５回目分の差分の変化分から最大値を求めてもよい。
【０２０２】
また、実施の形態３のスレーブ制御装置３０は、直近の５回分の時刻の差分から最大値を求めたが、これに限られるものではなく、直近の２回分や直近の３回分或いは直近の６回分等の時刻の差分から、最大値を求めてもよい。
【０２０３】
同様に、実施の形態４のスレーブ制御装置４０は、直近の５回分の差分の変化分から最大値を求めたが、これに限られるものではなく、直近の２回分や直近の３回分或いは直近の６回分等の差分の変化分から、最大値を求めてもよい。
【０２０４】
また、実施の形態３のスレーブ制御装置３０の同期更新処理で実行した処理の一部を、具体的には、検索した最大値が最低値記憶部１２５に記憶された最低値以上であるかを判定し、最大値が最低値未満であれば、最低値記憶部１２５に記憶された最低値を閾値記憶部１２２に記憶させる処理を、実施の形態１のスレーブ制御装置１０の同期更新処理で行ってもよい。
【０２０５】
この場合、スレーブ制御装置１０の記憶部１２０に最低値記憶部１２５を設ける。そして、スレーブ制御装置１０の同期更新処理を、次のように変更すればよい。即ち、ステップＳ８の実行後、スレーブ制御装置３０の同期更新処理で実行したステップＳ２０の判定を実行し、ステップＳ２０がＮｏであれば、ステップＳ２２を実行した後にステップＳ１０を実行する処理へ変更し、ステップＳ２０がＹｅｓであれば、ステップＳ９を実行する処理へ変更すればよい。
【０２０６】
同様に、実施の形態４のスレーブ制御装置４０の同期更新処理で実行した処理の一部を、具体的には、検索した最大値が最低値記憶部１２５に記憶された最低値以上であるかを判定し、最大値が最低値未満であれば、最低値記憶部１２５に記憶された最低値を閾値記憶部１２２に記憶させる処理を、実施の形態２のスレーブ制御装置２０の同期更新処理で行ってもよい。
【０２０７】
この場合、スレーブ制御装置２０の記憶部１２０に最低値記憶部１２５を設ける。そして、スレーブ制御装置２０の同期更新処理を、次のように変更すればよい。即ち、ステップＳ１７の実行後、スレーブ制御装置４０の同期更新処理で実行したステップＳ２５の判定を実行し、ステップＳ２５がＮｏであれば、ステップＳ２７を実行した後にステップＳ１０を実行する処理へ変更し、ステップＳ２５がＹｅｓであれば、ステップＳ９を実行する処理へ変更すればよい。
【０２０８】
また、実施の形態１のスレーブ制御装置１０および実施の形態３のスレーブ制御装置３０では、差分記憶部１２１に記憶されている時刻の差分Ｄｒのうちの最大値を、閾値記憶部１２２に記憶させて、閾値Ｄｔを更新したが、これに限られるものではない。即ち、差分記憶部１２１に記憶されている時刻の差分Ｄｒのうちの最大値に、例えば、補正値を加算或いは減算したものを、最大値として、これを、閾値記憶部１２２に記憶させて、閾値Ｄｔを更新してもよい。
【０２０９】
同様に、実施の形態２のスレーブ制御装置２０および実施の形態４のスレーブ制御装置４０では、変化記憶部１２４に記憶されている差分の変化分Ｈｒのうちの最大値を、閾値記憶部１２２に記憶させて、閾値Ｄｔを更新したが、これに限られるものではない。即ち、変化記憶部１２４に記憶されている差分の変化分Ｈｒのうちの最大値に、例えば、補正値を加算或いは減算したものを、最大値として、これを、閾値記憶部１２２に記憶させて、閾値Ｄｔを更新してもよい。
【０２１０】
また、実施の形態１のスレーブ制御装置１０および実施の形態３のスレーブ制御装置３０では、時計部１３０により取得した時刻情報で示される時刻Ｒｏから受信部１０１により受信された時刻情報の示す時刻Ｒｒを減算した減算値（Ｒｏ−Ｒｒ）の絶対値（｜Ｒｏ−Ｒｒ）｜）を時刻の差分Ｄｒとして、用い、複数の時刻の差分Ｄｒから最大値Ｄｍを検索して、閾値記憶部１２２に記憶された閾値Ｄｔを更新したが、これに限られるものではない。即ち、次の構成としてもよい。即ち、複数の時刻の差分Ｄｒから最大値Ｄｍを検索して、これを上限とし、最大値Ｄｍのマイナス符号の値を下限として、閾値記憶部１２２に記憶してもよい。即ち、閾値Ｄｔの範囲の情報を、閾値記憶部１２２に記憶してもよい。この構成の場合、ステップＳ４（図２および図８参照）では、減算値（Ｒｏ−Ｒｒ）が、時刻の差分Ｄｒとして、上述した閾値Ｄｔの範囲の情報と比較される。
【０２１１】
また、実施の形態１のスレーブ制御装置１０および実施の形態３のスレーブ制御装置３０において、閾値記憶部１２２に閾値Ｄｔの範囲の情報を記憶させる場合、次の構成としてもよい。即ち、複数の時刻の差分Ｄｒから最大値Ｄｍを検索して、これに例えば０．９を積算した値を上限とし、最大値Ｄｍに０．９を積算した値のマイナス符号の値を下限として、閾値記憶部１２２に記憶してもよい。
【０２１２】
同様に、実施の形態２のスレーブ制御装置２０および実施の形態４のスレーブ制御装置４０では、差分部１０２で求められた最新の時刻の差分Ｄｒ（ｎ）から差分部１０２で前回求められた時刻の差分（差分記憶部１２１に記憶された時刻の差分）Ｄｒ（ｎ−１）を減算した減算値（Ｄｒ（ｎ）−Ｄ（ｎ−１））の絶対値（｜（Ｄｒ（ｎ）−Ｄ（ｎ−１）｜）を差分の変化分Ｈｒとして用い、複数の差分の変化分Ｈｒから最大値Ｈｍを検索して、閾値記憶部１２２に記憶された閾値Ｄｔを更新したが、これに限られるものではない。即ち、次の構成としてもよい。即ち、複数の差分の変化分Ｈｒから最大値Ｈｍを検索して、これを上限とし、最大値Ｈｍのマイナス符号の値を下限として、閾値記憶部１２２に記憶してもよい。即ち、閾値Ｄｔの範囲の情報を、閾値記憶部１２２に記憶してもよい。この構成の場合、ステップＳ１２（図５および図１１参照）では、減算値（Ｄｒ（ｎ）−Ｄ（ｎ−１））が、差分の変化分Ｈｒとして、上述した閾値Ｄｔの範囲の情報と比較される。
【０２１３】
また、実施の形態２のスレーブ制御装置２０および実施の形態４のスレーブ制御装置４０において、閾値記憶部１２２に閾値Ｄｔの範囲の情報を記憶させる場合、次の構成としてもよい。即ち、複数の差分の変化分Ｈｒから最大値Ｈｍを検索して、これに例えば０．９を積算した値を上限とし、最大値Ｈｍに０．９を積算した値のマイナス符号の値を下限として、閾値記憶部１２２に記憶してもよい。
【０２１４】
また、実施の形態１のスレーブ制御装置１０および実施の形態３のスレーブ制御装置３０では、差分記憶部１２１に記憶された５回分の時刻の差分Ｄｒから最大値を求めたが、これに限られるものではない。即ち、極端に大きい値を排除する趣旨から、５回分の時刻の差分Ｄｒのうち１番目に大きい時刻の差分Ｄｒを排除し、２番目に大きい時刻の差分Ｄｒを、最大値Ｄｍとしてもよい。
【０２１５】
その他にも、実施の形態１のスレーブ制御装置１０および実施の形態３のスレーブ制御装置３０において、極端に大きい値を排除する趣旨から、例えば、１〜５回目分の時刻の差分Ｄｒの標準偏差、１〜４回目分の時刻の差分Ｄｒの標準偏差或いは、１〜３回目分に５回目分を加えた時刻の差分Ｄｒの標準偏差を求め、この標準偏差が最も大きいものを検索し、標準偏差が最も大きくなる要因となった時刻の差分Ｄｒを排除し、排除後の複数の時刻の差分Ｄｒから、最大値Ｄｍを検索してもよい。
【０２１６】
同様に、実施の形態２のスレーブ制御装置２０および実施の形態４のスレーブ制御装置４０では、変化記憶部１２４に記憶された５回分の差分の変化分Ｈｒから最大値を求めたが、これに限られるものではない。即ち、極端に大きい値を排除する趣旨から、５回分の差分の変化分Ｈｒのうち１番目に大きい差分の変化分Ｈｒを排除し、２番目に大きい差分の変化分Ｈｒを、最大値Ｈｍとしてもよい。
【０２１７】
その他にも、実施の形態２のスレーブ制御装置２０および実施の形態４のスレーブ制御装置４０において、極端に大きい値を排除する趣旨から、例えば、１〜５回目分の差分の変化分Ｈｒの標準偏差、１〜４回目の差分の変化分Ｈｒの標準偏差或いは、１〜３回目分に５回目分を加えた差分の変化分Ｈｒの標準偏差を求め、この標準偏差が最も大きいものを検索し、標準偏差が最も大きくなる要因となった時刻の差分Ｄｒを排除し、排除後の複数の差分の変化分Ｈｒから、最大値Ｈｍを検索してもよい。
【０２１８】
また、実施の形態１のスレーブ制御装置１０では、変数ｎが６以上となった場合も、時刻の差分Ｄｒを差分記憶部１２１に記憶したが、これに限られるものではない。即ち、変数ｎが６以上となった場合、時刻の差分Ｄｒを差分記憶部１２１に記憶させる処理、即ち、ステップＳ５（図２参照）をスキップして、時刻の差分Ｄｒを差分記憶部１２１に記憶させない構成としてもよい。
【０２１９】
同様に、実施の形態２のスレーブ制御装置２０では、変数ｎが６以上となった場合も、差分の変化分Ｈｒを変化記憶部１２４に記憶し、時刻の差分Ｄｒを差分記憶部１２１に記憶したが、これに限られるものではない。即ち、変数ｎが６以上となった場合、差分の変化分Ｈｒを変化記憶部１２４に記憶させる処理および時刻の差分Ｄｒを差分記憶部１２１に記憶させる処理、即ち、ステップＳ１３およびステップＳ１４の動機を除く処理（図５参照）をスキップして、差分の変化分Ｈｒおよび時刻の差分Ｄｒを記憶させない構成としてもよい。
【０２２０】
なお、上記実施形態において、スレーブ制御装置１０，２０，３０，４０を制御するプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read−Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＭＯ（Magneto−Optical Disc）等のコンピュータが読み取り可能な記録媒体に格納して配布し、そのプログラムを、コンピュータ等にインストールすることにより、図２、図５、図８および図１１に示す処理を実行するスレーブ制御装置を構成することとしてもよい。
【０２２１】
また、上述のプログラムをインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、ダウンロード等するようにしてもよい。
【０２２２】
また、上述の図２、図５、図８および図１１に示す処理を、各ＯＳ（Operating System）が分担して実現する場合、又は、ＯＳとアプリケーションとの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、ダウンロード等してもよい。
【０２２３】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、上述した実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内およびそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【０２２４】
１，２，３，４            通信システム
１０，２０，３０，４０    スレーブ制御装置
６０                      マスタ制御装置
７０                      ケーブル
１００，６００            制御部
１０１                    受信部
１０２                    差分部
１０３                    第１の比較部
１０４                    同期部
１０５                    第１の更新部
１０６                    変化部
１０７                    第２の比較部
１０８                    第２の更新部
１０９                    第３の更新部
１１０                    第４の更新部
１２０                    記憶部
１２１                    差分記憶部
１２２                    閾値記憶部
１２３                    初期時閾値記憶部
１２４                    変化記憶部
１２５                    最低値記憶部
１３０，６１０            時計部
１４０                    入力部
１５０，６２０            通信部
１６０                    報知部
ＢＬ                      バスライン
【図１】
2013167493.tif 000003
【図２】
2013167493.tif 000004
【図３】
2013167493.tif 000005
【図４】
2013167493.tif 000006
【図５】
2013167493.tif 000007
【図６】
2013167493.tif 000008
【図７】
2013167493.tif 000009
【図８】
2013167493.tif 000010
【図９】
2013167493.tif 000011
【図１０】
2013167493.tif 000012
【図１１】
2013167493.tif 000013
【図１２】
2013167493.tif 000014