(57)【要約】【課題】回路の異常を迅速かつ適切に診断する。【解決手段】一の実施形態によれば、入出力診断装置は、ソフトウェアを実行するプロセッサと、前記プロセッサと異なるハードウェアで構成され、回路の異常診断用のテスト出力指示信号を発行するテスト信号発行部とを備える。前記装置はさらに、前記テスト出力指示信号を受信し、前記テスト出力指示信号の値に応じた値を保持するテスト出力信号を出力する出力素子と、前記プロセッサと異なるハードウェアで構成され、前記テスト出力信号を受信し、前記テスト出力信号の値に応じた値を保持する入力値信号を出力する入力処理部とを備える。前記装置はさらに、前記テスト出力指示信号を受信し、前記テスト出力指示信号に応じて変化する第１信号を前記プロセッサに供給する第１信号供給部と、前記入力値信号を受信し、前記入力値信号に応じて変化する第２信号を前記プロセッサに供給する第２信号供給部とを備える。【選択図】図１
2017085274.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを実行するプロセッサと、
前記プロセッサと異なるハードウェアで構成され、回路の異常診断用のテスト出力指示信号を発行するテスト信号発行部と、
前記テスト出力指示信号を受信し、前記テスト出力指示信号の値に応じた値を保持するテスト出力信号を出力する出力素子と、
前記プロセッサと異なるハードウェアで構成され、前記テスト出力信号を受信し、前記テスト出力信号の値に応じた値を保持する入力値信号を出力する入力処理部と、
前記テスト出力指示信号を受信し、前記テスト出力指示信号に応じて変化する第１信号を前記プロセッサに供給する第１信号供給部と、
前記入力値信号を受信し、前記入力値信号に応じて変化する第２信号を前記プロセッサに供給する第２信号供給部と、
を備える入出力診断装置。
【請求項２】
前記テスト信号発行部は、前記入力値信号に基づいて、前記回路の異常を診断する、請求項１に記載の入出力診断装置。
【請求項３】
前記プロセッサは、前記第１および第２信号に基づいて、前記診断の実施の有無と、前記回路の異常の有無とを判断する、請求項１または２に記載の入出力診断装置。
【請求項４】
前記第１信号は、前記テスト出力指示信号の立ち上がりまたは立ち下がりに応じて変化する第１ラッチ信号であり、
前記第２信号は、前記入力値信号の立ち上がりまたは立ち下がりに応じて変化する第２ラッチ信号である、
請求項１から３のいずれか１項に記載の入出力診断装置。
【請求項５】
前記プロセッサは、ユーザインタフェースにおいて入力された前記テスト出力指示信号のパラメータを受信し、前記パラメータに基づいて前記テスト出力指示信号の波形を設定する波形設定部を備える、請求項１から４のいずれか１項に記載の入出力診断装置。
【請求項６】
前記プロセッサは、前記テスト信号発行部に前記テスト出力指示信号の発行許可を送信する許可信号発行部を備え、
前記テスト信号発行部は、前記発行許可に応じて前記テスト出力指示信号を発行する、
請求項１から５のいずれか１項に記載の入出力診断装置。
【請求項７】
前記プロセッサは、前記テスト信号発行部に対して、前記テスト出力信号の値に変化を与えないパルス幅のパルス信号の発行を命令するパルス命令部を備え、
前記テスト信号発行部は、前記命令に応じて前記テスト出力指示信号として前記パルス信号を発行して、前記第１ラッチ信号の値と前記第２ラッチ信号の値との不一致を解消するパルス発行部を備える、
請求項４に記載の入出力診断装置。
【請求項８】
前記テスト信号発行部と前記入力処理部は、前記テスト信号発行部から前記入力処理部に前記テスト出力信号の入力タイミングを通知する通知信号線で接続されている、請求項１から７のいずれか１項に記載の入出力診断装置。
【請求項９】
前記入力処理部は、前記通知信号線がアクティブ状態に変化した時点での前記テスト出力信号の値を保持する前記入力値信号を出力する、請求項８に記載の入出力診断装置。
【請求項１０】
前記入力処理部は、前記通知信号線がアクティブ状態を維持している間、前記テスト出力信号の最新の値を保持する前記入力値信号を出力し続ける、請求項８に記載の入出力診断装置。
【請求項１１】
前記テスト信号発行部は、前記テスト出力指示信号の値の時系列データをバッファリングする出力値バッファ部を備え、
前記入力処理部は、前記入力値信号の値の時系列データをバッファリングする入力値バッファ部を備え、
前記プロセッサは、前記出力値バッファ部内の前記時系列データと、前記入力値バッファ部内の前記時系列データとに基づいて、前記回路の異常を診断する、請求項１から１０のいずれか１項に記載の入出力診断装置。
【請求項１２】
前記プロセッサは、前記出力値バッファ部内の前記時系列データの更新、および前記入力値バッファ部内の前記時系列データの更新とは非同期に前記診断を行う、請求項１１に記載の入出力診断装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、入出力診断装置に関する。
【背景技術】
【０００２】
図１７は、従来の入出力診断装置の構成を示すブロック図である。
【０００３】
図１７は、制御対象２を制御する制御装置１を示している。制御対象２の例は、発電プラントである。制御装置１に高度の安全性や信頼性が求められる場合、制御装置１は、制御装置１が故障しているか否かを自動的に診断する自己診断機能を有することが多い。図１７の制御装置１は、制御装置１の入出力回路の故障を自動的に検出する入出力診断装置を備えている。
【０００４】
図１７の制御装置１は、入出力診断装置の構成要素として、ＭＰＵ（Micro Processing Unit）１１と、出力素子１２と、出力指示線２１と、出力信号線２２とを備えている。図１７はさらに、出力信号線２２から分岐した分岐線２２ａを示している。図１７中の矢印は、信号の伝達方向を示している。なお、以下の説明では、符号１を、制御装置そのものに代えて、制御装置内の入出力診断装置を表す符号として使用する。
【０００５】
入出力診断装置１が入出力診断（テスト）を行う場合、ＭＰＵ１１は、出力素子１２にテスト出力信号を出力させるためのテスト出力指示信号を出力する。テスト出力指示信号は、出力指示線２１を介して出力素子１２に供給される。出力素子１２は、テスト出力指示信号を受信すると、テスト用の出力信号であるテスト出力信号を出力する。テスト出力信号は、出力信号線２２を介して制御対象２に供給されると共に、分岐線２２ａを介してＭＰＵ１１にフィードバックされる。ＭＰＵ１１は、テスト出力指示信号の指示通りにテスト出力信号が変化したことを確認することで、出力素子１２などの入出力回路が正常状態であると診断することができる。このような診断手法を、テストパターン診断手法と呼ぶ。なお、出力素子１２、出力指示線２１、および出力信号線２２は、入出力回路のうちの出力回路に相当し、分岐線２２ａは、入出力回路のうちの入力回路に相当する。
【０００６】
出力素子１２は、テスト出力信号としてパルス信号Ｐを発信する。符号Ｈはパルス信号Ｐのハイ状態を示し、この場合のパルス信号Ｐの値は１である。符号Ｌはパルス信号Ｐのロー状態を示し、この場合のパルス信号Ｐの値は０である。ＭＰＵ１１は、パルス信号Ｐがテスト出力指示信号の指示通りに変化しているか否かを確認することで、入出力回路が正常状態または異常状態であると診断する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−１７２１８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
テストパターン診断手法では、出力信号の状態を、本来の状態とは異なる状態に一時的に変化させる。例えば、出力信号の本来の状態がロー状態である場合に、出力信号の状態をロー状態からハイ状態に変化させる。その結果、テスト出力信号として上述のパルス信号Ｐが出力される。しかしながら、テスト出力信号の変化が、制御対象２の動作に影響を及ぼすことは望ましくない。そのため、テスト出力信号の変化時間は、制御対象２の応答時間よりも十分に短くする必要がある。これにより、制御対象２がテスト出力信号に反応する前に、出力信号の状態を本来の状態に戻すことが可能になる。
【０００９】
しかしながら、従来のテストパターン診断手法では、ＭＰＵ１１が、テスト出力指示信号を出力し、かつフィードバックされたテスト出力信号を処理している。よって、テスト出力信号の変化時間が、ＭＰＵ１１の処理速度により制約される。そのため、ＭＰＵ１１に診断以外の大きな処理負荷が掛かっていると、ＭＰＵ１１が、十分な速度でテスト出力信号を変化させられない場合がある。また、フィードバックされたテスト出力信号の検出漏れが生じないように、テスト出力信号の変化時間を長く取らざるを得ない場合がある。よって、制御対象２の動作に影響を及ぼさずにテスト出力信号を変化させることは難しいことが問題となる。一方、仮にＭＰＵ１１以外の機器がテスト出力指示信号の出力やテスト出力信号の処理を行うとすると、診断の実施の有無や入出力回路の故障をＭＰＵ１１が把握できないことが問題となる。
【００１０】
そこで、本発明は、回路の異常を迅速かつ適切に診断することが可能な入出力診断装置を提供することを課題とする。
【課題を解決するための手段】
【００１１】
一の実施形態によれば、入出力診断装置は、ソフトウェアを実行するプロセッサと、前記プロセッサと異なるハードウェアで構成され、回路の異常診断用のテスト出力指示信号を発行するテスト信号発行部とを備える。前記装置はさらに、前記テスト出力指示信号を受信し、前記テスト出力指示信号の値に応じた値を保持するテスト出力信号を出力する出力素子と、前記プロセッサと異なるハードウェアで構成され、前記テスト出力信号を受信し、前記テスト出力信号の値に応じた値を保持する入力値信号を出力する入力処理部とを備える。前記装置はさらに、前記テスト出力指示信号を受信し、前記テスト出力指示信号に応じて変化する第１信号を前記プロセッサに供給する第１信号供給部と、前記入力値信号を受信し、前記入力値信号に応じて変化する第２信号を前記プロセッサに供給する第２信号供給部とを備える。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態の入出力診断装置の構成を示すブロック図である。
【図２】第１実施形態の入出力診断装置の動作を示すタイミングチャートである。
【図３】第１実施形態のラッチ信号について説明するための表である。
【図４】第１実施形態のラッチ信号について説明するための表である。
【図５】第２実施形態の入出力診断装置の構成を示すブロック図である。
【図６】第２実施形態の入出力診断装置での波形設定を説明するための図である。
【図７】第３実施形態の入出力診断装置での波形設定を説明するための図である。
【図８】第４実施形態の入出力診断装置の構成を示すブロック図である。
【図９】第４実施形態の入出力診断装置の動作を示すフローチャートである。
【図１０】第４実施形態の入出力診断装置の動作を示すフローチャートである。
【図１１】第５実施形態の入出力診断装置の構成を示すブロック図である。
【図１２】第５実施形態の入出力診断装置の動作を示すタイミングチャートである。
【図１３】第６実施形態の入出力診断装置の構成を示すブロック図である。
【図１４】第６実施形態の入出力診断装置の動作を示すタイミングチャートである。
【図１５】第６実施形態の入出力診断装置の動作を示すタイミングチャートである。
【図１６】第７実施形態の入出力診断装置の構成を示すブロック図である。
【図１７】従来の入出力診断装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を、図面を参照して説明する。
【００１４】
図１〜図１７において、同一または類似の構成要素には同一の符号を付し、各構成要素についての重複する説明は省略する。
【００１５】
（第１実施形態）
図１は、第１実施形態の入出力診断装置１の構成を示すブロック図である。
【００１６】
図１の入出力診断装置１は、ソフトウェアを実行するプロセッサの例であるＭＰＵ１１と、出力素子１２と、テスト信号発行部１３と、入力処理部１４と、第１信号供給部の例である出力ラッチ部１５と、第２信号供給部の例である入力ラッチ部１６と、出力指示線２１と、出力信号線２２と、入力値信号線２３と、診断関連信号線２４と、出力ラッチ信号線２５と、入力ラッチ信号線２６とを備えている。図１はさらに、ＭＰＵ１１内のチェック部１１ａと、出力指示線２１から分岐した分岐線２１ａと、出力信号線２２から分岐した分岐線２２ａと、入力値信号線２３から分岐した分岐線２３ａとを示している。図１の入出力診断装置１は、制御対象２を制御することや、入出力診断装置１の入出力回路の故障（異常）を診断することが可能である。
【００１７】
ＭＰＵ１１は、入出力診断装置１の種々の動作を制御する。出力素子１２は、制御対象２を制御するための出力信号を出力する。出力信号は、入出力診断装置１の外部へと出力され、制御対象２に供給される。
【００１８】
本実施形態では、テスト信号発行部１３と入力処理部１４が、入出力回路の故障診断に関する処理（入出力診断処理）を実行する。テスト信号発行部１３は、ＭＰＵ１１と異なるハードウェアで構成されており、ＭＰＵ１１とは時間的に独立して動作する。同様に、入力処理部１４は、ＭＰＵ１１と異なるハードウェアで構成されており、ＭＰＵ１１とは時間的に独立して動作する。よって、ＭＰＵ１１が種々の処理を実行している間に、テスト信号発行部１３と入力処理部１４は、入出力診断処理を実行することができる。
【００１９】
テスト信号発行部１３や入力処理部１４の例は、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）のようなプログラム可能な論理回路や、ＭＰＵ１１よりも高速で処理を実行可能な別のＭＰＵである。テスト信号発行部１３、入力処理部１４、出力ラッチ部１５、および入力ラッチ部１６は、ＭＰＵ１１とは異なるハードウェア部品１７上に設けられている。テスト信号発行部１３、入力処理部１４、出力ラッチ部１５、および入力ラッチ部１６は、同じハードウェア部品１７上に設けられていてもよいし、異なるハードウェア部品１７上に設けられていてもよい。
【００２０】
本実施形態のテスト出力指示信号は、ＭＰＵ１１からではなく、テスト信号発行部１３から発行される。テスト出力指示信号は、出力指示線２１を介して出力素子１２に供給される。出力素子１２は、テスト出力指示信号を受信すると、テスト出力指示信号の値に応じた値を保持するテスト出力信号を出力する。
【００２１】
そして、本実施形態のテスト出力信号は、ＭＰＵ１１にではなく、入力処理部１４にフィードバックされる。テスト出力信号は、出力信号線２２を介して制御対象２に供給されると共に、分岐線２２ａを介して入力処理部１４にフィードバックされる。入力処理部１４は、テスト出力信号を受信すると、テスト出力信号の値に応じた値を保持する入力値信号を出力する。
【００２２】
そして、本実施形態の入力値信号は、入力値信号線２３を介して入力処理部１４からテスト信号発行部１３に供給される。テスト信号発行部１３は、入力値信号を受信すると、テスト出力指示信号の値（出力値）と入力値信号の値（入力値）を比較する。テスト信号発行部１３は、テスト出力指示信号の指示通りに入力値信号が変化しているか否かを確認することで、入出力回路が正常状態または異常状態であると診断することができる。例えば、出力値と入力値が一致する場合には、入出力回路は正常であると診断される。一方、出力値と入力値が一致しない場合には、入出力回路に異常が発生していると診断される。
【００２３】
テスト信号発行部１３が入出力診断機能を動作させていない場合には、テスト信号発行部１３は、制御装置としての本来の出力指示信号を発行する。出力指示信号は、出力指示線２１を介して出力素子１２に供給される。一方、テスト信号発行部１３が入出力診断機能を動作させている場合には、テスト信号発行部１３は、出力指示信号の値を一時的に変更してテスト出力指示信号を発行する。テスト出力指示信号は、出力指示線２１を介して出力素子１２に供給されるだけでなく、分岐線２１ａを介して出力ラッチ部１５にも供給される。
【００２４】
出力ラッチ部１５は、テスト出力指示信号を受信すると、テスト出力指示信号の立ち上がりまたは立ち下がりに応じて変化する出力ラッチ信号を出力する。ＭＰＵ１１と出力ラッチ部１５は、出力ラッチ信号線２５により接続されている。出力ラッチ信号は、出力ラッチ信号線２５を介してＭＰＵ１１に供給される。本実施形態の出力ラッチ部１５は、テスト出力信号が立ち下がるごとに、出力ラッチ信号の値を１から０にまたは０から１に反転させる。出力ラッチ信号は、第１信号および第１ラッチ信号の例である。
【００２５】
また、テスト信号発行部１３と入力処理部１４は、入力値信号線２３により接続されている。入力処理部１４は、テスト信号発行部１３がテスト出力指示信号を発行するタイミングを知ることができないため、出力信号を分岐線２２ａから常時受信し、受信した出力信号の値を入力値に変換し、入力値を保持する入力値信号を入力値信号線２３に常時送信している。これにより、テスト信号発行部１３は、出力信号の変化を入力値信号の変化から知ることができる。入力値信号は、入力値信号線２３を介してテスト信号発行部１３に供給されるだけでなく、分岐線２３ａを介して入力ラッチ部１６にも供給される。
【００２６】
入力ラッチ部１６は、入力値信号を受信すると、入力値信号の立ち上がりまたは立ち下がりに応じて変化する入力ラッチ信号を出力する。ＭＰＵ１１と入力ラッチ部１６は、入力ラッチ信号線２６により接続されている。入力ラッチ信号は、入力ラッチ信号線２６を介してＭＰＵ１１に供給される。本実施形態の入力ラッチ部１６は、入力値信号が立ち下がるごとに、入力ラッチ信号の値を１から０にまたは０から１に反転させる。入力ラッチ信号は、第２信号および第２ラッチ信号の例である。
【００２７】
ＭＰＵ１１は、プログラム（ソフトウェア）または電子回路（ハードウェア）により実現されるチェック部１１ａを備えている。チェック部１１ａは、出力ラッチ信号を参照することで、テスト出力指示信号が発行されたか否かを確認する。また、チェック部１１ａは、入力ラッチ信号を参照することで、テスト出力指示信号に応じた入力値信号が出力されたか否かを確認する。これらの確認は、テスト信号発行部１３と入力処理部１４により入出力診断処理が実行されている間に行われてもよいし、入出力診断処理が実行されていない間に行われてもよい。チェック部１１ａはさらに、後述するように、出力ラッチ信号と入力ラッチ信号とを参照することで、入出力診断処理の実施の有無と、入出力回路の故障の有無とを判断することができる。
【００２８】
本実施形態のチェック部１１ａ、出力ラッチ部１５、および入力ラッチ部１６は、入出力診断処理と並行して、入出力診断処理に関する周期的チェックを行う。理由は、入出力診断処理がテスト信号発行部１３と入力処理部１４により実行されるため、チェック部１１ａがこれをチェックしないと、ＭＰＵ１１は入出力診断処理の実施状況を知ることができないためである。
【００２９】
図２は、第１実施形態の入出力診断装置１の動作を示すタイミングチャートである。
【００３０】
図２(ａ)は、本来の出力指示信号を示す。図２(ｂ)は、テスト出力指示信号を示す。図２(ｃ)は、テスト出力信号を示す。図２(ｄ)は、入力値信号を示す。図２(ｅ)は、出力ラッチ信号を示す。図２(ｆ)は、入力ラッチ信号を示す。符号Ｒ１、Ｒ２は、入出力診断処理の実行期間を示す。符号Ｒは、チェック部１１ａが入出力診断処理の実施状況をチェックできる期間を示す。
【００３１】
ここで、入出力診断処理の実行期間Ｒ１について説明する。
【００３２】
テスト信号発行部１３は、入出力診断処理を開始するタイミングが訪れると、パルス状のテスト出力指示信号を出力する（図２(ｂ)）。
【００３３】
出力素子１２は、テスト出力指示信号を受信すると、出力指示を反映したテスト出力信号を出力する（図２(ｃ)）。符号Ａ１で示すように、テスト出力信号の立ち下がりは、出力素子１２等の影響で、テスト出力指示信号の立ち下がりよりも遅延している。同様に、符号Ｂ１で示すように、テスト出力信号の立ち上がりは、出力素子１２等の影響で、テスト出力指示信号の立ち上がりよりも遅延している。なお、本実施形態では、出力信号のハイ状態（高電圧状態）が危険状態であり、出力信号のロー状態（低電圧状態）が安全状態である。
【００３４】
入力処理部１４は、テスト出力信号を受信すると、テスト出力信号の値を入力値に変換し、入力値を保持する入力値信号を出力する（図２(ｄ)）。符号Ｃ１で示すように、入力値信号の立ち下がりは、入力処理部１４等の影響で、テスト出力信号の立ち下がりよりも遅延している。同様に、符号Ｄ１で示すように、入力値信号の立ち上がりは、入力処理部１４等の影響で、テスト出力信号の立ち上がりよりも遅延している。
【００３５】
出力ラッチ部１５は、テスト出力指示信号を受信すると、テスト出力指示信号の立ち下がりに応じて変化する出力ラッチ信号を出力する（図２(ｅ)）。符号Ｅ１は、テスト出力指示信号の立ち下がりに応じて、出力ラッチ信号の値が１から０に反転するタイミングを示している。
【００３６】
入力ラッチ部１６は、入力値信号を受信すると、入力値信号の立ち下がりに応じて変化する入力ラッチ信号を出力する（図２(ｆ)）。符号Ｆ１は、入力値信号の立ち下がりに応じて、入力ラッチ信号の値が１から０に反転するタイミングを示している。
【００３７】
入出力診断装置１は、入出力診断処理の実行期間Ｒ２にも同様に動作する。符号Ｅ２は、テスト出力指示信号の次の立ち下がりに応じて、出力ラッチ信号の値が０から１に反転するタイミングを示している。符号Ｆ２は、入力値信号の次の立ち下がりに応じて、入力ラッチ信号の値が０から１に反転するタイミングを示している。
【００３８】
図３は、第１実施形態のラッチ信号について説明するための表である。図３は、本実施形態の出力ラッチ部１５と入力ラッチ部１６の動作規則を示している。
【００３９】
テスト出力指示信号がハイ状態（Ｈ）である場合、出力ラッチ信号は同じ値を取り続ける。同様に、テスト出力指示信号がロー状態（Ｌ）である場合、出力ラッチ信号は同じ値を取り続ける。また、テスト出力指示信号が立ち上がった場合にも、出力ラッチ信号は同じ値を取り続ける。一方、テスト出力指示信号が立ち下がった場合には、出力ラッチ信号の値は別の値に反転する。これは、入力ラッチ信号でも同様である。
【００４０】
図４は、第１実施形態のラッチ信号について説明するための表である。図４は、本実施形態のチェック部１１ａによるチェック規則を示している。
【００４１】
チェック部１１ａは、期間Ｒにおいて入出力診断処理の実施状況をチェックする際、期間Ｒ１の直前の出力ラッチ信号の値と、期間Ｒ内の出力ラッチ信号の値とを比較すると共に、期間Ｒ１の直前の入力ラッチ信号の値と、期間Ｒ内の入力ラッチ信号の値とを比較する。そのため、チェック部１１ａは、期間Ｒ１より前の出力ラッチ信号と入力ラッチ信号の値を、所定の記憶領域にあらかじめ格納しておく。
【００４２】
以下、期間Ｒ１の直前の出力ラッチ信号の値を、前回の出力ラッチ値と呼び、期間Ｒ内の出力ラッチ信号の値を、今回の出力ラッチ値と呼ぶ。また、期間Ｒ１の直前の入力ラッチ信号の値を、前回の入力ラッチ値と呼び、期間Ｒ内の入力ラッチ信号の値を、今回の入力ラッチ値と呼ぶ。
【００４３】
入出力回路が正常であれば、今回の出力ラッチ値は前回の出力ラッチ値から反転し、かつ、今回の入力ラッチ値は前回の入力ラッチ値から反転するはずである。よって、チェック部１１ａは、今回の出力ラッチ値が反転し、かつ、今回の入力ラッチ値が反転した場合には、入出力回路は正常であると判断する。
【００４４】
一方、入出力回路が故障している場合には、今回の出力ラッチ値が前回の出力ラッチ値から反転しないか、今回の入力ラッチ値が前回の入力ラッチ値から反転しない。よって、チェック部１１ａは、今回の出力ラッチ値と今回の入力ラッチ値の一方のみが反転した場合には、入出力回路が故障していると判断する。
【００４５】
また、テスト信号発行部１３がテスト出力指示信号を発行せず、入出力診断処理が実施されていない場合には、今回の出力ラッチ値は前回の出力ラッチ値から反転せず、かつ、今回の入力ラッチ値は前回の入力ラッチ値から反転しないはずである。よって、チェック部１１ａは、今回の出力ラッチ値が前回の出力ラッチ値と一致し、かつ、今回の入力ラッチ値が前回の入力ラッチ値と一致した場合には、入出力診断処理が実施されていないと判断する。なお、入出力診断処理の不実施は、入出力回路の故障がその原因である場合と、入出力回路の故障以外がその原因である場合とがあり得る。
【００４６】
次に、第１実施形態の入出力診断装置１の利点について説明する。
【００４７】
本実施形態の入出力診断処理は、テスト信号発行部１３と入力処理部１４により実行される。よって、本実施形態の入出力診断処理は、ＭＰＵ１１の処理速度に制約されずに実行することができる。例えば、本実施形態のテスト信号発行部１３は、ＭＰＵ１１が受信不可能なほど高速に変化するテスト出力指示信号を発行することで、入出力診断処理を高速化することができる。
【００４８】
この場合、ＭＰＵ１１が入出力診断処理の実施状況を把握できないことが問題となり得る。例えば、テスト信号発行部１３が故障して入出力診断処理が一切行われなくなった場合、テスト信号発行部１３が診断の不実施を認識することができない。この場合、ＭＰＵ１１が診断の不実施を認識できない可能性がある。しかしながら、本実施形態の入出力診断装置１は、出力ラッチ部１５と入力ラッチ部１６とを備えている。よって、本実施形態のＭＰＵ１１は、出力ラッチ部１５と入力ラッチ部１６とを通じて入出力診断処理の実施状況を把握することができる。
【００４９】
本実施形態のチェック部１１ａは、図２に示すように、入出力診断処理の合間に入出力診断処理の実施状況をチェックする。出力ラッチ信号や入力ラッチ信号はテスト出力指示信号、テスト出力信号、および入力値信号よりもゆっくり変化するため、ＭＰＵ１１の処理速度が遅くても、チェック部１１ａは入出力診断処理の実施状況をチェックすることができる。
【００５０】
以上のように、本実施形態によれば、入出力診断装置１にテスト信号発行部１３、入力処理部１４、出力ラッチ部１５、および入力ラッチ部１６を設けることで、入出力回路の異常を迅速かつ適切に診断することが可能となる。例えば、本実施形態によれば、ＭＰＵ１１の処理速度に制約されない入出力診断処理を行うことや、ＭＰＵ１１が入出力診断処理の実施状況を把握することが可能となる。
【００５１】
なお、出力ラッチ部１５および入力ラッチ部１６は、テスト出力指示信号の値や入力値信号の値をＭＰＵ１１に供給可能な回路であれば、ラッチ回路以外の回路に置き換えてもよい。このような回路の例は、レジスタなどの記憶回路である。
【００５２】
（第２実施形態）
図５は、第２実施形態の入出力診断装置１の構成を示すブロック図である。
【００５３】
図５の入出力診断装置１は、図１に示す構成要素に加えて、ＭＰＵ１１内の波形設定部１１ｂを備えている。また、図５の診断関連信号線２４は、双方向通信が可能なバスとなっている。また、図５は、入出力診断装置１に通信ネットワーク４を介して接続されたパラメータ入力Ｉ／Ｆ（Interface）３を示している。パラメータ入力Ｉ／Ｆ３は、ユーザインタフェースの例である。
【００５４】
本実施形態では、ユーザが、テスト出力指示信号のパラメータをパラメータ入力Ｉ／Ｆ３により入力することができる。パラメータの例は、テスト出力指示信号のパルス方向、パルス幅、およびパルス周期である。波形設定部１１ｂは、パラメータ入力Ｉ／Ｆ３において入力されたパラメータを通信ネットワーク４を介して受信し、受信したパラメータに基づいてテスト出力指示信号の波形を設定する。テスト信号発行部１３は、この設定を診断関連信号線２４を介して受信し、この設定に従ったテスト出力指示信号を発行する。
【００５５】
図６は、第２実施形態の入出力診断装置１での波形設定を説明するための図である。
【００５６】
図６は、テスト出力指示信号の波形を表す。図６は、テスト出力指示信号のパルス方向Ｋ１、パルス幅Ｋ２、およびパルス周期Ｋ３を示している。
【００５７】
パルス方向Ｋ１は、Ｈ値（１）とＬ値（０）のいずれかの値を取る。入出力診断処理では、出力素子１２が安全状態の信号を出力する能力を、パルス出力を用いて確認する。そのため、Ｌ値が安全状態である場合には、パルス方向Ｋ１としてＬ値を設定する必要がある。一方、Ｈ値が安全状態である場合には、パルス方向Ｋ１としてＨ値を設定する必要がある。第１実施形態では、パルス方向Ｋ１がＬ値に固定されていたが、本実施形態では、ユーザがパルス方向Ｋ１を設定することができる。
【００５８】
パルス幅Ｋ２は、テスト出力指示信号におけるパルスの持続時間を示す。ユーザがパルス幅Ｋ２を設定する際、出力信号線２２の電気的特性や、制御対象２の応答時間を考慮して、パルス幅Ｋ２を設定することが望ましい。具体的には、パルス幅Ｋ２は、出力信号線２２の時定数よりも長く、制御対象２の応答時間よりも短い値に設定することが望ましい。
【００５９】
パルス周期Ｋ３は、入出力診断処理の実施周期を示す。パルス周期Ｋ３が長くなると、図２の期間Ｒが長くなるため、チェック部１１ａがチェックを行うことが可能な期間が長くなる。一方、パルス周期Ｋ３が長くなると、入出力回路に故障が発生してから故障が検出されるまでの所要時間が長くなる。
【００６０】
パラメータ入力Ｉ／Ｆ３の例は、ＰＣ（Personal Computer）である。この場合、ユーザは、ＰＣの入力画面上でテスト出力指示信号のパラメータを入力する。パラメータ入力Ｉ／Ｆ３の別の例は、入出力診断装置１に通信ネットワーク４を介して接続された入力ボタンである。この場合、ユーザは、入力ボタンを押してテスト出力指示信号のパラメータを入力する。また、これらの入力画面や入力ボタンは、入出力診断装置１に設けられていてもよい。
【００６１】
次に、第２実施形態の入出力診断装置１の動作について説明する。
【００６２】
波形設定部１１ｂは、入出力診断装置１の起動時と動作中のいずれかのタイミングでパラメータを設定することができる。波形設定部１１ｂは、パラメータ入力Ｉ／Ｆ３から受信したパラメータに基づいて、テスト出力指示信号の波形を設定する。テスト信号発行部１３は、波形設定部１１ｂから新たな設定を受信すると、この設定に従ったテスト出力指示信号をこれ以降発行する。
【００６３】
以上のように、本実施形態のＭＰＵ１１は、ユーザにより入力されたパラメータに基づいてテスト出力指示信号の波形を設定する波形設定部１１ｂを備えている。一方、テスト出力信号は、前述の通り、制御対象２の動作に影響を及ぼさない波形を取ることが望ましい。本実施形態によれば、テスト出力信号にこのような波形を与えるテスト出力指示信号を、ユーザがパラメータ入力Ｉ／Ｆ３にて設定することが可能となる。
【００６４】
（第３実施形態）
図７は、第３実施形態の入出力診断装置１での波形設定を説明するための図である。
【００６５】
図７(ａ)は、テスト信号発行部１３から出力されるテスト出力指示信号を示す。図７(ｂ)は、入力処理部１４に入力されるテスト出力信号を示す。図７(ｃ)は、テスト信号発行部１３に入力される入力値信号を示す。なお、本実施形態の入出力診断装置１は、第２実施形態の入出力診断装置１と同じ構成要素を備えている（図５参照）。
【００６６】
符号Ｔ１、Ｔ２は、テスト信号発行部１３がテスト出力指示信号の値と入力値信号の値とを照合する照合タイミングの例を示す。符号Ｔ１は、パルス発生中における照合タイミングを示す。符号Ｔ２は、パルス終了後における照合タイミングを示す。
【００６７】
本実施形態では、ユーザが照合タイミングをパラメータ入力Ｉ／Ｆ３において設定することができる。波形設定部１１ｂは、照合タイミングに関する設定情報をパラメータ入力Ｉ／Ｆ３から受信すると、この設定情報に基づいて照合タイミングを設定する。テスト信号発行部１３は、この設定を診断関連信号線２４を介して受信し、テスト出力指示信号の値と入力値信号の値をこの設定に従って照合する。
【００６８】
符号Ａ１で示すように、テスト出力信号の立ち下がりは、出力指示線２１、出力素子１２、および出力信号線２２の影響で、テスト出力指示信号の立ち下がりよりも遅延している。同様に、符号Ｂ１で示すように、テスト出力信号の立ち上がりは、出力指示線２１、出力素子１２、および出力信号線２２の影響で、テスト出力指示信号の立ち上がりよりも遅延している。符号ａ１、ｂ１はそれぞれ、テスト出力信号の立ち下がりと立ち上がりの遅れ時間を示している。これらの遅れ時間は、出力素子１２の応答時間遅れと、出力指示線２１および出力信号線２２の時定数による遅れとに起因している。
【００６９】
また、符号Ｃ１で示すように、入力値信号の立ち下がりは、入力処理部１４や入力値信号線２３の影響で、テスト出力信号の立ち下がりよりも遅延している。同様に、符号Ｄ１で示すように、入力値信号の立ち上がりは、入力処理部１４や入力値信号線２３の影響で、テスト出力信号の立ち上がりよりも遅延している。符号ｃ１、ｄ１はそれぞれ、入力値信号の立ち下がりと立ち上がりの遅れ時間を示している。これらの遅れ時間は、上述の遅れに加え、入力処理部１４の応答時間遅れと、入力値信号線２３の時定数による遅れとに起因している。
【００７０】
これらの遅れに関し、出力素子１２と入力処理部１４による遅れ時間は、温度による変動はあるものの、おおむね一定の値を取る。一方、出力指示線２１、出力信号線２２、および入力値信号線２３による遅れ時間は、信号線の長さ、構造、配置による特性の影響を受け、一定の値を取らない。
【００７１】
よって、テスト信号発行部１３がテスト出力指示信号の値と入力値信号の値とを照合する際には、これらの遅れにより不具合が起こらないタイミングに両信号の値を照合する必要がある。そのため、両信号の値を照合可能なタイミングは、符号Ｔ１、Ｔ２で示すような特定の期間内に限定される。よって、ユーザが照合タイミングをパラメータ入力Ｉ／Ｆ３において設定する際には、照合タイミングが特定の期間内に入るように設定を行うことが求められる。
【００７２】
次に、第３実施形態の入出力診断装置１の動作について説明する。
【００７３】
波形設定部１１ｂは、入出力診断装置１の起動時と動作中のいずれかのタイミングで照合タイミングを設定することができる。波形設定部１１ｂは、パラメータ入力Ｉ／Ｆ３から受信した照合タイミングの設定情報に基づいて、照合タイミングを設定する。設定情報の例は、照合タイミングを特定するパラメータである。テスト信号発行部１３は、波形設定部１１ｂから新たな設定を受信すると、これ以降、この設定に従った照合タイミングにテスト出力指示信号の値と入力値信号の値とを照合する。
【００７４】
以上のように、本実施形態の波形設定部１１ｂは、ユーザにより入力された設定情報に基づいてこれらの信号の値の照合タイミングを設定する。よって、本実施形態によれば、入出力回路の遅れ特性に合わせて照合タイミングを設定することが可能となり、入出力回路の異常を正確に診断することが可能となる。
【００７５】
（第４実施形態）
図８は、第４実施形態の入出力診断装置１の構成を示すブロック図である。
【００７６】
図８の入出力診断装置１は、図１に示す構成要素に加えて、ＭＰＵ１１内の許可信号発行部１１ｃを備えている。また、図８の診断関連信号線２４は、双方向通信が可能なバスとなっている。
【００７７】
許可信号発行部１１ｃは、テスト信号発行部１３にテスト出力指示信号の発行許可を送信する。発行許可は、診断関連信号線２４を介してテスト信号発行部１３に入力される。テスト信号発行部１３は、許可信号発行部１１ｃから発行許可を受信した場合に限り、テスト出力指示信号を発行する。このように、本実施形態では、入出力診断処理の実行タイミングをＭＰＵ１１が制御する。
【００７８】
図９および図１０は、第４実施形態の入出力診断装置１の動作を示すフローチャートである。
【００７９】
図９は、ＭＰＵ１１の動作を示している。ＭＰＵ１１は、通常処理の実施中に、テスト出力指示信号の発行許可を含む許可信号を発行する（ステップＳ１１、Ｓ１２）。許可信号は、診断関連信号線２４を介してテスト信号発行部１３に入力される。その後、ＭＰＵ１１は、診断終了フラグが立っていることを確認するまで通常処理を継続する（ステップＳ１３、Ｓ１４）。ＭＰＵ１１は、診断終了フラグが立っていることを確認すると、許可信号を停止して、入出力診断処理の実施状況をチェックする（ステップＳ１５、Ｓ１６）。その後、ＭＰＵ１１は、通常処理を再開する（ステップＳ１１）。
【００８０】
図１０は、テスト信号発行部１３の動作を示している。テスト信号発行部１３は、許可信号を受信するまで診断を待機している（ステップＳ２１、Ｓ２２）。テスト信号発行部１３は、許可信号を受信すると、診断終了フラグを下げて、入出力診断処理を実施する（ステップＳ２３、Ｓ２４）。テスト信号発行部１３は、入出力診断処理が終了したら、診断終了フラグを立てて、再び診断を待機する（ステップＳ２５、Ｓ２１）。
【００８１】
なお、本実施形態の診断終了フラグの情報は、テスト信号発行部１３内に格納される。ＭＰＵ１１は、診断終了フラグの情報を、テスト信号発行部１３からプル型の通信により取得してもよいし、テスト信号発行部１３からプッシュ型の通信により取得してもよい。
【００８２】
以上のように、本実施形態では、入出力診断処理と入出力診断チェックとが交互に実行される。第１実施形態では、ＭＰＵ１１からの許可によらずに入出力診断処理が実行されるため、ＭＰＵ１１は図２の期間Ｒを制御することができず、ＭＰＵ１１が入出力診断チェックを行う期間が制限される。一方、本実施形態では、ＭＰＵ１１からの許可がなければ入出力診断処理が実行されないため、ＭＰＵ１１が所望のタイミングで入出力診断チェックを行うことが可能となる。
【００８３】
（第５実施形態）
図１１は、第５実施形態の入出力診断装置１の構成を示すブロック図である。
【００８４】
図１１の入出力診断装置１は、図１に示す構成要素に加えて、ＭＰＵ１１ａ内の微小パルス命令部１１ｄと、テスト信号発行部１３内の微小パルス発行部１３ｄとを備えている。また、図１１の診断関連信号線２４は、双方向通信が可能なバスとなっている。
【００８５】
出力指示線２１や入力値信号線２３に一時的なノイズが混入すると、入出力回路が故障していないにもかかわらず、出力ラッチ信号の値と入力ラッチ信号の値が一致しない場合がある。
【００８６】
この場合、微小パルス命令部１１ｄは、微小パルス発行部１３ｄに対して、テスト出力信号の値に変化を与えないパルス幅のパルス信号（微小パルス）の発行を命令する。この命令は、診断関連信号線２４を介してテスト信号発行部１３に入力される。微小パルス発行部１３ｄは、この命令に応じてテスト出力指示信号として微小パルスを発行する。出力素子１２がこの微小パルスを受信しても、テスト出力信号の値は変化しない。よって、この場合には、出力ラッチ信号の値は反転するが、入力ラッチ信号の値は反転しない。その結果、出力ラッチ信号の値と入力ラッチ信号の値との不一致が解消される。
【００８７】
図１２は、第５実施形態の入出力診断装置１の動作を示すタイミングチャートである。
【００８８】
図１２(ａ)は、微小パルスの発行命令信号を示す。図１２(ｂ)は、テスト出力指示信号を示す。図１２(ｃ)は、テスト出力信号を示す。図１２(ｄ)は、入力値信号を示す。図１２(ｅ)は、出力ラッチ信号を示す。図１２(ｆ)は、入力ラッチ信号を示す。
【００８９】
符号Ｓ１は、出力ラッチ信号の値と入力ラッチ信号の値が一致していない期間を示している。微小パルス命令部１１ｄは、両信号の値の不一致を観測し、かつ、この不一致が入出力回路の故障によるものではない場合、符号ＡＰで示すように微小パルスの発行命令を出力する。微小パルス発行部１３ｄは、この発行命令を受信すると、符号ＢＰで示すようにテスト出力指示信号として微小パルスを発行する。本実施形態の微小パルスは、出力素子１２の出力状態が変化せず、出力ラッチ部１５が応答するような短いパルス幅を有している。
【００９０】
よって、出力素子１２が微小パルスを受信しても、符号ＣＰで示すようにテスト出力信号の値は変化しない。その結果、符号ＤＰで示すように入力値信号の値も変化せず、符号ＦＰで示すように入力ラッチ信号の値も変化しない。一方、出力ラッチ部１５は微小パルスに反応し、符号ＥＰで示すように出力ラッチ信号の値を反転させる。その結果、出力ラッチ信号の値と入力ラッチ信号の値との不一致が解消される。符号Ｓ２は、両信号の値が一致している期間を示している。
【００９１】
以上のように、本実施形態の入出力診断装置１は、微小パルス命令部１１ｄと微小パルス発行部１３ｄとを備えている。よって、本実施形態の入出力診断装置１は、出力ラッチ信号の値と入力ラッチ信号の値が故障以外の原因で一致しない場合に、制御対象２の動作に影響を与えずに両信号の値の不一致を解消することができる。
【００９２】
（第６実施形態）
図１３は、第６実施形態の入出力診断装置１の構成を示すブロック図である。
【００９３】
図１３の入出力診断装置１は、図１に示す構成要素に加えて、テスト信号発行部１３と入力処理部１４とを接続する通知信号線２７を備えている。通知信号線２７は、テスト信号発行部１３から入力処理部１４にテスト出力信号の入力タイミングを通知するために使用される。
【００９４】
本実施形態の入力処理部１４は、テスト信号発行部１３がテスト出力指示信号を発行するタイミングは知ることができない。しかしながら、本実施形態の入力処理部１４は、通知信号線２７からの通知により、分岐線２２ａからテスト出力信号を取り込むべきタイミングは知ることができる。
【００９５】
入力処理部１４は、通知信号線２７がテスト信号発行部１３によりアクティブ状態に設定されているときには、テスト出力信号を取り込み、取り込んだテスト出力信号の値を入力値に変換し、この入力値を保持する入力値信号を出力する。アクティブ状態の例は、通知信号線２７上の信号のハイ状態である。
【００９６】
また、入力処理部１４は、通知信号線２７がテスト信号発行部１３により非アクティブ状態に設定されているときには、テスト出力信号を取り込まず、通知信号線２７がアクティブ状態だったときの入力値を保持する入力値信号を出力し続ける。非アクティブ状態の例は、通知信号線２７上の信号のロー状態である。
【００９７】
テスト信号発行部１３が入力処理部１４にテスト出力信号の取り込みを指示する指示方法は、エッジ指示方法でもレベル指示方法でもよい。以下、図１４と図１５を参照して、これらの指示方法について説明する。
【００９８】
図１４は、第６実施形態の入出力診断装置１の動作を示すタイミングチャートである。
【００９９】
図１４では、テスト出力信号の取り込みがエッジ指示方法により指示される。図１４(ａ)は、通知信号線２７の状態を示す。図１４(ｂ)は、入力値信号線２３の状態を示す。
【０１００】
エッジ指示方法の場合、テスト信号発行部１３は、テスト出力指示を出すごとに、通知信号線２７にパルス状のアクティブ信号を送出する。そして、入力処理部１４は、通知信号線２７がアクティブ状態に変化した時点でのテスト出力信号の値を保持する入力値信号を出力する。
【０１０１】
例えば、Ｍ１の時点で通知信号線２７がアクティブ状態に変化すると、入力処理部１４は、Ｍ１の時点でのテスト出力信号の値を検出し、この値を保持する入力値信号を出力し続ける。入力値信号の値は、Ｍ１からＭ２までの期間Ｎ１の間、この値に維持される。さらに、Ｍ２の時点で通知信号線２７が再びアクティブ状態に変化すると、入力処理部１４は、Ｍ２の時点でのテスト出力信号の値を検出し、この値を保持する入力値信号を出力し続ける。このように、エッジ指示方法の場合の入力処理部１４は、通知信号線２７上の信号の立ち上がりエッジに応じて動作する。
【０１０２】
図１５は、第６実施形態の入出力診断装置１の動作を示すタイミングチャートである。
【０１０３】
図１５では、テスト出力信号の取り込みがレベル指示方法により指示される。図１５(ａ)は、通知信号線２７の状態を示す。図１５(ｂ)は、入力値信号線２３の状態を示す。
【０１０４】
レベル指示方法の場合、テスト信号発行部１３は、テスト出力指示を出すごとに、通知信号線２７に一定期間継続するアクティブ信号を送出する。そして、入力処理部１４は、通知信号線２７がアクティブ状態を維持している間、テスト出力信号の最新の値を保持する入力値信号を出力し続ける。
【０１０５】
例えば、Ｍ１の時点で通知信号線２７がアクティブ状態に変化すると、入力処理部１４は、Ｍ１の時点でのテスト出力信号の値を検出し、この値を保持する入力値信号を出力する。その後、テスト出力信号の値が例えば０から１に変化すると、入力処理部１４は、入力値信号の値も０から１に変化させる。このように、入力処理部１４は、Ｍ１からＭ２までの期間Ｎ１の間、テスト出力信号の最新の値を保持する入力値信号を出力し続ける。すなわち、入力処理部１４は、テスト出力信号の値が変化するごとに、入力値信号の値を変化させる。一方、Ｍ２の時点で通知信号線２７が非アクティブ状態に変化すると、入力処理部１４は、Ｍ２の時点での入力値信号の値を次のアクティブ状態まで維持する。このように、レベル指示方法の場合の入力処理部１４は、通知信号線２７上の信号のレベルに応じて動作する。
【０１０６】
次に、第６実施形態の入出力診断装置１の動作について説明する。
【０１０７】
出力信号線２２は入出力診断装置１の外部にまで延びているため、テスト出力信号にはノイズが乗る可能性が高い。そのため、入力処理部１４がテスト出力信号を常時取り込むと、入出力診断処理や入出力診断チェックがノイズの影響を受ける可能性が高くなる。
【０１０８】
そこで、本実施形態の入力処理部１４は、通知信号線２７により規定されるタイミングのみにテスト出力信号を取り込む。よって、本実施形態によれば、テスト出力信号のノイズによる入出力診断処理や入出力診断チェックの誤りを低減することが可能となる。
【０１０９】
（第７実施形態）
図１６は、第７実施形態の入出力診断装置１の構成を示すブロック図である。
【０１１０】
図１６の入出力診断装置１は、図１に示す構成要素に加えて、ＭＰＵ１１内の比較部１１ｅと、テスト信号発行部１３内の出力値バッファ部１３ｅと、入力処理部１４内の入力値バッファ部１４ｅとを備えている。図１６はさらに、診断関連信号線２４から分岐した分岐線２４ａを示している。分岐線２４ａは、入力処理部１４に接続されている。
【０１１１】
本実施形態のテスト信号発行部１３は、テスト出力指示信号の値（出力値）の時系列データを出力値バッファ部１３ｅ内にバッファリングする。また、本実施形態の入力処理部１４は、入力値信号の値（入力値）の時系列データを入力値バッファ部１４ｅ内にバッファリングする。
【０１１２】
比較部１１ｅは、出力値バッファ部１３ｅから診断関連信号線２４を介して出力値の時系列データを取得し、入力値バッファ部１４ｅから診断関連信号線２４とその分岐線２４ａとを介して入力値の時系列データを取得する。そして、比較部１１ｅは、出力値と入力値を比較して、出力値と入力値が一致するか否かを判定する。この際、比較部１１ｅは、出力値および入力値の時系列データから同じ時点の出力値と入力値を選択してこれらの値を比較してもよいし、出力値および入力値の時系列データから互いに近い時点の出力値と入力値を選択してこれらの値を比較してもよい。
【０１１３】
比較部１１ｅは、テスト出力指示信号の指示通りに入力値信号が変化しているか否かを確認することで、入出力回路が正常状態または異常状態であると診断することができる。例えば、出力値と入力値が一致する場合には、入出力回路は正常であると診断される。一方、出力値と入力値が一致しない場合には、入出力回路に異常が発生していると診断される。このように、本実施形態のＭＰＵ１１は、テスト信号発行部１３および入力診断部１４と同様に、入出力回路の異常を診断する入出力診断処理を行うことができる。
【０１１４】
なお、本実施形態の比較部１１ｅは、テスト信号発行部１３および入力診断部１４による入出力診断処理とは非同期に、時系列データによる入出力診断処理を行う。すなわち、比較部１１ｅによる入出力診断処理は、テスト信号発行部１３および入力診断部１４による入出力診断処理の合間に行われる。
【０１１５】
次に、第７実施形態の入出力診断装置１の動作について説明する。
【０１１６】
本実施形態の出力値バッファ部１３ｅと入力値バッファ部１４ｅは、一種のリングバッファとして機能する。よって、出力値バッファ部１３ｅに最新の履歴データ（出力値）を保存する際、出力値バッファ１３ｅ内の最も古い履歴データは削除される。また、入力値バッファ部１４ｅに最新の履歴データ（入力値）を保存する際、入力値バッファ１４ｅ内の最も古い履歴データは削除される。テスト信号発行部１３および入力処理部１４による入出力診断処理の実行中に、テスト信号発行部１３は、最新の履歴データを出力値バッファ部１３ｅ内に上書き保存し、入力処理部１４は、最新の履歴データを入力値バッファ部１４ｅ内に上書き保存する。こうして、出力値バッファ部１３ｅおよび入力値バッファ部１４ｅ内の時系列データが更新される。
【０１１７】
比較部１１ｅによる入出力診断処理は、テスト出力指示信号の発行タイミングとは無関係に、ＭＰＵ１１の処理負荷の軽いタイミングで実施される。比較部１１ｅは、出力値バッファ部１３ｅおよび入力値バッファ部１４ｅから全部または一部の時系列データを読み出し、読み出した出力値と入力値とを比較する。
【０１１８】
本実施形態では、比較部１１ｅが出力値バッファ部１３ｅを読み出している間に出力値バッファ部１３ｅの更新を開始せず、比較部１１ｅが入力値バッファ部１４ｅを読み出している間に出力値バッファ部１３ｅの更新を開始しない排他処理を行う。理由は、時系列データの読み出しと更新との衝突を避けるためである。これにより、比較部１１ｅによる入出力診断処理を、テスト信号発行部１３および入力診断部１４による入出力診断処理と非同期に行うことが可能となる。
【０１１９】
以上のように、本実施形態のＭＰＵ１１は、時系列データによる入出力診断処理を行う比較部１１ｅを備えている。よって、本実施形態によれば、ＭＰＵ１１が入出力回路の異常に関してより高精度な情報を把握することが可能となる。
【０１２０】
以上、いくつかの実施形態を説明したが、これらの実施形態は、例としてのみ提示したものであり、発明の範囲を限定することを意図したものではない。本明細書で説明した新規な装置は、その他の様々な形態で実施することができる。また、本明細書で説明した装置の形態に対し、発明の要旨を逸脱しない範囲内で、種々の省略、置換、変更を行うことができる。添付の特許請求の範囲およびこれに均等な範囲は、発明の範囲や要旨に含まれるこのような形態や変形例を含むように意図されている。
【符号の説明】
【０１２１】
１：制御装置（入出力診断装置）、２：制御対象、
３：パラメータ入力Ｉ／Ｆ、４：通信ネットワーク、
１１：ＭＰＵ、１１ａ：チェック部、１１ｂ：波形設定部、
１１ｃ：許可信号発行部、１１ｄ：微小パルス命令部、１１ｅ：比較部、
１２：出力素子、１３：テスト信号発行部、
１３ｄ：微小パルス発行部、１３ｅ：出力値バッファ部、
１４：入力処理部、１４ｅ：入力値バッファ部、
１５：出力ラッチ部、１６：入力ラッチ部、１７：ハードウェア部品、
２１：出力指示線、２１ａ：分岐線、２２：出力信号線、２２ａ：分岐線、
２３：入力値信号線、２３ａ：分岐線、２４：診断関連信号線、２４ａ：分岐線、
２５：出力ラッチ信号線、２６：入力ラッチ信号線、２７：通知信号線
【図１】
2017085274.tif 000003
【図２】
2017085274.tif 000004
【図３】
2017085274.tif 000005
【図４】
2017085274.tif 000006
【図５】
2017085274.tif 000007
【図６】
2017085274.tif 000008
【図７】
2017085274.tif 000009
【図８】
2017085274.tif 000010
【図９】
2017085274.tif 000011
【図１０】
2017085274.tif 000012
【図１１】
2017085274.tif 000013
【図１２】
2017085274.tif 000014
【図１３】
2017085274.tif 000015
【図１４】
2017085274.tif 000016
【図１５】
2017085274.tif 000017
【図１６】
2017085274.tif 000018
【図１７】
2017085274.tif 000019