JP5590667B2 - サブルーチン実行監視装置及びサブルーチン実行監視方法 - Google Patents

サブルーチン実行監視装置及びサブルーチン実行監視方法 Download PDF

Info

Publication number
JP5590667B2
JP5590667B2 JP2010151203A JP2010151203A JP5590667B2 JP 5590667 B2 JP5590667 B2 JP 5590667B2 JP 2010151203 A JP2010151203 A JP 2010151203A JP 2010151203 A JP2010151203 A JP 2010151203A JP 5590667 B2 JP5590667 B2 JP 5590667B2
Authority
JP
Japan
Prior art keywords
execution
subroutine
counter
counter value
executed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010151203A
Other languages
English (en)
Other versions
JP2012014523A (ja
Inventor
卓志 縮
良雄 丸山
昌弘 弓達
良樹 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010151203A priority Critical patent/JP5590667B2/ja
Publication of JP2012014523A publication Critical patent/JP2012014523A/ja
Application granted granted Critical
Publication of JP5590667B2 publication Critical patent/JP5590667B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、例えば、プログラマブルコントローラーがメインルーチン内で周期的に実行する複数のサブルーチンが、予め設定された順番通りに実行されているかどうかを監視する場合に適用して好適なサブルーチン実行監視装置及びサブルーチン実行監視方法に関する。
従来、火力、水力、原子力等の発電所において用いられるプラント制御システムのプログラマブルコントローラーは、メインルーチンを一定周期で実行して制御を行っている。このメインルーチンは、入力、演算、出力等の複数のサブルーチンを、予め設定された順番で実行する機能を有する。このようなプラントでは、高い信頼性が要求されており、処理の誤動作を防止するために各種の制御が行われている。
近年では、世界的に「機能安全」が注目されており、その一環として、上述したプラント制御システムで用いられるプラント制御方法に関しても、予め設定された順番で複数のサブルーチンが実行されているかを監視する手法が求められている。従来のサブルーチン実行の監視を行う技術には、以下のようなものがある。
特許文献1には、複数のサブルーチンを実行することによって、サブルーチンの実行状態を判断する技術が開示されている。この技術では、サブルーチンを実行後に、実行したサブルーチンの情報を記憶する。そして、次のサブルーチンが実行される前に、次に実行するサブルーチンに対応するサブルーチンの情報と、記憶しているサブルーチンの情報を比較する。この比較した情報が相違している場合にサブルーチン実行状態に異常ありと判断することを特徴とするものである。
特許文献2には、プログラムが実行される度に識別情報を比較して、プログラムの正常動作又は暴走発生状態を識別する技術が開示されている。この技術では、プログラムの特定の複数の実行順序を記憶させておき、コンピューターが、プログラムの実行を開始する前に、1番目の識別情報を記憶する。そして、プログラムの実行位置が特定の複数の位置のいずれか1つに到達するごとに、記憶していた識別情報と当該特定位置に対応する識別情報を比較して、識別情報が一致すると正常動作とみなし、特定位置の次の接続順序にあたる特定位置の識別情報を記憶する。一方、識別情報が不一致である場合に、コンピューターは、暴走発生状態とみなすことを特徴とするものである。
特開2000−339197号公報 特開平6−324914号公報
ところで、前述した1つ目の従来例(特許文献1)では、例えば、呼出しサブルーチンがサブルーチンSR4であるか判断した後(ST2a)、サブルーチンSR1の処理(ST2b)が2回実行されると、サブルーチンの重複実行に基づく異常を検出することができない。この原因は、サブルーチンを実行したという記録を、実行したサブルーチン内で行っていないためである。
また、前述した2つ目の従来例(特許文献2)では、例えば、チェックプログラムをコールするプログラムが全て実行されなかった場合は、異常を検出することができない。この原因は、プログラムの実行をチェックするチェックプログラムが、サブルーチン内で実行されておらず、そもそもプログラムが実行されなければ、チェックプログラムが実行されないためである。
本発明では、上述した従来技術の問題点を解消するため、メインルーチン内で実行される複数のサブルーチンの実行状態を確実に監視することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係るサブルーチン実行監視装置は、予め実行順番が定められている複数のサブルーチンを実行するメインルーチンが、複数回実行されるコンピューターシステムに用いられ、サブルーチンの実行状態を監視するサブルーチン実行監視に適用される。
このとき、前回までのメインルーチンの実行回数を示すカウンタ値に“1”を加算したを第1の実行回数記憶部に記憶し、全てのサブルーチンが実行されるまで、サブルーチンが実行される度に、第1の実行回数記憶部に記憶されたカウンタ値にサブルーチンの実行回数を示すカウンタ値を加えた値を第2の実行回数記憶部に記憶し、サブルーチン毎に設けられ、サブルーチンの実行を示すカウンタ値として、サブルーチンが実行されるまでに実行された全てのサブルーチンの実行回数を示すカウンタ値とメインルーチンの実行回数を示すカウンタ値の和をサブルーチン毎にサブルーチン実行回数記憶部に記憶する。
そして、メインルーチンの実行が開始される度に、前回までのメインルーチンの実行回数を示すカウンタ値に“1”を加算した第1及び第2の実行回数記憶部に書き込んで、第1及び第2の実行回数記憶部に記憶されるカウンタ値を初期値とする初期化を行い、第2の実行回数記憶部に記憶されたカウンタ値を読出して、サブルーチンの実行状態を検証する場合に、第1の実行回数記憶部から読出したカウンタ値及びサブルーチンの実行順番の和と、実行順番に対応して設けられたサブルーチン実行回数記憶部から読出したカウンタ値とを比較し、不一致の場合は、サブルーチンが実行順番の通りに実行されなかったと判断するものである。
本発明によれば、実行すべきサブルーチンが実行されなかったり、重複して実行されたり、誤った順序で実行されてしまったことを検出することが可能である。このため、判定結果より、予め実行順序が定められたサブルーチンが確実に実行されていること保証することができる。特に従来技術と比較し、サブルーチンが全く実行されなかった場合も検出することが可能である。
本発明の一実施の形態例に係るプログラマブルコントローラーの回路構成を示すブロック図である。 本発明の一実施の形態例に係る中央演算処理装置がアクセスするメモリ、カウンタ及びプログラムの構成例を示すブロック図である。 本発明の一実施の形態例に係るメインルーチンの処理手順を示すフローチャートである。 本発明の一実施の形態例に係る監視カウンタを初期化する処理手順を示すフローチャートである。 本発明の一実施の形態例に係る監視カウンタを更新する処理手順を示すフローチャートである。 本発明の一実施の形態例に係る監視カウンタをチェックする処理手順を示すフローチャートである。 本発明の一実施の形態例に係る正常状態における監視カウンタの変化例を示す説明図である。 本発明の一実施の形態例に係る起動番号2のサブルーチンが実行されなかった場合の監視カウンタの変化を示す説明図である。 本発明の一実施の形態例に係る起動番号2のサブルーチンが2回実行された場合の監視カウンタの変化を示す説明図である。
<1.一実施の形態>
以下、本発明の一実施の形態例について、添付図面を参照して説明する。本実施の形態では、予め実行順番が定められている複数のサブルーチンを実行するメインルーチンが、複数回実行されるコンピューターシステムに用いられ、サブルーチンの実行状態を監視するサブルーチン実行監視装置として、プログラマブルコントローラー1に適用した例について説明する。
図1は、プログラマブルコントローラー1の内部構成例を示す。
プログラマブルコントローラー1は、各部の処理を制御する中央演算処理装置(CPU:Central Processing Unit)1a、プログラムメモリとして用いられるROM(Read Only Memory)1b、ワークメモリとして用いられるRAM(Random Access Memory)1c、時間を監視するウォッチドッグタイマー1d、I/O(Input/Output)制御部1e、基幹ネットワークへのデータの送受信を制御するネットワーク制御部1fから構成されている。プログラマブルコントローラー1は、例えば、プラント等を制御するメインルーチンで呼び出されるサブルーチンの実行有無や実行回数等を監視する機能を有する。
ROM1bは、外部からの不正なアクセスを遮断するためプロテクトが施されている。ROM1b内には、OS(Operating System)と、プラント制御を行うためのメインルーチン13と、複数のサブルーチン14−1〜14−3(後述する図2参照)と、各種の演算に用いる固定情報が格納されている。
I/O制御部1eは、制御プラント6から入力するプラント入力データ2をRAM1c内に一時的に保存し、RAM1c内のプラント出力データ3を制御プラント6へ出力する制御を行う。ネットワーク制御部1fは、基幹ネットワーク7から入力するネットワーク入力データ4をRAM1c内に一時的に保存し、RAM1c内のネットワーク出力データ5を基幹ネットワーク7へ出力する制御を行う。
ウォッチドッグタイマー1dは、OSから、定周期で起動されるメインルーチンが実際に実行されているかどうかをメインルーチン13が更新するウォッチドッグタイマーがタイムアップする前に更新されるかどうかで監視する。RAM1c内には、本発明に関わるサブルーチン実行監視に使用するカウンタ情報(カウンタ値)を図2に示す監視メモリ10に保存する。
図2は、中央演算処理装置1aがアクセスするメモリ、カウンタ及びプログラムの構成例を示す。
ROM1bには、監視メモリ10が備える各種のカウンタを初期化する監視用カウンタ初期化プログラム11と、監視メモリ10に格納されたカウンタ値をチェックする監視用カウンタチェックプログラム12が格納される。監視用カウンタ初期化プログラム11は、メインルーチンの実行が開始される度に、ベースカウンタM1とカレントカウンタM2に記憶されるカウンタ値を初期化するカウンタ値初期化部として用いられる。また、カウンタチェックプログラム12は、カレントカウンタM2に記憶されたカウンタ値を読出して、サブルーチンの実行状態を検証する実行状態検証部として用いられる。
また、ROM1bには、メインルーチン13と、メインルーチン13によって順序が定められて実行されるサブルーチン14−1〜14−3と、各サブルーチンの実行に伴い、監視メモリ10内の起動番号1用カウンタM3を更新する起動番号1用カウンタ更新プログラム15−1〜起動番号3用カウンタM5を更新する起動番号3用カウンタ更新プログラム15−3が格納される。以下、起動番号が“n”である場合に実行されるサブルーチンの実行回数を更新するプログラムを、「起動番号n用カウンタ更新プログラム」と呼び、このプログラムが監視メモリ10の所定位置にカウンタ値を書き込む領域を、「起動番号n用カウンタ」と呼ぶ。
サブルーチン14−1〜14−3には、起動順として、予め起動番号1〜3が割り振られる。サブルーチン14−1〜14−3内の任意の位置には、監視メモリ10内の起動番号n用カウンタを更新するための起動番号n用カウンタ更新プログラムが、起動番号に対応してそれぞれ設けられている。
中央演算処理装置1aは、サブルーチン14−1〜14−3を全て実行した後、監視用カウンタチェックプログラム12を起動して、ベースカウンタM1から読出したカウンタ値及びサブルーチンの実行順番の和と、実行順番に対応して設けられたサブルーチン実行回数記憶部から読出したカウンタ値とを比較し、不一致の場合は、サブルーチンが実行順番の通りに実行されなかったと判断する。これにより、中央演算処理装置1aは、監視メモリ10から取り出した各カウンタ値より、サブルーチンの実行順番、未実行又は重複実行の有無等の実行結果を確認することができる。
RAM1cに構成される監視メモリ10は、メインルーチンの実行回数を示すカウンタ値を記憶する第1の実行回数記憶部としてベースカウンタM1と、サブルーチンの実行回数を示すカウンタ値を記憶する第2の実行回数記憶部としてカレントカウンタM2を備える。また、監視メモリ10は、サブルーチン毎に設けられ、サブルーチンの実行を示すカウンタ値として、サブルーチンの実行回数を示すカウンタ値とメインルーチンの実行回数を示すカウンタ値の和をサブルーチン毎に記憶するサブルーチン実行回数記憶部として、起動番号1用カウンタM3〜起動番号3用カウンタM5を備える。
ベースカウンタM1は、中央演算処理装置1aがメインルーチン13を実行する際に、初期値を格納する。カレントカウンタM2は、メインルーチン13の実行に際して、サブルーチン14−1〜14−3が起動番号順に実行される度に“1”ずつカウントアップしたカウンタ値を格納する。
中央演算処理装置1aは、ROM1bから読出す監視用カウンタ初期化プログラム11,監視用カウンタチェックプログラム12を用いて、RAM1cに構成する監視メモリ10の各種のカウンタ値を演算する。また、中央演算処理装置1aは、OSから定周期(例えば、100ミリ秒〜200ミリ秒)で起動されたメインルーチン13が、複数のサブルーチン14−1〜14−3を実行することで、RAM1c内の入力情報とROM1b内に格納されている演算情報を元に演算を行い、RAM1c内に出力情報を格納する。
上述したように、中央演算処理装置1aがメインルーチン13を実行すると、サブルーチン14−1〜14−3が起動番号順に実行される。そして、サブルーチン14−1〜14−3が実行される度に、監視メモリ10に割り当てられた起動番号n用カウンタのうち、起動番号nに対応する起動番号n用カウンタのカウンタ値を“1”ずつカウントアップして更新する起動番号n用カウンタ更新プログラムが実行される。
図3は、メインルーチン13の処理手順を示す。
始めに、中央演算処理装置1aは、監視用カウンタ初期化プログラム11を実行し、ベースカウンタM1とカレントカウンタM2のカウンタ値を更新する(ステップS1)。次に、中央演算処理装置1aは、ウォッチドッグタイマー1dに対して、タイマのリフレッシュ動作を指示する(ステップS2)。
次に、メインルーチン13は、起動されるサブルーチンの順番に従い、予め起動番号が設定された、起動番号1〜3のサブルーチン14−1〜14−3(ステップS3〜S5)を順に実行する。各サブルーチン14−1〜14−3は、自身の実行に合わせて、起動番号n用カウンタ更新プログラム(ステップS7〜S9)を実行し、起動番号n用カウンタのカウンタ値を更新する。
そして、中央演算処理装置1aは、監視用カウンタチェックプログラム12を実行し(ステップS6)、監視メモリ10に格納された各カウンタ値より、サブルーチン14−1〜14−3の実行が正常に行われたかどうかをチェックする。
図4は、監視用カウンタ初期化プログラム11の処理内容を示す。
中央演算処理装置1aによって実行される監視用カウンタ初期化プログラム11は、RAM1cから、ベースカウンタM1のカウンタ値に“1”を加算して、ベースカウンタM1に加算した値を書き戻す(ステップS10)。そして、ベースカウンタM1に書き戻したカウンタ値を、カレントカウンタM2にも書込む(ステップS11)。
図5は、起動番号n用カウンタ更新プログラムの処理内容を示す。
中央演算処理装置1aによって実行される起動番号n用カウンタ更新プログラムは、RAM1cから、カレントカウンタM2のカウンタ値に“1”を加算して、カレントカウンタM2に書き戻す(ステップS20)。そして、カレントカウンタM2に書き戻したカウンタ値を、実行されたサブルーチンに設定されている起動番号nに対応する起動番号n用カウンタにも書込む(ステップS21)。
図6は、監視用カウンタチェックプログラム12の処理内容を示す。
中央演算処理装置1aによって実行される監視用カウンタチェックプログラム12は、RAM1cから、ベースカウンタM1とカレントカウンタM2からカウンタ値を読出し、カウンタ値が一致しているかどうかを判定する(ステップS30)。
判定結果が“Yes”の場合、監視用カウンタチェックプログラム12は、サブルーチンが一度も実行されていないと判断し、異常処理を実行する。この異常処理とは、例えば、二重系のシステムであれば、主従のシステムを切替えたり、プログラマブルコントローラー1の動作を停止したりする処理である。判定結果が“No”の場合、監視用カウンタチェックプログラム12は、起動番号1〜nが振られた全ての起動番号1用カウンタM3〜起動番号3用カウンタM5に対して以下の処理を行う。
始めに、ベースカウンタM1にサブルーチンの起動番号nを加算した数値が、起動番号n用カウンタに格納されているカウンタ値と一致しているかを、起動番号1用カウンタM3から順に判定する(ステップS31)。判定結果が“No”の場合は、サブルーチンが設定された順番通りに実行されなかったと判断し、異常処理を行う。判定結果が“Yes”の場合は、設定された最大の起動番号(本例では、n=3)に達するまで、ステップS31に示したチェック処理を行う(ステップS32)。
次に、監視メモリ10に格納された各カウンタ値の例について、図7〜図9を参照して説明する。
図7は、メインルーチン13が正常に終了した場合におけるカウンタ値の例を示す。
ここでは、監視用カウンタ初期化プログラム11が実行された後にベースカウンタM1と、カレントカウンタM2の初期値が“10”となっていた場合を想定する。このとき、正常に起動番号1〜3のサブルーチン14−1〜14−3が実行されると、起動番号n用カウンタは、各サブルーチンの実行に合わせて図7に示すように変化する。このため、監視用カウンタチェックプログラム12は、監視カウンタのカウンタ値を読出して、図6に示す処理を実行することによって、サブルーチン14−1〜14−3が正常に実行されたことを検証できる。なお、メインルーチン13が一定周期後に再起動され、監視用カウンタ初期化プログラム11が実行された場合におけるベースカウンタM1と、カレントカウンタM2の初期値は“11”となる。
図8は、起動番号2のサブルーチン14−2が実行されなかった場合における、監視カウンタの例を示す。
この場合、起動番号2用カウンタM4には、前の周期に格納されたカウンタ値“11”が残っている。ここで、監視用カウンタチェックプログラム12は、起動番号2用カウンタに格納された値“11”と、ベースカウンタM1に格納された数値“10”に起動番号2を加算した数値である“12”を比較する(図6のステップS32)。このとき、比較結果が一致しないため、監視用カウンタチェックプログラム12は、サブルーチン14−2が正常に実行されなかったことを検出できる。
図9は、起動番号2のサブルーチンが2回実行された場合における、監視カウンタの例を示す。
この場合、起動番号2用カウンタM4は、2回実行されたことを示すカウンタ値“13”が格納される。ここで、監視用カウンタチェックプログラム12にて、ベースカウンタM1と起動番号2を加算した数値である“12”を比較する(図6のステップS32)。このとき、比較結果が一致しないため、監視用カウンタチェックプログラム12は、サブルーチン14−2が2回実行されたことを検出できる。
以上説明した本実施の形態に係るプログラマブルコントローラー1によれば、実行すべき複数のサブルーチンにそれぞれ実行順番を表す起動番号を付与し、監視メモリ10に、ベースとなるベースカウンタM1、プログラム実行ごとにカウントアップするカレントカウンタM2、及び実行すべきサブルーチンの数と同じ数の実行カウンタとして起動番号n用カウンタを備える。そして、サブルーチン14−1〜14−3の実行前には、カレントカウンタM2に記憶されるカウンタ値をベースカウンタM1にコピーしておき、サブルーチンの実行ごとにカレントカウンタM2に”1”を加算し、加算した値を実行したサブルーチンに対応する起動番号n用カウンタに格納する。そして、特定のチェックポイントにおいて、ベースカウンタM1とカレントカウンタM2に格納したカウンタ値が一致すれば、サブルーチンが1度も実行されていないということを判定する。一方、各サブルーチンに割り当てられる起動番号n用カウンタに格納されたカウンタ値が、ベースカウンタM1と起動番号を加算した値と一致していることで、サブルーチンの実行が正常であったということを判定する。
このように、一周期のメインルーチン内で複数のサブルーチンを実行した後、中央演算処理装置1aが監視用カウンタチェックプログラム12を実行して、カウンタ値をチェックすることによって、サブルーチンの正常実行、未実行、重複実行を検出することができる。このため、サブルーチンの未実行や重複実行を速やかに検出し、システムへの影響を最小限に抑えることができるという効果がある。
また、従来は、サブルーチンを実行する度に実行状態をチェックしたが、複数のサブルーチンが実行された後、まとめて各サブルーチンの実行状態をチェックすることができる。これにより、サブルーチンの重要度の軽重に併せて、監視用カウンタチェックプログラム12を起動させることが可能となる。
なお、上述した実施の形態例において、監視用カウンタチェックプログラム12の起動タイミングを、サブルーチン14−1〜14−3を実行した後としたが(図3のステップS6)、検証対象となるサブルーチンを実行した後であれば、どの位置で実行してもよい。このため、図3のステップS3,S4の実行後に、監視用カウンタチェックプログラム12の起動タイミングを設定してもよい。このように、サブルーチンの実行をチェックする監視用カウンタチェックプログラム12の位置を任意とすることが可能であり、サブルーチンを機能単位で纏めてチェックすることができるようになっているため、処理効率を向上させることが可能である。
また、本発明は上述した実施の形態例に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
1…プログラマブルコントローラー、1a…中央演算処理装置、1b…ROM、1c…RAM、1d…ウォッチドッグタイマー、1e…I/O制御部、1f…ネットワーク制御部、6…制御プラント、7…基幹ネットワーク、10…監視メモリ、11…監視用カウンタ初期化プログラム、12…監視用カウンタチェックプログラム、13…メインルーチン、14−1〜14−3…サブルーチン、15−1〜15−3…起動番号3用カウンタ更新プログラム、M1…ベースカウンタ、M1…起動番号1用カウンタ、M2…カレントカウンタ、M3…起動番号1用カウンタ、M4…起動番号2用カウンタ、M5…起動番号3用カウンタ

Claims (5)

  1. 予め実行順番が定められている複数のサブルーチンを実行するメインルーチンが、複数回実行されるコンピューターシステムに用いられ、前記サブルーチンの実行状態を監視するサブルーチン実行監視装置において、
    前回までの前記メインルーチンの実行回数を示すカウンタ値に“1”を加算したを記憶する第1の実行回数記憶部と、
    全ての前記サブルーチンが実行されるまで、前記サブルーチンが実行される度に、前記第1の実行回数記憶部に記憶されたカウンタ値に前記サブルーチンの実行回数を示すカウンタ値を加えた値を記憶する第2の実行回数記憶部と、
    前記サブルーチン毎に設けられ、前記サブルーチンの実行を示すカウンタ値として、前記サブルーチンが実行されるまでに実行された全ての前記サブルーチンの実行回数を示すカウンタ値と前記メインルーチンの実行回数を示すカウンタ値の和を前記サブルーチン毎に記憶するサブルーチン実行回数記憶部と、
    前記メインルーチンの実行が開始される度に、前回までの前記メインルーチンの実行回数を示すカウンタ値に“1”を加算したを前記第1及び第2の実行回数記憶部に書き込んで、前記第1及び第2の実行回数記憶部に記憶される前記カウンタ値初期化を行うカウンタ値初期化部と、
    前記第2の実行回数記憶部に記憶された前記カウンタ値を読出して、前記サブルーチンの実行状態を検証する実行状態検証部と、を備え、
    前記実行状態検証部は、前記第1の実行回数記憶部から読出したカウンタ値及び前記サブルーチンの実行順番の和と、前記実行順番に対応して設けられた前記サブルーチン実行回数記憶部から読出したカウンタ値とを比較し、不一致の場合は、前記サブルーチンが前記実行順番の通りに実行されなかったと判断することを特徴とするサブルーチン実行監視装置。
  2. 前記実行状態検証部は、前記第1の実行回数記憶部から読出したカウンタ値と、前記第2の実行回数記憶部から読出したカウンタ値を比較し、一致した場合は、前記複数のサブルーチンが1回も実行されなかったと判断することを特徴とする
    請求項1に記載のサブルーチン実行監視装置。
  3. 前記実行状態検証部は、検証対象となるサブルーチン実行後のどの位置で実行してもよいことを特徴とする
    請求項1又は2に記載のサブルーチン実行監視装置。
  4. 前記実行状態検証部は、複数のサブルーチンの実行状態を一度に検証することを特徴とする
    請求項1又は2に記載のサブルーチン実行監視装置。
  5. 予め実行順番が定められている複数のサブルーチンを実行するメインルーチンが、複数回実行されるコンピューターシステムに用いられ、前記サブルーチンの実行状態を監視するサブルーチン実行監視方法において、
    前回までの前記メインルーチンの実行回数を示すカウンタ値に“1”を加算した第1の実行回数記憶部に記憶するステップと、
    全ての前記サブルーチンが実行されるまで、前記サブルーチンが実行される度に、前記第1の実行回数記憶部に記憶されたカウンタ値に前記サブルーチンの実行回数を示すカウンタ値を加えた値を第2の実行回数記憶部に記憶するステップと、
    前記サブルーチン毎に設けられ、前記サブルーチンの実行を示すカウンタ値として、前記サブルーチンが実行されるまでに実行された全ての前記サブルーチンの実行回数を示すカウンタ値と前記メインルーチンの実行回数を示すカウンタ値の和を前記サブルーチン毎にサブルーチン実行回数記憶部に記憶するステップと、
    前記メインルーチンの実行が開始される度に、前回までの前記メインルーチンの実行回数を示すカウンタ値に“1”を加算したを前記第1及び第2の実行回数記憶部に書き込んで、前記第1及び第2の実行回数記憶部に記憶される前記カウンタ値を前記初期値とする初期化を行うステップと、
    前記第2の実行回数記憶部に記憶された前記カウンタ値を読出して、前記サブルーチンの実行状態を検証する場合に、前記第1の実行回数記憶部から読出したカウンタ値及び前記サブルーチンの実行順番の和と、前記実行順番に対応して設けられた前記サブルーチン実行回数記憶部から読出したカウンタ値とを比較し、不一致の場合は、前記サブルーチンが前記実行順番の通りに実行されなかったと判断するステップと、を有することを特徴とするサブルーチン実行監視方法。
JP2010151203A 2010-07-01 2010-07-01 サブルーチン実行監視装置及びサブルーチン実行監視方法 Active JP5590667B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010151203A JP5590667B2 (ja) 2010-07-01 2010-07-01 サブルーチン実行監視装置及びサブルーチン実行監視方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010151203A JP5590667B2 (ja) 2010-07-01 2010-07-01 サブルーチン実行監視装置及びサブルーチン実行監視方法

Publications (2)

Publication Number Publication Date
JP2012014523A JP2012014523A (ja) 2012-01-19
JP5590667B2 true JP5590667B2 (ja) 2014-09-17

Family

ID=45600855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010151203A Active JP5590667B2 (ja) 2010-07-01 2010-07-01 サブルーチン実行監視装置及びサブルーチン実行監視方法

Country Status (1)

Country Link
JP (1) JP5590667B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6060584B2 (ja) * 2012-09-19 2017-01-18 富士電機株式会社 プログラム異常検出装置、そのプログラム
JP5951130B2 (ja) * 2013-06-13 2016-07-13 三菱電機株式会社 プログラム検証装置及びプログラム検証方法及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58154052A (ja) * 1982-03-09 1983-09-13 Diesel Kiki Co Ltd マイクロコンピユ−タにおけるプログラム暴走検出方法
JPH0293740A (ja) * 1988-09-30 1990-04-04 Mitsubishi Electric Corp プログラム実行状態トレース方式
JP2793993B2 (ja) * 1990-04-05 1998-09-03 株式会社ゼクセル マイクロコンピュータにおけるプログラム暴走検出方法
JPH06149626A (ja) * 1992-11-13 1994-05-31 Fujitsu Ten Ltd 電子制御装置

Also Published As

Publication number Publication date
JP2012014523A (ja) 2012-01-19

Similar Documents

Publication Publication Date Title
CN104035843B (zh) 用于提高锁步核可用性的系统和方法
US8677189B2 (en) Recovering from stack corruption faults in embedded software systems
US7890800B2 (en) Method, operating system and computing hardware for running a computer program
TWI676889B (zh) 開機啟動資料有效性技術
WO2014161660A1 (en) Method and apparatus for controlling a physical unit in an automation system
US7788533B2 (en) Restarting an errored object of a first class
US10360115B2 (en) Monitoring device, fault-tolerant system, and control method
JP6723941B2 (ja) 制御装置および制御プログラム更新方法
JP5590667B2 (ja) サブルーチン実行監視装置及びサブルーチン実行監視方法
CN108304140B (zh) 闪存数据管理方法、装置及微控制器
JP5504604B2 (ja) Ram診断装置
JP2016066139A (ja) 車両制御装置
JP2016505183A5 (ja)
KR102030461B1 (ko) 복수의 프로세서 오류 감지 시스템 및 그 방법
JP5579257B2 (ja) 主記憶装置における情報を復元するための装置及び方法
JP5365875B2 (ja) 産業用コントローラ
CN114356658A (zh) 固件升级异常的处理方法、计算机设备以及可读存储介质
CN109358903B (zh) 数据访问设备和访问错误通知方法
JP2005092695A (ja) 二重化コントローラ、その等値化モード決定方法
JP6524989B2 (ja) 演算器の動作保証方法
RU2305313C1 (ru) Способ я.а. горбадея обеспечения надежной работы программного вычислительного средства
JP5095241B2 (ja) データ処理装置及びプログラム起動方法
JP5227653B2 (ja) 多重化計算機システム、及びその処理方法
JP5953976B2 (ja) ファームウェア交換支援プログラム、ファームウェア交換支援方法、及び処理装置
JP2017021509A (ja) 記憶装置およびその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120615

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140325

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140523

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140725

R150 Certificate of patent or registration of utility model

Ref document number: 5590667

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150