(57)【要約】【課題】制御部に異常が発生した場合でも、記憶部に記憶された情報を確認することで、情報処理装置内で発生した異常の原因を特定できる情報処理装置を提供する。【解決手段】実施形態の情報処理装置は、ハードウェアと、制御部と、検知部と、切断部と、診断部と、処理部と、を備える。制御部は、ハードウェアと通信可能に接続され、入力された第１リセット信号に応じて起動する起動処理と、ハードウェアの異常を検知しかつハードウェアの異常の検知結果を第１記憶部に記録する第１処理とを実行する。検知部は、制御部の異常を検知する処理を実行し、制御部の異常を検知した場合、制御部に第１処理を実行させる。切断部は、制御部の異常が検知されかつ制御部によって第１処理が実行されない場合、ハードウェアと制御部との接続を切断する。診断部は、ハードウェアと制御部との接続が切断された場合、ハードウェアの異常を検知する第２処理を実行する。処理部は、第２処理の結果を第２記憶部に記録する第３処理を実行する。【選択図】図１
2016181055.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアと、
前記ハードウェアと通信可能に接続され、入力された第１リセット信号に応じて起動する起動処理と、前記ハードウェアの異常を検知しかつ前記ハードウェアの異常の検知結果を第１記憶部に記録する第１処理とを実行する制御部と、
前記制御部の異常を検知する処理を実行し、前記制御部の異常を検知した場合、前記制御部に前記第１処理を実行させる検知部と、
前記制御部の異常が検知されかつ前記制御部によって前記第１処理が実行されない場合、前記ハードウェアと前記制御部との接続を切断する切断部と、
前記ハードウェアと前記制御部との接続が切断された場合、前記ハードウェアの異常を検知する第２処理を実行する診断部と、
前記第２処理の結果を第２記憶部に記録する第３処理を実行する処理部と、
を備えた情報処理装置。
【請求項２】
前記ハードウェアを再起動させるリセット部と、
前記第２処理によって前記ハードウェアの異常が検知されなかった場合、前記リセット部を制御して前記ハードウェアを再起動させる再起動部と、
をさらに備えた請求項１に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置に関する。
【背景技術】
【０００２】
プラントのコントローラ等の情報処理装置に組み込まれるＣＰＵ（Central  Processing  Unit）等の制御部は、リセット回路からのリセット信号を解除して起動した後、不揮発性メモリからプログラムを読み出し、当該読み出したプログラムを作業用のメモリに展開して、ハードウェアの制御等の各種動作を実行する。また、情報処理装置は、制御部の異常を検知し、制御部に対して割り込み信号を出力するウォッチドックタイマを有している。制御部は、ウォッチドックタイマから割り込み信号が入力されると、ハードウェアに対して診断処理を実行し、当該診断処理の結果を不揮発性メモリに記録する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１２４１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、リセット回路から制御部に入力されるリセット信号に一時的なノイズが重畳されて制御部に異常が発生した場合、制御部は、ウォッチドックタイマから割り込み信号が入力される前にダウンしてしまい、診断処理および当該診断処理の結果の記録を行うことができない。この場合、情報処理装置を再起動後に不揮発性メモリに記憶された診断処理の結果を読み出そうとしても、診断処理の結果が記憶されていないため、情報処理装置が異常終了した原因を特定することが難しい。
【課題を解決するための手段】
【０００５】
実施形態の情報処理装置は、ハードウェアと、制御部と、検知部と、切断部と、診断部と、処理部と、を備える。制御部は、ハードウェアと通信可能に接続され、入力された第１リセット信号に応じて起動する起動処理と、ハードウェアの異常を検知しかつハードウェアの異常の検知結果を第１記憶部に記録する第１処理とを実行する。検知部は、制御部の異常を検知する処理を実行し、制御部の異常を検知した場合、制御部に第１処理を実行させる。切断部は、制御部の異常が検知されかつ制御部によって第１処理が実行されない場合、ハードウェアと制御部との接続を切断する。診断部は、ハードウェアと制御部との接続が切断された場合、ハードウェアの異常を検知する第２処理を実行する。処理部は、第２処理の結果を第２記憶部に記録する第３処理を実行する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態にかかるコントローラの機能構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態にかかるコントローラが有するログ記録用不揮発性メモリの構成の一例を示す図である。
【図３】図３は、第１の実施形態にかかるコントローラにおける第１ログ記録処理の流れの一例を示すフローチャートである。
【図４】図４は、第１の実施形態にかかるコントローラにおけるハードウェア診断処理および第２ログ記録処理の流れの一例を示すフローチャートである。
【図５】図５は、第２の実施形態にかかるコントローラの機能構成の一例を示すブロック図である。
【発明を実施するための形態】
【０００７】
以下、添付の図面を用いて、本実施形態にかかる情報処理装置について説明する。以下の説明では、本実施形態にかかる情報処理装置を、プラントの制御対象機器（例えば、バルブ、モータなど）を制御するコントローラ（制御装置）に適用した例について説明するが、ハードウェアを制御するＣＰＵ（Central  Processing  Unit）等の制御部を備える装置であれば、コントローラ以外の装置にも適用することが可能である。
【０００８】
（第１の実施形態）
図１は、第１の実施形態にかかるコントローラの機能構成の一例を示すブロック図である。図１に示すように、本実施形態にかかるコントローラは、ＣＰＵ１０と、ハードウェアデバイス１１と、第１リセット回路１２と、ウォッチドックタイマ１３と、ゲート回路１４と、ハードウェア診断回路１５と、ログ記録回路１６と、起動ボタン１７と、を有している。
【０００９】
起動ボタン１７は、コントローラのオペレータによって押下されると、後述する第１リセット回路１２に対して、コントローラの起動を指示する起動信号を出力する。第１リセット回路１２（第１リセット部の一例）は、起動ボタン１７がオペレータによって押下されて、起動信号が入力されると、ＣＰＵ１０およびハードウェアデバイス１１に対して、起動処理の実行する指示するリセット信号（第１リセット信号の一例）を出力する。
【００１０】
ハードウェアデバイス１１は、動作用メモリ１１ａ、プログラム格納用不揮発性メモリ１１ｂ、ログ記録用不揮発性メモリ１１ｃ、イーサネット（登録商標）インタフェースＩＣ１１ｄ等の複数のハードウェアを含む（以下、動作用メモリ１１ａ、プログラム格納用不揮発性メモリ１１ｂ、ログ記録用不揮発性メモリ１１ｃ、イーサネットインタフェースＩＣ１１ｄを区別する必要がない場合には、単に、ハードウェアと記載する）。ハードウェアデバイス１１が有するハードウェアは、第１リセット回路１２からリセット信号が入力されると、起動処理を実行する。
【００１１】
動作用メモリ１１ａは、ＣＰＵ１０が各種プログラムを実行する際の作業領域として使用される。本実施形態では、動作用メモリ１１ａは、当該動作用メモリ１１ａのハードウェア診断処理に用いる予め設定された値（以下、固定値と言う）を記憶する。ここで、ハードウェア診断処理（第２処理の一例）は、ハードウェアの異常を検知する処理である。プログラム格納用不揮発性メモリ１１ｂは、ＣＰＵ１０が実行する各種プログラムおよび固定値等を記憶する。ログ記録用不揮発性メモリ１１ｃ（記憶部の一例）は、ＣＰＵ１０による各種処理の実行結果、後述するハードウェア診断回路１５によるハードウェア診断処理の結果、および固定値を記憶する。本実施形態では、動作用メモリ１１ａ、プログラム格納用不揮発性メモリ１１ｂおよびログ記録用不揮発性メモリ１１ｃが記憶する固定値は、同じ値であっても良いし、異なる値であっても良い。
【００１２】
図２は、第１の実施形態にかかるコントローラが有するログ記録用不揮発性メモリの構成の一例を示す図である。図２に示すように、本実施形態では、ログ記録用不揮発性メモリ１１ｃは、通常使用領域Ｍ１と、第１ログ記録領域Ｍ２、第２ログ記録領域Ｍ３、第３ログ記録領域Ｍ４、第４ログ記録領域Ｍ５、固定値記憶領域Ｍ６と、を有している。通常使用領域Ｍ１は、コントローラにおいて異常が発生していない場合に、コントローラ内で実行された各種処理のログが記録される。
【００１３】
第１ログ記録領域Ｍ２は、プログラム格納用不揮発性メモリ１１ｂに対するハードウェア診断処理の結果を記録する。第２ログ記録領域Ｍ３は、動作用メモリ１１ａに対するハードウェア診断処理の結果を記録する。第３ログ記録領域Ｍ４は、ログ記録用不揮発性メモリ１１ｃに対するハードウェア診断処理の結果を記録する。第４ログ記録領域Ｍ５は、イーサネットインタフェースＩＣ１１ｄに対するハードウェア診断処理の結果を記録する。固定値記憶領域Ｍ６は、固定値が記憶された領域である。
【００１４】
図１に戻り、イーサネットインタフェースＩＣ１１ｄは、イーサネット規格に従った外部装置の通信を司る通信インタフェースである。本実施形態では、ハードウェアデバイス１１は、複数のハードウェアを有しているが、少なくとも１つのハードウェアを有するものであれば、これに限定するものではない。
【００１５】
ＣＰＵ１０は、コントローラ全体を制御する制御部の一例である。ＣＰＵ１０は、ハードウェアデバイス１１が有する各ハードウェアと通信可能に接続されている。本実施形態では、ＣＰＵ１０は、データバスＢ１を介してハードウェアと接続され、当該データバスＢ１を介してハードウェアと各種情報をやりとりする。また、ＣＰＵ１０は、アドレスバスＢ２を介して、動作用メモリ１１ａ、プログラム格納用不揮発性メモリ１１ｂおよびログ記録用不揮発性メモリ１１ｃ等のメモリと接続され、アドレスバスＢ２を介して、メモリに対して、アクセスする記憶領域のアドレスを通知する。
【００１６】
また、ＣＰＵ１０は、第１リセット回路１２から入力されるリセット信号に応じて、起動する起動処理を実行し、その後、ハードウェアの制御を開始する。また、ＣＰＵ１０は、後述するウォッチドックタイマ１３から割り込み信号Ｓ１が入力されると、ハードウェアの異常を検知し、ハードウェアの異常の検知結果をログ記録用不揮発性メモリ１１ｃ（第１記憶部の一例）に記録する第１ログ記録処理（第１処理の一例）を実行する。
【００１７】
本実施形態では、ＣＰＵ１０は、割り込み信号Ｓ１が入力されると、データバスＢ１を介してハードウェアにアクセス信号Ｓ２を出力して、ハードウェアから固定値を読み出す処理を実行する。そして、ＣＰＵ１０は、ハードウェアから固定値を読み出せた場合、ハードウェアの異常が検知されなかったと判断して、ログ記録用不揮発性メモリ１１ｃに対してフラグを記録する。一方、ＣＰＵ１０は、ハードウェアから固定値が読み出せなかった場合（若しくは、正しい固定値が読み出されなかった場合）、ハードウェアの異常が検知されたと判断して、ログ記録用不揮発性メモリ１１ｃに対してフラグの記録を行わない。これにより、ＣＰＵ１０は、ハードウェアの異常を検知しかつ異常の検知結果を記録する第１ログ記録処理を実行する。
【００１８】
本実施形態では、ＣＰＵ１０は、ログ記録用不揮発性メモリ１１ｃに対してフラグを記録するか否かによって、ハードウェアの異常の検知結果をログ記録用不揮発性メモリ１１ｃに記録しているが、これに限定するものではなく、ハードウェアに異常が検知されたこと若しくはハードウェアに異常が検知されなかったことを示すログをログ記録用不揮発性メモリ１１ｃに記録することにより、ハードウェアの異常の検知結果を記録しても良い。
【００１９】
また、本実施形態では、ＣＰＵ１１は、予め設定された時間毎に、後述するウォッチドックタイマ１３に対して、自身が正常に動作していることを通知する第１信号を出力する。
【００２０】
ウォッチドックタイマ１３（検知部の一例）は、ＣＰＵ１０の異常を検知する処理を実行し、かつＣＰＵ１０の異常を検知した場合に、ＣＰＵ１０に対して割り込み信号を出力することにより、当該ＣＰＵ１０に第１ログ記録処理を実行させる。本実施形態では、ウォッチドックタイマ１３は、ＣＰＵ１０から最後に第１信号を受信してから、予め設定された時間経過しても新たな第１信号を受信しなかった場合に、ＣＰＵ１０において異常が発生したと判断し、ＣＰＵ１０、ゲート回路１４およびハードウェア診断回路１６に対して、割り込み信号Ｓ１を出力する。
【００２１】
ゲート回路１４（切断部の一例）は、ウォッチドックタイマ１３から割り込み信号Ｓ１が入力され、かつデータバスＢ１を介してＣＰＵ１０からハードウェアに対してアクセス信号Ｓ２が出力されていない場合（すなわち、ＣＰＵ１０によって第１ログ記録処理が実行されない場合）、データバスＢ１およびアドレスバスＢ２を介したＣＰＵ１０とハードウェアとの通信を禁止する。これにより、ゲート回路１４は、ＣＰＵ１０とハードウェアとの接続を切断する。また、ゲート回路１４は、ＣＰＵ１０とハードウェアとの接続を切断すると、ＣＰＵ１０とハードウェアとの接続を切断したことを通知するゲート閉信号Ｓ３を、ハードウェア診断回路１５に対して出力する。
【００２２】
ハードウェア診断回路１５（診断部の一例）は、ゲート回路１４からゲート閉信号Ｓ３が入力されると（すなわち、ＣＰＵ１０とハードウェアとの接続が切断されると）、ハードウェアに対してハードウェア診断処理を実行する。また、ハードウェア診断回路１５は、全てのハードウェアのハードウェア診断処理が終了すると、コントローラの動作を終了させる。
【００２３】
ログ記録回路１６（処理部の一例）は、ハードウェア診断回路１５により実行されたハードウェア診断処理の結果をログ記録用不揮発性メモリ１１ｃ（第２記憶部の一例）に記録する第２ログ記録処理（第３処理の一例）を実行する。これにより、第１リセット回路１２からＣＰＵ１０に入力されるリセット信号に対するノイズの重畳等によって、ＣＰＵ１０が動作しなくなってコントローラに異常が発生した場合でも、ハードウェア診断処理の結果を記録することができるので、ＣＰＵ１０に異常が発生した場合でも、ログ記録用不揮発性メモリ１１ｃに記憶された情報を確認することで、コントローラ内で発生した異常の原因を特定できる。
【００２４】
ここで、本実施形態にかかるコントローラにおけるハードウェア診断処理および第２ログ記録処理の具体例について説明する。本実施形態では、ハードウェア診断回路１５は、ゲート回路１４からゲート閉信号Ｓ３が入力されると、まず、ログ記録用不揮発性メモリ１１ｃのハードウェア診断処理を実行する。具体的には、ハードウェア診断回路１５は、ログ記録用不揮発性メモリ１１ｃの固定値記憶領域Ｍ６にアクセスして、当該固定値記憶領域Ｍ６から固定値の読み出し処理を実行する。ハードウェア診断回路１５は、固定値記憶領域Ｍ６から固定値を読み出すことができた場合、ログ記録用不揮発性メモリ１１ｃに異常が検知されなかったと判断して、ログ記録回路１６に対してログ記録開始信号Ｓ４を出力する。一方、ハードウェア診断回路１５は、固定値記憶領域Ｍ６から固定値を読み出すことができなかった場合（若しくは、正しい固定値が読み出されなかった場合）、ログ記録用不揮発性メモリ１１ｃの異常が検知されたと判断して、ログ記録回路１６に対してログ記録禁止信号を出力する。
【００２５】
ログ記録回路１６は、ログ記録開始信号Ｓ４が入力された場合、ログ記録用不揮発性メモリ１１ｃの第３ログ記憶領域Ｍ４にフラグを記録する。また、ログ記録回路１６は、ログ記録禁止信号が入力された場合、ログ記録用不揮発性メモリ１１ｃに対するフラグの記録を行わない。ログ記録回路１６は、ログ記録用不揮発性メモリ１１ｃに対するフラグの記録が終了すると若しくはログ記録禁止信号が入力された場合、ハードウェア診断回路１５に対して、第２ログ記録処理が終了したことを示すログ記録終了信号Ｓ５を出力する。
【００２６】
ハードウェア診断回路１５は、ログ記録終了信号Ｓ５が入力されると、次に、動作用メモリ１１ａのハードウェア診断処理を実行する。具体的には、ハードウェア診断回路１５は、動作用メモリ１１ａにアクセスして、当該動作用メモリ１１ａから固定値の読み出し処理を実行する。ハードウェア診断回路１５は、動作用メモリ１１ａから固定値を読み出すことができた場合、動作用メモリ１１ａに異常が検知されなかったと判断して、ログ記録回路１６に対してログ記録開始信号Ｓ４を出力する。一方、ハードウェア診断回路１５は、動作用メモリ１１ａから固定値を読み出すことができなかった場合（若しくは、正しい固定値が読み出されなかった場合）、動作用メモリ１１ａに異常が検知されたと判断して、ログ記録回路１６に対してログ記録禁止信号を出力する。
【００２７】
ログ記録回路１６は、ログ記録開始信号Ｓ４が入力された場合、ログ記録用不揮発性メモリ１１ｃの第２ログ記憶領域Ｍ３にフラグを記録する。また、ログ記録回路１６は、ログ記録禁止信号が入力された場合、ログ記録用不揮発性メモリ１１ｃに対するフラグの記録を行わない。ログ記録回路１６は、ログ記録用不揮発性メモリ１１ｃに対するフラグの記録が終了すると若しくはログ記録禁止信号が入力された場合、ハードウェア診断回路１５に対して、ログ記録終了信号Ｓ５を出力する。
【００２８】
ハードウェア診断回路１５は、ログ記録終了信号Ｓ５が入力されると、次に、プログラム格納用不揮発性メモリ１１ｂのハードウェア診断処理を実行する。具体的には、ハードウェア診断回路１５は、プログラム格納用不揮発性メモリ１１ｂにアクセスして、当該プログラム格納用不揮発性メモリ１１ｂから固定値の読み出し処理を実行する。ハードウェア診断回路１５は、プログラム格納用不揮発性メモリ１１ｂから固定値を読み出すことができた場合、プログラム格納用不揮発性メモリ１１ｂに異常が検知されなかったと判断して、ログ記録回路１６に対してログ記録開始信号Ｓ４を出力する。一方、ハードウェア診断回路１５は、プログラム格納用不揮発性メモリ１１ｂから固定値を読み出すことができなかった場合（若しくは、正しい固定値が読み出されなかった場合）、プログラム格納用不揮発性メモリ１１ｂに異常が検知されたと判断して、ログ記録回路１６に対してログ記録禁止信号を出力する。
【００２９】
ログ記録回路１６は、ログ記録開始信号Ｓ４が入力された場合、ログ記録用不揮発性メモリ１１ｃの第１ログ記憶領域Ｍ２にフラグを記録する。また、ログ記録回路１６は、ログ記録禁止信号が入力された場合、ログ記録用不揮発性メモリ１１ｃに対するフラグの記録を行わない。ログ記録回路１６は、ログ記録用不揮発性メモリ１１ｃに対するフラグの記録が終了すると若しくはログ記録禁止信号が入力された場合、ハードウェア診断回路１５に対して、ログ記録終了信号Ｓ５を出力する。
【００３０】
ハードウェア診断回路１５は、ログ記録終了信号Ｓ５が入力されると、次に、イーサネットインタフェースＩＣ１１ｄのハードウェア診断処理を実行する。具体的には、ハードウェア診断回路１５は、イーサネットインタフェースＩＣ１１ｄを介して外部装置にアクセスして、当該外部装置から固定値の読み出し処理を実行する。ハードウェア診断回路１５は、外部装置から固定値を読み出すことができた場合、イーサネットインタフェースＩＣ１１ｄに異常が検知されなかったと判断して、ログ記録回路１６に対してログ記録開始信号Ｓ４を出力する。一方、ハードウェア診断回路１５は、外部装置から固定値を読み出すことができなかった場合（若しくは、正しい固定値が読み出されなかった場合）、イーサネットインタフェースＩＣ１１ｄに異常が検知されたと判断して、ログ記録回路１６に対してログ記録禁止信号を出力する。
【００３１】
ログ記録回路１６は、ログ記録開始信号Ｓ４が入力された場合、ログ記録用不揮発性メモリ１１ｃの第４ログ記憶領域Ｍ５にフラグを記録する。また、ログ記録回路１６は、ログ記録禁止信号が入力された場合、ログ記録用不揮発性メモリ１１ｃに対するフラグの記録を行わない。ログ記録回路１６は、ログ記録用不揮発性メモリ１１ｃに対するフラグの記録が終了すると若しくはログ記録禁止信号が入力された場合、ハードウェア診断回路１５に対して、ログ記録終了信号Ｓ５を出力する。ハードウェア診断回路１５は、全てのハードウェアのハードウェア診断処理が終了した場合、コントローラの動作を終了させる。
【００３２】
その後、コントローラのオペレータは、当該コントローラが終了しているため、起動ボタン１７を押下する。これにより、第１リセット回路１２がＣＰＵ１０にリセット信号を出力すると、ＣＰＵ１０は、コントローラの再起動処理を実行する。そして、ＣＰＵ１０は、再起動後に、ログ記録用不揮発性メモリ１１ｃの第１ログ記録領域Ｍ２、第２ログ記録領域Ｍ３、第３ログ記録領域Ｍ４および第４ログ記録領域Ｍ５にアクセスし、各記録領域にフラグが記録されているか否かを判断することによって、ハードウェアに異常があるか否かを検知することができる。また、ハードウェアに異常が無いことを検知した場合には、ＣＰＵ１０の異常によりコントローラが終了したことを検知することができる。
【００３３】
本実施形態では、ハードウェア診断回路１５は、ログ記録用不揮発性メモリ１１ｃ、動作用メモリ１１ａ、プログラム格納用不揮発性メモリ１１ｂ、イーサネットインタフェース１１ｄの順に、各ハードウェアに対するハードウェア診断処理を実行しているが、これに限定するものではなく、上記の順と異なる順に、各ハードウェアに対するハードウェア診断処理を実行しても良い。
【００３４】
また、本実施形態では、ログ記録回路１６は、ログ記録用不揮発性メモリ１１ｃにフラグを記録するか否かによって、ハードウェア診断処理の結果を記録しているが、これに限定するものではなく、例えば、ハードウェア診断処理の結果を示すログをログ記録用不揮発性メモリ１１ｃに記録しても良い。
【００３５】
また、本実施形態では、第１ログ記録処理によるハードウェアの異常の検知結果およびハードウェア診断処理の結果を同じ記憶部（ログ記録用不揮発性メモリ１１ｃ）に記録しているが、第１ログ記録処理によるハードウェアの異常の検知結果およびハードウェア診断処理の結果それぞれを異なる記憶部に記録しても良い。
【００３６】
さらに、本実施形態では、第１ログ記録処理によるハードウェアの異常の検知結果およびハードウェア診断処理の結果をコントローラ内の記憶部（ログ記録用不揮発性メモリ１１ｃ）に記録しているが、第１ログ記録処理によるハードウェアの異常の検知結果およびハードウェア診断処理の結果を、コントローラの外部の記憶部に記録しても良い。
【００３７】
次に、図３を用いて、本実施形態にかかるコントローラにおける第１ログ記録処理について説明する。図３は、第１の実施形態にかかるコントローラにおける第１ログ記録処理の流れの一例を示すフローチャートである。
【００３８】
本実施形態では、ＣＰＵ１０は、第１リセット回路１２からリセット信号が入力されると、起動処理を実行して、ハードウェアの制御を開始する。その後、ＣＰＵ１０は、ウォッチドックタイマ１３から割り込み信号Ｓ１が入力されたか否かを判断する（ステップＳ３０１）。
【００３９】
ウォッチドックタイマ１３から割り込み信号Ｓ１が入力されていないと判断した場合（ステップＳ３０１：Ｎｏ）、ＣＰＵ１０は、ハードウェアの制御を継続する。一方、ウォッチドックタイマ１３から割り込み信号Ｓ１が入力されたと判断した場合（ステップＳ３０１：Ｙｅｓ）、ＣＰＵ１０は、第１ログ記録処理を実行する（ステップＳ３０２）。その後、ＣＰＵ１０は、コントローラの動作を終了させる。
【００４０】
次に、図４を用いて、本実施形態にかかるコントローラにおけるハードウェア診断処理および第２ログ記録処理の流れについて説明する。図４は、第１の実施形態にかかるコントローラにおけるハードウェア診断処理および第２ログ記録処理の流れの一例を示すフローチャートである。
【００４１】
本実施形態では、ゲート回路１４は、ＣＰＵ１０によるハードウェアの制御が開始されると、ウォッチドックタイマ１３から割り込み信号Ｓ１が入力されたか否かを判断する（ステップＳ４０１）。ウォッチドックタイマ１３から割り込み信号Ｓ１が入力されていない場合（ステップＳ４０１：Ｎｏ）、ゲート回路１４は、ステップＳ４０１に戻り、再度、割り込み信号Ｓ１が入力されたか否かを判断する。
【００４２】
一方、ウォッチドックタイマ１３から割り込み信号Ｓ１が入力された場合（ステップＳ４０１：Ｙｅｓ）、ゲート回路１４は、ＣＰＵ１０からアクセス信号Ｓ２が入力されているか否か（すなわち、ＣＰＵ１０による第１ログ記録処理が実行されているか否か）を判断する（ステップＳ４０２）。ＣＰＵ１０からアクセス信号Ｓ２が入力されている場合（ステップＳ４０２：Ｙｅｓ）、ＣＰＵ１０では異常は発生しておらず、ＣＰＵ１０が第１ログ記録処理を行っているため、ゲート回路１４は、ステップＳ４０１に戻り、再度、割り込み信号Ｓ１が入力されたか否かを判断する。
【００４３】
一方、ＣＰＵ１０からアクセス信号Ｓ２が入力されていない場合（ステップＳ４０２：Ｎｏ）、ゲート回路１４は、データバスＢ１およびアドレスバスＢ２を介したＣＰＵ１０とハードウェアの通信を禁止して、ＣＰＵ１０とハードウェアとの接続を切断し（ステップＳ４０３）、かつハードウェア診断回路１５に対してゲート閉信号Ｓ３を出力する。
【００４４】
ハードウェア診断回路１５は、ゲート回路１４からゲート閉信号Ｓ３が入力されると、予め設定された順に、各ハードウェアのハードウェア診断処理を実行する（ステップＳ４０４）。そして、ログ記録回路１６は、一つのハードウェアのハードウェア診断処理が実行される毎に、実行されたハードウェア診断処理の結果をログ記録用不揮発性メモリ１１ｃに記録する第２ログ記録処理を実行する（ステップＳ４０５）。ハードウェア診断回路１５およびログ記録回路１６は、全てのハードウェアのハードウェア診断処理が終了するまで（ステップＳ４０６：Ｎｏ）、ステップＳ４０４およびステップＳ４０５に示す処理を繰り返す。ハードウェア診断回路１５は、全てのハードウェア診断処理が終了すると（ステップＳ４０６：Ｙｅｓ）、コントローラの動作を終了させる（ステップＳ４０７）。
【００４５】
このように、第１の実施形態にかかるコントローラによれば、ＣＰＵ１０に異常が発生した場合でも、ログ記録用不揮発性メモリ１１ｃに記憶された情報を確認することで、コントローラ内で発生した異常の原因を特定できる。
【００４６】
（第２の実施形態）
本実施形態は、ＣＰＵ以外のハードウェアに異常が無い場合に、ハードウェアを再起動させて、コントローラの稼働率を高める例である。以下の説明では、第１の実施形態と同様の箇所については説明を省略する。
【００４７】
図５は、第２の実施形態にかかるコントローラの機能構成の一例を示すブロック図である。図５に示すように、本実施形態にかかるコントローラは、ＣＰＵ１０と、ハードウェアデバイス１１、第１リセット回路１２と、ウォッチドックタイマ１３と、ゲート回路１４と、ハードウェア診断回路５０１と、ログ記録回路５０２と、再起動回路５０３と、第２リセット回路５０４と、を有している。
【００４８】
第２リセット回路５０４（リセット部の一例）は、後述する再起動回路５０３から起動信号Ｓ８が入力されると、コントローラが有するＣＰＵ１０以外のハードウェア（動作用メモリ１１ａ、プログラム格納用不揮発性メモリ１１ｂ、ログ記録用不揮発性メモリ１１ｃ、イーサネットインタフェースＩＣ１１ｄなど）に対して、起動処理の実行を指示するリセット信号を出力する。また、本実施形態では、第１リセット回路１２は、後述する再起動回路５０３から起動信号Ｓ８が入力されると、ＣＰＵ１０に対して、起動処理の実行を指示するリセット信号を出力する。
【００４９】
ログ記録回路５０２は、第２ログ記録処理を実行する毎に、ハードウェア診断処理の結果を示す再起動確認信号Ｓ６を再起動回路５０３に出力する。また、ハードウェア診断回路５０１は、全てのハードウェアに対するハードウェア診断処理が終了すると、ハードウェア診断処理が終了したことを示すハードウェア診断処理終了信号Ｓ７を、再起動回路５０３に出力する。
【００５０】
再起動回路５０３（再起動部の一例）は、ログ記録回路５０２から再起動確認信号Ｓ６が入力されると、当該再起動確認信号Ｓ６に基づいて、ハードウェアに異常が検知されたか否かを判断する。その後、再起動回路５０３は、ハードウェア診断回路５０１からハードウェア診断処理終了信号Ｓ７が入力されかつハードウェアに異常が検知されていないと判断した場合、第１リセット回路１２および第２リセット回路５０４に対して起動信号Ｓ８を出力して、ＣＰＵ１０およびハードウェアを再起動させる。すなわち、再起動回路５０３は、ハードウェアに異常が検知されていないと判断した場合、第１リセット回路１２および第２リセット回路５０４を制御して、ＣＰＵ１０およびハードウェアを再起動させる。これにより、ＣＰＵ１０に異常が発生した場合でも、ハードウェアを再起動させることができるので、コントローラの稼働率を高めることができる。
【００５１】
一方、再起動回路５０３は、ハードウェアに異常が検知されたと判断した場合には、起動信号Ｓ８の出力を行わない。すなわち、再起動回路５０３は、ハードウェアに異常が検知されなかった場合にのみ、第１リセット回路１２および第２リセット回路５０４を制御して、ＣＰＵ１０およびハードウェアを再起動させる。本実施形態では、再起動回路５０３は、ハードウェアに異常が検知されなかった場合、第１リセット回路１２および第２リセット回路５０４を制御して、ＣＰＵ１０およびハードウェアの両方を再起動させているが、少なくともハードウェアを再起動させるものであれば、これに限定するものではない。例えば、再起動回路５０３は、ハードウェアに異常が検知されなかったと判断した場合、第２リセット回路５０４のみにリセット信号を出力して、ＣＰＵ１０以外のハードウェアのみを再起動させる。
【００５２】
このように、第２の実施形態のコントローラによれば、ＣＰＵ１０以外のハードウェアの稼働率を高めることができる。
【００５３】
以上説明したとおり、第１，２の実施形態によれば、ＣＰＵ１０に異常が発生した場合でも、ログ記録用不揮発性メモリ１１ｃに記憶された情報を確認することで、コントローラ内で発生した異常の原因を特定できる。
【００５４】
本実施形態では、第１，２の実施形態にかかるコントローラが有する第１リセット回路１２、ウォッチドックタイマ１３、ゲート回路１４、ハードウェア診断回路１５，５０１、ログ記録回路１６，５０２、再起動回路５０３および第２リセット回路５０４は、ＬＳＩ（Large  Scale  Integration）等の集積回路によって実現されるが、これに限定するものではなく、例えば、ＣＰＵ１０以外の他のＣＰＵが、記憶装置に記憶されたプログラムを実行することによって、第１リセット回路１２、ウォッチドックタイマ１３、ゲート回路１４、ハードウェア診断回路１５，５０１、ログ記録回路１６，５０２、再起動回路５０３および第２リセット回路５０４を実現することも可能である。
【００５５】
なお、本実施形態のコントローラで実行されるプログラムは、ＲＯＭ（Read  Only  Memory）等に予め組み込まれて提供される。また、本実施形態のコントローラで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【００５６】
さらに、本実施形態のコントローラで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のコントローラで実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００５７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５８】
１０  ＣＰＵ
１１  ハードウェアデバイス
１１ａ  動作用メモリ
１１ｂ  プログラム格納用不揮発性メモリ
１１ｃ  ログ記録用不揮発性メモリ
１１ｄ  イーサネットインタフェースＩＣ
１２  第１リセット回路
１３  ウォッチドックタイマ
１４  ゲート回路
１５，５０１  ハードウェア診断回路
１６，５０２  ログ記録回路
１７  起動ボタン
５０３  再起動回路
５０４  第２リセット回路
【図１】
2016181055.tif 000003
【図２】
2016181055.tif 000004
【図３】
2016181055.tif 000005
【図４】
2016181055.tif 000006
【図５】
2016181055.tif 000007