JP2000284815A - プログラム作成装置 - Google Patents

プログラム作成装置

Info

Publication number
JP2000284815A
JP2000284815A JP11088071A JP8807199A JP2000284815A JP 2000284815 A JP2000284815 A JP 2000284815A JP 11088071 A JP11088071 A JP 11088071A JP 8807199 A JP8807199 A JP 8807199A JP 2000284815 A JP2000284815 A JP 2000284815A
Authority
JP
Japan
Prior art keywords
program
data instance
allocation information
instance
allocation
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
JP11088071A
Other languages
English (en)
Inventor
Tadashi Hataki
匡 幡木
Yoshiharu Maruyama
吉晴 丸山
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP11088071A priority Critical patent/JP2000284815A/ja
Publication of JP2000284815A publication Critical patent/JP2000284815A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 2度目以降のコンパイルにおいて変更のなか
ったPOUに関してはコード展開処理を省略してコンパ
イル時間を短縮することを目的とする。 【解決手段】 最初のコンパイル時にメモリ割り付け処
理部64が作成したデータインスタンス割り付け情報テ
ーブルを保存しておく。2度目以降のコンパイル時に
は、POU変更判断部63がPOUの無変更を検出する
と、そのPOUを参照するインスタンスの変数のメモリ
割り付け処理部64によるメモリ割り付けを省略する。
展開処理要否判断部65は、POUが無変更かつその変
数のアドレスが前回と同一なら、引き続いて行われるプ
ログラムコード展開処理部66によるコード生成を省略
する。これにより、変更のないPOUを参照するインス
タンスの変数は優先的に前回のメモリアドレスが割り付
けられ、コード生成を省略したことにより、コンパイル
時間の短縮が可能になる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はプログラム作成装置
に関し、特にプログラマブルコントローラ向けのアプリ
ケーションプログラムを作成するプログラム作成装置に
関する。
【0002】
【従来の技術】プログラマブルコントローラのプログラ
ミング言語は、制御対象やプログラミングツールの仕様
などに合わせて各種言語が用いられ、さらに製造メーカ
ごとあるいは機種ごとの専用言語となっている場合が多
い。そのため、ユーザの負担であるアプリケーションプ
ログラムの作成に関し、機種ごとのプログラミング言語
の習得が必要であり、作業性が劣っていた。しかし、プ
ログラム言語仕様が国際規格で標準化されたことにより
プログラム表現が規格で統一されるようになり、メーカ
の壁を越えたプログラミング手法の統一が可能になっ
た。
【0003】プログラマブルコントローラ用のアプリケ
ーションプログラムは、一般にプログラミング支援ツー
ルを利用して作成される。プログラミング支援ツール
は、国際規格(IEC1131−3規格)で定められた
プログラマブルコントローラ用のプログラミング言語仕
様に準拠したものになっている。プログラマブルコント
ローラ向けプログラムは、一般的には、モジュールと称
されるプログラム構成単位(Program organization uni
t:以下、POUという)の集合から成り立っており、
各POUは、そのPOUの制御の手続きを定義するプロ
グラム部分と、そのPOUのローカル変数を格納するた
めの領域であるデータ部分とからなっている。
【0004】また、POUは、一度定義しておけば、ア
プリケーションのさまざまな部分で複製して再利用する
ことができ、このPOUの複製をインスタンスと呼んで
いる。この場合、インスタンス同士のプログラム部分は
共有でき、データ部分は変更することができる。したが
って、プログラマブルコントローラ向けプログラムの中
で、あるPOUがn個宣言されていれば、そのプログラ
ムが実行されるマシンのメモリ上には、プログラム部分
の領域が1個、データ部分の領域がn個確保されること
になる。このメモリ上の領域は、POUのソースをコン
パイルするときに割り付けられる。ここでは、あるPO
Uのインスタンスのデータ部分をデータインスタンスと
呼ぶ。次に、従来のコンパイル工程の流れについて説明
する。
【0005】図6は従来のコンパイル工程の流れを示す
図である。図中、左側には、各処理工程における入出力
要素を示している。まず、あらかじめ用意された各PO
Uのソースを入力してメモリ管理データベース生成処理
を行う(ステップS1)。これにより、各データインス
タンスの大きさ、すなわち変数の割り付けサイズに関す
る情報が収集される。次に、メモリ管理データベースを
参照しながら、メモリ割り付け処理を行い、その結果を
データインスタンス割り付け情報テーブルに格納する
(ステップS2)。これらのメモリ管理データベース生
成処理およびメモリ割り付け処理は各データインスタン
スごとに行う。
【0006】次に、データインスタンス割り付け情報テ
ーブルを参照し、POUのソースをもとにプログラムコ
ード展開処理を各POUごとに行い、各POUの展開処
理済みコードを生成する(ステップS3)。そして、こ
れらPOUの展開処理済みコードの結合処理を行い、目
的プログラムを生成する(ステップS4)。この結合処
理は1度だけ行う。
【0007】その後、このようにして作成された目的プ
ログラムは、動作の確認が行われ、不具合がある場合に
はそのPOUのソースをデバッグして、再度、以上のコ
ンパイル操作を行う。そして、バグがなくなるまで、デ
バッグおよびコンパイルを繰り返す。
【0008】図7は従来のメモリ割り付け処理によりメ
モリに割り付けられるデータインスタンスの例を示す図
であって、(A)は1度目のコンパイル時のメモリ割り
付け状態を示し、(B)は2度目のコンパイル時のメモ
リ割り付け状態を示している。この例では、三つのPO
Uと100ワードのグローバル変数とから成り立つソー
スプログラムを記述し、各POUのインスタンスがそれ
ぞれ一つずつ宣言されている場合を示している。
【0009】まず、1度目のコンパイルのときには、メ
モリの割り付け処理において、メモリの空き領域の先頭
にグローバル変数の領域を割り付ける。次に、このグロ
ーバル変数の領域を除く空き領域に、メモリ管理データ
ベースに記録された各データインスタンスの割り付けサ
イズを参照しながら、各POUのデータインスタンスの
領域を順次詰めて割り付けしていく。図示の例では、各
POUのインスタンスのデータインスタンスの割り付け
サイズが100ワードであるため、変数部分の格納用領
域は400まで詰めて割り付けられている。
【0010】ここで、POU(1)のインスタンスの変
数を変更した結果、変数領域サイズが120ワードにな
ったとする。この状態で、コンパイルをし直すと、各P
OUのデータインスタンスの割り付けは、(B)に示し
たように、変数部分の格納用空き領域に同じくPOU
(1)のデータインスタンスから順に割り付けられる。
この場合、POU(1)のアドレスが変わるため、PO
U(2),POU(3)のメモリ割り付けアドレスも変
更される。その後、このメモリ割り付けに従って、すべ
てのPOUのソースに対して最初からプログラムコード
展開処理が行われる。
【0011】図8はデータインスタンスの割り付け情報
テーブルの内容を示す図であって、(A)は1度目のコ
ンパイル時の内容を示し、(B)は2度目のコンパイル
時の内容を示している。データインスタンスの割り付け
情報テーブルは、各データインスタンスに付けた通し番
号であるデータインスタンス番号、各POUに付けた通
し番号であるPOU番号、データインスタンスが実際に
割り付けられたメモリ上の領域での先頭のアドレス位置
を表す割り付け先頭アドレス、およびデータインスタン
スが実際に割り付けられたメモリ上の領域の大きさを表
す割り付けサイズの項目を有している。なお、データイ
ンスタンス番号=0は、グローバル変数を格納するため
の領域なので、POU番号はない。また、この例では、
各POUのインスタンスは一つずつしかないので、デー
タインスタンス番号=POU番号となっている。
【0012】
【発明が解決しようとする課題】しかしながら、最初に
メモリ割り付けを行い、その後プログラムコード展開処
理を行うという従来のコンパイルの仕方では、デバッグ
作業によって再コンパイルが必要な場合に、最初からす
べてのコンパイル作業をやり直すため、たとえデバッグ
作業が一部のインスタンスのデータインスタンスのみの
変更であったとしても、1度目のコンパイルのときと同
じ時間がかかってしまうという問題点があった。
【0013】本発明はこのような点に鑑みてなされたも
のであり、2度目以降のコンパイルにおいて変更のなか
ったPOUに関してはコード展開処理工程を省略できる
ようにしてコンパイル時間を短縮したプログラム作成装
置を提供することを目的とする。
【0014】
【課題を解決するための手段】本発明では上記問題を解
決するために、プログラマブルコントローラ向けプログ
ラムを作成するプログラム作成装置において、入力され
たプログラム構成単位のソースからそのインスタンスに
定義されているデータインスタンスの割り付けサイズを
インスタンスごとに管理するためのメモリ管理データベ
ースを生成するメモリ管理データベース生成処理手段
と、前回のコンパイル時に第1のデータインスタンス割
り付け情報テーブルに保存されていたデータインスタン
ス割り付け情報を第2のデータインスタンス割り付け情
報テーブルに複製するデータインスタンス割り付け情報
複製処理手段と、前記プログラム構成単位のソースの変
更を管理する変更フラグテーブルを参照して前回コンパ
イル時からの変更の有無を判断するプログラム構成単位
変更判断手段と、前記プログラム構成単位変更判断手段
にて変更があったと判断されたプログラム構成単位を参
照するインスタンスのデータインスタンスのメモリ割り
付けを前記メモリ管理データベースからの前記割り付け
サイズをもとに行い、その割り付け情報を前記第2のデ
ータインスタンス割り付け情報テーブルに格納するメモ
リ割り付け処理手段と、前記変更フラグテーブルと、前
記第1のデータインスタンス割り付け情報テーブルと、
前記第2のデータインスタンス割り付け情報テーブルと
を参照して前記プログラム構成単位のプログラムの展開
処理が必要かどうかを判断する展開処理要否判断手段
と、前記展開処理要否判断手段にて展開処理が必要と判
断されたプログラム構成単位のソースプログラムに対
し、前記第2のデータインスタンス割り付け情報テーブ
ルを参照してプログラムコードへの展開処理を行うプロ
グラムコード展開処理手段と、前記プログラムコード展
開処理手段にて展開された展開済みコードのファイルを
結合して一つの目的プログラムを作成する結合処理手段
と、を備えていることを特徴とするプログラム作成装置
が提供される。
【0015】このようなプログラム作成装置によれば、
まず、最初のコンパイルのときにメモリ割り付け処理手
段が作成したデータインスタンス割り付け情報テーブル
を保存しておき、次回のコンパイル時には第1のデータ
インスタンス割り付け情報テーブルとして使用する。2
度目以降のコンパイルのときには、まず、メモリ管理デ
ータベース生成処理手段が各プログラム構成単位を参照
するインスタンスの変数であるデータインスタンスの割
り付けサイズをデータベース化する。次に、データイン
スタンス割り付け情報複製処理手段が保存された第1の
データインスタンス割り付け情報テーブルを複製して第
2のデータインスタンス割り付け情報テーブルを作成
し、プログラム構成単位変更判断手段が変更フラグテー
ブルを参照してプログラム構成単位が前回コンパイル時
から変更されているかどうかを判断する。変更されてい
れば、メモリ割り付け処理手段による処理が行われ、変
更されていなければ、そのメモリ割り付け処理手段によ
る処理は省略される。メモリ割り付け処理手段は変更の
あったプログラム構成単位を参照するインスタンスのデ
ータインスタンスのメモリ割り付けを割り付けサイズに
基づいて行い、第2のデータインスタンス割り付け情報
テーブルに格納する。次に、展開処理要否判断手段は、
プログラム構成単位が無変更かつそのデータインスタン
スのアドレスが前回と同じであるかどうかを判断し、同
じであれば、次のプログラムコード展開処理手段による
展開処理は不要と判断し、展開処理を省略する。展開処
理が必要と判断されると、プログラムコード展開処理手
段は、第2のデータインスタンス割り付け情報テーブル
に格納されたメモリ割り付けのアドレスを参照してプロ
グラム構成単位のソースからコードへ展開し、最後に、
結合手段が展開済みのコードを結合して目的プログラム
を生成する。これにより、2度目以降のコンパイルのと
きに、変更のないプログラム構成単位を参照するインス
タンスのデータインスタンスについては、優先的に前回
のメモリアドレスを割り付け、引き続いて行われるコー
ド生成を省略できるようにしたことにより、コンパイル
時間を短縮することが可能になる。
【0016】
【発明の実施の形態】以下、本発明の実施の形態を、パ
ーソナルコンピュータ上で動作するプログラマブルコン
トローラ向けシステム開発ツールに適用した場合を例に
図面を参照して詳細に説明する。
【0017】図1はプログラム作成システムの構成を示
す図である。図示のプログラム作成システムは、キーボ
ードなどの入力装置1と、表示モニタなどの出力装置2
と、パーソナルコンピュータ3と、プログラマブルコン
トローラシステム4とから構成される。パーソナルコン
ピュータ3は、図示しない中央演算処理ユニットによっ
てメモリ上で実行されるプログラム編集機能5およびコ
ンパイル機能6と、外部記憶装置7と、通信機能8とを
有している。外部記憶装置7には、各POUのソースフ
ァイル9と、コンパイル時の中間ファイル郡10と、目
的プログラム11とが格納される。コンパイル時の中間
ファイル郡10には、後述するPOU変更有無フラグテ
ーブル、メモリ管理データベース、データインスタンス
割り付け情報テーブル、各POUの展開済みコードの各
ファイルを含むが、これらファイルの一部はメモリ上に
あってもよい。通信機能8は、パーソナルコンピュータ
3が持つたとえばシリアルインタフェースの通信ポート
を利用してプログラマブルコントローラシステムに接続
されている。
【0018】このプログラム作成システムによれば、プ
ログラム編集機能5により各POUのソースファイル9
の作成やデバッグ作業を行い、外部記憶装置7に格納し
ておく。コンパイル機能6は、作成されたソースファイ
ル9から中間ファイル郡10を生成・更新しながら目的
プログラム11を作成する。作成されたこの目的プログ
ラム11により通信機能8を介してプログラマブルコン
トローラシステム4が制御される。
【0019】図2はコンパイル機能の構成を示すブロッ
ク図である。コンパイル機能6は、メモリ管理データベ
ース生成処理部61と、データインスタンス割り付け情
報複製処理部62と、POU変更判断部63と、メモリ
割り付け処理部64と、展開処理要否判断部65と、プ
ログラムコード展開処理部66と、結合処理部67とを
備えている。
【0020】メモリ管理データベース生成処理部61
は、各POUのソースを参照し、POUのインスタンス
に宣言されている変数からデータインスタンスの割り付
けサイズをインスタンスごとに管理するメモリ管理デー
タベースを生成する。データインスタンス割り付け情報
複製処理部62は、前回のコンパイル時に保存されてい
たデータインスタンス割り付け情報を、新たなデータイ
ンスタンス割り付け情報テーブルに複製する。POU変
更判断部63は、POUのソースファイルのタイムスタ
ンプを管理するPOU変更フラグテーブルから、前回コ
ンパイル時のものと比較してPOUに変更があったかど
うかを判断する。このPOU変更フラグテーブルは、コ
ンパイル機能6がコンパイルを開始する前、たとえばプ
ログラム編集機能5がPOUの編集を行うごとにPOU
変更フラグがセットされる。メモリ割り付け処理部64
は、メモリ管理データベース生成処理部61で生成され
たメモリ管理データベースからメモリ割り付け処理を行
い、それをデータインスタンス割り付け情報複製処理部
62がデータインスタンス割り付け情報テーブルに格納
する。展開処理要否判断部65は、POU変更フラグテ
ーブルと、前回コンパイル時のデータインスタンス割り
付け情報テーブルと、複製後にメモリ割り付け処理部6
4によって更新されたデータインスタンス割り付け情報
テーブルとをもとにプログラムの展開処理が必要かどう
かを判断する。プログラムコード展開処理部66は、展
開処理要否判断部65による判断結果をもとに、プログ
ラム展開の必要なPOUのソースプログラムに対し、メ
モリ割り付け処理部64によって更新されたデータイン
スタンス割り付け情報テーブルを参照してプログラムコ
ードへの展開処理を行う。結合処理部67は、プログラ
ムコード展開処理部66にて展開された展開済みコード
のファイルを結合し、一つの目的プログラム11を作成
する。次に、以上の構成を有するコンパイル機能6の処
理の流れについて詳細に説明する。
【0021】図3はコンパイル機能の処理の流れを示す
図である。図中、左側には、各処理工程における入出力
要素を示している。まず、コンパイルの前に、各POU
のソースと各POUが前回のコンパイル時から変更され
ているかどうかを管理しているPOU変更有無フラグテ
ーブルとがあらかじめ用意されているとする。
【0022】まず、メモリ管理データベース生成処理部
61にPOUのソースを入力し、そのPOUを参照する
インスタンスの変数の割り付けサイズを管理するメモリ
管理データベースを生成する(ステップS11)。次
に、データインスタンス割り付け情報複製処理部62が
前回のコンパイル時に生成したデータインスタンス割り
付け情報をデータインスタンス割り付け情報テーブル
(今回値)に複製する(ステップS12)。次に、PO
U変更判断部63において、あらかじめ用意されたPO
U変更有無フラグテーブルを参照して、該当するPOU
のPOU変更有無フラグをもとに、そのPOUは前回の
コンパイルのときから変更されたかどうかが判断される
(ステップS13)。なお、ここでは、POUの変更の
みをチェックしているが、正確には、グローバル変数領
域も無変更であることが必要である。そのPOUが前回
のコンパイルのときから変更されていれば、そのインス
タンスのデータインスタンスについてメモリ割り付けの
処理を行う(ステップS14)。もし、POUが前回の
コンパイルのときから変更されていなければ、メモリ割
り付け処理はパスされる。以上のステップS11〜ステ
ップS14は各データインスタンスごとに行われる。
【0023】次に、展開処理要否判断部65は、POU
変更有無フラグテーブルと、データインスタンス割り付
け情報テーブル(前回値)およびデータインスタンス割
り付け情報テーブル(今回値)とを参照し、グローバル
変数領域が無変更であって、さらに、POUが無変更か
つその変数が同一アドレスに割り付けられたかどうかが
判断される(ステップS15)。POUが無変更かつそ
の変数が同一アドレスに割り付けられている場合には、
プログラムコード展開処理部66はデータインスタンス
割り付け情報テーブルを参照し、POUのソースをもと
にプログラムコード展開処理を行う(ステップS1
6)。もし、POUが無変更されているかまたはその変
数が同一アドレスに割り付けられていない場合には、プ
ログラムコード展開処理部66によるプログラム展開処
理はパスされる。このステップS15およびステップS
16は各POUごとに行われる。
【0024】プログラムコード展開処理部66によって
展開処理されたコードは、結合処理部67にて結合処理
が行われ、一つの目的プログラムが作成される(ステッ
プS17)。
【0025】図4はメモリ割り付け処理部によるデータ
インスタンスのメモリ割り付け例を示す図であって、
(A)は1度目のコンパイル時のメモリ割り付け状態を
示し、(B)は2度目のコンパイル時のメモリ割り付け
状態を示している。この例では、1度目のコンパイル時
において、グローバル変数と三つのPOUに対してそれ
ぞれ一つずつ参照されたインスタンスの変数とがそれぞ
れ100ワードの領域を必要としている場合について説
明する。
【0026】まず、1度目のコンパイルのときまたは前
回コンパイル時のデータインスタンス割り付け情報テー
ブルが存在しないときには、(A)に示したように、メ
モリ割り付け処理部64によるメモリの割り付け処理に
おいて、まず、メモリの空き領域の先頭にグローバル変
数の領域が割り付けられ、これに続く空き領域に、メモ
リ管理データベースに記録された各データインスタンス
の割り付けサイズの領域が順次詰めて割り付けられる。
図示の例では、各POUのインスタンスのデータインス
タンスの割り付けサイズが100ワードであるため、変
数部分の格納用領域は400まで詰めて割り付けられて
いる。このとき、データインスタンス割り付け情報テー
ブルには、各インスタンスごとに、対応するPOUのP
OU番号、割り付けられた変数の割り付け先頭アドレ
ス、および割り付けサイズが記録される。
【0027】ここで、POU(1)のインスタンスの変
数を変更した結果、変数領域サイズが120ワードにな
ったとする。この状態で、2度目のコンパイルをする
と、まず、POU(2),POU(3)のデータインス
タンスについては変更がないので、これらのデータイン
スタンスは前回値と同じメモリアドレスに優先的に割り
付けられる。その後、変更のあったPOU(1)のデー
タインスタンスがPOU(3)のデータインスタンスの
後の空き領域に割り当てられる。この結果、1度目のコ
ンパイル時にPOU(1)のデータインスタンスが割り
当てられていたアドレス100〜200の領域が空き領
域となる。このときのメモリ割り付け処理のときには、
データインスタンス割り付け情報テーブル(今回値)に
対し、新たにメモリ割り付けが行われたデータインスタ
ンスの割り付け先頭アドレスおよび割り付けサイズの更
新が行われる。このようにして作成されたデータインス
タンス割り付け情報テーブル(今回値)は、次のコンパ
イルに備えて保存される。
【0028】図5はデータインスタンス割り付け情報テ
ーブルの内容を示す図であって、(A)は1度目のコン
パイル時の内容を示し、(B)は2度目のコンパイル時
のメモリ割り付け処理前半時点の内容を示し、(C)は
2度目のコンパイル時のメモリ割り付け処理完了時点の
内容を示している。データインスタンスの割り付け情報
テーブルは、図8の場合と同様、データインスタンス番
号、POU番号、割り付け先頭アドレス、および割り付
けサイズの項目を有している。なお、データインスタン
ス番号=0は、グローバル変数を格納するための領域な
ので、POU番号はない。また、この例では、各POU
のインスタンスは一つずつしかないので、データインス
タンス番号=POU番号となっている。
【0029】まず、1度目のコンパイルのときには、
(A)に示したように、データインスタンス割り付け情
報テーブルの最初のデータインスタンスに、メモリの変
数部分格納用空き領域の先頭にグローバル変数のアドレ
スが割り付けられ、その後、各データインスタンスに、
割り付けサイズの分だけずれた割り付け先頭アドレスが
それぞれ割り付けられている。
【0030】次に、POU(1)のインスタンスの変数
を変更後に、2度目のコンパイルを行ったときについて
説明する。まず、前回値のデータインスタンス割り付け
情報が複製された後、POU(1)はPOU変更有無フ
ラグにより変更されていることから、(B)に示したよ
うに、そのデータインスタンスの割り付け先頭アドレス
および割り付けサイズがクリアされる。他のPOUにつ
いては、変更がないので割り付け先頭アドレスには前回
値が優先的に割り当てられる。すなわち、複製された値
がそのまま利用される。その後、POU(1)のインス
タンスについては、メモリ管理データベースに記録され
た割り付けサイズをもとにメモリの再割り付けが行わ
れ、その後、(C)に示したように、割り付けられた割
り付け先頭アドレスおよび割り付けサイズが記録され
る。
【0031】なお、上記のコンパイル機能の処理内容
は、コンピュータで読み取り可能な記録媒体に記録され
たプログラムに記述させておくことができる。このプロ
グラムをコンピュータで実行することにより、上記処理
がコンピュータで実現できる。コンピュータで読み取り
可能な記録媒体としては、磁気記録装置や半導体メモリ
などがある。市場に流通させる場合には、CD−ROM
(Compact Disk Read Only Memory)やフロッピー(登
録商標)ディスクなどの可搬型記録媒体にプログラムを
格納して流通させたり、ネットワークを介して接続され
たコンピュータの記憶装置に格納しておき、ネットワー
クを通じて他のコンピュータに転送することもできる。
コンピュータで実行する際には、コンピュータ内の外部
記憶装置などにプログラムを格納しておき、メインメモ
リにロードして実行する。
【0032】
【発明の効果】以上説明したように、本発明では、プロ
グラマブルコントローラ向けのプログラムを作成する装
置において、1度コンパイルしたときに割り当てられた
メモリ上のアドレスを記憶しておき、次のコンパイル時
に、変更のないPOUのデータには前回と同じアドレス
を割り付けるように構成した。これにより、引き続いて
行われる該当POUのコード生成を省略することがで
き、コンパイル時間を短縮することができる。
【図面の簡単な説明】
【図1】プログラム作成システムの構成を示す図であ
る。
【図2】コンパイル機能の構成を示すブロック図であ
る。
【図3】コンパイル機能の処理の流れを示す図である。
【図4】メモリ割り付け処理部によるデータインスタン
スのメモリ割り付け例を示す図であって、(A)は1度
目のコンパイル時のメモリ割り付け状態を示し、(B)
は2度目のコンパイル時のメモリ割り付け状態を示して
いる。
【図5】データインスタンス割り付け情報テーブルの内
容を示す図であって、(A)は1度目のコンパイル時の
内容を示し、(B)は2度目のコンパイル時のメモリ割
り付け処理前半時点の内容を示し、(C)は2度目のコ
ンパイル時のメモリ割り付け処理完了時点の内容を示し
ている。
【図6】従来のコンパイル工程の流れを示す図である。
【図7】従来のメモリ割り付け処理によりメモリに割り
付けられるデータインスタンスの例を示す図であって、
(A)は1度目のコンパイル時のメモリ割り付け状態を
示し、(B)は2度目のコンパイル時のメモリ割り付け
状態を示している。
【図8】データインスタンスの割り付け情報テーブルの
内容を示す図であって、(A)は1度目のコンパイル時
の内容を示し、(B)は2度目のコンパイル時の内容を
示している。
【符号の説明】
1 入力装置 2 出力装置 3 パーソナルコンピュータ 4 プログラマブルコントローラシステム 5 プログラム編集機能 6 コンパイル機能 7 外部記憶装置 8 通信機能 9 ソースファイル 10 中間ファイル郡 11 目的プログラム 61 メモリ管理データベース生成処理部 62 データインスタンス割り付け情報複製処理部 63 POU変更判断部 64 メモリ割り付け処理部 65 展開処理要否判断部 66 プログラムコード展開処理部 67 結合処理部
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B076 DF09 EA15 5H220 BB03 CC05 CX02 CX04 EE01 EE08 FF05 JJ16 JJ19 JJ24 JJ59

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 プログラマブルコントローラ向けプログ
    ラムを作成するプログラム作成装置において、 入力されたプログラム構成単位のソースからそのインス
    タンスに定義されているデータインスタンスの割り付け
    サイズをインスタンスごとに管理するためのメモリ管理
    データベースを生成するメモリ管理データベース生成処
    理手段と、 前回のコンパイル時に第1のデータインスタンス割り付
    け情報テーブルに保存されていたデータインスタンス割
    り付け情報を第2のデータインスタンス割り付け情報テ
    ーブルに複製するデータインスタンス割り付け情報複製
    処理手段と、 前記プログラム構成単位のソースの変更を管理する変更
    フラグテーブルを参照して前回コンパイル時からの変更
    の有無を判断するプログラム構成単位変更判断手段と、 前記プログラム構成単位変更判断手段にて変更があった
    と判断されたプログラム構成単位を参照するインスタン
    スのデータインスタンスのメモリ割り付けを前記メモリ
    管理データベースからの前記割り付けサイズをもとに行
    い、その割り付け情報を前記第2のデータインスタンス
    割り付け情報テーブルに格納するメモリ割り付け処理手
    段と、 前記変更フラグテーブルと、前記第1のデータインスタ
    ンス割り付け情報テーブルと、前記第2のデータインス
    タンス割り付け情報テーブルとを参照して前記プログラ
    ム構成単位のプログラムの展開処理が必要かどうかを判
    断する展開処理要否判断手段と、 前記展開処理要否判断手段にて展開処理が必要と判断さ
    れたプログラム構成単位のソースプログラムに対し、前
    記第2のデータインスタンス割り付け情報テーブルを参
    照してプログラムコードへの展開処理を行うプログラム
    コード展開処理手段と、 前記プログラムコード展開処理手段にて展開された展開
    済みコードのファイルを結合して一つの目的プログラム
    を作成する結合処理手段と、 を備えていることを特徴とするプログラム作成装置。
  2. 【請求項2】 前記プログラム構成単位変更判断手段
    は、グローバル変数が変更されていないことも含めて前
    記プログラム構成単位のソースの変更の有無を判断する
    ことを特徴とする請求項1記載のプログラム作成装置。
  3. 【請求項3】 前記展開処理要否判断手段は、グローバ
    ル変数が無変更、前記プログラム構成単位が無変更、か
    つ前記プログラム構成単位が参照するインスタンスのデ
    ータインスタンスのメモリ割り付けアドレスが同一であ
    ることにより、前記プログラム構成単位のプログラム展
    開処理は不要と判断することを特徴とする請求項2記載
    のプログラム作成装置。
  4. 【請求項4】 プログラマブルコントローラ向けプログ
    ラムを作成するプログラム作成方法において、 入力されたプログラム構成単位のソースからそのインス
    タンスに定義されているデータインスタンスの割り付け
    サイズをインスタンスごとに管理するためのメモリ管理
    データベースを生成し、 前回のコンパイル時に第1のデータインスタンス割り付
    け情報テーブルに保存されていたデータインスタンス割
    り付け情報を第2のデータインスタンス割り付け情報テ
    ーブルに複製し、 前記プログラム構成単位のソースの変更を管理する変更
    フラグテーブルを参照して前回コンパイル時からの変更
    の有無を判断し、 変更があったと判断されたプログラム構成単位を参照す
    るインスタンスのデータインスタンスに関し、前記メモ
    リ管理データベースからの前記割り付けサイズをもとに
    メモリ割り付けを行い、その割り付け情報を前記第2の
    データインスタンス割り付け情報テーブルに格納し、 前記変更フラグテーブルと、前記第1のデータインスタ
    ンス割り付け情報テーブルと、前記第2のデータインス
    タンス割り付け情報テーブルとを参照して前記プログラ
    ム構成単位のプログラムの展開処理が必要かどうかを判
    断し、 展開処理が必要と判断されたプログラム構成単位のソー
    スプログラムに対し、前記第2のデータインスタンス割
    り付け情報テーブルを参照してプログラムコードへ展開
    し、 展開された展開済みコードを結合して一つの目的プログ
    ラムを作成する、 ステップからなることを特徴とするプログラム作成方
    法。
  5. 【請求項5】 前記展開処理が必要かどうかを判断する
    ステップは、前記プログラム構成単位が無変更かつ前記
    プログラム構成単位が参照するインスタンスのデータイ
    ンスタンスのメモリ割り付けアドレスが同一であること
    により、前記プログラムコードへの展開処理を不要と判
    断することを特徴とする請求項4記載のプログラム作成
    方法。
  6. 【請求項6】 入力されたプログラム構成単位のソース
    からそのインスタンスに定義されているデータインスタ
    ンスの割り付けサイズをインスタンスごとに管理するた
    めのメモリ管理データベースを生成するメモリ管理デー
    タベース生成処理手段と、前回のコンパイル時に第1の
    データインスタンス割り付け情報テーブルに保存されて
    いたデータインスタンス割り付け情報を第2のデータイ
    ンスタンス割り付け情報テーブルに複製するデータイン
    スタンス割り付け情報複製処理手段と、前記プログラム
    構成単位のソースの変更を管理する変更フラグテーブル
    を参照して前回コンパイル時からの変更の有無を判断す
    るプログラム構成単位変更判断手段と、前記プログラム
    構成単位変更判断手段にて変更があったと判断されたプ
    ログラム構成単位を参照するインスタンスのデータイン
    スタンスのメモリ割り付けを前記メモリ管理データベー
    スからの前記割り付けサイズをもとに行い、その割り付
    け情報を前記第2のデータインスタンス割り付け情報テ
    ーブルに格納するメモリ割り付け処理手段と、前記変更
    フラグテーブルと、前記第1のデータインスタンス割り
    付け情報テーブルと、前記第2のデータインスタンス割
    り付け情報テーブルとを参照して前記プログラム構成単
    位のプログラムの展開処理が必要かどうかを判断する展
    開処理要否判断手段と、前記展開処理要否判断手段にて
    展開処理が必要と判断されたプログラム構成単位のソー
    スプログラムに対し、前記第2のデータインスタンス割
    り付け情報テーブルを参照してプログラムコードの展開
    処理を行うプログラムコード展開処理手段と、前記プロ
    グラムコード展開処理手段にて展開された展開済みコー
    ドのファイルを結合して一つの目的プログラムを作成す
    る結合処理手段とを有するプログラムを記録したコンピ
    ュータ読み取り可能な記録媒体。
