JP2012014523A - サブルーチン実行監視装置及びサブルーチン実行監視方法 - Google Patents
サブルーチン実行監視装置及びサブルーチン実行監視方法 Download PDFInfo
- Publication number
- JP2012014523A JP2012014523A JP2010151203A JP2010151203A JP2012014523A JP 2012014523 A JP2012014523 A JP 2012014523A JP 2010151203 A JP2010151203 A JP 2010151203A JP 2010151203 A JP2010151203 A JP 2010151203A JP 2012014523 A JP2012014523 A JP 2012014523A
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【解決手段】中央演算処理装置1aは、ROM1bに格納されたサブルーチンを実行時に、サブルーチンの実行順番が識別できる情報として、規則性を持ったカウンタ値をRAM1c内に監視用カウンタとして、サブルーチン毎に格納する。中央演算処理装置1aは、サブルーチンの実行監視を行うプログラムにて、RAM1c内のサブルーチン毎に格納された監視用カウンタが規則正しく更新されていることを確認する。この規則性が崩れた場合に、サブルーチンが期待する順序で実行されなかったことを検出する。
【選択図】図1
Description
このとき、メインルーチンの実行回数を示すカウンタ値を第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の実行回数記憶部と、
前記サブルーチンの実行回数を示すカウンタ値を記憶する第2の実行回数記憶部と、
前記サブルーチン毎に設けられ、前記サブルーチンの実行を示すカウンタ値として、前記サブルーチンの実行回数を示すカウンタ値と前記メインルーチンの実行回数を示すカウンタ値の和を前記サブルーチン毎に記憶するサブルーチン実行回数記憶部と、
前記メインルーチンの実行が開始される度に前記第1及び第2の実行回数記憶部に記憶される前記カウンタ値を初期化するカウンタ値初期化部と、
前記第2の実行回数記憶部に記憶された前記カウンタ値を読出して、前記サブルーチンの実行状態を検証する実行状態検証部と、を備え、
前記実行状態検証部は、前記第1の実行回数記憶部から読出したカウンタ値及び前記サブルーチンの実行順番の和と、前記実行順番に対応して設けられた前記サブルーチン実行回数記憶部から読出したカウンタ値とを比較し、不一致の場合は、前記サブルーチンが前記実行順番の通りに実行されなかったと判断することを特徴とするサブルーチン実行監視装置。 - 前記実行状態検証部は、前記第1の実行回数記憶部から読出したカウンタ値と、前記第2の実行回数記憶部から読出したカウンタ値を比較し、一致した場合は、前記複数のサブルーチンが1回も実行されなかったと判断することを特徴とする
請求項1に記載のサブルーチン実行監視装置。 - 前記実行状態検証部は、検証対象となるサブルーチン実行後のどの位置で実行してもよいことを特徴とする
請求項1又は2に記載のサブルーチン実行監視装置。 - 前記実行状態検証部は、複数のサブルーチンの実行状態を一度に検証することを特徴とする
請求項1又は2に記載のサブルーチン実行監視装置。 - 予め実行順番が定められている複数のサブルーチンを実行するメインルーチンが、複数回実行されるコンピューターシステムに用いられ、前記サブルーチンの実行状態を監視するサブルーチン実行監視方法において、
前記メインルーチンの実行回数を示すカウンタ値を第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 true JP2012014523A (ja) | 2012-01-19 |
JP5590667B2 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014059846A (ja) * | 2012-09-19 | 2014-04-03 | Fuji Electric Co Ltd | プログラム異常検出装置、そのプログラム |
WO2014199496A1 (ja) * | 2013-06-13 | 2014-12-18 | 三菱電機株式会社 | プログラム検証装置及びプログラム検証方法及びプログラム |
Citations (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 | プログラム実行状態トレース方式 |
JPH03288942A (ja) * | 1990-04-05 | 1991-12-19 | Zexel Corp | マイクロコンピュータにおけるプログラム暴走検出方法 |
JPH06149626A (ja) * | 1992-11-13 | 1994-05-31 | Fujitsu Ten Ltd | 電子制御装置 |
-
2010
- 2010-07-01 JP JP2010151203A patent/JP5590667B2/ja active Active
Patent Citations (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 | プログラム実行状態トレース方式 |
JPH03288942A (ja) * | 1990-04-05 | 1991-12-19 | Zexel Corp | マイクロコンピュータにおけるプログラム暴走検出方法 |
JPH06149626A (ja) * | 1992-11-13 | 1994-05-31 | Fujitsu Ten Ltd | 電子制御装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014059846A (ja) * | 2012-09-19 | 2014-04-03 | Fuji Electric Co Ltd | プログラム異常検出装置、そのプログラム |
WO2014199496A1 (ja) * | 2013-06-13 | 2014-12-18 | 三菱電機株式会社 | プログラム検証装置及びプログラム検証方法及びプログラム |
JP5951130B2 (ja) * | 2013-06-13 | 2016-07-13 | 三菱電機株式会社 | プログラム検証装置及びプログラム検証方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP5590667B2 (ja) | 2014-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104035843B (zh) | 用于提高锁步核可用性的系统和方法 | |
US7890800B2 (en) | Method, operating system and computing hardware for running a computer program | |
WO2007080931A1 (ja) | デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム | |
JP2012058879A (ja) | オペレーティングシステム起動管理装置 | |
US10114356B2 (en) | Method and apparatus for controlling a physical unit in an automation system | |
WO2014004783A1 (en) | Methods and apparatus to provide failure detection | |
CN105677394B (zh) | 一种终端设备的应用程序升级方法和装置 | |
US10360115B2 (en) | Monitoring device, fault-tolerant system, and control method | |
JP5590667B2 (ja) | サブルーチン実行監視装置及びサブルーチン実行監視方法 | |
US11614988B2 (en) | Variable memory diagnostics | |
JP5504604B2 (ja) | Ram診断装置 | |
US20150067242A1 (en) | Information processing device | |
JP2016066139A (ja) | 車両制御装置 | |
US20110270802A1 (en) | Method for controlling changes of replication directions in a multi-site disaster recovery environment for high available application | |
JP5365875B2 (ja) | 産業用コントローラ | |
JP5579257B2 (ja) | 主記憶装置における情報を復元するための装置及び方法 | |
JP5627414B2 (ja) | 動作ログ収集システム及びプログラム | |
CN109358903B (zh) | 数据访问设备和访问错误通知方法 | |
CN107179980B (zh) | 用于监视计算系统的方法和相应的计算系统 | |
RU2305313C1 (ru) | Способ я.а. горбадея обеспечения надежной работы программного вычислительного средства | |
JP2005092695A (ja) | 二重化コントローラ、その等値化モード決定方法 | |
JP2014035729A (ja) | 車両用制御装置 | |
US10528467B2 (en) | Information processing device and information processing method | |
JP5953976B2 (ja) | ファームウェア交換支援プログラム、ファームウェア交換支援方法、及び処理装置 | |
JP2021189864A (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 |