JP3144979B2 - プログラム処理装置及び処理方法 - Google Patents
プログラム処理装置及び処理方法Info
- Publication number
- JP3144979B2 JP3144979B2 JP06175994A JP6175994A JP3144979B2 JP 3144979 B2 JP3144979 B2 JP 3144979B2 JP 06175994 A JP06175994 A JP 06175994A JP 6175994 A JP6175994 A JP 6175994A JP 3144979 B2 JP3144979 B2 JP 3144979B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- module
- processing
- storage means
- programming 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.)
- Expired - Fee Related
Links
Landscapes
- Stored Programmes (AREA)
Description
【0001】
【産業上の利用分野】本発明は、格納されたプログラム
によって各種の制御を行うプログラム処理装置、及び処
理方法に関する。
によって各種の制御を行うプログラム処理装置、及び処
理方法に関する。
【0002】
【従来の技術】プラント運転等、各種産業の自動化のた
めに情報処理装置が使用される。しかし、プラントの運
転中はプラントを制御している情報処理装置の処理を止
めることはできないので、プラントの制御プログラムを
変更する場合には、情報処理装置の処理を止めずに、外
部から新プログラムを転送して、旧プログラムと置き換
える必要が生じる。プログラム処理装置の1つであるプ
ログラマブル・コントローラは、上記制御を行うために
用いられており、以下にその詳細を説明する。
めに情報処理装置が使用される。しかし、プラントの運
転中はプラントを制御している情報処理装置の処理を止
めることはできないので、プラントの制御プログラムを
変更する場合には、情報処理装置の処理を止めずに、外
部から新プログラムを転送して、旧プログラムと置き換
える必要が生じる。プログラム処理装置の1つであるプ
ログラマブル・コントローラは、上記制御を行うために
用いられており、以下にその詳細を説明する。
【0003】図10は、プログラマブル・コントローラ
の全体構成を示す図である。プログラマブル・コントロ
ーラは、中央処理装置401(以後、CPUと略す)、
プラント等の制御プログラムが格納されるプログラム・
メモリ402、制御プログラムが格納された格納番地が
格納されるプログラム・エントリ・テーブル403、プ
ラント等の制御信号を入出力するインタフェース等で構
成される入出力インタフェース404、外部から制御プ
ログラムを受け取り、前記プログラム・メモリ402に
制御プログラムの書き込み等を行うプログラミング装置
インタフェース405、及び前記CPU401、プログ
ラム・メモリ402、プログラム・エントリ・テーブル
403、入出力インタフェース404、プログラミング
装置インタフェース405が接続され、データ、アドレ
ス、制御信号で構成されるシステム・バス406で構成
される。
の全体構成を示す図である。プログラマブル・コントロ
ーラは、中央処理装置401(以後、CPUと略す)、
プラント等の制御プログラムが格納されるプログラム・
メモリ402、制御プログラムが格納された格納番地が
格納されるプログラム・エントリ・テーブル403、プ
ラント等の制御信号を入出力するインタフェース等で構
成される入出力インタフェース404、外部から制御プ
ログラムを受け取り、前記プログラム・メモリ402に
制御プログラムの書き込み等を行うプログラミング装置
インタフェース405、及び前記CPU401、プログ
ラム・メモリ402、プログラム・エントリ・テーブル
403、入出力インタフェース404、プログラミング
装置インタフェース405が接続され、データ、アドレ
ス、制御信号で構成されるシステム・バス406で構成
される。
【0004】プログラミング装置407は、プラントの
制御プログラムの開発に使用され、作成された制御プロ
グラムは、プログラミング装置インタフェース405を
介してプログラム・メモリ402に書き込まれる。
制御プログラムの開発に使用され、作成された制御プロ
グラムは、プログラミング装置インタフェース405を
介してプログラム・メモリ402に書き込まれる。
【0005】次に、プログラミング装置インタフェース
405の動作を説明する。図11は、プログラミング装
置インタフェース405の全体構成を示している。プロ
グラミング装置インタフェース405は、プログラミン
グ装置407からの制御プログラムの受け取り、プログ
ラム・メモリ402への書き込み等の制御を行うプロセ
ッサ501、プログラミング装置407からの制御プロ
グラムの一時的な保持等に使用されるメモリ502、プ
ロセッサ501がシステム・バス406を介してプログ
ラム・メモリ402に制御プログラムを書き込む際に、
CPU401からのアクセスと重複しないように制御を
行うシステム・バス・インタフェース503、プログラ
ミング装置407から制御プログラムの受け取り等の処
理に使用される外部インタフェース504、及び前記プ
ロセッサ501、メモリ502、システム・バス・イン
タフェース503、外部インタフェース504が接続さ
れ、データ、アドレス、制御信号で構成されるローカル
・バス505とで構成される。
405の動作を説明する。図11は、プログラミング装
置インタフェース405の全体構成を示している。プロ
グラミング装置インタフェース405は、プログラミン
グ装置407からの制御プログラムの受け取り、プログ
ラム・メモリ402への書き込み等の制御を行うプロセ
ッサ501、プログラミング装置407からの制御プロ
グラムの一時的な保持等に使用されるメモリ502、プ
ロセッサ501がシステム・バス406を介してプログ
ラム・メモリ402に制御プログラムを書き込む際に、
CPU401からのアクセスと重複しないように制御を
行うシステム・バス・インタフェース503、プログラ
ミング装置407から制御プログラムの受け取り等の処
理に使用される外部インタフェース504、及び前記プ
ロセッサ501、メモリ502、システム・バス・イン
タフェース503、外部インタフェース504が接続さ
れ、データ、アドレス、制御信号で構成されるローカル
・バス505とで構成される。
【0006】プログラミング装置407で作成された制
御プログラムは、外部インタフェース504を介して転
送され、プロセッサ501の制御によってメモリ502
に書き込まれる。プロセッサ501は、メモリ502に
格納された制御プログラムをプログラム・メモリ402
に書き込み、制御プログラムが格納されるプログラム・
メモリ402上の格納番地を、プログラム・エントリ・
テーブル403に書き込む。プロセッサ501が、プロ
グラム・メモリ402へデータを書き込む際、CPU4
01との競合が起こらないようにシステム・バス・イン
タフェース503がシステム・バスの制御を行う。
御プログラムは、外部インタフェース504を介して転
送され、プロセッサ501の制御によってメモリ502
に書き込まれる。プロセッサ501は、メモリ502に
格納された制御プログラムをプログラム・メモリ402
に書き込み、制御プログラムが格納されるプログラム・
メモリ402上の格納番地を、プログラム・エントリ・
テーブル403に書き込む。プロセッサ501が、プロ
グラム・メモリ402へデータを書き込む際、CPU4
01との競合が起こらないようにシステム・バス・イン
タフェース503がシステム・バスの制御を行う。
【0007】また、プログラミング装置インタフェース
405は、システム・バス406を介して、プログラム
・メモリ402からデータを読み出すことも可能であ
る。プログラミング装置407から転送される制御プロ
グラムは、幾つかのプログラム・モジュールに分割され
ている。各プログラム・モジュールは、識別のためのプ
ログラム番号を持ち、プログラム・モジュールの先頭に
プログラム番号が付加されている。また、プログラム・
モジュールの最後には、プログラム・モジュールの最後
であることを示すプログラム・エンド命令が付加されて
いる。
405は、システム・バス406を介して、プログラム
・メモリ402からデータを読み出すことも可能であ
る。プログラミング装置407から転送される制御プロ
グラムは、幾つかのプログラム・モジュールに分割され
ている。各プログラム・モジュールは、識別のためのプ
ログラム番号を持ち、プログラム・モジュールの先頭に
プログラム番号が付加されている。また、プログラム・
モジュールの最後には、プログラム・モジュールの最後
であることを示すプログラム・エンド命令が付加されて
いる。
【0008】転送されたプログラム・モジュールがプロ
グラム・メモリ402に格納された後、前記プログラム
番号に対応するプログラム・エントリ・テーブル403
に、プログラム・モジュールが格納されたプログラム・
メモリ402上の番地が格納される。
グラム・メモリ402に格納された後、前記プログラム
番号に対応するプログラム・エントリ・テーブル403
に、プログラム・モジュールが格納されたプログラム・
メモリ402上の番地が格納される。
【0009】次に、プログラマブル・コントローラ内の
CPU401が、制御プログラムの処理を行う際の処理
方法を以下に説明する。先ず、CPU401は、プログ
ラム・エントリ・テーブル403に格納されたプログラ
ム・モジュール1の格納番地を読み出し、プログラム・
モジュール1の処理を始める。プログラム・エンド命令
が検出された時に、プログラム・モジュール1の処理が
終了し、次に、プログラム・エントリ・テーブル403
からプログラム・モジュール2の格納番地を読み出し、
プログラム・モジュール2の処理を始める。以下、同様
にプログラム・モジュールの処理を番号順に行い、最後
のプログラム・モジュールの処理が終了後、再び最初の
プログラム・モジュールの処理に戻り、以上の処理を繰
り返すことによって、プラント等の制御を行う。
CPU401が、制御プログラムの処理を行う際の処理
方法を以下に説明する。先ず、CPU401は、プログ
ラム・エントリ・テーブル403に格納されたプログラ
ム・モジュール1の格納番地を読み出し、プログラム・
モジュール1の処理を始める。プログラム・エンド命令
が検出された時に、プログラム・モジュール1の処理が
終了し、次に、プログラム・エントリ・テーブル403
からプログラム・モジュール2の格納番地を読み出し、
プログラム・モジュール2の処理を始める。以下、同様
にプログラム・モジュールの処理を番号順に行い、最後
のプログラム・モジュールの処理が終了後、再び最初の
プログラム・モジュールの処理に戻り、以上の処理を繰
り返すことによって、プラント等の制御を行う。
【0010】次に、プログラム・モジュール1を、新し
いプログラム・モジュール1に更新する場合の処理を図
12、及び図13を用いて説明する。図12は、新しい
プログラム・モジュール1を格納する前の状態を示して
おり、プログラム・エントリ・テーブル403には、プ
ログラム・モジュール1、2、3の格納番地がそれぞれ
格納されている。
いプログラム・モジュール1に更新する場合の処理を図
12、及び図13を用いて説明する。図12は、新しい
プログラム・モジュール1を格納する前の状態を示して
おり、プログラム・エントリ・テーブル403には、プ
ログラム・モジュール1、2、3の格納番地がそれぞれ
格納されている。
【0011】図13は、新しいプログラム・モジュール
1を格納した後の状態を示している。プログラミング装
置インタフェース405が、システム・バス406を介
して、プログラム・モジュール3の後に、新しいプログ
ラム・モジュール1を転送する。新しいプログラム・モ
ジュール1の転送後に、プログラム・エントリ・テーブ
ル403のプログラム・モジュール1の格納番地を、新
しいプログラム・モジュール1の格納番地に書き換え
る。
1を格納した後の状態を示している。プログラミング装
置インタフェース405が、システム・バス406を介
して、プログラム・モジュール3の後に、新しいプログ
ラム・モジュール1を転送する。新しいプログラム・モ
ジュール1の転送後に、プログラム・エントリ・テーブ
ル403のプログラム・モジュール1の格納番地を、新
しいプログラム・モジュール1の格納番地に書き換え
る。
【0012】以上の処理により、プログラマブル・コン
トローラ内のCPU401が、プログラム・モジュール
1の処理を実行する際、自動的に新しいプログラム・モ
ジュール1の処理を行うことになる。
トローラ内のCPU401が、プログラム・モジュール
1の処理を実行する際、自動的に新しいプログラム・モ
ジュール1の処理を行うことになる。
【0013】
【発明が解決しようとする課題】新しいプログラム・モ
ジュールを、プログラム・メモリ402に格納する際、
プログラム領域が不足する場合が生じる。図13におい
て、プログラム・モジュール1の後に、プログラム・モ
ジュール4(特に、図示しない)を新たに格納する場
合、空き領域2ではプログラム領域が不足しているとす
ると、旧プログラム・モジュール1の領域が空き領域
(空き領域1)であるので、プログラム・モジュール3
をプログラム・モジュール2の後ろに移動し、プログラ
ム・モジュール1をプログラム・モジュール3の後ろに
移動することによって、(空き領域1+空き領域2)の
空き領域を確保することができる。このプログラム・モ
ジュールの移動は、プログラミング装置インタフェース
405によって行われる。
ジュールを、プログラム・メモリ402に格納する際、
プログラム領域が不足する場合が生じる。図13におい
て、プログラム・モジュール1の後に、プログラム・モ
ジュール4(特に、図示しない)を新たに格納する場
合、空き領域2ではプログラム領域が不足しているとす
ると、旧プログラム・モジュール1の領域が空き領域
(空き領域1)であるので、プログラム・モジュール3
をプログラム・モジュール2の後ろに移動し、プログラ
ム・モジュール1をプログラム・モジュール3の後ろに
移動することによって、(空き領域1+空き領域2)の
空き領域を確保することができる。このプログラム・モ
ジュールの移動は、プログラミング装置インタフェース
405によって行われる。
【0014】しかし、例えば、プログラム・モジュール
3の移動中に、CPU401がプログラム・モジュール
3の処理を実行しようとした場合に、プログラミング装
置インタフェース405によるプログラム・モジュール
3の移動が終了するまで、プログラム・モジュール3の
実行が待たされることになる。何故なら、空き領域1が
プログラム・モジュール3の容量よりも大きい場合には
問題にならないが、逆にプログラム・モジュール3の容
量が空き領域1よりも大きい場合には、転送途中に元の
プログラム・モジュール3の内容を壊してしまうので、
CPU401が壊れた部分の命令をフェッチして実行を
行うとストールするからである。プログラム・モジュー
ル1を移動する場合も、同様である。
3の移動中に、CPU401がプログラム・モジュール
3の処理を実行しようとした場合に、プログラミング装
置インタフェース405によるプログラム・モジュール
3の移動が終了するまで、プログラム・モジュール3の
実行が待たされることになる。何故なら、空き領域1が
プログラム・モジュール3の容量よりも大きい場合には
問題にならないが、逆にプログラム・モジュール3の容
量が空き領域1よりも大きい場合には、転送途中に元の
プログラム・モジュール3の内容を壊してしまうので、
CPU401が壊れた部分の命令をフェッチして実行を
行うとストールするからである。プログラム・モジュー
ル1を移動する場合も、同様である。
【0015】従って、プログラム・モジュールを移動中
には、プラント運転等の制御が停止するという問題があ
った。
には、プラント運転等の制御が停止するという問題があ
った。
【0016】
【課題を解決するための手段】図1に示す本発明の原理
ブロック図を用いて、上記課題を解決するための手段を
説明する。
ブロック図を用いて、上記課題を解決するための手段を
説明する。
【0017】処理手段101は、複数のプログラムを処
理手順に従って、順次処理を行うもので、実施例では中
央処理装置(CPU)として説明する。格納手段102
は、前記複数のプログラムを格納するもので、実施例で
はプログラム・メモリとして説明する。
理手順に従って、順次処理を行うもので、実施例では中
央処理装置(CPU)として説明する。格納手段102
は、前記複数のプログラムを格納するもので、実施例で
はプログラム・メモリとして説明する。
【0018】処理手順格納手段103は、前記処理手順
を格納するもので、実施例ではプログラム・エントリ・
テーブルとして説明する。一時格納手段104は、前記
複数のプログラムの1つ、又は複数を一時的に格納する
もので、実施例ではバッファ、或いはプログラム・メモ
リの一部として説明する。
を格納するもので、実施例ではプログラム・エントリ・
テーブルとして説明する。一時格納手段104は、前記
複数のプログラムの1つ、又は複数を一時的に格納する
もので、実施例ではバッファ、或いはプログラム・メモ
リの一部として説明する。
【0019】空き領域検出手段105は、前記格納手段
102に格納された前記複数のプログラム間の空き領域
を検出するもので、実施例ではプログラミング装置イン
タフェースがこの処理を行う。
102に格納された前記複数のプログラム間の空き領域
を検出するもので、実施例ではプログラミング装置イン
タフェースがこの処理を行う。
【0020】複写手段106は、前記空き領域直後のプ
ログラムを、前記一時格納手段104に複写するもの
で、実施例ではプログラミング装置インタフェースがこ
の処理を行う。
ログラムを、前記一時格納手段104に複写するもの
で、実施例ではプログラミング装置インタフェースがこ
の処理を行う。
【0021】移動手段107は、前記空き領域直後のプ
ログラムを、前記空き領域直前のプログラムの後ろに移
動するもので、実施例ではプログラミング装置インタフ
ェースがこの処理を行う。
ログラムを、前記空き領域直前のプログラムの後ろに移
動するもので、実施例ではプログラミング装置インタフ
ェースがこの処理を行う。
【0022】更新手段108は、前記処理手順格納手段
103の内容を更新するもので、実施例ではプログラミ
ング装置インタフェースがこの処理を行う。
103の内容を更新するもので、実施例ではプログラミ
ング装置インタフェースがこの処理を行う。
【0023】
【作用】図1に示す本発明の原理ブロック図を用いて、
本発明の原理を説明する。処理手段101は、処理手順
格納手段103に格納されたプログラムの格納番地を読
み出す。格納手段102には、複数のプログラムが格納
されており、処理手段101は、格納手段102の該格
納番地からプログラムの実行を行う。プログラムの実行
が終了すれば、処理手順格納手段103に格納された次
のプログラムの格納番地を読み出し、プログラムの実行
を行う。以上の処理を繰り返し、プログラムの処理を順
次行う。
本発明の原理を説明する。処理手段101は、処理手順
格納手段103に格納されたプログラムの格納番地を読
み出す。格納手段102には、複数のプログラムが格納
されており、処理手段101は、格納手段102の該格
納番地からプログラムの実行を行う。プログラムの実行
が終了すれば、処理手順格納手段103に格納された次
のプログラムの格納番地を読み出し、プログラムの実行
を行う。以上の処理を繰り返し、プログラムの処理を順
次行う。
【0024】空き領域検出手段105は、格納手段10
2に格納されたプログラムの間の空き領域の検出を行
う。空き領域が検出されると、複写手段106は、空き
領域直後のプログラムを、一時格納手段104に複写す
る。
2に格納されたプログラムの間の空き領域の検出を行
う。空き領域が検出されると、複写手段106は、空き
領域直後のプログラムを、一時格納手段104に複写す
る。
【0025】複写が終了後、更新手段108は、処理手
順格納手段103の中の空き領域直後のプログラムの格
納番地を、複写先の一時格納手段104の格納番地に更
新する。
順格納手段103の中の空き領域直後のプログラムの格
納番地を、複写先の一時格納手段104の格納番地に更
新する。
【0026】次に、移動手段107は、空き領域直後の
プログラムを、空き領域直前のプログラムの後ろに移動
する。移動が終了後、更新手段108は、処理手順格納
手段103の中の前記格納番地を、移動後のプログラム
の格納番地に更新する。
プログラムを、空き領域直前のプログラムの後ろに移動
する。移動が終了後、更新手段108は、処理手順格納
手段103の中の前記格納番地を、移動後のプログラム
の格納番地に更新する。
【0027】以上の処理を繰り返すことによって、プロ
グラム間の空き領域を順に埋めてゆき、1つの大きな空
き領域が確保される。
グラム間の空き領域を順に埋めてゆき、1つの大きな空
き領域が確保される。
【0028】
【実施例】図2は、本発明の第1実施例の全体構成を示
す図である。プログラマブル・コントローラは、中央処
理装置201(以後、CPUと略す)、プラント等の制
御プログラムが格納されるプログラム・メモリ202、
制御プログラムが格納されたプログラム・メモリ202
上の格納番地が格納されるプログラム・エントリ・テー
ブル203、制御プログラムの一部(プログラム・モジ
ュール)が格納されるバッファ204、プラント等の制
御信号を入出力するインタフェース等で構成される入出
力インタフェース205、外部から制御プログラムを受
け取り、前記プログラムメモリ202に制御プログラム
の書き込み等を行うプログラミング装置インタフェース
206、及び前記CPU201、プログラム・メモリ2
02、、プログラム・エントリ・テーブル203、バッ
ファ204、入出力インタフェース205、プログラミ
ング装置インタフェース206が接続され、データ、ア
ドレス、制御信号で構成されるシステム・バス207で
構成される。
す図である。プログラマブル・コントローラは、中央処
理装置201(以後、CPUと略す)、プラント等の制
御プログラムが格納されるプログラム・メモリ202、
制御プログラムが格納されたプログラム・メモリ202
上の格納番地が格納されるプログラム・エントリ・テー
ブル203、制御プログラムの一部(プログラム・モジ
ュール)が格納されるバッファ204、プラント等の制
御信号を入出力するインタフェース等で構成される入出
力インタフェース205、外部から制御プログラムを受
け取り、前記プログラムメモリ202に制御プログラム
の書き込み等を行うプログラミング装置インタフェース
206、及び前記CPU201、プログラム・メモリ2
02、、プログラム・エントリ・テーブル203、バッ
ファ204、入出力インタフェース205、プログラミ
ング装置インタフェース206が接続され、データ、ア
ドレス、制御信号で構成されるシステム・バス207で
構成される。
【0029】プログラミング装置208は、プラントの
制御プログラムの開発に使用され、作成された制御プロ
グラムは、プログラミング装置インタフェース206を
介してプログラム・メモリ202に書き込まれる。
制御プログラムの開発に使用され、作成された制御プロ
グラムは、プログラミング装置インタフェース206を
介してプログラム・メモリ202に書き込まれる。
【0030】プログラミング装置インタフェース206
は、プログラミング装置208からの制御プログラムの
受け取り、プログラム・メモリ202への書き込み等の
制御を行う。プログラミング装置インタフェース206
が、システム・バス207を介してプログラム・メモリ
202に制御プログラムを書き込む際に、CPU201
からのアクセスと重複しないように制御を行う。
は、プログラミング装置208からの制御プログラムの
受け取り、プログラム・メモリ202への書き込み等の
制御を行う。プログラミング装置インタフェース206
が、システム・バス207を介してプログラム・メモリ
202に制御プログラムを書き込む際に、CPU201
からのアクセスと重複しないように制御を行う。
【0031】プログラミング装置208から転送される
制御プログラムは、幾つかのプログラム・モジュールに
分割されている。各プログラム・モジュールは、識別の
ためのプログラム番号を持ち、プログラム・モジュール
の先頭にプログラム番号が付加されている。また、プロ
グラム・モジュールの最後には、プログラム・モジュー
ルの最後であることを示すプログラム・エンド命令が付
加されている。
制御プログラムは、幾つかのプログラム・モジュールに
分割されている。各プログラム・モジュールは、識別の
ためのプログラム番号を持ち、プログラム・モジュール
の先頭にプログラム番号が付加されている。また、プロ
グラム・モジュールの最後には、プログラム・モジュー
ルの最後であることを示すプログラム・エンド命令が付
加されている。
【0032】転送されたプログラム・モジュールがプロ
グラム・メモリ202に格納された後、前記プログラム
番号に対応するプログラム・エントリ・テーブル203
に、プログラム・モジュールが格納されたプログラム・
メモリ202上の番地が格納される。
グラム・メモリ202に格納された後、前記プログラム
番号に対応するプログラム・エントリ・テーブル203
に、プログラム・モジュールが格納されたプログラム・
メモリ202上の番地が格納される。
【0033】次に、Bモジュールを、新しいBモジュー
ルに更新し、空き領域となった旧Bモジュールを埋める
ために、各プログラム・モジュールを移動するための方
法について図3〜図5を用いて説明する。
ルに更新し、空き領域となった旧Bモジュールを埋める
ために、各プログラム・モジュールを移動するための方
法について図3〜図5を用いて説明する。
【0034】(1)は、新しいBモジュールを格納した
後の状態を示している。新しいBモジュールは、プログ
ラム・モジュールの最後に格納され、プログラム・エン
トリ・テーブルのBモジュールに対応する領域には、新
しいBモジュールの格納番地が格納される。旧Bモジュ
ールは、空き領域となる。
後の状態を示している。新しいBモジュールは、プログ
ラム・モジュールの最後に格納され、プログラム・エン
トリ・テーブルのBモジュールに対応する領域には、新
しいBモジュールの格納番地が格納される。旧Bモジュ
ールは、空き領域となる。
【0035】(2)は、Cモジュールをバッファ204
に複写した後の状態を示している。プログラミング装置
インタフェース206が、バッファ204にCモジュー
ルを複写した後、プログラム・エントリ・テーブルのC
モジュールに対応する領域を、バッファ204のCモジ
ュールが格納された格納番地に書き換える。
に複写した後の状態を示している。プログラミング装置
インタフェース206が、バッファ204にCモジュー
ルを複写した後、プログラム・エントリ・テーブルのC
モジュールに対応する領域を、バッファ204のCモジ
ュールが格納された格納番地に書き換える。
【0036】(3)は、Cモジュールを旧Bモジュール
が格納されていた領域に移動した後の状態を示してい
る。プログラミング装置インタフェース206は、Cモ
ジュールを旧Bモジュールが格納されていた領域に移動
した後、プログラム・エントリ・テーブル203のCモ
ジュールに対応する領域を、移動後の格納番地に書き換
える。従って、Cモジュールを移動中に、CPU201
がCモジュールの処理を実行する場合でも、CPU20
1はバッファ204のCモジュールを実行することにな
るので、処理を停止せずにCモジュールの移動が行え
る。
が格納されていた領域に移動した後の状態を示してい
る。プログラミング装置インタフェース206は、Cモ
ジュールを旧Bモジュールが格納されていた領域に移動
した後、プログラム・エントリ・テーブル203のCモ
ジュールに対応する領域を、移動後の格納番地に書き換
える。従って、Cモジュールを移動中に、CPU201
がCモジュールの処理を実行する場合でも、CPU20
1はバッファ204のCモジュールを実行することにな
るので、処理を停止せずにCモジュールの移動が行え
る。
【0037】(4)は、プログラミング装置インタフェ
ース206が、Dモジュールをバッファ204に複写し
た後の状態を示しており、Dモジュールの複写後に、プ
ログラミング装置インタフェース206が、プログラム
・エントリ・テーブル203のDモジュールに対応する
領域をバッファ204のDモジュールが格納された格納
番地に書き換える。
ース206が、Dモジュールをバッファ204に複写し
た後の状態を示しており、Dモジュールの複写後に、プ
ログラミング装置インタフェース206が、プログラム
・エントリ・テーブル203のDモジュールに対応する
領域をバッファ204のDモジュールが格納された格納
番地に書き換える。
【0038】(5)は、DモジュールをCモジュールの
後ろに移動した後の状態を示している。プログラミング
装置インタフェース206が、DモジュールをCモジュ
ールの後ろに移動した後、プログラム・エントリ・テー
ブルのDモジュールに対応する領域を、移動後の格納番
地に書き換える。
後ろに移動した後の状態を示している。プログラミング
装置インタフェース206が、DモジュールをCモジュ
ールの後ろに移動した後、プログラム・エントリ・テー
ブルのDモジュールに対応する領域を、移動後の格納番
地に書き換える。
【0039】(6)は、プログラム・モジュールのバッ
ファ204への複写と、プログラム・モジュールの移動
を繰り返し、全ての空き領域を埋めた後の状態を示して
いる。
ファ204への複写と、プログラム・モジュールの移動
を繰り返し、全ての空き領域を埋めた後の状態を示して
いる。
【0040】図6は、本発明の第2実施例の全体構成を
示す図である。プログラマブル・コントローラは、中央
処理装置301(以後、CPUと略す)、プラント等の
制御プログラムが格納されるプログラム・メモリ30
2、制御プログラムが格納されたプログラム・メモリ3
02上の格納番地が格納されるプログラム・エントリ・
テーブル303、プラント等の制御信号を入出力するイ
ンタフェース等で構成される入出力インタフェース30
4、外部から制御プログラムを受け取り、前記プログラ
ムメモリ302に制御プログラムの書き込み等を行うプ
ログラミング装置インタフェース305、及び前記CP
U301、プログラム・メモリ302、プログラム・エ
ントリ・テーブル303、入出力インタフェース30
4、プログラミング装置インタフェース305が接続さ
れ、データ、アドレス、制御信号で構成されるシステム
・バス306で構成される。
示す図である。プログラマブル・コントローラは、中央
処理装置301(以後、CPUと略す)、プラント等の
制御プログラムが格納されるプログラム・メモリ30
2、制御プログラムが格納されたプログラム・メモリ3
02上の格納番地が格納されるプログラム・エントリ・
テーブル303、プラント等の制御信号を入出力するイ
ンタフェース等で構成される入出力インタフェース30
4、外部から制御プログラムを受け取り、前記プログラ
ムメモリ302に制御プログラムの書き込み等を行うプ
ログラミング装置インタフェース305、及び前記CP
U301、プログラム・メモリ302、プログラム・エ
ントリ・テーブル303、入出力インタフェース30
4、プログラミング装置インタフェース305が接続さ
れ、データ、アドレス、制御信号で構成されるシステム
・バス306で構成される。
【0041】プログラミング装置307は、プラントの
制御プログラムの開発に使用され、作成された制御プロ
グラムは、プログラミング装置インタフェース305を
介してプログラム・メモリ302に書き込まれる。
制御プログラムの開発に使用され、作成された制御プロ
グラムは、プログラミング装置インタフェース305を
介してプログラム・メモリ302に書き込まれる。
【0042】プログラミング装置インタフェース305
は、プログラミング装置307からの制御プログラムの
受け取り、プログラム・メモリ302への書き込み等の
制御を行う。プログラミング装置インタフェース305
は、システム・バス306を介してプログラム・メモリ
302に制御プログラムを書き込む際に、CPU301
からのアクセスと重複しないように制御を行う。
は、プログラミング装置307からの制御プログラムの
受け取り、プログラム・メモリ302への書き込み等の
制御を行う。プログラミング装置インタフェース305
は、システム・バス306を介してプログラム・メモリ
302に制御プログラムを書き込む際に、CPU301
からのアクセスと重複しないように制御を行う。
【0043】プログラミング装置307から転送される
制御プログラムは、幾つかのプログラム・モジュールに
分割されている。各プログラム・モジュールは、識別の
ためのプログラム番号を持ち、プログラム・モジュール
の先頭にプログラム番号が付加されている。また、プロ
グラム・モジュールの最後には、プログラム・モジュー
ルの最後であることを示すプログラム・エンド命令が付
加されている。
制御プログラムは、幾つかのプログラム・モジュールに
分割されている。各プログラム・モジュールは、識別の
ためのプログラム番号を持ち、プログラム・モジュール
の先頭にプログラム番号が付加されている。また、プロ
グラム・モジュールの最後には、プログラム・モジュー
ルの最後であることを示すプログラム・エンド命令が付
加されている。
【0044】転送されたプログラム・モジュールがプロ
グラム・メモリ302に格納された後、前記プログラム
番号に対応するプログラム・エントリ・テーブル303
に、プログラム・モジュールが格納されたプログラム・
メモリ302上の番地が格納される。
グラム・メモリ302に格納された後、前記プログラム
番号に対応するプログラム・エントリ・テーブル303
に、プログラム・モジュールが格納されたプログラム・
メモリ302上の番地が格納される。
【0045】次に、Bモジュールを、新しいBモジュー
ルに更新し、空き領域となった旧Bモジュール領域を埋
めるために、各プログラム・モジュールを移動するため
の方法について図7〜図9を用いて説明する。
ルに更新し、空き領域となった旧Bモジュール領域を埋
めるために、各プログラム・モジュールを移動するため
の方法について図7〜図9を用いて説明する。
【0046】(1)は、新しいBモジュールを格納した
後の状態を示している。新しいBモジュールは、プログ
ラミング装置インタフェース305によって、プログラ
ム・モジュールの最後に格納され、プログラム・エント
リ・テーブル303のBモジュールに対応する領域に
は、新しいBモジュールの格納番地が格納される。旧B
モジュールは、空き領域となる。
後の状態を示している。新しいBモジュールは、プログ
ラミング装置インタフェース305によって、プログラ
ム・モジュールの最後に格納され、プログラム・エント
リ・テーブル303のBモジュールに対応する領域に
は、新しいBモジュールの格納番地が格納される。旧B
モジュールは、空き領域となる。
【0047】(2)は、Cモジュールをプログラム・メ
モリのBモジュールの後ろに複写した後の状態を示して
いる。プログラミング装置インタフェース305が、B
モジュールの後ろにcモジュール(以後、一時的に複写
されるプログラム・モジュールは、小文字で表すものと
する)を複写後、プログラム・エントリ・テーブル30
3のCモジュールに対応する領域を、複写したcモジュ
ールが格納された格納番地に書き換える。
モリのBモジュールの後ろに複写した後の状態を示して
いる。プログラミング装置インタフェース305が、B
モジュールの後ろにcモジュール(以後、一時的に複写
されるプログラム・モジュールは、小文字で表すものと
する)を複写後、プログラム・エントリ・テーブル30
3のCモジュールに対応する領域を、複写したcモジュ
ールが格納された格納番地に書き換える。
【0048】(3)は、Cモジュールを旧Bモジュール
が格納されていた領域に移動した後の状態を示してい
る。プログラミング装置インタフェース305は、Cモ
ジュールを旧Bモジュールが格納されていた領域に移動
した後、プログラム・エントリ・テーブル303のCモ
ジュールに対応する領域を、移動後の格納番地に書き換
える。従って、Cモジュールを移動中に、CPU301
がCモジュールの処理を実行する場合でも、CPU30
1は複写したcモジュールを実行することになるので、
処理を停止せずにCモジュールの移動が行える。
が格納されていた領域に移動した後の状態を示してい
る。プログラミング装置インタフェース305は、Cモ
ジュールを旧Bモジュールが格納されていた領域に移動
した後、プログラム・エントリ・テーブル303のCモ
ジュールに対応する領域を、移動後の格納番地に書き換
える。従って、Cモジュールを移動中に、CPU301
がCモジュールの処理を実行する場合でも、CPU30
1は複写したcモジュールを実行することになるので、
処理を停止せずにCモジュールの移動が行える。
【0049】(4)は、プログラミング装置インタフェ
ース305が、DモジュールをBモジュールの後ろに複
写した後の状態を示しており、Dモジュールの複写後
に、プログラミング装置インタフェース305が、プロ
グラム・エントリ・テーブル303のDモジュールに対
応する領域を、複写したdモジュールが格納された格納
番地に書き換える。
ース305が、DモジュールをBモジュールの後ろに複
写した後の状態を示しており、Dモジュールの複写後
に、プログラミング装置インタフェース305が、プロ
グラム・エントリ・テーブル303のDモジュールに対
応する領域を、複写したdモジュールが格納された格納
番地に書き換える。
【0050】(5)は、DモジュールをCモジュールの
後ろに移動した後の状態を示している。プログラミング
装置インタフェース305が、DモジュールをCモジュ
ールの後ろに移動した後、プログラム・エントリ・テー
ブル303のDモジュールに対応する領域を、移動後の
格納番地に書き換える。
後ろに移動した後の状態を示している。プログラミング
装置インタフェース305が、DモジュールをCモジュ
ールの後ろに移動した後、プログラム・エントリ・テー
ブル303のDモジュールに対応する領域を、移動後の
格納番地に書き換える。
【0051】(6)は、プログラム・モジュールのBモ
ジュールの後ろへの複写と、プログラム・モジュールの
移動を繰り返し、全ての空き領域を埋めた後の状態を示
している。
ジュールの後ろへの複写と、プログラム・モジュールの
移動を繰り返し、全ての空き領域を埋めた後の状態を示
している。
【0052】以上、本発明の実施例について説明した
が、プログラム・エントリ・テーブルはプログラム・メ
モリと同じメモリ内にあっても良いことは言うまでもな
い。
が、プログラム・エントリ・テーブルはプログラム・メ
モリと同じメモリ内にあっても良いことは言うまでもな
い。
【0053】
【発明の効果】プログラム・モジュール間の空き領域を
埋めるために、プログラム・モジュールを移動する際、
CPUが移動中のプログラム・モジュールの実行を行う
場合でも、誤動作することなく実行が行えるようになっ
た。従って、制御プログラムの更新、空き領域の確保
が、プラント運転等の制御を停止することなく行えるよ
うになった。
埋めるために、プログラム・モジュールを移動する際、
CPUが移動中のプログラム・モジュールの実行を行う
場合でも、誤動作することなく実行が行えるようになっ
た。従って、制御プログラムの更新、空き領域の確保
が、プラント運転等の制御を停止することなく行えるよ
うになった。
【図1】本発明の原理ブロックを示す図である。
【図2】本発明の第1実施例の全体構成を示す図であ
る。
る。
【図3】本発明の第1実施例のプログラム・モジュール
の更新を示す図(その1)である。
の更新を示す図(その1)である。
【図4】本発明の第1実施例のプログラム・モジュール
の更新を示す図(その2)である。
の更新を示す図(その2)である。
【図5】本発明の第1実施例のプログラム・モジュール
の更新を示す図(その3)である。
の更新を示す図(その3)である。
【図6】本発明の第2実施例の全体構成を示す図であ
る。
る。
【図7】本発明の第2実施例のプログラム・モジュール
の更新を示す図(その1)である。
の更新を示す図(その1)である。
【図8】本発明の第2実施例のプログラム・モジュール
の更新を示す図(その2)である。
の更新を示す図(その2)である。
【図9】本発明の第2実施例のプログラム・モジュール
の更新を示す図(その3)である。
の更新を示す図(その3)である。
【図10】従来のプログラマブル・コントローラの全体
構成を示す図である。
構成を示す図である。
【図11】従来のプログラミング装置インタフェースの
構成を示す図である。
構成を示す図である。
【図12】従来のプログラム・モジュールの更新を示す
図(その1)である。
図(その1)である。
【図13】従来のプログラム・モジュールの更新を示す
図(その2)である。
図(その2)である。
101 処理手段 102 格納手段 103 処理手順格納手段 104 一時格納手段 105 空き領域検出手段 106 複写手段 107 移動手段 108 更新手段
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平5−303416(JP,A) 特開 平5−216507(JP,A) 特開 平2−207350(JP,A) 特開 平5−257510(JP,A) (58)調査した分野(Int.Cl.7,DB名) G05B 19/04 - 19/05 G05B 19/18 - 19/46 G06F 9/06,9/445 G06F 11/00 G06F 12/00 - 12/06
Claims (3)
- 【請求項1】 複数のプログラムを、処理手順に従って
順次処理する処理手段(101)と、 前記複数のプログラムを格納する格納手段(102)
と、 前記処理手順を格納する処理手順格納手段(103)
と、 前記複数のプログラムの1つ、又は複数を一時的に格納
する一時格納手段(104)と、 前記格納手段(102)に格納された前記複数のプログ
ラム間の空き領域を検出する空き領域検出手段(10
5)と、 前記空き領域直後のプログラムを、前記一時格納手段
(104)に複写する複写手段(106)と、 前記空き領域直後のプログラムを、前記空き領域直前の
プログラムの後ろに移動する移動手段(107)と、 前記処理手順格納手段(103)の内容を更新する更新
手段(108)と、 を有し、 前記更新手段(108)は、前記一時格納手段(10
4)へのプログラムの複写後に、前記処理手順格納手段
(103)の情報を、該複写後のプログラムを示す情報
に更新し、前記移動手段(107)による前記空き領域
直後のプログラムの移動後に、前記処理手順格納手段
(103)の情報を、該移動後のプログラムを示す情報
に更新する ことを特徴とするプログラム処理装置。 - 【請求項2】 前記一時格納手段(104)は、前記格
納手段(102)内にあることを特徴とする請求項1記
載のプログラム処理装置。 - 【請求項3】 プログラムを複数有し、処理手順を示す
情報に従って、前記複数のプログラムを順次処理する情
報処理装置において、 前記複数のプログラム間の空き領域を検出し、 前記空き領域直後のプログラムを別領域に複写し、 前記処理手順を示す情報の中の前記空き領域直後のプロ
グラムを示す情報を、前記別領域に複写したプログラム
を示す情報に更新し、 前記空き領域直前のプログラムの後ろに、前記空き領域
直後のプログラムを移動し、 前記別領域に複写したプログラムを示す情報を、前記移
動したプログラムを示す情報に更新すること、 を特徴とするプログラム処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06175994A JP3144979B2 (ja) | 1994-03-30 | 1994-03-30 | プログラム処理装置及び処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06175994A JP3144979B2 (ja) | 1994-03-30 | 1994-03-30 | プログラム処理装置及び処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07271658A JPH07271658A (ja) | 1995-10-20 |
JP3144979B2 true JP3144979B2 (ja) | 2001-03-12 |
Family
ID=13180408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP06175994A Expired - Fee Related JP3144979B2 (ja) | 1994-03-30 | 1994-03-30 | プログラム処理装置及び処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3144979B2 (ja) |
-
1994
- 1994-03-30 JP JP06175994A patent/JP3144979B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07271658A (ja) | 1995-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0285634B1 (en) | Method to execute two instruction sequences in an order determined in advance | |
EP0426111B1 (en) | Memory control system | |
AU589047B2 (en) | Method and device to execute two instruction sequences in an order determined in advance | |
JP3144979B2 (ja) | プログラム処理装置及び処理方法 | |
JP3281211B2 (ja) | 同期式メモリを有する情報処理装置および同期式メモリ | |
JP3130798B2 (ja) | バス転送装置 | |
JP2906958B2 (ja) | ユーザプログラムロード方式 | |
JP2000040057A (ja) | 計算機システム、バッファ制御装置及び転送方法 | |
JPH0217550A (ja) | マルチプロセッサシステムの障害処理方式 | |
JP2547329B2 (ja) | ロツクデータ設定装置 | |
JPH1125006A (ja) | メモリテスト装置 | |
JP2506591B2 (ja) | 補助処理装置 | |
JPH07319744A (ja) | フラッシュメモリを用いたファイルシステム | |
JPH03232051A (ja) | セマフォアクセス制御方法 | |
JPH09218829A (ja) | 外部記憶装置用書き込み試験方法及びそれを適用した情報処理システム | |
JPH0443431A (ja) | 制御記憶へのマイクロプログラム格納方法 | |
JPS6325372B2 (ja) | ||
JPH05197652A (ja) | マルチプロセッサシステム | |
JPS61148543A (ja) | メモリアクセスリクエスト処理方式 | |
JPH02114344A (ja) | ガーベジコレクション処理装置 | |
JPH05257698A (ja) | 電子計算機 | |
JPH05265942A (ja) | Dma制御部におけるデータ入出力方法 | |
JPS6345652A (ja) | 情報処理装置の無効化処理方式 | |
JPS6134656A (ja) | バス選択装置 | |
JPH0497459A (ja) | キャッシュ一致処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20001219 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080105 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090105 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |