(57)【要約】      （修正有）【課題】製造コストを低減しつつ、障害点の少ない冗長化構成を実現できるプログラマブルロジックコントローラを提供する。【解決手段】電源と複数のＣＰＵカードと機能性カードとを備えるプログラマブルロジックコントローラ備える。各ＣＰＵカードは、電源および機能性カードに接続する。各ＣＰＵカードはそれぞれ、各ＣＰＵカードの優先度を取得する優先度取得手段３０１と、各ＣＰＵカードの状態が正常であるか異常であるかを判定する状態判定手段３０２と、正常なＣＰＵカードのうち、優先度が自カードの次に高いカードを引継先カードとする引継先決定手段３０３と、自カードから引継先カードにデータをコピーして同値化する同値化手段３０４と、正常なＣＰＵカードのうち、自カードの優先度が最も高い場合に、自カードを、信号を処理する信号処理状態とし、他の場合に、自カードを待機状態とする権限切替手段３０５とを備える。【選択図】図３
2016035700.tif 000002
【特許請求の範囲】
【請求項１】
プラント機器を制御または監視するプログラマブルロジックコントローラであって、
電力を供給する電源と、
前記プラント機器を制御または監視する信号を処理可能な複数のＣＰＵカードと、
前記プラント機器との間で前記信号を入出力する機能性カードと、を備え、
前記複数のＣＰＵカードの各ＣＰＵカードは、
前記電源および前記機能性カードに接続し、
前記複数のＣＰＵカードそれぞれの優先度を取得する優先度取得手段と、
前記複数のＣＰＵカードそれぞれの状態が正常であるか異常であるかを判定する状態判定手段と、
前記正常なＣＰＵカードのうち、優先度が自カードの次に高いカードを引継先カードとする引継先決定手段と、
前記自カードから前記引継先カードにデータをコピーして同値化する同値化手段と、
前記正常なＣＰＵカードのうち、前記自カードの優先度が最も高い場合に、前記自カードを、前記信号を処理する信号処理状態とし、他の場合に、前記自カードを待機状態とする権限切替手段と、を備えること、
を特徴とするプログラマブルロジックコントローラ。
【請求項２】
前記各ＣＰＵカードと、優先度と、状態と、引継先カードとを関連付けたテーブルを記憶する記憶部と、
前記状態判定手段と前記引継先決定手段とを継続的に実行し、前記各ＣＰＵカードの状態と引継先カードとを得て、前記テーブルを随時更新するテーブル更新手段を更に備え、
前記同値化手段は、前記自カードから前記テーブルに記憶された引継先カードにデータをコピーして同値化し、
前記権限切替手段は、前記テーブルに記憶された正常なＣＰＵカードのうち、前記自カードの優先度が最も高い場合に、前記自カードを、前記信号を処理する信号処理状態とし、他の場合に、前記自カードを待機状態とすること、
を特徴とする請求項１記載のプログラマブルロジックコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラマブルロジックコントローラ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ、以下、ＰＬＣとも記す）に関する。
【背景技術】
【０００２】
ＰＬＣは、プラントを構成する機器の制御や監視などに用いられる。一般製造業でよく使用されるＰＬＣは、通常、ＣＰＵを１つ備え、ＣＰＵが故障した場合は、動作しなくなる。重要な設備では、冗長化構成を組み、１つのＣＰＵが停止しても他のＣＰＵが動作し、ＰＬＣが停止しないようにしている。従来、例えば、特許文献１に開示されるように、複数のＰＬＣを用いて冗長化構成を組むことが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１６８０９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
図９は、従来の冗長化構成の１つの例を示す図である。この構成では、１台のＰＬＣに第１電源７０１、第１ＣＰＵ７０２、第１機能性カード７０３、第２電源７０４、第２ＣＰＵ７０５、第２機能性カード７０６を配置し、中央の系切替カード７０７によって、第１ＣＰＵ７０２から第２ＣＰＵ７０５に権限を切り替え、第１ＣＰＵ７０２が故障で停止した場合に、第２ＣＰＵ７０５にて動作を継続する。
【０００５】
しかし、この冗長化構成では、第１電源７０１、第２電源７０４、第１機能性カード７０３、第２機能性カード７０６のように各種カードを複数枚用意しなければならず、冗長化構成を実現するためのコストが大きい。
【０００６】
また、中央の系切替カード７０７が故障した場合には、第２ＣＰＵ７０５が故障していない場合であっても、第１ＣＰＵ７０２から第２ＣＰＵ７０５に権限を切り替えることができず、ＰＬＣとして制御や監視を継続できないという問題がある。
【０００７】
図１０は、従来の冗長化構成の他の例を示す図である。この構成では、第１電源８０１、第１ＣＰＵ８０２、第１トラッキングカード８０３、第１機能性カード８０４で１セットのＰＬＣを構成し、同じ構成のＰＬＣとして、第２電源８０６、第２ＣＰＵ８０７、第２トラッキングカード８０８、第２機能性カード８０９を準備する。また、第１トラッキングカード８０３と第２トラッキングカード８０８は、トラッキングケーブル８１０で繋がっている。
【０００８】
データの同値化は、第１トラッキングカード８０３と第２トラッキングカード８０８間でデータをやりとりすることにより、第１ＣＰＵ８０２が故障した際に、速やかに第２ＣＰＵ８０７に権限を切り替えて、制御や監視を継続することができる。
【０００９】
しかし、この冗長化構成でも、第１電源８０１、第２電源８０６、第１機能性カード８０４、第２機能性カード８０９のように各種カードを複数枚準備しなければならず、冗長化構成を実現するためのコストが大きい。
【００１０】
また、第１トラッキングカード８０３、第２トラッキングカード８０８の故障またはトラッキングケーブル８１０が断線した場合、第１ＣＰＵ８０２から第２ＣＰＵ８０７に権限を切り替えることができず、ＰＬＣとして制御や監視を継続できないという問題がある。
【００１１】
この発明は、上述のような課題を解決するためになされたもので、製造コストを低減しつつ、障害点の少ない冗長化構成を実現できるプログラマブルロジックコントローラを提供することを目的とする。
【課題を解決するための手段】
【００１２】
第１の発明は、上記の目的を達成するため、プラント機器を制御または監視するプログラマブルロジックコントローラであって、
電力を供給する電源と、
前記プラント機器を制御または監視する信号を処理可能な複数のＣＰＵカードと、
前記プラント機器との間で前記信号を入出力する機能性カードと、を備え、
前記複数のＣＰＵカードの各ＣＰＵカードは、
前記電源および前記機能性カードに接続し、
前記複数のＣＰＵカードそれぞれの優先度を取得する優先度取得手段と、
前記複数のＣＰＵカードそれぞれの状態が正常であるか異常であるかを判定する状態判定手段と、
前記正常なＣＰＵカードのうち、優先度が自カードの次に高いカードを引継先カードとする引継先決定手段と、
前記自カードから前記引継先カードにデータをコピーして同値化する同値化手段と、
前記正常なＣＰＵカードのうち、前記自カードの優先度が最も高い場合に、前記自カードを、前記信号を処理する信号処理状態とし、他の場合に、前記自カードを待機状態とする権限切替手段と、を備えることを特徴とする。
【００１３】
また、第２の発明は、第１の発明において、
前記各ＣＰＵカードと、優先度と、状態と、引継先カードとを関連付けたテーブルを記憶する記憶部と、
前記状態判定手段と前記引継先決定手段とを継続的に実行し、前記各ＣＰＵカードの状態と引継先カードとを得て、前記テーブルを随時更新するテーブル更新手段を更に備え、
前記同値化手段は、前記自カードから前記テーブルに記憶された引継先カードにデータをコピーして同値化し、
前記権限切替手段は、前記テーブルに記憶された正常なＣＰＵカードのうち、前記自カードの優先度が最も高い場合に、前記自カードを、前記信号を処理する信号処理状態とし、他の場合に、前記自カードを待機状態とすること、を特徴とする。
【発明の効果】
【００１４】
この発明よれば、複数の電源や、複数の機能性カードを必要としないため、従来の構成に比して安価に冗長化構成を実現することができる。また、複数のＣＰＵカードが自律的に同値化処理と権限切替処理を実行するため、従来の構成のような系切替カード、トラッキングカード、トラッキングケーブルが不要であり、障害点を減らすことができる。このため、この発明によれば、製造コストを低減しつつ、障害点の少ない冗長化構成を実現できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態１に係るプログラマブルロジックコントローラの冗長化構成を説明するための図である。
【図２】各ＣＰＵカード１６の機能について説明するための図である。
【図３】本発明の実施の形態１において、冗長化管理プログラム２１１により実現される各機能について説明するための図である。
【図４】本発明の実施の形態１において、各ＣＰＵカード１６が実行する同値化管理処理ルーチンのフローチャートである。
【図５】本発明の実施の形態１における各ＣＰＵカード１６が実行する権限切替処理ルーチンのフローチャートである。
【図６】各ＣＰＵカード１６の状態の一例を示す図である。
【図７】本発明の実施の形態２において、冗長化管理プログラム２１１により実現される各機能について説明するための図である。
【図８】本発明の実施の形態２において、各ＣＰＵカード１６が実行するテーブル更新処理ルーチンのフローチャートである。
【図９】従来の冗長化構成の１つの例を示す図である。
【図１０】従来の冗長化構成の他の例を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施の形態について詳細に説明する。尚、各図において共通する要素には、同一の符号を付して重複する説明を省略する。
【００１７】
実施の形態１．
［実施の形態１の構成］
図１は、本発明の実施の形態１に係るプログラマブルロジックコントローラの冗長化構成を説明するための図である。
【００１８】
図１に示すＰＬＣ１は、鉄鋼プラント等に設けられた各種プラント機器（図示省略）に接続され、各種プラント機器を制御または監視する。ＰＬＣ１は、バックボード１０を備える。バックボード１０には、電源１２と、機能性カード１４と、複数のＣＰＵカード１６とが取り付けられている。
【００１９】
電源１２は、バックボード１０を介して機能性カード１４と各ＣＰＵカード１６に接続される。電源１２は、機能性カード１４と各ＣＰＵカード１６に電力を供給する。
【００２０】
機能性カード１４は、ＰＬＣ１で実現する機能を満たすためのカードである。例えば、機能性カード１４は、プラント機器との間で信号を入出力する機能を備えている。
【００２１】
各ＣＰＵカード１６は、プラント機器を制御または監視する信号を処理し、機能性カード１４との間で信号を入出力する。図１には、各ＣＰＵカード１６として、第１ＣＰＵカード１６１、・・・、第ｎＣＰＵカード１６ｎが記載されている。ｎは２以上の自然数である。第１ＣＰＵカード１６１、・・・、第ｎＣＰＵカード１６ｎは、それぞれ電源１２および機能性カード１４に接続している。
【００２２】
複数のＣＰＵカード１６は、所定のプログラムに基づいて、機能性カード１４から入力される信号に応じた制御値を算出し、機能性カード１４に出力する。機能性カード１４は、制御値に応じた信号をプラント機器に出力する。なお、複数のＣＰＵカード１６は、１枚のカードが信号を処理する信号処理状態（稼動状態）として動作し、他のカードは待機状態となる。
【００２３】
図２は、各ＣＰＵカード１６の機能について説明するための図である。各ＣＰＵカード１６は、処理部、記憶部、入出力インタフェースを備えている。処理部、記憶部、入出力インタフェースは互いに接続され、互いに信号の受け渡しが可能になっている。
【００２４】
各ＣＰＵカード１６の入出力インタフェースは、バックボード１０を介して電源１２、機能性カード１４に接続されている。
【００２５】
各ＣＰＵカード１６の処理部は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、キャッシュメモリ等により構成されている。処理部は、記憶部からプログラムを読み出し各種機能を実現する。
【００２６】
各ＣＰＵカード１６の記憶部は、ハードディスク装置や、フラッシュメモリのような不揮発性メモリや、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような揮発性メモリ、あるいはこれらの組み合わせにより構成されている。
【００２７】
図２に示す第１ＣＰＵカード１６１の記憶部には、メインプログラム２０１、冗長化管理プログラム２１１、各パラメータ２２１、テンポラリエリア２３１が格納されている。
【００２８】
メインプログラム２０１は、全てのＣＰＵに共通のＰＬＣの機能を実現するためのプログラムである。冗長化管理プログラム２１１は、ＣＰＵカードの冗長化を管理するためのプログラムである。各パラメータ２２１は、ＣＰＵカード毎のパラメータ類を保存しているエリアである。テンポラリエリア２３１は、一時的にデータを格納するエリアである。なお、各パラメータ２２１、テンポラリエリア２３１は、処理部のキャッシュメモリ上に用意されるものであってもよい。
【００２９】
同様に、図２に示す第ｎＣＰＵカード１６ｎの記憶部には、メインプログラム２０ｎ、冗長化管理プログラム２１ｎ、各パラメータ２２ｎ、テンポラリエリア２３ｎが格納されている。メインプログラム２０ｎ、冗長化管理プログラム２１ｎ、各パラメータ２２ｎ、テンポラリエリア２３ｎは、メインプログラム２０１、冗長化管理プログラム２１１、各パラメータ２２１、テンポラリエリア２３１と同じ構成である。
【００３０】
図３は、本発明の実施の形態１において、冗長化管理プログラム２１１により実現される各機能について説明するための図である。ここでは、第１ＣＰＵカード１６１を例に挙げて説明するが、各ＣＰＵカード１６において同じ機能が実現される。
【００３１】
第１ＣＰＵカード１６１の処理部は、記憶部から冗長化管理プログラム２１１を読み出し、優先度取得手段３０１、状態判定手段３０２、引継先決定手段３０３、同値化手段３０４、権限切替手段３０５として機能する。
【００３２】
優先度取得手段３０１は、各ＣＰＵカード１６の優先度を取得する。例えば、第１ＣＰＵカード１６１は、第１ＣＰＵカード１６１〜第ｎＣＰＵカード１６ｎそれぞれに問い合わせて優先度を取得する。なお、各ＣＰＵカード１６の優先度は、重複しないように設定されているものとする。
【００３３】
状態判定手段３０２は、各ＣＰＵカード１６の状態が正常であるか異常（故障）であるかを判定する。例えば、各ＣＰＵカード１６は、外部から参照可能なタイマー値を有するウオッチドッグタイマーを備え、定期的に自カードのタイマー値をリセットする仕組みを備える。ＣＰＵカードのタイマー値がリセットされずに規定値を超えれば、そのＣＰＵカードは故障していると判断できる。状態判定手段３０２は、各ＣＰＵカード１６のタイマー値を参照して、タイマー値が規定値を超えているか否かを判定する。
【００３４】
引継先決定手段３０３は、状態判定手段３０２により正常であると判定されたＣＰＵカードのうち、優先度取得手段３０１により取得された優先度が自カードの次に高いカードを引継先カードとする。
【００３５】
同値化手段３０４は、自カードから引継先カードにデータをコピーして同値化する。同値化するデータは、例えば、自ノードの各パラメータやテンポラリエリアの情報である。
【００３６】
権限切替手段３０５は、状態判定手段３０２により正常であると判定されたＣＰＵカード１６のうち、優先度取得手段３０１により取得された自カードの優先度が最も高い場合に、自カードを、信号を処理する信号処理状態（稼働状態）とし、他の場合に、自カードを待機状態とするモード切り替えを実行する。すなわち、複数のＣＰＵカード１６のうち１つのみが信号処理状態となり、ＰＬＣの制御または監視のための信号を処理するため常用動作し、他のＣＰＵカード１６は待機状態となる。
【００３７】
（同値化管理処理ルーチン）
次に、図４と図６を参照して、ＣＰＵカード１６間でデータを同値化する同値化管理処理について説明する。
【００３８】
図４は、本発明の実施の形態１において、各ＣＰＵカード１６が実行する同値化管理処理ルーチンのフローチャートである。このルーチンは、各ＣＰＵカード１６において所定時間毎に実行される。
【００３９】
図６は、各ＣＰＵカード１６の状態の一例を示す図である。図６を用いて同値化管理処理の具体例を説明する。なお、図６に示す例では、優先度１の第１ＣＰＵカードが故障しており、優先度２の第３ＣＰＵカードが信号処理状態（稼動状態）として現在動作中であり、他のＣＰＵカードは待機状態となっている。
【００４０】
図４のステップＳ１００において、各ＣＰＵカード１６は、自カードを含めた全てのＣＰＵカード１６の優先度を確認する。具体的には、上述した優先度取得手段３０１は、全ＣＰＵカードの優先度を取得する。図６に示す例では、優先度６０３の欄に示された全ＣＰＵカードの優先度が取得される。
【００４１】
ステップＳ１０１において、各ＣＰＵカード１６は、現在、ＰＬＣの制御や監視のための信号処理を行なう権限を有する現在動作中のＣＰＵカード１６を確認する。具体的には、上述した状態判定手段３０２により正常であると判定されたＣＰＵカード１６のうち、優先度取得手段３０１により取得された優先度が最も高いカードが現在動作中のカードであると確認できる。図６に示す例では、正常なＣＰＵカードのうち優先度が最も高いカードである第３ＣＰＵカードが現在動作中のカードであると確認できる。
【００４２】
ステップＳ１０２において、各ＣＰＵカード１６は、他の待機中のＣＰＵカードの状態を確認する。具体的には、上述した状態判定手段３０２により正常であると判定されたＣＰＵカード１６のうち、優先度取得手段３０１により取得された優先度の高さが最も高いカード以外のカードが待機状態のカードであると確認できる。図６に示す例では、第２および第４〜第ｎＣＰＵカードが待機状態であると確認できる。
【００４３】
ステップＳ１０３において、各ＣＰＵカード１６は、ステップＳ１００〜ステップＳ１０２の情報を元に権限の引継元と引継先を算出する。具体的には、引継先決定手段３０３は、状態判定手段３０２により正常であると判定されたＣＰＵカード１６のうち、優先度取得手段３０１により取得された優先度が自カードの次に高いカードを引継先カードとする。図６に示す例では、自カードが第３ＣＰＵカードである場合、正常なＣＰＵカード１６のうち優先度が自カードの次に高い第２ＣＰＵカードを引継先カードとする。
【００４４】
ステップＳ１００〜ステップＳ１０３の処理により、各ＣＰＵカード１６は、どのＣＰＵカード１６が故障した場合に自カードが動作を引き継ぎ、また自カードが故障した場合に、どのＣＰＵカード１６に動作を引き継ぐのか導き出すことができる。
【００４５】
ステップＳ１０４において、各ＣＰＵカード１６は、故障したＣＰＵカード１６が復帰または新規に追加されたか否かを判定する。新たにＣＰＵカード１６が追加されると、追加されたＣＰＵカード１６は、各ＣＰＵカード１６に対して、自身が追加されたことを通知する。この通知があると、各ＣＰＵカード１６は、新たなＣＰＵカード１６の優先度を確認する処理（ステップＳ１００）に戻る。一方、ステップＳ１０４において、復帰又は新規に追加されたＣＰＵカードがない場合には、ステップＳ１０５の処理を実行する。
【００４６】
ステップＳ１０５において、各ＣＰＵカード１６の同値化手段３０４は、自カードに書き込まれた同値化完了フラグを確認する。同値化完了フラグとは、自ＣＰＵ内の同値化対象となっているデータが最新の状態（フラグが１）になっていることを示すフラグである。各ＣＰＵカード１６の同値化完了フラグの初期値は０であるが、現在動作中のカード（ステップＳ１０１）の同値化完了フラグは常時１である。同値化完了フラグが１である場合には、ステップＳ１０６の処理を実行する。一方、同値化完了フラグが０である場合には、本ルーチンは終了される。
【００４７】
ステップＳ１０６において、各ＣＰＵカード１６の同値化手段３０４は、同値化完了フラグが１であれば、ステップＳ１０３の処理で算出した引継先のＣＰＵカード１６に対し、自カード内の同値化対象となっているデータをコピーする。図６に示す例では、自カードが第３ＣＰＵカードである場合、データを引継先の第２ＣＰＵカードにコピーする。
【００４８】
ステップＳ１０７において、各ＣＰＵカード１６の状態判定手段３０２は、引継先にデータをコピー中に引継先のＣＰＵカード１６が故障したか否かを判定する。同値化対象となっているデータをコピー中（ステップＳ１０６）に故障が確認された場合には、コピーを中断し、優先度を確認（ステップＳ１００）する処理へ戻る。一方、ステップＳ１０７において、引継先のＣＰＵカード１６が正常である場合には、ステップＳ１０８の処理を実行する。
【００４９】
ステップＳ１０８において、各ＣＰＵカード１６の同値化手段３０４は、コピーが完了したか否かを判定する。コピーが完了していない場合には、ステップＳ１０６の処理を継続する。一方、コピーが完了した場合には、ステップＳ１０９の処理を実行する。
【００５０】
ステップＳ１０９において、各ＣＰＵカード１６の同値化手段３０４は、引継先のＣＰＵカード１６の同値化完了フラグを１にする。すなわち、同値化が完了し、引継先のＣＰＵカード１６のデータが最新の状態になっていることを示すフラグを立てる。
【００５１】
ステップＳ１１０において、各ＣＰＵカード１６の同値化手段３０４は、自カードの同値化完了フラグをリセット（０）して終了する。
【００５２】
なお、上述したステップＳ１０４において、ＣＰＵカード１６が復帰または新規に追加された場合には、ステップＳ１００の処理に戻る。続いて、ステップＳ１０１において、現在動作中のＣＰＵカードを確認するが、復帰または追加されたＣＰＵカードは、現在動作中のＣＰＵカードよりも優先度が高い場合、現在動作中のＣＰＵカード１６に対し、データを同値化させる指示を出し、別ルーチンにおいて同値化完了後、復帰または追加されたＣＰＵカード１６が常用動作する。一方、現在動作中だったＣＰＵカード１６は、同値化完了後、信号処理状態から待機状態に切り替わる。図６に示す例において、第１ＣＰＵカードが復旧した場合には、第３ＣＰＵカードのデータを第１ＣＰＵカードにコピーした後、後述する図５に示す権限切替処理ルーチンを実行することにより、第１ＣＰＵカードが常用動作し、第３ＣＰＵカードは待機状態に切り替わる。
【００５３】
図４に示すルーチンによれば、同値化完了フラグが立っている正常なＣＰＵカード１６は、次の優先度を持つＣＰＵカード１６にデータがコピーされ同値化される。優先度順にコピーが実行され、一番優先度の低いＣＰＵカード１６にデータがコピーされると全ＣＰＵカード１６の同値化が終了する。
【００５４】
（権限切替処理ルーチン）
次に、図５と図６を参照して、ＣＰＵカード１６の権限を切り替える権限切替処理について説明する。
【００５５】
図５は、本発明の実施の形態１における各ＣＰＵカード１６が実行する権限切替処理ルーチンのフローチャートである。このルーチンは、各ＣＰＵカード１６において所定時間毎に実行される。
【００５６】
上述した図６には、第１ＣＰＵカードが故障して、第３ＣＰＵカードが信号処理状態（稼働状態）となっている例が示されている。ここでは、さらに第３ＣＰＵカードが故障した場合を例に挙げて説明する。
【００５７】
図５のステップＳ１２０において、各ＣＰＵカード１６は、全ＣＰＵカードの優先度を確認する。具体的には、各ＣＰＵカード１６は、上述した優先度取得手段３０１により全ＣＰＵカードの優先度を取得する。図６に示す例では、優先度６０３の欄に示す全ＣＰＵカードの優先度が取得される。
【００５８】
ステップＳ１２１において、各ＣＰＵカード１６は、全ＣＰＵカードの状態を確認する。具体的には、各ＣＰＵカード１６は、上述した状態判定手段３０２により各ＣＰＵカード１６の状態が正常であるか異常（故障）であるかを判定する。図６に示す例において、さらに第３ＣＰＵカードが故障した場合には、ステップＳ１２１において、第１ＣＰＵカードの状態は重故障、第２ＣＰＵカードの状態は正常、第３ＣＰＵカードの状態は重故障であると判定される。
【００５９】
ステップＳ１２２において、各ＣＰＵカード１６は、正常なＣＰＵカードのうち自カードの優先度が最も高いか否かを判定する。具体的には、権限切替手段３０５は、ステップＳ１２１において正常であると判定されたＣＰＵカード１６のうち、ステップＳ１２０において取得された自カードの優先度が最も高いか否かを判定する。
【００６０】
ステップＳ１２２において判定条件が成立する場合には、ステップＳ１２３の処理を実行する。ステップＳ１２３では、自カードを、信号を処理する信号処理状態（稼働状態）として動作させる。その後、本ルーチンは終了される。
【００６１】
一方、ステップＳ１２２において判定条件が成立しない場合には、ステップＳ１２４の処理を実行する。ステップＳ１２４では、自カードを待機状態にする。その後、本ルーチンは終了される。
【００６２】
以上説明したように、本実施形態のプログラマブルロジックコントローラでは、ＣＰＵカード１６が複数枚存在する場合、優先度の高いＣＰＵカード１６から優先度の低いＣＰＵカード１６まで、自動的にデータが引継がれ、ＰＬＣ１の機能を停止させることなくプラント機器を稼動させることができる。
【００６３】
また、優先度の高いＣＰＵカード１６が、交換などで故障から復帰した場合も、以上説明したとおり、自動的に復帰するため、ＰＬＣ１の機能を停止させることなくプラント機器を稼動させることができる。
【００６４】
このような仕組みを取り入れることにより、電源１２や機能性カード１４を共用し、従来の構成よりも安価に冗長化構成を実現することができる。
【００６５】
実施の形態２．
次に、図６〜図８を主に参照して本発明の実施の形態２について説明する。
【００６６】
図６は、本発明の実施の形態２において利用するテーブルの一例を示す図である。図６に示すテーブルには、ＣＰＵカード名称６０１、スロット位置６０２、優先度６０３、引継元カード６０４、引継先カード６０５、現在動作中のカード６０６、故障状況６０７についてのカラムがあり、各ＣＰＵカード１６と各種項目とが関連付けられている。
【００６７】
［実施の形態２の構成］
本発明の実施の形態２では、上述した図６に示すテーブルの情報を、後述するテーブル更新処理ルーチン（図８）を用いて随時更新し、実施の形態１で述べた同値化管理処理ルーチン（図４）、権限切替処理ルーチン（図５）の実行の際に、このテーブルを参照することで実施の形態１と同様の冗長化管理を実現する。
【００６８】
本実施形態のＰＬＣは、図６に示すテーブルを備える。テーブルは、各ＣＰＵカード１６の記憶部またはキャッシュメモリ上に記憶される。上述した通り、テーブルは、ＣＰＵカード名称６０１、スロット位置６０２、優先度６０３、引継元カード６０４、引継先カード６０５、現在動作中のカード６０６、故障状況６０７のカラムを備え、各ＣＰＵカードについて各項目の情報を関連付けて記憶できる。
【００６９】
図７は、本発明の実施の形態２において、冗長化管理プログラム２１１により実現される各機能について説明するための図である。ここでは、第１ＣＰＵカード１６１を例に挙げて説明するが、各ＣＰＵカード１６において同じ機能が実現される。
【００７０】
第１ＣＰＵカード１６１の処理部は、実施の形態１と同様に、記憶部から冗長化管理プログラム２１１を読み出し、優先度取得手段３０１、状態判定手段３０２、引継先決定手段３０３、同値化手段３０４、権限切替手段３０５として機能する。さらに実施の形態２では、テーブル更新手段３０６としても機能する。
【００７１】
テーブル更新手段３０６は、状態判定手段３０２と、引継先決定手段３０３とを継続的に実行し、得られた複数のＣＰＵカードそれぞれの状態と引継先カードとを随時更新してテーブルに記憶する。また、テーブル更新手段３０６は、ＣＰＵカード名称、スロット位置や、優先度を所定のタイミングで取得してテーブルに記憶する。
【００７２】
（テーブル更新処理ルーチン）
次に、図８を参照して、本発明の実施の形態２において、図６に示すテーブルの情報を随時更新するためのテーブル更新処理ルーチンについて説明する。
【００７３】
図８は、本発明の実施の形態２において、各ＣＰＵカード１６が実行するテーブル更新処理ルーチンのフローチャートである。このルーチンは、各ＣＰＵカード１６において所定時間毎に実行される。
【００７４】
図８のステップＳ２００において、各ＣＰＵカード１６は、全てのＣＰＵカード１６のＣＰＵカード名称、スロット位置、優先度を確認する。具体的には、テーブル更新手段３０６は、ＣＰＵカード名称、スロット位置について各ＣＰＵカード１６に問い合わせる。優先度については、上述した優先度取得手段３０１により取得される。さらに、ステップＳ２００では、各ＣＰＵカードのＣＰＵカード名称、スロット位置、優先度が、図６に示すテーブルのＣＰＵカード名称６０１の欄、スロット位置６０２の欄、優先度６０３の欄に書き込まれる。
【００７５】
ステップＳ２０１において、各ＣＰＵカード１６は、全てのＣＰＵカード１６の状態を確認しテーブルに記憶する。具体的には、テーブル更新手段３０６は、上述した状態判定手段３０２による判定結果を、図６に示すテーブルの故障状況６０７の欄に書き込む。
【００７６】
ステップＳ２０２において、各ＣＰＵカード１６は、引継元、引継先を算出しテーブルに記憶する。具体的には、テーブル更新手段３０６は、上述した引継先決定手段３０３を用いて算出された引継元カード、引継先カードを、図６に示すテーブルの引継元カード６０４の欄、引継先カード６０５の欄に書き込む。
【００７７】
ステップＳ２０３において、各ＣＰＵカード１６は、故障したＣＰＵカード１６が復帰または新規に追加されたか否かを判定する。この判定処理は、図４のステップＳ１０４の処理と同様である。判定条件が成立しない場合には、ステップＳ２０１の処理に戻って処理を継続する。一方、判定条件が成立する場合には、一旦、本ルーチンの処理は終了され、次回の本ルーチンの実行時に、ステップＳ２００において、復帰または新規に追加されたＣＰＵカード１６についてのＣＰＵカード名称、スロット位置、優先度がテーブルに書き込まれる。
【００７８】
以上説明した図８に示すルーチンによれば、テーブルの情報は随時更新され、最新の状態に保たれる。
【００７９】
そして、実施の形態２では、図４の同値化管理処理ルーチンと、図５の権限切替処理ルーチンを実行する場合に、図８のテーブル更新処理ルーチンで随時更新されるテーブルの情報を利用する。
【００８０】
具体的には、実施の形態２における同値化管理処理ルーチン（図４）では、ステップＳ１００、ステップＳ１０１、ステップＳ１０２、ステップＳ１０３の処理において用いられる、優先度、状態（故障状況）、引継先カードの各情報をテーブルから取得する。
【００８１】
また、実施の形態２における権限切替処理ルーチン（図５）では、ステップＳ１２０、ステップＳ１２１、ステップＳ１２２の処理において用いられる、優先度、状態（故障状況）の各情報をテーブルから取得する。
【００８２】
以上説明したように、本実施形態のプログラマブルロジックコントローラでは、最新の情報に随時更新されるテーブルを参照して、同値化管理処理ルーチン（図４）、権限切替処理ルーチン（図５）を実行することができる。これにより、実施の形態１と同様の冗長化管理を実現することができる。
【符号の説明】
【００８３】
１  ＰＬＣ（プログラマブルロジックコントローラ）
１０  バックボード
１２  電源
１４  機能性カード
１６  ＣＰＵカード
１６１  第１ＣＰＵカード
１６ｎ  第ｎＣＰＵカード
２０１、２０ｎ  メインプログラム
２１１、２１ｎ  冗長化管理プログラム
２２１、２２ｎ  各パラメータ
２３１、２３ｎ  テンポラリエリア
３０１  優先度取得手段
３０２  状態判定手段
３０３  引継先決定手段
３０４  同値化手段
３０５  権限切替手段
３０６  テーブル更新手段
【図１】
2016035700.tif 000003
【図２】
2016035700.tif 000004
【図３】
2016035700.tif 000005
【図４】
2016035700.tif 000006
【図５】
2016035700.tif 000007
【図６】
2016035700.tif 000008
【図７】
2016035700.tif 000009
【図８】
2016035700.tif 000010
【図９】
2016035700.tif 000011
【図１０】
2016035700.tif 000012