(57)【要約】【課題】自己診断により入力回路部分の故障を検出することが可能なＰＬＣを提供する。【解決手段】制御処理回路４０は、診断信号生成部４３で生成した診断信号ＩＴ１〜ＩＴを診断信号出力部４４から出力し、ＡＮＤ回路３０、信号入力部４１を介して、故障判定部４２へ取り込み、診断信号ＩＴ１〜ＩＴ４と信号入力部４１から入力した入力信号ＤＩ１〜ＤＩ４とを、故障判定部４２で比較し、一致しなかったとき、信号入力部４１に故障ありと判定する。次に、制御処理回路４０は、診断信号出力部４４から出力した診断信号ＥＴ１，ＥＴ２を絶縁入力回路１０のフォトカプラ１２へ入力して、絶縁入力回路１０のフォトカプラ１１を動作させ、その出力信号ｄ１〜ｄ４を、信号入力部４１を介して取得し、その入力信号ＤＩ１〜ＤＩ４を故障判定部４２で期待値と比較し、一致しなかったとき、絶縁入力回路１０に故障ありと判定する。【選択図】図１
2011069694.tif 000002
【特許請求の範囲】
【請求項１】
外部負荷側回路から供給される信号電流を所定の信号レベルに変換する信号変換部と、前記信号電流を遮断するスイッチと、を有してなる絶縁入力回路と、
半導体集積回路の内部に設けられ、前記半導体集積回路の外部の信号をその内部へ入力する信号入力部と、所定の診断信号を生成する診断信号生成部と、前記生成した診断信号を前記半導体集積回路の外部へ出力する診断信号出力部と、前記信号入力部を介して取得した前記半導体集積回路の信号および前記生成した故障診断信号に基づき、所定の回路部分おける故障の有無を判定する故障判定部と、を有してなる制御処理回路と、
を含んで構成されたプログラマブル・ロジック・コントローラであって、
前記制御処理回路は、
前記診断信号生成部により生成した第１の診断信号を、前記診断信号出力部を介して出力し、
前記出力した第１の診断信号を、そのまま前記信号入力部を介して入力し、
前記故障判定部により、前記入力した信号と前記出力した第１の診断信号とを比較することによって、前記信号入力部に故障が存在するか否かを判定し、
さらに、
前記診断信号生成部により生成した第２の診断信号を、前記診断信号出力部を介して出力し、
前記出力した第２の診断信号を、前記絶縁入力回路に含まれるスイッチの開閉を制御する信号として、前記絶縁入力回路に入力したとき、前記絶縁入力回路から出力される信号を、前記信号入力部を介して入力し、
前記故障判定部により、前記入力した信号と前記出力した第２の診断信号とを比較することによって、前記絶縁入力回路、および、前記絶縁入力回路から前記信号入力部に到る配線部に故障が存在するか否かを判定すること
を特徴とするプログラマブル・ロジック・コントローラ。
【請求項２】
前記診断信号出力部を介して、前記第１の診断信号が出力される周期は、前記第２の診断信号が出力される周期よりも短いこと
を特徴とする請求項１に記載のプログラマブル・ロジック・コントローラ。
【請求項３】
自身の出力信号の配線を含め、互いに隣接しない前記絶縁入力回路同士が同じグループに属するようにグループ化された前記絶縁入力回路に対し、同じグループに属する前記絶縁入力回路には、前記第２の診断信号の同じ診断信号が入力され、互いに異なるグループに属する前記絶縁入力回路には、前記第２の診断信号の互いに異なる診断信号が入力されること
を特徴とする請求項１に記載のプログラマブル・ロジック・コントローラ。
【請求項４】
外部負荷側回路から供給される信号電流を所定の信号レベルに変換する信号変換部と、前記信号電流を遮断するスイッチと、を有してなる絶縁入力回路と、
半導体集積回路の内部に設けられ、前記半導体集積回路の外部の信号をその内部へ入力する信号入力部と、所定の診断信号を生成する診断信号生成部と、前記生成した診断信号を前記半導体集積回路の外部へ出力する診断信号出力部と、前記信号入力部を介して取得した前記半導体集積回路の信号および前記生成した故障診断信号に基づき、所定の回路部分おけるに故障の有無を判定する故障判定部と、を有してなる制御処理回路と、  を含んで構成されたプログラマブル・ロジック・コントローラにおける故障診断方法であって、
前記制御処理回路は、
前記診断信号生成部により生成した第１の診断信号を、前記診断信号出力部を介して出力し、
前記出力した第１の診断信号を、そのまま前記信号入力部を介して入力し、
前記故障判定部により、前記入力した信号と前記出力した第１の診断信号とを比較することによって、前記信号入力部に故障が存在するか否かを判定し、
さらに、
前記診断信号生成部により生成した第２の診断信号を、前記診断信号出力部を介して出力し、
前記出力した第２の診断信号を、前記絶縁入力回路に含まれるスイッチの開閉を制御する信号として、前記絶縁入力回路に入力したとき、前記絶縁入力回路から出力される信号を、前記信号入力部を介して入力し、
前記故障判定部により、前記入力した信号と前記出力した第２の診断信号とを比較することによって、前記絶縁入力回路、および、前記絶縁入力回路から前記信号入力部に到る配線部に故障が存在するか否かを判定すること
を特徴とするプログラマブル・ロジック・コントローラにおける故障診断方法。
【請求項５】
前記診断信号出力部を介して、前記第１の診断信号が出力される周期は、前記第２の診断信号が出力される周期よりも短いこと
を特徴とする請求項５に記載のプログラマブル・ロジック・コントローラにおける故障診断方法。
【請求項６】
自身の出力信号の配線を含め、互いに隣接しない前記絶縁入力回路同士が同じグループに属するようにグループ化された前記絶縁入力回路に対し、同じグループに属する前記絶縁入力回路には、前記第２の診断信号の同じ診断信号が入力され、互いに異なるグループに属する前記絶縁入力回路には、前記第２の診断信号の互いに異なる診断信号が入力されること
を特徴とする請求項５に記載のプログラマブル・ロジック・コントローラにおける故障診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラントの監視・制御システムなどに用いられるプログラマブル・ロジック・コントローラ、および、プログラマブル・ロジック・コントローラにおける故障診断方法に関する。
【背景技術】
【０００２】
原子力プラントや化学プラントなど潜在的な危険性を抱えるプロセス設備では、万が一の事態に備え、様々な対策が講じられている。例えば、プロセス設備の異常あるいはその兆候が検知されたとき、いち早く作動して設備の稼働を緊急停止させる緊急停止装置などの安全制御システムが設けられ（能動的対策）、さらには、万が一の事態が生じた場合に、その影響の拡散を防御するための隔壁などが設けられている（受動的対策）。
【０００３】
従来、安全制御システムの制御手段は、リレーなどの電磁的・機械的手段によって実現されていたが、近年では、その電子的な制御手段として、いわゆるプログラマブル・ロジック・コントローラ（Programmable Logic Controller：以下、ＰＬＣと略称する）が用いられることが多くなった。
【０００４】
このような技術動向に対応し、ＩＥＣ（International Electrotechnical Commission：国際電気標準会議）では、電気的・電子的にプログラム可能な電子装置（いわゆる、ＰＬＣ）を安全制御システムの一部に利用する場合の要件を、ＩＥＣ６１５０８規格として規定している（非特許文献１参照）。ちなみに、ＩＥＣ６１５０８規格には、安全制御システムの能力の尺度としてＳＩＬ（Safety Integrity Level）が定義され、ＳＩＬが１から４までの各レベルに対応する要求事項が規定されている。なお、ＳＩＬは、その数値が大きいほどプロセス設備の潜在的危険性を低減できる度合が大きいこと、すなわち、プロセス設備の異常を検出したとき、どれだけ確実に所定の安全制御を実施できるかを表している。
【０００５】
一般に、安全制御システムには、通常の稼働時に非活性状態であっても、プロセス設備の異常発生時には直ちに活性化することが求められる。そのためには、安全制御システムは、常時、自己診断などにより、自身の健全性をチェックしておくことが重要となる。とくに、高位のＳＩＬが要求される安全制御システムでは、自己診断の未検出の故障によりシステムが不動作となる確率をできる限り極小化することが求められ、より広範囲に、より高精度に自己診断を実施することが求められる。
【０００６】
引用文献１には、自己診断機能を有するＰＬＣの例が開示されている。引用文献１によれば、そのＰＬＣは、同じ処理を同時に実行する複数のプロセッサと、その複数のプロセッサの処理結果を比較照合する比較照合回路と、を備える。そして、その比較照合回路は、ＢＩＳＴ（Built-In Self-Test）回路を備え、ＢＩＳＴ回路が発生するテストデータにより自己診断を行うことができる。
【０００７】
引用文献１に開示されたＰＬＣは、プロセッサの故障だけではなく、比較照合回路の故障に対しても、その故障を検出することができる。従って、そのＰＬＣは、そのほとんどの部分について、高精度の自己診断が実現されているといえる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２６７９９８号公報
【非特許文献】
【０００９】
【非特許文献１】International Electrotechnical Commission,“IEC61508-SER（Functional safety of electrical / electronic / programmable electronic safety-related systems - Part 1-7）”，2005-01-20
【発明の概要】
【発明が解決しようとする課題】
【００１０】
引用文献１に開示されたＰＬＣにおいては、その本体回路部分に対しては、自己診断機能が実現されているが、入力回路部分については、必ずしも自己診断機能が実現されているとはいえない。従って、このようなＰＬＣを用いて安全制御システムを構成した場合、その入力回路に断線や短絡などの故障が生じ、かつ、その入力回路がプロセス設備の異常を通知する信号を受け付ける回路であったときには、プロセス設備の異常を検知できなくなる場合が生じる。
【００１１】
以上の従来技術の問題点に鑑み、本発明は、信号の入力回路部分の故障を検出することが可能なＰＬＣおよびその診断方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係るＰＬＣ（プログラマブル・ロジック・コントローラ）は、半導体集積回路からなる制御処理回路と、外部負荷回路から供給される信号電流を所定の信号レベルの信号に変換して、制御処理回路に供給する絶縁入力回路と、を含んで構成される。そして、制御処理回路は、診断信号を生成する診断信号と、診断信号を半導体集積回路の外部へ出力する診断信号出力部と、所定の回路部分における故障の有無を判定する故障判定部と、を備える。
【００１３】
このように構成されたＰＬＣにおいて、制御処理回路は、診断信号生成部により生成した第１の診断信号を、診断信号出力部を介して出力し、その出力した第１の診断信号を、制御処理回路内の信号入力部を介して取得し、故障判定部で、その取得した信号を第１の診断信号と比較することにより、まず、制御処理回路内の信号入力部における故障の有無を判定する。
次に、制御処理回路は、診断信号生成部により生成した第２の診断信号を、診断信号出力部を介して出力し、その出力した第２の診断信号を絶縁入力回路に供給し、その絶縁入力回路から出力される信号を、信号入力部を介して取得し、その取得した信号を第２の診断信号と比較することにより、絶縁入力回路および絶縁入力回路から信号入力部に到る配線部における故障の有無を判定する。
【００１４】
以上の通り、本発明に係るＰＬＣにおいては、制御処理回路（半導体集積回路）内の信号入力部、外部負荷回路とのインターフェースとして機能する絶縁入力回路、さらには、絶縁入力回路から信号入力部に到る配線部における故障検出が可能になる。すなわち、ＰＬＣの入力回路部分の故障検出が可能になる。
【発明の効果】
【００１５】
本発明によれば、入力回路部分の故障を検出することが可能なＰＬＣ、および、ＰＬＣにおける故障診断方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るＰＬＣ（プログラマブル・ロジック・コントローラ）の構成の例を示した図。
【図２】本発明の実施形態に係るＰＬＣの診断で設定される診断モードの例、ならびに、各診断モードにおける内部診断信号（ＩＴ１〜ＩＴ４）および外部診断信号（ＥＴ１，ＥＴ２）の設定例を示した図。
【図３】本発明の実施形態に係るＰＬＣの診断で用いられる診断データの例を示した図。
【図４】図３の診断データに基づき生成される診断信号のタイミングチャートの例を示した図。
【図５】本発明の実施形態に係る制御処理回路において行われる診断モードＡ’の診断処理の流れを示した図。
【図６】本発明の実施形態に係る制御処理回路において行われる診断モードＢ’の診断処理の流れを示した図。
【図７】本発明の実施形態に係るＰＬＣ（プログラマブル・ロジック・コントローラ）の構成の変形例を示した図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【００１８】
図１は、本発明の実施形態に係るＰＬＣ（プログラマブル・ロジック・コントローラ）の構成の例を示した図である。図１に示すように、ＰＬＣ１００は、負荷側回路２０から供給される電流のＯＮ／ＯＦＦ信号を受信して、例えば、５Ｖ（“Ｈｉｇｈ”レベル）／０Ｖ（“Ｌｏｗ”レベル）の電圧レベルの信号に変換して出力する絶縁入力回路１０と、絶縁入力回路１０から出力される信号を取得して、所定の制御処理を実行する制御処理回路４０と、制御処理回路４０が実行する制御処理の結果として出力される信号に基づき、負荷側回路２０に含まれるアクチュエータ（図示せず）を制御するための駆動電流を出力する絶縁出力回路（図示せず）と、を含んで構成される。
【００１９】
ここで、制御処理回路４０は、マイクロプロセッサやＦＰＧＡ（Field Programmable Gate Array）などを含む１つまたは複数の半導体集積回路によって構成されており、その中に含まれる演算処理回路、プログラム処理回路、プログラム格納メモリなどによって、ＰＬＣ１００の基本機能であるプログラム可能な制御機能が実現されている。従って、制御処理回路４０は、少なくとも機能的には、ＰＬＣ１００の本体部ということができる。
【００２０】
負荷側回路２０は、ＰＬＣ１００が接続された各種の監視装置や制御装置に含まれる回路であるが、その制御信号伝達系の等価回路は、図１右上部に示すように、電源２２とスイッチ２１とにより表すことができる。すなわち、スイッチ２１が適宜ＯＮ／ＯＦＦされることによって、ＰＬＣ１００の絶縁入力回路１０へ供給される信号電流がＯＮ／ＯＦＦされる。
【００２１】
なお、本実施形態では、スイッチ２１は、通常時ＯＮ状態にあり、負荷側回路２０が含まれているプラントからの図示しない動作信号によりＯＦＦされる。すなわち、図１に示した負荷側回路２０の場合には、スイッチ２１がＯＦＦされることによって有意の制御情報がＰＬＣ１００へ伝達される。
【００２２】
絶縁入力回路１０は、図１上部に示すように、フォトカプラ１１，１２を含んで構成され、また、図示しない絶縁出力回路もフォトカプラを含んで構成される。一般に、フォトカプラ１１，１２は、発光素子である発光ダイオード１１１，１２１と、受光素子であるフォトトランジスタ１１２，１２２と、によって構成され、その両者間の信号伝達が光で行われる。従って、フォトカプラ１１，１２をＰＬＣ１００と負荷側回路２０とを接続するインターフェース部分に用いることにより、ＰＬＣ１００を負荷側回路２０から電気的に絶縁することができる。
【００２３】
絶縁入力回路１０には、２つのフォトカプラ１１，１２が設けられているが、従来の一般的な絶縁入力回路では、下側のフォトカプラ１２が設けられることはない。すなわち、負荷側回路２０からの信号を伝達するのに用いられるのは、上側のフォトカプラ１１であり、下側のフォトカプラ１２は、絶縁入力回路１０（つまり、フォトカプラ１１）の診断を容易化することを目的に、本実施形態でとくに設けられたものである。
【００２４】
ここでは、まず、上側のフォトカプラ１１の動作について説明するが、その場合には、通常は設けられないフォトカプラ１２のフォトトランジスタ１２２は、常にＯＮ（導通）しているものとする。
【００２５】
まず、負荷側回路２０のスイッチ２１がＯＮしている状態では、絶縁入力回路１０内の発光ダイオード１１１に電流が流れ、発光ダイオード１１１が発光し、フォトトランジスタ１１２がＯＮ（導通）する。その結果、インバータ１３からは“Ｈｉｇｈ”レベル信号が出力される。また、スイッチ２１がＯＦＦすると、発光ダイオード１１１を流れる電流が遮断され、発光ダイオード１１１が発光しなくなり、フォトトランジスタ１１２がＯＦＦする。このとき、インバータ１３からは“Ｌｏｗ”レベル信号が出力される。すなわち、フォトカプラ１１は、電流信号を電圧信号に変換する信号変換回路として機能する。
【００２６】
なお、本明細書では、制御信号として有意の信号レベルを活性レベルと呼び、制御信号として有意でない、つまり、制御に用いられない信号レベルを非活性レベルと呼ぶことがある。また、制御信号が有意でない期間を通常時と呼ぶ。従って、通常時の制御信号のレベルは、非活性レベルである。
【００２７】
前記したように、本実施形態では、スイッチ２１は通常時ＯＮであるとしているので、絶縁入力回路１０は、通常時“Ｈｉｇｈ”レベルの信号を出力する。つまり、絶縁入力回路１０の出力信号は、“Ｈｉｇｈ”レベルが非活性レベルで、“Ｌｏｗ”レベルが活性レベルである。例えば、負荷側回路２０において、プラントが状態の切り替えを指示した場合には、スイッチ２１がＯＦＦされるので、その結果、絶縁入力回路１０の出力信号が活性レベルの“Ｌｏｗ”レベルとなり、負荷側回路２０におけるスイッチＯＦＦの情報がＰＬＣ１００に伝達されたことになる。
【００２８】
次に、フォトカプラ１２の動作について説明する。本実施形態では、フォトカプラ１２は、負荷側回路２０から供給される電流を遮断するスイッチとして機能する。このスイッチは、通常時ＯＮのスイッチであり、後記する所定の診断モード時には、フォトカプラ１１の動作を診断するために、適宜ＯＮ／ＯＦＦされる。
【００２９】
すなわち、フォトカプラ１２の発光ダイオード１２１には、通常時“Ｈｉｇｈ”レベルの診断信号（ＥＴ１，ＥＴ２）が入力され、そのため、発光ダイオード１２１には電流が流れ、発光ダイオード１２１が発光し、フォトトランジスタ１２２はＯＮ（導通）する。一方、診断時に、診断信号（ＥＴ１またはＥＴ２）が適宜活性化し、“Ｌｏｗ”レベルとなったときには、発光ダイオード１２１に流れる電流が遮断され、発光ダイオード１２１が発光しなくなり、フォトトランジスタ１２２がＯＦＦするので、負荷側回路２０から供給される電流が遮断される。
【００３０】
さらに、図１を参照して、ＰＬＣ１００の診断を行うために、制御処理回路４０に設けられた機能ブロックである診断信号生成部４３、診断信号出力部４４、故障判定部４２の機能および動作について説明する。
【００３１】
なお、本実施形態におけるＰＬＣ１００の診断では、その診断対象となる回路部分（診断対象回路）は、主として、ＰＬＣ１００の入力回路部分であり、図１において次の部分を想定している。
（１）負荷側回路２０から供給される電流のＯＮ／ＯＦＦ信号に応じて、“Ｈｉｇｈ”または“Ｌｏｗ”レベル信号を出力する絶縁入力回路１０
（２）絶縁入力回路１０から出力された信号を制御処理回路４０（半導体集積回路）の内部へ入力する信号入力部４１
（３）絶縁入力回路１０から信号入力部４１へ到る配線部
【００３２】
診断信号生成部４３は、以上のＰＬＣ１００の入力回路部分の診断を行うために必要となる診断信号を生成する。すなわち、診断信号生成部４３は、前記（２）を診断対象回路として、その診断対象回路における故障を検出するための診断信号（ＩＴ１〜ＩＴ４）を生成するとともに、前記（１）および（３）を診断対象回路として、その診断対象回路における故障を検出するための診断信号（ＥＴ１，ＥＴ２）を生成する。以下、本明細書では、診断信号（ＩＴ１〜ＩＴ４）を内部診断信号と呼び、診断信号（ＥＴ１，ＥＴ２）を外部診断信号と呼ぶ。また、これらの診断信号の具体的な例については、別途、詳しく説明する。
【００３３】
診断信号出力部４４は、診断信号生成部４３により生成された内部診断信号（ＩＴ１〜ＩＴ４）および外部診断信号（ＥＴ１，ＥＴ２）を制御処理回路４０（半導体集積回路）の外部へ出力する。このとき、出力された内部診断信号（ＩＴ１〜ＩＴ４）は、ＡＮＤ回路３０および信号入力部４１を介して、制御処理回路４０（半導体集積回路）の内部へ取り込まれ、その内部では、入力信号（ＤＩ１〜ＤＩ４）として認識される。
【００３４】
なお、ＡＮＤ回路３０の他方の入力端子には、通常“Ｈｉｇｈ”レベルの絶縁入力回路１０（＃１〜＃４）の出力信号（ｄ１〜ｄ４）が接続されている。従って、内部診断信号（ＩＴ１〜ＩＴ４）の数は、原則として、絶縁入力回路１０の出力信号（ｄ１〜ｄ４）の数、または、信号入力部４１の入力信号（ＤＩ１〜ＤＩ４）の数と同じである。なお、図１では、その数を４としているが、４に限定されることはない。
【００３５】
一方、外部診断信号（ＥＴ１，ＥＴ２）は、絶縁入力回路１０の下側のフォトカプラ１２の発光ダイオード１２１を駆動するバッファ回路１４に入力される。ここで、外部診断信号（ＥＴ１，ＥＴ２）の数は、絶縁入力回路１０の数よりも少ないものとし、絶縁入力回路１０を、適宜、グループ化した上で、同じグループに属する絶縁入力回路１０に対しては、同じ外部診断信号（ＥＴ１，ＥＴ２）を入力し、互いに異なるグループに属する絶縁入力回路１０に対しては、互いに異なる外部診断信号（ＥＴ１，ＥＴ２）を入力する。
【００３６】
ちなみに、図１では、第１のグループとして、奇数番号の絶縁入力回路１０（＃１，＃３）がグループ化され、その絶縁入力回路１０（＃１，＃３）には、第１の外部診断信号（ＥＴ１）が入力されている。また、第２のグループとして、偶数番号の絶縁入力回路１０（＃２，＃４）がグループ化され、その絶縁入力回路１０（＃２，＃４）には、第２の外部診断信号（ＥＴ２）が入力されている。
【００３７】
このようなグループ化は、同じグループに属する絶縁入力回路１０同士は、互いに影響しあう故障、例えば、互いの出力信号などが短絡する故障が生じないことを前提としている。すなわち、互いに影響しあう故障を検出するためには、互いに異なる診断信号が必要であるが、互いに影響しあう故障が生じないのであれば、その故障の検出が不要であるので、互いに同じ診断信号を用いてもよい。
【００３８】
つまり、図１では、絶縁入力回路１０（＃１，＃３）同士は、直接に隣接していないので、その出力信号も含め、互いに影響しあうことはなく、また、絶縁入力回路１０（＃２，＃４）同士も、直接に隣接していないので、その出力信号も含め、互いに影響しあうことはないとみなすことができる。
【００３９】
なお、図１では、絶縁入力回路１０のグループ数は、２としたが、絶縁入力回路１０が配置されるプリント基板上における実際の位置関係や、絶縁入力回路１０から信号入力部４１到る配線の位置関係に応じて、適宜、３以上のグループにグループ化してもよい。
【００４０】
なお、このような絶縁入力回路１０のグループ化は、同じグループに対して同じ外部診断信号（ＥＴ１，ＥＴ２）を入力することによって、診断時間を短縮することを意図したものである。また、互いに異なるグループに属する絶縁入力回路１０に対して、互いに異なる外部診断信号（ＥＴ１，ＥＴ２）を入力するようにしたことは、例えば、互いに隣接する絶縁入力回路１０間やその出力配線間で生じ得る短絡故障などを検出できるように配慮したものである。
【００４１】
図２は、本発明の実施形態に係るＰＬＣ１００の診断で設定される診断モードの例、ならびに、各診断モードにおける内部診断信号（ＩＴ１〜ＩＴ４）および外部診断信号（ＥＴ１，ＥＴ２）の設定例を示した図である。なお、図２以降の図を含め、本明細書では、信号の“Ｈｉｇｈ”レベルを“１”と略記し、“Ｌｏｗ”レベルを“０”と略記する。
【００４２】
ＰＬＣ１００の通常動作モード（図２（ａ）参照）は、ＰＬＣ１００が通常に動作する動作モードであり（つまり、診断モードでない）、その通常動作モードでは、内部診断信号（ＩＴ１〜ＩＴ４）および外部診断信号（ＥＴ１，ＥＴ２）は、いずれも“１”に固定される。すなわち、ＥＴ１＝ＥＴ２＝“１”であるから、絶縁入力回路１０の下側のフォトカプラ１２のフォトトランジスタ１２２は、ＯＮ（導通状態）となる。従って、内部診断信号（ＩＴ１〜ＩＴ４）および外部診断信号（ＥＴ１，ＥＴ２）は、“１”が非活性レベルで、“０”が活性レベルになる。
【００４３】
従って、通常動作モードでは、負荷側回路２０（＃ｊ）のスイッチ２１がＯＮ／ＯＦＦされる情報は、直ちに、絶縁入力回路１０（＃ｊ）の出力信号ｄｊの“１”／“０”に伝達される。また、ＩＴｊ＝“１”であるから、絶縁入力回路１０の出力信号ｄｊの信号レベル“１”／“０”は、そのままＡＮＤ回路３０を通過して、信号入力部４１の入力信号ＤＩｊの信号レベル“１”／“０”となって制御処理回路４０内へ取り込まれる（以上、ｊ＝１，２，３，４）。
【００４４】
次に、診断モードＡ（図２（ｂ）参照）は、制御処理回路４０内部の信号入力部４１における故障を検出するため診断を行う動作モードである。診断モードＡでは、外部診断信号ＥＴｋ（ｋ＝１，２）の信号レベルを“１”に固定する。また、絶縁入力回路１０の出力信号ｄｊの信号レベルが“１”であること、つまり、負荷側回路２０のスイッチ２１はＯＦＦされないことを仮定する。そして、診断信号出力部４４から信号レベルが“１”または“０”に変化する内部診断信号（ＩＴ１〜ＩＴ４）を出力する。
【００４５】
すなわち、診断モードＡでは、絶縁入力回路１０の出力信号（ｄ１〜ｄ４）の信号レベルが“１”であるから、診断信号出力部４４から出力される内部診断信号（ＩＴ１〜ＩＴ４）の信号レベル（“１”／“０”）は、ＡＮＤ回路３０をそのまま通過して、信号入力部４１の入力信号（ＤＩ１〜ＤＩ４）の信号レベル（“１”／“０”）として制御処理回路４０の内部へ取り込まれる。
【００４６】
故障判定部４２は、信号入力部４１を介して入力される入力信号（ＤＩ１〜ＤＩ４）の信号レベル（“１”／“０”）を、診断信号出力部４４から出力した内部診断信号（ＩＴ１〜ＩＴ４）の信号レベル（“１”／“０”）と比較し、両者の信号レベルが異なった場合には、信号入力部４１に故障があると判定する。
【００４７】
次に、診断モードＢ（図２（ｃ）参照）は、絶縁入力回路１０および絶縁入力回路１０から信号入力部４１に到る配線部の故障を検出するため診断を行う動作モードである。診断モードＢでは、内部診断信号（ＩＴ１〜ＩＴ４）の信号レベルを“１”に固定するとともに、負荷側回路２０のスイッチ２１はＯＦＦされないことを仮定する。そして、診断信号出力部４４から信号レベルが“１”または“０”に変化する外部診断信号（ＥＴ１，ＥＴ２）を出力する。
【００４８】
外部診断信号（ＥＴ１，ＥＴ２）は、前記したように絶縁入力回路１０の下側のフォトカプラ１２のフォトトランジスタ１２２をＯＮ／ＯＦＦする機能を有する。すなわち、フォトトランジスタ１２２は、外部診断信号（ＥＴ１，ＥＴ２）の信号レベルが“１”の場合にはＯＮしているが、“０”の場合にはＯＦＦする。つまり、フォトトランジスタ１２２は、負荷側回路２０から供給される電流を導通／遮断するスイッチとして機能する。
【００４９】
従って、外部診断信号（ＥＴ１ＥＴ２）の信号レベルが“１”であるときには、絶縁入力回路１０の出力信号（ｄ１〜ｄ４）の信号レベルは“１”となり、その結果、信号入力部４１の入力信号（ＤＩ１〜ＤＩ４）の信号レベルも“１”となる。また、外部診断信号（ＥＴ１，ＥＴ２）の信号レベルが“０”であるときには、絶縁入力回路１０の出力信号（ｄ１〜ｄ４）の信号レベルは“０”となり、その結果、信号入力部４１の入力信号（ＤＩ１〜ＤＩ４）の信号レベルも“０”となる。
【００５０】
故障判定部４２は、信号入力部４１を介して入力される入力信号（ＤＩ１〜ＤＩ４）の信号レベル（“１”／“０”）を、診断信号出力部４４から出力した外部診断信号（ＥＴ１，ＩＴ４）の信号レベル（“１”／“０”）と比較し、両者の信号レベルが異なった場合には、絶縁入力回路１０に故障があると判定する。なお、ここで、絶縁入力回路１０に故障があると判定された場合には、絶縁入力回路１０から信号入力部４１に到る配線部、ＡＮＤ回路３０、信号入力部４１に故障がある場合も含まれる。
【００５１】
以上の通り、図１に示したＰＬＣ１００は、負荷側回路２０のスイッチ２１がＯＦＦされない場合には、図２に示した診断モードＡおよび診断モードＢの診断を実施することにより、信号入力部４１、絶縁入力回路１０および絶縁入力回路１０から信号入力部４１に到る配線部における故障を検出することができる。
【００５２】
続いて、図２に示した診断モードＡまたは診断モードＢの診断を実施中に、負荷側回路２０のスイッチ２１がＯＦＦされ得ることを想定した場合について検討する。この場合には、図２（ｂ）、（ｃ）に示した真理値表は成立しなくなるので、信号入力部４１や絶縁入力回路１０の故障検出はできなくなる。しかしながら、検出対象の故障を危険側故障に限定した場合には、診断モードＡおよび診断モードＢをそれぞれわずかに変更しただけで、危険側故障の検出が可能となる。
【００５３】
ここで、危険側故障とは、その故障を放置した場合、プラントなどＰＬＣ１００が適用されたシステム全体が危険な状態に陥る故障をいう。例えば、プラントの中のあるバルブの“閉”および“開”状態がデジタル入力の“０”と“１”に対応しているものとする。また、炉の温度がバルブの開閉による水流量で制御されているものとする。その場合に、水流量の増加により炉の温度を低下させる必要があるとき、当該システムのコントローラは、バルブが“開”状態（“１”）であれば開ける必要がないが、“閉”状態（“０”）であれば開けなければならない。もし、コントローラに“開”状態（“１”）の信号しか入力されない場合には、コントローラはバルブが開いているものと認識し、バルブを開ける指示を出すことはない。
【００５４】
ここで、コントローラの内部の回路故障のために“開”状態（“１”）の信号が入力され続け、実際のバルブが“閉”状態（“０”）であった場合には、いつまでもバルブは開けられないことになる。その場合には、プラントは必要な水流量が得られず、炉の温度が上昇して、プラントが危険な状態に陥ることになる。つまり、この場合には、“閉”状態（“０”）を“開”状態（“１”）と誤る故障は、危険側故障に該当する。このような危険側故障は、システムの運転中であっても早急に検出する必要がある。
【００５５】
一方、コントローラの内部の回路故障のために“閉”状態（“０”）の信号しか入力されなかった場合には、バルブが開いているにも関わらずバルブを開ける指示を出すことになる。この場合には、水流が停止することはないので、炉の温度が上昇して、プラントが危険な状態に陥ることはない。すなわち、“開”状態（“１”）を“閉”状態（“０”）と誤る故障は、危険側故障に該当せず、以下、このように危険側故障に該当しない故障を非危険側故障という。
【００５６】
なお、このような非危険側故障は、必ずしも早急に検出しなければならないわけではない。プラントの管理者にとっては、故障がある状態でもとりあえず稼働させ、あとから故障を修理するほうが好都合な場合もある。もし、全ての故障を検出して、その都度システムを停止させると、システムの可用性は低下してしまうことになる。すなわち、非危険側故障については、検出しないとしても、それによってシステムの安全性が大きく損なわれることはなく、逆に、システム性能の向上をもたらすことにもなり得る。
【００５７】
続いて、図２（ｄ）、（ｅ）を参照して、診断中に負荷側回路２０のスイッチ２１がＯＦＦされても、少なくとも危険側故障を検出することが可能な診断モードＡ’および診断モードＢ’について、説明する。ここで、図１における危険側故障は、負荷側回路２０からの活性化信号が制御処理回路４０（信号入力部４１）へ伝達されない故障であるから、絶縁入力回路１０の出力信号（ｄ１〜ｄ４）の活性レベル“０”を“１”と誤る故障に相当する。
【００５８】
診断モードＡ’（図２（ｄ）参照）は、制御処理回路４０内部の信号入力部４１における危険側故障を検出するための診断を行う動作モードである。診断モードＡ’では、診断信号出力部４４からは、外部診断信号ＥＴｋ（ｋ＝１，２）の信号レベルを非活性レベル“１”に設定して出力するとともに、内部診断信号（ＩＴ１〜ＩＴ４）の信号レベルを活性レベル“０”に設定して出力する。
【００５９】
この場合、絶縁入力回路１０の出力信号（ｄ１〜ｄ４）の信号レベルに関わらず、診断信号出力部４４から出力される内部診断信号（ＩＴ１〜ＩＴ４）の信号レベル“０”は、ＡＮＤ回路３０をそのまま通過して、信号入力部４１の入力信号（ＤＩ１〜ＤＩ４）の信号レベル“０”として制御処理回路４０の内部へ取り込まれる。
【００６０】
故障判定部４２は、信号入力部４１を介して入力される入力信号（ＤＩ１〜ＤＩ４）の信号レベル“０”を、診断信号出力部４４から出力した内部診断信号（ＩＴ１〜ＩＴ４）の信号レベル“０”と比較し、両者の信号レベルが異なった場合には、信号入力部４１に故障があると判定する。従って、故障判定部４２は、信号入力部４が“０”を“１”と誤る故障である危険側故障を検出することができる。
【００６１】
なお、診断モードＡ’では、故障判定部４２は、内部診断信号（ＩＴ１〜ＩＴ４）の信号レベルが非活性レベル“１”に設定されたときについては、信号入力部４１を介して入力される入力信号（ＤＩ１〜ＤＩ４）の信号レベルと、診断信号出力部４４から出力される内部診断信号（ＩＴ１〜ＩＴ４）と、の信号レベルの比較を行わない。従って、信号入力部４１における“１”を“０”と誤る非危険側故障は検出されるとは限らない。
【００６２】
また、診断モードＡ’の診断を実施することにより、診断信号出力部４４や、診断信号出力部４４から信号入力部４１に到る配線部に故障があった場合も、信号入力部４１に故障があると判定される場合がある。その場合、その故障がＰＬＣ１００の通常動作に影響のない故障であっても、所定の故障回復処理が行われるが、安全性に絡む故障が見逃されるわけではないので、いわゆる、フェイルセーフ性は確保されていることになる。
【００６３】
また、診断モードＡ’実行中に負荷側回路２０のスイッチ２１がＯＮからＯＦＦ、または、ＯＦＦからＯＮされた場合、絶縁入力回路１０の出力信号ｄｊの信号レベルは“０”から“１”、または、“１”から“０”となるが、その出力信号ｄｊは、ＡＮＤ回路３０の内部診断信号ＩＴｊの信号レベル“０”によってマスクされる。従って、負荷側回路２０のスイッチ２１のＯＮ／ＯＦＦは、診断モードＡ’の動作に影響を与えることはない。
【００６４】
次に、診断モードＢ’（図２（ｅ）参照）は、絶縁入力回路１０および絶縁入力回路１０から信号入力部４１に到る配線部の危険側故障を検出するための診断を行う動作モードである。診断モードＢ’では、内部診断信号（ＩＴ１〜ＩＴ４）の信号レベルを非活性レベル“１”に設定して出力するとともに、外部診断信号（ＥＴ１，ＥＴ２）の信号レベルを活性レベル“０”に設定して出力する。
【００６５】
外部診断信号（ＥＴ１，ＥＴ２）は、前記したように絶縁入力回路１０の下側のフォトカプラ１２のフォトトランジスタ１２２をＯＮ／ＯＦＦする機能を有する。すなわち、フォトトランジスタ１２２は、外部診断信号（ＥＴ１，ＥＴ２）の信号レベルが“１”の場合にはＯＮしているが、“０”の場合にはＯＦＦする。つまり、フォトトランジスタ１２２は、負荷側回路２０から供給される電流を導通／遮断するスイッチとして機能する。
【００６６】
診断モードＢ’では、外部診断信号（ＥＴ１，ＥＴ２）の信号レベルが“０”であるので、絶縁入力回路１０の出力信号（ｄ１〜ｄ４）の信号レベルは“０”となり、その結果、信号入力部４１の入力信号（ＤＩ１〜ＤＩ４）の信号レベルも“０”となる。
【００６７】
故障判定部４２は、信号入力部４１を介して入力される入力信号（ＤＩ１〜ＤＩ４）の信号レベル（“１”／“０”）を、診断信号出力部４４から出力した外部診断信号（ＥＴ１，ＥＴ２）の信号レベル（“０”）と比較し、両者の信号レベルが異なった場合には、絶縁入力回路１０に故障があると判定する。従って、故障判定部４２は、絶縁入力回路１０が“０”を“１”と誤って出力する故障である危険側故障を検出することができる。
【００６８】
なお、診断モードＢ’では、故障判定部４２は、外部診断信号（ＥＴ１，ＥＴ２）の信号レベルが非活性レベル“１”に設定されたときについては、信号入力部４１を介して入力される入力信号（ＤＩ１〜ＤＩ４）の信号レベルと、診断信号出力部４４から出力される外部診断信号（ＥＴ１，ＥＴ２）と、の信号レベルの比較を行わない。従って、絶縁入力回路１０が“１”を“０”と誤って出力する非危険側故障は検出されるとは限らない。
【００６９】
また、診断モードＢ’実行中に負荷側回路２０のスイッチ２１がＯＮからＯＦＦ、または、ＯＦＦからＯＮされた場合、絶縁入力回路１０のフォトカプラ１１の発光ダイオード１１１に電流が流れるかに見えるが、下段のフォトカプラ１２が外部診断信号（ＥＴ１，ＥＴ２）によりＯＦＦされているので、フォトカプラ１１の発光ダイオード１１１には電流が流れない。従って、診断モードＢ’の動作に影響を与えることはない。
【００７０】
なお、診断モードＢ’の診断では、絶縁入力回路１０の故障だけでなく、絶縁入力回路１０から制御処理回路４０の信号入力部４１へ到る配線部における故障や信号入力部４１における故障についても検出される。
【００７１】
図３は、本発明の実施形態に係るＰＬＣ１００の診断で用いられる診断データの例を示した図、図４は、図３の診断データに基づき生成される診断信号のタイミングチャートの例を示した図である。ここで、診断データとは、診断対象の回路に供給する（複数の）診断信号の信号レベルを定めるデータをいう。また、診断データは、診断対象の回路に含まれる信号から得られる信号レベルの期待値を含んでもよい。
【００７２】
本実施形態では、診断対象回路は、絶縁入力回路１０、制御処理回路４０の信号入力部４１、および、絶縁入力回路１０から信号入力部４１に到る配線部の部分である。そして、その診断対象回路に供給される診断信号は、内部診断信号（ＩＴ１〜ＩＴ４）であり、外部診断信号（ＥＴ１，ＥＴ２）である。また、その診断で検査の対象となる信号（以下、検査対象信号という）は、信号入力部４１の入力信号（ＤＩ１〜ＤＩ４）である。
【００７３】
図３および図４において、ｔ０〜ｔ８は、診断サイクルを表している。診断サイクルとは、診断を実行する主体（制御処理回路４０）が、１組の診断データに基づく診断信号を診断対象回路へ入力してから、検査対象信号の信号レベルを取得し、その取得した検査対象信号の信号レベルを既知の期待値レベルと比較して、故障の有無を判定するまでの、診断処理の単位となるサイクルをいう。
【００７４】
また、図３において、診断モードＡ，Ａ’の診断を実行する診断サイクルｔ０，ｔ１,ｔ２，ｔ３，ｔ４に対する診断信号（ＩＴ１，ＩＴ２，ＩＴ３，ＩＴ４，ＥＴ１，ＥＴ２）の診断データは、
ｔ０：（１，１，１，１，１，１），
ｔ１：（０，１，１，１，１，１），
ｔ２：（１，０，１，１，１，１），
ｔ３：（１，１，０，１，１，１），
ｔ４：（１，１，１，０，１，１）
である。
【００７５】
また、そのときの検査対象信号は、信号入力部４１の入力信号（ＤＩ１，ＤＩ２，ＤＩ３，ＤＩ４）であり、その期待値は、
ｔ０：（１，１，１，１），
ｔ１：（０，１，１，１），
ｔ２：（１，０，１，１），
ｔ３：（１，１，０，１），
ｔ４：（１，１，１，０）
である。
【００７６】
なお、図３には、診断モードＢ，Ｂ’の場合について、診断信号（ＩＴ１，ＩＴ２，ＩＴ３，ＩＴ４，ＥＴ１，ＥＴ２）の診断データ、および、検査対象信号である信号入力部４１の入力信号（ＤＩ１，ＤＩ２，ＤＩ３，ＤＩ４）の期待値が併せて記載されている。また、図３において、診断サイクルｔ０，ｔ５，ｔ８の診断データは、通常動作モードの状態を確認するための診断データである。
【００７７】
図４は、これらの診断データに基づき生成される診断信号および期待値信号をタイミングチャートで表したものであるが、期待値信号については、診断対象回路で生じる時間遅れについては表現されていない。
【００７８】
また、図４では、診断モードＡ，Ａ’の診断サイクルは短く、診断モードＢ，Ｂ’の診断サイクルは長く表されているが、これは、診断サイクルの長さを現実に対応させたからである。すなわち、診断モードＡ，Ａ’の場合には、応答速度が遅いフォトカプラ１１,１２を含む絶縁入力回路１０が診断対象回路に含まれず、診断モードＢ，Ｂ’の場合には、応答速度が遅いフォトカプラ１１,１２を含む絶縁入力回路１０が診断対象回路に含まれるからである。ちなみに、診断モードＡ，Ａ’の診断サイクルは、数μ秒ですむのに対し、診断モードＢ，Ｂ’の診断サイクルは、少なく見積もっても１００μ秒となる。
【００７９】
また、診断モードＡ，Ａ’では、内部診断信号（ＩＴ１，ＩＴ２，ＩＴ３，ＩＴ４）のうち、活性レベル（“０”）にする信号を１つに限定するとともに、活性レベル（“０”）にするタイミングを１診断サイクルずつずらしている。これは、活性化した信号が、診断対象回路における信号間の短絡などにより、活性化していない他の信号に影響を及ぼしているか否かを検査できるようにすることを意図したものである。
【００８０】
例えば、信号入力部４１の内部で、入力信号ＤＩ２とＤＩ３とが短絡していた場合には、実際の制御処理回路４０（半導体集積回路）の内部において、診断サイクルｔ２、ｔ３時に、得られる入力信号（ＤＩ１，ＤＩ２，ＤＩ３，ＤＩ４）の信号レベルのデータは、期待値が
ｔ２：（１，０，１，１），
ｔ３：（１，１，０，１），
であるのに対し、例えば
ｔ２：（１，１，１，１），
ｔ３：（１，１，１，１）
となり、期待値と異なることになる。
【００８１】
従って、図３に示した診断モードＡ，Ａ’における信号入力部４１を診断するための診断データ、すなわち、１つの活性レベル“０”のデータが、１診断サイクルごとに診断信号を１つずつ移動していくような診断データは、信号入力部４１に含まれる入力信号の任意の組み合わせについて、その入力信号間の短絡を検出することが可能な診断データであるといえる。
【００８２】
一般に、短絡は、物理的に隣接するように配置された回路または配線間で生じる。従って、図３に示した診断モードＡの診断データは、過剰な診断データであるともいえる。しかしながら、制御処理回路４０が半導体集積回路で構成されている場合には、その半導体集積回路内で回路や配線がどのように配置されているかを特定することは、半導体ベンダなど、半導体集積回路の内部配線を設計する者であれば可能ではあるが、そうでない場合、一般的には困難である。つまり、ＰＬＣ１００を設計する設計者にとっては、どの信号同士が短絡し得るかを特定することができない。従って、あらゆる組み合わせの信号間の短絡を考慮しておく必要があるので、図３に示した診断モードＡ，Ａ’の診断データは、必ずしも過剰ではなく、妥当な診断データであるといえる。
【００８３】
これに対し、診断モードＢ，Ｂ’の診断対象回路は、ＰＬＣ１００を構成するプリント基板上に設置された絶縁入力回路１０である。この場合には、ＰＬＣ１００の設計者にとって、絶縁入力回路１０（＃１〜＃４）の配置情報は、既知の情報、あるいは、目視により容易に得ることができる情報である。この場合には、互いに短絡する可能性のない回路同士、あるいは、信号同士の短絡故障を検出するための診断信号を省くことができる。
【００８４】
そこで、本実施形態では、診断モードＢ，Ｂ’では、互いに短絡する可能性のない絶縁入力回路１０同士をグループ化する。そして、同じグループに属する絶縁入力回路１０に対して同じ診断信号を供給するようにした。こうすることによって、互いに異なる診断信号の数を削減することができ、また、診断データを削減することができる。
【００８５】
ここで、互いに短絡する可能性のない絶縁入力回路１０同士とは、自身の出力信号の配線も含め、プリント基板上で直接には隣接しない位置に配置された絶縁入力回路１０同士をいう。なお、配線の場合には、平面的な位置関係での隣接だけでなく、絶縁層を介しての上層および下層の位置関係での隣接も含むものとする。
【００８６】
ちなみに、図１のＰＬＣ１００では、それが実装されたプリント基板上で、互いに隣接しない絶縁入力回路１０（＃１，＃３）を第１のグループとし、同様に、互いに隣接しない別の絶縁入力回路１０（＃２，＃４）を第２のグループとする。そして、第１のグループの絶縁入力回路１０（＃１，＃３）には、外部診断信号ＥＴ１を供給し、第２のグループの絶縁入力回路１０（＃２，＃４）には、外部診断信号ＥＴ２を供給する。
【００８７】
すなわち、絶縁入力回路１０をグループ化しない場合には、４本の外部診断信号が必要であるが、グループ化したことにより、外部診断信号の数は、２本で済むようになった。さらに、外部診断信号の数が２本になったことにより、その外部診断信号（ＥＴ１,ＥＴ２）を生成するための診断データは、実質的には、診断サイクルがｔ６，ｔ７の診断データ（図３、図４参照）だけで済むようになった。
【００８８】
なお、絶縁入力回路１０を２つのグループにグループ化した場合、絶縁入力回路１０の数が大きくなるほど、外部診断信号の数および診断データの数の削減効果は大きくなる。図１の例（４の絶縁入力回路１０を２つのグループにグループ化した場合）では、外部診断信号の数および診断データの数は、いずれも４から２に削減されるが、３２の絶縁入力回路１０を２つのグループにグループ化した場合には、外部診断信号の数および診断データの数は、いずれも３２から２に削減される。
【００８９】
ここで、診断データが削減される効果は、当然ながら、診断時間が短縮されるという効果に結びつく。１つの診断データは、１つの診断サイクルに対応しているからである。
【００９０】
ところで、前記したように、診断モードＢ，Ｂ’での診断は、絶縁入力回路１０の故障を検出すために行われる。その場合、絶縁入力回路１０には、フォトカプラ１１，１２が含まれ、フォトカプラ１１，１２の動作応答時間が長い（例えば、１００μ秒）という理由で、診断サイクル時間を長く（例えば、２００μ秒）せざるを得ない事情がある。
【００９１】
例えば、診断サイクル時間が２００μ秒で、診断データ数が３２であった場合には、その診断時間は、６４００μ秒となるが、診断データ数が２であった場合には、その診断時間は、４００μ秒で済む。従って、診断モードＢ，Ｂ’でテスト時間が短縮される効果は、ＰＬＣ１００の診断においてとくに大きな効果であるともいえる。
【００９２】
なお、前記したように、絶縁入力回路１０をグループ化するグループ数は、２に限定されることはない。プリント基板上における絶縁入力回路１０の実装状況、さらには、絶縁入力回路１０から信号入力部４１に到る配線の実装状況などを検討して、隣接する絶縁入力回路１０同士以外にも短絡故障など相互に影響を及ぼしあう故障がある場合には、絶縁入力回路１０を、適宜、３以上のグループにグループ化してもよい。
【００９３】
図５は、制御処理回路４０において行われる診断モードＡ’の診断処理の流れを示した図、図６は、診断モードＢ’の診断処理の流れを示した図である。これらの処理は、制御処理回路４０内の診断信号生成部４３、診断信号出力部４４および故障判定部４２によって行われる処理である。また、これらの処理を行う実行主体は、制御処理回路４０内に含まれる演算処理回路やプログラム処理回路であるが、本明細書では、「制御処理回路４０が・・・を行う」と記載する。なお、診断モードＡおよび診断モードＢの診断処理の流れは、それぞれ図５および図６に類似したものになるので、説明を省略する。
【００９４】
図５に示すように、制御処理回路４０は、まず、診断モードＡ’を設定する（ステップＳ１２）。このステップでは、診断モードＡ’の診断実行中であることを示す情報を、所定の記憶素子に記憶させる。
【００９５】
次に、制御処理回路４０は、診断モードＡ’の診断データ（図３参照、ｔ０〜ｔ４の診断データ）に従って、ループ処理を開始する。すなわち、制御処理回路４０は、これ以降、ステップＳ２０までを、診断データ数と同じ回数だけループして処理する（ステップＳ１３）。なお、診断データは、あらかじめ用意され、例えば、制御処理回路４０に内蔵されたメモリに記憶されているものとする。
【００９６】
次に、制御処理回路４０は、与えられた診断データに基づき、内部診断信号（ＩＴ１〜ＩＴ４）を信号レベル“０”にして、診断信号出力部４４を介して、制御処理回路４０の外部へ出力する（ステップＳ１４）。なお、診断モードＡ’では、外部診断信号（ＥＴ１，ＥＴ４）の信号レベルは、非活性レベル“１”に固定される。
【００９７】
次に、制御処理回路４０は、出力した内部診断信号（ＩＴ１〜ＩＴ４）を、信号入力部４１を介して、制御処理回路４０の内部へ入力し（ステップＳ１５）、その入力した入力信号（ＤＩ１〜ＤＩ４）を、以下、入力診断信号（ＤＩ１〜ＤＩ４）という。
【００９８】
次に、制御処理回路４０は、出力した内部診断信号（ＩＴ１〜ＩＴ４）と入力診断信号（ＤＩ１〜ＤＩ４）とを比較し（ステップＳ１６）、両者が一致しなかった場合には（ステップＳ１７でＮｏ）、信号入力部４１またはその周辺部に「故障あり」と判定する（ステップＳ１８）。また、両者が一致した場合には（ステップＳ１７でＹｅｓ）、「故障なし」と判定する（ステップＳ１９）。これらの判定が終わると、１つの診断サイクルの処理が終了したことになり、ステップＳ１３からの１単位のループ処理を終了する（ステップＳ２０）。
【００９９】
なお、以上のステップＳ１３〜ステップＳ１９までの１つのループ内の処理は、１診断サイクルの処理に対応している。
【０１００】
制御処理回路４０は、所定回数のループ処理を終えると、そのループ処理の中で、「故障あり」の診断サイクルがあったか否かを判定し、「故障あり」の診断サイクルがあった場合には（ステップＳ２１でＹｅｓ）、前記したような故障回復処理を実行する（ステップＳ２２）。また、「故障あり」の診断サイクルがなかった場合には（ステップＳ２１でＮｏ）、そのまま診断モードＡ’の設定を解除して処理を終了する。
【０１０１】
続いて、図６を参照して、診断モードＢ’の診断処理の流れを説明する。制御処理回路４０は、まず、診断モードＢ’を設定する（ステップＳ３２）。このステップでは、診断モードＢ’の診断実行中であることを示す情報を、所定の記憶素子に記憶させる。
【０１０２】
次に、制御処理回路４０は、診断モードＢ’の診断データ（図３参照、ｔ５〜ｔ８の診断データ）に従って、ループ処理を開始する。すなわち、制御処理回路４０は、これ以降、ステップＳ４１までを、診断データ数と同じ回数だけループして処理する（ステップＳ３３）。なお、診断データは、あらかじめ用意され、例えば、制御処理回路４０に内蔵されたメモリに記憶されているものとする。
【０１０３】
次に、制御処理回路４０は、与えられた診断データに基づき、外部診断信号（ＥＴ１，ＥＴ２）を信号レベル“０”にして、生成した外部診断信号（ＥＴ１，ＥＴ２）を、診断信号出力部４４を介して、制御処理回路４０の外部へ出力する（ステップＳ３４）。なお、診断モードＢ’では、外部診断信号（ＥＴ１，ＥＴ４）の信号レベルは、非活性レベル“１”に固定される。
【０１０４】
次に、制御処理回路４０は、出力した外部診断信号（ＥＴ１，ＥＴ２）を絶縁入力回路１０へ供給し（ステップＳ３５）、その絶縁入力回路１０の動作により得られる出力信号（ｄ１〜ｄ４）を、信号入力部４１を介して、制御処理回路４０の内部へ入力し（ステップＳ３６）、入力診断信号（ＤＩ１〜ＤＩ４）とする。なお、絶縁入力回路１０は、互いに隣接しない絶縁入力回路１０（＃１，＃３）が第１のグループにグループ化され、互いに隣接しない別の絶縁入力回路１０（＃２，＃４）が第２のグループにグループ化されているものとする。
【０１０５】
次に、制御処理回路４０は、入力診断信号（ＤＩ１〜ＤＩ４）と、出力した外部診断信号(ＥＴ１，ＥＴ２）から予測される期待値と、を比較し（ステップＳ３７）、両者が一致しなかった場合には（ステップＳ３８でＮｏ）、絶縁入力回路１０または絶縁入力回路１０から信号入力部４１へ到る配線部に「故障あり」と判定する（ステップＳ３９）。また、両者が一致した場合には（ステップＳ３８でＹｅｓ）、「故障なし」と判定する（ステップＳ４０）。これらの判定が終わると、１つの診断サイクルの処理が終了したことになり、ステップＳ３３からの１単位のループ処理を終了する（ステップＳ４１）。
【０１０６】
次に、制御処理回路４０は、所定回数のループ処理を終えると、そのループ処理の中で、「故障あり」の診断サイクルがあったか否かを判定し、「故障あり」の診断サイクルがあった場合には（ステップＳ４２でＹｅｓ）、前記したような故障回復処理を実行する（ステップＳ４３）。また、「故障あり」の診断サイクルがなかった場合には（ステップＳ４２でＮｏ）、そのまま診断モードＢ’の設定を解除して処理を終了する。
【０１０７】
以上のように、本実施形態によれば、絶縁入力回路１０、制御処理回路４０の信号入力部４１、および、絶縁入力回路１０から信号入力部４１に到る配線部、つまり、ＰＬＣ１００にとって入力回路となる部分の故障を検出することが可能になる。また、この故障検出を行う処理は、制御処理回路４０つまりＰＬＣ１００が自身の入力回路部における故障検出を行う処理であるので、ＰＬＣ１００にとっては、自己診断処理（少なくとも自己診断処理の一部）といえるものである。
【０１０８】
従って、引用文献１に示されているようなＰＬＣの内部回路の故障を自己診断する手法に、本実施形態で示した入力回路部分の自己診断する手法を加えれば、より信頼性の高いＰＬＣを実現することが可能となる。
【０１０９】
図７は、本発明の実施形態に係るＰＬＣ１００の構成の変形例を示した図である。図７に示すように、実施形態の変形例に係るＰＬＣ１００ａは、以上に説明した実施形態に係るＰＬＣ１００の構成およびその診断処理における信号レベルを反転させたものとなっている。なお、図７では、図１で示した構成要素と同じ構成要素には同じ符号を付している。また、本実施形態の変形例では、スイッチ２１がＯＦＦされているにもかかわらず、制御処理回路４０にはスイッチがＯＮされていると認識されている状態を危険側故障として、本実施例形態の変形例で検出すべき故障とする。以下、この変形例でもとの実施形態と異なっている部分についてのみ説明する。
【０１１０】
この変形例のＰＬＣ１００ａでは、信号入力部４１に入力される信号は、ＯＲ回路３０ａを介して、診断信号出力部４４からの出力（ＩＴ１〜ＩＴ４）の信号レベルを反転した信号と、絶縁入力回路の出力ｄｊとの信号レベルのＯＲを出力する。絶縁入力回路１０ａでは、負荷側回路から駆動されるフォトカプラ１１ａと、診断信号（ＥＴ１〜ＥＴ２）をインバータ素子で反転させた信号によって駆動されるフォトカプラ１２ａを並列に接続する。そして、負荷側回路ではスイッチ２１ａは通常時ＯＦＦになっていると仮定する。そのため、診断信号出力部から出力される信号（ＩＴ１〜ＩＴ４，ＥＴ１〜ＥＴ２）が信号レベル“１”であれば負荷側回路のスイッチ２１の状態が信号入力部（ＤＩ１〜ＤＩ４）へ伝達し、診断信号出力部から出力される信号（ＩＴ１〜ＩＴ４，ＥＴ１〜ＥＴ２）が信号レベル“０”であれば信号入力部（ＤＩ１〜ＤＩ４）への入力は強制的に信号レベル“１”になる。
【０１１１】
従って、診断モードＡ，Ａ’、診断モードＢ，Ｂ’ともに、故障判定部４２ａにて判定する信号レベルは、診断信号出力部４４から出力した信号（ＩＴ１〜ＩＴ４，ＥＴ１〜ＥＴ２）の反転値になる。つまり、診断信号出力部４４から出力した信号（ＩＴ１〜ＩＴ４，ＥＴ１〜ＥＴ２）の信号レベルが“０”であるのに対し、故障判定部では、信号入力部４１から入力される信号（ＤＩ１〜ＤＩ４）の信号レベルが“１”であれば正常であり、“０”であれば故障があると判定する。
【０１１２】
以上を除けば、ＰＬＣ１００ａの構成およびＰＬＣ１００ａで行われる診断処理は、もとの実施形態の場合と同じである。このようなＰＬＣ１００ａの構成およびその診断処理によって、絶縁入力回路１０、制御処理回路４０ａ内の信号入力部４１、および、絶縁入力回路１０から信号入力部４１に到る配線部についての故障を検出することができることができる。ただし、両者の回路構成では検出できる故障モード（配線間の短絡／断線）が異なる。ＰＬＣ１００では複数ある信号入力部（ＤＩ１〜ＤＩ４）のどれかに信号レベル“０”を入力して他は“１”を入力するので、隣接する配線同士が短絡していれば“０”の入力が期待される配線で“１”の入力を検出することで短絡を検出できる。一方、ＰＬＣ１００ａは複数ある信号入力部（ＤＩ１〜ＤＩ４）のどれかに信号レベル“１”を入力して他は“０”を入力するので、ＰＬＣ１００と同様、“１”の入力が期待される配線で“０”の入力を検出して短絡を検出できる。さらに、それだけでなく、配線の断線により信号が伝達されていない場合も検出することができる。
【０１１３】
なお、この実施形態の変形例は、ＰＬＣ１００の構成と組み合わせた形で運用することも可能である。それにより、危険側故障と同時にそうではない非危険側故障を検出することも可能になる。
【符号の説明】
【０１１４】
１０    絶縁入力回路
１１，１２    フォトカプラ
１３    インバータ
１４    バッファ回路
２０    負荷側回路
２１    スイッチ
２２    電源
３０    ＡＮＤ回路
４０    制御処理回路
４１    信号入力部
４２    故障判定部
４３    診断信号生成部
４４    診断信号出力部
１００  ＰＬＣ
１１１，１２１  発光ダイオード
１１２，１２２  フォトトランジスタ
【図１】
2011069694.tif 000003
【図２】
2011069694.tif 000004
【図３】
2011069694.tif 000005
【図４】
2011069694.tif 000006
【図５】
2011069694.tif 000007
【図６】
2011069694.tif 000008
【図７】
2011069694.tif 000009