JP2002091784A - Java言語を用いた制御装置 - Google Patents

Java言語を用いた制御装置

Info

Publication number
JP2002091784A
JP2002091784A JP2000280113A JP2000280113A JP2002091784A JP 2002091784 A JP2002091784 A JP 2002091784A JP 2000280113 A JP2000280113 A JP 2000280113A JP 2000280113 A JP2000280113 A JP 2000280113A JP 2002091784 A JP2002091784 A JP 2002091784A
Authority
JP
Japan
Prior art keywords
program
ram
rom
cpu
control device
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.)
Pending
Application number
JP2000280113A
Other languages
English (en)
Inventor
Manabu Shimoo
学 下尾
Takeshi Maeda
猛 前田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2000280113A priority Critical patent/JP2002091784A/ja
Publication of JP2002091784A publication Critical patent/JP2002091784A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 【課題】Java言語で作成したプログラムは、プログラム
やデータの格納番地が動的に変わるため、プログラム自
体はたとえ正しくても、チェックサム値が変わってしま
う。このため、従来のチェックサム計算ではプログラム
の正しさを検証することができない。 【解決手段】CPU、ROMおよびRAMを有し、RO
Mに記憶されているオリジナルプログラムをRAMにロ
ードしてCPUにより実行される制御装置において、ロ
ードして実行が開始された時点から予定の設定時限値を
超えたら、それまでRAMにロードされ動作していたプ
ログラムを破棄して、ROM上に記憶されているプログ
ラムをRAMに再ロードする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、Java言語で記述さ
れたプラント等の制御プログラムの信頼性を向上させる
ようにした制御装置に関するものある。
【0002】
【従来の技術】制御装置用のソフトウェアは、プログラ
ムがノイズなどで書き換わると、正しく制御を行うこと
ができなくなるので、プログラムの正しさをチェックす
る必要がある。
【0003】C言語やアセンブリ言語などのプログラミ
ング言語を用いた従来の制御装置用ソフトウェアでは、
プログラムの格納番地やその内容が変わることはなかっ
たので、固定アドレスに割り付けられているプログラム
のチェックサムを計算するなどの方法により、プログラ
ムの正しさを確認することができた。
【0004】図15は、C言語やアセンブリ言語などのプ
ログラミング言語を用いた従来の制御装置のブロック構
成図であり、1は制御装置であって、CPU(プロセッ
サ)2、ROM(読み出し専用メモリ)3およびRAM
(読み込み・読み出し可能なメモリ)4から構成されて
いる。
【0005】図15において、ROM3に記述したオリジ
ナルのプログラム(以下単にプログラムという)51、52
は、CPU2によりいつでもRAM4上の決まった位置
にロードされ、プログラム53、54として動作するように
なっている。
【0006】このため、単にRAM4にロードされたプ
ログラム53および54のチェックサムを計算し、これらと
ROM3上のサム値と比較して、同じ値であったら正し
いプログラムであると判断することができる。
【0007】
【発明が解決しようとする課題】しかし、Java言語のよ
うにヒープ(heap)領域にコードもデータも混在し
て動的に配置され、しかも配置アドレスもOS側で決め
る言語の場合、ユーザ側では関知できない。
【0008】つまり、Java言語で作成したプログラム
は、プログラムやデータの格納番地が動的に変わるた
め、プログラム自体はたとえ正しくても、チェックサム
値が変わってしまう。このため、従来のチェックサム計
算ではプログラムの正しさを検証することができない。
【0009】本発明は、上記の問題に鑑みてなされたも
ので、Java言語などでヒープ領域と呼ばれるメモリ領域
にプログラムのコードやデータを動的に配置する形式の
言語を使用して作成したプログラムが、ノイズなどの要
因によって書き換わっていないかどうかをチェックする
ことのできるJava言語による制御装置用プログラムの高
信頼化方式を提供することを目的とするものである。
【0010】
【課題を解決するための手段】上記の目的を達成するた
めに、請求項1に記載の発明は、CPU、ROMおよび
RAMを有し、前記ROMに記憶されているプログラム
を前記RAMにロードし、前記CPUがRAMにロード
されたプログラムにより処理を実行するようにしたJava
言語を用いた制御装置において、RAMにプログラムを
ロードして実行が開始された時点から前記CPUによる
タイマー機能によって動作時間を測定し、動作時間が事
前に設定しておいた予定値を超えたら、それまでRAM
にロードされ動作していたプログラムを放棄して、RO
Mに記憶されているプログラムをRAMに再ロードする
ようにしたものである。ここでROMは、RAMへロー
ドすべきプログラムを記憶する手段を意味し、いわゆる
PROM、EPROM、E 2PROMの他、CD−RO
Mやハードディスクも含む。
【0011】また請求項2に記載の発明は、CPU、R
OMおよびRAMを有し、前記ROMに記憶されている
プログラムを前記RAMにロードし、前記CPUがRA
Mにロードされたプログラムにより処理を実行するよう
にしたJava言語を用いた制御装置において、前記CPU
とは別に、プログラムを監視するチェック用プロセッサ
を設け、このチェック用プロセッサにより、動的に変わ
る格納番地をトレースしてチェックするようにしたもの
である。
【0012】また、請求項3に記載の発明は、CPU、
ROMおよびRAMを有し、前記ROMに記憶されてい
るプログラムを前記RAMにロードし、前記CPUがR
AMにロードされたプログラムにより処理を実行するよ
うにしたJava言語を用いた制御装置において、プログラ
ムの格納番地が変わったタイミングでプログラムの格納
番地を探し出し、チェックサムを再計算し、プログラム
チェック時は、この格納番地とチェックサムを使ってプ
ログラムが正しいことを検証するようにしたものであ
る。
【0013】また更に、請求項4に記載の発明は,制御
用CPU、ROMおよびRAMを有し、前記ROMに記
憶されているプログラムを前記RAMにロードし、前記
制御用CPUがRAMにロードされたプログラムにより
処理を実行するようにしたJava言語を用いた制御装置に
おいて、前記制御用CPUとは別に、プログラムを監視
するチェック用プロセッサを設け、このチェック用プロ
セッサにより、プログラムの格納番地の移動に伴ったチ
ェックサム値再計算機能を持たせるようにしたものであ
る。
【0014】また更に、請求項5に記載の発明は、CP
U、ROMおよびRAMを有し、前記ROMに記憶され
ているプログラムを前記RAMにロードし、前記CPU
がRAMにロードされたプログラムにより処理を実行す
るようにしたJava言語を用いた制御装置において、Java
仮想マシンにおけるプログラムを動作させるための資源
(ヒープ)量が、予め決めておいた下限値よりも少なく
なった場合、必要データの保存などの最低限の処理を行
った後、OS自体を再起動させるようにしたものであ
る。
【0015】また更に、請求項6に記載の発明は、CP
U、ROMおよびRAMを有し、前記ROMに記憶され
ているプログラムを前記RAMにロードし、前記CPU
がRAMにロードされたプログラムにより処理を実行す
るようにしたJava言語を用いた制御装置において、前記
ROMに、動作定数およびハードウェアの構成に対応し
た初期化などの手順書をファイルとして持たせておき、
動作定数あるいは手順書の変更によりハードウェア構成
の変更に対応するようにしたものである。
【0016】更に、請求項7に記載の発明は、CPU、
ROM、RAMおよびプログラムによって書き換え可能
なROMを有し、前記ROMに記憶されているプログラ
ムを前記RAMにロードし、前記CPUがRAMにロー
ドされたプログラムにより処理を実行するようにしたJa
va言語を用いた制御装置において、プログラムによって
書き換え可能なROMに動作定数やハードウェアの構成
に対応した初期化などの手順書をファイルとして持た
せ、ハードウェアの構成変更やハードウェア不良などに
対応して運用中に動作定数や手順書を変更するようにし
たものである。
【0017】請求項8に記載の発明は、請求項6に記載
のJava言語を用いた制御装置において、ROMに設けた
ファイル構造の全体にチェックサムを持たせ、定期的に
ファイル構造全体のチェックサムを検査することによっ
て動作定数や初期化の手順書の正しさを検証するように
したものである。
【0018】請求項9に記載の発明は、請求項7に記載
のJava言語を用いた制御装置において、プログラムによ
って書き換え可能なROMに置いたファイル構造の全体
にチェックサムを持たせ、定期的にファイル構造全体の
チェックサムを検査することによって動作定数や初期化
の手順書の正しさを検証するようにしたものである。
【0019】請求項10に記載の発明は、請求項8に記載
のJava言語を用いた制御装置において、ROMに置いた
ファイル構造の個々のファイル毎にチェックサムを持た
せ、定期的に個々のファイルのチェックサムとファイル
構造全体のチェックサムを検査することによって動作定
数や初期化の手順書などのファイルの正しさを検証する
ようにしたものである。
【0020】請求項11に記載の発明は、請求項8に記載
のJava言語を用いた制御装置において、プログラムによ
って書き換え可能なROMに置いたファイル構造の個々
のファイル毎にチェックサムを持たせ、定期的に個々の
ファイルのチェックサムとファイル構造全体のチェック
サムを検査することによって動作定数や初期化の手順書
などのファイルの正しさを検証するようにしたものであ
る。
【0021】
【発明の実施の形態】以下、図面を参照して本発明の実
施形態を説明する。 (第1の実施形態)図1は本発明による第1の実施形態
を示す制御装置内のCPUおよびソフトウェアに関する
ブロック構成図である。
【0022】制御装置1は、監視制御の対象となるプラ
ント等を制御するためのCPU2、ROM3およびRA
M4等のハードウェアを設けている。なお、タイマー機
能6は、CPU2によるソフトウェアであり、タイマー
61および62によってそれぞれ対応するプログラム53およ
び54の動作時間を測定するようになっている。
【0023】次に、本実施形態の動作を説明する。CP
U2はプラント制御などにおいて、必要となった時点
で、先ずROM3に記憶されているオリジナルプログラ
ム51および52を、RAM4にプログラム53および54とし
てロードする(読み込む)。
【0024】そして、前記タイマー61およびタイマー62
は、CPU2がプログラム53および54を用いてプラント
等の監視制御を行う時、それぞれに対応するプログラム
53および54の動作開始時点から時間を測定するようにな
っている。
【0025】CPU2は、タイマー61および62が予定の
設定時間を超えた時点で、対応するプログラム53、54を
破棄し、新たにROM3からプログラム51、52をRAM
4に再ロード即ちリフレッシュしてプログラム53、54に
よる制御を続行する。
【0026】なお、前記タイマー61、62の設定時間は短
ければ誤動作防止の観点からはよいが、それだけCPU
の負担も増えるので、数分から30分程度の間隔がよいと
思われる。
【0027】図2はプログラムの再ロードに関するタイ
ミングチャートであり、(a)はプログラムが休止中に
再ロードする様子を、また(b)はプログラムが動作中
のために再ロードを遅らせる様子をそれぞれ示す。
【0028】本実施形態によれば、RAM4にロードさ
れ実際に動作するプログラム53および54は、タイマー61
および62で予め設定した所定の間隔毎に常にリフレッシ
ュされる。つまり、プログラムの一部が万一ノイズ等で
書き換えられたとしても、所定間隔後にオリジナルのプ
ログラム51および52よりプログラム53および54が再ロー
ドされるため、ノイズによって誤った制御やプログラム
の停止、暴走を起こす可能性は非常に小さくなる。
【0029】その他、本実施形態から派生して次のよう
なことも考えられる。同じ構成のもので、プログラムを
再ロードする前のデータを再ロードした後の状態に引き
継ぐ必要がある場合、単純にプログラムを再ロードする
だけでは、データの引継ぎを行うことができないが、プ
ログラムの終了処理中(オブジェクト指向言語にはディ
ストラクタと呼ばれる処理が対応する)にデータ保存を
行い、再ロードされて、プログラムの初期化処理中(オ
ブジェクト指向言語にはコンストラクタと呼ばれる処理
が対応)にデータの復帰を行う。このようにすることに
より、再ロード前後の、データの引継ぎ処理をスムーズ
に行うことが可能である。
【0030】(第2の実施形態)図3は本発明に係る第
2の実施形態を示す制御ブロック構成図である。制御装
置1に、その装置の対象となるプラント等を制御するた
めのCPU21(以下制御用CPUという)、プログラム
51、52を記憶したROM3、実行時にプログラム51、52
をロードするRAM4の他に、チェック用CPU22を設
けている。このチェック用CPU22は、RAM4にロー
ドされて動作しているプログラム53、54のコードやデー
タの格納位置を監視し、どのプログラムのどのコードや
データが、RAM4上のどこに配置されているかを監視
するものである。
【0031】次に、動作を説明する。プログラム51、52
は必要となった時点で、ROM3からRAM4にロード
され、以後CPU21によりプログラム53、54として動作
する。その動作状況をチェック用CPU22が監視してお
り、CPU22がROM3上のプログラム51、52と、RA
M4にロードされたプログラム53、54が同じプログラム
であることをバイナリレベルでチェック、即ちRAM4
とROM3の内容を直接比較してチェックする。このた
めには、CPU22は、CPU21からメモリの開始番地と
そのサイズおよびもとのROM3の開始番地を通知さ
れ、これらの情報を保存しておく。
【0032】そして、CPU22自身で決める規定時間毎
に、保存しておいた情報をもとにRAM4とROM3の
内容比較を行い、もし不一致があればCPU21に異常を
通知すると共に、再ロードを要求する。本実施形態によ
れば前述の第1の実施形態で必要としたタイマー機能が
不要となるので、制御用CPU21の資源をタイマー処理
に割くことなく利用できる。
【0033】(第3の実施形態)図4は本発明に係る第
3の実施形態を示す制御ブロック構成図である。なお、
既出の図1、図3中の部品あるいは機能と同一部分には
同一符号をつけて重複した説明は極力避けることにす
る。
【0034】図4において、CPU2はプラント等を制
御する機能の他、RAM4上のプログラム53、54の動作
に伴って、プログラムのコードやデータの格納番地を探
し出し、格納番地が変更されたタイミングで、チェック
サムを計算するというチェックサム管理機能7を併せ持
っている。
【0035】次に、動作を説明する。ROM3に記憶さ
れているプログラム51、52がRAM4にロードされた時
点で、CPU2はプログラム53、54のチェックサムを計
算し、チェックサム機能7内の決められた番地にそのサ
ム値を格納する。プログラムの動作に伴って、プログラ
ム53、54のコードやデータは、その格納番地を変えてい
くが、番地が変わるたびに、そのプログラムのチェック
サム値を計算し直す。
【0036】また、ある間隔でROM3に記憶されてい
るプログラムのチェックサム値とRAM4上のプログラ
ムのチェックサム値を比較することで、RAMに記憶さ
れているプログラムの正しさをチェックする。
【0037】本実施形態によれば、プログラムの格納場
所の変化に伴うチェックサム値の再計算機能を追加する
ことで、第1の実施形態で必要としたタイマー機能や、
第2の実施形態で必要としたチェック用CPUを必要と
せずに、RAM4上のプログラムの正しさをチェックす
ることができる。
【0038】(第4の実施形態)図5は本発明に係る第
4の実施形態を示す制御装置のブロック構成図である。
図3中の部品あるいは機能と同一部分には同一符号また
は関連符号をつけて重複した説明は極力避けることにす
る。
【0039】本実施形態は、監視制御の対象となるプラ
ント等を制御するためのCPU、ROMおよびRAMを
設け、ROM上に記憶してあるプログラム51および52を
RAMにロードし、RAMに記憶したプログラム53、54
によりプラント等を制御する点およびCPUを制御用21
とチェック用22’とに個々に用意し、CPU21を制御
用、CPU22’をチェック用として機能させるようにし
た点までは第2の実施形態と同じである。
【0040】しかし、チェック用CPU22’がROM3
に記憶したプログラム51、52とRAM4にロードされた
プログラム53、54とが同じプログラムであることをバイ
ナリレベルでチェックするのに対し、本実施形態の場
合、RAM4にロードされて動作しているプログラム53
および54の先頭番地とサイズを使ってチェックサムの計
算を行うようにした点で相違している。
【0041】次に、動作を説明する。制御用CPU21は
必要となった時点で、ROM3に記憶されているプログ
ラム51および52をRAM4にロードする。以後プログラ
ム53および54は制御用CPU21により動作し、その動作
状況をチェック用CPU22’が監視することになる。
【0042】具体的には、図6のタイミングチャートで
示す通り、制御用CPU21は、ROM3からRAM4へ
のロードを完了すると、チェック用CPU22’に対しロ
ード完了通知を行う。その際、プログラムの先頭番地と
サイズも併せて通知し、RAM4上にこの情報をやり取
りするためのデータを設ける。
【0043】チェック用CPU22’は制御用CPU21か
らロード完了通知を受けた後、RAM4に記憶されたプ
ログラム53および54について、プログラムの先頭番地と
サイズを使ってチェックサムの計算を行い、その計算値
を保存する。次にチェックを行う時、先頭アドレス、サ
イズおよびチェックサム値を参照して、先に保存されて
いるチェックサム値との比較を行い、同一であれば正
常、同一でなければ異常と判断する。
【0044】プログラム53が異常と判断された場合、チ
ェック用CPU22’は制御用CPU21に対して異常を通
知する。すると、制御用CPU21は休止中に再度オリジ
ナルのプログラム51をRAM4上にロードする。
【0045】以上述べたように、本実施形態によればチ
ェック用CPU22’を設けることによって、第1の実施
形態におけるタイマー機能が不要となるので、制御用C
PU21の資源をタイマー処理に割くことが不要となる。
【0046】(第5の実施形態)図7は、本発明に係る
第5の実施の形態を示す制御装置のブロック構成図であ
る。なお、既出図面中の部品あるいは機能と同一部分に
は同一符号をつけて重複した説明は極力避けることにす
る。
【0047】本実施の形態の特長とするところは、制御
用CPU21により、RAM4中のヒープ使用量をチェッ
クするヒープチェック機能120を設けるようにしたもの
である。
【0048】図8は、プログラム53および54が動作し
て、ヒープがどのように消費されるかを示すグラフであ
る。プログラムが動作すると、しばらくはヒープ量が減
少するが、あるところまで減少すると、ガーベジコレク
ション(Garbage Collection)により、未使用のヒープ
領域が回収され、またヒープ量が増える様子を示す。
【0049】次の本実施形態の動作について説明する。
制御装置1が動作している間、図8に示したヒープの使
用状況を繰り返していくが、プログラムやデータが使用
され続けると、使用可能なヒープ量がだんだんと減少
し、ついにはある閾値(SL)まで減少する場合があ
る。このような状況になった場合、プログラムの実行を
継続し続けることは無理があると判断して、必要なデー
タ等の保存を行った上で、OSを初期化する。本実施例
によれば、ヒープ量が0になる前に、データ保存等の必
要な処理を行ってから、OSが初期化されるため、重要
なデータが消えてしまうことはない。
【0050】もし、この機能無しに、プログラムを動作
させたままだであるならば、ついにはヒープ量が0にな
り、データ保存等の処理もできずにシステムが停止して
しまうことになる。
【0051】(第6の実施形態)図9は、本発明本発明
に係る第6の実施形態を示す制御装置のブロック構成図
である。なお、既出図面中の部品あるいは機能と同一部
分には同一符号をつけて重複した説明は極力避けること
にする。
【0052】図9において、制御装置1には、プラント
等を制御するためのCPU2を備え、ROM3には、プ
ログラム51のほかファイルシステム9を記憶している。
前記ROM3上にあるプログラム51は既出の実施形態と
同様、実行時にRAM4上にロードされたプログラム53
として動作する。
【0053】前記ファイルシステム9は、動作定数91お
よび93、手順書92および94をファイル状態で記憶したも
のである。ここで、動作定数91および93はそれぞれ外部
に接続された機器を操作する時に用いられ、また手順書
92および手順書94は外部に接続された機器や第1あるい
は第2インタフェース81および82を初期化するとき、あ
るいは停止させるとき等に用いられる。
【0054】RAM4にロードされて動作しているプロ
グラム53は制御装置1に付加されたインタフェース部8
を使って制御装置1の外部に接続された図示しない機器
を制御する。
【0055】次に動作を説明する。ROM3に記憶され
ているプログラム51は、RAM4にロードされ、プログ
ラム53としてCPU2により動作する。この時、制御装
置1の外部に接続された機器を制御するために、動作定
数91および手順書92は第1インタフェース81を経由して
出力され、また動作定数93および手順書94は第2インタ
フェース82を経由して出力される。
【0056】このときプログラム53は、機器に対する操
作は動作定数91あるいは動作定数93を参照して行い、ま
た、機器やインタフェース81、82を初期化するときや停
止させるときは、手順書92または手順書94を使用してイ
ンタフェース81、82に操作信号を出す。
【0057】本実施形態によれば、動作定数や手順書を
ファイルとすることによって、動作定数、手順書とイン
タフェースとの間の対応関係を区別することが容易とな
り、動作定数を通常のデータ構造として持たせるより複
雑なデータ構造とすることが容易となる。
【0058】また、プログラム53そのものは変えなくて
も、ファイルシステム9の中に配置する動作定数や手順
書などのファイルを入れ替えることによって、色々なイ
ンタフェースに対応させることができる。
【0059】更に、1つのインタフェースに対して複数
の動作定数を持たせることによって、同じインタフェー
スを使って違った動特性を持った動きをさせることも可
能である。
【0060】(第7の実施形態)図10は、本発明に係る
第7の実施形態を示す制御装置のブロック構成図であ
る。なお、既出図面中の部品あるいは機能と同一部分に
は同一符号をつけて重複した説明は極力避けることにす
る。
【0061】本実施形態は、第6の実施形態に比べ、フ
ァイルシステム9がROM3とは別に設けたプログラム
により書き換え可能なROM10に記憶させるように構成
した点で相違し、その他は共通している。
【0062】本実施形態が第6の実施形態と大きく異な
る点は、ROM10をROM3とは別個の独立した部品で
構成しているため、プログラムでファイルの内容を書き
換えることができ、動作定数1のファイル91、動作定数
2のファイル93を運用中に書き換えてインタフェースの
特性を変更したり、手順書1,2を運用中に書き換え
て、システムを停止することなく動作異常のあったイン
タフェースを切り替えたりすることが可能となる。
【0063】(第8の実施形態)図11は、本発明に係る
第8の実施形態を示すブロック構成図である。なお、既
出図面中の部品あるいは機能と同一部分には同一符号を
つけて重複した説明は極力避けることにする。
【0064】本実施形態は、図9で示した第6の実施形
態を改良したものであり、プログラム51、52およびファ
イルシステム9全体に対して、それぞれチェックサムを
計算して結果を記憶するチェックコード101、102および
110をROM3に記憶させている。
【0065】ROM3に記憶されているプログラム51、
52のチェックコード101、102およびファイルシステム9
全体に対するチェックコード110は、システムが動作中
に定期的にチェックしており内容が変わってしまってい
ないかどうかをチェックする。この動作定数や手順書の
チェックにより、インタフェースの動作は一定に保たれ
ることが保証される。
【0066】また、本実施形態を第1の実施形態と組み
合わせた場合、ROM3からRAM4へプログラムを再
ロードするときに、オリジナルのプログラムが変わって
しまっていないことが保証され、より信頼度が増すこと
ができる。
【0067】(第9の実施形態)図12は、本発明に係る
第10の実施形態を示すブロック構成図である。なお、既
出図面中の部品あるいは機能と同一部分には同一符号を
つけて重複した説明は極力避けることにする。
【0068】本実施形態は、図11で示した第8の実施形
態を更に改良したものであり、ROM3に設けたファイ
ルシステム9の各動作定数1、2手順書1、2に対して
も個々にチェックサムを計算した結果を記憶したチェッ
クコード111〜114を新たに設定したものである。
【0069】これにより、ROM3上にあるプログラム
51、52に対してはチェックコード101、102が、ファイル
システム9全体に対してはチェックコード110が、そし
てファイルシステム9の個々のファイルに対してはチェ
ックコード111、112、113、114がそれぞれシステムの動
作中に定期的に内容が変わっていないかどうかをチェッ
クする。この動作定数や手順書のチェックにより、イン
タフェースの動作は一定に保たれることが保証される。
【0070】また、本実施形態と第1の実施形態とを組
み合わせることによって、ROM3からRAM4へプロ
グラムを再ロードするときに、オリジナルのプログラム
が変わってしまっていないことが保証され、より信頼度
が増すことができる。なお、以上図示し説明した各実施
形態は、以下述べるように構成の一部を組み合わせて実
施することも可能である。
【0071】(第10の実施形態)図13は本発明に係る第
10の実施形態を示す。この実施形態は、ROM3内にオ
リジナルのプログラム51および52を記憶すると共に、そ
れぞれのプログラムのチェックコード101、102を設定す
る。一方、ファイルシステム9はプログラムで書き換え
可能なROM10に置くと共に、そこへチェックコード11
0を設定する。
【0072】ROM3に記憶されているプログラム51、
52のチェックコード101、102およびプログラムで書き換
え可能なROM10上にあるファイルシステム9のチェッ
クコード110は、システムが動作中に定期的にチェック
しており、内容が変わっていないかどうかをチェックす
る。
【0073】この動作定数や手順書のチェックにより、
ROM10への誤った書き込みなどによってファイルが壊
されたか否かが検出できるので、インタフェース81、82
の動作は一定に保たれることが保証される。
【0074】また、本実施形態を第1の実施形態と組み
合わせることによって、ROM3からRAM4へプログ
ラムを再ロードするときに、オリジナルのプログラムが
変わってしまっていないことが保証され、より信頼度を
増すことができる。
【0075】(第11の実施形態)図14は本発明による第
11の実施形態を示す構成図であり、この実施形態は、R
OM3内にオリジナルのプログラム51および52を置くと
共に、それぞれのプログラムのチェックコード101、102
を設定する。一方、ファイルシステム9はプログラムで
書き換え可能なROM10に置き、動作定数91、93、手順
書92、94およびチェックコード111、112、113、110を設
定する。
【0076】また、本実施形態を第1の実施形態と組み
合わせることによって、ROM3からRAM4へプログ
ラムを再ロードするときに、オリジナルのプログラムが
変わってしまっていないことが保証され、より信頼度を
増すことができる。
【0077】なお、第6の実施形態乃至第11の実施形態
では、ファイルシステム9に動作定数と手順書だけを配
置したが、プログラムをファイルシステムに配置するこ
とによって、システムの運用中にプログラムを書き換え
が可能となり、より柔軟なシステム構築が可能となる。
【0078】
【発明の効果】以上述べたように、本発明は、プログラ
ムの格納番地を変えるときや、実行している最中にノイ
ズなどによりプログラムの内容が書き換わってしまった
場合でも、予め定めた時間を経過したときにプログラム
を再ロードするように構成したので、その時点でオリジ
ナルのプログラムに戻される。
【0079】このため、ノイズ等により書き換わってし
まったコードやデータのために、誤った制御が行われた
り、プログラムが異常停止したりする可能性は非常に小
さくなる。特にプログラムの書き換えが大きな問題を引
き起こす重要なプログラムに関しては、再ロードする間
隔を短くすることにより、重大な異常発生をほとんど無
くすことができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態を示すブロック構成
図。
【図2】第1の実施形態の機能を説明するためのタイミ
ングチャート。
【図3】本発明の第2の実施形態を示すブロック構成
図。
【図4】本発明の第3の実施形態を示すブロック構成
図。
【図5】本発明の第4の実施形態を示す図。
【図6】第4の実施形態の機能を説明するためのタイミ
ングチャート。
【図7】本発明の第5の実施形態を示す図。
【図8】第5の実施形態のヒープ量を示す図。
【図9】本発明の第6の実施例を示すブロック構成図。
【図10】本発明の第7の実施例を示すブロック構成
図。
【図11】本発明の第8の実施例を示すブロック構成
図。
【図12】本発明の第9の実施例を示すブロック構成
図。
【図13】本発明の第10の実施例を示すブロック構成
図。
【図14】本発明の第11の実施例を示すブロック構成
図。
【図15】従来技術を示す図。
【符号の説明】
1…制御装置、2…CPU、21…制御用CPU、22…チ
ェック用CPU、3…ROM、4…RAM、5…プログ
ラム、51…ROMに記憶されたオリジナルプログラム
1、52…ROMに記憶されたオリジナルプログラム2、
53…51がRAM上にロードされたプログラム、54…52が
RAM上にロードされたプログラム、6…タイマー機
能、61…53用タイマー、62…54用タイマー、7…チェッ
クサム機能、71…53用チェックサム、72…54用チェック
サム、8…インタフェース部、81…第1インタフェー
ス、82…第2インタフェース、9…ファイルシステム、
91…81用の動作定数、92…81用の初期化の手順書、93…
82用の動作定数、94…82用の初期化の手順書、10…書き
換え可能ROM、101、102、110、111、112、113、114
…チェックコード。

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 CPU、ROMおよびRAMを有し、前
    記ROMに記憶されているプログラムを前記RAMにロ
    ードし、前記CPUがRAMにロードされたプログラム
    により処理を実行するようにしたJava言語を用いた制御
    装置において、RAMにプログラムをロードして実行が
    開始された時点から前記CPUによるタイマー機能によ
    って動作時間を測定し、動作時間が事前に設定しておい
    た予定値を超えたら、それまでRAMにロードされ動作
    していたプログラムを放棄して、ROMに記憶されてい
    るプログラムをRAMに再ロードすることを特徴とする
    Java言語を用いた制御装置。
  2. 【請求項2】 CPU、ROMおよびRAMを有し、前
    記ROMに記憶されているプログラムを前記RAMにロ
    ードし、前記CPUがRAMにロードされたプログラム
    により処理を実行するようにしたJava言語を用いた制御
    装置において、前記CPUとは別に、プログラムを監視
    するチェック用プロセッサを設け、このチェック用プロ
    セッサにより、動的に変わる格納番地をトレースしてチ
    ェックすることを特徴とするJava言語を用いた制御装
    置。
  3. 【請求項3】 CPU、ROMおよびRAMを有し、前
    記ROMに記憶されているプログラムを前記RAMにロ
    ードし、前記CPUがRAMにロードされたプログラム
    により処理を実行するようにしたJava言語を用いた制御
    装置において、プログラムの格納番地が変わったタイミ
    ングでプログラムの格納番地を探し出し、チェックサム
    を再計算し、プログラムチェック時は、この格納番地と
    チェック サムを使ってプログラムが正しいことを検証
    することを特徴とするJava言語を用いた制御装置。
  4. 【請求項4】 制御用CPU、ROMおよびRAMを有
    し、前記ROMに記憶されているプログラムを前記RA
    Mにロードし、前記制御用CPUがRAMにロードされ
    たプログラムにより処理を実行するようにしたJava言語
    を用いた制御装置において、前記制御用CPUとは別
    に、プログラムを監視するチェック用プロセッサを設
    け、このチェック用プロセッサにより、プログラムの格
    納番地の移動に伴ったチェックサム値再計算機能を持た
    せることを特徴とするJava言語を用いた制御装置。
  5. 【請求項5】 CPU、ROMおよびRAMを有し、前
    記ROMに記憶されているプログラムを前記RAMにロ
    ードし、前記CPUがRAMにロードされたプログラム
    により処理を実行するようにしたJava言語を用いた制御
    装置において、Java仮想マシンにおけるプログラムを動
    作させるための資源(ヒープ)量が、予め決めておいた
    下限値よりも少なくなった場合、必要データの保存など
    の最低限の処理を行った後、OS自体を再起動させるこ
    とを特徴とするJava言語を用いた制御装置。
  6. 【請求項6】 CPU、ROMおよびRAMを有し、前
    記ROMに記憶されているプログラムを前記RAMにロ
    ードし、前記CPUがRAMにロードされたプログラム
    により処理を実行するようにしたJava言語を用いた制御
    装置において、前記ROMに、動作定数およびハードウ
    ェアの構成に対応した初期化などの手順書をファイルと
    して持たせておき、動作定数あるいは手順書の変更によ
    りハードウェア構成の変更に対応するようにしたことを
    特徴とするJava言語を用いた制御装置。
  7. 【請求項7】 CPU、ROM、RAMおよびプログラ
    ムによって書き換え可能なROMを有し、前記ROMに
    記憶されているプログラムを前記RAMにロードし、前
    記CPUがRAMにロードされたプログラムにより処理
    を実行するようにしたJava言語を用いた制御装置におい
    て、プログラムによって書き換え可能なROMに動作定
    数やハードウェアの構成に対応した初期化などの手順書
    をファイルとして持たせ、ハードウェアの構成変更やハ
    ードウェア不良などに対応して運用中に動作定数や手順
    書を変更することを可能としたことを特徴とするJava言
    語を用いた制御装置。
  8. 【請求項8】 請求項6に記載のJava言語を用いた制御
    装置において、ROMに設けたファイル構造の全体にチ
    ェックサムを持たせ、定期的にファイル構造全体のチェ
    ックサムを検査することによって動作定数や初期化の手
    順書の正しさを検証することを特徴とするJava言語を用
    いた制御装置。
  9. 【請求項9】 請求項7に記載のJava言語を用いた制御
    装置において、プログラムによって書き換え可能なRO
    Mに置いたファイル構造の全体にチェックサムを持た
    せ、定期的にファイル構造全体のチェックサムを検査す
    ることによって動作定数や初期化の手順書の正しさを検
    証することを特徴とするJava言語を用いた制御装置。
  10. 【請求項10】 請求項8に記載のJava言語を用いた制
    御装置において、ROMに置いたファイル構造の個々の
    ファイル毎にチェックサムを持たせ、定期的に個々のフ
    ァイルのチェックサムとファイル構造全体のチェックサ
    ムを検査することによって動作定数や初期化の手順書な
    どのファイルの正しさを検証することを特徴とするJava
    言語を用いた制御装置。
  11. 【請求項11】 請求項8に記載のJava言語を用いた制
    御装置において、プログラムによって書き換え可能なR
    OMに置いたファイル構造の個々のファイル毎にチェッ
    クサムを持たせ、定期的に個々のファイルのチェックサ
    ムとファイル構造全体のチェックサムを検査することに
    よって動作定数や初期化の手順書などのファイルの正し
    さを検証することを特徴とするJava言語を用いた制御装
    置。
