JP2000181696A - プログラム制御装置及びプログラム制御方法 - Google Patents

プログラム制御装置及びプログラム制御方法

Info

Publication number
JP2000181696A
JP2000181696A JP10355679A JP35567998A JP2000181696A JP 2000181696 A JP2000181696 A JP 2000181696A JP 10355679 A JP10355679 A JP 10355679A JP 35567998 A JP35567998 A JP 35567998A JP 2000181696 A JP2000181696 A JP 2000181696A
Authority
JP
Japan
Prior art keywords
program
variable
position information
data
additional variable
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
JP10355679A
Other languages
English (en)
Inventor
Keiichi Hamada
慶一 濱田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP10355679A priority Critical patent/JP2000181696A/ja
Publication of JP2000181696A publication Critical patent/JP2000181696A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【課題】 従来のプログラム制御装置では、プログラム
自体のオンライン書き換えは可能であるが、プログラム
から参照されるデータ領域の構造が変化した場合に、書
換えられたプログラムは対応していないという課題があ
った。 【解決手段】 本発明は、コンパイラ3がプログラム2
に追加された変数の位置を示す追加変数位置情報12を
生成し、データコピー部7が旧プログラムデータ領域6
を新プログラムデータ領域11にコピーする際、その追
加変数位置情報12を基に新プログラムデータ領域11
に追加変数18の領域を確保するように構成した。従っ
て、コントローラ8が旧プログラムデータ領域6の内容
を継承しつつプログラムをオンラインで書き換えられる
という効果がある。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、コントローラが
プログラム実行中にその実行中プログラムのオンライン
書き換えを支援するためのプログラム制御技術の分野に
属し、特に実行中プログラムのデータ領域の内容を継承
しつつプログラムをオンラインで書き換えるプログラム
制御装置及びプログラム制御方法に関するものである。
【0002】
【従来の技術】コントローラで実行されているプログラ
ムは、過去の履歴情報がプログラム制御に影響を与える
ことからプログラムの実行により演算されたデータの重
要性が高く、そのためプログラムの実行中にその実行中
プログラムを変更するオンライン書き換えに対する要求
が高い。
【0003】図16は、例えば特開平9−244717
号公報に示された従来のプログラム制御装置によるプロ
グラムのオンライン書き換えを示す説明図である。い
ま、同図中(a) に示すプログラム22およびプログラム
23を構成単位とするプログラム2(旧プログラム)が
コントローラで実行中であり、このプログラム2中のプ
ログラム22にプログラム22+を追加する場合のオン
ライン書き換えについて説明する。上記実行中プログラ
ム2はメモリ上のプログラム実行領域に格納されてい
る。プログラム2を構成するプログラム22およびプロ
グラム23の末尾にはあらかじめ、次に実行すべきプロ
グラムの先頭アドレスへのジャンプ命令として、JUM
P「Y」、JUMP「END」がそれぞれ付加されてい
る。ここで、「Y」はプログラム23の先頭アドレスで
あり、「END」はプログラム2の最後を表すラベルで
ある。
【0004】オンライン書き換え処理は、図16中(b)
(c)に示すごとく処理を、順次に実行し最終的には同図
中(c) に示すごとく内容のプログラム9(新プログラ
ム)に変更する。
【0005】すなわち、まず、同図(b) に示す処理で
は、プログラム22+をプログラム2の末尾に追加して
書き込む。なお、プログラム22+の末尾にはプログラ
ム23の先頭アドレスへのジャンプ命令であるJUMP
「Y」が付加されている。次に同図(c) に示す処理で
は、プログラム22の末尾に付加されているプログラム
23へのジャンプ命令であるJUMP「Y」をプログラ
ム22+へのジャンプ命令であるJUMP「Z」に書き
換える。「Z」はプログラム22+の先頭アドレスであ
る。
【0006】以上のようにして、従来のプログラム制御
装置では、実行中の旧プログラム2(図16(a) 参照)
を新プログラム9(図16(c) 参照)に変更するオンラ
イン書き換えが実現されていた。
【0007】
【発明が解決しようとする課題】上記のように構成され
ている従来のプログラム制御装置では、プログラム自体
のオンライン書き換えは可能であるが、プログラムから
参照されるデータ領域の構造が変化していた場合に、書
換えられたプログラムは対応していないという課題があ
った。この課題を具体的に説明する。なお、上記のプロ
グラムから参照されるデータ領域(プログラムデータ領
域)はメモリ上において実行中プログラムが格納されて
いるプログラム実行領域とは別に確保されている。
【0008】実行中プログラム2が格納されるプログラ
ム実行領域では、プログラム2を構成するプログラム2
2およびプログラム23からそれぞれに共通するファン
クションブロック24が呼び出されている(図2(a) 参
照)。このファンクションブロック24は、一般に異な
るプログラム(22,23)からの呼び出しを受け付け
るため、プログラムの基底アドレス(図2中「BP」で
示す。)からの論理アドレスを用いてデータ処理内容が
表現される。
【0009】また、ファンクションブロック24が使用
する論理アドレスの内容は、プログラム22およびプロ
グラム23から与えられる入力変数と、ファンクション
ブロック24内部で読み書き可能な内部変数と、プログ
ラム22およびプログラム23に与えられる出力変数と
から構成される(図2(c) 参照)。これら変数のうちの
上記内部変数は、前回の演算結果を保持しているため、
同じファンクションブロック24であっても呼び出すプ
ログラムにおける入力の履歴によりその出力が異なると
いう特徴がある。
【0010】次に、プログラムからのファンクションブ
ロックの呼び出し方法について説明する。ファンクショ
ンブロック24を呼び出すプログラム22およびプログ
ラム23は、ファンクションブロック24のためのデー
タ領域(プログラムデータ領域)を確保する(図2(b)
参照)。プログラム22、プログラム23は、それぞれ
物理アドレス100、物理アドレス107にファンクシ
ョンブロック24の上記プログラムデータ領域を確保し
ている。また、ファンクションブロック24の呼び出し
前に、ファンクションブロック24のデータ処理内容を
表す論理アドレスに加算されるべき基底アドレスBPに
は、上記物理アドレスを設定する(図2(a) 参照)。こ
のようにしてプログラム22,23は、プログラムデー
タ領域のデータと関連付けられたファンクションブロッ
ク24を呼び出すようにしている。
【0011】ここで、プログラム実行中にファンクショ
ンブロックの内部処理が書き換えられてプログラム実行
前に存在していなかった内部変数が追加されていたとき
に、プログラムのオンライン書き換えを行った場合を考
える。例えば、上記ファンクションブロック24に図2
には示されていない内部変数4が追加されるものとす
る。その後、プログラム2の書き換えが必要になって、
図16に示すようにプログラム2からプログラム9にオ
ンライン書き換えが行われた場合、プログラム23から
呼び出されるファンクションブロック24の基底アドレ
スBPは107であったものに1加算されて108とな
る為、内部変数1,2,3で保持している履歴が破壊さ
れてしまう。すなわち、元のプログラム2には、内部変
数4は存在しないので、該変数に保持すべき履歴情報が
ないため、図2(b)に示すデータ構造に単純に内部変数
4を追加しようとすると、図17に示すようなアドレス
が割り当てられてしまうため、プログラム23で使用す
るファンクションブロック24の内部変数1,2,3の
情報が破壊されるということである。そのため、データ
処理がアクセスする論理アドレスを変更することができ
なくなって、プログラムの実行が停止するという問題が
あった。また、この場合、新たに論理アドレスを割り当
てるためにはプログラムデータの変更を予測してプログ
ラムデータ領域をあらかじめ余裕を持って確保しておか
なければならないが、プログラムデータ領域に余裕を持
っていない場合や予測を超えた変更が生じた場合には内
部変数の履歴情報を保持するためにメモリ上の空容量が
少なくなり、その結果、プログラムのオンライン書き換
えが不可能となるという新たな問題が生じる。
【0012】この発明は、上記のような課題を解決する
ためになされたもので、ファンクションブロックを含む
プログラムのオンライン書き換えを可能とするプログラ
ム制御装置及びプログラム制御方法を実現することを目
的とするものである。
【0013】
【課題を解決するための手段】この発明の請求項1に係
るプログラム制御装置は、プログラム実行手段による,
プログラム実行領域に格納されたプログラムの実行中
に、その実行中のプログラムのオンライン書き換えを支
援するプログラム制御装置において、上記プログラム実
行手段が実行するプログラムを編集する編集手段と、上
記編集手段により編集されたプログラムを上記プログラ
ム実行手段が実行可能なものに変換すると共に、実行中
のプログラムに追加された変数の位置を示す追加変数位
置情報を生成するコンパイル手段と、上記コンパイル手
段により変換されたプログラムおよび上記コンパイル手
段により生成された追加変数位置情報を上記プログラム
実行手段に転送する転送手段と、上記追加変数位置情報
を基に、旧プログラムのデータ内容を新プログラムのデ
ータ領域にコピーするデータコピー手段と、を備えたこ
とを特徴とするものである。
【0014】この発明の請求項2に係るプログラム制御
装置は、請求項1に記載のプログラム制御装置におい
て、上記コンパイル手段は、さらに実行中のプログラム
から削除された変数の位置を示す削除変数位置情報を生
成するものであり、上記転送手段は、さらに上記削除変
数位置情報を上記プログラム実行手段に転送するもので
あり、上記データコピー手段は、上記追加変数位置情報
と共に上記削除変数位置情報に基づき、旧プログラムの
データ内容を新プログラムのデータ領域にコピーするも
のである、ことを特徴とするものである。
【0015】この発明の請求項3に係るプログラム制御
装置は、請求項1に記載のプログラム制御装置におい
て、上記データコピー手段は、さらに旧プログラムと新
プログラムとの間で継承される変数の位置を示す継承変
数位置情報を生成するものであり、上記プログラム実行
手段は、上記データコピー手段により生成された継承変
数位置情報を、旧プログラムの実行中に、旧プログラム
データ領域および新プログラムデータ領域の両方に書込
む処理を行うものである、ことを特徴とするものであ
る。
【0016】この発明の請求項4に係るプログラム制御
装置は、請求項1に記載のプログラム制御装置におい
て、上記転送手段は、外部より追加変数として初期値が
設定されている場合に、該初期値を追加変数としてプロ
グラム実行手段に転送するものであり、上記データコピ
ー手段は、さらに上記転送手段により転送された追加変
数としての初期値を、新プログラムデータ領域の追加変
数用領域のアドレスに書き込むものである、ことを特徴
とするものである。
【0017】この発明の請求項5に係るプログラム制御
装置は、請求項1に記載のプログラム制御装置におい
て、上記転送手段は、追加変数として初期値が設定され
ていない場合に、規定値を該追加変数として転送するも
のであり、上記データコピー手段は、さらに上記転送手
段により転送された追加変数としての規定値を、新プロ
グラムデータ領域の追加変数用領域のアドレスに書き込
むものである、ことを特徴とするものである。
【0018】この発明の請求項6に係るプログラム制御
方法は、プログラム実行手段による、プログラム実行領
域に格納されたプログラムの実行中に、その実行中のプ
ログラムのオンライン書き換えを支援するプログラム制
御方法において、上記プログラム実行手段が実行するプ
ログラムを編集する編集ステップと、上記編集ステップ
により編集されたプログラムを上記プログラム実行手段
が実行可能なものに変換すると共に、実行中のプログラ
ムに追加された変数の位置を示す追加変数位置情報を生
成するコンパイルステップと、上記コンパイルステップ
により変換されたプログラムおよび上記コンパイルステ
ップにより生成された追加変数位置情報を上記プログラ
ム実行手段に転送する転送ステップと、上記追加変数位
置情報を基に、旧プログラムのデータ内容を新プログラ
ムデータ領域にコピーするデータコピーステップと、上
記データコピーステップにおいてプログラムの書き換え
を終了すると上記プログラム実行手段でのプログラムの
実行を旧プログラムから新プログラムに切り換えるプロ
グラム切り換えステップと、を備えたことを特徴とする
ものである。
【0019】この発明の請求項7に係るプログラム制御
方法は、請求項6に記載のプログラム制御方法におい
て、上記コンパイルステップは、さらに実行中のプログ
ラムから削除された変数の位置を示す削除変数位置情報
を生成し、上記転送ステップは、さらに上記削除変数位
置情報を上記プログラム実行手段に転送し、上記データ
コピーステップは、上記追加変数位置情報と共に上記削
除変数位置情報に基づき、旧プログラムのデータの内容
を新プログラムのデータ領域にコピーする、ことを特徴
とするものである。
【0020】この発明の請求項8に係るプログラム制御
方法は、請求項6に記載のプログラム制御方法におい
て、上記データコピーステップは、さらに旧プログラム
と新プログラムとの間で継承される変数の位置を示す継
承変数位置情報を生成するものであり、上記データコピ
ーステップにより生成された継承変数位置情報を、旧プ
ログラムの実行中に旧プログラムデータ領域および新プ
ログラムデータ領域の両方に書込む処理を行う継承変数
位置情報書き込みステップを有する、ことを特徴とする
ものである。
【0021】この発明の請求項9に係るプログラム制御
方法は、請求項6に記載のプログラム制御方法におい
て、上記転送ステップは、外部より追加変数として初期
値が設定されていた場合に、該初期値を追加変数として
プログラム実行手段に転送し、上記データコピーステッ
プは、さらに上記転送ステップにより転送された追加変
数としての初期値を、新プログラムデータ領域の追加変
数用領域のアドレスに書き込む、ことを特徴とするもの
である。
【0022】この発明の請求項10に係るプログラム制
御方法は、請求項6に記載のプログラム制御方法におい
て、上記転送ステップは、追加変数として初期値が設定
されていない場合は、規定値を該追加変数としてプログ
ラム実行手段に転送し、上記データコピーステップは、
さらに上記転送ステップにより転送された追加変数とし
ての規定値を、新プログラムデータ領域の追加変数用領
域のアドレスに書き込む、ことを特徴とするものであ
る。
【0023】
【発明の実施の形態】以下、この発明の実施の形態を、
添付図面を参照しながら説明する。 実施の形態1.図1は、この発明の実施の形態1による
プログラム制御装置の構成を示すブロック図である。こ
の実施の形態1によるプログラム制御装置は、図1に示
すように、プログラム実行領域5,10に格納されたプ
ログラム2,9を実行するコントローラ8と、コントロ
ーラ8が実行するプログラム2,9を編集するプログラ
ムエディタ(編集手段)1と、プログラム2,9をコン
トローラ8が実行できるように変換するコンパイラ(コ
ンパイル手段)3と、プログラム2,9をコントローラ
8に転送するプログラムローダ(転送手段)4と、旧プ
ログラムデータ領域6の内容を新プログラムデータ領域
11にコピーするデータコピー部(データコピー手段)
7とを備える。なお、図1において、2は旧プログラ
ム、9は旧プログラム2を変更した新プログラム、5は
旧プログラム2の実行のために割り当てられ、旧プログ
ラム2が格納される旧プログラム実行領域、6は旧プロ
グラム2がアクセスする旧プログラムデータ領域、10
は新プログラム9の実行のために割り当てられ、新プロ
グラム9が格納される新プログラム実行領域、11は新
プログラム9がアクセスする新プログラムデータ領域、
12は旧プログラム2には無くて、新プログラム9に新
たに追加される追加変数の位置を表す追加変数位置情報
である。
【0024】図2は、この実施の形態1で用いられるプ
ログラムの構成を示す説明図であり、図2(a) は図1に
おけるプログラム実行領域5,10におけるプログラム
のデータ構造を、図2(b) は図1におけるプログラムデ
ータ領域6,11のデータ構造を、図2(c) はプログラ
ム22およびプログラム23から呼び出される,それぞ
れに共通のファンクションブロック24のデータ構造を
それぞれ示す。いま、旧プログラム2の場合を考えるこ
ととする。
【0025】実行中プログラム2が格納されるプログラ
ム実行領域5では、図2(a) に示すように、プログラム
2を構成するプログラム22およびプログラム23から
それぞれに共通するファンクションブロック24が呼び
出されている。このファンクションブロック24は、一
般に異なるプログラム22,23からの呼び出しを受け
付けるため、プログラムの基底アドレス(図2中、「B
P」で示す。)からの論理アドレスを用いてデータ処理
内容が表現される。
【0026】また、ファンクションブロック24が使用
する論理アドレスの内容は、この場合、図2(c) に示す
ように、プログラム22およびプログラム23から与え
られる入力変数(1,2)と、ファンクションブロック
24内部で読み書き可能な内部変数(1〜3)と、プロ
グラム22およびプログラム23に与えられる出力変数
(1,2)とから構成される。上記内部変数(1〜3)
は、前回の演算結果を保持するため、同じファンクショ
ンブロック24であっても呼び出すプログラムの入力の
履歴によりその出力が異なるという特徴がある。
【0027】プログラム22,23からのファンクショ
ンブロック24の呼び出し方法について説明する。ファ
ンクションブロック24を呼び出すプログラム22およ
びプログラム23は、図2(b) に示すように、ファンク
ションブロック24のためのプログラムデータ領域6を
確保する。この場合、プログラム22、プログラム23
は、それぞれ物理アドレス100、物理アドレス107
にファンクションブロック24の上記データ領域6を確
保している。また、ファンクションブロック24の呼び
出し前に、ファンクションブロック24のデータ処理内
容を表す論理アドレスに加算されるべき基底アドレス
「BP」に、図2(a) に示すように、上記物理アドレス
を設定する。このようにしてプログラム22,23は、
プログラムデータ領域6のデータと関連付けられたファ
ンクションブロック24を呼び出すようにしている。
【0028】図3は、プログラムから参照されるデータ
領域の構造が変化した場合のデータ構造を表す説明図で
ある。図中(a) は旧プログラム2のファンクションブロ
ック24のデータ構造17及び新プログラム9のファン
クションブロック24のデータ構造19を示し、図中
(b) は旧プログラムデータ領域6のデータ構造20及び
新プログラムデータ領域11のデータ構造21を示す。
【0029】図3(a) において、旧プログラム2にて使
用されるファンクションブロック24のデータ構造17
は、変数(a),(b),(c) より構成されている。新プログラ
ム9にて使用されるファンクションブロック24のデー
タ構造19は、上記データ構造17の変数(b) と変数
(c) の間に、追加変数18が追加されたデータ構造を有
する。そして、同図(a) 中、12は上記データ構造19
における追加変数18の位置を示す追加変数位置情報で
あり、この追加変数位置情報12は、図1で示すコンパ
イラ3によって、旧プログラム2と新プログラム9とを
比較して生成され、旧プログラム2に存在する変数を
「0」、追加変数18を「1」としてデータ構造19を
表したビット列(0010)で表現される。
【0030】次に、本実施の形態1のプログラム制御装
置によるプログラムのオンライン書き換え動作について
説明する。図4は、この発明の実施の形態1におけるプ
ログラム制御方法であるプログラムの動的変更手順を示
すフローチャートである。
【0031】オンライン書き換え処理の前に、プログラ
ムエディタ1により生成された旧プログラム2は、コン
パイラ3により旧プログラム2がコントローラ8で実行
できるように変換され、そして、プログラムローダ4に
より旧プログラム実行領域5に転送され、コントローラ
8により実行されている。コントローラ8は、旧プログ
ラム2に記述された命令に従い、旧プログラムデータ領
域6に配置された変数の値を読み書きしている。
【0032】オンライン書き換え手順として、図4に示
すように、まず、ステップST1で、プログラムエディ
タ1により旧プログラム2が新プログラム9に変更さ
れ、追加変数18がファンクションブロック24に付加
される。ここでプログラム自体のオンライン書き換えが
行われるが、このオンライン書き換えの方法は、図16
で説明したものと同様に行われるので、ここではその説
明を省略する。
【0033】ステップST2で、コンパイラ3はプログ
ラムを解析し、論理アドレスを物理アドレスに変換する
と共に、追加変数位置情報12を生成する。
【0034】ステップST3で、プログラムローダ4は
新プログラム実行領域10に新プログラム9を格納する
と共に、その内容と追加変数位置情報12をコントロー
ラ8に転送する。
【0035】そして、ステップST4で、データコピー
部7は追加変数位置情報12に基づいて旧プログラムデ
ータ領域6の内容を新プログラムデータ領域11にコピ
ーする。
【0036】ステップST4にてデータコピー完了後、
ステップST5で、データコピー部7はコントローラ8
に転送完了を通知し、これにより、コントローラ8は新
プログラム9の実行を開始する。
【0037】上記のデータコピーについて説明すると、
図3(a) において、ファンクションブロック24のデー
タ構造が旧プログラム2ではデータ構造17であったも
のが、追加変数18の追加によりデータ構造19に変化
する。コンパイラ3は旧プログラム2と新プログラム9
とを比較し追加変数位置情報12を生成し、この追加変
数位置情報12は、旧プログラム2に存在する変数を
「0」、追加変数を「1」としてデータ構造19を表し
たビット列(0010)で表現されていた。
【0038】ファンクションブロック24は、プログラ
ム22およびプログラム23にて使用されており、旧プ
ログラムデータ領域6のデータ構造は図3(b) の20に
示す通りである。データコピー部7およびプログラムロ
ーダ4は、追加変数位置情報12を基に旧プログラムデ
ータ領域6の内容を新プログラムのデータ領域11にコ
ピーしつつ、図3(b) の21に示すデータ構造に書き換
える。
【0039】次に、データコピー部7における追加変数
のデータコピー動作について説明する。図5は、プログ
ラムデータのデータコピー手順を示すフローチャートで
ある。
【0040】データコピー手順として、図5に示すよう
に、まず、ステップST6で、データコピー部7は追加
変数位置情報12を1ビット読み込む。この追加変数位
置情報12の読み込みが終了していなければ(ステップ
ST11)、次のステップST7で、読み込んだビット
が追加変数を示すものか否か(「1」あるいは「0」か
どうか。)を判別し、追加変数を示すもの(この場合は
「1」)であれば、ステップST10へ進んで、書き込
みを行っている新プログラムデータ領域11のアドレス
を1つ進める。これにより、書き込みを行っている新プ
ログラムデータ領域11において追加変数18用の領域
が確保されることとなる。
【0041】一方、ステップST7において、読み込ん
だビットが追加変数を示すものでない(この場合は
「0」)と判別されれば、ステップST8で、旧プログ
ラムデータ領域6のアドレスの内容を新プログラムデー
タ領域11のアドレスに書き込む。これにより、旧プロ
グラム2のデータ領域6から変更の無い変数が新プログ
ラム9のデータ領域11に書き込まれることとなる。そ
して、このアドレスの書き込みが終わると、ステップS
T9で、読み込みを行う旧プログラムデータ領域6、書
込みを行う新プログラムデータ領域11のアドレスをそ
れぞれ1つ進める。
【0042】上記ステップST7〜10を追加変数位置
情報12の読み込みが終了するまで継続する(ステップ
ST11)。
【0043】以上より明らかなように、この実施の形態
1によれば、コンパイラ3がプログラム2の追加変数位
置情報12を生成し、プログラムローダ4が新プログラ
ム9を新プログラム実行領域10に格納すると共に、デ
ータコピー部7が上記追加変数位置情報12に基づいて
旧プログラムデータ領域6の内容を新プログラムデータ
領域11にコピーするように構成したので、コントロー
ラ8は旧プログラム2のデータ領域6の内容を継承しつ
つ新プログラム9をオンラインで書き換えられるという
効果を奏する。
【0044】実施の形態2.図6は、この発明の実施の
形態2によるプログラム制御装置の構成を示すブロック
図であり、同図において、13は新プログラム9には無
くて、旧プログラム2から削除された変数の位置を表す
削除変数位置情報であり、その他に図1と同一符号は同
一または相当部分を示すので、ここでは説明を省略す
る。
【0045】上記実施の形態1では、ファンクションブ
ロック24に追加される追加変数18がある場合につい
て示したが、この場合、旧プログラム2から削除される
削除変数25があった場合、新プログラムデータ領域1
1に削除変数25の領域が残されたままとなる。この残
された削除変数25の領域は実際には変数が存在しない
ので全く無駄な領域となる。
【0046】そこで、本実施の形態2では、かかる領域
を新プログラムデータ領域11から削るため、コンパイ
ラ3が、さらに上記削除変数25の位置を示す削除変数
位置情報13をも生成するようにしたものである。
【0047】図7は、プログラムから参照されるデータ
領域の構造が変化した場合のデータ構造を表す説明図で
ある。なお、同図において、図3と同一符号は同一また
は相当部分を示すので、ここでは説明を省略する。同図
(a) 中、13はデータ構造17における削除変数25の
位置を示す削除変数位置情報である。この削除変数位置
情報13は、追加変数位置情報12と同様に、図6で示
すコンパイラ3によって旧プログラム2と新プログラム
9とを比較して生成される。すなわち、削除変数位置情
報13は、追加変数位置情報12に倣い、旧プログラム
2に存在する変数を「0」、削除変数25を「1」とし
てデータ構造17を表したビット列(0010)で表現
される。
【0048】次に、本実施の形態2のプログラム制御装
置によるプログラムのオンライン書き換え動作について
説明する。図8は、この発明の実施の形態2におけるプ
ログラム制御方法であるプログラムの動的変更手順を示
すフローチャートである。
【0049】オンライン書き換え処理の前にプログラム
エディタ1により生成された旧プログラム2は、コンパ
イラ3により旧プログラム2がコントローラ8で実行で
きるように変換され、そして、プログラムローダ4によ
り旧プログラム実行領域5に転送され、コントローラ8
により実行されている。コントローラ8は、旧プログラ
ム2に記述された命令に従い、旧プログラムデータ領域
6に配置された変数の値を読み書きしている。
【0050】オンライン書き換え手順として、図8に示
すように、まず、ステップST12で、プログラムエデ
ィタ1にて旧プログラム2が新プログラム9に変更さ
れ、ファンクションブロック24に追加変数18が付加
されると共に削除変数25が削除される。ここでプログ
ラム自体のオンライン書き換えが行われるが、このオン
ライン書き換えの方法は、図16で説明したものと同様
に行われるので、ここではその説明を省略する。
【0051】ステップST13で、コンパイラ3はプロ
グラムを解析し、論理アドレスを物理アドレスに変換す
ると共に、追加変数位置情報12および削除変数位置情
報13を生成する。
【0052】ステップST14で、プログラムローダ4
は新プログラム実行領域10に新プログラム9を格納す
ると共に、その内容と追加変数位置情報12および削除
変数位置情報13をコントローラ8に転送する。
【0053】そして、ステップST15で、データコピ
ー部7は追加変数位置情報12および削除変数位置情報
13に基づいて旧プログラムデータ領域6の内容を新プ
ログラムデータ領域11にコピーする。この旧プログラ
ムデータ領域5の内容を新プログラムデータ領域11に
コピーする際、削除変数25の領域は確保せず、次の変
数の領域として使用されるようにコピー動作を行う。
【0054】ステップST15にてデータコピー完了
後、ステップST16で、データコピー部7はコントロ
ーラ8に転送完了を通知し、これにより、コントローラ
8は新プログラム9の実行を開始する。
【0055】上記のデータコピーについて説明すると、
図7(a) において、ファンクションブロック24のデー
タ構造が旧プログラム2ではデータ構造17であったも
のが、追加変数18の追加と変数(b)における削除変
数25の削除とによりデータ構造19に変化している。
コンパイラ3は、旧プログラム2と新プログラム9とを
比較し追加変数位置情報12および削除変数位置情報1
3を生成し、この削除変数位置情報13は追加変数位置
情報12に倣い、旧プログラム2に存在する変数を
「0」、削除変数を「1」としてデータ構造17を表し
たビット列(010)で表現されていた。
【0056】ファンクションブロック24は、プログラ
ム22およびプログラム23にて使用されており、旧プ
ログラムデータ領域6のデータ構造は図7(b) の20に
示す通りである。データコピー部7およびプログラムロ
ーダ4は、追加変数位置情報12および削除変数位置情
報13を基に旧プログラムデータ領域6の内容を新プロ
グラムのデータ領域11にコピーしつつ、図7(b) の2
1に示すデータ構造に書き換える。
【0057】次に、データコピー部7における追加変数
及び削除変数のデータコピー動作について説明する。図
9は、プログラムデータのデータコピー手順を示すフロ
ーチャートである。
【0058】データコピー手順として、図9に示すよう
に、まず、ステップST17で、データコピー部7は追
加変数位置情報12を1ビット読み込む。この追加変数
位置情報12の読み込みが終了していなければ(ステッ
プST25)、次のステップST18で、読み込んだビ
ットが追加変数18を示すものか否か判別し、追加変数
18を示すものであれば、ステップST24へ進んで、
書き込みを行っている新プログラムデータ領域11のア
ドレスを1つ進める。これにより、書き込みを行ってい
る新プログラムデータ領域11において追加変数18用
の領域が確保される。
【0059】一方、ステップST18において、読み込
んだビットが追加変数18を示すものでないと判別され
れば、ステップST19で、削除変数位置情報13を1
ビット読み込む。そして、ステップST20では、前の
ステップST19で読み込んだビットが削除変数25を
示すものか否か判別し、削除変数25を示すものであれ
ば、ステップST23で、読み出しを行っている旧プロ
グラムデータ領域6のアドレスを1つ進め、書込みを行
う新プログラムデータ領域11に旧プログラムデータ領
域6の内容の書き込みは行わないようにする。これによ
り、新プログラムデータ領域11に削除変数25の領域
が確保されず、該削除変数25の領域が残されたままと
なることもない。
【0060】一方、ステップST20で、読み込んだビ
ットが削除変数25を示すものでなければ、ステップS
T21へ進み、旧プログラムデータ領域6のアドレスの
内容を新プログラムデータ領域11のアドレスに書込
む。そして、このアドレスの書き込みが終わると、ステ
ップST22で、読み込みを行う旧プログラムデータ領
域6、書込みを行う新プログラムデータ領域11のアド
レスをそれぞれ1つ進める。
【0061】上記ステップST17〜24を追加変数位
置情報12の読み込みが終了するまで継続する。(ステ
ップST25)。
【0062】以上より明らかなように、この実施の形態
2によれば、コンパイラ3がさらにプログラム2の削除
変数位置情報13を生成し、オンライン書き換えの際、
旧プログラム2から削除された削除変数25の領域を解
放すると共に、新プログラム9に追加された追加変数1
8の領域を確保するので、プログラムローダ4は常に必
要最小限のデータ領域を確保することになり、効率的な
データ領域の利用が可能となるという効果を奏する。
【0063】実施の形態3.図10は、この発明の実施
の形態3によるプログラム制御装置の構成を示すブロッ
ク図であり、同図において、14はデータコピー部7に
よりデータコピー時に生成される継承変数位置情報であ
り、その他に図6と同一符号は同一または相当部分を示
すので、ここでは説明を省略する。上記継承変数位置情
報14は、旧プログラム2と新プログラム9との間で継
承される変数(継承変数)について、旧プログラムデー
タ領域6のアドレスと、その内容をコピーした新プログ
ラムデータ領域11のアドレスとを対応づけた継承テー
ブルにより構成されるものである。上記継承変数とは、
追加変数および削除変数ではないすべての変数、すなわ
ち、旧プログラム2のプログラムデータがそのまま新プ
ログラム9に引き継がれる変数である。
【0064】上記実施の形態2では、データコピー部7
が旧プログラムデータ領域6の内容を新プログラムデー
タ領域11にデータ構造の変化に対応しつつコピーする
ものについて示したが、この場合、プログラム2の実行
期間の合間にコピー動作がすべて完了すれば問題は発生
しないが、プログラム2の実行期間の合間にコピー動作
が完了しなかった場合に、プログラムデータの内容とし
て最新のプログラム実行結果を反映していないものが存
在することになる。
【0065】そこで、本実施の形態3では、プログラム
2の実行期間の合間にすべてのプログラムデータのコピ
ー動作が完了しなかった場合にも、該データ内容の最新
性を保証できるようにするため、データコピー部7は、
まず、旧プログラム2と新プログラム9との間で継承さ
れる変数(継承変数)をデータコピーする場合に、旧プ
ログラムデータ領域6のアドレスと、その内容をコピー
する新プログラムデータ領域11のアドレスとを対応づ
けた継承変数位置情報14(継承テーブル)を作成する
ようにしたものである。
【0066】この実施の形態3におけるプログラムの動
的変更手順、追加変数及び削除変数のデータコピー手順
については、上記実施の形態2の場合と同様の手順に従
って行われる。
【0067】次に、データコピー部7における継承変数
のデータコピー動作について説明する。このデータコピ
ー動作は、本実施の形態3におけるプログラム制御方法
の特徴となるものである。
【0068】図11は、継承変数のデータコピー手順を
示すフローチャートである。
【0069】データコピー手順として、図11に示すよ
うに、まず、ステップST26で、データコピー部7
は、コンパイラ3からの命令実行によって、旧プログラ
ム2と新プログラム9との間で継承される継承変数につ
いて、旧プログラムデータ領域6のアドレスと、その内
容をコピーした新プログラムデータ領域11のアドレス
とを対応づけた継承変数位置情報14(継承テーブル)
を生成する。
【0070】上記継承テーブルを生成すると次のステッ
プST27で、コントローラ8が1命令実行毎にオンラ
イン書き換え中であるかどうかをチェックし、オンライ
ン書き換え中でなければデータコピー動作を終了し、オ
ンライン書き換え中であれば、次のステップST28へ
進む。
【0071】ステップST28では、コントローラ8の
上記命令が新プログラムデータ領域11への書き込み命
令であるかどうかを判別し、データ領域への書き込み命
令でなければデータコピー動作を終了し、データ領域へ
の書き込み命令であれば、次のステップST29へ進
む。
【0072】ステップST29では、上記ステップST
26で作成した継承変数位置情報14(継承テーブル)
を参照し、対応する新プログラムデータ領域11へのア
ドレスが存在しないかどうかを判別し、対応するアドレ
スが存在しなければデータデータコピー動作を終了し、
対応するアドレスが存在すれば、次のステップST30
へ進む。
【0073】そして、ステップST30では、継承変数
位置情報14(継承テーブル)に登録された新プログラ
ムのデータ領域11にもその命令の実行結果を書込むよ
うにし、この書き込み動作が終われば上記データコピー
動作が終了する。
【0074】以上より明らかなように、この実施の形態
3によれば、コンパイラ3は、旧プログラム2と新プロ
グラム9との間で継承される継承変数の位置を示す継承
変数位置情報14(継承テーブル)を生成するように
し、コントローラ8による,プログラムのオンライン書
き換え中は、該継承変数位置情報14を基に旧プログラ
ムデータ領域6から対応する新プログラムデータ領域1
1に変数の書き込みを行って、旧プログラムデータ領域
6の内容と新プログラムデータ領域11の内容との整合
性を保つように構成したので、プログラムデータ領域6
のコピーが中断するような場合にも、オンライン書き換
え完了時のデータ内容の最新性が保証されるという効果
を奏する。
【0075】実施の形態4.図12は、この発明の実施
の形態4によるプログラム制御装置の構成を示すブロッ
ク図であり、同図において、15は新プログラム9にお
ける追加変数の初期値として作業者によって与えられた
変数の値であり、その他に図10と同一符号は同一また
は相当部分を示すので、ここでは説明を省略する。
【0076】上記実施の形態3では、新プログラムデー
タ領域11での削除変数の領域は開放され、継承変数の
値はプログラム実行による最新の値が保証されるが、追
加変数は領域が確保されるのみであり、その値について
は不定となってしまう。
【0077】そこで、本実施の形態4では、あらかじめ
作業者がプログラムエディタ1を用いて追加変数の初期
値設定を行えるようにし、プログラムローダ4はコント
ローラ8にその追加変数の初期値情報を転送するように
したものである。
【0078】この実施の形態4によるプログラムの動的
変更手順、追加変数及び削除変数のデータコピー手順、
継承変数のデータコピー手順については、上記実施の形
態3の場合と同様の手順に従って行われる。
【0079】次に、追加変数の初期値の設定動作につい
て説明する。この追加変数の初期値設定動作は、本実施
の形態4におけるプログラム制御方法の特徴となるもの
である。図13は、追加変数の初期値の設定手順につい
てのフローチャートである。
【0080】追加変数の初期値の設定手順として、図1
3に示すように、ステップST31で、データコピー部
7は、追加変数位置情報12によって追加変数を検出す
ると、次のステップST32へ進み、初期値の設定が行
われているかどうかにつき追加変数初期値15を参照
し、初期値設定が行われていない場合は、この初期値動
作は終了する。作業者がプログラムエディタ1を用いて
追加変数の初期値設定を行っていた場合、次のステップ
ST33へ進み、追加変数のアドレスにあらかじめ作業
者が設定していた初期値を書き込む。このようにして追
加変数に初期値の書き込みが行われると、この初期値設
定動作が終了する。
【0081】以上より明らかなように、この実施の形態
4によれば、追加変数が存在する場合に、作業者が設定
した初期値を追加変数のアドレスに書き込むように構成
したので、新プログラムデータ領域11の追加変数用に
確保した領域に例えば不正な値が残った状態で、新プロ
グラム9が実行されるようなことを防ぐことができると
いう効果を奏する。
【0082】実施の形態5.図14は、この発明の実施
の形態5によるプログラム制御装置の構成を示すブロッ
ク図であり、同図において、16は新プログラム9の追
加変数の初期値が設定されなかった場合の変数規定値で
あり、その他に図12と同一符号は同一または相当部分
を示すので、ここでは説明を省略する。
【0083】上記実施の形態4では、追加変数に作業者
が初期値を設定することが行われなかった場合(作業者
は変数に初期値として「0」が自動的に設定されるもの
と考えるか、あるいは初期値設定を忘れてしまうことが
ある。)、何らかの要因で不定な変数値を持ったまま新
プログラム9が実行されてしまうおそれがあった。
【0084】そこで、本実施の形態5では、コンパイラ
3は追加変数の初期値が設定されなかった場合の変数規
定値16をあらかじめ記憶し、コンパイル時に追加変数
を検出して、その初期値が作業者によって設定されてい
ない場合に上記変数規定値16を追加変数の初期値とし
て設定するようにしたものである。
【0085】この実施の形態5によるプログラムの動的
変更手順、追加変数及び削除変数のデータコピー手順、
継承変数のデータコピー手順については、上記実施の形
態3の場合と同様の手順に従って行われる。
【0086】次に、追加変数の初期値の設定動作につい
て説明する。この初期値設定動作は、本実施の形態5に
おけるプログラム制御方法の特徴となるものである。図
15は、追加変数の初期値の設定手順についてのフロー
チャートである。
【0087】追加変数の初期値の設定手順として、図1
5に示すように、ステップST33で、データコピー部
7は、追加変数位置情報12によって追加変数を検出す
ると、次のステップST34へ進み、初期値の設定が行
われているかどうかにつき追加変数初期値15のテーブ
ルを参照し、初期値が設定されている場合は、ステップ
ST35へ進み、その設定値15を追加変数の初期値と
して書き込む。
【0088】上記ステップST34で、追加変数に初期
値の設定がなされていない場合は、ステップST36へ
進み、変数規定値16のテーブルを参照し、この規定値
16を追加変数の初期値として設定する。
【0089】上記ステップST35またはステップST
36によって追加変数の初期値設定が行われると、この
初期値設定動作が終了する。
【0090】以上より明らかなように、この実施の形態
5によれば、作業者により追加変数の初期値15が設定
されていない場合にも、規定値16を初期値として設定
するように構成したので、新プログラムデータ領域11
の値はすべて決定され、新プログラム9が予期せぬ動作
を行うことを防止できるという効果を奏する。
【0091】また、プログラムの新規登録の場合、プロ
グラムの変数はすべて追加変数とみなすことができるた
め、作業者の設定した初期値、あるいは規定値でコント
ローラ8のプログラムデータ領域11がすべて、プログ
ラムの転送時に初期化されるという効果を奏する。
【0092】
【発明の効果】以上のように、この発明に係るプログラ
ム制御装置(請求項1)によれば、コンパイル手段がプ
ログラムに追加された変数の位置を示す追加変数位置情
報を生成し、データコピー手段が旧プログラムのデータ
領域を新プログラムのデータ領域にコピーする際、その
追加変数位置情報を基に新プログラムデータ領域に追加
変数の領域を確保するように構成したので、プログラム
実行手段は旧プログラムデータ領域の内容を継承しつつ
プログラムをオンラインで書き換えることができ、プロ
グラムにより参照されるデータ領域のデータ構造変化に
も対応させてプログラムをオンライン書き換えすること
ができるという効果がある。
【0093】この発明に係るプログラム制御装置(請求
項2)によれば、コンパイル手段がさらにプログラムか
ら削除された変数の位置を示す削除変数位置情報を生成
し、データコピー手段が旧プログラムのデータ領域を新
プログラムのデータ領域にコピーする際、その削除変数
位置情報を基に削除変数の領域を別の変数の領域として
使用するように構成したので、プログラムの転送手段は
常に必要最小限のデータ領域を確保することになり、効
率的なデータ領域の利用が可能となるという効果があ
る。
【0094】この発明に係るプログラム制御装置(請求
項3)によれば、データコピー手段がさらに旧プログラ
ムと新プログラムとの間で継承される変数の位置を示す
継承変数位置情報を生成し、プログラム実行手段がオン
ライン書き換え中は、その継承変数位置情報を基に旧プ
ログラムと新プログラムとのデータ領域の内容の整合性
を保つように構成したので、例えプログラムデータ領域
のコピー作業が中断するような場合にも、書き換え完了
時におけるデータ内容の最新性が保証されるという効果
がある。
【0095】この発明に係るプログラム制御装置(請求
項4)によれば、作業者があらかじめ追加変数の初期値
を設定できるようにし、転送手段が追加変数の初期値を
プログラム実行手段に転送し、データコピー手段が追加
変数の領域に該初期値を書き込むように構成したので、
新プログラムデータ領域の追加変数用に確保した領域に
上記初期値が書き込まれるため、不正な値が残った状態
で新プログラムが実行されるようなことを防ぐことがで
きるという効果がある。
【0096】この発明に係るプログラム制御装置(請求
項5)によれば、追加変数の初期値が作業者により設定
されなかった場合に、転送手段が規定値を追加変数に設
定し、常に追加変数の領域が初期化されるように構成し
たので、新プログラムデータ領域の値はすべて決定さ
れ、新プログラムが作業者の予期せぬ動作を実行するよ
うなことを防止できるという効果がある。また、プログ
ラムの新規登録の場合、プログラムの変数はすべて追加
変数とみなすことができ、作業者の設定した初期値、あ
るいは規定値でプログラム実行手段のプログラムデータ
領域がすべて、プログラムの転送時に初期化されるとい
う効果がある。
【0097】この発明に係るプログラム制御方法(請求
項6)によれば、コンパイルステップにてプログラムに
追加された変数の位置を示す追加変数位置情報を生成
し、データコピーステップにて旧プログラムのデータ領
域を新プログラムのデータ領域にコピーする際、その追
加変数位置情報を基に追加変数の領域を確保するように
構成したので、プログラムのデータ領域の内容を継承し
つつプログラムをオンラインで書き換えられるという効
果がある。
【0098】この発明に係るプログラム制御方法(請求
項7)によれば、コンパイルステップにてさらにプログ
ラムから削除された変数の位置を示す削除変数位置情報
を生成し、データコピーステップにて旧プログラムのデ
ータ領域を新プログラムのデータ領域にコピーする際、
その削除変数位置情報を基に削除変数の領域を別の変数
の領域として使用するように構成したので、プログラム
データ領域には常に必要最小限のデータ領域が確保され
ることになり、効率的なデータ領域の利用が可能となる
という効果がある。
【0099】この発明に係るプログラム制御方法(請求
項8)によれば、データコピーステップにて旧プログラ
ムと新プログラム間で継承される変数の位置を示す継承
変数位置情報を生成し、プログラムのオンライン書き換
え中は、その継承変数位置情報を基に旧プログラムと新
プログラムのデータ領域の内容の整合性を保つように構
成したので、プログラムのデータ領域のコピーが中断す
るような場合にも、書き換え完了時におけるデータの内
容の最新性が保証されるという効果がある。
【0100】この発明に係るプログラム制御方法(請求
項9)によれば、転送ステップにて作業者が予め設定し
た追加変数の初期値を転送し、データコピーステップに
て追加変数の領域に該初期値をコピーするように構成し
たので、追加変数の確保された領域の値に作業者が設定
した初期値を設定することができるという効果がある。
【0101】この発明に係るプログラム制御方法(請求
項10)によれば、追加変数の初期値が作業者にて設定
されていない場合は転送ステップにて規定値を追加変数
に設定し、追加変数の領域が規定値にて初期化されるよ
うに構成したので、作業者が予期せぬプログラム制御が
実行されるようなことを防止することができるという効
果がある。また、プログラムの新規登録の場合、プログ
ラムの変数はすべて追加変数とみなすことができるた
め、作業者の設定した初期値、あるいは規定値でプログ
ラムデータ領域がすべて、プログラムの転送時に初期化
されるという効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1によるプログラム制
御装置を示す構成図である。
【図2】 ファンクションブロックとファンクションブ
ロックの使用法を示す説明図である。
【図3】 この発明の実施の形態1による追加変数のデ
ータコピー方法を示す構成図である。
【図4】 この発明の実施の形態1によるプログラム制
御方法を示すフローチャートである。
【図5】 この発明の実施の形態1による追加変数のデ
ータコピー方法を示すフローチャートである。
【図6】 この発明の実施の形態2によるプログラム制
御装置を示す構成図である。
【図7】 この発明の実施の形態2による追加変数、削
除変数を含むプログラムのデータコピー方法を示す構成
図である。
【図8】 この発明の実施の形態2によるプログラム制
御方法を示すフローチャートである。
【図9】 この発明の実施の形態2による追加変数、削
除変数のデータコピー方法を示すフローチャートであ
る。
【図10】 この発明の実施の形態3によるプログラム
制御装置を示す構成図である。
【図11】 この発明の実施の形態3による継承変数の
データコピー方法を示すフローチャートである。
【図12】 この発明の実施の形態4によるプログラム
制御装置を示す構成図である。
【図13】 この発明の実施の形態4による追加変数へ
の初期値の設定手順を示すフローチャートである。
【図14】 この発明の実施の形態5によるプログラム
制御装置を示す構成図である。
【図15】 この発明の実施の形態5による初期値未設
定の追加変数への規定値の設定手順を示すフローチャー
トである。
【図16】 従来のプログラムのオンライン書き換えを
示す説明図である。
【図17】 従来のプログラムのオンライン書き換えに
おける問題点を説明するための、ファンクションブロッ
クのためのデータ構造を示す構成図である。
【符号の説明】 1 プログラムエディタ(編集手段)、2 旧プログラ
ム、3 コンパイラ(コンパイル手段)、4 プログラ
ムローダ(転送手段)、5 旧プログラム実行領域、6
旧プログラムデータ領域、7 データコピー部(デー
タコピー手段)、8 コントローラ(プログラム実行手
段)、9 新プログラム、10 新プログラム実行領
域、11 新プログラムデータ領域、12 追加変数位
置情報、13 削除変数位置情報、14 継承変数位置
情報、15 追加変数初期値、16変数規定値、17,
19 プログラム中のファンクションブロックのデータ
構造、18 追加変数、20,21 プログラムデータ
構造、22,23 プログラム、24 ファンクション
ブロック、 25 削除変数。

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 プログラム実行手段による,プログラム
    実行領域に格納されたプログラムの実行中に、その実行
    中のプログラムのオンライン書き換えを支援するプログ
    ラム制御装置において、 上記プログラム実行手段が実行するプログラムを編集す
    る編集手段と、 上記編集手段により編集されたプログラムを上記プログ
    ラム実行手段が実行可能なものに変換すると共に、実行
    中のプログラムに追加された変数の位置を示す追加変数
    位置情報を生成するコンパイル手段と、 上記コンパイル手段により変換されたプログラムおよび
    上記コンパイル手段により生成された追加変数位置情報
    を上記プログラム実行手段に転送する転送手段と、 上記追加変数位置情報を基に、旧プログラムのデータ内
    容を新プログラムのデータ領域にコピーするデータコピ
    ー手段と、を備えたことを特徴とするプログラム制御装
    置。
  2. 【請求項2】 請求項1に記載のプログラム制御装置に
    おいて、 上記コンパイル手段は、さらに実行中のプログラムから
    削除された変数の位置を示す削除変数位置情報を生成す
    るものであり、 上記転送手段は、さらに上記削除変数位置情報を上記プ
    ログラム実行手段に転送するものであり、 上記データコピー手段は、上記追加変数位置情報と共に
    上記削除変数位置情報に基づき、旧プログラムのデータ
    内容を新プログラムのデータ領域にコピーするものであ
    る、ことを特徴とするプログラム制御装置。
  3. 【請求項3】 請求項1に記載のプログラム制御装置に
    おいて、 上記データコピー手段は、さらに旧プログラムと新プロ
    グラムとの間で継承される変数の位置を示す継承変数位
    置情報を生成するものであり、 上記プログラム実行手段は、上記データコピー手段によ
    り生成された継承変数位置情報を、旧プログラムの実行
    中に、旧プログラムデータ領域および新プログラムデー
    タ領域の両方に書込む処理を行うものである、ことを特
    徴とするプログラム制御装置。
  4. 【請求項4】 請求項1に記載のプログラム制御装置に
    おいて、 上記転送手段は、外部より追加変数として初期値が設定
    されている場合に、該初期値を追加変数としてプログラ
    ム実行手段に転送するものであり、 上記データコピー手段は、さらに上記転送手段により転
    送された追加変数としての初期値を、新プログラムデー
    タ領域の追加変数用領域のアドレスに書き込むものであ
    る、ことを特徴とするプログラム制御装置。
  5. 【請求項5】 請求項1に記載のプログラム制御装置に
    おいて、 上記転送手段は、追加変数として初期値が設定されてい
    ない場合に、規定値を該追加変数として転送するもので
    あり、 上記データコピー手段は、さらに上記転送手段により転
    送された追加変数としての規定値を、新プログラムデー
    タ領域の追加変数用領域のアドレスに書き込むものであ
    る、ことを特徴とするプログラム制御装置。
  6. 【請求項6】 プログラム実行手段による、プログラム
    実行領域に格納されたプログラムの実行中に、その実行
    中のプログラムのオンライン書き換えを支援するプログ
    ラム制御方法において、 上記プログラム実行手段が実行するプログラムを編集す
    る編集ステップと、 上記編集ステップにより編集されたプログラムを上記プ
    ログラム実行手段が実行可能なものに変換すると共に、
    実行中のプログラムに追加された変数の位置を示す追加
    変数位置情報を生成するコンパイルステップと、 上記コンパイルステップにより変換されたプログラムお
    よび上記コンパイルステップにより生成された追加変数
    位置情報を上記プログラム実行手段に転送する転送ステ
    ップと、 上記追加変数位置情報を基に、旧プログラムのデータ内
    容を新プログラムデータ領域にコピーするデータコピー
    ステップと、 上記データコピーステップにおいてプログラムの書き換
    えを終了すると上記プログラム実行手段でのプログラム
    の実行を旧プログラムから新プログラムに切り換えるプ
    ログラム切り換えステップと、を備えたことを特徴とす
    るプログラム制御方法。
  7. 【請求項7】 請求項6に記載のプログラム制御方法に
    おいて、 上記コンパイルステップは、さらに実行中のプログラム
    から削除された変数の位置を示す削除変数位置情報を生
    成し、 上記転送ステップは、さらに上記削除変数位置情報を上
    記プログラム実行手段に転送し、 上記データコピーステップは、上記追加変数位置情報と
    共に上記削除変数位置情報に基づき、旧プログラムのデ
    ータの内容を新プログラムのデータ領域にコピーする、
    ことを特徴とするプログラム制御方法。
  8. 【請求項8】 請求項6に記載のプログラム制御方法に
    おいて、 上記データコピーステップは、さらに旧プログラムと新
    プログラムとの間で継承される変数の位置を示す継承変
    数位置情報を生成するものであり、 上記データコピーステップにより生成された継承変数位
    置情報を、旧プログラムの実行中に旧プログラムデータ
    領域および新プログラムデータ領域の両方に書込む処理
    を行う継承変数位置情報書き込みステップを有する、こ
    とを特徴とするプログラム制御方法。
  9. 【請求項9】 請求項6に記載のプログラム制御方法に
    おいて、 上記転送ステップは、外部より追加変数として初期値が
    設定されていた場合に、該初期値を追加変数としてプロ
    グラム実行手段に転送し、 上記データコピーステップは、さらに上記転送ステップ
    により転送された追加変数としての初期値を、新プログ
    ラムデータ領域の追加変数用領域のアドレスに書き込
    む、ことを特徴とするプログラム制御方法。
  10. 【請求項10】 請求項6に記載のプログラム制御方法
    において、 上記転送ステップは、追加変数として初期値が設定され
    ていない場合は、規定値を該追加変数としてプログラム
    実行手段に転送し、 上記データコピーステップは、さらに上記転送ステップ
    により転送された追加変数としての規定値を、新プログ
    ラムデータ領域の追加変数用領域のアドレスに書き込
    む、ことを特徴とするプログラム制御方法。
