JP5590667B2 - サブルーチン実行監視装置及びサブルーチン実行監視方法 - Google Patents
サブルーチン実行監視装置及びサブルーチン実行監視方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
このとき、前回までのメインルーチンの実行回数を示すカウンタ値に“1”を加算した値を第1の実行回数記憶部に記憶し、全てのサブルーチンが実行されるまで、サブルーチンが実行される度に、第1の実行回数記憶部に記憶されたカウンタ値にサブルーチンの実行回数を示すカウンタ値を加えた値を第2の実行回数記憶部に記憶し、サブルーチン毎に設けられ、サブルーチンの実行を示すカウンタ値として、サブルーチンが実行されるまでに実行された全てのサブルーチンの実行回数を示すカウンタ値とメインルーチンの実行回数を示すカウンタ値の和をサブルーチン毎にサブルーチン実行回数記憶部に記憶する。
そして、メインルーチンの実行が開始される度に、前回までのメインルーチンの実行回数を示すカウンタ値に“1”を加算した値を第1及び第2の実行回数記憶部に書き込んで、第1及び第2の実行回数記憶部に記憶されるカウンタ値を初期値とする初期化を行い、第2の実行回数記憶部に記憶されたカウンタ値を読出して、サブルーチンの実行状態を検証する場合に、第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は、例えば、プラント等を制御するメインルーチンで呼び出されるサブルーチンの実行有無や実行回数等を監視する機能を有する。
始めに、中央演算処理装置1aは、監視用カウンタ初期化プログラム11を実行し、ベースカウンタM1とカレントカウンタM2のカウンタ値を更新する(ステップS1)。次に、中央演算処理装置1aは、ウォッチドッグタイマー1dに対して、タイマのリフレッシュ動作を指示する(ステップS2)。
中央演算処理装置1aによって実行される監視用カウンタ初期化プログラム11は、RAM1cから、ベースカウンタM1のカウンタ値に“1”を加算して、ベースカウンタM1に加算した値を書き戻す(ステップS10)。そして、ベースカウンタM1に書き戻したカウンタ値を、カレントカウンタM2にも書込む(ステップS11)。
中央演算処理装置1aによって実行される起動番号n用カウンタ更新プログラムは、RAM1cから、カレントカウンタM2のカウンタ値に“1”を加算して、カレントカウンタM2に書き戻す(ステップS20)。そして、カレントカウンタM2に書き戻したカウンタ値を、実行されたサブルーチンに設定されている起動番号nに対応する起動番号n用カウンタにも書込む(ステップS21)。
中央演算処理装置1aによって実行される監視用カウンタチェックプログラム12は、RAM1cから、ベースカウンタM1とカレントカウンタM2からカウンタ値を読出し、カウンタ値が一致しているかどうかを判定する(ステップS30)。
ここでは、監視用カウンタ初期化プログラム11が実行された後にベースカウンタM1と、カレントカウンタM2の初期値が“10”となっていた場合を想定する。このとき、正常に起動番号1〜3のサブルーチン14−1〜14−3が実行されると、起動番号n用カウンタは、各サブルーチンの実行に合わせて図7に示すように変化する。このため、監視用カウンタチェックプログラム12は、監視カウンタのカウンタ値を読出して、図6に示す処理を実行することによって、サブルーチン14−1〜14−3が正常に実行されたことを検証できる。なお、メインルーチン13が一定周期後に再起動され、監視用カウンタ初期化プログラム11が実行された場合におけるベースカウンタM1と、カレントカウンタM2の初期値は“11”となる。
この場合、起動番号2用カウンタM4には、前の周期に格納されたカウンタ値“11”が残っている。ここで、監視用カウンタチェックプログラム12は、起動番号2用カウンタに格納された値“11”と、ベースカウンタM1に格納された数値“10”に起動番号2を加算した数値である“12”を比較する(図6のステップS32)。このとき、比較結果が一致しないため、監視用カウンタチェックプログラム12は、サブルーチン14−2が正常に実行されなかったことを検出できる。
この場合、起動番号2用カウンタM4は、2回実行されたことを示すカウンタ値“13”が格納される。ここで、監視用カウンタチェックプログラム12にて、ベースカウンタM1と起動番号2を加算した数値である“12”を比較する(図6のステップS32)。このとき、比較結果が一致しないため、監視用カウンタチェックプログラム12は、サブルーチン14−2が2回実行されたことを検出できる。
Claims (5)
- 予め実行順番が定められている複数のサブルーチンを実行するメインルーチンが、複数回実行されるコンピューターシステムに用いられ、前記サブルーチンの実行状態を監視するサブルーチン実行監視装置において、
前回までの前記メインルーチンの実行回数を示すカウンタ値に“1”を加算した値を記憶する第1の実行回数記憶部と、
全ての前記サブルーチンが実行されるまで、前記サブルーチンが実行される度に、前記第1の実行回数記憶部に記憶されたカウンタ値に前記サブルーチンの実行回数を示すカウンタ値を加えた値を記憶する第2の実行回数記憶部と、
前記サブルーチン毎に設けられ、前記サブルーチンの実行を示すカウンタ値として、前記サブルーチンが実行されるまでに実行された全ての前記サブルーチンの実行回数を示すカウンタ値と前記メインルーチンの実行回数を示すカウンタ値の和を前記サブルーチン毎に記憶するサブルーチン実行回数記憶部と、
前記メインルーチンの実行が開始される度に、前回までの前記メインルーチンの実行回数を示すカウンタ値に“1”を加算した値を前記第1及び第2の実行回数記憶部に書き込んで、前記第1及び第2の実行回数記憶部に記憶される前記カウンタ値の初期化を行うカウンタ値初期化部と、
前記第2の実行回数記憶部に記憶された前記カウンタ値を読出して、前記サブルーチンの実行状態を検証する実行状態検証部と、を備え、
前記実行状態検証部は、前記第1の実行回数記憶部から読出したカウンタ値及び前記サブルーチンの実行順番の和と、前記実行順番に対応して設けられた前記サブルーチン実行回数記憶部から読出したカウンタ値とを比較し、不一致の場合は、前記サブルーチンが前記実行順番の通りに実行されなかったと判断することを特徴とするサブルーチン実行監視装置。 - 前記実行状態検証部は、前記第1の実行回数記憶部から読出したカウンタ値と、前記第2の実行回数記憶部から読出したカウンタ値を比較し、一致した場合は、前記複数のサブルーチンが1回も実行されなかったと判断することを特徴とする
請求項1に記載のサブルーチン実行監視装置。 - 前記実行状態検証部は、検証対象となるサブルーチン実行後のどの位置で実行してもよいことを特徴とする
請求項1又は2に記載のサブルーチン実行監視装置。 - 前記実行状態検証部は、複数のサブルーチンの実行状態を一度に検証することを特徴とする
請求項1又は2に記載のサブルーチン実行監視装置。 - 予め実行順番が定められている複数のサブルーチンを実行するメインルーチンが、複数回実行されるコンピューターシステムに用いられ、前記サブルーチンの実行状態を監視するサブルーチン実行監視方法において、
前回までの前記メインルーチンの実行回数を示すカウンタ値に“1”を加算した値を第1の実行回数記憶部に記憶するステップと、
全ての前記サブルーチンが実行されるまで、前記サブルーチンが実行される度に、前記第1の実行回数記憶部に記憶されたカウンタ値に前記サブルーチンの実行回数を示すカウンタ値を加えた値を第2の実行回数記憶部に記憶するステップと、
前記サブルーチン毎に設けられ、前記サブルーチンの実行を示すカウンタ値として、前記サブルーチンが実行されるまでに実行された全ての前記サブルーチンの実行回数を示すカウンタ値と前記メインルーチンの実行回数を示すカウンタ値の和を前記サブルーチン毎にサブルーチン実行回数記憶部に記憶するステップと、
前記メインルーチンの実行が開始される度に、前回までの前記メインルーチンの実行回数を示すカウンタ値に“1”を加算した値を前記第1及び第2の実行回数記憶部に書き込んで、前記第1及び第2の実行回数記憶部に記憶される前記カウンタ値を前記初期値とする初期化を行うステップと、
前記第2の実行回数記憶部に記憶された前記カウンタ値を読出して、前記サブルーチンの実行状態を検証する場合に、前記第1の実行回数記憶部から読出したカウンタ値及び前記サブルーチンの実行順番の和と、前記実行順番に対応して設けられた前記サブルーチン実行回数記憶部から読出したカウンタ値とを比較し、不一致の場合は、前記サブルーチンが前記実行順番の通りに実行されなかったと判断するステップと、を有することを特徴とするサブルーチン実行監視方法。
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)
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)
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 | 電子制御装置 |
-
2010
- 2010-07-01 JP JP2010151203A patent/JP5590667B2/ja active Active
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 |