(57)【要約】【課題】二重化したＣＰＵ装置とＩ／Ｏ装置との間の１つの経路が断線しても、通信を可能とするＩ／Ｏ装置、およびそのようなＩ／Ｏ装置を含む通信システムを提供する。【解決手段】通信部２０３は、内回りリング３０２を通じて第１のＣＰＵ装置からの第１の取得要求を受信することが可能で、外回りリング３０１を通じて第２のＣＰＵ装置からの第２の取得要求を受信することが可能である。入力部２０２は、第１の取得要求および第２の取得要求の一方に従って、アナログ入力デバイス３００から出力されるデータの入力処理をする。通信部２０３は、入力部２０２の出力を内回りリング３０２を通じて主系ＣＰＵ装置１００へ送信するとともに、外回りリング３０１を通じて従系ＣＰＵ装置１０１へ送信する。【選択図】図１
2018092512.tif 000002
【特許請求の範囲】
【請求項１】
第１系統のネットワークを通じて第１のＣＰＵ装置からの第１の取得要求を受信することが可能で、かつ第２系統のネットワークを通じて第２のＣＰＵ装置からの第２の取得要求を受信することが可能なように構成された通信部と、
前記第１の取得要求および前記第２の取得要求の一方に従って、入力デバイスから出力されるデータの入力処理をする入力部とを備え、
前記通信部は、前記入力部の出力を前記第１系統のネットワークを通じて前記第１のＣＰＵ装置へ送信するとともに、前記第２系統のネットワークを通じて前記第２のＣＰＵ装置へ送信する、Ｉ／Ｏ装置。
【請求項２】
第１のＣＰＵ装置と、
第２のＣＰＵ装置と、
第１系統のネットワークと、
第２系統のネットワークと、
各々が、前記第１系統のネットワークを通じて前記第１のＣＰＵ装置と接続し、かつ前記第２系統のネットワークを通じて前記第２のＣＰＵ装置と接続される複数のＩ／Ｏ装置と、
前記第１のＣＰＵ装置は、前記第１系統のネットワークを通じて、前記複数のＩ／Ｏ装置の全部または一部に第１の取得要求を送信し、
前記第２のＣＰＵ装置は、前記第２系統のネットワークを通じて、前記複数のＩ／Ｏ装置の全部または一部に第２の取得要求を送信し、
前記複数のＩ／Ｏ装置の各々は、
前記第１系統のネットワークを通じて前記第１のＣＰＵ装置からの自装置宛ての前記第１の取得要求を受信することが可能で、かつ前記第２系統のネットワークを通じて前記第２のＣＰＵ装置からの自装置宛ての前記第２の取得要求を受信することが可能なように構成された通信部と、
前記第１の取得要求および前記第２の取得要求のうちの一方に従って、入力デバイスから出力されるデータを取り込む入力部とを備え、
前記通信部は、前記入力部から出力される入力データを前記第１系統のネットワークを通じて前記第１のＣＰＵ装置へ送信するとともに、前記第２系統のネットワークを通じて前記第２のＣＰＵ装置へ送信する、通信システム。
【請求項３】
前記複数のＩ／Ｏ装置は、第１のＩ／Ｏ装置と、第２のＩ／Ｏ装置とを備え、
前記第１のＣＰＵ装置は、前記第１系統のネットワークを通じて、前記第１のＩ／Ｏ装置と前記第２のＩ／Ｏ装置に前記第１の取得要求を送信し、
前記第２のＣＰＵ装置は、前記第２系統のネットワークを通じて、前記第１のＩ／Ｏ装置と前記第２のＩ／Ｏ装置に前記第２の取得要求を送信する、請求項２記載の通信システム。
【請求項４】
前記複数のＩ／Ｏ装置は、グループに分類され、
前記第１のＣＰＵ装置は、前記複数のＩ／Ｏ装置のグループを識別する情報が付加された前記第１の取得要求を送信し、前記第２のＣＰＵ装置は、前記複数のＩ／Ｏ装置のグループを識別する情報が付加された前記第２の取得要求を送信し、
前記複数のＩ／Ｏ装置の各々の通信部は、
前記第１系統のネットワークを通じて前記第１のＣＰＵ装置からの自装置が属するグループを識別する情報が付加された前記第１の取得要求を受信することが可能で、かつ前記第２系統のネットワークを通じて前記第２のＣＰＵ装置からの自装置が属するグループを識別する情報が付加された前記第２の取得要求を受信することが可能なように構成される、請求項２記載の通信システム。
【請求項５】
前記第１のＣＰＵ装置は、
前記第１のＣＰＵ装置が前記第１の取得要求の準備が終了してから、前記第１のＣＰＵ装置における前記第１の取得要求と前記第２のＣＰＵ装置における前記第２の取得要求とが同時に送信可能となるまでの第１の待機時間を保持する第１の記憶部を備え、
前記第２のＣＰＵ装置は、
前記第２のＣＰＵ装置が前記第２の取得要求の準備が終了してから、前記第１のＣＰＵ装置における前記第１の取得要求と前記第２のＣＰＵ装置における前記第２の取得要求とが同時に送信可能となるまでの第２の待機時間を保持する第２の記憶部を備え、
前記第１のＣＰＵ装置は、
第２のＣＰＵ装置の第２の取得要求の準備と同期して前記第１の取得要求の準備を開始し、前記第１の取得要求の準備が終了後に、前記第１の記憶部に記憶されている前記第１の待機時間だけ待機した直後に、前記第１の取得要求を送信する第１の通信部を備え、
前記第２のＣＰＵ装置は、
第１のＣＰＵ装置の第１の取得要求の準備と同期して前記第２の取得要求の準備を開始し、前記第２の取得要求の準備が終了後に、前記第２の記憶部に記憶されている前記第２の待機時間だけ待機した直後に、前記第２の取得要求を送信する第２の通信部を備える、請求項４記載の通信システム。
【請求項６】
前記第１のＩ／Ｏ装置は、
前記第１のＩ／Ｏ装置が前記第１の取得要求を受信してから、前記第１のＩ／Ｏ装置および前記第２のＩ／Ｏ装置が同時に前記入力デバイスからのデータの入力処理を開始するまでの第３の待機時間を保持し、前記第１のＩ／Ｏ装置が前記第２の取得要求を受信してから、前記第１のＩ／Ｏ装置および前記第２のＩ／Ｏ装置が同時に前記入力デバイスからのデータの入力処理を開始するまでの第４の待機時間を保持する第３の記憶部を備え、
前記第２のＩ／Ｏ装置は、
前記第２のＩ／Ｏ装置が前記第１の取得要求を受信してから、前記第１のＩ／Ｏ装置および前記第２のＩ／Ｏ装置が同時に前記入力デバイスからのデータの入力処理を開始するまでの第５の待機時間を保持し、前記第２のＩ／Ｏ装置が前記第２の取得要求を受信してから、前記第１のＩ／Ｏ装置および前記第２のＩ／Ｏ装置が同時に前記入力デバイスからのデータの入力処理を開始するまでの第６の待機時間を保持する第４の記憶部を備え、
前記第１のＩ／Ｏ装置は、前記第１の取得要求と前記第２の取得要求のうちの前記第１の取得要求のみを受信した場合、または前記第１の取得要求を先に受信した場合に、前記第１の取得要求の受信の終了後、前記第３の記憶部に記憶されている前記第３の待機時間だけ待機した直後に、前記入力処理を開始し、
前記第１のＩ／Ｏ装置は、前記第１の取得要求と前記第２の取得要求のうちの前記第２の取得要求のみを受信した場合、または前記第２の取得要求を先に受信した場合に、前記第２の取得要求の受信の終了後、前記第３の記憶部に記憶されている前記第４の待機時間だけ待機した直後に、前記入力処理を開始し、
前記第２のＩ／Ｏ装置は、前記第１の取得要求と前記第２の取得要求のうちの前記第１の取得要求のみを受信した場合、または前記第１の取得要求を先に受信した場合に、前記第１の取得要求の受信の終了後、前記第４の記憶部に記憶されている前記第５の待機時間だけ待機した直後に、前記入力処理を開始し、
前記第２のＩ／Ｏ装置は、前記第１の取得要求と前記第２の取得要求のうちの前記第２の取得要求のみを受信した場合、または前記第２の取得要求を先に受信した場合に、前記第２の取得要求の受信の終了後、前記第４の記憶部に記憶されている前記第６の待機時間だけ待機した直後に、前記入力処理を開始する、請求項５記載の通信システム。
【請求項７】
前記第１のＩ／Ｏ装置の前記第３の記憶部は、
前記第１のＩ／Ｏ装置が前記入力処理を終了してから、前記第１のＩ／Ｏ装置および前記第２のＩ／Ｏ装置が同時に前記入力データの送信を開始するまでの第７の待機時間を保持し、
前記第２のＩ／Ｏ装置の前記第４の記憶部は、
前記第２のＩ／Ｏ装置が前記入力処理を終了してから、前記第１のＩ／Ｏ装置および前記第２のＩ／Ｏ装置が同時に前記入力データの送信を開始するまでの第８の待機時間を保持し、
前記第１のＩ／Ｏ装置は、前記入力処理を終了後に、前記第３の記憶部に記憶されている前記第７の待機時間だけ待機した直後に、前記入力データの送信を開始し、
前記第２のＩ／Ｏ装置は、前記入力処理を終了後に、前記第４の記憶部に記憶されている前記第８の待機時間だけ待機した直後に、前記入力データの送信を開始する、請求項６記載の通信システム。
【請求項８】
前記第１のＣＰＵ装置の前記第１の記憶部は、
前記第１のＣＰＵ装置が前記第１のＩ／Ｏ装置からの入力データを受信してから、前記第１のＣＰＵ装置および前記第２のＣＰＵ装置が同時に入力データの処理を開始するまでの第９の待機時間を保持し、前記第１のＣＰＵ装置が、前記第２のＩ／Ｏ装置からの入力データを受信してから、前記第１のＣＰＵ装置および前記第２のＣＰＵ装置が同時に入力データの処理を開始するまでの第１０の待機時間を保持し、
前記第２のＣＰＵ装置の前記第２の記憶部は、
前記第２のＣＰＵ装置が前記第１のＩ／Ｏ装置からの入力データを受信してから、前記第１のＣＰＵ装置および前記第２のＣＰＵ装置が同時に入力データの処理を開始するまでの第１１の待機時間を保持し、前記第２のＣＰＵ装置が前記第２のＩ／Ｏ装置からの入力データを受信してから、前記第１のＣＰＵ装置および前記第２のＣＰＵ装置が同時に入力データの処理を開始するまでの第１２の待機時間を保持し、
前記第１のＣＰＵ装置は、前記第１のＩ／Ｏ装置からの入力データを受信した後に、前記第１の記憶部に記憶されている前記第９の待機時間だけ待機した直後に、前記入力データの処理を開始し、前記第２のＩ／Ｏ装置からの入力データを受信した後に、前記第１の記憶部に記憶されている前記第１０の待機時間だけ待機した直後に、前記入力データの処理を開始し、
前記第２のＣＰＵ装置は、前記第１のＩ／Ｏ装置からの入力データ受信した後に、前記第２の記憶部に記憶されている前記第１１の待機時間だけ待機した直後に、前記入力データの処理を開始し、前記第２のＩ／Ｏ装置からの入力データを受信した後に、前記第２の記憶部に記憶されている前記第１２の待機時間だけ待機した直後に、前記入力データの処理を開始する、請求項７記載の通信システム。
【請求項９】
前記第１のＣＰＵ装置の前記第１の記憶部は、
前記第１のＣＰＵ装置が前記入力データの処理を終了してから、前記第１のＣＰＵ装置と前記第２のＣＰＵ装置とが同時に処理結果の送信を開始するまでの第１３の待機時間を保持し、
前記第２のＣＰＵ装置の前記第２の記憶部は、
前記第２のＣＰＵ装置が前記入力データの処理を終了してから、前記第１のＣＰＵ装置と前記第２のＣＰＵ装置とが同時に処理結果の送信を開始するまでの第１４の待機時間を保持し、
前記第１のＣＰＵ装置の前記第１の通信部は、前記入力データの処理の終了後に、前記第１の記憶部に記憶されている前記第１３の待機時間だけ待機した直後に、処理結果の前記第２のＣＰＵ装置への送信を開始し、
前記第２のＣＰＵ装置の前記第２の通信部は、前記入力データの処理の終了後に、前記第２の記憶部に記憶されている前記第１４の待機時間だけ待機した直後に、処理結果の前記第１のＣＰＵ装置への送信を開始する、請求項８記載の通信システム。
【請求項１０】
前記第１のＣＰＵ装置の前記第１の記憶部は、
前記第１のＣＰＵ装置が前記第２のＣＰＵ装置からの処理結果を受信してから、前記第１のＣＰＵ装置および前記第２のＣＰＵ装置とが同時に照合処理を開始するまでの第１５の待機時間を保持し、
前記第２のＣＰＵ装置の前記第２の記憶部は、
前記第２のＣＰＵ装置が前記第１のＣＰＵ装置からの処理結果を受信してから、前記第１のＣＰＵ装置および前記第２のＣＰＵ装置とが同時に照合処理を開始するまでの第１６の待機時間を保持し、
前記第１のＣＰＵ装置は、前記第２のＣＰＵ装置からの処理結果を受信した後に、前記第１の記憶部に記憶されている前記第１５の待機時間だけ待機した直後に、照合処理を開始し、
前記第２のＣＰＵ装置は、前記第１のＣＰＵ装置からの処理結果を受信した後に、前記第２の記憶部に記憶されている前記第１６の待機時間だけ待機した直後に、照合処理を開始する、請求項９記載の通信システム。
【請求項１１】
前記第１のＣＰＵ装置の前記第１の記憶部は、
前記第１のＣＰＵ装置が前記照合処理を終了してから、前記第１のＣＰＵ装置と前記第２のＣＰＵ装置とが同時に照合結果の送信を開始するまでの第１７の待機時間を保持し、
前記第２のＣＰＵ装置の前記第２の記憶部は、
前記第２のＣＰＵ装置が前記照合処理を終了してから、前記第１のＣＰＵ装置と前記第２のＣＰＵ装置とが同時に照合結果の送信を開始するまでの第１８の待機時間を保持し、
前記第１のＣＰＵ装置の前記第１の通信部は、前記照合処理を終了した後に、前記第１の記憶部に記憶されている前記第１７の待機時間だけ待機した直後に、照合結果を前記第２のＣＰＵ装置へ送信し、
前記第２のＣＰＵ装置の前記第２の通信部は、前記照合処理を終了した後に、前記第２の記憶部に記憶されている前記第１８の待機時間だけ待機した直後に、照合結果を前記第１のＣＰＵ装置へ送信する、請求項１０記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ／Ｏ通信、および通信システムに関し、多重化したネットワークに接続されるＩ／Ｏ装置、およびそのようなＩ／Ｏ装置を含む通信システムに関する。
【背景技術】
【０００２】
特許文献１には、二重系情報処理システムが開示されている。このシステムは、同期運転する２つの計算機系を備え、一方の計算機系に障害が発生しても、他方の計算機系がシステム機能を維持すべく運転する。この通信システムの各計算機系は、ＣＰＵ（Central Processing）と、記憶装置と、Ｉ／Ｏ（Input/Output）装置と、他方の計算機系へデータを転送する複数のデータ転送装置とを備える。
【０００３】
特許許文献１の通信システムでは、ＣＰＵとＩ／Ｏ装置とが二重化され、２つの計算機系の間は、複数の転送経路で接続される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−０５５０９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の通信システムにおいて、二重化した主系ＣＰＵ装置と従系ＣＰＵ装置に同一の経路でＩ／Ｏ装置から同一の値を返すので、経路が断線すると通信が不可能となる。
【０００６】
それゆえに、本発明の目的は、二重化したＣＰＵ装置とＩ／Ｏ装置との間の１つの経路が断線しても、通信を可能とするＩ／Ｏ装置、およびそのようなＩ／Ｏ装置を含む通信システムを提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の第１の局面のＩ／Ｏ装置は、第１系統のネットワークを通じて第１のＣＰＵ装置からの第１の取得要求を受信することが可能で、第２系統のネットワークを通じて第２のＣＰＵ装置からの第２の取得要求を受信することが可能な通信部と、第１の取得要求および第２の取得要求の一方に従って、入力デバイスから出力されるデータの入力処理をする入力部とを備える。通信部は、入力部の出力を第１系統のネットワークを通じて第１のＣＰＵ装置へ送信するとともに、第２系統のネットワークを通じて第２のＣＰＵ装置へ送信する。
【発明の効果】
【０００８】
本発明の第１の局面によれば、二重化したＣＰＵ装置とＩ／Ｏ装置との間の１つの経路が断線しても、通信を可能とすることができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１の通信システムの構成を表わす図である。
【図２】実施の形態２の通信システムの構成を表わす図である。
【図３】実施の形態３の通信システムの構成を表わす図である。
【図４】第１の取得要求および第２の取得要求のフレーム構成の一例を表わす図である。
【図５】実施の形態４における通信システムの処理の流れを表わす図である。
【図６】第１のＩ／Ｏ装置におけるコマンド種別およびフレーム長ごとの第３の待機時間ＷＴ３および第７の待機時間ＷＴ７の例を表わす図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図面を用いて説明する。
実施の形態１．
図１は、実施の形態１の通信システムの構成を表わす図である。
【００１１】
この通信システムは、主系ＣＰＵ装置１００と、従系ＣＰＵ装置１０１と、Ｉ／Ｏ装置２００と、アナログ入力デバイス３００と、リング型ネットワーク３０３とを備える。
【００１２】
リング型ネットワーク３０３は、内回りリング３０２と、外回りリング３０１とで構成される。主系ＣＰＵ装置１００と、Ｉ／Ｏ装置２００とは、内回りリング３０２によって接続される。従系ＣＰＵ装置１０１と、Ｉ／Ｏ装置２００とは、外回りリング３０１によって接続される。Ｉ／Ｏ装置２００は、アナログ入力デバイス３００に接続される。
【００１３】
ここで、主系ＣＰＵ装置および従系ＣＰＵ装置とは、たとえば、１つの計算機内のマスタＣＰＵおよびスレーブＣＰＵであってもよいし、単体のサーバおよび端末であってもよい。
【００１４】
アナログ入力デバイス３００は、たとえばセンサとすることができる。
Ｉ／Ｏ装置２００は、通信部２０３と、入力部２０２とを備える。入力部２０２は、Ａ／Ｄ変換器２０１を含む。
【００１５】
主系ＣＰＵ装置１００は、内回りリング３０２を通じてＩ／Ｏ装置２００に第１の取得要求を送信する。従系ＣＰＵ装置１０１は、外回りリング３０１を通じてＩ／Ｏ装置２００に、第２の取得要求を送信する。第１の取得要求と、第２の取得要求とは同一である。
【００１６】
通信部２０３は、内回りリング３０２を通じて主系ＣＰＵ装置１００からの第１の取得要求を受信することができ、外回りリング３０１を通じて従系ＣＰＵ装置１０１からの第２の取得要求を受信することができる。
【００１７】
入力部２０２は、第１の取得要求および第２の取得要求の一方に従って、アナログ入力デバイス３００から出力されるアナログデータを取り込む。たとえば、入力部２０２は、第１の取得要求と第２の取得要求のうち、先に受信した取得要求に従って、アナログデータを取り込むこととすることができる。入力部２０１内のＡ／Ｄ変換器２０１は、入力されたアナログデータをデジタルデータに変換する。
【００１８】
通信部２０３は、入力部２０２から出力されるデジタルデータを外回りリング３０１を通じて主系ＣＰＵ装置１００に送信するとともに、内回りリング３０２を通じて従系ＣＰＵ装置１０１に返送する。
【００１９】
以上のように、本実施の形態によれば、Ｉ／Ｏ装置が二重化されていないので、複数のＣＰＵ装置間でＩ／Ｏ装置から取得したデータに相違が発生しないようにすることができる。また、Ｉ／Ｏ装置が二重化されていないので、２つのアナログ入力デバイスからのアナログデータをデジタルデータに変換するＡ／Ｄ変換器の特性の相違によって、変換されたデータに相違が生じるという問題も生じないようにすることができる。
【００２０】
また、本実施の形態によれば、二重化された主系ＣＰＵ装置１００と従系ＣＰＵ装置１０１に、Ｉ／Ｏ装置２００から２つの経路で同一のデータを送信するので、主系ＣＰＵ装置１００と従系ＣＰＵ装置１０１が同一のデータに基づいて同一の処理を行うことができる。これによって、一方のＣＰＵ装置が故障または一方のＣＰＵ装置と接続されるネットワークが断線したとしても、他方のＣＰＵ装置および他方のＣＰＵ装置と接続されるネットワークが正常であれば、通信システムは、稼働し続けることが可能である。また、一方のＣＰＵ装置の動作を他方のＣＰＵ装置で監視することが可能となり、通信システムの信頼性を向上させることができる。
【００２１】
実施の形態２．
本実施の形態では、Ｉ／Ｏ装置を二重化することによって、通信ステムの信頼性を更に高める。
【００２２】
図２は、実施の形態２の通信システムの構成を表わす図である。
この通信システムは、主系ＣＰＵ装置１００と、従系ＣＰＵ装置１０１と、第１のＩ／Ｏ装置２００ａと、第２のＩ／Ｏ装置２００ｂと、第１のアナログ入力デバイス３００ａと、第２のアナログ入力デバイス３００ｂと、リング型ネットワーク３０３とを備える。
【００２３】
リング型ネットワーク３０３は、内回りリング３０２と、外回りリング３０１とで構成される。主系ＣＰＵ装置１００と、第１のＩ／Ｏ装置２００ａと、第２のＩ／Ｏ装置２００ｂとは、内回りリング３０２に接続される。従系ＣＰＵ装置１０１と、第１のＩ／Ｏ装置２００ａと、第２のＩ／Ｏ装置２００ｂとは、外回りリング３０１に接続される。
【００２４】
第１のアナログ入力デバイス３００ａと、第２のアナログ入力デバイス３００ｂとは、まったく同一のものであってもよい。すなわち、第１のＩ／Ｏ装置２００ａと第２のＩ／Ｏ装置２００ｂは、１つのアナログ入力デバイスに共通に接続されるものとしてもよい。あるいは、第１のアナログ入力デバイス３００ａと第２のアナログ入力デバイス３００ｂとは、種類が同じ（たとえば、温度センサなど）であるが、別箇のものであるとしてもよい。
【００２５】
主系ＣＰＵ装置１００は、第１の記憶部１４を備える。従系ＣＰＵ装置１０１は、第２の記憶部２４を備える。第１のＩ／Ｏ装置２００ａは、通信部２０３ａと、入力部２０２ａと、第３の記憶部２０４ａとを備える。入力部２０２ａは、Ａ／Ｄ変換器２０１ａを含む。第２のＩ／Ｏ装置２００ｂは、通信部２０３ｂと、入力部２０２ｂと、第４の記憶部２０４ｂとを備える。入力部２０２ｂは、Ａ／Ｄ変換器２０１ｂを含む。
【００２６】
主系ＣＰＵ装置１００は、内回りリング３０２を通じて第１のＩ／Ｏ装置２００ａおよび第２のＩ／Ｏ装置２００ｂに第１の取得要求を送信する。従系ＣＰＵ装置１０１は、外回りリング３０１を通じて第１のＩ／Ｏ装置２００ａおよび第２のＩ／Ｏ装置２００ｂに第２の取得要求を送信する。第１の取得要求と、第２の取得要求とは同一である。
【００２７】
主系ＣＰＵ装置１００内の第１の記憶部１４は、主系ＣＰＵ装置１００内の通信処理、照合処理、照合結果の確認処理などに必要なデータを記憶する。従系ＣＰＵ装置１０１内の第２の記憶部２４は、従系ＣＰＵ装置１０１内の通信処理、照合処理、照合結果の確認処理などに必要なデータを記憶する。
【００２８】
通信部２０３ａは、内回りリング３０２を通じて主系ＣＰＵ装置１００からの第１の取得要求を受信することができ、外回りリング３０１を通じて従系ＣＰＵ装置１０１からの第２の取得要求を受信することができる。
【００２９】
入力部２０２ａは、第１の取得要求および第２の取得要求の一方に従って、アナログ入力デバイス３００ａから出力されるアナログデータを取り込む。たとえば、入力部２０２ａは、第１の取得要求と第２の取得要求のうち、先に受信した取得要求に従って、アナログデータを取り込むこととすることができる。入力部２０１ａ内のＡ／Ｄ変換器２０１ａは、入力されたアナログデータをデジタルデータに変換する。
【００３０】
通信部２０３ａは、入力部２０２ａから出力されるデジタルデータを外回りリング３０１を通じて主系ＣＰＵ装置１００に送信するとともに、内回りリング３０２を通じて従系ＣＰＵ装置１０１に送信する。
【００３１】
第３の記憶部２０４ａは、第１のＩ／Ｏ装置２００ａ内のアナログデータの入力処理、通信処理などに必要なデータを記憶する。
【００３２】
通信部２０３ｂは、内回りリング３０２を介して主系ＣＰＵ装置１００からの第１の取得要求を受信することができ、外回りリング３０１を介して従系ＣＰＵ装置１０１からの第２の取得要求を受信することができる。
【００３３】
入力部２０２ｂは、第１の取得要求および第２の取得要求の一方に従って、アナログ入力デバイス３００ｂから出力されるアナログデータを取り込む。たとえば、入力部２０２ｂは、第１の取得要求と第２の取得要求のうち、先に受信した取得要求に従って、アナログデータを取り込むこととすることができる。入力部２０１ｂ内のＡ／Ｄ変換器２０１ｂは、入力されたアナログデータをデジタルデータに変換する。
【００３４】
通信部２０３ｂは、入力部２０２ｂから出力されるデジタルデータを外回りリング３０１を通じて主系ＣＰＵ装置１００に送信するとともに、内回りリング３０２を介して従系ＣＰＵ装置１０１に送信する。
【００３５】
第４の記憶部２０４ｂは、第２のＩ／Ｏ装置２００ｂ内のアナログデータの入力処理、通信処理などに必要なデータを記憶する。
【００３６】
主系ＣＰＵ装置１００および従系ＣＰＵ装置１０１は、第１のＩ／Ｏ装置２００ａと第２のＩ／Ｏ装置２００ｂのうちのいずれかが故障していれば、故障していない方からのデータを取得することができる。
【００３７】
また、主系ＣＰＵ装置１００および従系ＣＰＵ装置１０１は、第１のＩ／Ｏ装置２００ａと第２のＩ／Ｏ装置２００ｂのいずれも正常である場合には、第１のＩ／Ｏ装置２００ａのデータと第２のＩ／Ｏ装置２００ｂのデータを取得する。この場合には、主系ＣＰＵ装置１００および従系ＣＰＵ装置１０１の両方が、予め定めた方のデータを共通に使用することにしてもよい。
【００３８】
以上のように、本実施の形態によれば、実施の形態１と同様に、ＣＰＵ装置が二重化されていることによって、一方のＣＰＵ装置が故障しても、他方のＣＰＵ装置によって、通信システムの稼働を維持することができる。
【００３９】
また、特許文献１に記載の通信システムと異なり、主系ＣＰＵ装置１００および従系ＣＰＵ装置１０１は、それぞれ第１のＩ／Ｏ装置２００ａと第２のＩ／Ｏ装置２００ｂの両方に取得要求を送信することが可能である。主系ＣＰＵ装置１００と、従系ＣＰＵ装置１０１が、同一のＩ／Ｏ装置から送信されるデータを利用することによって、Ｉ／Ｏ装置間の同期ずれの問題を回避することができる。特に、２つのＩ／Ｏ装置がアナログ入力デバイスに接続されており、入力されるアナログデータをＡ／Ｄ変換する場合に、Ａ／Ｄ変換器の特性による変換誤差が生じるのを回避できる。
【００４０】
実施の形態３．
図３は、実施の形態３の通信システムの構成を表わす図である。
【００４１】
この通信システムは、主系ＣＰＵ装置１００と、従系ＣＰＵ装置１０１と、Ｉ／Ｏ装置Ａ０，Ａ１，Ａ２と、Ｉ／Ｏ装置Ｂ０，Ｂ１，Ｂ２と、Ｉ／Ｏ装置Ｃ０，Ｃ１，Ｃ２と、リング型ネットワーク３０３とを備える。
【００４２】
各Ｉ／Ｏ装置は、図示しないが、実施の形態２と同様に、アナログ入力デバイスと接続される。
【００４３】
主系ＣＰＵ装置１００、従系ＣＰＵ装置１０１、リング型ネットワーク３０３は、実施の形態２で説明したものとほぼ同様の構成および機能を有する。複数のＩ／Ｏ装置Ａ０，Ａ１，Ａ２，Ｂ０，Ｂ１，Ｂ２，Ｃ０，Ｃ１，Ｃ２は、実施の形態２で説明した第１のＩ／Ｏ装置２００ａまたは第２のＩ／Ｏ装置２００ｂとほぼ同様の構成および機能を有する。以下、相違する点について説明する。
【００４４】
主系ＣＰＵ装置１００と、複数のＩ／Ｏ装置Ａ０，Ａ１，Ａ２，Ｂ０，Ｂ１，Ｂ２，Ｃ０，Ｃ１，Ｃ２は、内回りリング３０２に接続される。従系ＣＰＵ装置１０１と、複数のＩ／Ｏ装置Ａ０，Ａ１，Ａ２，Ｂ０，Ｂ１，Ｂ２，Ｃ０，Ｃ１，Ｃ２は、外回りリング３０１に接続される。
【００４５】
Ｉ／Ｏ装置Ａ０，Ａ１，Ａ２は、同期化グループ１０００Ａに属する。Ｉ／Ｏ装置Ｂ０，Ｂ１，Ｂ２は、同期化グループ１０００Ｂに属する。Ｉ／Ｏ装置Ｃ０，Ｃ１，Ｃ２は、同期化グループ１０００Ｃに属する。
【００４６】
主系ＣＰＵ装置１００は、複数のＩ／Ｏ装置のグループを識別する情報が付加された第１の取得要求を送信する。従系ＣＰＵ装置１０１は、複数のＩ／Ｏ装置のグループを識別する情報が付加された第２の取得要求を送信する。
【００４７】
第１の取得要求および第２の取得要求に含まれるグループを識別する情報は、同一とすることができる。したがって、同一グループに属するＩ／Ｏ装置に第１の取得要求と第２の取得要求が送られる。あるいは、第１の取得要求および第２の取得要求に含まれるグループを識別する情報は、異なるものとすることができる。したがって、あるグループに属するＩ／Ｏ装置に第１の取得要求が送られ、別のグループに属するＩ／Ｏ装置に第２の取得要求が送られる。
【００４８】
図４は、第１の取得要求および第２の取得要求のフレーム構成の一例を表わす図である。
【００４９】
第１の取得要求および第２の取得要求のフレームは、コマンド種別４００と、グループＩＤ４０１と、フレーム長４０２と、送信データ４０３とを含むことができる。
【００５０】
コマンド種別４００は、第１の取得要求または第２の取得要求を表わす情報である。
グループＩＤ４０１は、宛先のＩ／Ｏ装置が属するグループを識別する情報である。
【００５１】
フレーム長４０２は、このフレームの長さを表す。
送信データ４０３は、第１の取得要求または第２の取得要求にさらに付加されるデータであるが、フレームに送信データ４０３が含まれないものとしてもよい。
【００５２】
複数のＩ／Ｏ装置Ａ０，Ａ１，Ａ２，Ｂ０，Ｂ１，Ｂ２，Ｃ０，Ｃ１，Ｃ２の各々の通信部は、内回りリング３０２を通じて主系ＣＰＵ装置１００からの自装置が属するグループを識別する情報が付加された第１の取得要求を受信することができる。
【００５３】
複数のＩ／Ｏ装置Ａ０，Ａ１，Ａ２，Ｂ０，Ｂ１，Ｂ２，Ｃ０，Ｃ１，Ｃ２の各々の通信部は、外回りリング３０１を通じて従系ＣＰＵ装置１０１からの自装置が属するグループを識別する情報が付加された第２の取得要求を受信することができる。
【００５４】
以上のように、本実施の形態によれば、複数のＩ／Ｏ装置の中のグループを指定して、第１の取得要求および第２の取得要求を送ることができる。
【００５５】
実施の形態４．
複数のＩ／Ｏ装置間の同期ずれを補正するために、ＩＥＥＥ１５８８で規定された同期化手法を適用することが考えられる。ＩＥＥＥ１５８８を用いると、複数のＩ／Ｏ装置の時刻を高い精度で合わせることが可能である。しかし、ＩＥＥＥ１５８８だけでは、二重化された通信システムにおいて、複数のＣＰＵ装置の内部の処理時間の相違、複数のＩ／Ｏ装置内部の処理時間の相違、複数のＣＰＵ装置と複数のＩ／Ｏ装置間のネットワーク間の伝送時間の相違、複数のＣＰＵ装置間のネットワークの伝送時間の相違によって、複数のＩ／Ｏ装置を高精度に同期化させることが困難である。
【００５６】
本実施の形態では、このような相違を考慮することによって、複数のＩ／Ｏ装置を高精度に同期化させる。
【００５７】
図５は、実施の形態４における通信システムの処理の流れを表わす図である。
図５に示すように、この通信システムの処理手順は、Ｉ／Ｏ要求フェーズＰｈ１と、Ｉ／Ｏ応答フェーズＰｈ２と、相互監視フェーズＰｈ３とからなる。
【００５８】
Ｉ／Ｏ要求フェーズＰｈ１とは、主系ＣＰＵ装置１００および従系ＣＰＵ装置１０１が取得要求を送信し、第１のＩ／Ｏ装置２００ａおよび第２のＩ／Ｏ装置２００ｂが取得要求を受信し、取得要求に応じてアナログ入力デバイス３００ａおよびアナログ入力デバイス３００ｂからのデータの入力処理をするフェーズである。入力処理されたデータを入力データとする。
【００５９】
Ｉ／Ｏ応答フェーズＰｈ２とは、第１のＩ／Ｏ装置２００ａおよび第２のＩ／Ｏ装置２００ｂが、入力データを送信し、主系ＣＰＵ装置１００および従系ＣＰＵ装置１０１が、入力データの受信処理をするフェーズである。
【００６０】
相互監視フェーズＰｈ３とは、主系ＣＰＵ装置１００で受信したデータと従系ＣＰＵ装置で受信したデータが照合されるフェーズである。
【００６１】
Ｉ／Ｏ要求フェーズＰｈ１、Ｉ／Ｏ応答フェーズＰｈ２、および相互監視フェーズＰｈ３の各フェーズにおいて、同期化が行われる。そのために、まず、主系ＣＰＵ装置１００、従系ＣＰＵ装置１０１、第１のＩ／Ｏ装置２００ａ、および第２のＩ／Ｏ装置２００ｂの間で、ＩＥＥＥ１５８８によって、高い精度で時刻が同一となるように調整される。
【００６２】
次に、事前準備として、下記（１Ａ）〜（７Ａ）に示す待機時間を測定し、測定結果を各装置の記憶部に保持する。
【００６３】
（１Ａ）  第１の取得要求の送信と第２の取得要求の送信の同期をとるために以下を求める。
【００６４】
主系ＣＰＵ装置１００が第１の取得要求を準備できるまでの時間（以下、主系ＣＰＵ装置内の要求準備時間Ｔｍｐ）を求める。従系ＣＰＵ装置１０１が第２の取得要求を準備できるまでの時間（以下、従系ＣＰＵ装置内の要求準備時間Ｔｓｐ）を求める。
【００６５】
ここで、第１の取得要求が準備できたとは、主系ＣＰＵ装置１００内のＣＰＵから入出力命令が発行されて、主系ＣＰＵ装置１００の入出力ポートの要求が出力された状態となることをいう。第２の取得要求が準備できたとは、従系ＣＰＵ装置１０１内のＣＰＵから入出力命令が発行されて、従系ＣＰＵ装置１０１の入出力ポートの要求が出力された状態とることをいう。
【００６６】
主系ＣＰＵ装置１００が第１の取得要求の準備を終了してから、主系ＣＰＵ装置１００における第１の取得要求と従系ＣＰＵ装置１０１における第２の取得要求とが同時に送信可能となるまでの第１の待機時間ＷＴ１を求める。
【００６７】
従系ＣＰＵ装置１０１が第２の取得要求の準備を終了してから、主系ＣＰＵ装置１００における第１の取得要求と従系ＣＰＵ装置１０１における第２の取得要求とが同時に送信可能となるまでの第２の待機時間ＷＴ２を求める。
【００６８】
また、主系ＣＰＵ装置１００の第１の取得要求の準備と従系ＣＰＵ装置１０１の第２の取得要求の準備とが同時に開始されてから、主系ＣＰＵ装置１００における第１の取得要求と従系ＣＰＵ装置１０１における第２の取得要求とが同時に送信可能となるまでの時間（以下、第１同期予約時間Ｔ１）とを求める。
【００６９】
ここで、Ｔ１＝Ｔｍｐ＋ＷＴ１＝Ｔｓｐ＋ＷＴ２の関係がある。ただし、ＷＴ１およびＷＴ２は０以上とする。たとえば、ＷＴ１とＷＴ２のうち小さい方を０、またはマージンを考慮して０以外の一定値（マージン）とすることができる。
【００７０】
第１の待機時間ＷＴ１が主系ＣＰＵ装置１００の第１の記憶部１４に記憶される。第２の待機時間ＷＴ２が従系ＣＰＵ装置１０１の第２の記憶部２４に記憶される。
【００７１】
（２Ａ）  Ｉ／Ｏ装置２００ａによるアナログデータの入力処理とＩ／Ｏ装置２００ｂによるアナログデータの入力処理の同期をとるために以下を求める。
【００７２】
２つのＣＰＵ装置１００，１０１から２つのＩ／Ｏ装置２００ａ，２００ｂへの通信に要する伝送時間を測定する。すなわち、主系ＣＰＵ装置１００から第１のＩ／Ｏ装置２００ａまでの通信に要する伝送時間Ｔｍ１と、主系ＣＰＵ装置１００から第２のＩ／Ｏ装置２００ｂまでの通信に要する伝送時間Ｔｍ２と、従系ＣＰＵ装置１０１から第１のＩ／Ｏ装置２００ａまでの通信に要する伝送時間Ｔｓ１と、従系ＣＰＵ装置１０１から第２のＩ／Ｏ装置２００ｂまでの通信に要する伝送時間Ｔｓ２とが測定される。
【００７３】
第１のＩ／Ｏ装置２００ａが第１の取得要求を受信してから、第１のＩ／Ｏ装置２００ａおよび第２のＩ／Ｏ装置２００ｂとが同時にアナログ入力デバイス３００ａ，３００ｂからのデータの入力処理を開始するまでの第３の待機時間ＷＴ３を求める。
【００７４】
第１のＩ／Ｏ装置２００ａが第２の取得要求を受信してから、第１のＩ／Ｏ装置２００ａおよび第２のＩ／Ｏ装置２００ｂとが同時にアナログ入力デバイス３００ａ，３００ｂからのデータの入力処理を開始するまでの第４の待機時間ＷＴ４を求める。
【００７５】
第２のＩ／Ｏ装置２００ｂが第１の取得要求を受信してから、第１のＩ／Ｏ装置２００ａおよび第２のＩ／Ｏ装置２００ｂとが同時にアナログ入力デバイス３００ａ，３００ｂからのデータの入力処理を開始するまでの第５の待機時間ＷＴ５を求める。
【００７６】
第２のＩ／Ｏ装置２００ｂが第２の取得要求を受信してから、第１のＩ／Ｏ装置２００ａおよび第２のＩ／Ｏ装置２００ｂとが同時にアナログ入力デバイス３００ａ，３００ｂからのデータの入力処理を開始するまでの第６の待機時間ＷＴ６を求める。
【００７７】
また、主系ＣＰＵ装置１００の第１の取得要求と従系ＣＰＵ装置１０１の第２の取得要求とが同時に送信されてから、第１のＩ／Ｏ装置２００ａおよび第２のＩ／Ｏ装置２００ｂとが同時にアナログ入力デバイス３００ａ，３００ｂからのデータの入力処理を開始するまでの時間（以下、第２同期予約時間Ｔ２）を求める。
【００７８】
Ｔ２＝Ｔｍ１＋ＷＴ３＝Ｔｓ１＋ＷＴ４＝Ｔｍ２＋ＷＴ５＝Ｔｓ２＋ＷＴ６の関係が成立する。ただし、ＷＴ３〜ＷＴ６は０以上とする。たとえば、ＷＴ３〜ＷＴ６の中の最小値を０、またはマージンを考慮して０以外の一定値（マージン）とすることができる。
【００７９】
第３の待機時間ＷＴ３および第４の待機時間ＷＴ４が第１のＩ／Ｏ装置２００ａの第３の記憶部２０４ａに記憶される。第５の待機時間ＷＴ５および第６の待機時間ＷＴ６が第２のＩ／Ｏ装置２００ｂの第４の記憶部２０４ｂに記憶される。
【００８０】
（３Ａ）  Ｉ／Ｏ装置２００ａによる入力データの送信とＩ／Ｏ装置２００ｂによる入力データの送信の同期をとるために以下を求める。
【００８１】
第１のＩ／Ｏ装置２００ａがアナログ入力デバイス３００ａからのデータの入力処理に要する時間（以下、第１のＩ／Ｏ装置内の入力処理時間Ｔｉ１）を測定する。第２のＩ／Ｏ装置２００ｂがアナログ入力デバイス３００ａからのデータの入力処理に要する時間（以下、第２のＩ／Ｏ装置内の入力処理時間Ｔｉ２）を測定する。
【００８２】
第１のＩ／Ｏ装置２００ａが入力処理を終了してから、第１のＩ／Ｏ装置２００ａおよび第２のＩ／Ｏ装置２００ｂとが同時に入力データの送信を開始するまでの第７の待機時間ＷＴ７を求める。
【００８３】
第２のＩ／Ｏ装置２００ｂが入力処理を終了してから、第１のＩ／Ｏ装置２００ａおよび第２のＩ／Ｏ装置２００ｂとが同時に入力データの送信を開始するまでの第８の待機時間ＷＴ８を求める。
【００８４】
また、第１のＩ／Ｏ装置２００ａの入力処理と第２のＩ／Ｏ装置２００ｂの入力処理が同時に開始されてから、第１のＩ／Ｏ装置２００ａおよび第２のＩ／Ｏ装置２００ｂとが同時に入力データの送信を開始するまでの時間（以下、第３同期予約時間Ｔ３）求める。
【００８５】
Ｔ３＝Ｔｉ１＋ＷＴ７＝Ｔｉ２＋ＷＴ８の関係が成立する。ただし、ＷＴ７およびＷＴ８は０以上とする。たとえば、ＷＴ７とＷＴ８のうち小さい方を０、またはマージンを考慮して０以外の一定値（マージン）とすることができる。
【００８６】
第７の待機時間ＷＴ７が第１のＩ／Ｏ装置２００ａの第３の記憶部２０４ａに記憶される。第８の待機時間ＷＴ８が第２のＩ／Ｏ装置２００ｂの第４の記憶部２０４ｂに記憶される。
【００８７】
（４Ａ）  主系ＣＰＵ装置１００による受信した入力データの処理と従系ＣＰＵ装置１０１による受信した入力データの処理の同期をとるために以下を求める。
【００８８】
２つのＩ／Ｏ装置２００ａ，２００ｂから２つのＣＰＵ装置１００，１０１への通信に要する伝送時間を測定する。すなわち、第１のＩ／Ｏ装置２００ａから主系ＣＰＵ装置１００までの通信に要する伝送時間Ｔ１ｍと、第２のＩ／Ｏ装置２００ｂから主系ＣＰＵ装置１００までの通信に要する伝送時間Ｔ２ｍと、第１のＩ／Ｏ装置２００ａから従系ＣＰＵ装置１０１までの通信に要する伝送時間Ｔ１ｓと、第２のＩ／Ｏ装置２００ｂから従系ＣＰＵ装置１０１までの通信に要する伝送時間Ｔ２ｓとが測定される。
【００８９】
主系ＣＰＵ装置１００が第１のＩ／Ｏ装置２００ａからの入力データを受信してから、主系ＣＰＵ装置１００および従系ＣＰＵ装置１０１とが同時に受信した入力データの処理を開始するまでの第９の待機時間ＷＴ９を求める。
【００９０】
主系ＣＰＵ装置１００が第２のＩ／Ｏ装置２００ｂからの入力データを受信してから、主系ＣＰＵ装置１００および従系ＣＰＵ装置１０１とが同時に受信した入力データの処理を開始するまでの第１０の待機時間ＷＴ１０を求める。
【００９１】
従系ＣＰＵ装置１０１が第１のＩ／Ｏ装置２００ａからの入力データを受信してから、主系ＣＰＵ装置１００および従系ＣＰＵ装置１０１とが同時に受信した入力データの処理を開始するまでの第１１の待機時間ＷＴ１１を求める。
【００９２】
従系ＣＰＵ装置１０１が第２のＩ／Ｏ装置２００ｂからの入力データを受信してから、主系ＣＰＵ装置１００および従系ＣＰＵ装置１０１とが同時に受信した入力データの処理を開始するまでの第１２の待機時間をＷＴ１２を求める。
【００９３】
また、第１のＩ／Ｏ装置２００ａによる入力データの送信と、第２のＩ／Ｏ装置２００ｂによる入力データの送信とが同時に行われてから、主系ＣＰＵ装置１００および従系ＣＰＵ装置１０１とが同時に受信した入力データの処理を開始するまでの時間（以下、第４同期予約時間Ｔ４）を求める。
【００９４】
Ｔ４＝Ｔ１ｍ＋ＷＴ９＝Ｔ１ｓ＋ＷＴ１０＝Ｔ２ｍ＋ＷＴ１１＝Ｔ２ｓ＋ＷＴ１２の関係が成立する。ただし、ＷＴ９〜ＷＴ１２は０以上とする。たとえば、ＷＴ９〜ＷＴ１２の中の最小値を０、またはマージンを考慮して０以外の一定値（マージン）とすることができる。
【００９５】
第９の待機時間ＷＴ９および第１０の待機時間ＷＴ１０が主系ＣＰＵ装置１００の第１の記憶部１４に記憶される。第１１の待機時間ＷＴ１１および第１２の待機時間ＷＴ１２が従系ＣＰＵ装置１０１の第２の記憶部２４に記憶される。
【００９６】
（５Ａ）  主系ＣＰＵ装置１００による入力データを処理した結果（以下、処理結果）の従系ＣＰＵ装置１０１への送信と従系ＣＰＵ装置１０１による入力データを処理した結果（処理結果）の主系ＣＰＵ装置１００への送信との同期をとるために以下を求める。
【００９７】
主系ＣＰＵ装置１００が入力データの処理に要する時間（以下、主系ＣＰＵ装置内の処理時間Ｔｍｑ）と、従系ＣＰＵ装置１０１が入力データの処理に要する時間（以下、従系ＣＰＵ装置内の処理時間Ｔｓｑ）を求める。
【００９８】
主系ＣＰＵ装置１００が、受信した入力データの処理を終了してから、主系ＣＰＵ装置１００と従系ＣＰＵ装置１０１とが同時に処理結果の送信を開始するまでの第１３の待機時間ＷＴ１３を求める。
【００９９】
従系ＣＰＵ装置１０１が、受信した入力データの処理を終了してから、主系ＣＰＵ装置１００と従系ＣＰＵ装置１０１とが同時に処理結果の送信を開始するまでの第１４の待機時間ＷＴ１４を求める。
【０１００】
また、主系ＣＰＵ装置１００による入力データの処理と、従系ＣＰＵ装置１０１による入力データの処理とが同時に開始されてから、主系ＣＰＵ装置１００と従系ＣＰＵ装置１０１とが同時に処理結果の送信を開始するまでの時間（以下、第５同期予約時間Ｔ５）を求める。
【０１０１】
Ｔ５＝Ｔｍｑ＋ＷＴ１３＝Ｔｓｑ＋ＷＴ１４の関係が成立する。ただし、ＷＴ１３およびＷＴ１４は０以上とする。たとえば、ＷＴ１３とＷＴ１４のうち小さい方を０、またはマージンを考慮して０以外の一定値（マージン）とすることができる。
【０１０２】
第１３の待機時間ＷＴ１３が主系ＣＰＵ装置１００の第１の記憶部１４に記憶される。第１４の待機時間ＷＴ１４が従系ＣＰＵ装置１０１の第２の記憶部２４に記憶される。
【０１０３】
（６Ａ）  主系ＣＰＵ装置１００による処理結果の照合処理と、従系ＣＰＵ装置１００による処理結果の照合処理の同期をとるために以下を求める。
【０１０４】
主系ＣＰＵ装置１００から従系ＣＰＵ装置１０１までの通信に要する伝送時間Ｔｍｓと、従系ＣＰＵ装置１０１から主系ＣＰＵ装置１００までの通信に要する伝送時間Ｔｓｍとを測定する。
【０１０５】
主系ＣＰＵ装置１００が、従系ＣＰＵ装置１０１からの処理結果を受信してから、主系ＣＰＵ装置１００と従系ＣＰＵ装置１０１とが同時に処理結果の照合処理を開始するまでの第１５の待機時間ＷＴ１５を求める。
【０１０６】
従系ＣＰＵ装置１０１が、主系ＣＰＵ装置１００からの処理結果を受信してから、主系ＣＰＵ装置１００と従系ＣＰＵ装置１０１とが同時に処理結果の照合処理を開始するまでの第１６の待機時間ＷＴ１６を求める。
【０１０７】
主系ＣＰＵ装置１００による処理結果の照合処理とは、従系ＣＰＵ装置１０１から送られた処理結果と、自装置の処理結果とを照合する処理である。従系ＣＰＵ装置１０１による処理結果の照合処理とは、主系ＣＰＵ装置１００から送られた処理結果と、自装置の処理結果とを照合する処理である。
【０１０８】
主系ＣＰＵ装置１００と従系ＣＰＵ装置１０１とが同時に処理結果の送信を開始してから、主系ＣＰＵ装置１００と従系ＣＰＵ装置１０１とが同時に処理結果の照合処理を開始するまでの時間（以下、第６同期予約時間Ｔ６）を求める。
【０１０９】
Ｔ６＝Ｔｍｓ＋ＷＴ１５＝Ｔｓｍ＋ＷＴ１６の関係が成立する。ただし、ＷＴ１５およびＷＴ１６は０以上とする。たとえば、ＷＴ１５とＷＴ１６のうち小さい方を０、またはマージンを考慮して０以外の一定値（マージン）とすることができる。
【０１１０】
第１５の待機時間ＷＴ１５が主系ＣＰＵ装置１００の第１の記憶部１４に記憶される。第１６の待機時間ＷＴ１６が従系ＣＰＵ装置１０１の第２の記憶部２４に記憶される。
【０１１１】
（７Ａ）  主系ＣＰＵ装置１００による処理結果の照合結果と、従系ＣＰＵ装置１００による処理結果の照合結果の送信との同期をとるために以下を求める。
【０１１２】
主系ＣＰＵ装置１００が処理結果の照合処理に要する時間（以下、主系ＣＰＵ装置内の照合処理時間Ｔｍｃ）と、従系ＣＰＵ装置１０１が処理結果の照合処理に要する時間（以下、従系ＣＰＵ装置内の照合処理時間Ｔｓｃ）とを求める。
【０１１３】
主系ＣＰＵ装置１００が処理結果の照合処理を終了してから、主系ＣＰＵ装置１００から従系ＣＰＵ装置１０１への照合結果の送信と、従系ＣＰＵ装置１０１から主系ＣＰＵ装置１００への照合結果の送信とが同時に行われるまでの第１７の待機時間ＷＴ１７を求める。
【０１１４】
従系ＣＰＵ装置１０１が処理結果の照合処理を終了してから、主系ＣＰＵ装置１００から従系ＣＰＵ装置１０１への照合結果の送信と、従系ＣＰＵ装置１０１から主系ＣＰＵ装置１００への照合結果の送信とが同時に行われるまでの第１８の待機時間ＷＴ１８を求める。
【０１１５】
また、主系ＣＰＵ装置１００と従系ＣＰＵ装置１０１とが同時に処理結果の照合処理を開始してから、主系ＣＰＵ装置１００から従系ＣＰＵ装置１０１への照合結果の送信と、従系ＣＰＵ装置１０１から主系ＣＰＵ装置１００への照合結果の送信とが同時に行われるまでの時間（以下、第７同期予約時間Ｔ７）を求める。
【０１１６】
Ｔ７＝Ｔｍｃ＋ＷＴ１７＝Ｔｓｃ＋ＷＴ１８の関係が成り立つ。ただし、ＷＴ１７およびＷＴ１８は０以上とする。たとえば、ＷＴ１７とＷＴ１８のうち小さい方を０、またはマージンを考慮して０以外の一定値（マージン）とすることができる。
【０１１７】
第１７の待機時間ＷＴ１７が主系ＣＰＵ装置１００の第１の記憶部１４に記憶される。第１８の待機時間ＷＴ１８が従系ＣＰＵ装置１０１の第２の記憶部２４に記憶される。
【０１１８】
次に、実施形態４による通信システムの処理の流れを図５を参照して説明する。
（１Ｂ）  Ｉ／Ｏ要求フェーズでは、主系ＣＰＵ装置１００と従系ＣＰＵ装置１０１のどちらかが同期マスタとなる。同期マスタのＣＰＵ装置は、スレーブのＣＰＵ装置が同期マスタのＣＰＵ装置と同期をとるための制御を行なう。
【０１１９】
主系ＣＰＵ装置１００の通信部２０３ａは、従系ＣＰＵ装置１０１の第２の取得要求の準備と同期して第１の取得要求の準備を開始する。たとえば、主系ＣＰＵ装置１００内のプログラムの入出力要求命令または関数などをトリガとして、第１の取得要求の準備が開始される。通信部２０３ａは、第１の取得要求の準備が終了後に、第１の記憶部１４に記憶されている第１の待機時間ＷＴ１だけ待機した直後、すなわち第１同期ポイントＰ１に達したときに、第１の取得要求を送信する。
【０１２０】
従系ＣＰＵ装置１０１の通信部２０３ｂは、主系ＣＰＵ装置１００の第１の取得要求の準備と同期して第２の取得要求の準備を開始する。通信部２０３ｂは、第２の取得要求の準備が終了後に、第２の記憶部２４に記憶されている第２の待機時間ＷＴ２だけ待機した直後、すなわち第１同期ポイントＰ１に達したときに、第２の取得要求を送信する。
【０１２１】
（２Ｂ）  次に、第１のＩ／Ｏ装置２００ａは、第１の取得要求と第２の取得要求のうちの第１の取得要求のみを受信した場合、または第１の取得要求を先に受信した場合に、第１の取得要求の受信の終了後、第３の記憶部２０４ａに記憶されている第３の待機時間ＷＴ３だけ待機した直後、すなわち第２同期ポイントＰ２に達したときに、アナログ入力デバイス３００ａからのデータの入力処理を開始する。
【０１２２】
第１のＩ／Ｏ装置２００ａは、第１の取得要求と第２の取得要求のうちの第２の取得要求のみを受信した場合、または第２の取得要求を先に受信した場合に、第２の取得要求の受信の終了後、第３の記憶部２０４ａに記憶されている第４の待機時間ＷＴ４だけ待機した直後、すなわち第２同期ポイントＰ２に達したときに、アナログ入力デバイス３００ａからのデータの入力処理を開始する。
【０１２３】
第２のＩ／Ｏ装置２００ｂは、第１の取得要求と第２の取得要求のうちの第１の取得要求のみを受信した場合、または第１の取得要求を先に受信した場合に、第１の取得要求の受信の終了後、第４の記憶部２０４ｂに記憶されている第５の待機時間ＷＴ５だけ待機した直後、すなわち第２同期ポイントＰ２に達したときに、アナログ入力デバイス３００ｂからのデータの入力処理を開始する。
【０１２４】
第２のＩ／Ｏ装置２００ｂは、第１の取得要求と第２の取得要求のうちの第２の取得要求のみを受信した場合、または第２の取得要求を先に受信した場合に、第２の取得要求の受信の終了後、第４の記憶部２０４ｂに記憶されている第６の待機時間ＷＴ６だけ待機した直後に、すなわち第２同期ポイントＰ２に達したときに、アナログ入力デバイス３００ｂからのデータの入力処理を開始する。
【０１２５】
（３Ｂ）  次に、第１のＩ／Ｏ装置２００ａは、入力処理を終了後に、第３の記憶部２０４ａに記憶されている第７の待機時間ＷＴ７だけ待機した直後に、すなわち、第３同期ポイントＰ３に達したときに、入力データの送信を開始する。
【０１２６】
第２のＩ／Ｏ装置２００ｂは、入力処理を終了後に、第４の記憶部２０４ｂに記憶されている第８の待機時間ＷＴ８だけ待機した直後に、すなわち、第３同期ポイントＰ３に達したときに、入力データの送信を開始する。
【０１２７】
（４Ｂ）  次に、主系ＣＰＵ装置１００は、第１のＩ／Ｏ装置２００ａからの入力データを受信した後に、第１の記憶部１４に記憶されている第９の待機時間ＷＴ９だけ待機した直後に、すなわち同期ポイントＰ４に達したときに、入力データの処理を開始する。
【０１２８】
主系ＣＰＵ装置１００は、第２のＩ／Ｏ装置２００ｂからの入力データを受信した後に、第１の記憶部１４に記憶されている第１０の待機時間ＷＴ１０だけ待機した直後に、すなわち同期ポイントＰ４に達したときに、入力データの処理を開始する。
【０１２９】
従系ＣＰＵ装置１０１は、第１のＩ／Ｏ装置２００ａからの入力データ受信した後に、第２の記憶部２４に記憶されている第１１の待機時間ＷＴ１１だけ待機した直後に、すなわち同期ポイントＰ４に達したときに、入力データの処理を開始する。
【０１３０】
従系ＣＰＵ装置１０１は、第２のＩ／Ｏ装置２００ｂからの入力データを受信した後に、第２の記憶部２４に記憶されている第１２の待機時間ＷＴ１２だけ待機した直後に、すなわち同期ポイントＰ４に達したときに、入力データの処理を開始する。
【０１３１】
（５Ｂ）  次に、主系ＣＰＵ装置１００は、入力データの処理の終了後に、第１の記憶部１４に記憶されている第１３の待機時間ＷＴ１３だけ待機した直後に、すなわち第５同期ポイントＰ５に達したときに、処理結果の従系ＣＰＵ装置１０１への送信を開始する。
【０１３２】
従系ＣＰＵ装置１０１は、入力データの処理の終了後に、第２の記憶部２４に記憶されている第１４の待機時間ＷＴ１４だけ待機した直後に、すなわち第５同期ポイントＰ５に達したときに、処理結果の主系ＣＰＵ装置１００への送信を開始する。
【０１３３】
（６Ｂ）  次に、主系ＣＰＵ装置１００は、従系ＣＰＵ装置１０１からの処理結果を受信した後に、第１の記憶部１４に記憶されている第１５の待機時間ＷＴ１５だけ待機した直後に、すなわち第６同期ポイントＰ６に達したときに、照合処理を開始する。
【０１３４】
従系ＣＰＵ装置１０１は、主系ＣＰＵ装置１００からの処理結果を受信した後に、第２の記憶部２４に記憶されている第１６の待機時間ＷＴ１６だけ待機した直後に、すなわち第６同期ポイントＰ６に達したときに、照合処理を開始する。
【０１３５】
（７Ｂ）  次に、主系ＣＰＵ装置１００は、照合処理を終了した後に、第１の記憶部１４に記憶されている第１７の待機時間ＷＴ１７だけ待機した直後に、すなわち第６同期ポイントＰ６に達したときに、照合結果を従系ＣＰＵ装置１０１へ送信する。
【０１３６】
従系ＣＰＵ装置１０１は、照合処理を終了した後に、第２の記憶部２４に記憶されている第１８の待機時間ＷＴ１８だけ待機した直後に、すなわち第６同期ポイントＰ６に達したときに、照合結果を主系ＣＰＵ装置１００へ送信する。
【０１３７】
以上のように、本実施の形態によれば、複数のＣＰＵ装置の内部の処理時間の相違、複数のＩ／Ｏ装置内部の処理時間の相違、複数のＣＰＵ装置と複数のＩ／Ｏ装置間のネットワーク間の伝送時間の相違、複数のＣＰＵ装置間のネットワークの伝送時間の相違がある場合でも、待機時間を設けることによって、複数のＩ／Ｏ装置を高精度に同期化させることができる。
【０１３８】
（変形例）
本発明は、上記の実施形態に限定されるものではなく、たとえば、以下のような変形例も含む。
【０１３９】
（１）アナログ出力
上記の複数の実施形態では、Ｉ／Ｏ装置にはアナログ入力デバイスが接続されるものとしたが、これに限定されるものではなく、たとえば、Ｉ／Ｏ装置にアクチュエータなどのアナログ出力デバイスが接続されるものとしてもよい。この場合には、ＣＰＵ装置からＩ／Ｏ装置には、取得要求ではなく、出力要求を送ることになる。
【０１４０】
（２）複数のＩ／Ｏ装置のグループ化
実施の形態４では、通信システムは、第１のＩ／Ｏ装置と第２のＩ／Ｏ装置とを含むものとしたが、これに限定されるものではない。実施の形態３と同様に、通信システムがグループに分類される複数のＩ／Ｏ装置を含むものとしてもよい。各Ｉ／Ｏ装置は、要求フレームに含まれるグループＩＤが、自装置のグループＩＤと一致したら要求フレームを受信する。
【０１４１】
（３）コマンド種別およびフレーム長ごとの待機時間の設定
ＣＰＵ装置からＩ／Ｏ装置への要求は、上述の取得要求及び出力要求に限定するものではなく、任意のものであってよい。この場合に、実施の形態４における待機時間は、ＣＰＵ装置からＩ／Ｏ装置への要求、Ｉ／Ｏ装置からＣＰＵ装置への応答、ＣＰＵ装置間で情報交換の種別を表わすコマンド種別および、それらのコマンドが含まれるフレームの長さ（フレーム長）ごとに記憶し、使用することになる。
【０１４２】
図６は、第１のＩ／Ｏ装置におけるコマンド種別およびフレーム長ごとの第３の待機時間ＷＴ３および第７の待機時間ＷＴ７の例を表わす図である。
【０１４３】
Ｉ／Ｏ要求フェーズＰｈ１では、第１のＩ／Ｏ装置２００ａは、Ｒｅａｄ１コマンドを含むフレームを受信したときには、Ｒｅａｄ１コマンドとフレーム長（２９ｂｙｔｅ）によって定まる第３の待機時間ＷＴ３（＝１０μｓ）だけ待機した直後に、入出力処理を開始する。その後、第１のＩ／Ｏ装置２００ａは、入出力処理が完了した後、Ｒｅａｄ１コマンドとフレーム長（２９ｂｙｔｅ）によって定まる第７の待機時間ＷＴ７（＝２０μｓ）だけ待機した直後に、応答として入力データの送信を開始する。
【０１４４】
また、Ｉ／Ｏ応答フェーズＰｈ２では、第１のＩ／Ｏ装置２００ａは、コマンド種別（応答）とフレーム長によって定まる待機時間ＷＴ９またはＷＴ１１だけ待機した直後に、入力データの処理を開始する。
【０１４５】
また、相互監視フェーズＰｈ３では、主系ＣＰＵ装置２００ａは、コマンド種別（従系ＣＰＵ装置との情報交換）とフレーム長によって定まる待機時間ＷＴ１３だけ待機した直後に、照合処理を開始する。
【０１４６】
（４）  照合
実施の形態４では、主系ＣＰＵ装置から従系ＣＰＵ装置へ処理結果を送信するとともに、従系ＣＰＵ装置から主系ＣＰＵ装置へ処理結果を送信するものとしたが、これに限定するものではない。たとえば、主系ＣＰＵ装置から従系ＣＰＵ装置へ処理結果を送信し、従系ＣＰＵ装置のみで処理結果を照合するものとしてよい。
【０１４７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４８】
１４  第１の記憶部、２４  第２の記憶部、１００  主系ＣＰＵ装置、１０１  従系ＣＰＵ装置、２００，２００ａ，２００ｂ，Ａ０，Ａ１，Ａ２，Ｂ０，Ｂ１，Ｂ２，Ｃ０，Ｃ１，Ｃ２  Ｉ／Ｏ装置、２０１，２０１ａ，２０１ｂ  Ａ／Ｄ変換器、２０２，２０２ａ，２０２ｂ  入力部、２０３，２０３ａ，２０３ｂ  通信部、２０４ａ  第３の記憶部、２０４ｂ  第４の記憶部、３００，３００ａ，３００ｂ  アナログ入力デバイス、３０１  外回りリング、３０２  内回りリング、３０３  リング型ネットワーク、１０００Ａ，１０００Ｂ，１０００Ｃ  同期化グループ。
【図１】
2018092512.tif 000003
【図２】
2018092512.tif 000004
【図３】
2018092512.tif 000005
【図４】
2018092512.tif 000006
【図５】
2018092512.tif 000007
【図６】
2018092512.tif 000008