(57)【要約】      （修正有）【課題】ＰＬＣ二重化システムの安全性の向上を図る。【解決手段】二重化されたＰＬＣのＣＰＵモジュール５，１５間のマスタ・スレーブ間伝送でパルス信号を送受信させる（Ｓ２５〜Ｓ２８）。このときスレーブ（ＰＬＣ２）のＣＰＵモジュール１５からの送信に応答するマスタ（ＰＬＣ１）のＣＰＵモジュール５の返信にパルス信号の異常があれば（Ｓ２６）、ＣＰＵモジュール５の異常が発生していると診断する。これによりマスタ・スレーブが切り替えられ（Ｓ６１）、新マスタ（ＰＬＣ２）のＣＰＵモジュール１５がＰＬＣ２の通信インタフェースにマスタの動作を指示する。一方、新スレーブ（ＰＬＣ１）のＣＰＵモジュール５がＰＬＣ１の通信インタフェースにスレーブの動作を指示する。【選択図】図８
2019219894.tif 000002
【特許請求の範囲】
【請求項１】
マスタ・スレーブに二重化されたＰＬＣ（プログラマブルコントローラ）の異常を検出し、マスタ・スレーブを切り替えるＰＬＣの切替方式であって、
前記各ＰＬＣは、演算部と通信部とを備え、
前記各ＰＬＣの前記演算部間で互いに信号を送受信させ、
前記送受信の結果に基づき前記演算部同士を診断し、
前記スレーブの前記演算部が、前記マスタの前記演算部からの返信に異常を検出すれば、
前記演算部のマスタ・スレーブが切り替えられ、
前記切り替えられた新マスタの前記演算部が、前記通信部に前記マスタの動作を指示する一方、
新スレーブの前記演算部が、前記通信部に前記スレーブの動作を指示することを特徴とするＰＬＣ二重化システムの切替方式。
【請求項２】
前記マスタの前記演算部が、前記スレーブの前記演算部からの返信に異常を検出した場合には、
前記演算部のマスタ・スレーブの切り替えを行わないことを特徴とする請求項１記載のＰＬＣ二重化システムの切替方式。
【請求項３】
前記各ＰＬＣの前記演算部と前記通信部との間で信号を送受信させ、
前記送受信の結果に基づき前記演算部を診断し、
前記マスタの前記通信部は、前記演算部からの返信に異常を検出すれば自動的に前記スレーブの動作に切り替わる
ことを特徴とする請求項１または２記載のＰＬＣ二重化システムの切替方式。
【請求項４】
前記演算部の返信の情報には、前記通信部から受信した信号の情報がそのままセットされている
ことを特徴とする請求項３記載のＰＬＣ二重化システムの診断方式。
【請求項５】
前記各ＰＬＣは、複数の前記通信部を備え、
前記各通信部は、前記演算部にそれぞれ前記信号を送信する一方、
前記演算部は、前記通信部毎の複数の前記信号を返信する
ことを特徴とする請求項３または４記載のＰＬＣ二重化システムの切替方式。
【請求項６】
マスタ・スレーブに二重化されたＰＬＣ（プログラマブルコントローラ）の異常を検出し、マスタ・スレーブを切り替えるＰＬＣの切替方法であって、
前記各ＰＬＣの演算部間で互いに信号を送受信させるステップと、
前記送受信の結果に基づき前記演算部同士を診断するステップと、
前記スレーブの前記演算部が、前記マスタの前記演算部からの返信に異常を検出すれば前記演算部のマスタ・スレーブを切り替えるステップと、
前記切り替えられた新マスタの前記演算部が、通信部に前記マスタの動作を指示するステップと、
新スレーブの前記演算部が、通信部に前記スレーブの動作を指示するステップと、
を有することを特徴とするＰＬＣ二重化システムの切替方法。
【請求項７】
前記各ＰＬＣの前記演算部と前記通信部との間で信号を送受信させるステップと、
前記送受信の結果に基づき前記演算部を診断するステップと、
前記マスタの前記通信部が、前記演算部からの返信に異常を検出すれば自動的に前記スレーブの動作に切り替わるステップと、
をさらに有することを特徴とするＰＬＣ二重化システムの切替方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二重化されたプログラマブルコントローラ（以下、ＰＬＣとする。）の異常を診断し、マスタ・スレーブを切り替える技術に関する。
【背景技術】
【０００２】
図１はＰＬＣの二重化システムを示し、ＰＬＣを二重化する場合には２セットのＰＬＣ１，２を用意する。このＰＬＣ１，２のＣＰＵモジュール５，１５を二重化ケーブル３で接続して、アプリケーションの等価や演算処理や通信処理のデータを等価する方法が一般的である。
【０００３】
また、ＰＬＣ１，２のうち一方をマスタ（常用）として動作させ、他方をスレーブ（待機）として動作させ、マスタに異常や故障が発生したときにマスタ・スレーブの二重化システムの切り替えを実行する。ここでは一例としてマスタをＰＬＣ１とし、スレーブをＰＬＣ２とする。
【０００４】
したがって、前記切り替え後は、旧スレーブ（ＰＬＣ２）を新マスタとして動作する一方、旧マスタ（ＰＬＣ１）を新スレーブとして動作する。このような切り替えは、マスタ（ＰＬＣ１）のＣＰＵモジュール５またはスレーブ（ＰＬＣ２）のＣＰＵモジュール１５にて、二重化システムの切替要因を監視し、該切替要因が発生した場合にマスタ・スレーブのＣＰＵモジュール５，１５のハンドシェイク処理（同期処理）を行ったうえで実行される。そして、前記切替要因としては、例えば以下の事像が挙げられる。
【０００５】
（１）事像１
図２に基づき前記切替要因の事像１を説明する。ここではマスタ（ＰＬＣ１）のＣＰＵモジュール５に故障（継続動作不可能な異常）が発生し（Ｓ０１）、該ＣＰＵモジュール５からスレーブ（ＰＬＣ２）のＣＰＵモジュール１５に故障の発生が通知され、マスタ・スレーブの切り替えが行わる（Ｓ０２）。
【０００６】
その後、ＣＰＵモジュール（演算部）５，１５から通信インタフェース（通信部）６，７，１６，１７にマスタ・スレーブの切り替えが指示され、その動作モード（マスタ／スレーブ）が切り替えられる（Ｓ０３〜Ｓ０６）。
【０００７】
（３）事像１
図３に基づき前記切替要因の事像２を説明する。ここではスレーブ（ＰＬＣ２）のＣＰＵモジュール１５の二重化切替用の押しボタンスイッチがＯＮされた場合（Ｓ１１）、スレーブ（ＰＬＣ２）のＣＰＵモジュール１５からマスタ（ＰＬＣ１）のＣＰＵモジュール５にマスタ・スレーブの切り替え要求が通知される（Ｓ１２）。
【０００８】
その後、ＣＰＵモジュール５，１５から通信インタフェース６，７，１６，１７にマスタ・スレーブの切り替えが指示され、その動作モードが切り替えられる
（Ｓ１４〜Ｓ１７）。なお、特許文献１には、ＰＬＣのＣＰＵモジュールに一対のＣＰＵを実装し、互いのプログラム実行動作の相違を監視記録する技術が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−３９７３８
【発明の概要】
【発明が解決しようとする課題】
【００１０】
前述のように前記事象１，２が発生した場合、まずＣＰＵモジュール５，１５間でマスタ・スレーブが切り替えられ、その後にＣＰＵモジュール５，１５から通信インタフェース６，７，１６，１７にマスタ・スレーブの切り替えが指示される。
【００１１】
しかしながら、前記切替は、ＣＰＵモジュール５，１５に重大な故障（例えばマイコンやメモリなどの主要部品の故障）が発生していない場合には問題ないが、重大な故障の発生時にはＣＰＵモジュール５，１５から通信インタフェース６，７，１６，１７にマスタ・スレーブの切り替え指示が行われないおそれがある。
【００１２】
すなわち、ＣＰＵモジュール５，１５の指示により通信インタフェース６，７，１６，１７を切り替える方式は、正常状態や軽微な故障時には問題ないが、ＣＰＵモジュール４，１５に重大な故障が発生した場合に十分に対応できないおそれがある。
【００１３】
本発明は、このような従来の問題を解決するためになされ、ＰＬＣ二重化システムの演算部を診断し、重大な故障の発生前にマスタ・スレーブを切り替えて、ＰＬＣ二重化システムの安全性の向上を図ることを解決課題としている。
【課題を解決するための手段】
【００１４】
（１）本発明の一態様は、マスタ・スレーブに二重化されたＰＬＣ（プログラマブルコントローラ）の異常を検出し、マスタ・スレーブを切り替えるＰＬＣの切替方式であって、
前記各ＰＬＣは、演算部と通信部とを備え、
前記各ＰＬＣの前記演算部間で互いに信号を送受信させ、
前記送受信の結果に基づき前記演算部同士を診断し、
前記スレーブの前記演算部が、前記マスタの前記演算部からの返信に異常を検出すれば、
前記演算部のマスタ・スレーブが切り替えられ、
前記切り替えられた新マスタの前記演算部が、前記通信部に前記マスタの動作を指示する一方、
新スレーブの前記演算部が、前記通信部に前記スレーブの動作を指示する。
【００１５】
（２）前記切替方式の一態様は、前記各ＰＬＣの前記演算部と前記通信部との間で信号を送受信させ、
前記送受信の結果に基づき前記演算部を診断し、
前記マスタの前記通信部は、前記演算部からの返信に異常を検出すれば自動的に前記スレーブの動作に切り替わる。
【００１６】
（３）本発明の他の態様は、マスタ・スレーブに二重化されたＰＬＣ（プログラマブルコントローラ）の異常を検出し、マスタ・スレーブを切り替えるＰＬＣの切替方法であって、
前記各ＰＬＣの演算部間で互いに信号を送受信させるステップと、
前記送受信の結果に基づき前記演算部同士を診断するステップと、
前記スレーブの前記演算部が、前記マスタの前記演算部からの返信に異常を検出すれば前記演算部のマスタ・スレーブを切り替えるステップと、
前記切り替えられた新マスタの前記演算部が、通信部に前記マスタの動作を指示するステップと、
新スレーブの前記演算部が、通信部に前記スレーブの動作を指示するステップと、を有する。
【００１７】
（４）前記切替方法の一態様は、前記各ＰＬＣの前記演算部と前記通信部との間で信号を送受信させるステップと、
前記送受信の結果に基づき前記演算部を診断するステップと、
前記マスタの前記通信部が、前記演算部からの返信に異常を検出すれば自動的に前記スレーブの動作に切り替わるステップと、をさらに有する。
【発明の効果】
【００１８】
本発明によれば、ＰＬＣ二重化システムの安全性を向上させることができる。
【図面の簡単な説明】
【００１９】
【図１】従来のＰＬＣ二重化システムの概略図。
【図２】同  マスタのＣＰＵモジュールの故障発生時の切り替えを示すシーケンス図。
【図３】同  スレーブのＣＰＵモジュールのスイッチＯＮによる切り替えを示すシーケンス図。
【図４】本発明の実施形態に係るＰＬＣ二重化システムの概略図。
【図５】同  パルス信号の送受信を示すシーケンス図。
【図６】同  マスタ・スレーブのＣＰＵモジュール間のパルス信号の送受信を示すシーケンス図。
【図７】（ａ）はＣＰＵモジュールと通信インタフェースとの間で送受信されるデータフォーマット例を示すデータ構造図、（ｂ）は（ａ）のパルス情報の詳細を示すデータ構造図。
【図８】実施例１のシーケンス図。
【図９】実施例２のシーケンス図。
【図１０】実施例３のシーケンス図。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態に係るＰＬＣ二重化システムの切替方式および切替方法を説明する。ここではＰＬＣ二重化システムのＣＰＵモジュールの異常を診断し、診断で異常を検出した場合にはマスタ・スレーブの切り替えを実行する。
【００２１】
≪システム構成≫
図４に基づき前記実施形態の適用されるＰＬＣ二重化システムの一例を説明する。ここでは図１と同じ構成は同一の符号を付し、図１と同様にマスタ（ＰＬＣ１）はＣＰＵモジュール５，通信インタフェース（通信Ｉ／Ｆ）６，７を実装し、スレーブ（ＰＬＣ２）はＣＰＵモジュール１５，通信インタフェース１６，１７を実装する。
【００２２】
このベース２枚構成のＰＬＣ二重化システムでは、ＣＰＵモジュール５，１５同士は二重化ケーブルによって接続されている。したがって、アプリケーションプログラムの等価や演算結果のデータの等価などは、二重化ケーブル３を通じた通信によって実現される。また、ＣＰＵモジュール５，１５間のマスタ・スレーブの切り替えも二重化ケーブル３による通信で実現される。
【００２３】
この二重化ケーブル３は、Ｅｔｈｅｒｎｅｔ（登録商標）伝送とＩＯ信号の通知とに用いられ、データの送受信はＥｔｈｅｒｎｅｔ伝送によって行われ、重故障信号の状態通知はＩＯ信号によって行われる。この図４に示すＰＬＣ二重化システムには、以下の方式（方法）が採用されている。
【００２４】
（１）ＣＰＵモジュール５，１５の主要部品、例えばマイコンやＦＰＧＡ（集積回路）などの故障によるＣＰＵモジュール５，１５の異常を診断し、診断結果に基づきマスタ・スレーブの切り替える切替方式が採用されている。この切替方式としては、次のパルス信号診断Ａ，Ｂが併用されている。
Ａ：ＣＰＵモジュール５，１５間のパルス信号診断
Ｂ：ＣＰＵモジュール５，１５・通信インタフェース６，７，１６，１７間のパルス信号診断
例えばパルス信号診断Ａとしては、図５中のＳ２１〜Ｓ２８に示すように、ＣＰＵモジュール５，１５間で交互にパルス信号ＯＮ／パルス信号ＯＦＦを送受信し、送受信の結果に基づきＣＰＵモジュール５，１５に異常が生じているか否かを診断する。
【００２５】
また、パルス信号診断Ｂとしては、図５中のＳ３１〜Ｓ３８に示すように、ＣＰＵモジュール５・通信インタフェース６，７間で交互にパルス信号ＯＮ／パルス信号ＯＦＦを送受信する。また、Ｓ４１〜Ｓ４８に示すように、ＣＰＵモジュール１５・通信インタフェース１６，１７間で交互にパルスＯＮ信号およびパルスＯＦＦ信号を送受信する。この送受信の結果に基づきＣＰＵモジュール５，１５に異常が生じているか否かを診断する。
【００２６】
（２）前記パルス信号診断Ａにおいて、マスタ（ＰＬＣ１）のＣＰＵモジュール５に異常が生じていると診断された場合はＣＰＵモジュール５，１５のマスタ・スレーブが切り替えられる。
【００２７】
また、前記パルス信号診断Ｂにおいて、マスタ（ＰＬＣ１）のＣＰＵモジュール５に異常が生じていると診断された場合は通信インタフェース６，７が自動的にスレーブの動作に切り替わる。以下、前記各パルス信号診断Ａ，Ｂを個別具体的に説明する。
【００２８】
≪パルス信号診断Ａ≫
ＣＰＵモジュール５，１５間のＥｔｈｅｒｎｅｔ伝送によりＣＰＵモジュール５，１５間のパルス信号診断Ａを構築する。このＣＰＵモジュール５，１５間のＥｔｈｅｒｎｅｔ伝送では、通常マスタ・スレーブ伝送（例えば図６中のＰ１，Ｐ２）にてお互いのＣＰＵモジュール５，１５の二重化機能の状態を通知している。
【００２９】
この通知のデータ内にＣＰＵモジュール５，１５からパルス信号を発して送信するビットを実装させ、パルス信号診断Ａを構築する。具体的にはＣＰＵモジュール５，１５の一方は、パルス信号を発信した後に他方からのパルス信号の返信を監視し、他方からのパルス信号の返信に異常があれば他方に異常が発生しているものと診断する。ここで診断された他方がマスタとして動作していれば、本切替方式によりマスタ・スレーブの切り替えが自動的に実行される。以下、図６に基づき具体的な処理内容を説明する。
【００３０】
（１）まず、マスタ（ＰＬＣ１）側からのマスタ・スレーブ伝送時の処理内容（Ｓ２１〜Ｓ２４）を説明する。ここではイニシャルマスタ（マスタ）のＣＰＵモジュール５は、イニシャルスレーブ（スレーブ）のＣＰＵモジュール１５に対して、イニシャルマスタのパルス信号ＯＮ送信のマスタ・スレーブ伝送を行う（Ｓ２１）。
【００３１】
このときＣＰＵモジュール１５は、受信したパルス信号ＯＮをＦＰＧＡ２３に入力する（Ｓ５１）。このＦＰＧＡ２３は、回路に入力されたパルス信号ＯＮを１ｍｓ程度の時間保持し、その後に出力する（Ｓ５２）。この出力をＣＰＵモジュール１５は、ＣＰＵモジュール５へのマスタ・スレーブ伝送に含ませて、イニシャルマスタのパルス信号ＯＮ返信として送信する（Ｓ２２）。
【００３２】
このＳ２１，Ｓ２２と同様の手順でＳ２３のマスタ・スレーブ伝送（イニシャルマスタのパルス信号ＯＦＦ送信）およびＳ２４のマスタ・スレーブ伝送（イニシャルマスタのパルス信号ＯＦＦ返信）が実行される。なお、Ｓ５３，Ｓ５４は、Ｓ５１，Ｓ５２と同じ処理を行う。
【００３３】
（２）つぎにスレーブ（ＰＬＣ２）側からのマスタ・スレーブ伝送時の処理内容（Ｓ２５〜Ｓ２８）を説明する。ここではＣＰＵモジュール１５は、ＣＰＵモジュール５に対して、イニシャルスレーブのパルス信号ＯＮ送信のマスタ・スレーブ伝送を行う（Ｓ２５）。
【００３４】
このときＣＰＵモジュール５は、受信したパルス信号ＯＮをＦＰＧＡ２２に入力する（Ｓ５５）。このＦＰＧＡ２２も、回路に入力されたパルス信号ＯＮを１ｍｓ程度の時間保持し、その後に出力する（Ｓ５６）。この出力をＣＰＵモジュール５は、ＣＰＵモジュール１５へのマスタ・スレーブ伝送に含ませて、イニシャルスレーブのパルス信号ＯＮ返信として送信する（Ｓ２６）。
【００３５】
このＳ２５，Ｓ２６と同様の手順でＳ２７のマスタ・スレーブ伝送（イニシャルスレーブのパルス信号ＯＦＦ送信）およびＳ２８のマスタ・スレーブ伝送（イニシャルスレーブのパルス信号ＯＦＦ返信）が実行される。なお、Ｓ５７，Ｓ５８は、Ｓ５５，Ｓ５６と同じ処理を行う。
【００３６】
（３）このようなマスタ・スレーブ伝送時（Ｓ２１〜Ｓ２４，Ｓ２５〜Ｓ２８）にＳ２２，Ｓ２４，Ｓ２６，Ｓ２８の返信に異常が発生したときの切替方式を説明する。
【００３７】
まず、Ｓ２６，Ｓ２８の返信に異常があれば、マスタ（ＰＬＣ１）側のＣＰＵモジュール５に異常が生じているものと診断される。この場合にはＣＰＵモジュール５に重大な故障が生じるおそれがあるため、マスタ・スレーブの自動切替が実行される。すなわち、ＣＰＵモジュール１５がマスタに切り替わり、ＣＰＵモジュール５がスレーブに切り替わる。
【００３８】
つぎにＳ２２，Ｓ２４の返信に異常があれば、スレーブ（ＰＬＣ２）側のＣＰＵモジュール１５に異常が生じているものと診断されるものの、マスタ側ではないので、マスタ・スレーブの切り替えは行われない。
【００３９】
≪パルス信号診断Ｂ≫
ＣＰＵモジュール５，１５と通信インタフェース（オプションモジュール）６，７，１６，１７とのバス間通信でモジュールＩＤやステータス状態を互いに接続された全モジュール間で共有する方式を構築する。
【００４０】
ここではＣＰＵモジュール５，１５は、通信インタフェース６，７，１６，１７の発信するパルス信号に返信する機能を実装する。このときＣＰＵモジュール５，１５の返信するパルス信号は、通信インタフェース６，７，１６，１７側で監視される。この監視の結果、ＣＰＵモジュール５，１５の返信するパルス信号に異常が生じた場合、通信インタフェース６，７，１６，１７はＣＰＵモジュール５，１５に異常が生じているものと診断する。
【００４１】
この異常診断時に通信インタフェース６，７，１６，１７がマスタとて動作していれば、自動的にマスタ・スレーブ切り替えを行って、スレーブの動作に切り替わる。以下、この方式を構築する機能やデータフォーマットなどを説明する。
【００４２】
（１）バス間通信
ＰＬＣ１，２の各ベース上にＣＰＵモジュール５，１５と通信インタフェース６，７，１６，１７との間でデータの授受が行えるようなシリアルバスを構築する。
【００４３】
これによりＣＰＵモジュール５，１５と通信インタフェース６，７，１６，１７との間におけるバス間通信が可能となり、通信データを授受する機能が実装される。また、前記バス間通信によれば、ＣＰＵモジュール５，１５および通信インタフェース６，７，１６，１７のそれぞれのモジュール種別の番号・同モジュールの状態をＨ／Ｗ処理（ハードウェア処理）として通信する機能も実装される。
【００４４】
（２）ステータスＩＤ・ステータス状態の共有
ＣＰＵモジュール５，１５および通信インタフェース６，７，１６，１７は、モジュールの起動時にモジュール種別の番号を前記シリアルバス上で使用８するモジュールＩＤのレジスタにセットする。
【００４５】
また、ＣＰＵモジュール５，１５および通信インタフェース６，７，１６，１７は、各モジュールの状態を示すデータを常にステータス用のレジスタにセットする。
【００４６】
このようにレジスタにセットされたモジュールＩＤとステータス状態をＨＷ処理にて定期的にシリアルバス上に送信し、ＣＰＵモジュール５，１５・通信インタフェース６，７，１６，１７間でモジュールの識別と状態のデータを共有する機能を有している。
【００４７】
（３）パルス信号の監視
ＣＰＵモジュール５，１５および通信インタフェース６，７，１６，１７は、それぞれパルス信号を監視する手段として以下の機能を有する。
【００４８】
すなわち、モジュールＩＤとステータス状態とをＨ／Ｗ処理にて定期的にシリアルバス上に送信する前記機能を拡張し、パルス信号のデータを付加して送信する。このとき通信インタフェース６，７，１６，１７のパルス信号は、自モジュール内で作成され、シリアルバス上に送信される。
【００４９】
また、ＣＰＵモジュール５，１５のパルス信号は、通信インタフェース６，７，１６，１７から受信したパルス信号をそのままコピーして作成され、シリアルバス上に送信される。このＣＰＵモジュール５，１５のパルス信号は、通信インタフェース６，７，１６，１７毎に作成される。
【００５０】
ここでは図４に示すように、ＰＬＣ１，２には、それぞれ２つの通信インタフェース６，７，１６，１７が実装されている。したがって、ＣＰＵモジュール５，１５は、通信インタフェース６，７，１６，１７毎にそれぞれ２つのパルス信号をシリアルバス上に送信する
（４）データフォーマット
図７（ａ）は、ＣＰＵモジュール５，１５と通信インタフェース６，７，１６，１７とのステータスＩＤ・ステータス情報・パルス情報（パルス信号）のデータフォーマット例を示している。
【００５１】
また、図７（ｂ）は、図７（ａ）中のパルス情報の詳細を示している。ここでＣＰＵモジュール５，１５の送信するパルス情報中のＣＰＵパルス情報は、自モジュール内でパルスが作成され、その信号がセットされている。
【００５２】
また、ＣＰＵモジュール５，１５の送信するパルス情報中の通信パルス情報には、通信インタフェース６，７，１６，１７から受信したパルス信号がそのままセットされる。一方、通信インタフェース６，７，１６，１７の送信するパルス情報中の通信パルス情報は、自モジュール内でパルスが作成され、その信号が自モジュールの通信インタフェース番号の対応ビットにセットにされる。
【００５３】
≪実施例≫
以下、ＰＬＣ二重化システムの切替方式の実施例を説明する。この各実施例では、ＰＬＣ１がマスタ・ＰＬＣ２がスレーブとする。
【００５４】
（１）実施例１
図８に基づき実施例１を説明する。この実施例は、スレーブ（ＰＬＣ２）のＣＰＵモジュール１５が、パルス信号の異常を検出したときの動作例を示している。ここでは前回のパルス信号診断時Ｔ１に異常検出されていないものの、今回のパルス信号診断時Ｔ２に異常検出されている。
【００５５】
この異常検出時には、ＣＰＵモジュール５のＦＰＧＡやメモリなどに故障が発生するおそれがある。そこで、ＣＰＵモジュール５，１５間でマスタ・スレーブの切り替えを実行する。以下、今回のパルス信号診断時Ｔ２の処理ステップ（Ｓ２５，Ｓ２６，Ｓ５５，Ｓ６０，Ｓ６１）を中心に説明する。
【００５６】
Ｓ２５，Ｓ５５：イニシャルスレーブ（スレーブ）のＣＰＵモジュール１５は、前述のようにイニシャルマスタ（マスタ）のＣＰＵモジュール５に対して、マスタ・スレーブ伝送（イニシャルスレーブのパルス信号ＯＮ送信）を行う（Ｓ２５）。
【００５７】
このときＣＰＵモジュール５は、ＣＰＵモジュール１５から受信したパルス信号ＯＮのデータをＦＰＧＡ２２に入力する（Ｓ５５）。ここではＦＥＧＡ２２は、正常であればＳ５５の入力後にパルス信号ＯＮを１ｍｓ程度の時間保持し、その後に出力する（Ｓ５６）が、回路の故障などにより、Ｓ５６のパルス信号ＯＮを出力できない状態となっている。
【００５８】
Ｓ２６：ＣＰＵモジュール５は、Ｓ５６の出力がされないため、Ｓ２５のパルスＯＮ信号をマスタ・スレーブ伝送に含ませることができない。したがって、ＣＰＵモジュール５からＣＰＵモジュール１５へのマスタ・スレーブ伝送は、イニシャルスレーブのパルス信号ＯＮ返信を含まずに行われる。
【００５９】
Ｓ６０，Ｓ６１：ＣＰＵモジュール１５は、ＣＰＵモジュール５から受信したマスタ・スレーブ伝送にイニシャルスレーブのパルス信号ＯＮ返信が含まれていないことを確認し、パルス信号の異常を検出する（Ｓ６０）。
【００６０】
これによりＣＰＵモジュール５に異常が発生しているものと診断され、二重化ケーブル３を介して診断の結果がＣＰＵモジュール５に通知され、マスタ・スレーブの切り替えが行われる（Ｓ６１）。この切り替えによりＣＰＵモジュール１５が新マスタとなり、ＣＰＵモジュール５が新スレーブとなる。
【００６１】
このように実施例１によれば、ＣＰＵモジュール５，１５が相互にパルス信号を確認することで健全性を診断し、ＣＰＵモジュール１５側でＣＰＵモジュール５の異常を診断した場合にマスタ・スレーブが切り替えるシステムを構築することができる。これによりマスタのＣＰＵモジュール５の重大な故障の発生前にマスタ・スレーブを切り替えることができ、ＰＬＣ二重化システムの安全性が向上する。
【００６２】
（２）実施例２
図９に基づき実施例２を説明する。この実施例は、マスタ（ＰＬＣ１）のＣＰＵモジュール５がパルス信号の異常を検出したときの動作例を示している。ここでは前回のパルス信号診断時Ｔ１１に異常検出されていないものの、今回のパルス信号診断時Ｔ１２に異常検出されている。
【００６３】
この異常検出時にはスレーブのＣＰＵモジュール１５のＦＰＧＡやメモリなどの主要部品の故障のおそれがあるものの、マスタのＣＰＵモジュール５の故障でないので、現状のマスタ・スレーブ状態を維持する。以下、実施例１と同様に今回のパルス信号診断時Ｔ１２の処理ステップ（Ｓ２１，Ｓ２２，Ｓ５１，Ｓ６２）を中心に説明する。
【００６４】
Ｓ２１，Ｓ５１：イニシャルマスタ（マスタ）のＣＰＵモジュール５は、前述のようにイニシャルスレーブ（スレーブ）のＣＰＵモジュール１５に対して、マスタ・スレーブ伝送（イニシャルマスタのパルス信号ＯＮ送信）を行う（Ｓ２１）。
【００６５】
このときＣＰＵモジュール１５は、ＣＰＵモジュール５から受信したパルス信号ＯＮのデータをＦＰＧＡ２３に入力する（Ｓ５１）。
【００６６】
ただし、ＦＥＧＡ２３は、正常であればＳ５１の入力後にパルス信号ＯＮを１ｍｓ程度の時間保持し、その後に出力する（Ｓ５２）が、回路の故障などによりＳ５２のパルス信号ＯＮを出力できない状態となっている。
【００６７】
Ｓ２２：ＣＰＵモジュール１５は、Ｓ５２の出力がされないため、Ｓ２１のパルスＯＮ信号をマスタ・スレーブ伝送に含ませることができない。したがって、ＣＰＵモジュール１５からＣＰＵモジュール５５へのマスタ・スレーブ伝送は、イニシャルマスタのパルス信号ＯＮ返信を含まずに行われる。
【００６８】
Ｓ６２：ＣＰＵモジュール５は、ＣＰＵモジュール１５から受信したマスタ・スレーブ伝送にイニシャルマスタのパルス信号ＯＮ返信が含まれていないことを確認し、パルス信号の異常を検出する。これによりＣＰＵモジュール１５に異常が発生しているものと診断される。
【００６９】
ただし、実施例１と異なり、診断の結果がＣＰＵモジュール５に通知されることはなく、またマスタ・スレーブの切り替えは行われず、現状のマスタ・スレーブ状態が維持される。
【００７０】
（３）実施例３
図１０に基づき実施例３を説明する。この実施例は、マスタ（ＰＬＣ１）のＣＰＵモジュール５に重大な故障（重故障）、例えばＣＰＵモジュールのマイコン・メモリ・ＦＰＧＡなどの主要部品が故障し、バス間通信やパルス信号発信が不可能となった場合のマスタ・スレーブの自動切替を示している。
【００７１】
一方、ＣＰＵモジュール５と通信インタフェース６，７とがバス間通信でデータ授受が可能であれば、従来とおりの方法にてマスタ・スレーブの二重化切り替えを行うものとする。
【００７２】
この実施例３では、ＣＰＵモジュール５と通信インタフェース６，７との間における前回のパルス信号診断時Ｔ２１には異常検出されていないものの、今回のパルス信号診断時Ｔ２２に異常検出されている。
【００７３】
すなわち、ＣＰＵモジュール５に重故障が発生し（Ｓ７０）、バス間通信やパルス信号発信が不可能となっている。この重故障発生後に通信インタフェース６，７はパルス信号ＯＮをＣＰＵモジュール５に送信した（Ｓ３１，Ｓ３３）。このときＣＰＵモジュール５は、バス間通信やパルス信号発信が不可能なため、Ｓ３２，Ｓ３４の返信を行えない。
【００７４】
そこで、ＣＰＵモジュール５の重故障の情報が二重化ケーブル３を介した信号によりＣＰＵモジュール１５に通知され、マスタ・スレーブが切り替えられ（Ｓ７１）、ＣＰＵモジュール１５が新マスタとなる。
【００７５】
このとき新マスタのＣＰＵモジュール１５は、バス間通信にて通信インタフェース１６，１７にマスタ動作の指示を行う（Ｓ７２，Ｓ７３）。この通信インタフェース１６，１７は、前記指示にしたがってマスタ・スレーブを切り替えてマスタ動作を行う。
【００７６】
一方、通信インタフェース６，７は、Ｓ３１，Ｓ３２に対するＣＰＵモジュール５からの返信を受信できないため、パルス信号の異常を検出する。ここでは通信インタフェース６，７は、ＣＰＵモジュール５に異常が発生しているものと診断し、自動的にマスタ・スレーブ切り替えて（Ｓ７４，Ｓ７５）、スレーブとして動作する。
【００７７】
これにより通信インタフェース６，７が、パルス信号診断によりＣＰＵモジュールの健全性を確認するシステムが構築される。すなわち、通信インタフェース６，７は、ＣＰＵモジュール５の指示ではなく、パルス信号異常時の自身判断により動作モードをマスタからスレーブに切り替えられる。この点でも安全なＰＬＣ二重化システムの提供を図ることができる。
【００７８】
また、マスタ（ＰＬＣ１）のＣＰＵモジュール５にバス間通信ができないなどの重大な故障が発生した場合に通信インタフェース６，７のマスタからスレーブへの動作モードの移行が可能となるため、ＰＬＣ１の通信インタフェース６，７とＰＬＣ２の通信インタフェース１６，１７の両方が、マスタとして重複して動作する状況が回避される。
【００７９】
≪その他・他例≫
本発明は、上記実施形態に限定されるものではなく、各請求項に記載された範囲内で変形して実施することができる。
【００８０】
例えば実施例３では、ＣＰＵモジュール５の重故障の情報が二重化ケーブル３を介してＣＰＵモジュール１５に通知されてマスタ・スレーブが切り替えられている（Ｓ７１）ものの、前記通知が不可能な重故障の場合には実施例１に従ってＣＰＵモジュール５，１５のマスタ・スレーブの切り替えが行われる。
【００８１】
すなわち、図５に示すように、ＣＰＵモジュール５，１５間のパルス信号診断（Ｓ２１〜Ｓ２８）と、ＣＰＵモジュール５，通信インタフェース６，７間のパルス信号診断（Ｓ３１〜Ｓ３８）とが交互に実施される。
【００８２】
ところがＣＰＵモジュール５は、重故障が発生したため、パルス信号発信ができず、Ｓ２６，Ｓ２８のマスタ・スレーブ伝送（イニシャルスレーブのパルス信号ＯＮ／ＯＦＦ返信）をＣＰＵモジュール１５に送信できない。
【００８３】
したがって、ＣＰＵモジュール１５は、Ｓ２６，Ｓ２８のパルス信号の返信を確認できない。このときＣＰＵモジュール１５は、Ｓ２５，Ｓ２７の送信後に所定時間を経過すれば、Ｓ２５，Ｓ２７の送信後パルス信号の異常を検出し、マスタに切り替わる。この所定時間はメーカの仕様などで事前に定めることができる。
【符号の説明】
【００８４】
１，２…ＰＬＣ
３…二重化ケーブル
５，１５…ＣＰＵモジュール（演算部）
６，７，１６，１７…通信インタフェース（通信部）
【図１】
2019219894.tif 000003
【図２】
2019219894.tif 000004
【図３】
2019219894.tif 000005
【図４】
2019219894.tif 000006
【図５】
2019219894.tif 000007
【図６】
2019219894.tif 000008
【図７】
2019219894.tif 000009
【図８】
2019219894.tif 000010
【図９】
2019219894.tif 000011
【図１０】
2019219894.tif 000012