(57)【要約】【課題】冗長化コントローラにおいて、制御プログラム実行中にデータ書込み要求があっても冗長化を実現する。【解決手段】Ｉ／ＯデータＤ１及び書込みデータＤ５を取得して、制御プログラムを実行する制御側コントローラ１と、制御側コントローラ１をバックアップして、制御プログラムを実行する待機側コントローラ５とを備える。制御側コントローラ１は、取得したＩ／ＯデータＤ１及び書込みデータＤ５を記憶して、Ｉ／ＯデータＤ１と共に書込みデータＤ５を入力データＤ３として待機側コントローラ５に出力する。これにより、制御側コントローラ１及び待機側コントローラ５は、同様のＩ／ＯデータＤ１及び書込みデータＤ５に基づいて制御プログラムを実行できるようになり、制御プログラムの実行中に書込みデータＤ５が外部から変更されることがないため、制御プログラムの実行中にデータの書込み要求がある場合でも冗長化を実現できる。【選択図】図１
2011070496.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から出力されるＩ／ＯデータをＩ／Ｏデバイスを介して取得し、かつ、データ
アクセス部が保持する書込みデータを取得して、所定の演算処理を実行する制御側コント
ローラと、前記制御側コントローラをバックアップして、所定の演算処理を実行する待機
側コントローラとを備える制御装置であって、
前記制御側コントローラは、
当該制御側コントローラが取得した前記Ｉ／Ｏデータ及び前記書込みデータを記憶する
制御側記憶部と、
前記制御側記憶部によって記憶された前記Ｉ／Ｏデータと共に前記書込みデータを入力
データとして前記待機側コントローラに出力する入力データ処理部とを備えることを特徴
とする制御装置。
【請求項２】
前記待機側コントローラは、
前記入力データ処理部から出力された前記入力データに含まれる前記Ｉ／Ｏデータ及び
前記書込みデータを記憶する待機側記憶部と、
前記待機側記憶部に記憶された前記Ｉ／Ｏデータ及び前記書込みデータに基づいて所定
の演算処理を実行して、新たなＩ／Ｏデータ及び読込みデータを生成する待機側制御部と
、
前記待機側制御部によって生成された前記新たなＩ／Ｏデータと共に前記読込みデータ
を出力データとして前記制御側コントローラに出力する出力データ処理部とを備えること
を特徴とする請求項１に記載の制御装置。
【請求項３】
前記制御側コントローラは、
前記制御側記憶部によって記憶された前記Ｉ／Ｏデータ及び前記書込みデータに基づい
て所定の演算処理を実行して、新たなＩ／Ｏデータ及び読込みデータを生成し、
該生成した新たなＩ／Ｏデータ及び読込みデータと、前記出力データ処理部によって出
力された前記出力データに含まれる新たなＩ／Ｏデータ及び読込みデータとを比較し、
該比較結果が一致したら、新たなＩ／Ｏデータを前記Ｉ／Ｏデバイスに出力して、読込
みデータを前記データアクセス部に出力する制御側制御部をさらに備えることを特徴とす
る請求項１又は２に記載の制御装置。
【請求項４】
前記データアクセス部には前記書込みデータを記憶する書込みデータバッファと、前記
読込みデータを記憶する読込みデータバッファとが設けられることを特徴とする請求項１
乃至３のいずれか１項に記載の制御装置。
【請求項５】
前記制御側コントローラ及び前記待機側コントローラは、
前記Ｉ／Ｏデバイスを介して選択的にプラントの機器を制御することを特徴とする請求
項１乃至４のいずれか１項に記載の制御装置。
【請求項６】
外部装置から出力されるＩ／ＯデータをＩ／Ｏデバイスを介して取得し、かつ、書込み
データを記憶するデータアクセス部から前記書込みデータを取得して、所定の演算処理を
実行する制御側コントローラと、前記制御側コントローラをバックアップして、所定の演
算処理を実行する待機側コントローラとを備える制御装置の制御方法であって、
取得した前記Ｉ／Ｏデータ及び前記書込みデータを前記制御側コントローラに記憶し、
該記憶した前記Ｉ／Ｏデータと共に前記書込みデータを入力データとして前記待機側コン
トローラに出力することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メイン制御の制御側コントローラ及び制御側コントローラをバックアップす
る待機側コントローラを備えて冗長化された制御装置及び制御方法に関するものである。
【背景技術】
【０００２】
現在、システムに何らかの障害が発生した場合に対して、システムとしての機能を維持
し続けられるように予備のシステムをバックアップとして設ける冗長化システムが広まっ
ている。この冗長化システムは、同じシステムを並列して常に稼動させておき、使用して
いる方のシステムに障害が発生しても瞬時に他のシステムに切り換えられるようになって
いる。このような冗長化システムは、信頼性を高める点においては有用であるが、専用ハ
ードウェア及び特殊なＯＳ（Operating System）を使用することが多いので、高コストに
なってしまうことがある。
【０００３】
特許文献１は、上述の欠点を解消するために、単体で動作する２台のコントローラをペ
アにして冗長化システムを構成し、これらのコントローラに、共通のＩ／Ｏデバイスから
読込んだＩ／Ｏデータを入力して、コントローラ間で処理の同期やデータの等値化を行う
ことで、汎用のハードウェア及びＯＳで冗長化を実現可能にしたものである。
【０００４】
次に、従来例として冗長化システムである制御装置２００について説明する。図７は、
従来の制御装置２００の構成例を示すブロック図である。図７に示すように、制御装置２
００は、図示しない外部装置の一例であるプラントの機器に接続されるＩ／Ｏデバイス９
、このＩ／Ｏデバイス９と接続された制御側コントローラ１１及び待機側コントローラ２
１で構成される。Ｉ／Ｏデバイス９とは、例えばシリアルＩ／Ｏカードやイーサネット（
登録商標）Ｉ／Ｏカードである。制御側コントローラ１１は、通常時にＩ／Ｏデバイス９
を介して外部装置を制御する。待機側コントローラ２１は、制御側コントローラ１１のバ
ックアップとしての機能を有する。制御側コントローラ１１に異常が発生したら直ちに制
御が制御側コントローラ１１から待機側コントローラ２１に切り替わり、待機側コントロ
ーラ２１がＩ／Ｏデバイス９を介して外部装置を制御する。制御側コントローラ１１及び
待機側コントローラ２１は、同じハードウェアとソフトウェアの構成を取り、同じ機能と
性能を有するものである。
【０００５】
制御側コントローラ１１は、プログラム実行環境２、データアクセス部１３及び制御部
１４を備える。プログラム実行環境２は、例えば、Ｊａｖａ（登録商標）等のアプリケー
ションを含めたアプリケーション実行環境である。プログラム実行環境２が制御部１４に
制御データを渡したい場合に、データアクセス部１３を介して後述する制御データ記憶部
４１に制御データを書き込む。また、プログラム実行環境２が制御部１４から制御データ
を受け取りたい場合に、データアクセス部１３を介して後述する制御データ記憶部４１か
ら制御データを読み込む。
【０００６】
プログラム実行環境２にはデータアクセス部１３が接続される。データアクセス部１３
は、プログラム実行環境２によって出力された書込みデータＤ５を制御部１４の制御デー
タ記憶部４１に書込む。さらに制御側コントローラ１１の制御部１４と後述する待機側コ
ントローラ２１の制御部２４の処理を冗長化するために、データアクセス部１３は後述す
る待機側コントローラ２１のデータアクセス部２３にも書込みデータＤ５を出力する。ま
た、データアクセス部１３は、プログラム実行環境２が制御部１４から受け取りたい読込
みデータＤ６を制御部１４の制御データ記憶部４１から読み込み、プログラム実行環境２
に出力する。
【０００７】
データアクセス部１３には制御部１４が接続される。制御部１４は、制御データ記憶部
４１及びＩ／Ｏデータ記憶部４２を有する。制御部１４は、Ｉ／Ｏデバイス９から取得し
たＩ／ＯデータＤ１をＩ／Ｏデータ記憶部４２に記録する。そして、制御部１４は、Ｉ／
Ｏデータ記憶部４２に記録したＩ／ＯデータＤ１と、データアクセス部１３によって制御
データ記憶部４１に書き込まれた書込みデータＤ５とを読み込んで、所定の演算処理（以
下、制御プログラムという）を実行し、該処理結果を制御データ記憶部４１とＩ／Ｏデー
タ記憶部４２に記憶する。
【０００８】
制御部１４は、待機側コントローラ２１のＩ／ＯデータＤ１を制御側コントローラ１１
と等値化するために、Ｉ／Ｏデータ記憶部４２からＩ／ＯデータＤ１を読み込むと共に、
待機側コントローラ２１の制御部２４に当該Ｉ／ＯデータＤ１を出力する。
【０００９】
そして、制御側コントローラ１１の制御部１４は、制御プログラムを実行して生成され
たＩ／ＯデータＤ２と、待機側コントローラ２１の制御部２４から出力されたＩ／Ｏデー
タＤ２とを比較する。制御部１４は、比較結果が一致したら、Ｉ／ＯデータＤ２をＩ／Ｏ
デバイス９に出力する。
【００１０】
待機側コントローラ２１は、プログラム実行環境６、データアクセス部２３及び制御部
２４を備える。制御側コントローラ１１が正常なとき、待機側コントローラ２１は、制御
側コントローラ１１のバックアップとして機能するために、プログラム実行環境６を動作
させずにデータアクセス部２３及び制御部２４のみを動作させている。制御側コントロー
ラ１１が異常なとき、待機側コントローラ２１は、データアクセス部２３及び制御部２４
を動作させると共にプログラム実行環境６を動作させて、Ｉ／Ｏデバイス９を介して外部
装置を制御する。
【００１１】
プログラム実行環境６は、上述のプログラム実行環境２と同じものであるが、制御側コ
ントローラ１１が正常なときは、動作させない。
【００１２】
プログラム実行環境６にはデータアクセス部２３が接続される。データアクセス部２３
は、制御側コントローラ１１のデータアクセス部１３から書込みデータＤ５を受信して、
後述する制御部２４の制御データ記憶部８１に書き込む。制御側コントローラ１１が正常
に動作しているときには、プログラム実行環境６は動作させないので、データアクセス部
２３とプログラム実行環境６とは制御データのやり取りを行わない（破線の矢印で示す）
。
【００１３】
データアクセス部２３には制御部２４が接続される。制御部２４は、制御データ記憶部
８１及びＩ／Ｏデータ記憶部８２を有する。制御部２４は、制御側コントローラ１１の制
御部１４から出力されたＩ／ＯデータＤ１をＩ／Ｏデータ記憶部８２に記憶する。また、
制御部２４は、制御データ記憶部８１からデータアクセス部２３によって書き込まれた書
込みデータＤ５を読み込み、Ｉ／Ｏデータ記憶部８２からＩ／ＯデータＤ１を読み込んで
、制御プログラムを実行する。そして、制御部２４は、該実行結果として読込みデータＤ
６及びＩ／ＯデータＤ２を制御データ記憶部８１及びＩ／Ｏデータ記憶部８２にそれぞれ
記憶する。また、制御部２４は、Ｉ／Ｏデータ記憶部８２に記憶されたＩ／ＯデータＤ２
を制御側コントローラ１１の制御部１４に出力する。制御側コントローラ１１の異常時に
、Ｉ／Ｏデバイス９と制御部２４とが接続され（破線の矢印で示す）、制御部２４は、Ｉ
／Ｏデバイス９から取得するＩ／ＯデータＤ１とＩ／Ｏデバイス９に出力するＩ／Ｏデー
タＤ２とをＩ／Ｏデータ記憶部８２に記憶する。データアクセス部２３は、プログラム実
行環境６を動作させることにより、このプログラム実行環境６から出力される書込みデー
タＤ５を制御データ記憶部８１に書き込む。また、データアクセス部２３は、プログラム
実行環境６が受け取る読込みデータＤ６を制御データ記憶部８１から読み込み、プログラ
ム実行環境６に出力する。
【００１４】
制御部２４は、データアクセス部２３から出力された書込みデータＤ５と制御部１４か
ら出力された（制御側コントローラ１１が異常時にはＩ／Ｏデバイス９から取得した）Ｉ
／ＯデータＤ１とに基づいて制御プログラムを実行して、この実行結果をＩ／ＯデータＤ
２として制御部１４に出力する。
【００１５】
次に、制御部１４，２４がＩ／ＯデータＤ１及び書込みデータＤ５に基づいて制御プロ
グラムを実行する処理例について説明をする。図８，９は、制御部１４，２４の処理例を
示す説明図である。図８に示すように、制御部１４は、Ｉ／Ｏデバイス９からＩ／Ｏデー
タＤ１を取得する（図８では制御部１４のＩ／ＯReadに対応する）。そして、制御部１４
は、待機側コントローラ２１の制御部２４に取得したＩ／ＯデータＤ１を出力すると共に
、制御プログラム（Program1、Program2、…）を実行する。
【００１６】
一方、待機側コントローラ２１の制御部２４は、制御部１４から出力されたＩ／Ｏデー
タＤ１を受け取り（図８では制御部２４のＩ／ＯReadに対応する）、制御プログラム（Pr
ogram１、Program２、…）を実行する。
【００１７】
制御部１４は、制御プログラムの実行後、制御部２４の制御プログラムの実行結果であ
り、当該制御部２４から出力されるＩ／ＯデータＤ２を受け付けるために待機する。制御
部２４は、Ｉ／ＯデータＤ２を制御部１４に出力する（図８では制御部２４のＩ／ＯWrit
eに対応する）。制御部１４は、制御プログラムの実行結果であるＩ／ＯデータＤ２と、
制御部２４から出力されたＩ／ＯデータＤ２とを比較し、該比較結果が一致したらＩ／Ｏ
データＤ２をＩ／Ｏデバイス９に出力する（図８では制御部１４のＩ／ＯWriteに対応す
る）。
【００１８】
次に、制御部１４，２４に同時にデータアクセス部１３，２３から書込み要求がされた
場合について説明する。図８に示すように、制御部１４では、Program２を実行中にデー
タアクセス部１３から書込みデータＤ５が制御データ記憶部４１に書き込まれ、制御部２
４では、Program１を実行中にデータアクセス部２３から書込みデータＤ５が制御データ
記憶部８１に書き込まれることがある。同時に書き込み要求がされたのに、実行されてい
る制御プログラムが異なるのは、制御部１４，２４で制御プログラムの処理時間が異なる
ことに起因する。
【００１９】
また、図９に示すように、制御部１４，２４で制御プログラムの処理時間が同じである
場合、制御側コントローラ１１では、書込みデータＤ５がデータアクセス部１３から制御
部１４に出力されるのに対し、待機側コントローラ２１では、書込みデータＤ５がデータ
アクセス部１３からデータアクセス部２３を介して制御部２４に出力されるので、制御部
１４では、Program１を実行中にデータアクセス部１３から書込みデータＤ５が制御デー
タ記憶部４１に書き込まれ、制御部２４では、Program２を実行中にデータアクセス部２
３から書込みデータＤ５が制御データ記憶部８１に書き込まれる。
【００２０】
このように、データアクセス部１３，２３が制御部１４，２４の制御データ記憶部４１
，８１に書き込んで、制御側コントローラ１１と待機側コントローラ２１との制御プログ
ラムの実行結果が比較処理のときに一致しないことがある。このとき、各コントローラが
正常に動作している場合でも制御プログラムの実行結果が異なることで異常動作と判定さ
れてしまい、冗長化が成り立たなくなってしまうことがある。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】特開２００７−２０６９４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００２２】
ところで、特許文献１及び従来例の制御装置によれば、汎用のハードウェア及びＯＳで
冗長化が実現できるが、上述のように、制御プログラムの処理中に書き込み要求があると
、制御側コントローラと待機側コントローラとの制御プログラム処理結果が一致しない場
合があり、これが原因でコントローラの異常と判断されて冗長化が成り立たないという問
題がある。
【００２３】
本発明は、このような課題を解決したものであって、制御プログラムの処理中に書き込
み要求がある場合でも冗長化可能な制御装置を提供することを目的とする。
【課題を解決するための手段】
【００２４】
上述の課題を解決するために、本発明に係る制御装置は、外部装置から出力されるＩ／
ＯデータをＩ／Ｏデバイスを介して取得し、かつ、データアクセス部が保持する書込みデ
ータを取得して、所定の演算処理を実行する制御側コントローラと、制御側コントローラ
をバックアップして、所定の演算処理を実行する待機側コントローラとを備える制御装置
であって、制御側コントローラは、当該制御側コントローラが取得したＩ／Ｏデータ及び
書込みデータを記憶する制御側記憶部と、制御側記憶部によって記憶されたＩ／Ｏデータ
と共に書込みデータを入力データとして待機側コントローラに出力する入力データ処理部
とを備えることを特徴とするものである。
【００２５】
本発明に係る制御装置は、外部装置から出力されるＩ／ＯデータをＩ／Ｏデバイスを介
して取得し、かつ、データアクセス部が保持する書込みデータを取得して、制御プログラ
ムを実行する制御側コントローラと、制御側コントローラをバックアップして、制御プロ
グラムを実行する待機側コントローラとを備える制御装置であって、制御側コントローラ
は、取得したＩ／Ｏデータ及び書込みデータを記憶し、該記憶したＩ／Ｏデータと共に書
込みデータを入力データとして待機側コントローラに出力する。
【００２６】
これにより、制御側コントローラが制御プログラムの実行前に入力データを待機側コン
トローラに予め出力するので、制御側コントローラ及び待機側コントローラは、同様のＩ
／Ｏデータ及び書込みデータに基づいて制御プログラムを実行できるようになる。
【００２７】
また、本発明に係る制御方法は、外部装置から出力されるＩ／ＯデータをＩ／Ｏデバイ
スを介して取得し、かつ、書込みデータを記憶するデータアクセス部から書込みデータを
取得して、所定の演算処理を実行する制御側コントローラと、制御側コントローラをバッ
クアップして、所定の演算処理を実行する待機側コントローラとを備える制御装置の制御
方法であって、取得したＩ／Ｏデータ及び書込みデータを制御側コントローラに記憶し、
該記憶したＩ／Ｏデータと共に書込みデータを入力データとして待機側コントローラに出
力することを特徴とするものである。
【発明の効果】
【００２８】
本発明に係る制御装置及び制御方法によれば、制御側コントローラ及び待機側コントロ
ーラが同様のＩ／Ｏデータ及び書込みデータに基づいて制御プログラムを実行できるので
、制御側コントローラ及び待機側コントローラの制御プログラムの実行中に制御プログラ
ムが使用する制御データが変更されることを防止できる。この結果、制御プログラムの実
行中にデータの書込み要求がある場合でも冗長化可能な制御装置を提供することができる
。
【図面の簡単な説明】
【００２９】
【図１】本実施の形態に係る制御装置１００の構成例を示すブロック図である。
【図２】待機側コントローラ５による制御装置１００の動作例を示すブロック図である。
【図３】制御部４，８の処理例を示す説明図である。
【図４】制御部４，８の動作例を示すフローチャートである。
【図５】プログラム実行環境２及びデータアクセス部３の動作例（その１）を示すフローチャートである。
【図６】プログラム実行環境２及びデータアクセス部３の動作例（その２）を示すフローチャートである。
【図７】従来の制御装置２００の構成例を示すブロック図である。
【図８】制御部１４，２４の処理例（その１）を示す説明図である。
【図９】制御部１４，２４の処理例（その２）を示す説明図である。
【発明を実施するための形態】
【００３０】
以下、図面を参照しながら本実施の形態に係る制御装置について説明する。  
［制御装置１００の構成例］  
図１は、本実施の形態に係る制御装置１００の構成例を示すブロック図である。図１に
示すように、制御装置１００は、図示しない外部装置の一例であるプラントの機器に接続
されるＩ／Ｏデバイス９、Ｉ／Ｏデバイス９に接続された制御側コントローラ１及び待機
側コントローラ５で構成される。制御側コントローラ１は、通常時にＩ／Ｏデバイス９を
介して外部装置を制御する。待機側コントローラ５は、制御側コントローラ１のバックア
ップとしての機能を有する。制御側コントローラ１に異常が発生したら直ちに制御が制御
側コントローラ１から待機側コントローラ５に切り替わり、待機側コントローラ５がＩ／
Ｏデバイス９を介して外部装置を制御する。制御側コントローラ１と待機側コントローラ
５は、同じハードウェア及び同じソフトウェアの構成を取り、同じ機能及び同じ性能を有
するものである。
【００３１】
［制御側コントローラ１の構成例］  
制御側コントローラ１は、プログラム実行環境２、データアクセス部３及び制御部４を
備える。プログラム実行環境２は、上述の従来の制御装置２００で説明したものと同じも
のであり、例えば、Ｊａｖａ（登録商標）実行環境等のアプリケーションである。プログ
ラム実行環境２は、データアクセス部３に対して制御データの書き込み及び読み込み要求
を行う。
【００３２】
プログラム実行環境２にはデータアクセス部３が接続される。データアクセス部３は、
書込みデータバッファ３１及び読込みデータバッファ３２を有する。書込みデータバッフ
ァ３１は、制御データの一例である書込みデータＤ５を記憶する。読込みデータバッファ
３２は、制御データの一例である読込みデータＤ６を記憶する。
【００３３】
データアクセス部３は、プログラム実行環境２から出力される書込みデータＤ５を受信
して、書込みデータバッファ３１に記憶する。また、データアクセス部３は、読込みデー
タバッファ３２に記憶された読込みデータＤ６をプログラム実行環境２からの要求時に読
み出して、プログラム実行環境２に出力する。
【００３４】
データアクセス部３には制御部４が接続される。制御部４は、制御データ記憶部４１、
Ｉ／Ｏデータ記憶部４２、入力データ処理部４３及び出力データ処理部４４を有する。
【００３５】
入力データ処理部４３は、データアクセス部３の書込みデータバッファ３１から書込み
データＤ５を読み出して制御データ記憶部４１に記憶し、Ｉ／Ｏデバイス９からＩ／Ｏデ
ータＤ１を読み出してＩ／Ｏデータ記憶部４２に記憶する。更に、入力データ処理部４３
は、書込みデータバッファ３１とＩ／Ｏデバイス９から読み出した書込みデータＤ５とＩ
／ＯデータＤ１を入力データＤ３として待機側コントローラ５に出力する。
【００３６】
制御部４は、制御データ記憶部４１から書込みデータＤ５を読み出し、かつ、Ｉ／Ｏデ
ータ記憶部４２からＩ／ＯデータＤ１を読み出して、書込みデータＤ５及びＩ／Ｏデータ
Ｄ１に基づいて制御プログラムを実行する。制御プログラムが実行されると、Ｉ／Ｏデー
タＤ２及び読込みデータＤ６が生成される。そして、制御部４は、生成したＩ／Ｏデータ
Ｄ２及び読込みデータＤ６をＩ／Ｏデータ記憶部４２及び制御データ記憶部４１にそれぞ
れ記憶させる。
【００３７】
出力データ処理部４４は、待機側コントローラ５の入力データ処理部から出力されるＩ
／ＯデータＤ２及び読込みデータＤ６を含む出力データＤ４を受信して、これらのデータ
とＩ／Ｏデータ記憶部４２のＩ／ＯデータＤ２及び制御データ記憶部４１の読込みデータ
Ｄ６を比較する。出力データ処理部４４は、比較結果が一致したら、Ｉ／ＯデータＤ２を
Ｉ／Ｏデバイス９に出力し、読込みデータＤ６をデータアクセス部３の読込みデータバッ
ファ３２に記憶する。
【００３８】
［待機側コントローラ５の構成例］  
待機側コントローラ５は、プログラム実行環境６、データアクセス部７及び制御部８を
備える。プログラム実行環境６は、例えば、Ｊａｖａ（登録商標）実行環境等のアプリケ
ーションであり、上述のプログラム実行環境２と同じものである。データアクセス部７と
プログラム実行環境６は、制御側コントローラ１１が正常なときには動作を行わない。
【００３９】
プログラム実行環境６にはデータアクセス部７が接続される。データアクセス部７は、
書込みデータバッファ７１及び読込みデータバッファ７２を有する。書込みデータバッフ
ァ７１は、書込みデータＤ５を記憶し、読込みデータバッファ７２は、読込みデータＤ６
を記憶する。
【００４０】
データアクセス部７は、制御側コントローラ１１が正常なときには動作を行わないため
、プログラム実行環境６及び制御部８との制御データの通信も行わない（破線の矢印で示
す）。データアクセス部７は、制御側コントローラ１１に何らかの異常が生じたときに動
作を行う（図２で後述する）。
【００４１】
データアクセス部７には制御部８が接続される。制御部８は、制御データ記憶部８１、
Ｉ／Ｏデータ記憶部８２、入力データ処理部８３及び出力データ処理部８４を有する。
【００４２】
入力データ処理部８３は、制御側コントローラ１の入力データ処理部４３から出力され
る入力データＤ３を受信する。そして、入力データ処理部８３は、入力データＤ３に含ま
れる書込みデータＤ５を制御データ記憶部８１に記憶させ、入力データＤ３に含まれるＩ
／ＯデータＤ２をＩ／Ｏデータ記憶部８２に記憶させる。
【００４３】
制御部８は、制御データ記憶部８１に記憶された書込みデータＤ５を読み出し、かつ、
Ｉ／Ｏデータ記憶部８２に記憶されたＩ／ＯデータＤ１を読み出して、書込みデータＤ５
及びＩ／ＯデータＤ１に基づいて制御プログラムを実行する。
【００４４】
出力データ処理部８４は、制御データ記憶部８１に記憶された読込みデータＤ６と、Ｉ
／Ｏデータ記憶部８２に記憶されるＩ／ＯデータＤ２とを出力データＤ４として、制御側
コントローラ１に出力する。
【００４５】
［制御装置１００の動作例］  
次に、制御側コントローラ１に何らかの障害が発生して、外部装置の制御が待機側コン
トローラ５に切り替わる場合について説明する。図２は、待機側コントローラ５による制
御装置１００の動作例を示すブロック図である。図２に示すように、制御側コントローラ
１に何らかの障害が発生して、当該制御側コントローラ１の各部が停止して、各部のデー
タ通信が停止する（破線の矢印で示す）。また、制御側コントローラ１の制御部４と待機
側コントローラ５の制御部８とのデータ通信も停止する。このとき、制御部４に接続され
てデータ通信を行っていたＩ／Ｏデバイス９は、制御部８に接続される。そして、Ｉ／Ｏ
デバイス９は、制御部８とデータ通信を行う。
【００４６】
また、外部装置の制御が待機側コントローラ５に切り替わると共に、データアクセス部
７とプログラム実行環境６が起動し、データアクセス部７がプログラム実行環境６及び制
御部８とのデータ通信を開始する。待機側コントローラ５は、制御側コントローラ１が停
止する前に制御側コントローラ１から入力データＤ３を取得していたので、制御側コント
ローラ１の各種データが当該待機側コントローラ５にバックアップされている。待機側コ
ントローラ５の動作は、前述の制御側コントローラ１の動作と同様であるので、詳細な説
明は省略する。
【００４７】
これにより、制御側コントローラ１が万一停止しても、待機側コントローラ５が動作し
て、外部装置の制御を行うことができる。また、待機側コントローラ５に制御側コントロ
ーラ１のデータが確実にバックアップされているので、待機側コントローラ５は正常時の
制御側コントローラ１の動作を継続することができる。
【００４８】
［制御部４，８の処理例］  
次に、制御部４，８がＩ／ＯデータＤ１及び書込みデータＤ５に基づいて制御プログラ
ムを実行する処理の一例である定周期処理について説明する。図３は、制御部４，８の処
理例を示す説明図である。図３に示すように、制御部４は、Ｉ／Ｏデバイス９からＩ／Ｏ
データＤ１を取得し（図３では制御部４のＩ／ＯReadに対応する）、Ｉ／Ｏデータ記憶部
４２に記憶する。さらに、制御部４は、書込みデータバッファ３１から書込みデータＤ５
を取得し（図３では制御部４の書込データReadに対応する）、制御データ記憶部４１に記
憶する。その後、制御部４は、Ｉ／ＯデータＤ１及び書込みデータＤ５を待機側コントロ
ーラ５の制御部８に入力データＤ３として出力すると共に、制御プログラム（Program1、
Program2、…）を実行する。そして、制御部４は、制御プログラムを実行すると、Ｉ／Ｏ
データＤ２及び読込みデータＤ６を生成し、該生成したＩ／ＯデータＤ２及び読込みデー
タＤ６をＩ／Ｏデータ記憶部４２及び制御データ記憶部４１にそれぞれ記憶する。
【００４９】
一方、待機側コントローラ５の制御部８は、制御部４から出力された入力データＤ３を
受信し（図３では制御部８のＩ／ＯReadと書込データReadに対応する）、入力データＤ３
に含まれるＩ／ＯデータＤ１及び書込みデータＤ５をＩ／Ｏデータ記憶部８２及び制御デ
ータ記憶部８１にそれぞれ記憶する。その後、制御部８は、制御プログラム（Program1、
Program2、…）を実行する。そして、制御部８は、制御プログラムが実行すると、Ｉ／Ｏ
データＤ２及び読込みデータＤ６が生成し、該生成したＩ／ＯデータＤ２及び読込みデー
タＤ６をＩ／Ｏデータ記憶部８２及び制御データ記憶部８１にそれぞれ記憶する。
【００５０】
制御部４は、当該制御部４が制御プログラム実行後、制御部８から出力される出力デー
タＤ４を受け付けるために待機する。制御部８は、制御プログラムの実行結果であるＩ／
ＯデータＤ２及び読込みデータＤ６を出力データＤ４として制御部４に出力する（図３で
は制御部８のＩ／ＯWrite、読込データWriteにそれぞれ対応する）。制御部４は、制御部
８から出力された出力データＤ４を受信して、この出力データＤ４に含まれるＩ／Ｏデー
タＤ２及び読込みデータＤ６と、当該制御部４が生成したＩ／ＯデータＤ２及び読込みデ
ータＤ６とを比較する。制御部４は、該比較結果が一致したら、Ｉ／ＯデータＤ２をＩ／
Ｏデバイス９に出力し、読込みデータＤ６を読込みデータバッファ３２に記憶する（図３
では制御部４のＩ／ＯWrite、読込データWriteにそれぞれ対応する）。
【００５１】
このように、上述の定周期処理を行う制御装置１００は、例えば制御プログラム処理の
実行中にプログラム実行環境２から書込み要求があっても、書込みデータバッファ３１に
書込みデータＤ５を保持し、次の周期の制御プログラムの実行前に書込みデータＤ５を制
御データ記憶部４１，８１に書き込んで記憶させる。これにより、制御プログラム実行中
に制御データ記憶部４１，８１に記憶されている制御データの変更を防止できるようにな
る。この結果、制御プログラム実行中にデータ書き込み要求があっても、制御側コントロ
ーラ１で実行される制御プログラムの実行結果と、待機側コントローラ５で実行される制
御プログラムの実行結果との不一致を防止できる。
【００５２】
また、データアクセス部３に書込みデータバッファ３１及び読込みデータバッファ３２
を有するので、Ｉ／ＯデータＤ１，Ｄ２の処理と同じように書込みデータＤ５及び読込み
データＤ６を処理できるようになる。これにより、制御側コントローラ１と待機側コント
ローラ５との通信を入力データＤ３及び出力データＤ４を使用して簡単に行うことができ
る。
【００５３】
［制御部４，８の動作例］  
次に、制御部４，８の動作例についてフローチャートを用いて説明する。図４は、制御
部４，８の動作例を示すフローチャートである。図４に示すように、ステップＳＴ１では
、制御側コントローラ１の制御部４は、Ｉ／Ｏデバイス９からＩ／ＯデータＤ１を取得し
、かつ、データアクセス部３が有する書込みデータバッファ３１から書込みデータＤ５を
取得する。
【００５４】
ステップＳＴ２に移行して、制御部４は、取得したＩ／ＯデータＤ１及び書込みデータ
Ｄ５を入力データＤ３として、待機側コントローラ５の制御部８に送信する。ステップＳ
Ｔ３に移行して、待機側コントローラ５の制御部８は、制御部４から送信された入力デー
タＤ３を取得する。
【００５５】
ステップＳＴ４に移行して、制御部４は、制御プログラムを実行して、Ｉ／ＯデータＤ
２及び読込みデータＤ６を生成する。ステップＳＴ５に移行して、制御部８は、制御プロ
グラムを実行して、Ｉ／ＯデータＤ２及び読込みデータＤ６を生成する。なお、本実施の
形態では、制御部４が入力データＤ３を送信してから制御プログラムを実行するようにし
ているが、制御部８が入力データＤ３を取得したと同時に制御プログラムを実行するもの
としてもよい。
【００５６】
ステップＳＴ６に移行して、制御部８は、生成したＩ／ＯデータＤ２及び読込みデータ
Ｄ６を出力データＤ４として制御部４に送信する。ステップＳＴ７に移行して、制御部４
は、当該制御部４が生成したＩ／ＯデータＤ２及び読込みデータＤ６と、制御部８から送
信された出力データＤ４に含まれるＩ／ＯデータＤ２及び読込みデータＤ６とが一致する
か否か比較する。制御部４の比較結果が一致すれば、ステップＳＴ８に移行する。制御部
４の比較結果が一致しなければ、Ｉ／ＯデータＤ２及び読込みデータＤ６に何らかのエラ
ーがあったと見なして、Ｉ／ＯデータＤ２及び読込みデータＤ６の処理を終了する。
【００５７】
ステップＳＴ８では、制御部４は、Ｉ／ＯデータＤ２をＩ／Ｏデバイス９に出力する。
また、制御部４は、読込みデータＤ６をデータアクセス部３に出力する。
【００５８】
なお、読込みデータＤ６は、読込みデータバッファ３２を経由してプログラム実行環境
２と制御部４との間を伝送しているが、プログラム実行環境２と制御部４との間を直接伝
送しても良い。この場合、プログラム実行環境２は、制御部４の定周期処理終了のタイミ
ングで読込みデータＤ６を取得できるため、制御部４と同期して動作するプログラム実行
環境に適している。（因みに、読込みデータＤ６が読込みデータバッファ３２を経由する
場合は、要求元のタイミングで読込みデータＤ６を取得できるため、制御部４と非同期に
動作するプログラム実行環境に適している。）
【００５９】
［プログラム実行環境２及びデータアクセス部３の動作例］  
次に、プログラム実行環境２及びデータアクセス部３の動作例についてフローチャート
を用いて説明する。図５は、書き込み要求時のプログラム実行環境２及びデータアクセス
部３の動作例を示すフローチャートである。図５に示すように、ステップＳＴ１１では、
プログラム実行環境２は、データの書き込み要求をデータアクセス部３に対して行うため
に、データの書き込み要求を示す書込要求情報をデータアクセス部３に送信する。ステッ
プＳＴ１２に移行して、データアクセス部３は、プログラム実行環境２から書込要求情報
を受信する。ステップＳＴ１３に移行して、データアクセス部３は、当該データアクセス
部３が有する書込みデータバッファ３１に書込要求情報を追加して、書き込み要求処理を
終了する。
【００６０】
図６は、読み込み要求時のプログラム実行環境２及びデータアクセス部３の動作例を示
すフローチャートである。図６に示すように、ステップＳＴ２１では、プログラム実行環
境２は、データの読み込み要求をデータアクセス部３に対して行うために、データの読み
込み要求を示す読込要求情報をデータアクセス部３に送信する。ステップＳＴ２２に移行
して、データアクセス部３は、プログラム実行環境２から読込要求情報を受信する。ステ
ップＳＴ２３に移行して、データアクセス部３は、受信した読込要求情報に基づいて当該
データアクセス部３が有する読込みデータバッファ３２から読込みデータＤ６を取得する
。ステップＳＴ２４に移行して、データアクセス部３は、読込みデータＤ６をプログラム
実行環境２に送信する。ステップＳＴ２５に移行して、プログラム実行環境２は、データ
アクセス部３から読込みデータＤ６を受信して、読み込み要求処理を終了する。
【００６１】
なお、図５，６では、制御側コントローラ１について説明したが、例えば、制御側コン
トローラ１に異常が生じて、待機側コントローラ５に外部装置の制御が移ったときも、同
様な動作を行う。
【００６２】
このように、本実施の形態に係る制御装置１００によれば、プラントの機器である外部
装置から出力されるＩ／ＯデータＤ１をＩ／Ｏデバイス９を介して取得し、かつ、書込み
データＤ５を記憶するデータアクセス部３から書込みデータＤ５を取得して、制御プログ
ラムを実行する制御側コントローラ１と、制御側コントローラ１をバックアップして、制
御プログラムを実行する待機側コントローラ５とを備える。制御側コントローラ１は、取
得したＩ／ＯデータＤ１及び書込みデータＤ５を記憶し、該記憶したＩ／ＯデータＤ１と
共に書込みデータＤ５を入力データＤ３として待機側コントローラ５に出力する。
【００６３】
これにより、制御側コントローラ１が制御プログラムの実行前に入力データＤ３を待機
側コントローラ５に予め出力するので、制御側コントローラ１及び待機側コントローラ５
は、同様のＩ／ＯデータＤ１及び書込みデータＤ５に基づいて制御プログラムを実行でき
、制御プログラムの実行中に制御データ記憶部４１，８１の書込みデータＤ５が制御部４
の外部から変更されることを防止できる。
【００６４】
この結果、制御プログラムの実行中にデータの書込み要求がある場合でも冗長化可能な
制御装置を提供することができる。また、制御側コントローラ１と待機側コントローラ５
の制御プログラムの実行結果である読込みデータＤ６及びＩ／ＯデータＤ２を比較するた
め、読込みデータＤ６にも冗長化による信頼性を確保することができる。
【符号の説明】
【００６５】
１  制御側コントローラ
２，６  プログラム実行環境
３，７  データアクセス部
４，８  制御部
５  待機側コントローラ
３１，７１  書込みデータバッファ
３２，７２  読込みデータバッファ
４１，８１  制御データ記憶部
４２，８２  Ｉ／Ｏデータ記憶部
４３，８３  入力データ処理部
４４，８４  出力データ処理部
Ｄ１，Ｄ２  Ｉ／Ｏデータ
Ｄ３  入力データ
Ｄ４  出力データ
Ｄ５  書込みデータ
Ｄ６  読込みデータ
【図１】
2011070496.tif 000003
【図２】
2011070496.tif 000004
【図３】
2011070496.tif 000005
【図４】
2011070496.tif 000006
【図５】
2011070496.tif 000007
【図６】
2011070496.tif 000008
【図７】
2011070496.tif 000009
【図８】
2011070496.tif 000010
【図９】
2011070496.tif 000011