(57)【要約】【課題】電源投入等の操作や保守ツール等の装置を制御装置に接続することなく、アプリケーションプログラムの健全性を確認を実行し、保守性の向上を図る。【解決手段】  外部から取得したアプリケーションプログラムを保存する記憶部と、この記憶部から読み出されたアプリケーションプログラムが展開される一時記憶部と、時刻を計時する時計部と、演算処理部を備える。  上記演算処理部は、一時記憶部に展開されたアプリケーションプログラムを実行し、また一時記憶部に展開されたアプリケーションプログラムの実行中に係る演算処理時間の空き時間に、記憶部に保存されたアプリケーションプログラムと、一時記憶部に展開されたアプリケーションプログラムの内容を照合し、照合の結果を時計部から取得した照合時の時刻情報と対応づけて記憶部に保存する。【選択図】図２
2011221751.tif 000002
【特許請求の範囲】
【請求項１】
外部から取得したアプリケーションプログラムを保存する記憶部と、
前記記憶部から読み出された前記アプリケーションプログラムが展開される一時記憶部と、
前記一時記憶部に展開されたアプリケーションプログラムを実行し、また前記一時記憶部に展開されたアプリケーションプログラムの実行中以外の演算処理時間に、前記記憶部に保存された前記アプリケーションプログラムと、前記一時記憶部に展開された前記アプリケーションプログラムの内容を照合し、照合の結果を照合時の時刻情報と対応づけて前記記憶部に保存する演算処理部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記アプリケーションプログラムの実行中以外の演算処理時間は、前記演算処理部の演算周期から前記アプリケーションプログラムの実行時間を除いた時間である
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記演算処理部は、１回の演算周期で前記アプリケーションプログラムの内容の照合が終わらない場合、複数回の演算周期に分割して前記アプリケーションプログラムの内容の照合を行う
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記演算周期と、前記アプリケーションプログラムの実行時間に前記アプリケーションプログラムの内容を照合する照合プログラムの実行時間を加えた時間とから算出される負荷率が、所定範囲内となるよう前記演算周期が設定されている
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記演算処理部は、前記記憶部に保存された前記アプリケーションプログラムと、前記一時記憶部に展開された前記アプリケーションプログラムの内容に不一致がある場合、外部に警報を通知する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
記憶部と、一時記憶部と、演算処理部とを備える情報処理装置による情報処理方法であって、
外部から取得し記憶部に保存されたアプリケーションプログラムを一時記憶部に展開するステップと、
演算処理部が前記一時記憶部に展開されたアプリケーションプログラムを実行するステップと、
前記演算処理部が前記一時記憶部に展開されたアプリケーションプログラムの実行中以外の演算処理時間に、前記記憶部に保存された前記アプリケーションプログラムと、前記一時記憶部に展開された前記アプリケーションプログラムの内容を照合するステップと、
照合の結果を照合時の時刻情報と対応づけて前記記憶部に保存するステップと、
を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理の健全性確認を行う情報処理装置および情報処理方法に関し、例えば、高い信頼性が求められる原子力発電プラント等においてアプリケーションプログラムを実行する制御装置に適用して好適な演算処理の健全性確認の技術に関する。
【背景技術】
【０００２】
従来、一般に、アプリケーションプログラムが保存される記憶装置や一時記憶装置は、磁気媒体や電機部品などで構成されており、動作の有無に係わらず外的要因（経年変化、書き込みエラー等）によってビット化けが発生することが知られている。１ビットの違いがアプリケーションプログラムの機能障害につながる恐れもあるため、定期的にアプリケーションプログラムのデータがビット化けにより変更されていないか確認する必要がある。
【０００３】
例えば、情報処理装置の電源を投入した際に、記憶装置に保存されているアプリケーションプログラムを、実行処理がなされる一時記憶装置にコピーした際に、記憶装置のデータと一時記憶装置にコピーしたデータを照合し、データが一致しているか否かによりアプリケーションプログラムの健全性の確認を行う。（例えば、特許文献１参照。）。データが不一致であった場合には異常信号を発信するなどして警告する。
【０００４】
特に原子力発電プラントなどの高い信頼性が求められる分野では、約１年ごとに実施される定期検査において、記憶装置に保存したアプリケーションデータと同じデータが保存されている保守ツールを制御装置に接続し、保守ツールの照合（コンペアチェック）機能により、一時記憶装置に保存されているアプリケーションプログラムの健全性確認を実施している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１３３８６０号公報（段落００２８等）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、原子力発電プラントにおける制御装置などのように制御範囲が大きい制御システム、一例として放射線モニタリングシステムにおいては原子力発電プラントの多岐にわたるエリア（原子炉建屋、タービン建屋、コントロール建屋、廃棄物処理建屋等）や配管の放射性レベルを計測するため、広範囲に且つ多数の制御装置が点在する。そのため、定期検査において制御装置に保守ツールを接続し、点検をするには非常に手間と時間を有する。また、放射線管理区域内に制御装置を設置する場合も多く、保守ツールが放射線物質での汚染が無いかなどの検査が必要になり、煩雑な管理が必要になる。
【０００７】
本発明は、上記の状況に鑑みてなされたものであり、電源投入等の操作や保守ツール等の装置を制御装置に接続することなく、アプリケーションプログラムの健全性の確認を実行できるようにするものである。
【課題を解決するための手段】
【０００８】
本発明では、情報処理装置が備える記憶部に保存されているアプリケーションプログラムと、一時記憶部にコピーされたアプリケーションプログラムの内容とが一致していることを、演算処理部がアプリケーションプログラム実行中以外の演算処理時間において常時照合して確認を行い、照合した結果を記憶部に保存するようにする。
ここで、アプリケーションプログラムの実行中以外の演算処理時間は、演算処理部の演算周期からアプリケーションプログラムの実行時間を除いた時間である。
【発明の効果】
【０００９】
本発明によれば、電源投入等の操作や保守ツール等の装置を制御装置に接続することなく、アプリケーションプログラムの健全性の確認を実行できるので、保守性の向上が図られる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施の形態に係る情報処理装置を適用した制御装置の内部構成を示すブロック図である。
【図２】アプリケーションプログラムの構成を説明するための図である。
【図３】演算処理部の動作を示したフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態の例について、添付図面を参照しながら説明する。説明は下記項目の順に行う。
１．制御装置の内部構成
２．アプリケーションプログラムの構成と処理時間
３．演算処理部の動作
【００１２】
［１．制御装置の内部構成］
図１は、本発明の一実施の形態に係る情報処理装置を適用した制御装置の内部構成を示すブロック図である。
制御装置１は主に、Ｉ／Ｆ部２、記憶部３、一時記憶部４、記憶部５、演算処理部６、時計部７、警報発報部８およびバス９を備え、バス９を介して各部が相互に通信可能である。なお各部には図示しない電源回路から電力が供給されるものとしてある。
【００１３】
Ｉ／Ｆ部２は、制御装置１と保守端末１０との間で相互に送信または受信されるデータを仲介するためのインターフェース機能を有するものである。
【００１４】
記憶部３は、保守端末１０上でユーザにより作成されたアプリケーションプログラム（マスタ）を保存するものである。制御装置１への電源が投入された際には、記憶部３に保存されているアプリケーションプログラムが一時記憶部４にコピーされる。ユーザにて制御装置１で実行されるプログラムを変更したい場合は、保守端末１０上でアプリケーションプログラムを作成し、再度、記憶部３に新しいアプリケーションプログラムを保存することにより、プログラムの変更が実行される。また記憶部３は、演算処理部６で行われたアプリケーションプログラムの照合結果を保存する。この記憶部３は、制御装置１への電源が遮断されている場合においても、保存されたアプリケーションプログラムは消去されないよう、半導体素子等からなる不揮発性メモリで構成される。一般的に、アプリケーションプログラムを保存する不揮発性メモリはメモリアクセス（書き込み／読み出し）速度が遅いが、大容量のデータを保存することが可能である。
【００１５】
一時記憶部４は、アプリケーションプログラムを実行するために演算処理部６から直接アクセスされる記憶部である。制御装置１への電源が投入されると、記憶部３に保存されているアプリケーションプログラムが当該一時記憶部４に展開（コピー）される。この一時記憶部４に展開されたアプリケーションプログラム（以下、「実行処理プログラム」とも称す）に従い、演算処理部６による演算が実行される。この一時記憶部４には、半導体素子等からなる揮発性メモリが使用され、制御装置１への電源が遮断されると、保存されている実行処理プログラムも消去される。一般的に、一時記憶部として、小容量の記憶容量であるが、メモリアクセス（書き込み／読み出し）速度は速いものが適用される。
【００１６】
記憶部５は、記憶部３に保存されているアプリケーションプログラムと、一時記憶部４にコピーされたアプリケーションプログラムの内容を照合するための照合プログラムを保存するためのものである。この記憶部５は、制御装置１への電源が遮断されている場合においても、保存された照合プログラムは消去されないよう、半導体素子等からなる不揮発性メモリで構成される。本実施の形態では、照合プログラムは、所謂ファームウェアと呼ばれる組み込みのソフトウェアで実現する。なお、照合プログラムの保存先は記憶部５に限られるものではなく、例えば記憶部３でもよい。
【００１７】
演算処理部６は、制御装置１の各部の制御を行うものである。例えば一時記憶部４に展開された実行処理プログラムおよび記憶部５に保存された照合プログラムを実行したり、照合プログラム実行の結果を、時間を計時する時計部７から取得した時刻情報と対応づけて記憶部３へ保存したりする。この演算処理部６として、例えばＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などを適用できる。また、時計部７に代えてＣＰＵやＭＰＵの内部時計を利用するようにしてもよい。
【００１８】
警報発報部８は、演算処理部６が照合プログラムを実行した結果、アプリケーションプログラムの不一致が発生した場合に、外部のアナンシェータ等へ警報を出力するものである。なお、アナンシェータとは、プロセスや監視対象の状態が異常になったことをオペレータに伝達する手段として、表示装置に表示すると同時に、音声信号を発して注意を促すようにしたシステムである。なお、本例の音声信号には、いわゆる音声の他、ビープ音等のアラーム音も含まれる。
【００１９】
このように構成される制御装置１は、所謂パーソナルコンピュータ等のコンピュータを利用して実現することができる。
【００２０】
次に、保守端末１０について説明する。
保守端末１０は、保守ツールの一例であり、主にＩ／Ｆ部１１、記憶部１２、制御部１３、操作部１４、バス１５、表示部１６を備え、バス１５を介して各部が相互に通信可能である。なお各部には図示しない電源回路から電力が供給されるものとしてある。
【００２１】
Ｉ／Ｆ部１１は、保守端末１０と制御装置１との間で相互に送信または受信されるデータを仲介するためのインターフェース機能を有するものである。
【００２２】
記憶部１２は、保守端末１０上でユーザにより作成されたアプリケーションプログラム（マスタ）、制御装置１から送出されるアプリケーションプログラムの照合結果などを保存するものである。この記憶部１２は、保守端末１０への電源が遮断されている場合においても、保存されたアプリケーションプログラム（マスタ）が消去されないよう、半導体素子等からなる不揮発性メモリで構成される。また、この記憶部１２は、保守端末１０に接続された外部記憶装置を利用するようにしてもよい。
【００２３】
制御部１３は、保守端末１０の各部を制御するものである。例えば操作部１４から入力される操作信号に基づき、記憶部１２に保存されたアプリケーションプログラム（マスタ）の編集、当該アプリケーションプログラム（マスタ）の制御装置１への送信処理などの制御を行う。また、制御装置１から送出されるアプリケーションプログラムの照合結果の受信処理を制御する。この演算処理部６として、例えばＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などを適用できる。
【００２４】
操作部１４は、例えばユーザの操作に応じた操作信号を生成し、制御部１３へ出力するものである。この操作部１４として、例えばキーボードやマウス、タッチパネルなどを用いて構成することができ、保守端末１０と別体としてもよい。
【００２５】
表示部１６は、アプリケーションプログラム（マスタ）編集時のプログラム言語、アプリケーションプログラムの照合結果などの表示を行うものである。この表示部１６としては、例えば液晶表示パネルなどを用いることができ、保守端末１０と別体としてもよい。また、図示しない印刷装置（プリンタ）への出力もできる。
【００２６】
［２．アプリケーションプログラムの構成と処理時間］
図２は、アプリケーションプログラムの構成と処理時間の説明に供する図である。
操作部１４を操作してユーザが作成するアプリケーションプログラムは複数の機能（本実施の形態では第１〜第３処理プログラム）に分割されており、演算処理部６からの演算処理命令に従い、順次実行される。また、演算処理部６は、アプリケーションプログラムに含まれた初期設定プログラムにより規定される演算周期に従い、一定の時間間隔にてアプリケーションプログラムを実行する。一般に、初期設定プログラムにより、演算周期の設定、前回データ等の初期化、各種パラメータの初期設定等が行われる。
【００２７】
図２に示すように、演算処理部６によるアプリケーションプログラムの実行時間は、初期設定プログラム実行時間２１、演算周期ｎ−１，ｎ，ｎ＋１・・・からなる。初期設定プログラム実行時間２１は、初期設定プログラムを実行するのにかかる時間である。また各演算周期の時間は、少なくともアプリケーションプログラム内の全ての処理プログラムが完了する時間に設定される。一つの演算周期は、アプリケーションプログラムを実行する第１処理プログラム実行時間２２〜第３処理プログラム実行時間２４と、次の演算周期までの空き時間２５により構成される。
【００２８】
空き時間２５は、照合プログラム実行時間２５ａと実質空き時間２５ｂから構成され、演算周期を設定するに際し、アプリケーションプログラムを安全、確実に実行するために、必ず設けられる。空き時間２５が設けられていることにより、仮に演算周期ｎ−１の第１処理プログラム実行時間２２〜第３処理プログラム実行時間２４までの時間が延びてしまった場合でも、空き時間２５でその遅延を吸収して対処することができる。そして、次の演算周期ｎでは、規定の開始時間から第１処理プログラムの実行が開始される。
【００２９】
上記照合プログラム実行時間２５ａは、記憶部３に保存されたアプリケーションプログラムおよび一時記憶部４にコピーされたアプリケーションプログラムのそれぞれの読み出し時間と、読み出したプログラムを付き合わせる処理に係る時間とを加算した時間である。また、実質空き時間２５ｂは、空き時間２５の照合プログラム実行時間２５ａが終了後、当該空き時間２５が終了するまでの待ち時間（演算処理が行われない実質的な空き時間）に相当する。
【００３０】
ところで、演算周期に対する処理プログラム実行時間の割合は負荷率と呼ばれるが、負荷率はアプリケーションプログラムを実行するのに適当な所定の範囲内となるように管理される。そのため、第１〜第３処理プログラム実行時間２２〜２４に照合プログラム実行時間２５ａを加えた時間が、演算周期に対して適当な所定の範囲内の負荷率となるよう当該演算周期を設定することが好ましい。
【００３１】
演算処理部６は、第１〜第３処理プログラム実行時間２２〜２４を経過した後の空き時間２５の照合プログラム実行時間２５ａにおいて、記憶部３に保存されているアプリケーションプログラムと、一時記憶部４に展開されているアプリケーションプログラムの内容を照合し、内容が一致していることを確認する。
【００３２】
照合処理は、一例として記憶部３および一時記憶部４のアプリケーションプログラムデータの全ビットを付き合わせることにより行われる。また、照合処理の他の例として、双方のアプリケーションプログラムデータのハッシュ値を計算し、ハッシュ値を比較するという方法も考えられる。この場合、全ビットの付き合わせによる照合処理と比較して、処理時間を短くできる。ただし、より正確な照合結果を得たい場合には、全ビットの付き合わせによる照合処理がより好適である。
【００３３】
ところで、一般的にプログラムの照合に要する時間は長くかかるため、１つの演算周期内で全てのアプリケーションプログラムに対する照合処理が完了できないことがある。
例えば、処理周期が６０ｍｓで標準的な負荷率のとき、空き時間を利用して１Ｍバイトのアプリケーションプログラムの照合処理を行うと、照合処理が終了するまでに約６日間かかる計算になる。そのような場合には、全アプリケーションプログラムに対する照合処理を複数回の演算周期に分割して、健全性の確認を実施する。
【００３４】
照合結果は、照合時刻情報とともに記憶部３に保存される。もし不一致が発生した場合には、制御装置１に設けられた警報発報部８により外部へ通知するとともに、制御装置１に保守端末１０を接続することにより、記憶部３に保存されている照合結果が保守端末１０の表示部１６に表示される。
【００３５】
［３．演算処理部の動作］
次に、図３のフローチャートを参照して、制御装置１の起動からアプリケーションプログラムの照合までにおける演算処理部による動作を説明する。
まず制御装置１への電源が投入されると、図示しない電源回路から演算処理部６を含む各部へ電力が供給される（ステップＳ１）。
【００３６】
制御装置１の電源が投入されると、演算処理部６は、記憶部３に保存されているアプリケーションプログラムを一時記憶部４にコピーする（ステップＳ２）。このデータ転送方式はこの例に限らず、ＤＭＡ（Direct Memory Access）を用いて、記憶部３から一時記憶部４へ演算処理部６を介さずに直接転送するようにしてもよい。
【００３７】
その後、演算処理部６は、一時記憶部４にコピーされた実行処理プログラムを基に、演算処理を開始する（ステップＳ３）。始めに初期設定プログラムを初期設定プログラム実行時間２１（図２参照）で実行し、演算周期等の設定を一時記憶部４から演算処理部６へ読み込む（ステップＳ４）。
【００３８】
続いて、演算処理部６は、アプリケーションプログラムに記述されている第１処理プログラムを、演算周期ｎ−１の第１処理プログラム実行時間２２で実行する（ステップＳ５）。次いで第２処理プログラムを同第２処理プログラム実行時間２３で実行し（ステップＳ６）、さらに第３処理プログラムを同第３処理プログラム実行時間２４で実行する（ステップＳ７）。
【００３９】
第１〜第３処理プログラムを実行した後、演算処理部６は、記憶部５から照合プログラムを読み込み、記憶部３に保存されているアプリケーションプログラムと、一時記憶部４にコピーされたアプリケーションプログラムの内容の照合処理を実行する（ステップＳ８）。この照合処理は、空き時間２５の照合プログラム実行時間２５ａに行われる。
【００４０】
ここで、演算処理部６は、双方のアプリケーションプログラムの内容が一致したか否かを判定し（ステップＳ９）、一致している場合は、照合時の時刻情報と結果良の情報を記憶部３に保存する（ステップＳ１０）。一方、不一致であった場合には、照合時の時刻情報と結果不良の情報を記憶部３に保存する（ステップＳ１２）。なお、不一致の場合、時刻情報と結果不良の情報とともに、アプリケーションプログラムのビットエラーが検出された箇所も併せて通知する。
【００４１】
そして、ステップＳ１０又はステップＳ１２の処理が終了した後、空き時間２５の照合プログラム実行時間２５ａ終了時から次の演算周期ｎまでの待ち時間（実質空き時間２５ｂ）が経過した後に、演算処理部６は、ステップＳ５に戻り次の演算周期ｎの第１プログラムを実行する（ステップＳ１１）。以降、プログラムの照合処理が終了するまで、ステップＳ５〜ステップＳ１１の処理を繰り返す。
【００４２】
なお、ステップＳ１１からステップＳ５の処理に移行する場合、前の演算周期ｎ−１までに照合が終了しているポイントを一時記憶部４に記憶しておき、次の演算周期ｎでは照合が終了しているポイントから、照合処理を実行する。
【００４３】
上述した実施の形態によれば、記憶部３に保存されているアプリケーションプログラムと、一時記憶部４にコピーされたアプリケーションプログラムの内容とが一致していることを、アプリケーションプログラム実行中以外の演算処理時間（演算周期の空き時間）において常時照合して確認し、照合した結果を記憶部３に保存するよう構成されている。
【００４４】
それゆえ、一時記憶部４に展開されたユーザ作成のアプリケーションプログラムの実行処理に影響を与えることなく、演算処理部６が、記憶部３に保存されているアプリケーションプログラムと一時記憶部４に展開されたアプリケーションプログラムの照合を実施し、アプリケーションプログラムの健全性を確認することができる。つまり、アプリケーションプログラムの実行処理中にアプリケーションプログラムの健全性を確認できるので、制御装置１の保守作業に対する合理化効果が得られ、保守性を向上させることができる。
【００４５】
以上、本発明の一実施の形態の例について説明したが、本発明は上記一実施の形態例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含むことはいうまでもない。
【００４６】
例えば、保守端末１０の制御部１３が、制御装置１から通知されるアプリケーションプログラムの照合結果に基づいて故障の状態を分析するようにしてもよい。例えば、最終の結果良の時刻とその前の結果不良の時刻を調べることにより、新しいビットエラーなのか古いビットエラーなのかを判定できる。また、１回の照合処理でエラーを検出した場合には、記憶部３に保存されているアプリケーションプログラムを、一時記憶部４にコピーすることにより、エラーを訂正することもできる。その後も同一のエリアでエラーが検出された場合（例えば６回連続で同一場所でエラーを検出した場合）、継続性のある重度のエラーであることがわかる。また、上記訂正によってエラーが回復した場合は、軽度のエラーと判断することもできる。
【符号の説明】
【００４７】
１…制御装置、２…Ｉ／Ｆ部、３…記憶部、４…一時記憶部、５…記憶部、６…演算処理部、７…時計部、８…警報発報部、９…バス、１０…保守端末、１１…Ｉ／Ｆ部、１２…記憶部、１３…制御部、１４…操作部、１５…バス、１６…表示部、２１…初期設定プログラム実行時間、２２…第１処理プログラム実行時間、２３…第２処理プログラム実行時間、２４…第３処理プログラム実行時間、２５…空き時間、２５ａ…照合プログラム実行時間、２５ｂ…実質空き時間、
【図１】
2011221751.tif 000003
【図２】
2011221751.tif 000004
【図３】
2011221751.tif 000005