JPH03231333A - プログラム作成装置および制御装置 - Google Patents
プログラム作成装置および制御装置Info
- Publication number
- JPH03231333A JPH03231333A JP2612990A JP2612990A JPH03231333A JP H03231333 A JPH03231333 A JP H03231333A JP 2612990 A JP2612990 A JP 2612990A JP 2612990 A JP2612990 A JP 2612990A JP H03231333 A JPH03231333 A JP H03231333A
- Authority
- JP
- Japan
- Prior art keywords
- work area
- program
- memory
- package
- task
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 42
- 238000012856 packing Methods 0.000 claims description 14
- 238000007726 management method Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 101001139126 Homo sapiens Krueppel-like factor 6 Proteins 0.000 description 1
- 229910000831 Steel Inorganic materials 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000010865 sewage Substances 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Control By Computers (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
C発明の目的コ
(産業上の利用分野)
本発明は、鉄鋼、紙バルブ、化学、食品プラントなどの
一般産業設備や上下水道設備、廃棄物処理設備、ビル設
備などのFAシステム等に適用するプログラム作成装置
およびその作成プログラムを用いて制御対象を制御する
制御装置に関する(従来の技術) 一般に、コンピュータ技術におけるワークエリアは、演
算値のようなテンポラリデータを保存するレジスタ的な
使用と、時系列的なデータの演算・参照を目的としてデ
ータの保存を行う使用とが可能な2種類の使用形態をも
ったメモリエリアである。
一般産業設備や上下水道設備、廃棄物処理設備、ビル設
備などのFAシステム等に適用するプログラム作成装置
およびその作成プログラムを用いて制御対象を制御する
制御装置に関する(従来の技術) 一般に、コンピュータ技術におけるワークエリアは、演
算値のようなテンポラリデータを保存するレジスタ的な
使用と、時系列的なデータの演算・参照を目的としてデ
ータの保存を行う使用とが可能な2種類の使用形態をも
ったメモリエリアである。
そこで、従来、以上のような使用形態をもつワークエリ
アを有効に活用しつつプロセスの制御を実行するために
プログラム制御装置が広く利用されている。このプログ
ラム制御装置で使用するプロセス制御プログラムのプロ
グラミング言語としては、シーケンス制御用にはラダー
ダイヤグラムやS F C(Sequential F
unctlon Chart ) 、計装ループ制御用
には計装ブロックなどのPOL言語が使用されている。
アを有効に活用しつつプロセスの制御を実行するために
プログラム制御装置が広く利用されている。このプログ
ラム制御装置で使用するプロセス制御プログラムのプロ
グラミング言語としては、シーケンス制御用にはラダー
ダイヤグラムやS F C(Sequential F
unctlon Chart ) 、計装ループ制御用
には計装ブロックなどのPOL言語が使用されている。
このPOL言語は#I御に必要な最小単位の機能をパッ
ケージ化(サブルーチン化)したものである。このサブ
ルーチン化されたプログラムはおおむね1IIJ 1B
タスク作成時には標準パッケージとして既に用意されて
いるが、標準パッケージだけでは目的とする制御タスク
を作成できない場合には、制御タスクを作成する前に要
求仕様を満足するようなパッケージを新たに作成する必
要がある。
ケージ化(サブルーチン化)したものである。このサブ
ルーチン化されたプログラムはおおむね1IIJ 1B
タスク作成時には標準パッケージとして既に用意されて
いるが、標準パッケージだけでは目的とする制御タスク
を作成できない場合には、制御タスクを作成する前に要
求仕様を満足するようなパッケージを新たに作成する必
要がある。
この制御タスクは、用意されたパッケージ(サブルーチ
ンプログラム)に、対象プロセス制御に適したパラメー
タを設定し、これを積み上げることにより作成すること
になる。′ ところで、従来のワークエリア管理方式では、制御タス
ク作成時、その制御タスクのプログラマ−がワークエリ
アを必要とするパッケージに対しワークエリアアドレス
を人為的に固定割り付けするようにしている。このワー
クエリアの人為的な固定アドレス割付けは、制御タスク
中のワークエリアを必要とするパッケージのワークエリ
アアドレス設定パラメータの端子にパッケージを゛使用
するワークエリアアドレスを逐一記述しなければならな
いので、プログラム設計から保守に至るまでのエンジニ
アリングコストが大幅に増大する問題がある。
ンプログラム)に、対象プロセス制御に適したパラメー
タを設定し、これを積み上げることにより作成すること
になる。′ ところで、従来のワークエリア管理方式では、制御タス
ク作成時、その制御タスクのプログラマ−がワークエリ
アを必要とするパッケージに対しワークエリアアドレス
を人為的に固定割り付けするようにしている。このワー
クエリアの人為的な固定アドレス割付けは、制御タスク
中のワークエリアを必要とするパッケージのワークエリ
アアドレス設定パラメータの端子にパッケージを゛使用
するワークエリアアドレスを逐一記述しなければならな
いので、プログラム設計から保守に至るまでのエンジニ
アリングコストが大幅に増大する問題がある。
また、使用ワークエリア領域の予約・保守を人間系で行
うことから不完全であり、ワークエリアの重複使用や記
述ミスといった誤りも犯し易く、かつ、解析の困難なト
ラブルも発生ずる問題がある。
うことから不完全であり、ワークエリアの重複使用や記
述ミスといった誤りも犯し易く、かつ、解析の困難なト
ラブルも発生ずる問題がある。
さらに、ワークエリアの固定アドレス割付けは、タスク
単位での使用可能なワークエリアサイズが固定であると
いう制限にも関連しており、タスク単位でのワークエリ
アサイズの制限は制御タスク作成時にパッケージの組合
わせによってはワークエリアが不足してくる場合もあり
、本来の制御タスクのプログラミングを妨げるといった
問題がある。
単位での使用可能なワークエリアサイズが固定であると
いう制限にも関連しており、タスク単位でのワークエリ
アサイズの制限は制御タスク作成時にパッケージの組合
わせによってはワークエリアが不足してくる場合もあり
、本来の制御タスクのプログラミングを妨げるといった
問題がある。
加えて、最近の制御装置では、プログラムメモリの有効
活用を目的として、プログラムダウンローディング時の
プログラムメモリ自動割付は処理や不要となった制御タ
スクを削除したり、制御タスクの入れ替えを行う場合の
パッキング処理(使用不可の制御タスクプログラムのメ
モリに後続の制御タスクプログラムを前詰めに移動させ
ることにより、メモリの不使用領域と使用領域との混在
をなくす処理)を可能とする装置があるが、ワークエリ
アを固定アドレス割付けとした場合には制御タスクのダ
ウンローディング後の削除時などに特にワークエリア領
域内でメモリの不使用領域と使用領域とが混在し、プロ
グラムメモリの有効活用の思想に合致しなくなる問題が
ある。
活用を目的として、プログラムダウンローディング時の
プログラムメモリ自動割付は処理や不要となった制御タ
スクを削除したり、制御タスクの入れ替えを行う場合の
パッキング処理(使用不可の制御タスクプログラムのメ
モリに後続の制御タスクプログラムを前詰めに移動させ
ることにより、メモリの不使用領域と使用領域との混在
をなくす処理)を可能とする装置があるが、ワークエリ
アを固定アドレス割付けとした場合には制御タスクのダ
ウンローディング後の削除時などに特にワークエリア領
域内でメモリの不使用領域と使用領域とが混在し、プロ
グラムメモリの有効活用の思想に合致しなくなる問題が
ある。
(発明が解決しようとする課題)
従って、以上述べたように従来のプログラム作成装置お
よびその制御装置は、制御タスクのワークエリアを人為
的に固定アドレスにて割付けしているので、重複割付け
や記述ミスによって解析困難なトラブルが生じたり、ワ
ークエリア不足によって効率的な制御タスクプログラミ
ングが妨げられたり、さらにワークエリアの不使用領域
および使用領域とが混在することによりプログラムメモ
リの有効活用が図れない問題がある。
よびその制御装置は、制御タスクのワークエリアを人為
的に固定アドレスにて割付けしているので、重複割付け
や記述ミスによって解析困難なトラブルが生じたり、ワ
ークエリア不足によって効率的な制御タスクプログラミ
ングが妨げられたり、さらにワークエリアの不使用領域
および使用領域とが混在することによりプログラムメモ
リの有効活用が図れない問題がある。
本発明は上記実情に鑑みてなされたもので、制御装置単
位でのプログラムワークエリアの自動割付けを行うこと
により、エンジニアリングコストの削減、ワークエリア
アドレスの設定ミスに起因するトラブルの撲滅、メモリ
の有効活用、プログラム作成/変更に柔軟に対処しつる
プログラム作成装置およびその制御装置を提供すること
を目的とする。
位でのプログラムワークエリアの自動割付けを行うこと
により、エンジニアリングコストの削減、ワークエリア
アドレスの設定ミスに起因するトラブルの撲滅、メモリ
の有効活用、プログラム作成/変更に柔軟に対処しつる
プログラム作成装置およびその制御装置を提供すること
を目的とする。
[発明の構成]
(課題を解決するための手段)
先ず、請求項1の対応する発明は、入力されたプログラ
ムをコンパイルするコンパイル部と、このコンパイル部
のコンパイル時、ワークエリアを使用するパッケージの
最終部にワークエリアアドレス加算処理を付加するワー
クエリアアドレス加算処理付加部と、前記コンパイル部
によってコンパイルされた結果、パッケージ最終部にワ
ークエリアアドレス加算処理が付加されたオブジェクト
プログラムに、そのオブジェクトプログラムのサイズお
よびオブジェクトプログラムで使用するワークエリアサ
イズを含めてダウンローディングするダウンローディン
グ部とを備えたプログラム作成装置である。
ムをコンパイルするコンパイル部と、このコンパイル部
のコンパイル時、ワークエリアを使用するパッケージの
最終部にワークエリアアドレス加算処理を付加するワー
クエリアアドレス加算処理付加部と、前記コンパイル部
によってコンパイルされた結果、パッケージ最終部にワ
ークエリアアドレス加算処理が付加されたオブジェクト
プログラムに、そのオブジェクトプログラムのサイズお
よびオブジェクトプログラムで使用するワークエリアサ
イズを含めてダウンローディングするダウンローディン
グ部とを備えたプログラム作成装置である。
次に、請求項2の対応する発明は、プログラム作成装置
からダウンローディングされたオブジェクトプログラム
を記憶するプログラムメモリと、前記オブジェクトプロ
グラムに含まれるパッケージ毎のワークエリアを記憶す
るワークエリアメモリと、前記オブジェクトプログラム
を前記プログラムメモリの所定のアドレスに割り付けて
記憶させるプログラムメモリ割付は部と、前記オブジェ
クトプログラムに含まれる各パッケージのワークエリア
サイズに応じて前記ワークエリアメモリにパッケージ毎
のワークエリアを割り付けるワークエリアメモリ割付は
部と、前記プログラムメモリに記憶されているオブジェ
クトプログラムの実行管理を司るタスクスケジューラと
を備えた制御装置である。
からダウンローディングされたオブジェクトプログラム
を記憶するプログラムメモリと、前記オブジェクトプロ
グラムに含まれるパッケージ毎のワークエリアを記憶す
るワークエリアメモリと、前記オブジェクトプログラム
を前記プログラムメモリの所定のアドレスに割り付けて
記憶させるプログラムメモリ割付は部と、前記オブジェ
クトプログラムに含まれる各パッケージのワークエリア
サイズに応じて前記ワークエリアメモリにパッケージ毎
のワークエリアを割り付けるワークエリアメモリ割付は
部と、前記プログラムメモリに記憶されているオブジェ
クトプログラムの実行管理を司るタスクスケジューラと
を備えた制御装置である。
さらに、請求項3に対応する発明は、請求項2の対応す
る発明に、パッキング処理機能を付加した構成である。
る発明に、パッキング処理機能を付加した構成である。
(作用)
従って、以上のような手段を講じたことにより、請求項
1の発明は、入力装置を通して入力された制御タスクプ
ログラムについてコンパイル部にてコンパイルを行って
オブジェクトプログラムを作成するとともに、タスクの
総ワークエリアサイズを演算する。このとき、コンパイ
ル対象がワークエリア使用パッケージの場合には、ワー
クエリアアドレス加算処理付加部がパッケージ最終部分
にワークエリアアドレス加算処理を付加する。
1の発明は、入力装置を通して入力された制御タスクプ
ログラムについてコンパイル部にてコンパイルを行って
オブジェクトプログラムを作成するとともに、タスクの
総ワークエリアサイズを演算する。このとき、コンパイ
ル対象がワークエリア使用パッケージの場合には、ワー
クエリアアドレス加算処理付加部がパッケージ最終部分
にワークエリアアドレス加算処理を付加する。
しかる後、ダウンローディング部が制御装置に対してオ
ブジェクトプログラムをダウンローディングする時には
、オブジェクトプログラムのダウンローディングととも
に、オブジェクトプログラム毎のワークエリアサイズも
ダウンローディングし、制御装置側でオブジェクトプロ
グラム毎にそのワークエリアメモリ上に所定の大きさの
ワークエリアを自動的に割付けさせるようにするもので
ある。
ブジェクトプログラムをダウンローディングする時には
、オブジェクトプログラムのダウンローディングととも
に、オブジェクトプログラム毎のワークエリアサイズも
ダウンローディングし、制御装置側でオブジェクトプロ
グラム毎にそのワークエリアメモリ上に所定の大きさの
ワークエリアを自動的に割付けさせるようにするもので
ある。
次に、請求項2の発明においては、プログラム作成装置
からダウンローディングされたオブジェクトプログラム
をプログラムメモリに記憶させるのであるが、そのとき
にプログラムメモリ割付は部がオブジェクトプログラム
を所定のアドレスに自動的に割り付けて記憶させていく
。また、ダウンローディングされてきたオブジェクトプ
ログラム中で使用するワークエリアについてはワークエ
リアメモリ割付は部がワークエリアメモリの所定のアド
レスに自動的に割り付けて行く。
からダウンローディングされたオブジェクトプログラム
をプログラムメモリに記憶させるのであるが、そのとき
にプログラムメモリ割付は部がオブジェクトプログラム
を所定のアドレスに自動的に割り付けて記憶させていく
。また、ダウンローディングされてきたオブジェクトプ
ログラム中で使用するワークエリアについてはワークエ
リアメモリ割付は部がワークエリアメモリの所定のアド
レスに自動的に割り付けて行く。
このようにしてダウンローディングされたオブジェクト
プログラムはタスクスケジューラにより起動され、制御
のために使用される。
プログラムはタスクスケジューラにより起動され、制御
のために使用される。
さらに、請求項3の発明は、パッキング部によりプログ
ラメモリ中のオブジェクトプログラムから不使用になっ
たプログラムおよびワークエリアを削除し、同時にプロ
グラムメモリ再割付は部により各オブジェクトプログラ
ムをプログラムメモリ上の所定のアドレスに再割付けし
て記憶させ、またワークエリア再割付は部によりオブジ
ェクトプログラム毎にそのワークエリアをワークエリア
メモリ上に再割付けし、タスクスケジューラのプログラ
ムの実行に供する。
ラメモリ中のオブジェクトプログラムから不使用になっ
たプログラムおよびワークエリアを削除し、同時にプロ
グラムメモリ再割付は部により各オブジェクトプログラ
ムをプログラムメモリ上の所定のアドレスに再割付けし
て記憶させ、またワークエリア再割付は部によりオブジ
ェクトプログラム毎にそのワークエリアをワークエリア
メモリ上に再割付けし、タスクスケジューラのプログラ
ムの実行に供する。
(実施例)
以下、本発明の実施例について図面を参照して説明する
。第1図は請求項1に係わるプログラム作成装置の一実
施例゛を示すブロック図、第2図は請求項2に係わる制
御装置の一実施例を示すブロック図である。
。第1図は請求項1に係わるプログラム作成装置の一実
施例゛を示すブロック図、第2図は請求項2に係わる制
御装置の一実施例を示すブロック図である。
先ず、第1図に示すプログラム作成装置は、プログラマ
の操作に基づいてプログラムデータを入力する入力装置
1のほか、この入力装置1から入力されたプログラムデ
ータをコンパイルしてオブジェクトプログラムを作成す
るコンパイル部21、このコンパイル部21によってコ
ンパイルされたオブジェクトプログラムからコールされ
る種々のパッケージにつき、ワークエリアを必要とする
パッケージに対しそのパッケージ最終部にワークエリア
アドレス加算処理を付加するワークエリアアドレス加算
処理付加部22、前記コンパイル部21でコンパイルさ
れたオブジェクトプログラムをそのタスクサイズ情報、
ワークエリアサイズ情報とともにダウンローディングす
るダウンローディング部23等を備えたプログラム作成
部2が設けられている。このプログラム作成部2には同
プログラム作成部2からダウンローディングされてくる
オブジェクトプログラムを受けて所定の制御を実行する
制御装置3が設けられている。
の操作に基づいてプログラムデータを入力する入力装置
1のほか、この入力装置1から入力されたプログラムデ
ータをコンパイルしてオブジェクトプログラムを作成す
るコンパイル部21、このコンパイル部21によってコ
ンパイルされたオブジェクトプログラムからコールされ
る種々のパッケージにつき、ワークエリアを必要とする
パッケージに対しそのパッケージ最終部にワークエリア
アドレス加算処理を付加するワークエリアアドレス加算
処理付加部22、前記コンパイル部21でコンパイルさ
れたオブジェクトプログラムをそのタスクサイズ情報、
ワークエリアサイズ情報とともにダウンローディングす
るダウンローディング部23等を備えたプログラム作成
部2が設けられている。このプログラム作成部2には同
プログラム作成部2からダウンローディングされてくる
オブジェクトプログラムを受けて所定の制御を実行する
制御装置3が設けられている。
この制御装置3は、具体的には第2図に示すようにダウ
ンローディングされてくるオブジェクトプログラムの入
力処理を行う入力部31と、この入力部31から入力さ
れるオブジェクトプログラムをプログラムメモリ32に
記憶するに際し、このプログラムメモリ32にオブジェ
クトプログラム毎の先頭アドレスを自動的に割付けする
プログラムメモリアドレス割付は部33と、前記オブジ
ェクトプログラムに含まれるパッケージ毎のワークエリ
アをワークエリアメモリ34に記憶するに際しこのワー
クエリアメモリ34にオブジェクトプログラム毎のワー
クエリアの先頭アドレスを自動的に割付けするワークエ
リアメモリ割付は部35とが設けられている。
ンローディングされてくるオブジェクトプログラムの入
力処理を行う入力部31と、この入力部31から入力さ
れるオブジェクトプログラムをプログラムメモリ32に
記憶するに際し、このプログラムメモリ32にオブジェ
クトプログラム毎の先頭アドレスを自動的に割付けする
プログラムメモリアドレス割付は部33と、前記オブジ
ェクトプログラムに含まれるパッケージ毎のワークエリ
アをワークエリアメモリ34に記憶するに際しこのワー
クエリアメモリ34にオブジェクトプログラム毎のワー
クエリアの先頭アドレスを自動的に割付けするワークエ
リアメモリ割付は部35とが設けられている。
また、この制御装置3にはパッキング機能が設けられて
いる。具体的には、プログラムメモリ中のオブジェクト
プログラムから不使用になったプログラムおよびワーク
エリアを削除するパッキング部36と、パッキング後の
オブジェクトプログラム毎の先頭アドレスをプログラム
メモリ32:;再割付けするプログラムメモリアドレス
再割付は部37と、同じくパッキング後のオブジェクト
プログラム毎のワークエリアの先頭アドレスをワークエ
リアメモリ34に再割付けするワークエリア再割付は部
38とで構成されている。
いる。具体的には、プログラムメモリ中のオブジェクト
プログラムから不使用になったプログラムおよびワーク
エリアを削除するパッキング部36と、パッキング後の
オブジェクトプログラム毎の先頭アドレスをプログラム
メモリ32:;再割付けするプログラムメモリアドレス
再割付は部37と、同じくパッキング後のオブジェクト
プログラム毎のワークエリアの先頭アドレスをワークエ
リアメモリ34に再割付けするワークエリア再割付は部
38とで構成されている。
さらに、制御装置3には、プログラムを実行するための
オブジェクトプログラム先頭アドレス、ワークエリア先
頭アドレス、タスクサイズ、ワークエリアサイズを登録
して管理する管理テーブルメモリ39と、この管理テー
ブルメモリ39に対しそれらの必要な情報を記憶させる
ための管理テーブル作成部40と、プログラム実行・管
理を司るタスクスケジューラ41と、このタスクスケジ
ューラ41によって取り出されたワークエリア先頭アド
レスがセットされるワークエリアアドレスレジスタ42
.・−・とが設けられている。
オブジェクトプログラム先頭アドレス、ワークエリア先
頭アドレス、タスクサイズ、ワークエリアサイズを登録
して管理する管理テーブルメモリ39と、この管理テー
ブルメモリ39に対しそれらの必要な情報を記憶させる
ための管理テーブル作成部40と、プログラム実行・管
理を司るタスクスケジューラ41と、このタスクスケジ
ューラ41によって取り出されたワークエリア先頭アド
レスがセットされるワークエリアアドレスレジスタ42
.・−・とが設けられている。
次に、以上のように構成されたプログラム作成装置およ
びその制御装置の動作について説明する。
びその制御装置の動作について説明する。
プログラマによって入力装置1からプログラムデータが
入力されると、プログラム作成部2では、その入力され
たプログラムをコンパイル部21にてコンパイルした後
、ダウンローディング部23に送り、ここでコンパイル
されたタスクオブジェクトプログラムのほか、そのタス
クオブジェクトプログラムサイズ情報およびタスクで使
用するワークエリアサイズ情報等を制御装置3にダウン
ローディングする。
入力されると、プログラム作成部2では、その入力され
たプログラムをコンパイル部21にてコンパイルした後
、ダウンローディング部23に送り、ここでコンパイル
されたタスクオブジェクトプログラムのほか、そのタス
クオブジェクトプログラムサイズ情報およびタスクで使
用するワークエリアサイズ情報等を制御装置3にダウン
ローディングする。
しかして、前記コンパイル部21では第3図および第4
図に示すようなコンパイル処理を実行する。先ず、第3
図は制御タスクオブジェクトのコンパイル処理を示す図
であって、制御タスクで使用するワークエリアサイズW
s(tl)を初期化、つまり零にクリアした後(STI
) 、タスク終了命令があったか否かを判断しく5T2
) 、タスク終了命令があればコンパイル処理を終了し
、タスク終了命令がなければパッケージのコール命令を
セットする(Sr1)。しかる後、コールするパッケー
ジがワークエリアを使用するパッケージであるか否かを
判断しく5T4) 、ワークエリアを使用するパッケー
ジであればタスク使用ワークエリアサイズWs(ti)
に該当パッケージで使用するワークエリアサイズWs(
pi)を加算する(S T 5)。
図に示すようなコンパイル処理を実行する。先ず、第3
図は制御タスクオブジェクトのコンパイル処理を示す図
であって、制御タスクで使用するワークエリアサイズW
s(tl)を初期化、つまり零にクリアした後(STI
) 、タスク終了命令があったか否かを判断しく5T2
) 、タスク終了命令があればコンパイル処理を終了し
、タスク終了命令がなければパッケージのコール命令を
セットする(Sr1)。しかる後、コールするパッケー
ジがワークエリアを使用するパッケージであるか否かを
判断しく5T4) 、ワークエリアを使用するパッケー
ジであればタスク使用ワークエリアサイズWs(ti)
に該当パッケージで使用するワークエリアサイズWs(
pi)を加算する(S T 5)。
そして、以上の処理はタスクエンド命令に至るまでSr
1に戻って繰り返し行われる。なお、制御タスクコンパ
イル終了時のワークエリアサイズに保存された値が制御
タスクで使用する総ワークエリアサイズとなる。
1に戻って繰り返し行われる。なお、制御タスクコンパ
イル終了時のワークエリアサイズに保存された値が制御
タスクで使用する総ワークエリアサイズとなる。
次に、第4図はコンパイル部21におけるパッケージオ
ブジェクトのコンパイル処理を示す図であって、パッケ
ージ本来の機能処理部をコンパイルしく5T11)、そ
のコンパイルされたパッケージがワークエリアを使用す
るパッケージであるか否かを判断する(ST12)。こ
こで、ワークエリアを使用するパッケージであるならば
、パッケージ最終部分においてワークエリアアドレスレ
ジスタRxに、該パッケージで使用するワークエリアサ
イズを加算する処理を付加する(S T 1 B)。
ブジェクトのコンパイル処理を示す図であって、パッケ
ージ本来の機能処理部をコンパイルしく5T11)、そ
のコンパイルされたパッケージがワークエリアを使用す
るパッケージであるか否かを判断する(ST12)。こ
こで、ワークエリアを使用するパッケージであるならば
、パッケージ最終部分においてワークエリアアドレスレ
ジスタRxに、該パッケージで使用するワークエリアサ
イズを加算する処理を付加する(S T 1 B)。
一方、制御装置3では、プログラムメモリアドレス割付
は部33、ワークエリア割付は部35によりタスクサイ
ズ、ワークエリアサイズを基準にしてプログラムメモリ
32、ワークエリアメモリ34の空きエリアに自動割付
けをし、管理テーブル作成部40により管理テーブルメ
モリ39にタスク先頭アドレスTa、ワークエリア先頭
アドレスW a 、タスクサイズTs、ワークエリアサ
イズWsを登録し、同時にプログラムメモリ32のタス
ク先頭アドレスTaからタスクオブジェクトプログラム
を格納していく。
は部33、ワークエリア割付は部35によりタスクサイ
ズ、ワークエリアサイズを基準にしてプログラムメモリ
32、ワークエリアメモリ34の空きエリアに自動割付
けをし、管理テーブル作成部40により管理テーブルメ
モリ39にタスク先頭アドレスTa、ワークエリア先頭
アドレスW a 、タスクサイズTs、ワークエリアサ
イズWsを登録し、同時にプログラムメモリ32のタス
ク先頭アドレスTaからタスクオブジェクトプログラム
を格納していく。
そして、このタスクの起動タイミングとなった場合、タ
スクの実行管理を司るタスクスケジューラ41は、管理
テーブルメモリ39からワークエリア先頭アドレスWa
を取り出し、ワークエリアアドレスレジスタ42.・・
・にセットし、このタスクを起動して制御対象4を制御
する。
スクの実行管理を司るタスクスケジューラ41は、管理
テーブルメモリ39からワークエリア先頭アドレスWa
を取り出し、ワークエリアアドレスレジスタ42.・・
・にセットし、このタスクを起動して制御対象4を制御
する。
次に、第5図は制御タスクプログラムメモリ32を用い
て制御タスクを構成するパッケージを呼び出す場合の処
理系統図である。すなわち、同図に示すようにタスクオ
ブジェクトプログラム5は、パッケージSIO,S20
.S25.S31をそれぞれ呼び出す「パッケージ呼び
出し処理」とEND命令とによって構成されている。こ
の各々のパッケージのワークエリアサイズは、例えばパ
ッケージSIOが6バイト、S20が0バイト、S25
が2バイト、S31が4バイトであるとすると、この制
御タスクのワークエリアサイズWsは全体で12バイト
である。
て制御タスクを構成するパッケージを呼び出す場合の処
理系統図である。すなわち、同図に示すようにタスクオ
ブジェクトプログラム5は、パッケージSIO,S20
.S25.S31をそれぞれ呼び出す「パッケージ呼び
出し処理」とEND命令とによって構成されている。こ
の各々のパッケージのワークエリアサイズは、例えばパ
ッケージSIOが6バイト、S20が0バイト、S25
が2バイト、S31が4バイトであるとすると、この制
御タスクのワークエリアサイズWsは全体で12バイト
である。
なお、第5図では、タスクオブジェクト5とパッケージ
オブジェクト6とは別エリアに登録されているように示
しているが、実際には同一のプログラムメモリ32上に
タスクオブジェクトとパッケージオブジェクトとが混在
した形で格納されているものである。
オブジェクト6とは別エリアに登録されているように示
しているが、実際には同一のプログラムメモリ32上に
タスクオブジェクトとパッケージオブジェクトとが混在
した形で格納されているものである。
タスクスケジューラ41により起動された制御タスクは
、先ず、「パッケージ5ICI呼び出し処理」を実行す
る。つまり、「パッケージS10呼び出し処理」でコー
ルされたパッケージオブジェクト6のパッケージSIO
はその機能処理中でワークエリアアドレスレジスタで指
定されたワークエリアアドレス(W a )から6バイ
ト分のワークエリアのデータの読み出し/書き込みを行
い、パッケージSIOの処理が終了したならば、ワーク
エリアアドレスレジスタRxに自己パッケージで使用す
るワークエリアサイズを加算して(Wa+6)番地をR
xを保存し、制御タスクのパッケージコール命令の次番
地にリターンする。
、先ず、「パッケージ5ICI呼び出し処理」を実行す
る。つまり、「パッケージS10呼び出し処理」でコー
ルされたパッケージオブジェクト6のパッケージSIO
はその機能処理中でワークエリアアドレスレジスタで指
定されたワークエリアアドレス(W a )から6バイ
ト分のワークエリアのデータの読み出し/書き込みを行
い、パッケージSIOの処理が終了したならば、ワーク
エリアアドレスレジスタRxに自己パッケージで使用す
るワークエリアサイズを加算して(Wa+6)番地をR
xを保存し、制御タスクのパッケージコール命令の次番
地にリターンする。
次は、「パッケージS20の呼び出し処理」であるが、
このパッケージはワークエリアを使用しないので、コー
ルされたパッケージS20本来の機能処理のみを実行す
る。
このパッケージはワークエリアを使用しないので、コー
ルされたパッケージS20本来の機能処理のみを実行す
る。
次の「パッケージS25の処理」と「パッケージS31
の処理」とは前記「パッケージSIO処理」と同様にそ
れぞれのパッケージ本来の機能処理を終了後、ワークエ
リアアドレスレジスタRxに自己パッケージで使用する
ワークエリアサイズを加算し、次のパッケージで使用す
るワークエリア先頭アドレスとして、それぞれ(Wa+
8)、(Wa+12)を与える。このパッケージ処理の
連続により制御タスク、が実行される。なお、タスクの
先頭から最後まで、ワークエリアアドレスレジスタRx
は破壊されてはならない。
の処理」とは前記「パッケージSIO処理」と同様にそ
れぞれのパッケージ本来の機能処理を終了後、ワークエ
リアアドレスレジスタRxに自己パッケージで使用する
ワークエリアサイズを加算し、次のパッケージで使用す
るワークエリア先頭アドレスとして、それぞれ(Wa+
8)、(Wa+12)を与える。このパッケージ処理の
連続により制御タスク、が実行される。なお、タスクの
先頭から最後まで、ワークエリアアドレスレジスタRx
は破壊されてはならない。
これら一連の処理の系列機能分担は、大別すると第6図
に示゛すように人間系8、プログラム作成装置系9、制
御装置系10の3種類があり、以下、系別にその処理機
能を説明する。
に示゛すように人間系8、プログラム作成装置系9、制
御装置系10の3種類があり、以下、系別にその処理機
能を説明する。
先ず、人間系8では、制御装置3内のワークエリア先頭
アドレスおよびサイズを指定する。このサイズはタスク
単位ではなく制御装置−括単位であるので、このサイズ
をオーバしない限り制御タスク単位でのワークエリアサ
イズは無制限に使用可能である。
アドレスおよびサイズを指定する。このサイズはタスク
単位ではなく制御装置−括単位であるので、このサイズ
をオーバしない限り制御タスク単位でのワークエリアサ
イズは無制限に使用可能である。
引き続き、制御タスク構成要求であるパッケージを作成
する。ここで、ワークエリアを使用するパッケージなら
ば、コンパイルデータとして必要なのでパッケージのワ
ークエリア使用サイズを登録する。但し、標準パッケー
ジだけで制御タスクの作成が可能なシステムの場合には
、パッケージの作成の必要はない。最後に、制御タスク
の作成を行う。このとき、制御タスクを構成するパッケ
ージのパラメータとしてワークエリアアドレスを指定す
る必要はない。
する。ここで、ワークエリアを使用するパッケージなら
ば、コンパイルデータとして必要なのでパッケージのワ
ークエリア使用サイズを登録する。但し、標準パッケー
ジだけで制御タスクの作成が可能なシステムの場合には
、パッケージの作成の必要はない。最後に、制御タスク
の作成を行う。このとき、制御タスクを構成するパッケ
ージのパラメータとしてワークエリアアドレスを指定す
る必要はない。
次に、プログラム作成装置系9は、前記人間系8におい
て制御タスク作成の完了後にコンパイルを実行すること
により行う。このとき、前述の第3図および第4図に示
す処理に基づき、制御タスクコンパイル時には制御タス
クのワークエリア総使用サイズが計算される。また、パ
ッケージのコンパイル時にはワークエリアを使用するパ
ッケージの最終部には、ワークエリアアドレス加算処理
が付加される。
て制御タスク作成の完了後にコンパイルを実行すること
により行う。このとき、前述の第3図および第4図に示
す処理に基づき、制御タスクコンパイル時には制御タス
クのワークエリア総使用サイズが計算される。また、パ
ッケージのコンパイル時にはワークエリアを使用するパ
ッケージの最終部には、ワークエリアアドレス加算処理
が付加される。
このコンパイルが完了した後、制御装置系10に対して
制御タスクのダウンローディングを行う。
制御タスクのダウンローディングを行う。
この時のダウンローディング項目は、タスクサイズ、ワ
ークエリアサイズ、タスクオブジェクトである。
ークエリアサイズ、タスクオブジェクトである。
次に、制御装置系10では、ダウンローディングデータ
を受信すると、第2図に示したようにプログラムメモリ
32とワークエリアメモリ34とにプログラムパッケー
ジの先頭アドレス、ワークエリア先頭アドレスの自動割
り付けをを行い、制御タスクプログラームを実行する。
を受信すると、第2図に示したようにプログラムメモリ
32とワークエリアメモリ34とにプログラムパッケー
ジの先頭アドレス、ワークエリア先頭アドレスの自動割
り付けをを行い、制御タスクプログラームを実行する。
ダウンローディング処理や制・御タスクの削除処理を繰
り返すうちに、パッキング、処理が必要になった場合に
は制御タスク実行の合間にパッキング部36によりパッ
キング処理を行い、削除されていない制御タスクのプロ
グラムメモリとワークエリアメモリとの内容を前詰めに
パッキングし、新しいタスク先頭アドレスとワークエリ
ア先頭アドレスとをそれぞれプログラムメモリアドレス
再割付けをし、それらのアドレス情報を管理テーブル作
成部40により管理テーブルメモリ39に登録する。
り返すうちに、パッキング、処理が必要になった場合に
は制御タスク実行の合間にパッキング部36によりパッ
キング処理を行い、削除されていない制御タスクのプロ
グラムメモリとワークエリアメモリとの内容を前詰めに
パッキングし、新しいタスク先頭アドレスとワークエリ
ア先頭アドレスとをそれぞれプログラムメモリアドレス
再割付けをし、それらのアドレス情報を管理テーブル作
成部40により管理テーブルメモリ39に登録する。
以上のようにして制御装置3のダウンローディング時、
パッキング時において、常にタスクのワークエリア先頭
アドレスを自動割付けし、タスクオブジェクトを管理す
る管理テーブルにそれらのアドレス情報を保存し、タス
クスケジューラ41が制御タスクを起動するごとに管理
テーブルよりタスクに割付けられたワークエリア先頭ア
ドレろを取出し、ワークエリアアドレスレジスタRxに
セットし、制御タスクプログラムを実行する。
パッキング時において、常にタスクのワークエリア先頭
アドレスを自動割付けし、タスクオブジェクトを管理す
る管理テーブルにそれらのアドレス情報を保存し、タス
クスケジューラ41が制御タスクを起動するごとに管理
テーブルよりタスクに割付けられたワークエリア先頭ア
ドレろを取出し、ワークエリアアドレスレジスタRxに
セットし、制御タスクプログラムを実行する。
そして、制御タスク(オブジェクトプログラム)は、プ
ログラムロジックの順番にしたがってパッケージをコー
ルする。ここで、コールされたパッケージがパッケージ
本来の処理の中でワークエリアを使用するものであれば
、ワークエリアアドレスレジスタRxにより指定された
ワークエリア先頭アドレスから自己パッケージで使用す
るワークエリアサイズ分のエリアのデータの読み出し/
書き込みを実行し、パッケージ最終部でワークエリアア
ドレスレジスタRxに、自己パッケージ使用ワークエリ
アサイズを加算することにより、次のパッケージで使用
するワークエリアの先頭アドレスを与える。
ログラムロジックの順番にしたがってパッケージをコー
ルする。ここで、コールされたパッケージがパッケージ
本来の処理の中でワークエリアを使用するものであれば
、ワークエリアアドレスレジスタRxにより指定された
ワークエリア先頭アドレスから自己パッケージで使用す
るワークエリアサイズ分のエリアのデータの読み出し/
書き込みを実行し、パッケージ最終部でワークエリアア
ドレスレジスタRxに、自己パッケージ使用ワークエリ
アサイズを加算することにより、次のパッケージで使用
するワークエリアの先頭アドレスを与える。
これによって上記実施例に係わるプログラム作成装置お
よび制御装置では、制御タスクプログラミング時のパッ
ケージのワークエリアアドレス指定の負担がなくなり、
加えてワークエリアもパッキング対象となるためにプロ
グラムメモリだけでなく、ワークエリアのメモリをも有
効に活用でき、プログラム作成・変更に柔軟に対応でき
る。
よび制御装置では、制御タスクプログラミング時のパッ
ケージのワークエリアアドレス指定の負担がなくなり、
加えてワークエリアもパッキング対象となるためにプロ
グラムメモリだけでなく、ワークエリアのメモリをも有
効に活用でき、プログラム作成・変更に柔軟に対応でき
る。
[発明の効果]
以上説明したように本発明によれば次のような種々の効
果を奏する。
果を奏する。
先ず、請求項1の発明においては、制御タスクのコンパ
イル時にタスクで使用する総ワークエリアサイズを演算
し、パッケージのコンパイル時に、パッケージ最終部に
ワークエリアアドレス加算処理を付加し、制御装置にダ
ウンローディングする際にはタスクサイズとワークエリ
アサイズとをタスクオブジェクトと共にダウンローディ
ングするようにしているので、制御装置において制御タ
スク毎のワークエリアをワークエリアメモリ上に自動割
付は可能となる。
イル時にタスクで使用する総ワークエリアサイズを演算
し、パッケージのコンパイル時に、パッケージ最終部に
ワークエリアアドレス加算処理を付加し、制御装置にダ
ウンローディングする際にはタスクサイズとワークエリ
アサイズとをタスクオブジェクトと共にダウンローディ
ングするようにしているので、制御装置において制御タ
スク毎のワークエリアをワークエリアメモリ上に自動割
付は可能となる。
次に、請求項2,3の発明では、プログラム作成装置に
よって作成されたダウンローディングされてきた制御タ
スクに対し、そのダウンローディング時にプログラムメ
モリ、ワークエリアメモリの空きエリアへの自動割付け
ができ、プログラマがプログラム作成時に予めワークエ
リアを設定する必要かなく、ひいては設定ミスを撲滅で
きるとともに、メモリの有効活用が図れ、さらにプログ
ラマの負担を軽減できてエンジニアリングコストを低減
化できる。
よって作成されたダウンローディングされてきた制御タ
スクに対し、そのダウンローディング時にプログラムメ
モリ、ワークエリアメモリの空きエリアへの自動割付け
ができ、プログラマがプログラム作成時に予めワークエ
リアを設定する必要かなく、ひいては設定ミスを撲滅で
きるとともに、メモリの有効活用が図れ、さらにプログ
ラマの負担を軽減できてエンジニアリングコストを低減
化できる。
第1図は請求項1の発明に係わるプログラム作成装置の
一実施例を示すブロック図、第2図は請求項2の発明に
係わる制御装置の一実施例を示すブロック図、第3図は
プログラム作成装置の制御タスクのコンパイル動作を説
明するフロチャート、第4図はプログラム作成装置のパ
ッケージのコンパイル動作を説明するフロチャート、第
5図は制御装置のプログラム実行動作を説明する図、第
6図はプログラム作成装置と制御装置とを統合した系別
処理機能分担を示す説明図である。 1・・・入力装置、2・・・プログラム作成装置、3・
・・制御装置、4・・・制御対象、5・・・タスクオブ
ジェクト、6・・・パッケージオブジェクト、21・・
・コンパイル部、22・・・ワークエリアアドレス加算
処理付加部、23・・・ダウンローディング部、31・
・・入力部、32・・・プログラムメモリ、33・・・
プログラムメモリアドレス割付は部、34・・・ワーク
エリアメモリ、35・・・ワークエリアメモリ割付は部
、36・・・パラキンク部、37・・・プログラムメモ
リアドレス再割付は部、38・・・ワークエリアメモリ
再割付は部、39・・・管理テーブルメモ リ ・・・管理テーブル作成部、 タスクスケスケジューラ、 42・・・ワーク エリアアドレスレジスタ。
一実施例を示すブロック図、第2図は請求項2の発明に
係わる制御装置の一実施例を示すブロック図、第3図は
プログラム作成装置の制御タスクのコンパイル動作を説
明するフロチャート、第4図はプログラム作成装置のパ
ッケージのコンパイル動作を説明するフロチャート、第
5図は制御装置のプログラム実行動作を説明する図、第
6図はプログラム作成装置と制御装置とを統合した系別
処理機能分担を示す説明図である。 1・・・入力装置、2・・・プログラム作成装置、3・
・・制御装置、4・・・制御対象、5・・・タスクオブ
ジェクト、6・・・パッケージオブジェクト、21・・
・コンパイル部、22・・・ワークエリアアドレス加算
処理付加部、23・・・ダウンローディング部、31・
・・入力部、32・・・プログラムメモリ、33・・・
プログラムメモリアドレス割付は部、34・・・ワーク
エリアメモリ、35・・・ワークエリアメモリ割付は部
、36・・・パラキンク部、37・・・プログラムメモ
リアドレス再割付は部、38・・・ワークエリアメモリ
再割付は部、39・・・管理テーブルメモ リ ・・・管理テーブル作成部、 タスクスケスケジューラ、 42・・・ワーク エリアアドレスレジスタ。
Claims (3)
- (1)入力されたプログラムをコンパイルするコンパイ
ル部と、このコンパイル部のコンパイル時、ワークエリ
アを使用するパッケージの最終部にワークエリアアドレ
ス加算処理を付加するワークエリアアドレス加算処理付
加部と、前記コンパイル部によってコンパイルされた結
果、パッケージ最終部にワークエリアアドレス加算処理
が付加されたオブジェクトプログラムに、そのオブジェ
クトプログラムのサイズおよびオブジェクトプログラム
で使用するワークエリアサイズを含めてダウンローディ
ングするダウンローディング部とを備えたことを特徴と
するプログラム作成装置。 - (2)前記請求項1に記載のプログラム作成装置からダ
ウンローディングされたオブジェクトプログラムを記憶
するプログラムメモリと、前記オブジェクトプログラム
に含まれるパッケージ毎のワークエリアを記憶するワー
クエリアメモリと、前記オブジェクトプログラムを前記
プログラムメモリの所定のアドレスに割り付けて記憶さ
せるプログラムメモリ割付け部と、前記オブジェクトプ
ログラムに含まれる各パッケージのワークエリアサイズ
に応じて前記ワークエリアメモリにパッケージ毎のワー
クエリアを割り付けるワークエリアメモリ割付け部と、
前記プログラムメモリに記憶されているオブジェクトプ
ログラムの実行管理を司るタスクスケジューラとを備え
たことを特徴とする制御装置。 - (3)前記請求項第2項に、プログラメモリ中のオブジ
ェクトプログラムから不使用になったプログラムおよび
ワークエリアを削除するパッキング部と、このパッキン
グ部によるプログラムのパッキング時にプログラムメモ
リおよびワークエリアメモリにそれぞれプログラム毎の
ワークエリアを再割付けするメモリ再割付け手段とを付
加してなることを特徴とする制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2612990A JPH03231333A (ja) | 1990-02-07 | 1990-02-07 | プログラム作成装置および制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2612990A JPH03231333A (ja) | 1990-02-07 | 1990-02-07 | プログラム作成装置および制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03231333A true JPH03231333A (ja) | 1991-10-15 |
Family
ID=12184955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2612990A Pending JPH03231333A (ja) | 1990-02-07 | 1990-02-07 | プログラム作成装置および制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH03231333A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910213B1 (en) | 1997-11-21 | 2005-06-21 | Omron Corporation | Program control apparatus and method and apparatus for memory allocation ensuring execution of a process exclusively and ensuring real time operation, without locking computer system |
-
1990
- 1990-02-07 JP JP2612990A patent/JPH03231333A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910213B1 (en) | 1997-11-21 | 2005-06-21 | Omron Corporation | Program control apparatus and method and apparatus for memory allocation ensuring execution of a process exclusively and ensuring real time operation, without locking computer system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6708331B1 (en) | Method for automatic parallelization of software | |
JP4836419B2 (ja) | 産業オートメーション用のcilコード・プログラムのオンライン修正 | |
US5051893A (en) | System for processing data to facilitate the creation of executable images | |
JP5790128B2 (ja) | プログラマブルコントローラ・システム、その支援装置 | |
JP4319082B2 (ja) | プログラミングシステム | |
JPH03231333A (ja) | プログラム作成装置および制御装置 | |
US6275985B1 (en) | Method and apparatus for developing an application that implements garbage collection efficiently by combining proxy objects with compiler support | |
JP2015125713A (ja) | プログラマブルコントローラ・システム、その支援装置、プログラマブルコントローラ、プログラム | |
JPH0736529A (ja) | 数値制御装置の制御ソフトウェア実行システム | |
JP2902746B2 (ja) | 仮想計算機制御方式 | |
JPH01118931A (ja) | プログラム変換方式 | |
JPH02263241A (ja) | プログラム作成装置および制御装置 | |
JPH0520043A (ja) | プログラム作成装置およびその制御装置 | |
CN110990018B (zh) | 一种嵌入式系统的编译方法及编译系统 | |
JPH06259238A (ja) | プログラム作成装置およびその制御装置 | |
JP3019915B2 (ja) | 手続き呼出し方法 | |
WO2022269793A1 (ja) | 制御装置、及び、アドレス管理方法 | |
KR100282094B1 (ko) | 제어로직 작성기의 제어 로직 관리 방법 | |
JPH11259308A (ja) | プログラマブルコントローラ | |
JPH0337201B2 (ja) | ||
JPH02194439A (ja) | プログラム実行方式 | |
JPH04299734A (ja) | ソフトウェア開発方法 | |
JP3019330B2 (ja) | コンパイル装置 | |
KR19990058389A (ko) | 기능 블록의 루프 단위별 메모리 관리 방법 | |
JPH0421028A (ja) | レジスタ管理方法 |