JP11088071A 1999-03-30 1999-03-30 プログラム作成装置 Pending JP2000284815A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11088071A JP2000284815A (ja) 1999-03-30 1999-03-30 プログラム作成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11088071A JP2000284815A (ja) 1999-03-30 1999-03-30 プログラム作成装置

Publications (1)

Publication Number Publication Date
JP2000284815A true JP2000284815A (ja) 2000-10-13

Family

ID=13932634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11088071A Pending JP2000284815A (ja) 1999-03-30 1999-03-30 プログラム作成装置

Country Status (1)

Country Link
JP (1) JP2000284815A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058380A (ja) * 2001-08-09 2003-02-28 Fuji Electric Co Ltd プログラマブルコントローラの支援装置、コンパイル方法、及びコンパイラ
JP2008040996A (ja) * 2006-08-10 2008-02-21 Meidensha Corp プログラマブルコントローラ
JP2008262529A (ja) * 2007-03-19 2008-10-30 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラおよびファンクションブロック呼び出し処理プログラム
JP2013168031A (ja) * 2012-02-15 2013-08-29 Fuji Electric Co Ltd プログラマブルコントローラシステム、その支援装置、プログラム
JP2015011467A (ja) * 2013-06-27 2015-01-19 株式会社東芝 プログラム開発支援装置、プログラム生成支援装置、プログラム開発支援方法およびプログラム生成支援方法
CN105116800A (zh) * 2015-08-11 2015-12-02 浙江中控技术股份有限公司 一种编译函数类型pou对象的方法
JP6452924B1 (ja) * 2018-05-11 2019-01-16 三菱電機株式会社 コンパイラおよびプログラミング支援装置
JP2020067751A (ja) * 2018-10-23 2020-04-30 株式会社キーエンス プログラマブルロジックコントローラシステム、プログラム作成支援装置およびコンピュータプログラム
KR102231963B1 (ko) * 2019-10-21 2021-03-24 엘에스일렉트릭(주) 피엘씨 변수의 메모리 할당 방법

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058380A (ja) * 2001-08-09 2003-02-28 Fuji Electric Co Ltd プログラマブルコントローラの支援装置、コンパイル方法、及びコンパイラ
JP2008040996A (ja) * 2006-08-10 2008-02-21 Meidensha Corp プログラマブルコントローラ
JP2008262529A (ja) * 2007-03-19 2008-10-30 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラおよびファンクションブロック呼び出し処理プログラム
JP2013168031A (ja) * 2012-02-15 2013-08-29 Fuji Electric Co Ltd プログラマブルコントローラシステム、その支援装置、プログラム
JP2015011467A (ja) * 2013-06-27 2015-01-19 株式会社東芝 プログラム開発支援装置、プログラム生成支援装置、プログラム開発支援方法およびプログラム生成支援方法
CN105116800B (zh) * 2015-08-11 2018-04-20 浙江中控技术股份有限公司 一种编译函数类型pou对象的方法
CN105116800A (zh) * 2015-08-11 2015-12-02 浙江中控技术股份有限公司 一种编译函数类型pou对象的方法
JP6452924B1 (ja) * 2018-05-11 2019-01-16 三菱電機株式会社 コンパイラおよびプログラミング支援装置
WO2019215919A1 (ja) * 2018-05-11 2019-11-14 三菱電機株式会社 コンパイラおよびプログラミング支援装置
US10802808B2 (en) 2018-05-11 2020-10-13 Mitsubishi Electric Corporation Compiler and programming support device
JP2020067751A (ja) * 2018-10-23 2020-04-30 株式会社キーエンス プログラマブルロジックコントローラシステム、プログラム作成支援装置およびコンピュータプログラム
JP7212496B2 (ja) 2018-10-23 2023-01-25 株式会社キーエンス プログラマブルロジックコントローラシステム、プログラム作成支援装置およびコンピュータプログラム
KR102231963B1 (ko) * 2019-10-21 2021-03-24 엘에스일렉트릭(주) 피엘씨 변수의 메모리 할당 방법