JP10355679A 1998-12-15 1998-12-15 プログラム制御装置及びプログラム制御方法 Pending JP2000181696A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10355679A JP2000181696A (ja) 1998-12-15 1998-12-15 プログラム制御装置及びプログラム制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10355679A JP2000181696A (ja) 1998-12-15 1998-12-15 プログラム制御装置及びプログラム制御方法

Publications (1)

Publication Number Publication Date
JP2000181696A true JP2000181696A (ja) 2000-06-30

Family

ID=18445220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10355679A Pending JP2000181696A (ja) 1998-12-15 1998-12-15 プログラム制御装置及びプログラム制御方法

Country Status (1)

Country Link
JP (1) JP2000181696A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031462A (ja) * 2004-07-16 2006-02-02 Mitsubishi Electric Corp プログラム変更方法、プログラマブルコントローラおよびプログラム編集装置。
JP2006338304A (ja) * 2005-06-01 2006-12-14 Shimadzu System Solutions Co Ltd プロセスコントローラ及び該コントローラのプログラム書き換え方法
JP2015061760A (ja) * 2005-08-03 2015-04-02 セイコーエプソン株式会社 印刷制御装置、印刷制御方法、印刷制御プログラム、プリンタ及びディジタルカメラ
WO2022190417A1 (ja) * 2021-03-11 2022-09-15 オムロン株式会社 開発支援装置、開発支援方法および開発支援プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031462A (ja) * 2004-07-16 2006-02-02 Mitsubishi Electric Corp プログラム変更方法、プログラマブルコントローラおよびプログラム編集装置。
JP2006338304A (ja) * 2005-06-01 2006-12-14 Shimadzu System Solutions Co Ltd プロセスコントローラ及び該コントローラのプログラム書き換え方法
JP2015061760A (ja) * 2005-08-03 2015-04-02 セイコーエプソン株式会社 印刷制御装置、印刷制御方法、印刷制御プログラム、プリンタ及びディジタルカメラ
JP2016182821A (ja) * 2005-08-03 2016-10-20 セイコーエプソン株式会社 印刷制御装置
WO2022190417A1 (ja) * 2021-03-11 2022-09-15 オムロン株式会社 開発支援装置、開発支援方法および開発支援プログラム