JP2000280113A 2000-09-14 2000-09-14 Java言語を用いた制御装置 Pending JP2002091784A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000280113A JP2002091784A (ja) 2000-09-14 2000-09-14 Java言語を用いた制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000280113A JP2002091784A (ja) 2000-09-14 2000-09-14 Java言語を用いた制御装置

Publications (1)

Publication Number Publication Date
JP2002091784A true JP2002091784A (ja) 2002-03-29

Family

ID=18765011

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000280113A Pending JP2002091784A (ja) 2000-09-14 2000-09-14 Java言語を用いた制御装置

Country Status (1)

Country Link
JP (1) JP2002091784A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009522664A (ja) * 2006-01-03 2009-06-11 エヌイーシー ラボラトリーズ アメリカ インク メモリ障害を処理するために、センサーネットワークで使用可能な方法及びシステム
JP2012079204A (ja) * 2010-10-05 2012-04-19 Yokogawa Electric Corp プログラムが実装されたフィールド機器
KR101620716B1 (ko) * 2014-04-24 2016-05-12 한양대학교 산학협력단 소프트웨어의 수행 시간 예측 장치 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009522664A (ja) * 2006-01-03 2009-06-11 エヌイーシー ラボラトリーズ アメリカ インク メモリ障害を処理するために、センサーネットワークで使用可能な方法及びシステム
JP2012079204A (ja) * 2010-10-05 2012-04-19 Yokogawa Electric Corp プログラムが実装されたフィールド機器
KR101620716B1 (ko) * 2014-04-24 2016-05-12 한양대학교 산학협력단 소프트웨어의 수행 시간 예측 장치 및 방법

