JPH07334214A - プログラマブルコントローラ - Google Patents
プログラマブルコントローラInfo
- Publication number
- JPH07334214A JPH07334214A JP12500994A JP12500994A JPH07334214A JP H07334214 A JPH07334214 A JP H07334214A JP 12500994 A JP12500994 A JP 12500994A JP 12500994 A JP12500994 A JP 12500994A JP H07334214 A JPH07334214 A JP H07334214A
- Authority
- JP
- Japan
- Prior art keywords
- program
- work area
- memory
- index
- work
- 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
Landscapes
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Abstract
(57)【要約】
【目的】 プログラム実行過程で使用するワークエリア
の位置を何等考慮することなく、プログラマブルコント
ローラにロードするプログラムを作成できる。 【構成】 プログラム実行過程で使用するワークエリア
13a内の位置をインデックスKの形態で指示するプロ
グラムがロードされるコントローラ10であり、かつ、
各プログラム毎に、プログラムメモリ12内の格納位置
情報及びワークメモリ13内の専用に使用するワークエ
リア13aの位置情報及びサイズを登録するためのタス
ク管理テーブル14を有し、各プログラムがロードされ
る毎に、該当プログラムをプログラムメモリ12の空き
領域に格納し、かつ格納位置情報をタスク管理テーブル
14に登録する。さらに、格納されたプログラムに記述
されているインデックスKの更新命令数からワークメモ
リ13内の使用ワークエリア13aの位置情報及びサイ
ズを決定し、タスク管理テーブル14に登録する。
の位置を何等考慮することなく、プログラマブルコント
ローラにロードするプログラムを作成できる。 【構成】 プログラム実行過程で使用するワークエリア
13a内の位置をインデックスKの形態で指示するプロ
グラムがロードされるコントローラ10であり、かつ、
各プログラム毎に、プログラムメモリ12内の格納位置
情報及びワークメモリ13内の専用に使用するワークエ
リア13aの位置情報及びサイズを登録するためのタス
ク管理テーブル14を有し、各プログラムがロードされ
る毎に、該当プログラムをプログラムメモリ12の空き
領域に格納し、かつ格納位置情報をタスク管理テーブル
14に登録する。さらに、格納されたプログラムに記述
されているインデックスKの更新命令数からワークメモ
リ13内の使用ワークエリア13aの位置情報及びサイ
ズを決定し、タスク管理テーブル14に登録する。
Description
【0001】
【産業上の利用分野】本発明は外部からロードされた複
数のプログラムが実行可能であるプログラマブルコント
ローラに係わり、特に、各プログラムに対して該当プロ
グラムの実行過程で使用するワークエリアを効率的に割
付けるプログラマブルコントローラに関する。
数のプログラムが実行可能であるプログラマブルコント
ローラに係わり、特に、各プログラムに対して該当プロ
グラムの実行過程で使用するワークエリアを効率的に割
付けるプログラマブルコントローラに関する。
【0002】
【従来の技術】例えば工場等のプラントを構成する各種
設備の動作を制御するプロセス制御システムに組込まれ
た各プログラマブルコントローラにおいては、一般に、
複数のプログラムが記憶されており、所定のスキャン周
期毎にこれらの複数のプログラム(タスク)が起動され
る。
設備の動作を制御するプロセス制御システムに組込まれ
た各プログラマブルコントローラにおいては、一般に、
複数のプログラムが記憶されており、所定のスキャン周
期毎にこれらの複数のプログラム(タスク)が起動され
る。
【0003】これらの複数のプログラムは互いに関連性
を有しており、各タスクは共通のデータを使用して業務
を実行する以外に、各タスク固有のデータを使用して業
務を実行する。
を有しており、各タスクは共通のデータを使用して業務
を実行する以外に、各タスク固有のデータを使用して業
務を実行する。
【0004】図7は、各プログラマブルコントローラ1
内に形成されたプログラムメモリ2とワークメモリ3の
メモリ構成図である。プログラムメモリ2内にはタスク
番号i(i=1,2,…,N)が付されたN個のプログ
ラム4が記憶されている。また、ワークメモリ3内に
は、各プログラム4が共通に使用するデータを記憶する
1個の共有レジスタ5と、各プログラム4がそれぞれ専
用に使用するN個のワークエリア6とが形成されてい
る。
内に形成されたプログラムメモリ2とワークメモリ3の
メモリ構成図である。プログラムメモリ2内にはタスク
番号i(i=1,2,…,N)が付されたN個のプログ
ラム4が記憶されている。また、ワークメモリ3内に
は、各プログラム4が共通に使用するデータを記憶する
1個の共有レジスタ5と、各プログラム4がそれぞれ専
用に使用するN個のワークエリア6とが形成されてい
る。
【0005】このようなプログラマブルコントローラ1
のプログラムメモリ2に記憶されている各プログラム4
はこのプログラマブルコントローラ1自体の制御性能を
改良したり、また制御仕様変更した時に頻繁に変更され
る。また、新規のプログラムを新たに書込む場合もあ
る。このようなプログラム4は、一般に外部のプログラ
ム作成成装置7で作成されて、このプログラマブルコン
トローラ1にロードされる。
のプログラムメモリ2に記憶されている各プログラム4
はこのプログラマブルコントローラ1自体の制御性能を
改良したり、また制御仕様変更した時に頻繁に変更され
る。また、新規のプログラムを新たに書込む場合もあ
る。このようなプログラム4は、一般に外部のプログラ
ム作成成装置7で作成されて、このプログラマブルコン
トローラ1にロードされる。
【0006】
【発明が解決しようとする課題】しかしながら、このよ
うにプログラム作成成装置7で作成した各プログラムが
頻繁にロードされるプログラマブルコントローラ1にお
いてもまだ解消すべき次のような課題があった。、すな
わち、プログラム作成成装置7でプログラムを作成する
場合には、当然共通レジスタ5に記憶されているデータ
に対する読出命名や、計算結果をワークエリア6に一時
記憶する命令等を記述する必要がある。
うにプログラム作成成装置7で作成した各プログラムが
頻繁にロードされるプログラマブルコントローラ1にお
いてもまだ解消すべき次のような課題があった。、すな
わち、プログラム作成成装置7でプログラムを作成する
場合には、当然共通レジスタ5に記憶されているデータ
に対する読出命名や、計算結果をワークエリア6に一時
記憶する命令等を記述する必要がある。
【0007】共有レジスタ5の各データの格納位置は予
め決められているので、各プログラムを作成する過程
で、誤った位置(アドレス)に対するアクセス命令を記
述する確率は非常に少ない。
め決められているので、各プログラムを作成する過程
で、誤った位置(アドレス)に対するアクセス命令を記
述する確率は非常に少ない。
【0008】ワークメモリ3内に今回作成すべきプログ
ラムが専用に使用するワークエリア6を設定する場合に
は、このワークメモリ3内に既に設定されている他のプ
ログラムが使用するワークエリア6を避けて設定する必
要がある。しかし、他のプログラムも頻繁に変更されて
おり、また他の技術者がプログラムを作成した場合もあ
るので、ワークメモリ3内において、どの領域が未使用
であるかがプログラム作成者にとっては簡単に把握でき
ない。
ラムが専用に使用するワークエリア6を設定する場合に
は、このワークメモリ3内に既に設定されている他のプ
ログラムが使用するワークエリア6を避けて設定する必
要がある。しかし、他のプログラムも頻繁に変更されて
おり、また他の技術者がプログラムを作成した場合もあ
るので、ワークメモリ3内において、どの領域が未使用
であるかがプログラム作成者にとっては簡単に把握でき
ない。
【0009】その結果、誤った領域にワークエリア6を
設定してしまって、他のプログラムのワークエリア6と
重複する懸念がある。このような事態になると、プログ
ラマブルコントローラ1で実際に各プログラム4を実行
させると、誤った結果を出力する問題がある。
設定してしまって、他のプログラムのワークエリア6と
重複する懸念がある。このような事態になると、プログ
ラマブルコントローラ1で実際に各プログラム4を実行
させると、誤った結果を出力する問題がある。
【0010】本発明はこのような事情に鑑みてなされた
ものであり、プログラム作成時に使用するワークエリア
内の位置をインデックスで指定するのみで、自動的に必
要とするワークエリアがワークメモリ内に確保され、プ
ログラムを作成する場合に、ワークエリアを考慮する必
要がなく、プログラム作成能率を向上できると共に、コ
ントローラ全体の信頼性を向上できるプログラマブルコ
ントローラを提供することを目的とする。
ものであり、プログラム作成時に使用するワークエリア
内の位置をインデックスで指定するのみで、自動的に必
要とするワークエリアがワークメモリ内に確保され、プ
ログラムを作成する場合に、ワークエリアを考慮する必
要がなく、プログラム作成能率を向上できると共に、コ
ントローラ全体の信頼性を向上できるプログラマブルコ
ントローラを提供することを目的とする。
【0011】
【課題を解決するための手段】上記課題を解消するため
に本発明のプログラマブルコントローラは、プログラム
実行過程で使用するワークエリア内の位置をインデック
スの形態で指示し、ワークエリアの新規位置を使用する
場合にインデックスを順次更新していく更新命令が記述
された複数のプログラムが外部からロードされ、このロ
ードされた複数のプログラムがそれぞれ実行可能に構成
されている。
に本発明のプログラマブルコントローラは、プログラム
実行過程で使用するワークエリア内の位置をインデック
スの形態で指示し、ワークエリアの新規位置を使用する
場合にインデックスを順次更新していく更新命令が記述
された複数のプログラムが外部からロードされ、このロ
ードされた複数のプログラムがそれぞれ実行可能に構成
されている。
【0012】さらに、本発明においては、ロードされる
各プログラムを格納するためのプログラムメモリと、ロ
ードされる各プログラムが使用するためのワークメモリ
と、各プログラム毎に、プログラムメモリ内の格納位置
情報及びワークメモリ内の専用に使用するワークエリア
の位置情報及びサイズを登録するためのタスク管理テー
ブルと、各プログラムがロードされる毎に、該当プログ
ラムをプログラムメモリの空き領域に格納し、かつ格納
位置情報をタスク管理テーブルに登録するプログラム格
納手段と、格納されたプログラムに記述されているイン
デックスの更新命令数からワークメモリ内の使用ワーク
エリアの位置情報及びサイズを決定し、タスク管理テー
ブルに登録する使用ワークエリア登録手段とを備えてい
る。
各プログラムを格納するためのプログラムメモリと、ロ
ードされる各プログラムが使用するためのワークメモリ
と、各プログラム毎に、プログラムメモリ内の格納位置
情報及びワークメモリ内の専用に使用するワークエリア
の位置情報及びサイズを登録するためのタスク管理テー
ブルと、各プログラムがロードされる毎に、該当プログ
ラムをプログラムメモリの空き領域に格納し、かつ格納
位置情報をタスク管理テーブルに登録するプログラム格
納手段と、格納されたプログラムに記述されているイン
デックスの更新命令数からワークメモリ内の使用ワーク
エリアの位置情報及びサイズを決定し、タスク管理テー
ブルに登録する使用ワークエリア登録手段とを備えてい
る。
【0013】また、他の発明においては、前述した各手
段に加えて、プログラム実行過程において更新命令で順
次更新されていくインデックスを記憶するインデックス
レジスタと、プログラムメモリに格納されたプログラム
をインデックスレジスタを用いて実行するプログラム実
行手段と、プログラム実行手段で実行された後における
インデックスレジスタに記憶されているインデックスが
指定する位置がタスク管理テーブルに登録されている該
当プログラムのワークエリアを逸脱しているか否かを判
断するワークエリア診断手段とが設けられている。
段に加えて、プログラム実行過程において更新命令で順
次更新されていくインデックスを記憶するインデックス
レジスタと、プログラムメモリに格納されたプログラム
をインデックスレジスタを用いて実行するプログラム実
行手段と、プログラム実行手段で実行された後における
インデックスレジスタに記憶されているインデックスが
指定する位置がタスク管理テーブルに登録されている該
当プログラムのワークエリアを逸脱しているか否かを判
断するワークエリア診断手段とが設けられている。
【0014】
【作用】このように構成されたプログラマブルコントロ
ーラにおいては、外部からロードされるプログラムで
は、このプログラムの実行過程で使用するワークエリア
内の位置は実際のアドレスではなくてインデックスで指
定される。したがって、プログラムの作成者はプログラ
ム作成に当たって、ワークメモリ内の実際のアドレスを
指定する必要がない。
ーラにおいては、外部からロードされるプログラムで
は、このプログラムの実行過程で使用するワークエリア
内の位置は実際のアドレスではなくてインデックスで指
定される。したがって、プログラムの作成者はプログラ
ム作成に当たって、ワークメモリ内の実際のアドレスを
指定する必要がない。
【0015】このプログラムがロードされるプログラマ
ブルコントローラにおいては、ロードされたプログラム
がプログラムメモリ内へ書込まれる共に格納位置情報が
タスク管理テーブルに登録される。
ブルコントローラにおいては、ロードされたプログラム
がプログラムメモリ内へ書込まれる共に格納位置情報が
タスク管理テーブルに登録される。
【0016】また、ロードされたプログラムが使用する
ワークエリアのサイズは、プログラムに記述されている
インデックスの更新命令回数に対応する。また、ワーク
メモリ内の前回までにロードされたプログラムが使用す
るワークエリアの最終位置の次の位置を記憶保持してお
けば、この位置に今回得られた必要とするワークエリア
サイズを加算すれば、今回のプログラムが使用するワー
クエリアの位置(アドレス)が一義的に定まる。よっ
て、このワークエリアの位置情報及びサイズがタスク管
理テーブルに登録される。
ワークエリアのサイズは、プログラムに記述されている
インデックスの更新命令回数に対応する。また、ワーク
メモリ内の前回までにロードされたプログラムが使用す
るワークエリアの最終位置の次の位置を記憶保持してお
けば、この位置に今回得られた必要とするワークエリア
サイズを加算すれば、今回のプログラムが使用するワー
クエリアの位置(アドレス)が一義的に定まる。よっ
て、このワークエリアの位置情報及びサイズがタスク管
理テーブルに登録される。
【0017】該当プログラムを実際に実行する場合は、
インデックスの初期値をタスク管理テーブルに記憶され
ている該当プログラムに対応するワークエリアの先頭位
置(アドレス)に設定する。その後に該当プログラムを
実行すればよい。
インデックスの初期値をタスク管理テーブルに記憶され
ている該当プログラムに対応するワークエリアの先頭位
置(アドレス)に設定する。その後に該当プログラムを
実行すればよい。
【0018】また、別の発明においては、上述したブロ
グラムの実行が終了した時点においては、インデックス
は該当プログラムに対応するワークエリアの最終位置
(アドレス)に位置している筈である。したがって、こ
の実行後のインデックスとタスク管理テーブルに記憶さ
れている該当プログラムのワークエリアの位置情報及び
サイズとを比較対照することによって、該当プログラム
のワークエリアがワークメモリ内に正しく設定されてい
るか否かを診断できる。
グラムの実行が終了した時点においては、インデックス
は該当プログラムに対応するワークエリアの最終位置
(アドレス)に位置している筈である。したがって、こ
の実行後のインデックスとタスク管理テーブルに記憶さ
れている該当プログラムのワークエリアの位置情報及び
サイズとを比較対照することによって、該当プログラム
のワークエリアがワークメモリ内に正しく設定されてい
るか否かを診断できる。
【0019】
【実施例】以下本発明の一実施例を図面を用いて説明す
る。図1は実施例のプログマブルコントローラの概略構
成を示すブロック図である。このプログマブルコントロ
ーラ10はコンピュータ等の一種の情報処理装置で構成
されている。
る。図1は実施例のプログマブルコントローラの概略構
成を示すブロック図である。このプログマブルコントロ
ーラ10はコンピュータ等の一種の情報処理装置で構成
されている。
【0020】このプログマブルコントローラ10内にR
AM等で構成された記憶部11内には、外部からロード
された複数のプログラムを記憶するプログラムメモリ1
2、ワークメモリ13、各プログラムの格納位置等を記
憶するタスク管理テーブル14、ワークメモリ13内の
アクセス位置を示すインデックスKを記憶するインデッ
クスレジスタ15、プログラムメモリ12内に格納され
るプログラムを特定するタスク番号iを計数するタスク
番号カウンタ16、ワークメモリ13内における次のワ
ークエリアを設定する先頭位置(アドレス)NWPを記
憶する次回先頭位置レジスタ17、及びプログラムメモ
リ12内における次のプログラムを格納する先頭位置
(アドレス)NOPを記憶する次回先頭位置レジスタ1
8等が形成されている。
AM等で構成された記憶部11内には、外部からロード
された複数のプログラムを記憶するプログラムメモリ1
2、ワークメモリ13、各プログラムの格納位置等を記
憶するタスク管理テーブル14、ワークメモリ13内の
アクセス位置を示すインデックスKを記憶するインデッ
クスレジスタ15、プログラムメモリ12内に格納され
るプログラムを特定するタスク番号iを計数するタスク
番号カウンタ16、ワークメモリ13内における次のワ
ークエリアを設定する先頭位置(アドレス)NWPを記
憶する次回先頭位置レジスタ17、及びプログラムメモ
リ12内における次のプログラムを格納する先頭位置
(アドレス)NOPを記憶する次回先頭位置レジスタ1
8等が形成されている。
【0021】また、このプログマブルコントローラ10
内は、外部のプログラム作成部19からロードされた新
規プログラムをプログラムメモリ12へ格納するプログ
ラム格納部20と、格納されたプログラムが使用するワ
ークエリアをワークメモリ13内に設定して、設定内容
をタスク化管理テーブル14へ登録する使用ワークエリ
ア登録部21と、プログラムメモリ12に格納されたプ
ログラムを実際に実行させるプログラム実行部22と。
プログラム実行後において、ワークエリアが正しく設定
されているか否かを診断するワークエリア診断部23,
及び診断結果を表示する表示部24が収納されている。
内は、外部のプログラム作成部19からロードされた新
規プログラムをプログラムメモリ12へ格納するプログ
ラム格納部20と、格納されたプログラムが使用するワ
ークエリアをワークメモリ13内に設定して、設定内容
をタスク化管理テーブル14へ登録する使用ワークエリ
ア登録部21と、プログラムメモリ12に格納されたプ
ログラムを実際に実行させるプログラム実行部22と。
プログラム実行後において、ワークエリアが正しく設定
されているか否かを診断するワークエリア診断部23,
及び診断結果を表示する表示部24が収納されている。
【0022】なお上述した各部20〜23は例えばプロ
グマブルコントローラ1のOS(オペレーティング・シ
ステム)内にソフト的に構築されている。図2に示すよ
うに、プログラムメモリ12内にはプログラム作成部1
9で作成された各プログラムをロード順に格納する複数
の格納領域12aが形成される。また、ワークメモリ1
3内には、プログラムメモリ12内に格納された各プロ
グラムが共通に使用する各データを記憶する一つの共有
レジスタ13bと、各プログラムがプログラム実行過程
でそれぞれ専用に使用する複数のワークエリア13aが
設定される。
グマブルコントローラ1のOS(オペレーティング・シ
ステム)内にソフト的に構築されている。図2に示すよ
うに、プログラムメモリ12内にはプログラム作成部1
9で作成された各プログラムをロード順に格納する複数
の格納領域12aが形成される。また、ワークメモリ1
3内には、プログラムメモリ12内に格納された各プロ
グラムが共通に使用する各データを記憶する一つの共有
レジスタ13bと、各プログラムがプログラム実行過程
でそれぞれ専用に使用する複数のワークエリア13aが
設定される。
【0023】タスク管理テーブル14内には、プログラ
ムメモリ12内に格納された各プログラム毎に管理情を
登録するための複数の登録領域14aが形成されてい
る。この登録領域14aにはそれぞれ該当プログラムを
特定するタスク番号iが付されている。
ムメモリ12内に格納された各プログラム毎に管理情を
登録するための複数の登録領域14aが形成されてい
る。この登録領域14aにはそれぞれ該当プログラムを
特定するタスク番号iが付されている。
【0024】各登録領域14a内には、図示するよう
に、プログラムメモリ12内の該当プログラムが格納さ
れる格納領域12aの先頭アドレスを示すプログラム先
頭位置OP,プログラムメモリ12内の該当プログラム
が格納される格納領域12aの大きさをアドレス量で示
すプログラムサイズOS、該当プログラムが使用するワ
ークエリア13aの先頭位置(アドレス)を示すワーク
エリア先頭位置WP、該当ワークエリア13aの大きさ
をアドレス量で示すワークエリアサイズWSが登録され
る。
に、プログラムメモリ12内の該当プログラムが格納さ
れる格納領域12aの先頭アドレスを示すプログラム先
頭位置OP,プログラムメモリ12内の該当プログラム
が格納される格納領域12aの大きさをアドレス量で示
すプログラムサイズOS、該当プログラムが使用するワ
ークエリア13aの先頭位置(アドレス)を示すワーク
エリア先頭位置WP、該当ワークエリア13aの大きさ
をアドレス量で示すワークエリアサイズWSが登録され
る。
【0025】そして、このプログラマブルコントローラ
10に全くプログラムがロードされていない初期状態に
おいては、各次回先頭位置レジスタ17,18には各メ
モリ13,12の先頭位置(アドレス)が初期設定され
る。また、タスク番号カウンタ16のタスク番号iは1
に初期設定される(i=1)。
10に全くプログラムがロードされていない初期状態に
おいては、各次回先頭位置レジスタ17,18には各メ
モリ13,12の先頭位置(アドレス)が初期設定され
る。また、タスク番号カウンタ16のタスク番号iは1
に初期設定される(i=1)。
【0026】次に、プログラム作成装置19で作成され
るプログラムを説明する。このプログラムにおいては、
プログラム実行過程で使用するワークエリア13a内の
位置をインデックスKの形態で指示し、ワークエリア1
3aの新規位置を使用する場合にインデックスKを順次
更新していく更新命令(K=K+1)が記述されてい
る。
るプログラムを説明する。このプログラムにおいては、
プログラム実行過程で使用するワークエリア13a内の
位置をインデックスKの形態で指示し、ワークエリア1
3aの新規位置を使用する場合にインデックスKを順次
更新していく更新命令(K=K+1)が記述されてい
る。
【0027】具体例を図3及び図4を用いて説明する。
図3に示すプログラムを順番に説明すると、 (1) 共有レジスタ13bのXw0100位置のデータD1 を読
出す (2) 読出したデータD1 をワークエリア13a内のイン
デックスKが指定する位置へ書込む(D1 の複写) (3) インデックスKの更新(K=K+1) (4) 共有レジスタ13bのXw0200位置のデータD2 を読
出す (5) 読出したデータD2 に[20]を加算する演算を実
行する(D2 +20) (6) 演算結果(D2 +20)をワークエリア13a内の
インデックスKが指定する位置へ書込む (7) インデックスKの更新(K=K+1) ・ ・ このようにワークエリア13a内のアクセス位置をイン
デックスKで指定することによって、プログラム自体に
はワークメモリ13内の実際のアドレス位置を記述する
必要がない。
図3に示すプログラムを順番に説明すると、 (1) 共有レジスタ13bのXw0100位置のデータD1 を読
出す (2) 読出したデータD1 をワークエリア13a内のイン
デックスKが指定する位置へ書込む(D1 の複写) (3) インデックスKの更新(K=K+1) (4) 共有レジスタ13bのXw0200位置のデータD2 を読
出す (5) 読出したデータD2 に[20]を加算する演算を実
行する(D2 +20) (6) 演算結果(D2 +20)をワークエリア13a内の
インデックスKが指定する位置へ書込む (7) インデックスKの更新(K=K+1) ・ ・ このようにワークエリア13a内のアクセス位置をイン
デックスKで指定することによって、プログラム自体に
はワークメモリ13内の実際のアドレス位置を記述する
必要がない。
【0028】インデックスKの初期値をプログラマブル
コントローラ10側で例えばワークエリア13aの先頭
位置XW0000に設定すれば、上述した7ステップの命令を
実行するためには、ワークエリア13aのXW0000位置及
びXW0001位置が使用される。すなわち、このプログラム
が実行過程で必要とするワークメモリ13上におけるワ
ークエリア13aのアドレス量で示すサイズWSは、こ
のプログラムに記述されているインデックスKの更新命
令の回数に対応する。
コントローラ10側で例えばワークエリア13aの先頭
位置XW0000に設定すれば、上述した7ステップの命令を
実行するためには、ワークエリア13aのXW0000位置及
びXW0001位置が使用される。すなわち、このプログラム
が実行過程で必要とするワークメモリ13上におけるワ
ークエリア13aのアドレス量で示すサイズWSは、こ
のプログラムに記述されているインデックスKの更新命
令の回数に対応する。
【0029】しかして、前記プログラム格納部20及び
使用ワークエリア登録部21はプロギラム作成装置18
から新規のプログラムがロードされる毎に、図5に示す
プログラム設定処理を実行するようにプログラム構成さ
れている。
使用ワークエリア登録部21はプロギラム作成装置18
から新規のプログラムがロードされる毎に、図5に示す
プログラム設定処理を実行するようにプログラム構成さ
れている。
【0030】流れ図が開始されると、S(ステップ)1
において、入力されたプログラムをタスク番号カウンタ
16が指定するi番目のプログラムとして受信する。次
に、このプログラムのステップ数(命令数)を計数して
プログラムサイズOSiを検出する(S2)。次回先頭
位置メモリ18から次回プログラム先頭位置NOPを読
出す(S3)。次に、プログラムメモリ12における次
回プログラム先頭位置NOPから順番に、受信したプロ
グラムを書込む(S4)。
において、入力されたプログラムをタスク番号カウンタ
16が指定するi番目のプログラムとして受信する。次
に、このプログラムのステップ数(命令数)を計数して
プログラムサイズOSiを検出する(S2)。次回先頭
位置メモリ18から次回プログラム先頭位置NOPを読
出す(S3)。次に、プログラムメモリ12における次
回プログラム先頭位置NOPから順番に、受信したプロ
グラムを書込む(S4)。
【0031】プログラムメモリ12の格納領域12aに
対するプログラムの書込み処理が終了すると、S5に
て、タスク管理テーブル14のi番目の登録領域14a
に読取った次回プログラム先頭位置NOPをプログラム
先頭位置OPiとして登録する。次に次回先頭位置メモ
リ18の次回プログラム先頭位置NOPに先に算出した
プログラムサイズOSiを加算して、次回プログラム先
頭位置NOPを更新する(NOP=NOP+OSi)。
対するプログラムの書込み処理が終了すると、S5に
て、タスク管理テーブル14のi番目の登録領域14a
に読取った次回プログラム先頭位置NOPをプログラム
先頭位置OPiとして登録する。次に次回先頭位置メモ
リ18の次回プログラム先頭位置NOPに先に算出した
プログラムサイズOSiを加算して、次回プログラム先
頭位置NOPを更新する(NOP=NOP+OSi)。
【0032】次に、格納領域12aに格納したプログラ
ムに含まれるインデックスKの更新命令回数WSiを計
数して(S7)、この更新命令回数WSiを該当プログ
ラムの使用ワークエリア13aのワークエリアサイズと
してi番目の登録領域14aに登録する(S8)。
ムに含まれるインデックスKの更新命令回数WSiを計
数して(S7)、この更新命令回数WSiを該当プログ
ラムの使用ワークエリア13aのワークエリアサイズと
してi番目の登録領域14aに登録する(S8)。
【0033】S9にて、次回先頭位置メモリ17から次
回登録ワークエリア先頭位置NWPを読出す。そして、
S10にて、この次回登録ワークエリア先頭位置NWP
をタスク管理テーブル14のi番目の登録領域14aに
ワークエリア先頭位置WPiとして登録する(WPi=
NWP)。
回登録ワークエリア先頭位置NWPを読出す。そして、
S10にて、この次回登録ワークエリア先頭位置NWP
をタスク管理テーブル14のi番目の登録領域14aに
ワークエリア先頭位置WPiとして登録する(WPi=
NWP)。
【0034】S11にて、次回登録ワークエリア先頭位
置NWPに先に算出したワークエリアサイズWSiを加
算して、次回登録ワークエリア先頭位置NWPを更新す
る(NWP=NWP+WSi)。
置NWPに先に算出したワークエリアサイズWSiを加
算して、次回登録ワークエリア先頭位置NWPを更新す
る(NWP=NWP+WSi)。
【0035】以上で一つのプログラムに対する登録処理
が終了したので、タスク番号カウンタ16のタスク番号
iを更新する(i=I+1)。図5に示すプログラム設
定処理が終了すると、プログラム実行部22を起動させ
て、今回設定したi番目のプログラムを実際に実行す
る。このプログラム実行に際しては、インデックスレジ
スタ15に、i番目の登録領域14aのワークエリア先
頭位置WPiを初期値として設定する(K=WPi)。
しかる後に、該当プログラムを起動すると、このプログ
ラムが実行される。このプログラムの実行過程において
使用するワークエリア13aの位置(アドレス)はイン
デックスレジスタ15のインデックスKにて自動的に指
定される。
が終了したので、タスク番号カウンタ16のタスク番号
iを更新する(i=I+1)。図5に示すプログラム設
定処理が終了すると、プログラム実行部22を起動させ
て、今回設定したi番目のプログラムを実際に実行す
る。このプログラム実行に際しては、インデックスレジ
スタ15に、i番目の登録領域14aのワークエリア先
頭位置WPiを初期値として設定する(K=WPi)。
しかる後に、該当プログラムを起動すると、このプログ
ラムが実行される。このプログラムの実行過程において
使用するワークエリア13aの位置(アドレス)はイン
デックスレジスタ15のインデックスKにて自動的に指
定される。
【0036】プログラム実行部22によるi番目のプロ
グラムの実行処理が終了すると、ワークエリア診断部2
3が起動される。ワークエリア診断部23は起動され
と、図6に示す流れ図にした従って、ワークエリア13
aの診断処理を実行するようにプログラム構成されてい
る。
グラムの実行処理が終了すると、ワークエリア診断部2
3が起動される。ワークエリア診断部23は起動され
と、図6に示す流れ図にした従って、ワークエリア13
aの診断処理を実行するようにプログラム構成されてい
る。
【0037】図6の流れ図が開始されると、Q1にて、
タスク管理テーブル14のi番目の登録領域14aのワ
ークエリア先頭位置WPi及びワークエリアサイズWS
iを読出して、これらを加算して該当プログラムが使用
するワークエリア13aの境界位置WLiを算出する
(WLi=WPi+WSi)。
タスク管理テーブル14のi番目の登録領域14aのワ
ークエリア先頭位置WPi及びワークエリアサイズWS
iを読出して、これらを加算して該当プログラムが使用
するワークエリア13aの境界位置WLiを算出する
(WLi=WPi+WSi)。
【0038】次に、プログラムの実行終了時点における
インデックスレジスタ15のインデックスKを読取る
(Q2)。そして、このインデックスKと(WLi+
1)とを比較する(Q3)。なお、インデックスKは常
にワークメモリ13内の次の使用位置を示す。K≦(W
Li+1)の場合は、i番目のプログラムが使用したワ
ークエリアの最終位置は、隣接する他のプログラムが使
用するワークエリアに侵入していないので、このワーク
エリア13aは正しく登録されていると判断できる。そ
して、表示部24に正常表示を行う(Q4)。
インデックスレジスタ15のインデックスKを読取る
(Q2)。そして、このインデックスKと(WLi+
1)とを比較する(Q3)。なお、インデックスKは常
にワークメモリ13内の次の使用位置を示す。K≦(W
Li+1)の場合は、i番目のプログラムが使用したワ
ークエリアの最終位置は、隣接する他のプログラムが使
用するワークエリアに侵入していないので、このワーク
エリア13aは正しく登録されていると判断できる。そ
して、表示部24に正常表示を行う(Q4)。
【0039】S4にて、K>(WLi+1)の場合は、
i番目のプログラムが使用したワークエリアの最終位置
は、隣接する他のプログラムが使用するワークエリアに
侵入しているので、このワークエリア13aは誤って登
録されていると判断できる。この場合、i番目のプログ
ラムの次回実行を禁止する処理を行う(Q5)。そし
て、異常発生を表示部24に表示する(Q6)。
i番目のプログラムが使用したワークエリアの最終位置
は、隣接する他のプログラムが使用するワークエリアに
侵入しているので、このワークエリア13aは誤って登
録されていると判断できる。この場合、i番目のプログ
ラムの次回実行を禁止する処理を行う(Q5)。そし
て、異常発生を表示部24に表示する(Q6)。
【0040】このように構成されたプログラマブルコン
トローラ10においては、使用ワークエリア13a内の
位置をインデックスKで指定するように記述されたプロ
グラムがプログラム作成装置19からロードされると、
このプログラムは通常の手順でプログラムメモリ12内
に順番に書込まれていく。そして、タスク管理テーブル
14の該当タスク番号iの登録領域14aに格納位置等
の格納情報が登録される。
トローラ10においては、使用ワークエリア13a内の
位置をインデックスKで指定するように記述されたプロ
グラムがプログラム作成装置19からロードされると、
このプログラムは通常の手順でプログラムメモリ12内
に順番に書込まれていく。そして、タスク管理テーブル
14の該当タスク番号iの登録領域14aに格納位置等
の格納情報が登録される。
【0041】同時に、使用ワークエリア登録部21が動
作して、該当プログラムで使用されるワークエリア13
aの必要ワークエリアサイズWSiが、前記プログラム
に記述されたインデックスKの更新命令回数から算出さ
れる。インデックスKの初期値はワークメモリ13aの
先頭位置(アドレス)に設定されるので、プログラマブ
ルコントローラ10側のみで、該当プログラムが使用す
るワークエリア13aが自動的に決定される。そして、
その結果はタスク管理テーブル14のi番目の登録領域
14aに自動的に登録される。
作して、該当プログラムで使用されるワークエリア13
aの必要ワークエリアサイズWSiが、前記プログラム
に記述されたインデックスKの更新命令回数から算出さ
れる。インデックスKの初期値はワークメモリ13aの
先頭位置(アドレス)に設定されるので、プログラマブ
ルコントローラ10側のみで、該当プログラムが使用す
るワークエリア13aが自動的に決定される。そして、
その結果はタスク管理テーブル14のi番目の登録領域
14aに自動的に登録される。
【0042】したがって、プログラム作成装置19を用
いてプログラムを作成する技術者は、プログラム自体
に、ワークメモリ13の位置(アドレス)を示す具体的
数値を記述する必要がない。よって、プログラム作成者
は、ワークメモリ13内に既に登録されている他のプロ
グラムが使用するワークエリアを全く考慮せずに、プロ
グラムを作成することが可能となる。
いてプログラムを作成する技術者は、プログラム自体
に、ワークメモリ13の位置(アドレス)を示す具体的
数値を記述する必要がない。よって、プログラム作成者
は、ワークメモリ13内に既に登録されている他のプロ
グラムが使用するワークエリアを全く考慮せずに、プロ
グラムを作成することが可能となる。
【0043】その結果、プログラムの作成作業能率が大
幅に向上する。また、ワークエリア13a登録に関する
人為的ミスの発生を未然に防止できる。さらに、このプ
ログラマブルコントローラ10においては、プログラム
メモリ12に格納され、かつワークメモリ13における
使用すべきワークエリア13aの位置及びサイズがタス
ク管理テーブル14の登録領域14aに登録された後に
おいても、プログラム実行部22及びワークエリア診断
部23を作動させることによって、使用ワークエリア1
3aが正しく登録領域14aに登録されているか否かが
自動的に自己診断される。したがって、このプログラマ
ブルコントローラ10の信頼性をより一層向上できる。
幅に向上する。また、ワークエリア13a登録に関する
人為的ミスの発生を未然に防止できる。さらに、このプ
ログラマブルコントローラ10においては、プログラム
メモリ12に格納され、かつワークメモリ13における
使用すべきワークエリア13aの位置及びサイズがタス
ク管理テーブル14の登録領域14aに登録された後に
おいても、プログラム実行部22及びワークエリア診断
部23を作動させることによって、使用ワークエリア1
3aが正しく登録領域14aに登録されているか否かが
自動的に自己診断される。したがって、このプログラマ
ブルコントローラ10の信頼性をより一層向上できる。
【0044】
【発明の効果】以上説明したように本発明のプログラマ
ブルコントローラにおいては、プログラム作成時に、こ
のプログラムで使用するワークエリア内の位置をインデ
ックスで指定すると共に、プログラマブルコントローラ
内において、ロードされたプログラムが必要とするワー
クエリアがワークメモリ内に自動的に確保される。
ブルコントローラにおいては、プログラム作成時に、こ
のプログラムで使用するワークエリア内の位置をインデ
ックスで指定すると共に、プログラマブルコントローラ
内において、ロードされたプログラムが必要とするワー
クエリアがワークメモリ内に自動的に確保される。
【0045】したがって、プログラムを作成する場合
に、ワークエリアを考慮する必要がないので、プログラ
ム作成能率を大幅に向上できる。また、プログラム作成
上における人為的ミス発生確率を低減できる。さらに、
一旦登録されたワークエリアの良否を自動的に自己診断
するようにしているので、プログラマブルコントローラ
全体の信頼性を向上できる。
に、ワークエリアを考慮する必要がないので、プログラ
ム作成能率を大幅に向上できる。また、プログラム作成
上における人為的ミス発生確率を低減できる。さらに、
一旦登録されたワークエリアの良否を自動的に自己診断
するようにしているので、プログラマブルコントローラ
全体の信頼性を向上できる。
【図1】 本発明の一実施例に係わるプログラマブルコ
ントローラの概略構成を示すプロック図
ントローラの概略構成を示すプロック図
【図2】 同実施例コントローラの記憶部内に形成され
た各メモリを示す図
た各メモリを示す図
【図3】 プログラム作成装置で作成されるプログラム
の一例を示す図
の一例を示す図
【図4】 同プログラムの動作をワークメモリ上の動作
で示す図
で示す図
【図5】 同実施例コントローラの動作を示す流れ図
【図6】 同じく同実施例コントローラの動作を示す流
れ図
れ図
【図7】 従来のプログラマブルコントローラの各プロ
グラムとワークメモリに形成された各専用ワークエリア
との関係を示す図
グラムとワークメモリに形成された各専用ワークエリア
との関係を示す図
10…プログラマブルコントローラ、11…記憶部、1
2…プログラムメモリ、12a…格納領域、13…ワー
クメモリ、13a…ワークエリア、14…タスク管理テ
ーブル、14a…登録領域、15…インデックスレジス
タ、16…タスク番号カウンタ、17…次回先頭位置レ
ジスタ、18…次回先頭位置レジスタ、19…プログラ
ム作成装置、20…プログラム格納部、21…使用ワー
クエリア登録部、22…プログラム実行部、23…ワー
クエリア診断部、24…表示部
2…プログラムメモリ、12a…格納領域、13…ワー
クメモリ、13a…ワークエリア、14…タスク管理テ
ーブル、14a…登録領域、15…インデックスレジス
タ、16…タスク番号カウンタ、17…次回先頭位置レ
ジスタ、18…次回先頭位置レジスタ、19…プログラ
ム作成装置、20…プログラム格納部、21…使用ワー
クエリア登録部、22…プログラム実行部、23…ワー
クエリア診断部、24…表示部
Claims (2)
- 【請求項1】 プログラム実行過程で使用するワークエ
リア内の位置をインデックスの形態で指示し、前記ワー
クエリアの新規位置を使用する場合に前記インデックス
を順次更新していく更新命令が記述された複数のプログ
ラムが外部からロードされ、このロードされた複数のプ
ログラムがそれぞれ実行可能なプログラマブルコントロ
ーラであって、 前記ロードされる各プログラムを格納するためのプログ
ラムメモリと、 前記ロードされる各プログラムが使用するためのワーク
メモリと、 前記各プログラム毎に、前記プログラムメモリ内の格納
位置情報及び前記ワークメモリ内の専用に使用するワー
クエリアの位置情報及びサイズを登録するためのタスク
管理テーブルと、 前記各プログラムがロードされる毎に、該当プログラム
を前記プログラムメモリの空き領域に格納し、かつ格納
位置情報を前記タスク管理テーブルに登録するプログラ
ム格納手段と、 前記格納されたプログラムに記述されている前記インデ
ックスの更新命令数から前記ワークメモリ内の使用ワー
クエリアの位置及びサイズを決定し、前記タスク管理テ
ーブルに登録する使用ワークエリア登録手段とを備えた
プログラマブルコントローラ。 - 【請求項2】 前記プログラム実行過程において前記更
新命令で順次更新されていくインデックスを記憶するイ
ンデックスレジスタと、 前記プログラムメモリに格納されたプログラムを前記イ
ンデックスレジスタを用いて実行するプログラム実行手
段と、 このプログラム実行手段で実行された後における前記イ
ンデックスレジスタに記憶されているインデックスが指
定する位置が前記タスク管理テーブルに登録されている
該当プログラムのワークエリアを逸脱しているか否かを
判断するワークエリア診断手段とを備えた請求項1記載
のプログラマブルコントローラ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12500994A JPH07334214A (ja) | 1994-06-07 | 1994-06-07 | プログラマブルコントローラ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12500994A JPH07334214A (ja) | 1994-06-07 | 1994-06-07 | プログラマブルコントローラ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07334214A true JPH07334214A (ja) | 1995-12-22 |
Family
ID=14899612
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP12500994A Pending JPH07334214A (ja) | 1994-06-07 | 1994-06-07 | プログラマブルコントローラ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07334214A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 | プログラマブルコントローラおよびファンクションブロック呼び出し処理プログラム |
| US8607307B2 (en) | 2004-09-30 | 2013-12-10 | Rockwell Automation Technologies, Inc. | Scalable and flexible information security for industrial automation |
| JP2016081097A (ja) * | 2014-10-10 | 2016-05-16 | 富士電機株式会社 | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ |
-
1994
- 1994-06-07 JP JP12500994A patent/JPH07334214A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8607307B2 (en) | 2004-09-30 | 2013-12-10 | Rockwell Automation Technologies, Inc. | Scalable and flexible information security for industrial automation |
| 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 | プログラマブルコントローラおよびファンクションブロック呼び出し処理プログラム |
| JP2016081097A (ja) * | 2014-10-10 | 2016-05-16 | 富士電機株式会社 | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2002132518A (ja) | 仮想計算機システムおよび仮想計算機間の入出力装置交換方法 | |
| EP0111952B1 (en) | Verification of a processor architecture having a partial instruction set | |
| US4127768A (en) | Data processing system self-test enabling technique | |
| JPH07334214A (ja) | プログラマブルコントローラ | |
| JP2001202262A (ja) | データ格納方法 | |
| US11307829B2 (en) | Programming assistance device, programming assistance method, and computer-readable recording medium | |
| JP3335728B2 (ja) | プログラマブルコントローラ | |
| JPS5931745B2 (ja) | 未使用プログラム番号表示方式 | |
| JPH01125633A (ja) | マルチプロセッサシステムのデバッグ法 | |
| JPH03118642A (ja) | 情報処理システムにロードされたプログラムの実行を観測する方法及び装置 | |
| JPH11272490A (ja) | 診断制御システム | |
| JPS6373439A (ja) | ブ−トストラツプ方式 | |
| JP3392663B2 (ja) | プログラム式表示装置 | |
| JPH02110744A (ja) | 情報処理装置 | |
| JPH01136259A (ja) | 情報処理装置 | |
| JPS6053330B2 (ja) | プログラム書き込み方式 | |
| JPS631630B2 (ja) | ||
| EP0407849B1 (en) | Programming method and programming unit for programmable controller | |
| JPS6227421B2 (ja) | ||
| JPH0798668A (ja) | 情報処理装置の障害情報格納方式 | |
| JPS62192824A (ja) | 処理装置アクセス方式 | |
| JPH01312640A (ja) | デバックトレース方式 | |
| JPH06161516A (ja) | シーケンスプログラムのチェック方法 | |
| JPS5849900B2 (ja) | Ipl時の診断方式 | |
| JPS607820B2 (ja) | 読出し専用メモリの診断方法 |