Similar Documents

Publication Publication Date Title
US5303380A (en) Object code processing system for forming an executable image by tranforming LISP-type object files into a format compatible for storage by a linker
WO2022227409A1 (zh) 一种嵌入式终端远程软件更新方法
JPH07191811A (ja) 磁気ディスク装置の移行方式
JP2000181696A (ja) プログラム制御装置及びプログラム制御方法
JPH10214203A (ja) 情報処理装置
KR20000039727A (ko) 플래시 메모리 접근 방법
JPH07253894A (ja) 共有記憶装置
US6681265B1 (en) Providing command files with access to data stores that are inaccessible to command line operations
JP3022011B2 (ja) データバックアップシステム
JPH0887416A (ja) 制御プログラム作成装置
JPH07129079A (ja) プログラミングローダのインストール方法
JPS63279346A (ja) ファイル更新処理方式
JP2001022560A (ja) ライブラリ関数バージョンアップ方法
JPH08272815A (ja) オブジェクト指向データベースシステムおよびその処理方法
JPH1021067A (ja) プログラムの動的修正方法
JP3774051B2 (ja) コンパイル装置、ローディング装置、プログラム送信装置及びプログラム記録媒体
JPH07121362A (ja) 定義命令方式
JPH06161842A (ja) 外部記憶装置およびこれを用いたコンピュータ
JP2000215098A (ja) メモリ書き込み方法
JPH09244717A (ja) 制御装置
JPS62168202A (ja) プログラム記録装置
JP2000242472A (ja) インストールプログラムを記録した媒体、インストール装置およびインストール方法
JPS6051736B2 (ja) 情報処理装置
JPH0330029A (ja) 計算機の入出力シミュレーション装置
JPH07248932A (ja) 多相メモリ制御法