JPH0728390A - プログラマブルコントローラ - Google Patents
プログラマブルコントローラInfo
- Publication number
- JPH0728390A JPH0728390A JP15498793A JP15498793A JPH0728390A JP H0728390 A JPH0728390 A JP H0728390A JP 15498793 A JP15498793 A JP 15498793A JP 15498793 A JP15498793 A JP 15498793A JP H0728390 A JPH0728390 A JP H0728390A
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- processing time
- group
- program
- rule
- 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.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Abstract
(57)【要約】
【目的】 プログラマが複数の演算装置の存在を意識し
ないでプログラミングできるプログラマブルコントロー
ラを提供する。 【構成】 プログラミング装置60において、ステップ
及びトランジション毎の処理時間を求める処理時間演算
ルール64と、SFCの同時分岐の開始及び収束に基づ
いてステップ及びトランジションをグループに分割する
SFC分割ルール65と、分割したグループをどの演算
装置20,30に割りふるかを規定する演算装置割当ル
ール66を持ち、これらにしたがって複数の演算装置に
プログラムの処理を自動的に分割する。
ないでプログラミングできるプログラマブルコントロー
ラを提供する。 【構成】 プログラミング装置60において、ステップ
及びトランジション毎の処理時間を求める処理時間演算
ルール64と、SFCの同時分岐の開始及び収束に基づ
いてステップ及びトランジションをグループに分割する
SFC分割ルール65と、分割したグループをどの演算
装置20,30に割りふるかを規定する演算装置割当ル
ール66を持ち、これらにしたがって複数の演算装置に
プログラムの処理を自動的に分割する。
Description
【0001】
【産業上の利用分野】本発明は、共通の入出力装置を利
用して動作する複数の演算装置を備え、SFC(シーケ
ンシャルファンクションチャート)言語に基づいてプロ
グラムを作成、実行するプログラマブルコントローラに
関する。
用して動作する複数の演算装置を備え、SFC(シーケ
ンシャルファンクションチャート)言語に基づいてプロ
グラムを作成、実行するプログラマブルコントローラに
関する。
【0002】
【従来の技術】プログラマブルコントローラ(以下、P
Cと略す)においては、より複雑な内容を高速に処理す
ることが求められている。ところが、一台で複雑な内容
を高速に処理することが可能な演算装置を備えたPCを
使えばコストアップの要因となる。そのため、処理速度
は比較的低速ではあるが安価な演算装置を複数台用意
し、演算装置に共通の入出力装置を利用して各演算装置
に処理を分担させることでコストを抑えるPCが、提
案、実用化されている。また、SFC言語に基づいてプ
ログラムを作成し、PCの実行プログラムに変換するた
めのプログラミング装置が実用化されている。SFC言
語を用いてプログラミングを行なうことで、ラダー図言
語だけ、あるいはニーモニック言語だけでPCのプログ
ラミングを行なっていた従来に比べて、プログラムの構
造化及びモジュール化が容易になり、可読性の良いプロ
グラムを作成することが容易になる。
Cと略す)においては、より複雑な内容を高速に処理す
ることが求められている。ところが、一台で複雑な内容
を高速に処理することが可能な演算装置を備えたPCを
使えばコストアップの要因となる。そのため、処理速度
は比較的低速ではあるが安価な演算装置を複数台用意
し、演算装置に共通の入出力装置を利用して各演算装置
に処理を分担させることでコストを抑えるPCが、提
案、実用化されている。また、SFC言語に基づいてプ
ログラムを作成し、PCの実行プログラムに変換するた
めのプログラミング装置が実用化されている。SFC言
語を用いてプログラミングを行なうことで、ラダー図言
語だけ、あるいはニーモニック言語だけでPCのプログ
ラミングを行なっていた従来に比べて、プログラムの構
造化及びモジュール化が容易になり、可読性の良いプロ
グラムを作成することが容易になる。
【0003】図8は従来のPCを示すブロック図であ
る。共有バス10を介して、演算装置20及び30と、
共有メモリ40と、入出力装置50と、プログラミング
装置6が繋がっている。共有メモリ40は、共有バス1
0を介して各演算装置20、30及びプログラミング装
置6及び入出力装置50からアクセス可能なメモリであ
る。活性ステップテーブル41はステップ毎に持たれ、
ステップの活性/不活性を判別するためのテーブルであ
る。各演算装置20、30は活性ステップテーブル41
において活性であるステップの実行プログラムだけを実
行し、不活性であるステップの実行プログラムは実行し
ない。ステップ実行中フラグ42は演算装置毎に持たれ
るフラグであり、演算装置がステップのプログラムを実
行中であることを他の演算装置に示す働きをする。トラ
ンジション実行中フラグ43は演算装置毎に持たれるフ
ラグであり、演算装置がトランジションのプログラムを
実行中であることを他の演算装置に示す働きをする。入
出力装置50は、入出力データ格納部51における出力
データを、外部機器70に、電気的またはソレノイドや
モータで機械的に変換して送出し、また外部機器70の
状態を、直接電気的に、または機械的状態をリミットス
イッチやエンコーダで電気的に変換して検出し、入出力
データ格納部51における入力データとして格納する。
プログラミング装置6におけるプログラミング手順を図
9に示すフローチャートで説明する。プログラミング装
置6には図示しないキーボード及びCRT等による入出
力装置が接続されており、これらを通してSFCプログ
ラムが作成され、ワークメモリ62に格納される(ステ
ップS100:なお、本明細書中、SFCプログラムの
処理をモジュール化したステップとの混同を防ぐため
に、フローチャートにおける処理を示すステップを「ス
テップS」と記述する。)。SFCプログラムは処理を
モジュール化したステップ、及びステップ間の実行順序
を制御するトランジションから構成されている。次にS
FCプログラムを、メモリ69に記憶されている実行プ
ログラム生成ルール63に従い、演算装置20及び30
にて実行可能なプログラムに変換し、ワークメモリ62
に格納する(ステップS110)。生成された実行プロ
グラムをどちらの演算装置20、30に割り当てるかを
プログラマがキーボード等により指示し(ステップS1
20)、次のSFCのプログラムを作成する場合にはス
テップS100に戻って同じ手順を繰り返す(ステップ
S130)。なお、生成された実行プログラムはステッ
プ毎及びトランジション毎にモジュール化されているた
めに、プログラマが入力装置から指定することでそれぞ
れのモジュールを演算装置20、30に割り振ることも
可能である。
る。共有バス10を介して、演算装置20及び30と、
共有メモリ40と、入出力装置50と、プログラミング
装置6が繋がっている。共有メモリ40は、共有バス1
0を介して各演算装置20、30及びプログラミング装
置6及び入出力装置50からアクセス可能なメモリであ
る。活性ステップテーブル41はステップ毎に持たれ、
ステップの活性/不活性を判別するためのテーブルであ
る。各演算装置20、30は活性ステップテーブル41
において活性であるステップの実行プログラムだけを実
行し、不活性であるステップの実行プログラムは実行し
ない。ステップ実行中フラグ42は演算装置毎に持たれ
るフラグであり、演算装置がステップのプログラムを実
行中であることを他の演算装置に示す働きをする。トラ
ンジション実行中フラグ43は演算装置毎に持たれるフ
ラグであり、演算装置がトランジションのプログラムを
実行中であることを他の演算装置に示す働きをする。入
出力装置50は、入出力データ格納部51における出力
データを、外部機器70に、電気的またはソレノイドや
モータで機械的に変換して送出し、また外部機器70の
状態を、直接電気的に、または機械的状態をリミットス
イッチやエンコーダで電気的に変換して検出し、入出力
データ格納部51における入力データとして格納する。
プログラミング装置6におけるプログラミング手順を図
9に示すフローチャートで説明する。プログラミング装
置6には図示しないキーボード及びCRT等による入出
力装置が接続されており、これらを通してSFCプログ
ラムが作成され、ワークメモリ62に格納される(ステ
ップS100:なお、本明細書中、SFCプログラムの
処理をモジュール化したステップとの混同を防ぐため
に、フローチャートにおける処理を示すステップを「ス
テップS」と記述する。)。SFCプログラムは処理を
モジュール化したステップ、及びステップ間の実行順序
を制御するトランジションから構成されている。次にS
FCプログラムを、メモリ69に記憶されている実行プ
ログラム生成ルール63に従い、演算装置20及び30
にて実行可能なプログラムに変換し、ワークメモリ62
に格納する(ステップS110)。生成された実行プロ
グラムをどちらの演算装置20、30に割り当てるかを
プログラマがキーボード等により指示し(ステップS1
20)、次のSFCのプログラムを作成する場合にはス
テップS100に戻って同じ手順を繰り返す(ステップ
S130)。なお、生成された実行プログラムはステッ
プ毎及びトランジション毎にモジュール化されているた
めに、プログラマが入力装置から指定することでそれぞ
れのモジュールを演算装置20、30に割り振ることも
可能である。
【0004】このようにしてすべての演算装置20、3
0に対する実行プログラムをワークメモリ上に作成し終
ると、それぞれの演算装置20、30に実行プログラム
をロードする(ステップS140)。この実行プログラ
ムは各メモリ22、32に格納される。続いて活性ステ
ップテーブル41を初期化し(ステップS150)、演
算装置20、30に起動をかける(ステップS16
0)。これによりPCは動作を開始する。活性ステップ
テーブル41を初期化する場合、通常は起動ステップ
(イニシャルステップ)のみを活性とし、それ以外のス
テップは不活性とする。
0に対する実行プログラムをワークメモリ上に作成し終
ると、それぞれの演算装置20、30に実行プログラム
をロードする(ステップS140)。この実行プログラ
ムは各メモリ22、32に格納される。続いて活性ステ
ップテーブル41を初期化し(ステップS150)、演
算装置20、30に起動をかける(ステップS16
0)。これによりPCは動作を開始する。活性ステップ
テーブル41を初期化する場合、通常は起動ステップ
(イニシャルステップ)のみを活性とし、それ以外のス
テップは不活性とする。
【0005】次に、このようにSFC言語にてプログラ
ミングされたPCの1スキャン動作を図5のフローチャ
ートを基に説明する。演算装置20、30および入出力
装置50は、それぞれ起動をかけるための図示しないト
リガを持っている。一定の周期で入出力装置50に起動
がかかると、まず外部機器70の状態を読み込んで入出
力データ格納部51における入力データとし、演算装置
20、30を起動する(ステップS200)。演算装置
20、30は、起動がかかると自演算装置に対応したス
テップ実行中フラグ42をONする(ステップS21
0)。次に、メモリ22及び32に格納されているステ
ップの実行プログラムのうち、活性ステップテーブル4
1において活性となっているステップの実行プログラム
を実行する(ステップS220)。ステップの実行プロ
グラムの実行によって、入出力データ格納部51におけ
る出力データが更新される。実行プログラムの実行が終
了すると、ステップ実行中フラグ42をOFFし(ステ
ップS230)、全ての演算装置においてステップの実
行プログラムの実行が終了するのを待つ(ステップS2
40)。
ミングされたPCの1スキャン動作を図5のフローチャ
ートを基に説明する。演算装置20、30および入出力
装置50は、それぞれ起動をかけるための図示しないト
リガを持っている。一定の周期で入出力装置50に起動
がかかると、まず外部機器70の状態を読み込んで入出
力データ格納部51における入力データとし、演算装置
20、30を起動する(ステップS200)。演算装置
20、30は、起動がかかると自演算装置に対応したス
テップ実行中フラグ42をONする(ステップS21
0)。次に、メモリ22及び32に格納されているステ
ップの実行プログラムのうち、活性ステップテーブル4
1において活性となっているステップの実行プログラム
を実行する(ステップS220)。ステップの実行プロ
グラムの実行によって、入出力データ格納部51におけ
る出力データが更新される。実行プログラムの実行が終
了すると、ステップ実行中フラグ42をOFFし(ステ
ップS230)、全ての演算装置においてステップの実
行プログラムの実行が終了するのを待つ(ステップS2
40)。
【0006】全ての演算装置20、30においてステッ
プの実行プログラムの実行が終了すると、各演算装置2
0、30は、自演算装置に対応したトランジション実行
中フラグ43をONする(ステップS250)。次に、
メモリ22及び32に格納されているトランジションの
実行プログラムのうち、活性ステップテーブル41にお
いて活性となっているステップに付随して起動されるト
ランジションの実行プログラムを実行する(ステップS
260)。トランジションの実行プログラムの実行によ
って活性ステップテーブル41が更新される。プログラ
ムの実行が終了すると、トランジション実行中フラグ4
3をOFFし(ステップS270)、全ての演算装置2
0、30においてトランジションの実行プログラムの実
行が終了するのを待つ(ステップS280)。トランジ
ション実行中フラグ43が全演算装置20、30におい
てOFFされると、最後に入出力装置50が、入出力デ
ータ格納部51における出力データを外部機器70に出
力し(ステップS290)、1スキャンの動作を終了す
る。
プの実行プログラムの実行が終了すると、各演算装置2
0、30は、自演算装置に対応したトランジション実行
中フラグ43をONする(ステップS250)。次に、
メモリ22及び32に格納されているトランジションの
実行プログラムのうち、活性ステップテーブル41にお
いて活性となっているステップに付随して起動されるト
ランジションの実行プログラムを実行する(ステップS
260)。トランジションの実行プログラムの実行によ
って活性ステップテーブル41が更新される。プログラ
ムの実行が終了すると、トランジション実行中フラグ4
3をOFFし(ステップS270)、全ての演算装置2
0、30においてトランジションの実行プログラムの実
行が終了するのを待つ(ステップS280)。トランジ
ション実行中フラグ43が全演算装置20、30におい
てOFFされると、最後に入出力装置50が、入出力デ
ータ格納部51における出力データを外部機器70に出
力し(ステップS290)、1スキャンの動作を終了す
る。
【0007】このように入出力装置50及び演算装置2
0、30それぞれが、高速に1スキャン動作を繰り返し
実行することで処理を進めていく構成になっている。な
お、例として演算装置20、30が2台からなる構成に
ついて述べたが、3台以上の場合についても同様であ
る。
0、30それぞれが、高速に1スキャン動作を繰り返し
実行することで処理を進めていく構成になっている。な
お、例として演算装置20、30が2台からなる構成に
ついて述べたが、3台以上の場合についても同様であ
る。
【0008】
【発明が解決しようとする課題】上述した従来のPCに
おいては、プログラミングの際にプログラマが複数の演
算装置の存在を意識してプログラミングを行なう必要が
有った。また、演算装置毎の実行プログラムの負荷を考
えながらプログラミングを行なわないとPCの持つ処理
能力を十分には発揮できないという不具合があった。本
発明は、以上のような課題を解決するためになされたも
のであり、本発明の目的は、プログラマが複数の演算装
置の存在を意識しないでプログラミング出来、しかもP
Cの持つ処理能力を十分に発揮できるPCを提供するこ
とにある。
おいては、プログラミングの際にプログラマが複数の演
算装置の存在を意識してプログラミングを行なう必要が
有った。また、演算装置毎の実行プログラムの負荷を考
えながらプログラミングを行なわないとPCの持つ処理
能力を十分には発揮できないという不具合があった。本
発明は、以上のような課題を解決するためになされたも
のであり、本発明の目的は、プログラマが複数の演算装
置の存在を意識しないでプログラミング出来、しかもP
Cの持つ処理能力を十分に発揮できるPCを提供するこ
とにある。
【0009】
【課題を解決するための手段】本発明の上記目的は、共
有バスと、共有メモリと、CPUとメモリを有し、その
メモリに格納されているプログラムを実行する複数の演
算装置と、外部機器との間でデータの入出力を行なう入
出力装置と、SFC言語で作成されたプログラムを前記
演算装置で実行可能なプログラムに変換するプログラミ
ング装置とを有し、前記変換され実行可能なプログラム
を前記各演算装置に割り振り実行するプログラマブルコ
ントローラにおいて、前記プログラミング装置は、SF
Cの同時分岐の開始および収束に基づいてステップおよ
びトランジションをグループに分割するSFC分割ルー
ルと、前記分割したグループを前記各演算装置の内のど
の演算装置に割り振るかを規定する演算装置割当ルール
とに従い、自動的に前記各演算装置に割り振ることによ
り達成される。。また、本発明の上記目的は、前記プロ
グラミング装置は、前記実行可能なプログラムの前記ス
テップおよびトランジション毎の処理時間を求めるため
の処理時間演算ルールを持ち、前記処理時間演算ルール
に従い、前記ステップおよびトランジション毎の処理時
間を求め、加算して前記グループ毎の処理時間を求め、
前記演算装置割当ルールにおいて、各演算装置に、処理
時間が平均化するように前記グループを割り当てるよう
にしたことにより、さらに良好に達成される。
有バスと、共有メモリと、CPUとメモリを有し、その
メモリに格納されているプログラムを実行する複数の演
算装置と、外部機器との間でデータの入出力を行なう入
出力装置と、SFC言語で作成されたプログラムを前記
演算装置で実行可能なプログラムに変換するプログラミ
ング装置とを有し、前記変換され実行可能なプログラム
を前記各演算装置に割り振り実行するプログラマブルコ
ントローラにおいて、前記プログラミング装置は、SF
Cの同時分岐の開始および収束に基づいてステップおよ
びトランジションをグループに分割するSFC分割ルー
ルと、前記分割したグループを前記各演算装置の内のど
の演算装置に割り振るかを規定する演算装置割当ルール
とに従い、自動的に前記各演算装置に割り振ることによ
り達成される。。また、本発明の上記目的は、前記プロ
グラミング装置は、前記実行可能なプログラムの前記ス
テップおよびトランジション毎の処理時間を求めるため
の処理時間演算ルールを持ち、前記処理時間演算ルール
に従い、前記ステップおよびトランジション毎の処理時
間を求め、加算して前記グループ毎の処理時間を求め、
前記演算装置割当ルールにおいて、各演算装置に、処理
時間が平均化するように前記グループを割り当てるよう
にしたことにより、さらに良好に達成される。
【0010】
【作用】本発明にあっては、プログラミング装置が複数
の演算装置に実行プログラムを自動的に割り振るので、
プログラミングの際にプログラマが複数の演算装置の存
在を意識する必要が無い。また、プログラムの実行時間
を求め、その結果を基に演算装置毎に平均して処理を割
り当てるので、PCの持つ処理能力を十分に発揮するよ
うに割り当てることが出来る。
の演算装置に実行プログラムを自動的に割り振るので、
プログラミングの際にプログラマが複数の演算装置の存
在を意識する必要が無い。また、プログラムの実行時間
を求め、その結果を基に演算装置毎に平均して処理を割
り当てるので、PCの持つ処理能力を十分に発揮するよ
うに割り当てることが出来る。
【0011】
【実施例】図1は本発明のPCの一例を図8に対応させ
て示すブロック図であり、同一構成要素には同符号を付
して説明を省略する。本実施例において特徴的なこと
は、プログラミング装置60のメモリ69に処理時間演
算ルール64、SFC分割ルール65、演算装置割当ル
ール66が追加されていることである。プログラミング
装置60におけるプログラミング手順を図2に示すフロ
ーチャートで説明する。なお、図9とほぼ同様な処理に
は同符号を付して詳細な説明を省略する。
て示すブロック図であり、同一構成要素には同符号を付
して説明を省略する。本実施例において特徴的なこと
は、プログラミング装置60のメモリ69に処理時間演
算ルール64、SFC分割ルール65、演算装置割当ル
ール66が追加されていることである。プログラミング
装置60におけるプログラミング手順を図2に示すフロ
ーチャートで説明する。なお、図9とほぼ同様な処理に
は同符号を付して詳細な説明を省略する。
【0012】ステップS100において作成されたSF
Cプログラムをもとに、ステップS110において実行
可能なプログラムに変換することで生成し、ワークメモ
リ62に格納された実行プログラムについて、ステップ
毎及びトランジション毎に処理時間を処理時間演算ルー
ル64に基づいて演算し、求める(ステップS17
0)。処理時間演算ルール64の具体例その1として
は、演算装置の機械語の処理時間をデータとして持ち、
実行プログラムの中に機械語が出現する回数を数えて積
をとり、処理時間とする方法がある。この方法では、演
算装置の処理能力が異なる場合は、処理時間演算時に、
演算装置の処理能力に比例したある一定の係数を掛ける
必要がある。処理時間演算ルール64の具体例その2と
しては、共有バス10を通して演算装置20または演算
装置30に実際に実行プログラムをロードし、実行して
時間を求める方法も有る。次にSFC分割ルール65に
基づいてステップ及びトランジションをいくつかのグル
ープに分割し(ステップS180)、分割したグループ
毎に演算装置割当ルール66に従い演算装置を割り当て
る(ステップS190)。
Cプログラムをもとに、ステップS110において実行
可能なプログラムに変換することで生成し、ワークメモ
リ62に格納された実行プログラムについて、ステップ
毎及びトランジション毎に処理時間を処理時間演算ルー
ル64に基づいて演算し、求める(ステップS17
0)。処理時間演算ルール64の具体例その1として
は、演算装置の機械語の処理時間をデータとして持ち、
実行プログラムの中に機械語が出現する回数を数えて積
をとり、処理時間とする方法がある。この方法では、演
算装置の処理能力が異なる場合は、処理時間演算時に、
演算装置の処理能力に比例したある一定の係数を掛ける
必要がある。処理時間演算ルール64の具体例その2と
しては、共有バス10を通して演算装置20または演算
装置30に実際に実行プログラムをロードし、実行して
時間を求める方法も有る。次にSFC分割ルール65に
基づいてステップ及びトランジションをいくつかのグル
ープに分割し(ステップS180)、分割したグループ
毎に演算装置割当ルール66に従い演算装置を割り当て
る(ステップS190)。
【0013】SFC分割ルール65の詳細について、図
3のフローチャートを基に説明する。まず、SFCの起
動ステップにグループを割り付け(ステップS18
1)、起動ステップに続く次のステップに注目する(ス
テップS182)。次のステップと前のステップとの間
には必ずトランジションが存在する。前のステップに対
して次のステップが複数存在する場合には、図6のよう
にSFCを図示したときにその図において左側のステッ
プから順に評価するものとする。前のステップと次のス
テップの間で同時分岐が開始する場合は、分岐したステ
ップのそれぞれにグループを新設し、割り付ける(ステ
ップS183及びステップS184)。前のステップと
次のステップの間で同時分岐が収束する場合は、収束し
たステップは同時分岐を開始する以前のグループにさか
のぼって分類する(ステップS185及びステップS1
87)。それ以外の場合は前のステップと同じグループ
に分類する(ステップS186)。次のステップが終了
ステップであればグループ分けを終了し、そうでない場
合は次のステップを更新して上述の処理を繰り返す。
3のフローチャートを基に説明する。まず、SFCの起
動ステップにグループを割り付け(ステップS18
1)、起動ステップに続く次のステップに注目する(ス
テップS182)。次のステップと前のステップとの間
には必ずトランジションが存在する。前のステップに対
して次のステップが複数存在する場合には、図6のよう
にSFCを図示したときにその図において左側のステッ
プから順に評価するものとする。前のステップと次のス
テップの間で同時分岐が開始する場合は、分岐したステ
ップのそれぞれにグループを新設し、割り付ける(ステ
ップS183及びステップS184)。前のステップと
次のステップの間で同時分岐が収束する場合は、収束し
たステップは同時分岐を開始する以前のグループにさか
のぼって分類する(ステップS185及びステップS1
87)。それ以外の場合は前のステップと同じグループ
に分類する(ステップS186)。次のステップが終了
ステップであればグループ分けを終了し、そうでない場
合は次のステップを更新して上述の処理を繰り返す。
【0014】なお、ステップの場合についてだけ述べた
が、トランジションの場合も同様に同時分岐の開始ある
いは同時分岐の収束を基準にしてグループ分けを行う。
このようにして分類したグループは、同じグループ内の
ステップを1スキャンに複数同時に実行することは無
く、同じグループ内のトランジションを1スキャンに複
数同時に実行することはない。つまり、演算装置から見
た場合、1スキャンに負荷が重複するのは、同時実行す
る他のグループ内のステップ、及び同時実行する他のグ
ループ内のトランジションとなる。
が、トランジションの場合も同様に同時分岐の開始ある
いは同時分岐の収束を基準にしてグループ分けを行う。
このようにして分類したグループは、同じグループ内の
ステップを1スキャンに複数同時に実行することは無
く、同じグループ内のトランジションを1スキャンに複
数同時に実行することはない。つまり、演算装置から見
た場合、1スキャンに負荷が重複するのは、同時実行す
る他のグループ内のステップ、及び同時実行する他のグ
ループ内のトランジションとなる。
【0015】そこで、同時実行する複数のグループを各
演算装置に割り当てるための演算装置割当ルール66を
図4のフローチャートを基に説明する。まず、割り当て
るための最初の演算装置を選択し(ステップS19
1)、同時実行するグループから処理時間が最大となる
グループを選択する(ステップS192)。ここで言う
グループの処理時間とは、グループ内のステップの処理
時間の内で最大の物とする。なぜならば、1つのグルー
プ内では複数のステップを同時に実行することは無いの
で、演算装置の負荷が最大になるのは、グループ内で処
理時間が最大のステップを実行する時である。つまり、
あるグループの処理時間は、グループ内で処理時間が最
大のステップの処理時間に等しいことになる。
演算装置に割り当てるための演算装置割当ルール66を
図4のフローチャートを基に説明する。まず、割り当て
るための最初の演算装置を選択し(ステップS19
1)、同時実行するグループから処理時間が最大となる
グループを選択する(ステップS192)。ここで言う
グループの処理時間とは、グループ内のステップの処理
時間の内で最大の物とする。なぜならば、1つのグルー
プ内では複数のステップを同時に実行することは無いの
で、演算装置の負荷が最大になるのは、グループ内で処
理時間が最大のステップを実行する時である。つまり、
あるグループの処理時間は、グループ内で処理時間が最
大のステップの処理時間に等しいことになる。
【0016】次に演算装置の累積処理時間が最小の演算
装置を選択する(ステップS193、ステップS19
4)。このようにしてグループを割り当てる演算装置を
決定すると(ステップS195)、割り当てたグループ
の処理時間を演算装置の処理時間に加算し、累積して記
憶しておく(ステップS196)。以上の処理を同時実
行するグループについて全て終了するまで繰り返す(ス
テップS197)。
装置を選択する(ステップS193、ステップS19
4)。このようにしてグループを割り当てる演算装置を
決定すると(ステップS195)、割り当てたグループ
の処理時間を演算装置の処理時間に加算し、累積して記
憶しておく(ステップS196)。以上の処理を同時実
行するグループについて全て終了するまで繰り返す(ス
テップS197)。
【0017】例として図6のSFCが与えられた場合、
本実施例のプログラミング装置60は、まず起動ステッ
プをグループGR0に割り付けする。ステップSP0
は、起動ステップと同じグループGR0に分類する。次
にステップSP1及びステップSP4は、ステップSP
4との間で同時分岐が開始しているので、それぞれグル
ープGR1とグループGR2を新設して割り付けする。
ステップSP2及びステップSP3は、ステップSP1
と同じグループGR1に分類する。ステップSP5及び
ステップSP6及びステップSP7は、ステップSP4
との間に同時分岐が開始しているので、それぞれグルー
プGR3とグループGR4とグループGR5を新設して
割り付けする。
本実施例のプログラミング装置60は、まず起動ステッ
プをグループGR0に割り付けする。ステップSP0
は、起動ステップと同じグループGR0に分類する。次
にステップSP1及びステップSP4は、ステップSP
4との間で同時分岐が開始しているので、それぞれグル
ープGR1とグループGR2を新設して割り付けする。
ステップSP2及びステップSP3は、ステップSP1
と同じグループGR1に分類する。ステップSP5及び
ステップSP6及びステップSP7は、ステップSP4
との間に同時分岐が開始しているので、それぞれグルー
プGR3とグループGR4とグループGR5を新設して
割り付けする。
【0018】次にステップSP8は、ステップSP5及
びステップSP6及びステップSP7との間で同時分岐
が収束しているので、同時分岐の開始前にさかのぼって
グループGR2に分類する。同様にステップSP9は、
ステップSP3及びステップSP8との間で同時分岐が
収束しているので、同時分岐前にさかのぼってグループ
GR0に分類する。最後の終了ステップも、ステップS
P9と同じグループGR0に分類する。なお、ステップ
の場合についてだけ述べたが、トランジションの場合も
同様である。
びステップSP6及びステップSP7との間で同時分岐
が収束しているので、同時分岐の開始前にさかのぼって
グループGR2に分類する。同様にステップSP9は、
ステップSP3及びステップSP8との間で同時分岐が
収束しているので、同時分岐前にさかのぼってグループ
GR0に分類する。最後の終了ステップも、ステップS
P9と同じグループGR0に分類する。なお、ステップ
の場合についてだけ述べたが、トランジションの場合も
同様である。
【0019】このようにグループ分けすると、同時実行
するのは、 1、グループGR1 と グループGR2 2、グループGR1 と グループGR3、GR4、G
R5 の2通りであることがわかる。このうちグループGR1
とグループGR2の場合については、2つの演算装置の
それぞれに割り当てれば良いが、グループGR1とグル
ープGR3、GR4、GR5の場合についてはそれぞれ
のグループの処理時間を基に割り当てる。
するのは、 1、グループGR1 と グループGR2 2、グループGR1 と グループGR3、GR4、G
R5 の2通りであることがわかる。このうちグループGR1
とグループGR2の場合については、2つの演算装置の
それぞれに割り当てれば良いが、グループGR1とグル
ープGR3、GR4、GR5の場合についてはそれぞれ
のグループの処理時間を基に割り当てる。
【0020】図7は、上述の結果を各ステップ、及び各
トランジションについてまとめた表図である。起動トラ
ンジションとは、活性ステップテーブル41においてス
テップが活性である場合に起動されるトランジション、
起動ステップとは、トランジション起動時に遷移条件が
成立すると、活性ステップテーブル41を書き換えて活
性とし、次のスキャンで起動するステップのことであ
る。
トランジションについてまとめた表図である。起動トラ
ンジションとは、活性ステップテーブル41においてス
テップが活性である場合に起動されるトランジション、
起動ステップとは、トランジション起動時に遷移条件が
成立すると、活性ステップテーブル41を書き換えて活
性とし、次のスキャンで起動するステップのことであ
る。
【0021】各ステップ及び各トランジションの処理時
間が図7の通りであった場合、グループの処理時間はス
テップを基準にしてそれぞれ グループGR1 = 180μs グループGR3 = 620μs グループGR4 = 380μs グループGR5 = 100μs である。ここでグループGR1は既に割り当てが終って
おり、その演算装置を仮に演算装置20とする。その場
合、演算装置20の累積処理時間は180μsになる。
残りのグループの内ではグループGR3の処理時間が最
大であり、演算装置30の累積処理時間は0μsで最小
なのでグループGR3の処理は演算装置30に割り当て
られる。その場合、演算装置30の累積処理時間は62
0μsとなる。同様にしてグループGR4及びグループ
GR5は、演算装置20に割り当てられ、演算装置20
の累積処理時間は660μsとなる。
間が図7の通りであった場合、グループの処理時間はス
テップを基準にしてそれぞれ グループGR1 = 180μs グループGR3 = 620μs グループGR4 = 380μs グループGR5 = 100μs である。ここでグループGR1は既に割り当てが終って
おり、その演算装置を仮に演算装置20とする。その場
合、演算装置20の累積処理時間は180μsになる。
残りのグループの内ではグループGR3の処理時間が最
大であり、演算装置30の累積処理時間は0μsで最小
なのでグループGR3の処理は演算装置30に割り当て
られる。その場合、演算装置30の累積処理時間は62
0μsとなる。同様にしてグループGR4及びグループ
GR5は、演算装置20に割り当てられ、演算装置20
の累積処理時間は660μsとなる。
【0022】単独実行するグループについては、演算装
置の処理能力が等しい場合、どの演算装置で実行しても
PC全体としての負荷は変わらない。また演算装置の処
理能力が異なる場合は、より高速な演算装置に割り振る
ことでPC全体としての負荷を軽減することができる。
なお、ステップの場合について述べたが、トランジショ
ンの場合も同様である。さらにステップとトランジショ
ンは、同一のグループに属していても、同一の演算装置
に割り当てる必要は無い。また、例として演算装置が2
台からなる構成について述べたが、3台以上の場合につ
いても同様である。また、プログラミング装置60を共
有バス10にて接続する例を示したが、RS232Cな
どの通信ケーブルで接続しても良い。
置の処理能力が等しい場合、どの演算装置で実行しても
PC全体としての負荷は変わらない。また演算装置の処
理能力が異なる場合は、より高速な演算装置に割り振る
ことでPC全体としての負荷を軽減することができる。
なお、ステップの場合について述べたが、トランジショ
ンの場合も同様である。さらにステップとトランジショ
ンは、同一のグループに属していても、同一の演算装置
に割り当てる必要は無い。また、例として演算装置が2
台からなる構成について述べたが、3台以上の場合につ
いても同様である。また、プログラミング装置60を共
有バス10にて接続する例を示したが、RS232Cな
どの通信ケーブルで接続しても良い。
【0023】
【発明の効果】以上のように本発明のPCによれば、プ
ログラミング装置が複数の演算装置に実行プログラムを
自動的に割り振るので、プログラミングの際にプログラ
マが複数の演算装置の存在を意識する必要がなく、あた
かも高速の演算装置が1台だけ存在するかのように想定
したプログラミングが可能となる。また、プログラミン
グ装置が実行プログラムを各演算装置に割り振る場合
に、プログラムの実行時間をもとに平均化するように割
り振るので、PCの処理能力を十分に発揮するようにプ
ログラムを分割でき、演算装置の台数を増やすだけでP
Cの持つ処理能力を向上することが容易に出来る。
ログラミング装置が複数の演算装置に実行プログラムを
自動的に割り振るので、プログラミングの際にプログラ
マが複数の演算装置の存在を意識する必要がなく、あた
かも高速の演算装置が1台だけ存在するかのように想定
したプログラミングが可能となる。また、プログラミン
グ装置が実行プログラムを各演算装置に割り振る場合
に、プログラムの実行時間をもとに平均化するように割
り振るので、PCの処理能力を十分に発揮するようにプ
ログラムを分割でき、演算装置の台数を増やすだけでP
Cの持つ処理能力を向上することが容易に出来る。
【図1】本発明のPCの一実施例を示すブロック図であ
る。
る。
【図2】本発明のPCにおけるプログラミング手順を示
すフローチャートである。
すフローチャートである。
【図3】本発明のプログラミング装置のSFC分割ルー
ルの詳細を示すフローチャートである。
ルの詳細を示すフローチャートである。
【図4】本発明のプログラミング装置の演算装置割当ル
ールの詳細を示すフローチャートである。
ールの詳細を示すフローチャートである。
【図5】本発明及び従来のPCの1スキャン動作を示す
フローチャートである。
フローチャートである。
【図6】本発明のプログラミング装置にてSFCをグル
ープ化した例を示した図である。
ープ化した例を示した図である。
【図7】図6のSFCを補足するための表図である。
【図8】従来のPCの一例を示すブロック図である。
【図9】従来のPCにおけるプログラミング手順を示す
フローチャートである。
フローチャートである。
10 共有バス 20,30 演算装置 40 共有メモリ 50 入出力装置 60 プログラミング装置 64 処理時間演算ルール 65 SFC分割ルール 66 演算装置割当ルール 70 外部機器
Claims (2)
- 【請求項1】 共有バスと、共有メモリと、CPUとメ
モリを有し、そのメモリに格納されているプログラムを
実行する複数の演算装置と、外部機器との間でデータの
入出力を行なう入出力装置と、SFC言語で作成された
プログラムを前記演算装置で実行可能なプログラムに変
換するプログラミング装置とを有し、前記変換され実行
可能なプログラムを前記各演算装置に割り振り実行する
プログラマブルコントローラにおいて、前記プログラミ
ング装置は、SFCの同時分岐の開始および収束に基づ
いてステップおよびトランジションをグループに分割す
るSFC分割ルールと、前記分割したグループを前記各
演算装置の内のどの演算装置に割り振るかを規定する演
算装置割当ルールとに従い、自動的に前記各演算装置に
割り振ることを特徴とするプログラマブルコントロー
ラ。 - 【請求項2】 前記プログラミング装置は、前記実行可
能なプログラムの前記ステップおよびトランジション毎
の処理時間を求めるための処理時間演算ルールを持ち、
前記処理時間演算ルールに従い、前記ステップおよびト
ランジション毎の処理時間を求め、加算して前記グルー
プ毎の処理時間を求め、前記演算装置割当ルールにおい
て、各演算装置に、処理時間が平均化するように前記グ
ループを割り当てるようにしたことを特徴とする、請求
項1に記載のプログラマブルコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15498793A JP3372301B2 (ja) | 1993-06-25 | 1993-06-25 | プログラマブルコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15498793A JP3372301B2 (ja) | 1993-06-25 | 1993-06-25 | プログラマブルコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0728390A true JPH0728390A (ja) | 1995-01-31 |
JP3372301B2 JP3372301B2 (ja) | 2003-02-04 |
Family
ID=15596244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15498793A Expired - Fee Related JP3372301B2 (ja) | 1993-06-25 | 1993-06-25 | プログラマブルコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3372301B2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7034881B1 (en) | 1997-10-31 | 2006-04-25 | Fuji Photo Film Co., Ltd. | Camera provided with touchscreen |
JP2007241434A (ja) * | 2006-03-06 | 2007-09-20 | Mitsubishi Electric Corp | シーケンス処理実行装置 |
KR100788714B1 (ko) * | 2007-02-27 | 2007-12-26 | (주)에이원메카 | 2개의 디스플레이 표시모듈을 탑재한 팔레트 |
JP2008198143A (ja) * | 2007-02-15 | 2008-08-28 | Fuji Electric Fa Components & Systems Co Ltd | プログラマブルコントローラ用プログラム作成支援装置およびプログラム作成支援方法 |
JP2012118715A (ja) * | 2010-11-30 | 2012-06-21 | Fuji Electric Co Ltd | Plcシステム、その開発支援装置、プログラム |
JP5911044B1 (ja) * | 2015-07-10 | 2016-04-27 | 三菱電機株式会社 | プログラム生成装置及びその方法 |
JPWO2016017004A1 (ja) * | 2014-07-31 | 2017-04-27 | 三菱電機株式会社 | 実行時間推定プログラムおよび実行時間推定装置 |
-
1993
- 1993-06-25 JP JP15498793A patent/JP3372301B2/ja not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7034881B1 (en) | 1997-10-31 | 2006-04-25 | Fuji Photo Film Co., Ltd. | Camera provided with touchscreen |
JP2007241434A (ja) * | 2006-03-06 | 2007-09-20 | Mitsubishi Electric Corp | シーケンス処理実行装置 |
JP2008198143A (ja) * | 2007-02-15 | 2008-08-28 | Fuji Electric Fa Components & Systems Co Ltd | プログラマブルコントローラ用プログラム作成支援装置およびプログラム作成支援方法 |
KR100788714B1 (ko) * | 2007-02-27 | 2007-12-26 | (주)에이원메카 | 2개의 디스플레이 표시모듈을 탑재한 팔레트 |
JP2012118715A (ja) * | 2010-11-30 | 2012-06-21 | Fuji Electric Co Ltd | Plcシステム、その開発支援装置、プログラム |
JPWO2016017004A1 (ja) * | 2014-07-31 | 2017-04-27 | 三菱電機株式会社 | 実行時間推定プログラムおよび実行時間推定装置 |
JP5911044B1 (ja) * | 2015-07-10 | 2016-04-27 | 三菱電機株式会社 | プログラム生成装置及びその方法 |
WO2017009895A1 (ja) * | 2015-07-10 | 2017-01-19 | 三菱電機株式会社 | プログラム生成装置及びその方法 |
US10126726B2 (en) | 2015-07-10 | 2018-11-13 | Mitsubishi Electric Corporation | Apparatus and method for generating program |
DE112015006682B4 (de) | 2015-07-10 | 2024-08-01 | Mitsubishi Electric Corporation | Vorrichtung und verfahren zur erzeugung von programmen |
Also Published As
Publication number | Publication date |
---|---|
JP3372301B2 (ja) | 2003-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5241677A (en) | Multiprocessor system and a method of load balancing thereof | |
US5053950A (en) | Multiprocessor system and a method of load balancing thereof | |
US7519968B2 (en) | Decentralized control system for network connection | |
JP3372301B2 (ja) | プログラマブルコントローラ | |
JPH0827774B2 (ja) | 修正可能な機能をサーバ上で実行する方法 | |
JPH0752420B2 (ja) | 入出力装置アドレス方式 | |
JPH04288603A (ja) | 数値制御装置 | |
JPH0341550A (ja) | 並列分散処理方法 | |
JPH0319003A (ja) | 位置決め機能付プログラマブルコントローラおよびその制御方法 | |
JPS63158635A (ja) | 複数os実行方式 | |
JPS63189944A (ja) | 目的プログラム生成処理方式 | |
JP2001184320A (ja) | 分散実行装置および記録媒体 | |
JPH0553827A (ja) | ダイナミツクリンク最適化方式 | |
JPS6365531A (ja) | プログラム処理装置 | |
JPS6373434A (ja) | デ−タフロ−型計算機デバツグ用プログラム作成方式 | |
JPH047748A (ja) | 参照順による自動配列要素割付処理方式 | |
JPS62205434A (ja) | 再帰呼出し可能プログラムのコンパイル処理方式 | |
JPS61151745A (ja) | 割込処理方式 | |
JPS638803A (ja) | プログラマブル・コントロ−ラ | |
JPH0272428A (ja) | プログラム変数の初期値設定方式 | |
JPS6370338A (ja) | 配列定数の目的プログラム生成方式 | |
JPH0778083A (ja) | ファジー推論ボード | |
JPH0371229A (ja) | プログラム制御装置 | |
JPS63118852A (ja) | 仮想記憶装置の制御方式 | |
JPH06301739A (ja) | 回路分割方法及びその装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |