JP3183982B2 - ディジタル制御装置 - Google Patents

ディジタル制御装置

Info

Publication number
JP3183982B2
JP3183982B2 JP02718493A JP2718493A JP3183982B2 JP 3183982 B2 JP3183982 B2 JP 3183982B2 JP 02718493 A JP02718493 A JP 02718493A JP 2718493 A JP2718493 A JP 2718493A JP 3183982 B2 JP3183982 B2 JP 3183982B2
Authority
JP
Japan
Prior art keywords
data
output
processing
processing unit
unit
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.)
Expired - Fee Related
Application number
JP02718493A
Other languages
English (en)
Other versions
JPH06222804A (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.)
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 JP02718493A priority Critical patent/JP3183982B2/ja
Publication of JPH06222804A publication Critical patent/JPH06222804A/ja
Application granted granted Critical
Publication of JP3183982B2 publication Critical patent/JP3183982B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Control By Computers (AREA)
  • Safety Devices In Control Systems (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マイクロプロセッサを
使用したディジタル制御装置に関する。
【0002】
【従来の技術】かっては、リレーを用いたシーケンスロ
ジック回路や、アナログ方式の演算回路により、制御対
象を制御する制御装置が用いられてきたが、近年マイク
ロプロセッサを用いたディジタル制御装置が発達し広く
用いられるようになってきた。このディジタル制御装置
は、一般に、制御対象からの信号を入力する信号入力
部、操作盤および上位制御装置からの要求信号の入力部
等を入力する信号入力部と、制御対象へ信号を出力する
制御信号出力部、操作盤および上位制御装置への警報お
よび状態表示等で出力する信号出力部等と、マイクロプ
ロセッサ(以下CPUという)、メモリ等の演算部分か
ら構成される。
【0003】CPUは、入力部から信号をメモリ内部に
取り込み、メモリ上に配置されたプログラムを順次取り
出し、演算してメモリに保存したり、出力部からデータ
を出力したりすることにより、制御を行っている。
【0004】この種の従来のディジタル制御装置の一例
を図13乃至図15を参照して説明する。
【0005】図13は、プログラムをフローチャートで
示し、初期化処理部1と入力及び演算部2と出力処理部
3とエラー処理部4とからなる。
【0006】入力及び演算部2は、複数のサブプログラ
ムS1〜Snからなっており、これらのサブプログラム
S1〜Snは、多くの場合にサブルーチンを呼び出すこ
とにより入力や演算を実行している。
【0007】ディジタル制御装置の電源を投入した場合
や、CPUをリセットした場合には、CPUは予め定め
られた特定の番地から処理を開始し、初期化処理部1は
この特定の番地からスタートする。この初期化処理に
は、CPU内部のスタックや各種フラグを初期状態にし
たり、入力部や出力部のハードウエアを初期状態に設定
したり、メモリの動作をチェックしたり、外部記憶装置
やROMから初期データをメモリに読み込んだりする処
理がある。
【0008】初期化処理が終了すると、入力及び演算部
2の処理で入力部のハードウエアからデータを読み取り
演算を行う。出力処理部3では、演算した結果を出力部
のハードウエアにデータ出力する。データの出力後は入
力及び演算部2の先頭に戻り処理を繰り返す。エラー処
理部4では、メモリデータ読み出し時の暴走などの、異
常を検出した場合に処理を行い、この処理の終了後にプ
ログラムは最初から実行される。
【0009】図14に示すパリティエラー処理部7は、
メモリ内容の読み出し時にハードウエアによりパリティ
エラーが検出されて割り込み要求が発生したときに実行
される。この場合、通常、CPUは常時実行している初
期化処理部1および入力及び演算部2の処理を中断し
て、パリティエラー処理部7に処理を移動し、終了する
と、以前に実行していた初期化処理部1および入力及び
演算部2の元の場所に戻るようになっている。
【0010】図15に示す他の処理部8は、タイマ割り
込みや、イベント割り込み等により、他の制御ループの
処理を行ったり、種々のバックグランド処理を行ったり
する処理である。
【0011】図16は、メモリ上に配置されたプログラ
ムの例で、この図では入力及び演算部2の処理部分を示
している。7はパリティエラー処理部で、メモリ上のど
こかに配置されている。ETxはメモリ上の任意の場所
に、任意の個数設置され、CPUが持つ最長命令以上の
数の無演算命令(以下NOPと言う)とそれに続くエラ
ー処理部4へのジャンプ命令とからなっている。以下の
説明では、この最長命令以上のNOPとそれに続くエラ
ー処理部4への組をエラートラップと呼ぶ。
【0012】今、入力及び演算部2のどれかのサブプロ
グラムを実行しているときに、パリティエラーが発生し
たとすると、ハードウエアのパリティエラー検出回路か
ら割り込み要求が発生する。CPUは、現在実行中の命
令を実行すると、割り込み要求を受け付け、図14に示
すパリティエラー処理部7に処理を実行し、パリティエ
ラーが発生したアドレスのメモリに異常があるか否かを
チェックする。このとき異常がない場合には、パリティ
エラー処理を終了し、元のプログラムに戻るが、初期に
パリティエラーが発生したCPUに既にデータが読み込
まれて実行されているから、このデータが異常であった
場合には、動作結果が異常になり、ときには暴走する。
この暴走の結果、プログラムカウンタがエラートラップ
ETXの場所にさしかかると、エラー処理部4へジャン
プし、エラーログ後にプログラムの最初から再度実行す
る。
【0013】
【発明が解決しようとする課題】しかしながら、上記し
た従来のエラー処理では次の問題がある。
【0014】第一には、まず、パリティエラーを発生し
たときに、メモリに異常が有れば、異常検出を行い、装
置を停止させることで、本来の目的が達成される。とこ
ろが、メモリに異常がなく外部からのノイズなどによ
り、読み出されたデータが一時的に誤って読まれた場合
などでも動作結果が異常となり、CPUのリセットと同
様に処理が行われる。このため、本来ならば運転を継続
できるにも係わらず、ディジタル制御装置が一度停止し
てしまうという問題があった。
【0015】第二には、プログラムが予め定められた制
御の順番に処理されず、プログラムの異常なジャンプが
発生することがあり、この結果、制御のサイクルが異常
になる現象(以下説明では「制御サイクルエラー」とい
う)に対処することができなかった。
【0016】すなわち、プログラムの異常なジャンプが
発生し、ジャンプ先で一見して正常に制御する場合があ
り、この場合には前記したエラートラップによりエラー
検出することができずディジタル制御装置が誤動作する
という問題があった。
【0017】第三にはパリティエラーで検出できないよ
うな複数ビットに渡る一過性のノイズによる異常でエラ
ートラップに掛かった場合でも同様である。
【0018】ディジタル制御装置は、扱うデータ量が多
く、ただ一つのデータにノイズ等の異常があっても、制
御装置が停止したり、誤動作してしまうことが多く、上
記した問題は無視できないことであった。
【0019】そこで、本発明は一過性のノイズなどによ
り読み出したデータに異常が発生した場合でも、制御が
停止することがなく、継続して運転ができるディジタル
制御装置を提供することを目的とする。
【0020】
【課題を解決するための手段】請求項1の発明は、制御
対象のデータを入力する入力部から制御スキャン毎にデ
ータをメモリに取り込み、順次サブプログラムの実行に
よって、メモリからデータを読み取り演算処理する入力
および演算部と、この入力および演算部によって演算さ
れたデータを制御対象へ出力する出力部へ出力する出力
処理部と、メモリのプログラム領域およびデータ領域に
適宜複数の無演算命令とその最終部にエラー処理プログ
ラムへジャンプ命令を有するエラートラップ部分を配置
し、ノイズなどにより、CPUが暴走してエラートラッ
プ部分にかかったときエラー処理をしてプログラムの最
初から処理を開始させるエラー処理部とを有し、制御ス
キャン毎にプログラムの最初からデータの入力処理と演
算処理と出力処理とを順次繰り返し実行するディジタル
制御装置において、メモリには、主データ格納領域と副
データ格納領域とを配置し、出力処理部は、制御スキャ
ン毎に主データ領域のデータを副データ領域へ複写する
データ保存処理部と、エラー処理部によりエラー処理が
されたとき出力不許可として副データ領域に複写された
データを主データ領域へ複写し、次の制御スキャンのと
きのデータとするデータ復旧処理部と、不許可のときメ
モリに保存されている出力データを制御対象へ出力する
出力部へ出力を禁止するデータ出力処理部とからなる構
成とした。
【0021】請求項2の発明は、制御対象のデータを入
力する入力部から制御スキャン毎にデータをメモリに取
り込み、順次サブプログラムの実行によって、メモリか
らデータを読み取り演算処理する入力および演算部と、
この入力および演算部によって演算されたデータを制御
対象へ出力する出力部へ出力する出力処理部と、メモリ
のプログラム領域およびデータ領域に適宜複数の無演算
命令とその最終部にエラー処理プログラムへジャンプ命
令を有するエラートラップ部分を配置し、ノイズなどに
より、CPUが暴走してエラートラップ部分にかかった
ときエラー処理をしてプログラムの最初から処理を開始
させるエラー処理部とを有し、制御スキャン毎にプログ
ラムの最初からデータの入力処理と演算処理と出力処理
とを順次繰り返し実行するディジタル制御装置におい
て、入力および演算部には、サブプログラムが正常に順
序に従って実行されたか否かを示すチェックデータをそ
れぞれのサブプログラムに対応して保存するチェック部
を設けると共に、チェックデータに基づいて全てのサブ
プログラムが正常に実行されたか否かを判定し、この判
定で正常のときに出力許可を出力し、また、異常のとき
出力不許可を出力する制御サイクルエラー処理部を設
け、メモリには、主データ格納領域と副データ格納領域
とを配置し、出力処理部は、制御スキャンデータ毎に主
データ領域のデータを副データ領域へ複写するデータ保
存処理部と、制御サイクル処理部により出力不許可とさ
れたとき副データ領域に複写されたデータを主データ領
域へ複写し次の制御スキャンのときのデータとするデー
タ復旧処理部と、出力不許可のときメモリに保存されて
いる出力データを制御対象へ出力する収納部への出力を
禁止するデータ出力処理部とからなる構成とした。
【0022】請求項3の発明は、制御対象のデータを入
力する入力部から制御スキャン毎にデータをメモリに取
り込み、順次サブプログラムの実行によって、メモリか
らデータを読み取り演算処理する入力および演算部と、
この入力および演算部によって演算されたデータを制御
対象へ出力する出力部へ出力する出力処理部と、メモリ
のプログラム領域およびデータ領域に適宜複数の無演算
命令とその最終部にエラー処理プログラムへジャンプ命
令を有するエラートラップ部分を配置し、ノイズなどに
より、CPUが暴走してエラートラップ部分にかかった
ときエラー処理をしてプログラムの最初から処理を開始
させるエラー処理部とを有し、制御スキャン毎にプログ
ラムの最初からデータの入力処理と演算処理と出力処理
とを順次繰り返し実行するディジタル制御装置におい
て、入力および演算部には、サブプログラムが正常に順
序に従って実行されたか否かを示すチェックデータをそ
れぞれのサブプログラムに対応して保存するチェック部
を設けると共に、チェックデータに基づいて全てのサブ
プログラムが正常に実行されたか否かを判定し、この判
定で正常のときに出力許可を出力し、また、異常のとき
出力不許可を出力する制御サイクルエラー処理部を設
け、メモリには、主データ格納領域と副データ格納領域
とを配置し、出力処理部は、制御スキャンデータ毎に主
データ領域のデータを副データ領域へ複写するデータ保
存処理部と、エラー処理部によりエラー処理がされ出力
不許可とされたときまたは制御サイクル処理部により出
力不許可とされたとき副データ領域に複写されたデータ
を主データ領域へ複写し次の制御スキャンのときのデー
タとするデータ復旧処理部と、出力不許可のときメモリ
に保存されている出力データを制御対象へ出力する出力
部への出力を禁止するデータ出力処理部とからなる構成
とした。
【0023】
【作用】請求項1の発明は、制御スキャン毎に主データ
格納領域から副データ格納領域にデータが保存され、ノ
イズなどによってエラートラップに掛かると、データの
出力を行わず、副データ格納領域のデータが主データ格
納領域へ戻される。そして、次の制御スキャンに主デー
タ格納領域のデータによって処理がされる。これによ
り、一過性のノイズにより、読み出したメモリデータが
異常になり、暴走が発生しても、その回数のスキャンデ
ータが捨てられるのみとなり、次のスキャンから主デー
タ格納領域のデータによって正常に制御ができるように
なるので、制御装置の停止を回避できる。
【0024】請求項2の発明は、サブルーチンチェック
部のデータの全てがチェックされ、全てのサブルーチン
が正常に終了したとき、主データ格納領域から副データ
格納領域にデータが保存され、正常に終了しないサブル
ーチンがあれば、データの出力は禁止され、副データ格
納領域のデータが主データ格納領域へ戻される。そし
て、次の制御スキャンに主データ格納領域のデータによ
って処理がされる。これにより、正常に終了しないサブ
ルーチンがあっても、その回数のスキャンデータが捨て
られるのみとなり、次のスキャンから主データ格納領域
のデータによって正常に制御ができるようになるので、
制御装置の停止を回避できる。
【0025】請求項3の発明は、ノイズなどによってエ
ラートラップに掛かったときや正常に終了しないサブル
ーチンがあると、データの出力は禁止され、副データ格
納領域のデータが主データ格納領域へ戻される。そし
て、次の制御スキャンに主データ格納領域のデータによ
って処理がされる。これにより、暴走が発生したり、正
常に終了しないサブルーチンがあっても、その回数のス
キャンデータが捨てられるのみとなり、次のスキャンか
ら主データ格納領域のデータによって正常に制御ができ
るようになるので、制御装置の停止を回避できる。
【0026】
【実施例】以下、本発明の実施例について図面を参照し
て説明する。
【0027】図1は、本発明の第1実施例を示すディジ
タル制御装置の構成図および処理を示す図である。図1
3と同一符号は、同一部分または相当部分を示す。図1
3と異なる主な点は、制御サイクルエラー処理部5とチ
ェックデータ初期設定部6を追設し、さらに、入力及び
演算部2と出力処理部3の別の構成とした点である。
【0028】ここで、入力及び演算部2は、図10のサ
ブプログラムS1〜Snに対してチェック部C0〜Cn
を追設している。出力処理部3は、判定部O1とデータ
保存処理部O2とデータ復旧処理部O3とハードウエア
処理部O4で構成されている。制御サイクルエラー処理
部5は、チェックデータ処理部SE1と判定部SE2と
出力許可フラグセット処理部SE3と出力許可フラグク
リア処理部SE4とから構成されている。なお、本実施
例では、メモリ上のプログラムの区切り毎に、また、デ
ータの区切り毎にエラートラップを配置している。
【0029】上記構成で、ディジタル制御装置の電源が
投入された場合や、CPUをリセットされると、CPU
は予め定められた特定の番地から処理が開始される。初
期化処理部1では、この特定の番地からスタートし、C
PU内部のスタックや各フラグを初期状態にしたり、入
力部や出力部のハードウエアを初期状態に設定したり、
メモリの動作をチェックしたり、外部記憶装置やROM
から初期データをメモリに読み込んだりする処理を行
う。また、チェックデータCD0〜CDnが全て初期化
されると共に、サブルーチンチェックデータSUBD1
〜SUBDnが全て初期化される。
【0030】初期化処理が終了すると、入力及び演算部
2のチェック部C0の処理に移行する。
【0031】チェック部C0〜Cnのk番目Ckは、図
2に示すように、チェックデータCDkをインクリメン
トする部分とサブルーチンチェックデータSUBDkを
チェックする部分とからなっている。まず、チェック部
C0では、チェックデータCD0をインクリメントし、
サブプログラムS1を実行する。サブプログラムS1で
は、サブルーチンSUB1を呼出し、サブプログラムS
1が終了するとチェック部C1でチェックデータCD1
をインクリメントし、サブルーチンSUB1のサブルー
チンチェックデータSUBD1をチェックする。続い
て、サブプログラムS2、チェック部C2、と順番にサ
ブプログラムSn、チェック部Cnまで実行し、制御サ
イクルエラー処理部5に移行する。
【0032】制御サイクルエラー処理部5では、チェッ
クデータ処理部SE1の処理を開始する。
【0033】チェックデータ処理部SE1は、図3に示
すように、チェックデータCD0〜CDnをチェックす
る部分と、サブルーチンSUB1〜SUBnのサブルー
チンチェックデータSUBD1〜SUBDnをチェック
する部分と、エラーフラグをクリアする部分、エラーフ
ラグをセットする部分からなっている。
【0034】まず、チェックデータCD0〜CDnのデ
ータ全てが正常であるかチェックする。この場合、チェ
ックデータCDk(1バイト)のチェックは、全てのデ
ータが図4に示す如く、ゼロであれば全て正常と判定す
る。すなわち、図2のようにチェック部Ckを通過する
毎にインクリメントされる。従って、初期値をFFHと
しておくと、チェック部を通過した後にゼロになる。ま
た、例えば、図4に示す如く、異常が発生しチェック部
C2を通過しない場合、FFHのままであり、2回以上
通過した場合にはゼロではなくなるから、正常であるこ
とは全てのデータがゼロであることをチェックすればよ
い。
【0035】また、サブルーチンSUB1〜SUBn迄
の呼出しが正常か否かのチェックをする。例えば、サブ
ルーチンSUB1〜SUBn迄の呼出しが正常であれ
ば、サブルーチンチェックデータSUBD1〜SUBD
nは図5に示す正常の場合の如く、フラグが全て1とな
っている。図5の異常の側の如く、SUBD2のフラグ
が0のときサブルーチンSUB2の処理が完了していな
い。以上のチェックの結果、全てが正常の場合、図3の
エラーフラグをクリアし、一つでも異常があれば、エラ
ーフラグをセットする。なお、図4および図5に示した
チェックデータは、メモリ上配列形式で保存するがファ
イル形式で保存してもよい。
【0036】判定部SE2では、エラーフラグをチェッ
クし、エラーがない場合には、出力許可フラグセット処
理部SE3を実行し、エラーがある場合には、出力許可
フラグクリア処理部SE4を実行する。出力許可フラグ
セット処理部SE3では、出力許可フラグをセットし、
出力許可フラグクリア処理部SE4では出力許可フラグ
をクリアした後エラー発生時刻やエラー内容などのエラ
ーログを行う。
【0037】制御サイクルエラー処理部5の処理が終了
すると、出力処理部3に入り、判定部O1で出力許可フ
ラグをチェックし、出力許可の場合には、データ保存処
理部O2とハードウエア処理部O4を実行する。また、
出力許可でない場合には、データ保存処理部O2を実行
する。データ保存処理部O2では、主データ領域のデー
タを副データ領域へコピーを行う。データ復旧処理部O
3では、副データ領域のデータを主データ領域へコピー
を行う。ハードウエア処理部O4ではメモリに保存され
ている出力データをデータ出力ハードウエアへ出力す
る。
【0039】出力処理部3の処理が終了すると、チェッ
クデータ初期設定部6に入り、チェックデータCD0〜
CDnまで全て初期化し、サブルーチンチェックデータ
SUBD1〜SUBDnを初期化した後、入力及び演算
部2に戻り、再び同じ処理を繰り返す。
【0040】次に、上記したディジタル制御装置の処理
中に異常が発生したときの作用を具体的に説明する。
【0041】今、CPUがプログラムに従ってデータを
処理しているときに、ノイズ等によりメモリから読み出
した値が異常となり、暴走してエラートラップの場所に
さしかかると、エラー処理部4にジャンプしてくる。エ
ラー処理部4では、エラートラップに掛かったことと、
その時刻をエラーログとして記録し、チェックデータC
D0〜CDnをチェックする。このとき、制御サイクル
エラーが発生していない場合には、制御サイクルエラー
処理部5または出力処理部3で異常が発生したとみな
し、出力許可フラグをセットして出力処理部3に処理を
移す。一方、制御サイクルエラーが発生している場合に
は、出力許可フラグをクリアして出力処理部3に処理を
移す。この結果、入力及び演算部2の処理が正常である
場合には、ノイズによる誤動作が発生しても、制御を中
断することなく出力を行うことができる。
【0042】また、入力および演算部2の処理が正常で
ない場合には、出力を行わないようにすることによっ
て、誤出力を防止できる。この場合には、主データ領域
に入力及び演算部2の処理で誤った値が書き込まれてい
る場合があるため、副データ領域のデータを主データ領
域にコピーし、次の、スキャンで正常に制御する。これ
によって、制御対象からみれば、1スキャン分だけ制御
周期が延びたようにみえるだけであり、制御が中断され
ることはない。
【0043】また、今、CPUがプログラムに従ってデ
ータを処理中に、ノイズ等によりメモリから読み出した
値が異常となり、パリティエラーが発生して割り込みが
掛かることがある。この場合、パリティエラー処理部7
でメモリの動作をチェックしても、メモリ故障ではな
く、一過性のノイズにより読み出した値が変化しただけ
であるから、異常とは判断されない。このため、パリテ
ィエラー処理部7の処理を終了し元の場所に戻るが、割
り込み要求が掛かり割り込みを受け付けるまでに、多く
の場合、誤って読み出した値により演算が終了している
ことが多い。この結果、異常なジャンプが発生し、予期
しないプログラムの場所に飛び込み、そのプログラムを
実行してしまうことがある。
【0044】例えば、図6に示す如く、サブプログラム
Skを実行中に異常なジャンプが発生し、サブプログラ
ムSmを実行する場合がある。この場合には、サブプロ
グラムSkを正常終了しないから、チェック部Ckを通
過しないことになり、チェックデータCDkがインクリ
メントされない。
【0045】この結果、制御サイクルエラー処理部5で
エラーと判定され、出力処理部3でハードウエアへの出
力を行わない。また、主データ領域のデータは途中まで
演算された状態となっており、正常な値ではないことか
ら、副データ領域から主データ領域をコピーし次のスキ
ャンで正常に制御することができる。この場合は、制御
対象からみると、1スキャン分だけ制御周期が延びたよ
うにみえるだけであり、制御が中断されることはない。
【0046】また、今、CPUがプログラムに従ってサ
ブルーチンkを実行しているときに、ノイズ等によりメ
モリから読み出した値が異常となり、異常なジャンプが
発生し、予期しないプログラムの場所に飛び込み、その
プログラムを実行してしまうことがある。
【0047】例えば、図7に示す如く、サブプログラム
SkからサブルーチンSUBkを実行中に異常なジャン
プが発生し、サブルーチンSUBxを実行する場合があ
る。この場合には、サブルーチンSUBxを途中から実
行してリターンした場合、一見正常に見える。ところ
が、サブルーチンSUBkを正常に終了しないから、サ
ブルーチンチェックデータSUBDkがセットされてい
ない。このため、チェック部Ckがサブルーチンチェッ
クデータSUBDkデータを異常と判断する。この結
果、制御サイクルエラー処理部5の処理でエラーと判定
され、出力処理部3からハードウエアへの出力を行わな
い。また、主データ領域のデータは、途中まで演算され
た状態となっており、正常な値ではないことから、副デ
ータ領域から主データ領域にコピーし、次のスキャンで
正常に制御することができる。この場合は、制御対象か
らみると、1スキャン分だけ制御周期が延びたようにみ
えるだけであり、制御が中断されることはない。
【0048】このように、CPUがプログラムに従って
処理を実行中に一過性のノイズ等による異常で、暴走
し、エラートラップに掛かった場合でも、制御を中断す
ることがなくなり、ディジタル制御装置の運転を継続で
きる。また、同様にノイズ等による異常で、異常なジャ
ンプが発生し、ジャンプ先で一見正常に制御している場
合でも、異常な制御を検知し、異常な出力を防止すると
共に、制御を中断することもなく正常な制御状態へ復帰
させ、ディジタル制御装置の運転を継続することができ
る。
【0049】次に、本発明の第2実施例を図8を参照し
て説明する。
【0050】図1に示す第1実施例では、エラー処理部
4の処理が終了した後、出力処理部3に移行したが、第
2実施例ではエラー処理部4の処理が終了した後に、制
御サイクルエラー処理部5の処理を行うようにしたもの
である。第2実施例によれば、エラー処理部4でチェッ
クデータCD0〜CDnまでをチェックする必要がなく
なり、プログラムはより簡単になる。
【0051】次に、本発明の第3実施例を図9を参照し
て説明する。
【0052】図1に示す第1実施例では、データ保存処
理部O2とデータ復旧処理部O3を出力処理部3に設け
ているが、第3実施例ではこれらを制御サイクルエラー
処理部5に設けるようにしたものである。第3実施例で
は、エラートラップに掛かった場合でも、出力許可フラ
グクリア処理部SE4を通過するので、エラー内容を区
別するために、エラートラップ動作フラグを設け、エラ
ー処理部4でエラートラップ動作フラグをセットし、出
力許可フラグクリア処理部SE4でこれをチェックする
ことが必要になる。
【0053】次に、本発明の第4実施例を図10を参照
して説明すると、図1に示す第1実施例では、制御サイ
クルエラー処理部5と出力処理部3の如く分けていた
が、第4実施例のように一つにまとめてもよい。この場
合には、プログラムがより簡単になる。
【0054】また、図2に示す第1実施例のチェック部
ではチェックデータをインクリメントしているが、ディ
クリメントしてもよい。さらに、サブルーチンチェック
データSUBDkが正常でないときに、制御サイクルエ
ラー処理部5にジャンプするようにしたが、図11に示
す如く、ジャンプせずにフラグをセットしてもよい。
【0055】また、図2に示すチェック部Ckでは、同
じサブルーチンを複数個コールする場合チェックできな
いことがあり、これを解決するために図12に示す如く
の構成で実施することができる。すなわち、このチェッ
ク部Ckでは、次回コールするサブルーチンのチェック
データSUBDk+1をクリアする。このケースでは、
Ckー1の所でSUBDkデータがクリアされているの
で、サブプログラムSkの終了直前でSUBDkをセッ
トして戻ってくれば、正常、そうでなければ異常とな
る。この場合のSUBD1〜SUBDnまでのデータ
は、最後に呼ばれたサブプログラムSkで1にセットさ
れ、異常の場合には処理を中断して制御サイクルエラー
処理部5にジャンプするので、残りのデータはゼロのま
まになる。
【0056】さらに、本発明は上記に限らず次のように
実施してもよい。
【0057】1) チェックデータを1カ所1ビットデ
ータとして、データ量とデータ処理時間の短縮をしても
よい。この場合には、チェックデータCD0〜CDnま
でを通過するときに、該当するビットをセットする方法
となる。
【0058】2) 図1の第1実施例ではチェックデー
タ初期設定部6をプログラムの最後に置いたが、制御サ
イクルエラー処理部5の次に置いてもよい。また、チェ
ックデータ処理部SE1の次に置いてもよい。
【0059】3) 本発明の特徴は、入力及び演算部が
正常に作動しているときには主データ領域のデータを副
データ領域にコピーし、データ出力を行い、異常動作し
ているときには、データ出力を行わず、副データ領域か
ら主データ領域にデータをコピーすることにより、次の
スキャンから正常に復帰することにあり、異常動作検出
の方法をどのようにしてもよいことは言うまでもない。
【0060】4) 本発明の特徴は、入力及び演算部の
任意の場所にチェック部を設けプログラムが正常な順番
で処理されているかを調べることにあるものであり、チ
ェックデータの構成、チェックデータの加工をどのよう
にしてもよいことは言うまでもない。
【0061】5) また、本発明の特徴は、サブルーチ
ンの最終部分にサブルーチンチェックデータを置き、呼
出し側のプログラムで、そのデータをチェックするとこ
ろにあり、サブルーチンチェックデータの構成、加工を
どのようにしてもよいことは言うまでもない。
【0062】6) また、サブルーチンがサブルーチン
を呼び出すような、階層構成の場合であっても、その個
々のサブルーチンに対して、階層的にデータチェックを
行えばよいことは言うまでもない。
【0063】7) また、本発明はタイマ割り込みや、
イベント割り込みなどにより、複数のタスクを制御して
いる場合であっても、それら個々のタスクについて、本
発明が適用できることは言うまでもない。
【0064】
【発明の効果】以上説明したように本発明によれば、一
過性のノイズ等によりメモリから読み出した値が誤って
CPUに読み込まれた場合であっても、制御装置が停止
することはなくなり、連続して制御ができるようにな
る。また、異常なジャンプが発生して、その後一見して
正常に動作しているようにみえるものであっても、異常
を検出するので誤動作がなくなる。
【図面の簡単な説明】
【図1】本発明の第1実施例を示すディジタル制御装置
の構成と処理を示す説明図である。
【図2】図1のディジタル制御装置のチェック部の処理
を示す説明図である。
【図3】図1のディジタル制御装置のチェックデータ処
理部の処理を示す説明図である。
【図4】チェックデータの一例を示す説明図である。
【図5】サブルーチンチェックデータの一例を示す説明
図である。
【図6】図1のディジタル制御装置の制御サイクルエラ
ー発生の動作の一例を示す説明図である。
【図7】図1のディジタル制御装置の制御サイクルエラ
ー発生の動作の他の例を示す説明図である。
【図8】本発明の第2実施例を示すディジタル制御装置
の構成と処理を示す説明図である。
【図9】本発明の第3実施例を示すディジタル制御装置
の構成と処理を示す説明図である。
【図10】本発明の第4実施例を示すディジタル制御装
置の構成と処理を示す説明図である。
【図11】ディジタル制御装置の図2で説明したチェッ
ク部の他の実施例を示す説明図である。
【図12】図11のチェック部の他の実施例を示す説明
図である。
【図13】従来のディジタル制御装置の構成と処理を示
す説明図である。
【図14】図13のパリティエラー処理部の処理を示す
説明図である。
【図15】図13の他の処理部の処理を示す説明図であ
る。
【図16】従来のディジタル制御装置のエラー発生の動
作を示す説明図である。
【符号の説明】
1 初期化処理部 2 入力及び演算部 3 出力処理部 4 エラー処理部 5 制御サイクルエラー処理部 6 チェックデータ初期設定部 7 パリティエラー処理部 8 他の処理部 S1〜Sn サブプログラム C0〜Cn チェック部 O1 判定部 O2 データ保存処理部 O3 データ復旧処理部 O4 ハードウエア処理部 SE1 チェックデータ処理部 SE2 判定部 SE3 出力許可フラグセット処理部 SE4 出力許可フラグクリア処理部
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭56−88544(JP,A) 特開 昭60−15702(JP,A) 特開 昭62−151901(JP,A) 特開 昭57−27345(JP,A) 特開 昭62−298853(JP,A) 特開 昭57−143871(JP,A) 特開 昭59−5304(JP,A) 特開 昭59−144230(JP,A) 特開 平4−343145(JP,A) 特開 昭62−75801(JP,A) 特開 平3−105443(JP,A) 特開 平4−31930(JP,A) (58)調査した分野(Int.Cl.7,DB名) G05B 9/02

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 制御対象のデータを入力する入力部から
    制御スキャン毎にデータをメモリに取り込み、順次サブ
    プログラムの実行によって、前記メモリからデータを読
    み取り演算処理する入力および演算部と、この入力およ
    び演算部によって演算されたデータを前記制御対象へ出
    力する出力部へ出力する出力処理部と、メモリのプログ
    ラム領域およびデータ領域に適宜複数の無演算命令とそ
    の最終部にエラー処理プログラムへジャンプ命令を有す
    るエラートラップ部分を配置し、ノイズなどにより、C
    PUが暴走して前記エラートラップ部分にかかったとき
    エラー処理をしてプログラムの最初から処理を開始させ
    るエラー処理部とを有し、制御スキャン毎にプログラム
    の最初からデータの入力処理と演算処理と出力処理とを
    順次繰り返し実行するディジタル制御装置において、 前記メモリには、主データ格納領域と副データ格納領域
    とを配置し、 前記出力処理部は、制御スキャン毎に前記主データ領域
    のデータを前記副データ領域へ複写するデータ保存処理
    部と、前記エラー処理部によりエラー処理がされたとき
    出力不許可として前記副データ領域に複写されたデータ
    を前記主データ領域へ複写し、次の制御スキャンのとき
    のデータとするデータ復旧処理部と、前記出力不許可の
    ときメモリに保存されている出力データを前記制御対象
    へ出力する出力部へ出力を禁止するデータ出力処理部と
    からなる構成としたことを特徴とするディジタル制御装
    置。
  2. 【請求項2】 制御対象のデータを入力する入力部から
    制御スキャン毎にデータをメモリに取り込み、順次サブ
    プログラムの実行によって、前記メモリからデータを読
    み取り演算処理する入力および演算部と、この入力およ
    び演算部によって演算されたデータを前記制御対象へ出
    力する出力部へ出力する出力処理部と、メモリのプログ
    ラム領域およびデータ領域に適宜複数の無演算命令とそ
    の最終部にエラー処理プログラムへジャンプ命令を有す
    るエラートラップ部分を配置し、ノイズなどにより、C
    PUが暴走して前記エラートラップ部分にかかったとき
    エラー処理をしてプログラムの最初から処理を開始させ
    るエラー処理部とを有し、制御スキャン毎にプログラム
    の最初からデータの入力処理と演算処理と出力処理とを
    順次繰り返し実行するディジタル制御装置において、 前記メモリには、主データ格納領域と副データ格納領域
    とを配置し、前記入力および演算部には、前記サブプロ
    グラムが正常な順序に従って実行されたか否かを示すチ
    ェックデータをそれぞれのサブプログラムに対応して保
    存するチェック部を設けると共に、前記チェックデータ
    に基づいて全てのサブプログラムが正常に実行されたか
    否かを判定し、この判定で正常のときに出力許可を出力
    し、また、異常のとき出力不許可を出力する制御サイク
    ルエラー処理部を設け、 前記出力処理部は、制御スキャンデータ毎に前記主デー
    タ領域のデータを前記副データ領域へ複写するデータ保
    存処理部と、前記制御サイクル処理部により出力不許可
    とされたとき前記副データ領域に複写されたデータを前
    記主データ領域へ複写し次の制御スキャンのときのデー
    タとするデータ復旧処理部と、前記出力不許可のときメ
    モリに保存されている出力データを前記制御対象へ出力
    する出力部への出力を禁止するデータ出力処理部とから
    なる構成としたことを特徴とするディジタル制御装置。
  3. 【請求項3】 制御対象のデータを入力する入力部から
    制御スキャン毎にデータをメモリに取り込み、順次サブ
    プログラムの実行によって、前記メモリからデータを読
    み取り演算処理する入力および演算部と、この入力およ
    び演算部によって演算されたデータを前記制御対象へ出
    力する出力部へ出力する出力処理部と、メモリのプログ
    ラム領域およびデータ領域に適宜複数の無演算命令とそ
    の最終部にエラー処理プログラムへジャンプ命令を有す
    るエラートラップ部分を配置し、ノイズなどにより、C
    PUが暴走して前記エラートラップ分にかかったときエ
    ラー処理をしてプログラムの最初から処理を開始させる
    エラー処理部とを有し、制御スキャン毎にプログラムの
    最初からデータの入力処理と演算処理と出力処理とを順
    次繰り返し実行するディジタル制御装置において、 前記メモリには、主データ格納領域と副データ格納領域
    とを配置し、前記入力および演算部には、前記サブプロ
    グラムが正常な順序に従って実行されたか否かを示すチ
    ェックデータをそれぞれのサブプログラムに対応して保
    存するチェック部を設けると共に、前記チェックデータ
    に基づいて全てのサブプログラムが正常に実行されたか
    否かを判定し、この判定で正常のときに出力許可を出力
    し、また、異常のとき出力不許可を出力する制御サイク
    ルエラー処理部を設け、 前記出力処理部は、制御スキャンデータ毎に前記主デー
    タ領域のデータを前記副データ領域へ複写するデータ保
    存処理部と、前記エラー処理部によりエラー処理がされ
    たとき出力不許可とされたときまたは前記制御サイクル
    処理部により出力不許可とされたとき前記副データ領域
    に複写されたデータを前記主データ領域へ複写し次の制
    御スキャンのときのデータとするデータ復旧処理部と、
    前記出力不許可のときメモリに保存されている出力デー
    タを前記制御対象へ出力する出力部への出力を禁止する
    データ出力処理部とからなる構成としたことを特徴とす
    るディジタル制御装置。