Similar Documents

Publication Publication Date Title
CN101365994B (zh) 可编程控制器的外围装置、置换方法和程序
US8397055B2 (en) Method and system for post-build modification of firmware binaries to support different hardware configurations
WO2005101147A1 (ja) プログラマブルロジックコントローラの周辺装置及びそのプログラム作成方法
JP2000284815A (ja) プログラム作成装置
JP2005301520A (ja) プログラミングシステム
US6151699A (en) Computer apparatus and method for editing programs, and readable medium
JPH0528088A (ja) ハードウエア構成情報の自動作成方法
JPH0749651A (ja) 制御プログラムの作成支援装置
JPH06110733A (ja) プログラムのテストケース生成装置
JP4362777B2 (ja) プログラミング装置、シンボル自動登録方法、プログラムおよび記録媒体
JP3115042B2 (ja) 部品変更時のプログラム再合成処理装置
KR100817364B1 (ko) 프로그래머블 로직 컨트롤러의 주변 장치 및 그 프로그램작성 방법
JP2003058380A (ja) プログラマブルコントローラの支援装置、コンパイル方法、及びコンパイラ
JP2720768B2 (ja) プログラムカストマイズ装置
JPH11154093A (ja) プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体
JP2002189506A (ja) Pcサポート装置
JP2000020297A (ja) 制御装置
JPH05274126A (ja) プログラム合成システム
JP3019874B2 (ja) プログラム生成/合成装置および方法
JP2016151973A (ja) 制御コントロールシステム、その開発支援装置、制御装置
JP2937636B2 (ja) 論理シミュレータ方式
JPH07160536A (ja) 対話型システムのプログラムテスト支援装置
JPH05108332A (ja) エデイター
JPS6310239A (ja) 高級言語のパツチ生成方式
JP2001256049A (ja) 部品生成プログラムを記録した記録媒体