(57)【要約】【課題】非二重化状態になった場合でも、自動的に二重化システムに復帰することができるプログラマブルコントローラを提供すること【解決手段】二重化された第１，第２ＣＰＵユニット１１，１２と、両ＣＰＵユニット間のバス制御や、制御系／待機系の切り替えなどを行うデュプレックスユニット２０とを備えている。デュプレックスユニットは、第１，第２アンド回路２１ａ，２１ｂを備え、各アンド回路には、一方のＣＰＵユニットのリセットフラグ端子１１ａ，１２ａと、他方のＣＰＵユニットのＷＤＴ端子１２ｃ，１１ｃが入力される。一方のＣＰＵユニットが異常となりＷＤＴがＯＮの時に、他方のＣＰＵユニットのリセットフラグがＯＮになると、アンド回路の出力もＯＮになり、異常状態のＣＰＵユニットのリセット端子にリセット信号が入力され、リセット処理されて正常に復帰する。【選択図】　　　　図２
2004005280.tif 000002
【特許請求の範囲】
【請求項１】
二重化された２つのＣＰＵユニットを備え、前記２つのＣＰＵユニットは、相手の状態を確認可能とし、一方が制御系となるとともに他方が待機系となり、前記制御系のＣＰＵユニットがダウンした場合には、前記待機系のＣＰＵユニットが制御系に切り替わって運転を継続するプログラマブルコントローラにおいて、
前記２つのＣＰＵユニットは、それぞれ相手のＣＰＵユニットに向けてリセット信号を出力するリセット信号出力手段と、相手方のＣＰＵユニットから送られてきたリセット信号を受信すると、初期処理その他のリセット処理を行って起動するリセット処理手段とを備え、
前記２つのＣＰＵユニットのうちの一方が異常発生した際に、他方のＣＰＵユニットに備えた前記リセット信号出力手段がリセット信号を出力するようにしたことを特徴とするプログラマブルコントローラ。
【請求項２】
前記リセット信号出力手段からリセット信号が出力された場合、前記相手のＣＰＵユニットが異常状態にあることを条件にその相手のＣＰＵユニットの前記リセット処理手段が動作してリセット処理を行うようにしたことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記リセット信号出力手段から前記リセット信号は、相手が起動されるまで繰り返し出力するようにし、
かつ、前記リセット信号が出力された回数を計数し、その回数が予め設定した基準値に達するか、または越えた場合には、リセット信号を出力しないようにしたことを特徴とする請求項１または２に記載のプログラマブルコントローラ。
【請求項４】
二重化対応のＣＰＵユニットであって、ユーザプログラムに基づく制御を実行する制御系と、前記制御を実行しない待機系の２つのモードを取り、相手のＣＰＵユニットの状態を確認する機能を持ち、前記待機系の時に相手のＣＰＵユニットがダウンしたことを検知すると、制御系に切り替わって運転を継続するＣＰＵユニットにおいて、
相手のＣＰＵユニットに向けてリセット信号を出力するリセット信号出力手段と、
リセット信号を出力した相手のＣＰＵユニットから応答を受けた際に二重化のために必要なデータを前記相手のＣＰＵユニットに向けて送る手段と、
相手方のＣＰＵユニットから送られてきたリセット信号を受信すると、初期処理その他のリセット処理を行って起動するリセット処理手段とを備え、
前記相手のＣＰＵユニットの状態を確認する機能により相手が異常発生したことを検知した際に、前記リセット信号出力手段がリセット信号を出力するようにしたことを特徴とするＣＰＵユニット。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、プログラマブルコントローラ及びＣＰＵユニットに関するもので、より具体的には、２台のＣＰＵユニットを設けて二重化を図ったプログラマブルコントローラに関する。
【０００２】
【従来の技術】
ファクトリーオートメーション（ＦＡ）の制御装置として、プログラマブルコントローラ（ＰＬＣ）が用いられている。このＰＬＣは、複数のユニットから構成される。すなわち、電源供給源の電源ユニット，ＰＬＣ全体の制御を統率するＣＰＵユニット，ＦＡの生産装置や設備装置の適所に取り付けたスイッチやセンサの信号を入力する入力ユニット，アクチュエータなどに制御出力を出す出力ユニット，通信ネットワークに接続するための通信ユニットなどの各種のユニットを適宜組み合わせて構成される。
【０００３】
ＰＬＣのＣＰＵユニットにおける制御は、入力ユニットで入力した信号をＣＰＵユニットのＩ／Ｏメモリに取り込み（ＩＮリフレッシュ）、予め登録されたユーザプログラム記述言語（例えばラダー言語）で組まれたユーザプログラムに基づき論理演算をし（演算実行）、その演算実行結果をＩ／Ｏメモリに書き込んで出力ユニットに送り出し（ＯＵＴリフレッシュ）、その後、いわゆる周辺処理を行うと言うことをサイクリックに繰り返し処理するようになる。
【０００４】
ところで、システムの安全性，信頼性を向上するため、ＰＬＣを構成する各ユニットを二重化することが行われる。例えばＣＰＵユニットを二重化する場合、従来のＣＰＵユニットを２個設ける場合とともに、それら２つのＣＰＵユニットをＣＰＵ間バスにより接続する。そして、それら２個のＣＰＵユニットは、基本的に同一の機能を持ったものであり、同じユーザプログラムを実行する。
【０００５】
そして、２台のＣＰＵユニットのうち、一方が動作系のＣＰＵユニットとなって、実際にサイクリックな処理を行い、メモリに対して読み書きを行ったり、外部のＩ／Ｏ機器等との間で制御データ（Ｉ／Ｏデータ）の送受を行い、ＦＡネットワークシステムの制御を司る。また、他方のＣＰＵユニットは待機系のＣＰＵユニットとなり、待機中は、動作系のユーザプログラムと同一のユーザプログラムを実行するものの、演算実行結果を出力・反映することはない。そして、制御系ＰＬＣから処理結果等を受信し、待機系のＣＰＵユニットのメモリの更新を行う。これにより、待機系のＣＰＵユニットと制御系のＣＰＵユニットのメモリの同一性が確保される。
【０００６】
そして、制御系のＣＰＵユニットが故障した場合には、待機系のＣＰＵユニットが制御系のＣＰＵユニットに切り替わって実際の制御等の動作を行う。従って、ＣＰＵユニットに故障が発生しても、すぐにシステムが停止することなく、継続して運転できるので信頼性が向上する。
【０００７】
【発明が解決しようとする課題】
しかしながら、上記した従来のシステムでは、以下に示す問題がある。すなわち、制御系と待機系のＣＰＵユニットがともに正常に動作している状態では二重化システムが保証されているので、その状態で制御系が故障・異常によりダウンした場合でも、待機系のＣＰＵユニットが制御系に切り替わることにより、連続してシステムの運転を継続できる。しかし、係る切り替わりにより一旦待機系のＣＰＵユニットが制御系として動作を開始すると、それまでの制御系はダウンしているので、非二重化システムとして運転を継続することになり、二重化システムの高信頼性が維持できない。その結果、その非二重化システムの状態でさらに動作中のＣＰＵユニットに故障・異常が発生すると動作を停止しなければならなくなる。
【０００８】
また、待機系のＣＰＵユニットが故障・異常によりダウンすると、制御系がそのまま動作するので、制御は継続して行えるものの、非二重化システムとなるので、この状態でさらに動作中のＣＰＵユニットに故障・異常が発生すると動作を停止しなければならなくなる。
【０００９】
そのため、ユーザにとっては、現在の状態が二重化であるか非二重化であるかを常に監視し、非二重化システムになった場合には、現場まで足を運び、二重化システムを立ち上げる必要がある。つまり、ノイズなどが原因によりダウンした場合には、ハード的には問題がないので、電源を再投入し、初期化処理，自己診断を経て立ち上げ、待機系のＣＰＵユニットとして動作させる。
【００１０】
また、ハードの故障により切り替わった場合には、電源を再投入してもＣＰＵユニットを正常に復帰することができない。そして、非二重化システムになったのが、二重化システムへ復旧可能なノイズ等が原因なのか、復旧できないハードの故障なのかは、現場に実際に行かないとわからず、ハードの故障の場合には、現場に行ってハードの故障とわかると、原因を特定後、後日対策する必要が生じることがある。
【００１１】
このように、二重化システムへ復旧するためには、常時監視し、非二重化システムになった場合に、必ず現場へ足を運ぶ必要があるので煩雑であり、しかも、実際に現場に行かなければ非二重化になった原因を特定できないので、ハードの故障の場合に、再度現場に行くといった二度手間となるという問題がある。
【００１２】
この発明は、ＣＰＵユニットを二重化したプログラマブルコントローラにおいて、一方のＣＰＵユニットがダウンして非二重化状態になった場合でも、自動的に二重化システムに復帰することができるプログラマブルコントローラ及びＣＰＵユニットを提供することを目的とする。
【００１３】
【課題を解決するための手段】
この発明によるプログラマブルコントローラは、二重化された２つのＣＰＵユニットを備え、前記２つのＣＰＵユニットは、相手の状態を確認可能とし、一方が制御系となるとともに他方が待機系となり、前記制御系のＣＰＵユニットがダウンした場合には、前記待機系のＣＰＵユニットが制御系に切り替わって運転を継続するプログラマブルコントローラを前提とする。係る前提において、前記２つのＣＰＵユニットは、それぞれ相手のＣＰＵユニットに向けてリセット信号を出力するリセット信号出力手段と、相手方のＣＰＵユニットから送られてきたリセット信号を受信すると、初期処理その他のリセット処理を行って起動するリセット処理手段とを備えた。そして、前記２つのＣＰＵユニットのうちの一方が異常発生した際に、他方のＣＰＵユニットに備えた前記リセット信号出力手段がリセット信号を出力するようにした。
【００１４】
ここで、リセット信号出力手段は、実施の形態では、図４のステップ１４を実行する機能に対応する。また、リセット処理手段は、実施の形態では、図３のステップ３から７を実施する機能に対応する。
【００１５】
このようにすると、一方のＣＰＵユニットが異常を発生してダウンし、非二重化システム状態となった場合に、正常に動作している他方のＣＰＵユニットからダウンした一方のＣＰＵユニットに対してリセット信号を出力する。このリセット信号を受けて一方のＣＰＵユニットはリセットされて再立ち上げされ、その後、二重化に必要なデータを前記他方のＣＰＵユニットから取得することにより、二重化システムが稼働する。このように、自動的に二重化システムに復帰させることができる。
【００１６】
なお、二重化を図るためには、リセット信号を出力した相手のＣＰＵユニットに対し、正常に動作しているＰＵＣユニットが持つメモリに格納されたデータを、相手のＣＰＵユニットに対して送り、２つのＣＰＵユニットにおいてメモリ内容の同一性を図る必要がある。係る処理は、例えば、正常に起動した相手方から正常に起動した旨の通知を受けた後で、所定のタイミングで正常に動作していたＣＰＵユニットが必要なデータを送るようにしても良いし、係る相手方のＣＰＵユニットが正常に動作しているＣＰＵユニットのメモリにアクセスし、取得するようにしても良い。また、共有メモリを用いた転送処理を利用し、正常に動作しているＣＰＵユニットが所定のメモリエリアに必要なデータを書き込むことで、自動的に（ＣＰＵユニットが関与しない）復帰したＣＰＵユニットのメモリに書き込むようにしても良い。
【００１７】
また、前記リセット信号出力手段からリセット信号が出力された場合、前記相手のＣＰＵユニットが異常状態にあることを条件にその相手のＣＰＵユニットの前記リセット処理手段が動作してリセット処理を行うようにするとよい。この機能は、実施の形態では、デュプレックスユニット２０により実現されているが、ＣＰＵユニットに組み込んでも良い。もちろん、係る機能は必須ではない。係る構成を採ると、正常に動作している相手に対して過ってリセット信号を出力した場合には、係る正常に動作している相手方はリセット処理をしない。
【００１８】
さらに、前記リセット信号出力手段から前記リセット信号は、相手が起動されるまで繰り返し出力するようにし、かつ、前記リセット信号が出力された回数を計数し、その回数が予め設定した基準値に達するか、または越えた場合には、リセット信号を出力しないような機能を設けると良い。
【００１９】
もちろん、係る機能は必須ではなく、相手が起動されるまで何回も繰り返しリセット信号を出力し続けるようにしても良いし、リセット信号を１回だけ出力するようにしてもよい。そして、上記のように基準値を設定した場合には、基準値を超えてもリセットできない場合には、ハードの故障があったと判断できる。よって、ハードの故障でなければ、自動的に二重化に復旧することができ、また、ハードの故障の場合には、現在非二重化状態であることが分かるとハードの故障であると推定できるので、現場に行くことなく、知ることができる。
【００２０】
さらに、本発明に係るＣＰＵユニットは、二重化対応のＣＰＵユニットであって、ユーザプログラムに基づく制御を実行する制御系と、前記制御を実行しない待機系の２つのモードを取り、相手のＣＰＵユニットの状態を確認する機能を持ち、前記待機系の時に相手のＣＰＵユニットがダウンしたことを検知すると、制御系に切り替わって運転を継続するＣＰＵユニットを前提とする。そして、相手のＣＰＵユニットに向けてリセット信号を出力するリセット信号出力手段と、リセット信号を出力した相手のＣＰＵユニットから応答を受けた際に二重化のために必要なデータを前記相手のＣＰＵユニットに向けて送る手段と、相手方のＣＰＵユニットから送られてきたリセット信号を受信すると、初期処理その他のリセット処理を行って起動するリセット処理手段とを備え、前記相手のＣＰＵユニットの状態を確認する機能により相手が異常発生したことを検知した際に、前記リセット信号出力手段がリセット信号を出力するようにした。
【００２１】
【発明の実施の形態】
図１は、本発明の好適な一実施の形態を示している。良く知られているように、ＰＬＣ１０は、複数のユニットから構成され、本発明が対象とする二重化システムに対応する場合には、ＣＰＵユニットを２台設けている。すなわち、ユーザプログラムを演算実行したり、Ｉ／Ｏリフレッシュや周辺処理をサイクリックに実行する機能を持つ第１，第２ＣＰＵユニット１１，１２や、電源ユニット１３や、入出力機器を接続するＩ／Ｏユニット１４や、上記ネットワークに接続し、他の装置と通信を行う通信ユニット１５等がある。これらのユニットは、バスを介して接続される。もちろん、これらの他にもユニットは存在し、必要に応じて連結するユニットを増減する。
【００２２】
第１，第２ＣＰＵユニット１１，１２は、同一のユーザプログラムを実行するもので、実際のシステム稼動時には、何れか一方が制御系となり、他方が待機系となる。そして、制御系となったＣＰＵユニットが行ったユーザプログラムの演算結果が、制御に反映される。また、待機系のＣＰＵユニット側でも同一のユーザプログラムは実行されるが、その結果が出力されない。さらに、待機系のＣＰＵユニットは、制御系のＣＰＵユニットから実行結果を受け取り、自己のメモリの更新などの所定の処理を実行する。これにより、待機系のＣＰＵユニットは、制御系のＣＰＵユニットと同じ状態を維持する。従って、制御系のＣＰＵユニットが異常によりダウンした場合には、直ぐに待機系であったＣＰＵユニットが制御系に切り替わり、制御動作を実行することができる。
【００２３】
ここで本発明では、第１，第２ＣＰＵユニット１１，１２間のバス制御や、運転中の表示、制御系／待機系の切り替えなどを行う二重化コントロールユニットたるデュプレックスユニット２０を設けている。このデュプレックスユニット２０には、相手方（ダウン中）のＣＰＵユニットに対してリセット信号を送る機能を有している。これにより、リセット信号を受信したＣＰＵユニットは、初期化処理並びに自己診断処理を行い、稼動する。
【００２４】
そして、本発明の要部となるデュプレックスユニット２０の内部構造と第１，第２ＣＰＵユニット１１，１２の関係は、図２に示すようになっている。すなわち、デュプレックスユニット２０は、本発明との関係で言うと、一方のＣＰＵユニットから送られるリセット信号を受け、他方のＣＰＵユニットに実際にリセット信号を与える機能を持ち、２つのアンド回路２１ａ，２１ｂを備えている。
【００２５】
そして、第１アンド回路２１ａは、第１ＣＰＵユニット１１から第２ＣＰＵユニット１２に向けてリセット信号を送るためのもので、第１ＣＰＵユニット１１のリセットフラグ端子（リセット信号の出力端子）１１ａと、第２ＣＰＵユニット１２のＷＤＴ（ウオッチドックタイマ）端子１２ｃを入力とし、出力を第２ＣＰＵユニット１２のリセット端子１２ｂに与えるようになっている。
【００２６】
同様に、第２アンド回路２１ｂは、第２ＣＰＵユニット１２から第１ＣＰＵユニット１１に向けてリセット信号を送るためのもので、第２ＣＰＵユニット１２のリセットフラグ端子（リセット信号の出力端子）１２ａと、第１ＣＰＵユニット１１のＷＤＴ端子１１ｃを入力とし、出力を第１ＣＰＵユニット１１のリセット端子１１ｂに与えるようになっている。
【００２７】
ところで、ＷＤＴ端子１１ｃ，１２ｃからは、各ＣＰＵユニット１１，１２が異常状態のときにＯＮとなる異常信号が出力され、この異常信号は相手側のＰＣＵユニット１２，１１にも与えられ、これにより各ＣＰＵユニット１１，１２は相手方が異常状態にあるか否かを監視・判断する。
【００２８】
そして、この異常信号を第１，第２アンド回路２１ａ，２１ｂに入力するようにしたことにより、相手先が異常状態（ＷＤＴ端子がＯＮ）のときに、リセットフラグ端子１２ａからリセット信号が出力された場合に、相手方のＣＰＵユニットに対してリセット信号が与えられる。これにより、相手方が正常に動作している際に誤ってリセット信号が与えられてリセット処理されるのが防止できる。
【００２９】
次に、二重化システムに自動復帰させるための各第１，第２ＣＰＵユニット１１，１２の機能を説明する。第１，第２ＣＰＵユニット１１，１２は、制御系と実行系のいずれにもなり得る。そして、現在の状況に応じて、図３，図４に示す何れかのフローチャートを実施する機能を有する。
【００３０】
すなわち、現在制御系のＣＰＵユニットの場合には、通常のサイクリックな処理を実行し、外部機器との通信等の運転を行っているが、このとき異常が発生すると（ＳＴ１）、待機系に切り替わる（ＳＴ２）。一方、待機系のＣＰＵユニットの場合には、相手に異常があるか否かを常時監視（ＳＴ１１）し、異常があった場合には制御系に切り替わる（ＳＴ１２）。これにより、以後制御系としての上記のサイクリックな処理を実行し、ＦＡシステムを継続して運転を続行する。なお、この場合の待機系は、実際には例えば暴走したり、ハードの故障などで動作できない状態となっているので、非二重化システムの状態となる。つまり、この状態でさらに現在の制御系のＣＰＵユニットが異常によりダウンするとシステムは停止することになる。
【００３１】
そこで、サイクリックな処理とは別に、制御系になったＣＰＵユニットは、ｎ＝１をセット後、待機系のＣＰＵユニットに対し、リセット信号を出力する（ＳＴ１３，ＳＴ１４）。なお、ＷＤＴ端子がＯＮにならない異常で、かつ、二重化運転を継続できない異常がある場合、このリセット信号に先立ち、相手方のＣＰＵユニットに対してＣＰＵ間通信などによりＷＤＴをＯＮにする命令を送る。
【００３２】
これにより、リセットフラグ端子（１１ａ或いは１２ａ）がＯＮになり、対応するアンド回路の一方の入力端子がＯＮになる。そして、相手方（待機系）のＣＰＵユニットのＷＤＴ端子（１１ｃ或いは１２ｃ）がＯＮになっていると、アンド回路（２１ａ或いは２１ｂ）がＯＮになり、待機系のＣＰＵユニットのリセット端子（１１ｂ或いは１２ｂ）がＯＮになり、その待機系のＣＰＵユニットに対してリセット信号が与えられる。
【００３３】
これを受けて、待機系のＣＰＵユニットは、メモリクリアその他の初期処理を行った後（ＳＴ３）、自己チェック（自己診断）を行い（ＳＴ４）、不良箇所の有無を判断する（ＳＴ５）。そして、不良箇所があった場合には、ＷＤＴエラーになり（ＳＴ６）、不良箇所がない場合には正常復帰するので、復帰したことをＣＰＵ間通信などにより相手に応答する（ＳＴ７）。
【００３４】
一方、リセット信号を送った制御系のＣＰＵユニットは、相手からの応答を待ち（ＳＴ１５）、応答がない場合にはステップ１４のリセット信号を送ってから一定時間経過するまで応答を待つ（ＳＴ１６）。そして、一定時間経過しても応答がない場合（ステップ１６でＮｏ）には、ｎを１インクリメントし、ｎが設定数（例えば１０）を越えたか否かを判断する（ＳＴ１７，ＳＴ１８）。
【００３５】
設定数を超えていない場合には、ステップ１４に戻り、再びリセット信号信号を出力する。このようにして、所定回数リセット信号を出力しても応答がない場合（ステップ１８でＹｅｓ）には、復帰できないハード的な故障が生じていると判断し、自動復帰処理を終了する。
【００３６】
一方、相手からの応答があると、ステップ１５の分岐判断がＹｅｓとなり、ステップ１９に飛び、必要なデータ（自己が保有するＩ／Ｏデータ等）を待機系のＣＰＵユニットへ転送する。これにより、待機系のＣＰＵユニットは、転送されてきたデータを取得することにより、制御系のＣＰＵユニットの状態と同じになり、二重化システムが復旧される。
【００３７】
なお、上記したフローチャートは、制御系のＣＰＵユニットが異常発生した場合の処理機能を説明したが、二重化システムで運転中に待機系のＣＰＵユニットが異常になることももちろんある。この場合には、制御系のＣＰＵユニットも相手に異常があるか否かを常時監視しているので、待機系のＣＰＵユニットが異常によりダウンしたことを検知すると、ステップ１３からの処理を実行するようになる。
【００３８】
これにより、待機系，制御系のいずれのＣＰＵユニットが異常によりダウンした場合でも、正常に動作しているＣＰＵユニットからのリセット信号にしたがい、リセット処理されるため、たとえＣＰＵが暴走などしていても確実に復帰することができる。もちろん、偶発的なノイズによるメモリ化けによるメモリ異常，プログラムエラーによる異常などに対しても、自動的に復帰することができる。しかも、この復帰処理の際に、初期化処理に続いて自己チェック（自己診断）が行われるので、故障の有無がその都度判断されるので、待機系として稼働するＣＰＵユニットの信頼性が保証される。
【００３９】
なお、上記した実施の形態では、デュプレックスユニットを設けたが、本発明は必ずしも係るユニットを設ける必要はなく、デュプレックスユニットと同様の機能を一方のＣＰＵユニットに組み込んでも良いし、各アンド回路をそれぞれのＣＰＵユニットに組み込んでも良い。さらには、アンド回路を設けることなく、互いのリセットフラグ端子を相手方のリセット端子に接続するようにしても良く、各種の変形実施が可能である。
【００４０】
【発明の効果】
以上のように、この発明では、ＣＰＵユニットを二重化したプログラマブルコントローラにおいて、一方のＣＰＵユニットがダウンして非二重化状態になった場合でも、他方のＣＰＵユニットからダウンしたＣＰＵユニットに向けてリセット信号が送られるので、それに応答してリセット処理されて正規に起動し、自動的に二重化システムに復帰することができる。
【図面の簡単な説明】
【図１】本発明の好適な一実施の形態を示す図である。
【図２】本発明の好適な一実施の形態の要部であるデュプレックスユニットの内部構造を示す図である。
【図３】第１の実施の形態の機能を説明するフローチャートである。
【図４】第１の実施の形態の機能を説明するフローチャートである。
【符号の説明】
１０　ＰＬＣ
１１　第１ＣＰＵユニット
１１ａ　リセットフラグ端子
１１ｂ　リセット端子
１１ｃ　ＷＤＴ端子
１２　第２ＣＰＵユニット
１２ａ　リセットフラグ端子
１２ｂ　リセット端子
１２ｃ　ＷＤＴ端子
１３　電源ユニット
１４　Ｉ／Ｏユニット
１５　通信ユニット
２０　デュプレックスユニット
２１ａ　第１アンド回路
２１ｂ　第２アンド回路
【図１】
2004005280.tif 000003
【図２】
2004005280.tif 000004
【図３】
2004005280.tif 000005
【図４】
2004005280.tif 000006