JP02718493A 1993-01-25 1993-01-25 ディジタル制御装置 Expired - Fee Related JP3183982B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02718493A JP3183982B2 (ja) 1993-01-25 1993-01-25 ディジタル制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02718493A JP3183982B2 (ja) 1993-01-25 1993-01-25 ディジタル制御装置

Publications (2)

Publication Number Publication Date
JPH06222804A JPH06222804A (ja) 1994-08-12
JP3183982B2 true JP3183982B2 (ja) 2001-07-09

Family

ID=12213997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02718493A Expired - Fee Related JP3183982B2 (ja) 1993-01-25 1993-01-25 ディジタル制御装置

Country Status (1)

Country Link
JP (1) JP3183982B2 (ja)

Also Published As

Publication number Publication date
JPH06222804A (ja) 1994-08-12

Similar Documents

Publication Publication Date Title
EP1872203B1 (en) Selecting subroutine return mechanisms
JPH02135536A (ja) チエツクポイント再試行機構
US5040178A (en) Method of fault protection for a microcomputer system
KR20050121729A (ko) 프로그램 제어식 유닛 및 방법
JP3183982B2 (ja) ディジタル制御装置
JPH03175537A (ja) デバッグ用マイクロプロセッサのエラー制御装置
JP5215655B2 (ja) データ処理装置及びデータ処理装置におけるバスアクセス制御方法
JP3182373B2 (ja) マイクロコンピュータ装置
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JP2786215B2 (ja) 再開処理制御方式
JP2570108B2 (ja) ソフトウェアデバッグ方法
JPS61223952A (ja) デ−タ処理装置のリトライ機能確認方式
JPH06259288A (ja) Cpuの暴走監視回路
JPS5975348A (ja) 計算機の異常検出方法およびその装置
JPH0553879A (ja) プログラム障害情報収集方式
JPH07152594A (ja) 制御プロセッサのリトライ制御方式
JPS6298435A (ja) コンピユ−タの異常検出方法
JPH01180656A (ja) メモリ保護装置
JPS59168552A (ja) プログラムリトライによる暴走防止方式
JPH0371236A (ja) エラー検出システム
JPH05189258A (ja) マイクロコンピュータ
JPS5848150A (ja) 障害波及防止方式
JPS61202234A (ja) アドレス制御回路
JPH04236637A (ja) マイクロプロセッサ障害検出回路
JPS6083149A (ja) コンピユ−タ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees