(57)【要約】【課題】制御対象機器の作動制御を行う制御装置の二重化された制御システムにおいて、二重化された制御装置に多重故障が発生した場合であっても、その故障内容によっては制御対象機器の作動制御を継続できるようにする。【解決手段】外部とのデータの入出力を各々行う複数の入出力モジュールを各々備えた２つの制御装置により制御対象機器の作動制御を行う制御装置を二重化し、一方を稼働系、他方を待機系とする。稼働系の制御装置の何れかの入出力モジュールに故障が発生した場合には、以降、待機系における対応する入出力モジュールを用いて制御対象機器の作動制御が継続されるように２つの制御装置を協働させる。【選択図】図３
2015207239.tif 000002
【特許請求の範囲】
【請求項１】
外部とのデータの入出力を各々行う複数の入出力モジュールを各々備えた２つの制御装置を制御装置間通信手段を介して互いに接続して制御装置対を形成し、一方を稼働系として制御対象機器の作動制御のための処理を実行させるとともに他方を待機系として動作させる制御システムにおいて、
前記制御対象機器の作動制御の実行過程で発生したデータ入出力に使用される稼働系の入出力モジュールに故障が無い場合には当該入出力モジュールを用いて当該データ入出力が実行され、故障がある場合には当該入出力モジュールに対応する待機系の入出力モジュールを用いて当該データ入出力が実行されるように前記２つの制御装置を協働させる
ことを特徴とする制御システム。
【請求項２】
前記２つの制御装置の各々は、
自装置の複数の入出力モジュールの各々について故障の有無を判定してその判定結果を示すステータスデータを記憶するとともに当該ステータスデータを前記制御装置間通信手段を介して他方へ送信する処理を周期的に繰り返し、
前記２つの制御装置のうち稼働系の制御装置は、
前記制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力に使用される入出力モジュールについての故障の有無を自装置のステータスデータを参照して判定し、故障が無い場合に当該入出力モジュールを用いて当該データ入出力を実行し、
前記２つの制御装置のうち待機系の制御装置は、
前記制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力に使用される稼働系の入出力モジュールに故障が有るか否かを前記制御装置間通信手段を介して受信したステータスデータを参照して判定し、故障があると判定した場合に当該入出力モジュールに対応する自装置の入出力モジュールを用いて当該データ入出力を実行する
ことを特徴とする請求項１に記載の制御システム。
【請求項３】
前記２つの制御装置の各々は、
前記制御装置間通信手段を介して受信したステータスデータと自装置のステータスデータを参照して稼働系／待機系の切り換えを行い、
自装置が稼働系となっている場合には、前記制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力に使用される入出力モジュールについての故障の有無を自装置のステータスデータを参照して判定し、故障が無い場合に当該入出力モジュールを用いて当該データ入出力を実行する一方、自装置が待機系となっている場合には当該データ入出力に使用される稼働系の入出力モジュールに故障が有るか否かを前記制御装置間通信手段を介して受信したステータスデータを参照して判定し、故障があると判定した場合に当該入出力モジュールに対応する自装置の入出力モジュールを用いて当該データ入出力を実行する
ことを特徴とする請求項２に記載の制御システム。
【請求項４】
前記制御対象機器の作動制御のための処理は周期的に実行される処理であり、
前記２つの制御装置の各々は、
前記制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力を実行する毎にその実行完了を前記制御装置間通信手段を介して他方へ通知するとともに、他方からの通知を前記制御装置間通信手段を介して受信したことを契機として当該処理の完了を検知する
ことを特徴とする請求項１〜３の何れか１項に記載の制御システム。
【請求項５】
前記２つの制御装置の各々は、
自装置の複数の入出力モジュールの各々について故障の有無を判定してその判定結果を示すステータスデータを記憶するとともに当該ステータスデータを前記制御装置間通信手段を介して他方へ送信する処理を周期的に繰り返し、
前記２つの制御装置のうち稼働系の制御装置は、前記制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力に使用される自装置の入出力モジュールの故障の有無を自装置のステータスデータを参照して判定し、故障が無い場合に当該データ入出力を実行する一方、故障がある場合には前記制御装置間通信手段を介した通信により他方の制御装置に当該データ入出力を実行させる
ことを特徴とする請求項１に記載の制御システム。
【請求項６】
外部とのデータの入出力を各々行う複数の入出力モジュールを備え、同様に複数の入出力モジュールを備えた他の制御装置と制御装置間通信手段を介して通信し、一方が稼働系となって制御対象機器の作動制御のための処理を実行し、他方は待機系となる制御装置対を形成する制御装置において、
前記制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力に使用される稼働系の入出力モジュールに故障が無い場合には当該入出力モジュールを用いて当該データ入出力が実行され、故障がある場合には当該入出力モジュールに対応する待機系の入出力モジュールを用いて当該データ入出力が実行されるように前記他の制御装置と協働する制御部を有する
ことを特徴とする制御装置。
【請求項７】
前記制御部は、
自装置の複数の入出力モジュールの各々について故障の有無を判定してその判定結果を示すステータスデータを記憶するとともに当該ステータスデータを前記制御装置間通信手段を介して他方へ送信する処理を周期的に繰り返し、
前記制御装置間通信手段を介して受信したステータスデータと自装置のステータスデータとを参照して稼働系／待機系の切り換えを行い、
自装置が稼働系となっている場合には、前記制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力に使用される自装置の入出力モジュールについての故障の有無を自装置のステータスデータを参照して判定し、故障が無い場合に当該データ入出力を実行する一方、自装置が待機系となっている場合には当該データ入出力について稼働系の制御装置において使用される入出力モジュールに故障があるか否かを前記制御装置間通信手段を介して受信したステータスデータを参照して判定し、故障があると判定した場合に当該入出力モジュールに対応する自装置の入出力モジュールを用いて当該データ入出力を実行する
ことを特徴とする請求項６に記載の制御装置。
【請求項８】
前記制御部は、
自装置の複数の入出力モジュールの各々について故障の有無を判定してその判定結果を示すステータスデータを記憶するとともに当該ステータスデータを前記制御装置間通信手段を介して他方へ送信する処理を周期的に繰り返し、
前記制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力について他方の制御装置において使用される入出力モジュールの故障の有無を前記制御装置間通信手段を介して受信したステータスデータを参照して判定し、故障があると判定した場合には当該入出力モジュールに対応する自装置の入出力モジュールを用いて当該データ入出力を実行する
ことを特徴とする請求項６に記載の制御装置。
【請求項９】
コンピュータを、
他の制御装置とともに制御装置対を形成し、一方が稼働系となって制御対象機器の作動制御を行い他方は待機系となる制御装置として機能させるとともに、前記制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力に使用される稼働系の入出力モジュールに故障が無い場合には当該入出力モジュールを用いて当該データ入出力が実行され、故障がある場合には当該入出力モジュールに対応する待機系の入出力モジュールを用いて当該データ入出力が実行されるように、前記他の制御装置と協働させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象機器の作動制御を行う制御装置を含む制御システムに関し、特に、二重化された制御装置を含む制御システムに関する。
【背景技術】
【０００２】
工場や各種プラント等の産業施設内においては、制御システムと呼ばれる通信システムが構築されることがある。制御システムとは、産業施設内に設置された電動機の駆動制御や各種センサからのデータ収集を実現するためのデータ通信（メッセージ交換等）を実現する通信システムである。つまり、制御システムにおいては、産業施設内に設置された電動機や各種センサが制御対象機器となる。図６は、この種の制御システムの構成例を示す図である。この制御システムは、図６に示すように、ネットワーク３０Ａおよびネットワーク３０Ｂの両方に各々接続された制御装置１０Ａおよび制御装置１０Ｂと、制御装置１０Ａと制御装置１０Ｂの両者に接続された制御対象機器２０とを含んでいる。
【０００３】
図６のネットワーク３０Ａおよびネットワーク３０Ｂは、例えば産業施設内に敷設されたＬＡＮ（Local Area Network）である。図６では詳細な図示を省略したが、ネットワーク３０Ａおよびネットワーク３０Ｂには、制御対象機器２０の稼働監視を行うための監視用パーソナルコンピュータや各種センサから収集したデータを記憶するデータベースサーバなどの上位装置が接続される。制御装置１０Ａおよび制御装置１０Ｂは、ネットワーク３０Ａ或いはネットワーク３０Ｂを介して上位装置から送信されてくる指令等に応じて制御対象機器２０の作動制御を行うとともに、制御対象機器２０から収集したデータを上位装置へ転送するプログラマブルロジックコントローラである。図６に示すように、制御装置１０Ａおよび制御装置１０Ｂの各々は、制御対象機器２０とのデータ授受を行うＩＯマスタと、ネットワーク３０Ａ或いはネットワーク３０Ｂを介して上位装置とデータ通信を行うための通信モジュールＡおよび通信モジュールＢ（図６では、夫々「通信Ａ」、「通信Ｂ」と略記）と、ＣＰＵ（Central Processing Unit）などの制御部と、これら各構成要素に動作電力を供給する電源部とを含んでいる。
【０００４】
図６に示す制御システムでは、制御装置１０Ａと制御装置１０Ｂは等値化ケーブル４０によって互いに接続されており、制御対象機器２０の作動制御を行う制御装置対を形成している。等値化ケーブル４０は制御装置１０Ａと制御装置１０Ｂの間のデータ通信を仲介する制御装置間通信手段の役割を果たす。制御装置対を形成する２つの制御装置のうちの一方は稼働系となって制御対象機器２０の作動制御を行い、他方は待機系となって稼働系の停止（故障による意図しない停止や保守メンテナンスによる意図的な停止）に備える。例えば、制御装置１０Ａが稼働系となっているときに何れかの通信モジュール（例えば、通信モジュールＡ）に故障が発生すると稼働系の切り換えが発生し、以降、制御装置１０Ｂが稼働系となって制御対象機器２０の作動制御を行う、といった具合である。図６に示す制御システムでは、上記のような制御装置対を形成することで、制御対象機器２０の作動制御を行う制御装置の二重化が実現されている。等値化ケーブル４０は、稼働系の切り換えに備え、稼働系における処理結果を待機系に伝達して記憶させるためのものである。このような制御システムに関する先行技術の一例としては特許文献１および特許文献２に開示の技術が挙げられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２４０５０号公報
【特許文献２】特開２０１３−８３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図６に示す制御システムでは、例えば制御装置１０Ａが稼働系となっている状況下で当該制御装置１０Ａの通信モジュールＡに故障が発生し、それと同時に（或いは時間的に前後して）制御装置１０Ｂの通信モジュールＢにも故障が発生すると、制御対象機器２０の作動制御を継続できなくなる。稼働系を制御装置１０Ｂに切り換えてもネットワーク３０Ｂを介して上位装置とデータ通信することはできず、稼働系を制御装置１０Ａのままとしてもネットワーク３０Ａを介したデータ通信を行えないからである。このように、制御対象機器の作動制御を行うための制御装置を二重化し、一方を稼働系、他方を待機系とする従来の制御システムには、制御装置対を形成する２つの制御装置のそれぞれに故障が発生するといった「多重故障」が発生すると、制御対象機器２０の作動制御を全く継続できなくなるといった問題があった。
【０００７】
本発明は上記課題に鑑みて為されたものであり、制御対象機器の作動制御を行う制御装置の二重化された制御システムにおいて、二重化された制御装置に多重故障が発生した場合であっても、その故障内容によっては制御対象機器の作動制御を継続できるようにする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明は以下の制御システムを提供する。この制御システムでは、外部とのデータの入出力を各々行う複数の入出力モジュールを各々備えた２つの制御装置を等値化ケーブルなどの制御装置間通信手段を介して互いに接続して制御装置対が形成される。この点は従来の制御システムと同様である。また、上記２つの制御装置のうちの一方が稼働系となって制御対象機器の作動制御のための処理を実行し、他方が待機系となる点も従来の制御システムと同様である。本発明の制御システムの特徴は、前記制御対象機器の作動制御の実行過程で発生したデータ入出力に使用される稼働系の入出力モジュールに故障が無い場合には当該入出力モジュールを用いて当該データ入出力が実行され、故障がある場合には当該故障のある入出力モジュールに対応する待機系の入出力モジュールを用いて当該データ入出力が実行されるように前記２つの制御装置を協働させる点にある。すなわち、本発明の制御システムでは、稼働系の何れかの入出力モジュールに故障が発生したとしても、即座に稼働系／待機系の切り換えが発生する訳ではなく、この点が従来技術とは異なる。なお、上記制御装置対を形成する各制御装置の有する入出力モジュールの一例としては、上位装置とのデータ通信を仲介するネットワークに接続される通信モジュールが挙げられる。また、制御対象機器に接続されるＩＯマスタを上記入出力モジュールに含めても良い。
【０００９】
制御装置対を形成する２つの制御装置の協働の具体的な態様としては種々の態様が考えられる。一例を挙げると次の通りである。まず、自装置の複数の入出力モジュールの各々について故障の有無を判定してその判定結果を示すステータスデータを記憶するとともに当該ステータスデータを制御装置間通信手段を介して他方へ送信する処理を各制御装置に周期的に繰り返し実行させる。換言すれば、各制御装置は、他方における入出力モジュールの故障の有無を示すステータスデータを制御装置間通信手段を介して受信する。そして、上記２つの制御装置のうち稼働系の制御装置は、制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力に使用される入出力モジュールについての故障の有無を自装置のステータスデータを参照して判定し、故障が無い場合に当該入出力モジュールを用いて当該データ入出力を実行する。一方、待機系の制御装置は、当該データ入出力に使用される稼働系の入出力モジュールに故障があるか否かを制御装置間通信手段を介して受信したステータスデータを参照して判定し、故障があると判定した場合に、当該故障の発生した入出力モジュールに対応する自装置の入出力モジュールを用いて当該データ入出力を実行する。このような態様によれば、二重化された制御装置に多重故障が発生した場合であっても、待機系および稼働系の制御装置において互いに対応する入出力モジュール（例えば、図６の制御装置１０Ａにおける通信モジュールＡと制御装置１０Ｂにおける通信モジュールＡ）に故障が発生したのでなければ、制御対象機器の作動制御を継続することが可能になる。
【００１０】
ここで、稼働系および待機系の各制御装置は、それぞれ専用の構成のものであっても良いし、同一の構成の制御装置を一方は待機系として動作させ、他方を稼働系として動作させる態様であっても良い。例えば、後者の態様の具体例としては、２つの制御装置の各々に、制御装置間通信手段を介して受信したステータスデータと自装置のステータスデータとを参照して稼働系／待機系の切り換える処理を実行させる。さらに、各制御装置に以下の処理を実行させる。すなわち、自装置が稼働系となっている場合には、制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力に使用される入出力モジュールについての故障の有無を自装置のステータスデータを参照して判定し、故障が無い場合に当該入出力モジュールを用いて当該データ入出力を実行させ、自装置が待機系となっている場合には、当該データ入出力に使用される稼働系の入出力モジュールに故障が有るか否かを制御装置間通信手段を介して受信したステータスデータを参照して判定し、故障があると判定した場合に当該故障の発生した入出力モジュールに対応する自装置の入出力モジュールを用いて当該データ入出力を実行させるのである。稼働系および待機系の各制御装置としてそれぞれ専用の構成のものを用いる態様によれば、各制御装置の構成が簡単になるといった効果がある。これに対して、同一の構成の制御装置を一方は待機系として動作させ、他方を稼働系として動作させるとともに、故障の発生状況に応じて稼働／待機を切り換える態様であれば、上記制御装置対を一種類の制御装置で形成することができ、稼働系用と待機系用の夫々別個の構成の制御装置を提供する必要がないといった効果が得られる。
【００１１】
より好ましい態様においては、制御対象機器の作動制御のための処理は周期的に実行される処理であり、上記制御システムに含まれる２つの制御装置の各々は、制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力を実行する毎にその実行完了を制御装置間通信手段を介して他方へ通知するとともに、他方からの通知を制御装置間通信手段を介して受信したことにより当該処理の完了を検知することを特徴とする。このような態様によれば、上記データ入出力が実行されなかった方の制御装置においても当該データ入出力の完了を検知し、制御対象機器の作動制御のための処理の周期的な実行の同期を取ることが可能になる。
【００１２】
また、上記２つの制御装置の協働の他の具体例として以下の態様も挙げられる。すなわち、自装置の複数の入出力モジュールの各々について故障の有無を判定してその判定結果を示すステータスデータを記憶するとともに当該ステータスデータを制御装置間通信手段を介して他方へ送信する処理を各制御装置に周期的に繰り返し実行させるとともに、稼働系の制御装置には、前記制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力に使用される自装置の入出力モジュールの故障の有無を自装置のステータスデータを参照して判定し、故障が無い場合に当該データ入出力を実行させる一方、故障が有る場合には制御装置間通信手段を介した通信により他方の制御装置に当該データ入出力を実行させる態様である。このような態様によっても、二重化された制御装置に多重故障が発生した場合であっても、待機系および稼働系の制御装置において互いに対応する入出力モジュールに故障が発生したのでなければ、制御対象機器の作動制御を継続することが可能になる。
【００１３】
上記課題を解決する他の態様としては、外部とのデータの入出力を各々行う複数の入出力モジュールを備え、同様に複数の入出力モジュールを備えた他の制御装置と制御装置間通信手段を介してデータ通信し、一方が稼働系となって制御対象機器の作動制御のための処理を実行し、他方は待機系となる制御装置対を形成する制御装置の制御部に以下の処理を実行させる態様が考えられる。すなわち、制御対象機器の作動制御のための処理の実行過程で発生したデータ入出力に使用される稼働系の入出力モジュールに故障が無い場合には当該入出力モジュールを用いて当該データ入出力が実行され、故障がある場合には当該故障のある入出力モジュールに対応する待機系の入出力モジュールを用いて当該データ入出力が実行されるように他の制御装置と協働する処理を上記制御部に実行させるのである。このような制御装置を組み合わせて上記制御装置対を形成することで、本発明の制御システムを構築することができるからである。
【００１４】
また、上記課題を解決するための他の態様としては、ＣＰＵ（Central Processing Unit）などのコンピュータを上記制御部として機能させるプログラムを提供する態様が考えられる。このようなプログラムにしたがって一般的なコンピュータを作動させることで、そのコンピュータを本発明の制御装置として機能させることが可能になるからである。なお、このようなプログラムの具体的な提供態様としては、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）などのコンピュータ読み取り可能な記録媒体に当該プログラムを書き込んで配布する態様や、インターネットなどの電気通信回線経由のダウンロードにより配布する態様が考えられる。
【発明の効果】
【００１５】
本発明によれば、制御対象機器の作動制御を行う制御装置対を形成する２つの制御装置において互いに対応する入出力モジュールに故障が発生しない限り、制御対象機器の作動制御を継続することができる。つまり、本発明によれば、制御対象機器の作動制御を行う制御装置の二重化された制御システムにおいて、二重化された制御装置に多重故障が発生した場合であっても、その故障内容によっては制御対象機器の作動制御を継続することが可能になる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態の制御システムの構成例を示す図である。
【図２】同制御システムに含まれる制御装置１００の構成例を示す図である。
【図３】同制御装置１００の制御部１２０が制御プログラムにしたがって実行する処理の流れを示すフローチャートである。
【図４】制御装置１００の動作を説明するための図である。
【図５】本実施形態の効果を示す図である。
【図６】従来の制御システムの構成例を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照しつつ本発明の実施形態について説明する。
（Ａ：構成）
図１は、本発明の一実施形態の制御システムの構成例を示す図である。図１では、図６におけるものと同一の構成要素には同一の符号が付されている。図１と図６とを対比すれば明らかなように、本実施形態の制御システムは制御装置１０Ａに代えて制御装置１００Ａを設け、制御装置１０Ｂに代えて制御装置１００Ｂを設けた点が図６に示す制御システムと異なる。
【００１８】
制御装置１００Ａおよび制御装置１００Ｂの各々は、ネットワーク３０Ａ或いはネットワーク３０Ｂを介して上位装置から送信されてくる各種指令に応じて制御対象機器２０の作動制御を行うプログラマブルロジックコントローラである。制御装置１００Ａおよび制御装置１００Ｂは、図６における制御装置１０Ａおよび制御装置１０Ｂと同様に、等値化ケーブル４０によって互いに接続され、制御対象機器２０の作動制御を行う制御装置対を形成している。図１に示す制御システムにおいて、等値化ケーブル４０は制御装置１００Ａと制御装置１００Ｂの間のデータ通信を仲介する制御装置間通信手段の役割を果たす。なお、図１では、制御対象機器２０とその作動制御を行う制御装置対とが一組だけ例示されているが、制御対象機器とその作動制御を行う制御装置対とが複数組含まれていても良い。
【００１９】
本実施形態では、基本的には、制御装置１００Ａおよび制御装置１００Ｂのうちの一方が稼働系となって制御対象機器２０の作動制御を行い、他方は待機系となって稼働系の停止（故障による停止や保守メンテナンスのための停止）に備えている。この点は、図６に示した制御システムと同様である。ただし、本実施形態では、制御装置１００Ａおよび制御装置１００Ｂを本発明の特徴を顕著に示す態様で協働させることで、制御装置１００Ａおよび制御装置１００Ｂに多重故障が発生した場合であっても、その故障内容によっては制御対象機器２０の作動制御を継続することが可能となっている。以下では、本実施形態の特徴を顕著に示す制御装置１００Ａおよび制御装置１００Ｂを中心に説明する。なお、制御装置１００Ａと制御装置１００Ｂは同一のハードウェア構成を有しているため、以下では、両者を区別する必要がない場合には「制御装置１００」と表記する。ネットワーク３０Ａとネットワーク３０Ｂについても同様に、両者を区別する必要がない場合は「ネットワーク３０」と表記する。
【００２０】
図２は、制御装置１００の構成例を示す図である。
図２に示すように、制御装置１００は、電源部１１０、制御部１２０、通信モジュール１３０Ａ、通信モジュール１３０Ｂ、ＩＯマスタ１４０、記憶部１５０およびシステムバス１６０を含んでいる。制御部１２０、通信モジュール１３０Ａ、通信モジュール１３０Ｂ、ＩＯマスタ１４０、および記憶部１５０はシステムバス１６０に接続されている。システムバス１６０は、自身に接続されている他の構成要素（制御部１２０など）間のデータ授受を仲介する。電源部１１０は、商用電源（図１では図示略）から供給される交流電力を直流電力に変換し他の構成要素に供給する。
【００２１】
制御部１２０は、例えば、ＣＰＵ（Central Processing Unit）であり、等値化ケーブル４０を介して他方の制御装置の制御部１２０に接続されている。制御部１２０は、記憶部１５０（より正確には、不揮発性記憶部１５４）に記憶されているプログラムを実行することで制御装置１００の制御中枢として機能する。記憶部１５０に記憶されているプログラム、および同プログラムにしたがって制御部１２０が実行する処理の詳細については後に明らかにする。
【００２２】
通信モジュール１３０Ａおよび通信モジュール１３０Ｂは何れもＮＩＣ（Network
Interface Card）である。通信モジュール１３０Ａは、ネットワーク３０Ａに接続されている。通信モジュール１３０Ａは、ネットワーク３０Ａから受信したデータをシステムバス１６０を介して制御部１２０に引き渡す一方、システムバス１６０を介して制御部１２０から与えられたデータをネットワーク３０Ａへ送出する。通信モジュール１３０Ｂは、ネットワーク３０Ｂに接続されている。通信モジュール１３０Ｂは、ネットワーク３０Ｂから受信したデータをシステムバス１６０を介して制御部１２０に引き渡す一方、システムバス１６０を介して制御部１２０から与えられたデータをネットワーク３０Ｂへ送出する。このように、通信モジュール１３０Ａおよび通信モジュール１３０Ｂは、ネットワークを介して外部から制御装置１００にデータを入力、或いは制御装置１００から外部へデータを出力するための入出力モジュールの役割を果たす。
【００２３】
ＩＯマスタ１４０は、例えばシリアルインタフェースやパラレルインタフェースである。ＩＯマスタ１４０には、制御対象機器２０が接続される。ＩＯマスタ１４０は、制御部１２０から与えられるデータを制御対象機器２０に出力する一方、制御対象機器２０から出力されたデータを制御部１２０に与える。
【００２４】
記憶部１５０は、図２に示すように、揮発性記憶部１５２と不揮発性記憶部１５４とを含んでいる。揮発性記憶部１５２は、例えばＲＡＭ（Random Access Memory）であり、各種プログラムを実行する際のワークエリアとして制御部１２０によって利用される。一方、不揮発性記憶部１５４は、フラッシュＲＯＭ（Read Only Memory）などの不揮発性メモリである。不揮発性記憶部１５４には、アプリケーションプログラム１５４２、制御プログラム１５４４、および稼働／待機フラグ１５４６が格納されている。
【００２５】
稼働／待機フラグ１５４６は、自装置が稼働系であるのかそれとも待機系であるのかを示すフラグ（例えば、１であれば稼働系、０であれば待機系）である。本実施形態では、制御装置１００Ａの稼働／待機フラグ１５４６には初期値として１がセットされており、制御装置１００Ｂの稼働／待機フラグ１５４６には初期値として０がセットされている。つまり、本実施形態では、各制御装置１００の電源投入時点などの初期状態では、制御装置１００Ａが稼働系となっており、制御装置１００Ｂは待機系となっている。
【００２６】
アプリケーションプログラム１５４２と制御プログラム１５４４は、制御装置１００の電源投入等を契機としてその実行が開始されるプログラムであり、本実施形態では両プログラムは並列に実行される。アプリケーションプログラム１５４２は、制御対象機器２０の作動制御を制御部１２０に実現させるためのプログラムである。アプリケーションプログラム１５４２にしたがって作動している制御部１２０は、制御装置対を形成する他方の制御装置と同期を取りつつ、制御対象機器２０の作動制御のための処理を周期的に繰り返し実行する。この繰り返し単位はタクトと呼ばれ、１つのタクトにおいては、入出力モジュールを介した外部からのデータ入力、アプリケーションプログラム１５４２固有の処理（制御対象機器２０の作動制御のためのデータ演算等）の実行、ＩＯマスタ１４０を介したデータの入出力、入出力モジュールを介した外部へのデータ出力が行われる。
【００２７】
制御プログラム１５４４は、アプリケーションプログラム１５４２の実行過程で発生する外部とのデータ入出力を上記入出力モジュール（本実施形態では、通信モジュール１３０Ａ或いは通信モジュール１３０Ｂ）の何れかを介して実現するプログラムである。制御プログラム１５４４は、一般的なコンピュータにおけるＯＳプログラムと同様に、アプリケーションプログラム１５４２よりも下位のプログラム階層に属するプログラムであり、アプリケーションプログラム１５４２からのシステムコール呼び出し等によって前述したデータ入出力の実行を指示される。このとき、データ入出力に使用する入出力モジュールを示す情報は上記システムコールの引数として与えられる。
【００２８】
本実施形態の特徴は制御プログラム１５４４に表れている。より詳細に説明すると、制御プログラム１５４４にしたがって作動している制御部１２０は、自装置の入出力モジュールの故障の有無をチェックし、そのチェック結果を示すデータ（以下、ステータスデータ）１５２２を揮発性記憶部１５２に書き込むとともにステータスデータ１５２２を等値化ケーブル４０を介して他方の制御装置へ送信する処理を一定周期で繰り返し実行する。ここで、ステータスデータ１５２２の具体例としては、各入出力モジュールを一意に示す識別子と故障の有無を示すフラグ（０ならば故障なし、１ならば故障あり）の配列が挙げられる。また、入出力モジュールの故障の有無のチェックおよびチェック結果を送信する処理の実行周期については適宜実験等を行って好適な値に定めるようにすれば良い。
【００２９】
制御部１２０は、等値化ケーブル４０を介してステータスデータを受信すると、自装置のステータスデータ１５２２（すなわち、自装置に記憶されている最新のステータスデータ）と当該受信したステータスデータ（他方の制御装置の最新のステータスデータ）を参照して稼働／待機フラグ１５４６を更新する。本実施形態では、制御部１２０は、自装置の通信モジュール１３０Ａと通信モジュール１３０Ｂの両方に故障が発生したら、以降、自装置が待機系となるように稼働／待機フラグ１５４６を更新し、相手側の通信モジュール１３０Ａと通信モジュール１３０Ｂの両方に故障が発生したら、以降、自装置が稼働系となるように稼働／待機フラグ１５４６を更新する。前述したように、従来の制御システムにおいては稼働系の通信モジュール１３０Ａと通信モジュール１３０Ｂの何れか一方に故障が発生すると、稼働系／待機系の切り換えが発生していたが、本実施形態では稼働系の通信モジュール１３０Ａと通信モジュール１３０Ｂの両方が故障しなければ稼働系／待機系の切り換えは発生せず、この点が従来の制御系システムと異なる。なお、ＩＯマスタ１４０に故障が発生すると制御対象機器２０とのデータ授受を行えなくなるため、稼働系のＩＯマスタ１４０が故障したら無条件に稼働系／待機系の切り換えを行うようにしても良い。
【００３０】
制御プログラム１５４４にしたがって作動している制御部１２０は、システムコール呼び出しによりデータ入出力の実行を指示されると、図３に示すデータ入出力処理を実行する。図３は、制御部１２０が制御プログラム１５４４にしたがって実行するデータ入出力処理の流れを示すフローチャートである。図３に示すように、データ入出力処理では、制御部１２０は、まず、自装置が稼働系であるか否かを自装置の稼働／待機フラグ１５４６を参照して判定する（ステップＳＡ１００）。そして、ステップＳＡ１００の判定結果が“Ｙｅｓ”である場合（すなわち、自装置が稼働系である場合）、制御部１２０は、ステップＳＡ１１０以降の処理を実行する。これに対してステップＳＡ１００の判定結果が“Ｎｏ”である場合（自装置が待機系である場合）、制御部１２０はステップＳＡ１４０以降の処理を実行する。すなわち、図３におけるステップＳＡ１１０〜ステップＳＡ１３０の処理は稼働系の制御装置のみで実行される処理であり、図３におけるステップＳＡ１４０〜ステップＳＡ１６０の処理は待機系の制御装置のみで実行される処理である。
【００３１】
ます、稼働系の制御装置において実行される処理について説明する。
ステップＳＡ１００の判定結果が“Ｙｅｓ”である場合に実行されるステップＳＡ１１０では、制御部１２０はデータ入出力の際にそのデータが経由する入出力モジュールをシステムコールの引数を参照して特定する。次いで、制御部１２０は、ステップＳＡ１１０にて特定した入出力モジュールが故障状態であるか否かを自装置のステータスデータ１５２２を参照して判定する（ステップＳＡ１２０）。このステップＳＡ１２０の判定結果が“Ｎｏ”である場合（すなわち、ステップＳＡ１１０にて特定した入出力モジュールが故障状態ではない場合）には、制御部１２０はステップＳＡ１１０にて特定した入出力モジュールを用いてデータ入出力を行い（ステップＳＡ１３０）、さらに、制御装置対を形成する他方の装置へ等値化ケーブル４０経由で当該データ入出力の完了を通知して、本データ入出力処理を完了する。これに対して、ステップＳＡ１２０の判定結果が“Ｙｅｓ”である場合には、制御部１２０はステップＳＡ１３０の処理を行うことなく、データ入出力処理を完了する。ここで、制御装置対を形成する他方の制御装置へ等値化ケーブル４０経由でデータ入出力の完了を通知するのは、当該制御装置においてデータ入出力の完了を検知し、タクトの同期を取れるようにするためである。したがって、タクトの同期を取る必要がない場合には他方の制御装置への通知を省略しても良いことは言うまでもない。
【００３２】
次いで、待機系の制御装置において実行される処理について説明する。
ステップＳＡ１００の判定結果が“Ｎｏ”である場合に実行されるステップＳＡ１４０では、制御部１２０は、前述したステップＳＡ１１０の処理と同様にデータ入出力の際にそのデータが経由する入出力モジュールを特定する。次いで、制御部１２０は、ステップＳＡ１４０にて特定した入出力モジュールに対応する稼働系の入出力モジュールに故障があるか否かを、等値化ケーブル４０を介して受信した最新のステータスデータを参照して判定する（ステップＳＡ１５０）。ステップＳＡ１５０の判定結果が“Ｙｅｓ”である場合には、制御部１２０はステップＳＡ１４０にて特定した入出力モジュールを用いてデータ入出力を行い（ステップＳＡ１６０）、さらに、制御装置対を形成する他方の装置へ等値化ケーブル４０経由で当該データ入出力の完了を通知して、本データ入出力処理を完了する。これに対して、ステップＳＡ１５０の判定結果が“Ｎｏ”である場合には、制御部１２０はステップＳＡ１６０の処理を行うことなく、データ入出力処理を完了する。
以上が制御装置１００の構成である。
【００３３】
（Ｂ：動作）
次いで、制御装置１００の動作を図面を参照しつつ説明する。
なお、以下に説明する動作例では、アプリケーションプログラムの実行過程で発生するデータ入出力のうち、通信モジュール１３０Ａを利用して行われるデータ入出力を「データ入出力Ａ」と称し、通信モジュール１３０Ｂを利用して行われるデータ入出力を「データ入出力Ｂ」と称する。
【００３４】
（Ｂ−１：稼働系の入出力モジュールに故障が発生していない場合の動作）
制御装置１００Ａの通信モジュール１３０Ａと通信モジュール１３０Ｂの何れにも故障が発生していない状況下で、データ入出力Ａが発生したとする。この場合、制御装置１００Ａの制御部１２０（以下、制御部１２０Ａと呼ぶ）が実行するデータ入出力処理のステップＳＡ１００の判定結果は“Ｙｅｓ”となり、ステップＳＡ１１０の処理が実行される。そして、ステップＳＡ１１０では「通信モジュール１３０Ａ」が特定される。前述したように、本動作例では制御装置１００Ａが稼働系であり、データ入出力Ａでは通信モジュール１３０Ａが使用されるからである。本動作例では、制御装置１００Ａの通信モジュール１３０Ａには故障は発生していないのであるから、ステップＳＡ１１０に後続して実行されるステップＳＡ１２０の判定結果は“Ｎｏ”となり、ステップＳＡ１３０の処理が実行される。すなわち、データ入出力Ａは制御装置１００Ａにおいて実行される。データ入出力Ｂについても同様に制御装置１００Ａにおいて実行される。
【００３５】
これに対して、制御装置１００Ｂの制御部１２０（以下、制御部１２０Ｂと呼ぶ）が実行するデータ入出力処理のステップＳＡ１００の判定結果は“Ｎｏ”となり、ステップＳＡ１４０の処理が実行される。このステップＳＡ１４０では、「通信モジュール１３０Ａ」が特定される。前述したようにデータ入出力Ａでは通信モジュール１３０Ａが使用されるからである。本動作例では、制御装置１００Ａの通信モジュール１３０Ａには故障は発生していないのであるから、ステップＳＡ１４０に後続して実行されるステップＳＡ１５０の判定結果は“Ｎｏ”となり、ステップＳＡ１６０の処理は実行されない。つまり、制御装置１００Ｂでは、データ入出力Ａが実行されることはなく、同様に、データ入出力Ｂが実行されることもない。
【００３６】
つまり、制御装置１００Ａが稼働系、制御装置１００Ｂが待機系となっており、かつ、制御装置１００Ａの通信モジュール１３０Ａと通信モジュール１３０Ｂの何れにも故障が発生していない状況下では、図４（ａ）に示すように、データ入出力Ａとデータ入出力Ｂは何れも制御装置１００Ａにおいて実行される。この場合、制御装置１００Ｂの通信モジュール１３０Ａおよび通信モジュール１３０Ｂについて故障が発生しているか否かが問題となることはない。なお、図４では、通信モジュール１３０Ａを「通信Ａ」と略記し、通信モジュール１３０Ｂを「通信Ｂ」と略記した。また、図４では、通信モジュールの故障の有無を○印または×印（○印は故障なしを意味し、×印は故障があることを意味する）で示し、故障の有無を問わないことを−印で示した。
【００３７】
（Ｂ−２：稼働系の複数の入出力モジュールの何れか故障が発生した場合の動作）
次いで、制御装置１００Ａの通信モジュール１３０Ａには故障は発生していないものの、通信モジュール１３０Ｂに故障が発生した場合の動作について説明する。前述したように、本実施形態では、稼働系の通信モジュール１３０Ａと通信モジュール１３０Ｂの両方が故障しない限り稼働系／待機系の切り換えは発生しないのであるから、通信モジュール１３０Ｂに故障が発生した以降も制御装置１００Ａは稼働系のままであり、制御装置１００Ｂは待機系のままである。
【００３８】
データ入出力Ａについては、前述したＢ−１の動作例と同様に、制御装置１００Ａにおいて実行され、制御装置１００Ｂにおいて実行されることはない。これに対して、データ入出力Ｂについては、制御部１２０Ａの実行するデータ入出力処理ではステップＳＡ１２０の判定結果が“Ｙｅｓ”となるため、制御装置１００Ａにおいて実行されることはない。一方、制御部１２０Ｂの実行するデータ入出力処理ではステップＳＡ１５０の判定結果が“Ｙｅｓ”となるため、ステップＳＡ１６０の処理が実行される。したがって、制御装置１００Ｂの通信モジュール１３０Ｂに故障が発生していなければ、データ入出力Ｂは制御装置１００Ｂにおいて実行される。なお、制御装置１００Ｂの通信モジュール１３０Ｂも故障していた場合には、制御装置１００Ａと制御装置１００Ｂの何れにおいてもデータ入出力Ｂを実行することはできない。この場合は、システム管理者等に重故障の発生を報知する処理を制御装置１００Ｂの制御部１２０に実行させるようにすれば良い。
【００３９】
ここで注目すべき点は、制御装置１００Ｂの通信モジュール１３０Ａについて故障の有無は問われないという点である。つまり、制御装置１００Ａの通信モジュール１３０Ｂに故障が発生し、制御装置１００Ｂの入出力モジュールにも故障が発生するといった多重故障が発生したとしても、制御装置１００Ｂにおける故障個所が通信モジュール１３０Ｂでなければ、図４（ｂ）に示すようにデータ入出力Ａおよびデータ入出力Ｂの実行は、制御装置１００Ａと制御装置１００Ｂによって分担され、制御対象機器２０の作動制御を継続することができる。
【００４０】
図５は、図６に示す従来の制御システムと本実施形態の制御システムについて、制御対象機器２０の作動制御の継続の可否を待機系および稼働系の各制御装置における入出力モジュールの故障の発生パターン毎に分類した図表である。なお、図５における制御装置Ａは、従来の制御システムであれば制御装置１０Ａを意味し、本実施形態の制御システムであれば制御装置１００Ａを意味する。同様に、図５における制御装置Ｂは、従来の制御系システムであれば制御装置１０Ｂを意味し、本実施形態の制御システムであれば制御装置１００Ｂを意味する。また、図５における通信Ａは、従来の制御システムであれば通信モジュールＡを意味し、本実施形態の制御システムであれば通信モジュール１３０Ａを意味する。同様に、図５における通信Ｂは、従来の制御システムであれば通信モジュールＢを意味し、本実施形態の制御システムであれば通信モジュール１３０Ｂを意味する。また、図５にて通信Ａ或いは通信Ｂに対応する各欄に記載の○印はその通信モジュールに故障がないことを意味し、同×印は故障があることを意味する。
【００４１】
初期状態（制御装置Ａと制御装置Ｂの何れにも故障が発生していない状態：すなわち、故障パターン番号（図５では、♯と略記）１の状態）では、図６に示す従来の制御システムと本実施形態の制御システムの何れにおいても、制御装置Ａが稼働系となっていたとする。この場合、従来の制御システムと本実施形態の制御システムの何れにおいても、データ入出力Ａおよびデータ入出力Ｂは何れも制御装置Ａにおいて実行される。故障パターン番号２〜７の各故障は、制御装置Ａと制御装置Ｂの何れか一方にのみ故障が発生した単一故障である。故障パターン番号２、３および６の各故障のように、制御装置Ｂ（すなわち、待機系の制御装置）に故障が発生しても、図６に示す従来の制御システムと本実施形態の制御システムの何れにおいても、稼働系／待機系の切り換えは発生しない。したがって、データ入出力Ａおよびデータ入出力Ｂは制御装置Ａにおいて実行され、制御対象機器２０の作動制御の継続には支障は生じない。
【００４２】
故障パターン番号４、５および７の各故障のように制御装置Ａにおいて故障が発生すると、従来の制御システムでは稼働系／待機系の切り換えが発生し、データ入出力Ａおよびデータ入出力Ｂは何れも制御装置Ｂにおいて実行される。この場合も、制御対象機器２０の作動制御の継続には支障は生じない。本実施形態の制御システムでは、故障パターン番号７のように、制御装置１００Ａの通信モジュール１３０Ａと通信モジュール１３０Ｂの両者が故障した場合には稼働系／待機系の切り換えが発生するものの、何れか一方のみの故障であれば稼働系／待機系の切り換えは発生しない。制御装置１００Ａの通信モジュール１３０Ａと通信モジュール１３０Ｂの何れかが故障している場合には、制御装置１００Ａの制御部１２０および制御装置１００Ｂの制御部１２０の各々が図３のデータ入出力処理を実行することで両制御部が協働し、データ入出力Ａおよびデータ入出力Ｂの分担が実現される。このため、制御対象機器２０の作動制御の継続には支障は生じない。つまり、図６に示す従来の制御システムと本実施形態の制御システムの何れにおいても、単一故障であれば、制御対象機器の作動制御を何らの問題なく継続することができる。
【００４３】
故障パターン番号８〜１６の各故障は、制御装置Ａと制御装置Ｂの両者に故障が発生した多重故障である。従来の制御システムでは、多重故障が発生すると、その多重故障の内容に拘らず、制御対象機器２０の作動制御の継続は不可能となる。この点については前述した通りである。これに対して、本実施形態によれば、故障の発生箇所が制御装置１００Ａおよび制御装置１００Ｂにおいて互いに対応する入出力モジュール（「制御装置１００Ａの通信モジュール１３０Ａと制御装置１００Ｂの通信モジュール１３０Ａ」、或いは「制御装置１００Ａの通信モジュール１３０Ｂと制御装置１００Ｂの通信モジュール１３０Ｂ」）でない限り、制御装置１００Ａの制御部１２０および制御装置１００Ｂの制御部１２０の協働により、データ入出力Ａおよびデータ入出力Ｂが制御装置１００Ａと制御装置１００Ｂによって分担して実行され、制御対象機器２０の作動制御を継続することができる。具体的には、故障パターン番号９或いは１０の故障であれば、本実施形態の制御システムでは制御対象機器２０の作動制御を継続することができる。
【００４４】
以上説明したように、本実施形態によれば、制御対象機器２０の作動制御を行う制御装置が二重化された制御システムにおいて、二重化された制御装置に多重故障が発生した場合であっても、その故障内容によっては制御対象機器２０の作動制御を継続することが可能になる。
【００４５】
（Ｃ：変形）
以上本発明の一実施形態について説明したが、この実施形態に以下の変形を加えても勿論良い。
（１）ＩＯマスタ１４０についても故障の有無を監視し、その監視結果を稼働系／待機系の切り換え判断の指標としても良いことは前述した通りであるが、さらに、ステップＳＡ１１０（ステップＳＡ１４０）における特定対象、ステップＳＡ１２０（ステップＳＡ１５０）の判定処理における判定指標としても良い。通信モジュール１３０Ａや通信モジュール１３０Ｂと同様にＩＯマスタ１４０も制御装置１００へのデータの入力、或いは制御装置１００からのデータの出力を行う入出力モジュールであるという点には変わりはないからである。
【００４６】
（２）上記実施形態では、制御装置１００Ａと制御装置１００Ｂを同一の構成としたが、両者を互いに異なる構成としても勿論良い。例えば、制御装置１００Ａの不揮発性記憶部１５４には、データ入出力処理として図３のステップＳＡ１１０〜ステップＳＡ１３０の処理のみを制御部１２０に実行させる制御プログラムを格納しておき、制御装置１００Ｂの不揮発性記憶部１５４には、データ入出力処理として図３のステップＳＡ１４０〜ステップＳＡ１６０の処理のみを制御部１２０に実行させる制御プログラムを格納させておくのである。換言すれば、稼働系専用の制御装置と待機系専用の制御装置を組み合わせて制御対象機器２０の作動制御のための制御装置対を形成するのである。この場合、稼働系および待機系の役割は制御装置毎に固定されるため、ステータスデータに基づく稼働系／待機系の切り換えを行う必要はない。また、上記実施形態では制御装置１００Ａと制御装置１００Ｂがプログラマブルロジックコントローラである場合について説明したが、ＤＣＳ（Distributed Control System：分散型制御システム或いは分散型制御装置）であっても良い。ＤＣＳはＰＬＣに比較して信頼性が高く、高信頼性を要求されるプラント設備では制御装置としてＤＣＳが用いられることが多いからである。
【００４７】
（３）上記実施形態では、稼働系の制御装置が有する複数の入出力モジュールの何れかに故障が発生すると、以降、その入出力モジュールを利用するデータ入出力を待機系の制御装置で実行する場合について説明した。しかし、稼働系の制御装置が有する複数の入出力モジュールの何れかに故障が発生した場合であっても、データ入出力の処理自体は稼働系で行い、待機系の入出力モジュールのみを使用するようにしても良い。具体的には、図３のステップＳＡ１２０の判定結果が”Ｙｅｓ”となった場合には、入出力対象のデータとそのデータの経由する入出力モジュールとを等値化ケーブル４０を介して他方の制御装置に通知する処理を稼働系の制御装置に実行させ、待機系の制御装置にはステップＳＡ１４０以降の処理に代えて、等値化ケーブル４０を介して通知された入出力モジュールを用いて等値化ケーブル４０を介して受信したデータを入出力する処理を実行させるようにすれば良い。要は、外部とのデータの入出力を各々行う複数の入出力モジュールを各々備えた２つの制御装置を等値化ケーブルで互いに接続して制御装置対を形成し、一方が稼働系となって制御対象機器の作動制御のための処理を実行し、他方は待機系となる制御システムにおいて、稼働系の制御装置の有する複数の入出力モジュールのうち制御対象機器の作動制御の実行過程で発生したデータ入出力に使用される入出力モジュールに故障が無い場合には当該入出力モジュールを用いて当該データ入出力が実行され、故障がある場合には当該故障のある入出力モジュールに対応する待機系の制御装置の入出力モジュールを用いて当該データ入出力が実行されるように２つの制御装置を協働させる態様であれば良い。
【００４８】
なお、本変形例の態様では、等値化ケーブル４０を介したデータ通信の通信量が増加することが考えられ、その増加の度合いによってはタクトの同期のための通信に支障が生じる虞がある。そこで、等値化ケーブル４０を介したデータ通信の帯域に余裕がない場合には、上記実施形態の態様が好ましく、十分に余裕がある場合には上記実施形態と本変形例の何れの態様を採用しても良い。また、上記実施形態では制御装置１００Ａと制御装置１００Ｂの間のデータ通信を仲介する制御装置間通信手段として等値化ケーブル４０を用いたが、無線ＬＡＮインタフェースなどの無線通信手段を制御装置間通信手段として用いても良い。また、制御装置１００Ａと制御装置１００Ｂとが１つの筐体に実装される場合には、両装置の接続されるバスを制御装置間通信手段として用いても良い。
【００４９】
（４）上記実施形態では、稼働系として機能している制御装置１００Ａの通信モジュール１３０Ｂに故障が発生した場合には、図４（ｂ）に示すようにデータ入出力Ａおよびデータ入出力Ｂの実行を制御装置１００Ａと制御装置１００Ｂに分担させることで、仮に制御装置１００Ｂの通信モジュール１３０Ａにも故障が発生するといった多重故障が発生したとしても、制御対象機器２０の作動制御を継続できるようにした。しかし、データ入出力Ａおよびデータ入出力Ｂの実行を図４（ｂ）に示すように分担させていると、通信モジュール１３０Ｂの交換のために制御装置１００Ａを停止させることができないなど保守作業に支障が生じる虞がある。そこで、待機系／稼働系の切り換え指示を保守担当者に入力させるための操作部（例えば、ディップスイッチなど）を制御装置１００に設け、この操作部に対して為された操作に応じて稼働系／待機系を切り換えるようにしても良い。
【００５０】
例えば、制御装置１００Ａの通信モジュール１３０Ｂの故障に起因して、図４（ｂ）に示すようにデータ入出力Ａおよびデータ入出力Ｂの分担が行われている場合には、上記操作部に対する操作によって制御装置１００Ａを強制的に待機系へ切り換え、制御装置１００Ｂを強制的に稼働系に切り換えるのである。制御装置１００Ｂの通信モジュール１３０Ａおよび通信モジュール１３０Ｂが何れも故障していなければ、上記稼働系／待機系の強制切り換えが行われた以降は、データ入出力Ａおよびデータ入出力Ｂは何れも制御装置１００Ｂにおいて実行される。このようにして制御装置１００Ｂが稼働系として機能している間に制御装置１００Ａを停止し、通信モジュール１３０Ｂの交換を行うのである。なお、上記強制切り換えを行う際には、何れかの入出力モジュールに故障の発生している制御装置が誤って稼働系に切り換えられることを回避するために、ステータスデータ１５２２を保守担当者が閲覧できるように、ステータスデータ１５２２を表示する表示手段を各制御装置に設けることが望ましい。
【００５１】
（５）上記実施形態では、工場等の産業施設に敷設される制御システムへの本発明の適用例を説明したが、本発明の適用対象は制御システムに限定されるものではなく、障害発生時においても処理を継続することが要求されるために装置の二重化が行われる通信システムであれば本発明を適用可能である。具体的には、株式市場における売買情報を記録するデータベースへのデータの書き込み或いは読み出しを行う制御装置に本発明を提供することが考えられる。また、本発明の適用対象の制御システムは、稼働系であるか待機系であるかを問わずに各制御装置にアプリケーションプログラムにしたがった所定の演算を実行させる所謂ホットスタンバイ方式の制御システムであっても良く、二重化された制御装置の一方が稼働系となって上記演算を実行し、他方は待機系となって稼働系の故障に備える（上記演算を実行しない）ウォーム・スタンバイ方式の制御システムであっても良い。
【符号の説明】
【００５２】
１０，１０Ａ，１０Ｂ，１００，１００Ａ，１００Ｂ…制御装置、１１０…電源部、１２０…制御部、１３０Ａ，１３０Ｂ…通信モジュール、１４０…ＩＯマスタ、１５０…記憶部、１５２…揮発性記憶部、１５４…不揮発性記憶部、１５４２…アプリケーションプログラム、１５４４…制御プログラム、１５４６…稼働／待機フラグ、２０…制御対象機器、３０，３０Ａ，３０Ｂ…ネットワーク、４０…等値化ケーブル。
【図１】
2015207239.tif 000003
【図２】
2015207239.tif 000004
【図３】
2015207239.tif 000005
【図４】
2015207239.tif 000006
【図５】
2015207239.tif 000007
【図６】
2015207239.tif 000008