Similar Documents

Publication Publication Date Title
US6061788A (en) System and method for intelligent and reliable booting
US7890800B2 (en) Method, operating system and computing hardware for running a computer program
JP4903149B2 (ja) コンピュータシステム上でコンピュータプログラムを処理する方法
CN1971536A (zh) 基本输入输出***的纠错***及方法
CN111240720A (zh) 引导程序升级方法、装置及存储介质
US7788533B2 (en) Restarting an errored object of a first class
US20080133975A1 (en) Method for Running a Computer Program on a Computer System
CN112015447B (zh) 电子设备的***更新方法及装置、电子设备及存储介质
KR102598510B1 (ko) 소프트웨어의 무결성 검증 방법 및 그 장치
CN113064646A (zh) 一种bios启动方法、***及相关装置
JP2002091784A (ja) Java言語を用いた制御装置
JP6708596B2 (ja) 電子制御装置及び制御プログラム検証方法
US7484162B2 (en) Method and apparatus for monitoring an electronic control system
US7711985B2 (en) Restarting an errored object of a first class
US20130055017A1 (en) Device and method for restoring information in a main storage unit
JP2000293376A (ja) ブートプログラムの切替回路及び切替方法
RU2305313C1 (ru) Способ я.а. горбадея обеспечения надежной работы программного вычислительного средства
JP2009520290A (ja) 耐故障性があるプロセッサシステム
CN112115017A (zh) 一种星载软件程序的逻辑代码监控方法和装置
JP2005092695A (ja) 二重化コントローラ、その等値化モード決定方法
JPH11154099A (ja) データ処理装置
CN112114888B (zh) 一种电动汽车电控***通用客户端引导程序生成方法
US6986079B2 (en) Memory device method for operating a system containing a memory device for fault detection with two interrupt service routines
US11301312B1 (en) Error logging during system boot and shutdown
US8145953B2 (en) Programmable unit

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20040803

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20050720

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050818

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050831

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050720

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090317