(57)【要約】      （修正有）【課題】ＭＰＵの命令実行待ちでプログラムが停止することを回避する。【解決手段】シーケンスプログラムの中で所定の第１の命令をハードウェアで実行する演算処理回路（１）〜（ｎ）と、並行して実行されている複数の独立したシーケンスプログラムの中で、演算処理回路で実行できない第２の命令を実行するＭＰＵ１１，１２と、演算処理回路で発生した少なくとも１つの前記第２の命令の情報を命令の発生した順番にＭＰＵに転送する第１の転送手段と、ＭＰＵが実行した前記第２の命令の実行結果の情報を、演算処理回路に転送する第２の転送手段と、を備えた独立したシーケンスプログラムを並行して実行するプログラマブルコントローラであって、演算処理回路をＭＰＵの数と同じ数のグループに分けて各グループは少なくとも１つの演算処理回路で構成し、各グループに対応する前記ＭＰＵと第１の転送手段と第２の転送手段をそれぞれ有す。【選択図】図１８
2011198356.tif 000002
【特許請求の範囲】
【請求項１】
複数の独立したシーケンスプログラムを並行して実行するプログラマブルコントローラであって、
シーケンスプログラムの中の所定の第１の命令をハードウェアで実行する複数の演算処理回路と、
並行して実行されている複数の独立したシーケンスプログラムの中で、前記演算処理回路で実行できない第２の命令を実行する複数台のＭＰＵと、
前記演算処理回路で発生した少なくとも１つの前記第２の命令の情報を、その命令の発生した順番に前記ＭＰＵに転送する第１の転送手段と、
前記ＭＰＵが実行した前記第２の命令の実行結果の情報を、前記第２の命令の情報の発生元である前記演算処理回路に転送する第２の転送手段とを備え、
前記複数の演算処理回路は、前記のＭＰＵの数と同じ数の、少なくとも一つの演算処理回路を含んだグループに分けられ、
かつそれらのグループのうちの少なくとも一つは、少なくとも二つの演算処理回路を含み、前記第１及び第２の転送手段並びに前記ＭＰＵはこの少なくとも二つの演算処理回路を含むグループに対応して配されている、
前記のプログラマブルコントローラ。
【請求項２】
前記複数の演算処理回路を前記グループに分けて構成するときに、前記複数の演算処理回路の各々がどのグループに属するかを選択する選択手段を有することを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記選択手段は、
前記演算処理回路の各々がどのグループに属するかを指定するデータを格納するレジスタと、
前記レジスタに格納されたデータに従って各々の前記演算処理回路を対応する各グループの前記ＭＰＵと前記第１の転送手段と前記第２の転送手段に関連づける選択回路と、を備えたことを特徴とする請求項２に記載のプログラマブルコントローラ。
【請求項４】
前記演算処理回路の各々がどのグループに属するかを指定する前記データは、前記複数の独立したシーケンスプログラムを任意に前記グループに分けてシミュレーションを行い、前記複数のシーケンスプログラムの実行時間が最短となる組み合わせのデータであることを特徴とする請求項３に記載のプログラマブルコントローラ。
【請求項５】
前記第１の転送手段に替えて、一つの前記演算処理回路から一つの前記ＭＰＵに前記第２の命令の情報を直接転送する第３の転送手段を有する構成を含むことを特徴とする請求項１から請求項４のいずれか一つに記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラに関し、特に、複数本のシーケンスプログラムを並列実行するプログラマブルコントローラに関する。
【背景技術】
【０００２】
シーケンス制御を行うプログラマブルコントローラでは、一般的に、演算実行処理、すなわち、シーケンスプログラムの実行はＭＰＵやＡＳＩＣで行われており、シーケンスプログラムを構成する命令に応じてＭＰＵで処理するかＡＳＩＣで処理するかを使い分けている。なお、ＭＰＵは、ＣＰＵの機能を一つのＬＳＩにまとめたものである。また、ＡＳＩＣは、ある特定の用途のために設計、製造される集積回路のことである。
【０００３】
このようなプログラマブルコントローラにおいて、１台で複数本の独立したシーケンスプログラムを実行するには、特許文献１に開示される下記（１）、（２）の技術がある。
（１）ＭＰＵ１０、メモリ２０、ＡＳＩＣ３０のそれぞれ１個から構成されるハードウェアで、プログラム（１）〜プログラム（ｎ）の複数本のプログラムを時分割して実行する（図１，図２を参照）。この構成のプログラマブルコントローラでは、一つ一つのプログラムを時系列的に処理することから、図２に示されるように、各プログラムを実行する処理時間の総和が長くなるという問題がある。
（２）ＭＰＵ１０、メモリ２０、演算処理回路（１）〜演算処理回路（ｎ）の複数個の演算処理回路および調停回路３８を有するＡＳＩＣ３０のそれぞれ１個から構成されるハードウェアで、プログラム（１）〜プログラム（ｎ）の複数本のプログラムを並行して実行する（図３，図４を参照）。この構成のプログラマブルコントローラでは、複数のシーケンスプログラムを並行して実行することが可能である。図４に示されるように、プログラム（１）〜プログラム（ｎ）を処理する時間は、プログラム（１）の実行時間である。つまり、処理時間が一番長いプログラムに、プログラムの実行時間が依存する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１１６４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
背景技術で説明した（１）の技術では、図２に示されるように、処理時間の合計が長くなるという問題がある。  
また、（２）の技術では、図３に示されるように、複数本のシーケンスプログラムをＡＳＩＣ３０内部の複数個の演算処理回路、及び、１台のＭＰＵ１０で実行する。そのため、プログラムを構成する命令において、ＭＰＵが実行する命令の占める割合が大きいと、複数本のプログラムが同時にＭＰＵに命令の実行を要求する可能性が高くなり、ＭＰＵの命令実行待ちでプログラムが停止することになるという問題があった。
【０００６】
図５は、従来技術の問題点を説明する図であり、（２）の技術を用いて、プログラム（１）〜（３）が並行して処理されることを示している。符号１００はＭＰＵの実行命令時間、符合１１２はＡＳＩＣの実行命令時間である。また、符号１１４と符号１１６はプログラムの処理停止を意味する。
【０００７】
ＭＰＵ１０が１台であるため、プログラム（１）のＭＰＵ１０での処理が終了するのを待って、プログラム（２）のＭＰＵ１０での処理が開始する。また、プログラム（３）の処理では、プログラム（２）のＭＰＵ１０での処理が終了するのを待って、プログラム（３）のＭＰＵ１０での処理が開始する。このように、ＭＰＵ１０が１個であるため、複数のプログラムのＭＰＵ実行命令を同時に処理することができず、プログラムが停止することが起こるという問題点がある。
【０００８】
そこで本発明の目的は、上記従来技術の問題点に鑑み、プログラムを構成する命令において、ＭＰＵが実行する命令の占める割合が大きく、複数本のプログラムが同時にＭＰＵに命令の実行を要求する場合でも、ＭＰＵの命令実行待ちでプログラムが停止する時間を短縮することが可能な、複数の独立したシーケンスプログラムを並列実行するプログラマブルコントローラを提供することである。
【課題を解決するための手段】
【０００９】
本願の請求項１に係る発明は、複数の独立したシーケンスプログラムを並行して実行するプログラマブルコントローラであって、シーケンスプログラムの中の所定の第１の命令をハードウェアで実行する複数の演算処理回路と、並行して実行されている複数の独立したシーケンスプログラムの中で、前記演算処理回路で実行できない第２の命令を実行する複数台のＭＰＵと、前記演算処理回路で発生した少なくとも１つの前記第２の命令の情報を、その命令の発生した順番に前記ＭＰＵに転送する第１の転送手段と、前記ＭＰＵが実行した前記第２の命令の実行結果の情報を、前記第２の命令の情報の発生元である前記演算処理回路に転送する第２の転送手段とを備え、前記複数の演算処理回路は、前記のＭＰＵの数と同じ数の、少なくとも一つの演算処理回路を含んだグループに分けられ、かつそれらのグループのうちの少なくとも一つは、少なくとも二つの演算処理回路を含み、前記第１及び第２の転送手段並びに前記ＭＰＵはこの少なくとも二つの演算処理回路を含むグループに対応して配されている、前記のプログラマブルコントローラである。
【００１０】
請求項２に係る発明は、前記複数の演算処理回路を前記グループに分けて構成するときに、前記複数の演算処理回路の各々がどのグループに属するかを選択する選択手段を有することを特徴とする請求項１に記載のプログラマブルコントローラである。  
請求項３に係る発明は、前記選択手段は、前記演算処理回路の各々がどのグループに属するかを指定するデータを格納するレジスタと、前記レジスタに格納されたデータに従って各々の前記演算処理回路を対応する各グループの前記ＭＰＵと前記第１の転送手段と前記第２の転送手段に関連づける選択回路と、を備えたことを特徴とする請求項２に記載のプログラマブルコントローラである。
【００１１】
請求項４に係る発明は、前記演算処理回路の各々がどのグループに属するかを指定する前記データは、前記複数の独立したシーケンスプログラムを任意に前記グループに分けてシミュレーションを行い、前記複数のシーケンスプログラムの実行時間が最短となる組み合わせのデータであることを特徴とする請求項３に記載のプログラマブルコントローラである。  
請求項５に係る発明は、前記第１の転送手段に替えて、一つの前記演算処理回路から一つの前記ＭＰＵに前記第２の命令の情報を直接転送する第３の転送手段を有する構成を含むことを特徴とする請求項１から請求項４のいずれか一つに記載のプログラマブルコントローラである。
【発明の効果】
【００１２】
本発明により、プログラムを構成する命令において、ＭＰＵが実行する命令の占める割合が大きく、複数本のプログラムが同時にＭＰＵに命令の実行を要求する場合でも、ＭＰＵの命令実行待ちでプログラムが停止する時間を短縮することが可能な、複数の独立したシーケンスプログラムを並列実行するプログラマブルコントローラを提供できる。
【図面の簡単な説明】
【００１３】
【図１】従来技術のＭＰＵ、メモリ、ＡＳＩＣ、それぞれ１個から構成されるプログラマブルコントローラを説明する要部ブロック図である。
【図２】図１に示される構成のプログラマブルコントローラにおける各プログラムの実行時間である。
【図３】従来技術のＭＰＵ、メモリ、複数個の演算処理回路および調停回路を有するＡＳＩＣ、それぞれ１個から構成されるプログラマブルコントローラを説明する図である。
【図４】図３に示される構成のプログラマブルコントローラにおけるプログラムの実行時間の最大値を説明する図である。
【図５】従来技術の問題点を説明する図である。
【図６】本発明の第１の実施形態である、従来技術のハードウェアを２個実装した構成を説明する図である。
【図７】プログラム（１）を構成する命令がほとんどＭＰＵ実行命令、プログラム（２）〜（８）を構成する命令がほとんどＡＳＩＣ実行命令の場合のプログラムの実行時間を説明する図である。
【図８】演算処理回路が８回路で、従来技術のハードウェアを２つ実装する場合を説明する図である。
【図９】図８の構成のプログラマブルコントローラで図７のプログラムを実行した場合のプログラムの実行時間を説明する図である。
【図１０】演算処理回路が８回路で、一つの調停回路を備えたハードウェアを実装する場合を説明する図である。
【図１１】図１０の構成のプログラマブルコントローラで図７のプログラムを実行した場合のプログラムの実行時間を説明する図である。
【図１２】ＭＰＵと同数の調停回路の各々が調停する演算処理回路の数を変更できるようにし、並列実行するプログラムの内容に応じて、最適なハードウェア構成を選択できる本発明の第２の実施形態を説明する図である。
【図１３】図１２の構成において、ＭＰＵが２個の場合の構成を説明する図である。
【図１４】本発明の実施形態のＭＰＵを２個と演算処理回路を８回路とを実装する第１の構成を説明する図である。
【図１５】本発明の実施形態のＭＰＵを２個と演算処理回路を８回路とを実装する第２の構成を説明する図である。
【図１６】本発明の実施形態のＭＰＵを２個と演算処理回路を８回路とを実装する第３の構成を説明する図である。
【図１７】本発明の実施形態のＭＰＵを２個と演算処理回路を８回路とを実装する第４の構成を説明する図である。
【図１８】本発明のハードウェア構成を変更するための回路を説明する図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を図面と共に説明する。なお、同じ要素や類似する要素は、同じ符号を用いて説明する。  
まず、本願の特許請求の範囲および課題を解決するための手段に記載される第１の転送手段と第２の転送手段について概略を説明する。第１の転送手段と第２の転送手段は、特許文献１に詳細に記述されているように、従来公知の技術であるため、詳細な説明は省略し、ここでは概略を説明する。
【００１５】
シーケンスプログラムの中で、演算処理回路で実行可能な命令を第１の命令といい、前記演算処理回路で実行できずＭＰＵで処理する命令を第２の命令という。  
演算処理回路は、第２の命令が発生したときにＭＰＵ命令実行要求信号を出力し該ＭＰＵ命令実行要求信号を出力してからＭＰＵが該第２の命令を完了するまで停止状態となるＭＰＵ命令実行要求手段と、ＭＰＵが前記第２の命令の実行を完了した信号を受けてプログラム実行を再開する再開手段とを有する。
【００１６】
第１の転送手段は、第２の命令が発生したときにＭＰＵ命令実行要求信号を順次受け付ける受付手段と、前記第２の命令が発生した前記演算処理回路のＩＤ番号と前記第２の命令のプログラムアドレスを順次記憶する記憶手段と、前記記憶手段に記憶されているプログラムアドレスに基づいてＭＰＵが順次前記第２の命令を実行していくためのＭＰＵ命令実行開始信号を前記受付手段からＭＰＵに順次出力するＭＰＵ実行開始手段を有する。
【００１７】
第２の転送手段は、ＭＰＵが第２の命令の実行を完了する毎に完了した前記第２の命令に対応する前記ＩＤ番号の演算処理回路にＭＰＵ命令実行完了信号と実行結果を出力するＭＰＵ実行完了通知手段とを有する。
【００１８】
図６は、従来技術のハードウェアを２個実装した本発明の第１の実施形態を説明する図である。第１の実施形態は、ＡＳＩＣ３０にｎ本の演算処理回路と２台の調停回路３１，３２を設け、２台のＭＰＵ１１，１２を用いる。
【００１９】
第１の実施形態をより一般的に述べると、複数台のＭＰＵと、複数個の演算処理回路、および、演算処理回路が実行できない命令（ＭＰＵ実行命令）の実行をＭＰＵに要求する際の複数の演算処理回路間の調停を行うＭＰＵと同数の調停回路とを有するハードウェアを設ける。なお、マルチコアＭＰＵのように、１チップに複数のコアを有するＭＰＵ１台で構成してもよい。
【００２０】
第１の実施形態では、事前に各シーケンスプログラムの実行開始前に、ソフトウェアでシミュレーションを行ない、全体のプログラムの実行時間が最も短い構成となるように、複数のシーケンスプログラムを複数のセットにそれぞれ割り当てておく。これにより、最短の時間で複数のシーケンスプログラムを処理することができる。
【００２１】
ところで、並列実行するプログラムの本数、あるいは、各プログラムに含まれるＭＰＵ実行命令の数も様々であるため、複数台のＭＰＵを最大限に有効利用できない場合がある。図７は、プログラム（１）を構成する命令がほとんどＭＰＵ実行命令、プログラム（２）〜（８）を構成する命令がほとんどＡＳＩＣ実行命令の場合のプログラムの実行時間を説明する図である。  
ただし、この図のプログラムの実行時間は、各プログラムが専用の演算処理回路及び専用のＭＰＵで実行される、すなわち、各プログラムは、他のプログラムとの競合により、ＭＰＵの命令実行待ちとなって停止することがない、とした場合の実行時間である。
【００２２】
図８は、演算処理回路が８回路で、従来技術のハードウェアを２つ実装する場合を説明する図である。図８の構成は、図６においてｎ＝８の場合である。ＡＳＩＣ３０には、８個の演算処理回路（１）〜（８）と２つの調停回路３１，３２が備わっている。第１の調停回路３１には演算処理回路（１）〜（４）が接続され、第２の調停回路３２には演算処理回路（５）〜（８）が接続されている。そして、第１のＭＰＵ１１に第１の調停回路３１が接続され、第２のＭＰＵ１２に第２の調停回路３２が接続されている。
【００２３】
図９は、図８の構成のプログラマブルコントローラで図７のプログラムを実行した場合のプログラムの実行時間を説明する図である。第１のＭＰＵ１１は、プログラム（１）〜（４）の実行処理で、ＭＰＵ命令実行の待ち合わせを行なうため、プログラムの停止が発生する。
【００２４】
図９に示される停止時間の問題を回避するため、図８に示される調停回路と演算処理回路との組み合わせを変更する。図１０は、演算処理回路が８回路で、一つの調停回路を備えたハードウェアを実装する場合を説明する図である。演算処理回路（１）は直接、第１のＭＰＵ１１に接続し、演算処理回路（２）〜（８）は調停回路３９に接続される。
【００２５】
図１１は、図１０の構成のプログラマブルコントローラで図７のプログラムを実行した場合のプログラムの実行時間を説明する図である。プログラム（１）を構成する命令がほとんどＭＰＵ実行命令、プログラム（２）〜（８）を構成する命令がほとんどＡＳＩＣ実行命令の場合、図８より図１０のようなハードウェア構成になっている方が全体の実行時間を短縮できる。
【００２６】
ＭＰＵ実行命令とＡＳＩＣ実行命令の割合はプログラム毎に異なるため、プログラムに応じて複数のＭＰＵと演算処理回路との組み合わせを変更する。  
図１２は、ＭＰＵと同数の調停回路の各々が調停する演算処理回路の数を変更できるようにし、並列実行するプログラムの内容に応じて、最適なハードウェア構成を選択できる本発明の第２の実施形態を説明する図である。
【００２７】
図１２において、ｍ個（ｍ＜ｎ）の調停回路が調停する演算処理回路の数をハードウェア的に変更できるようにする。例えば、図１３に示すようにＭＰＵ２台の場合について説明する。  
ＭＰＵ２台の場合、調停回路２回路、演算処理回路ｎ回路（ｎ＝２ｊ、ｊ＝１，２，３，・・・）のハードウェア接続の組み合わせを以下のｎ／２通りに変更できるようにする。なお、複数のＭＰＵに替えて、例えば、マルチコアＭＰＵのように１チップに複数のコアを有するＭＰＵを１台として構成してもよい。
［１］  
ＭＰＵ（１）、調停回路（１）、演算処理回路（１）を接続。  
ＭＰＵ（２）、調停回路（２）、演算処理回路（２）〜（ｎ）を接続。  
［２］  
ＭＰＵ（１）、調停回路（１）、演算処理回路（１），（２）を接続。  
ＭＰＵ（２）、調停回路（２）、演算処理回路（３）〜（ｎ）を接続。  
［３］  
ＭＰＵ（１）、調停回路（１）、演算処理回路（１）〜（３）を接続。  
ＭＰＵ（２）、調停回路（２）、演算処理回路（４）〜（ｎ）を接続。  
・
・
［ｎ／２］  
ＭＰＵ（１）、調停回路（１）、演算処理回路（１）〜（ｎ／２）を接続。  
ＭＰＵ（２）、調停回路（２）、演算処理回路（ｎ／２ + １）〜（ｎ）を接続。
【００２８】
図１３において、演算処理回路の数が８個の場合を例として説明する。図１４は、本発明の実施形態のＭＰＵを２個と演算処理回路を８回路とを実装する第１の構成を説明する図である。図１５は、本発明の実施形態のＭＰＵを２個と演算処理回路を８回路とを実装する第２の構成を説明する図である。図１６は、本発明の実施形態のＭＰＵを２個と演算処理回路を８回路とを実装する第３の構成を説明する図である。図１７は、本発明の実施形態のＭＰＵを２個と演算処理回路を８回路とを実装する第４の構成を説明する図である。
【００２９】
図１４〜図１７の組み合わせは、複数個の演算処理回路を有するハードウェアのレジスタ設定などで変更することができる仕様にする。変更することができる仕様を、図１８を用いて後述して説明する。そして、このハードウェア構成をどのように設定するかは、各シーケンスプログラム実行開始前にソフトウェアでシミュレーションを行ない、全ハードウェア構成の組み合わせで複数本のプログラムを実行して、全体のプログラムの実行時間が最も短い構成を選択する。
【００３０】
以上のように、複数本の独立したシーケンスプログラム実行時、複数の演算処理回路と調停回路とＭＰＵのハードウェアを複数セットで構成し、さらに、シーケンスプログラムの内容に応じてプログラマブルコントローラのハードウェアの構成を変更する（組み替える）ことにより、プログラムの実行がＭＰＵ実行命令の実行待ちで停止する時間を短縮することができる。
【００３１】
図１８は、本発明に係るハードウェア構成を変更するための回路を説明する図である。
図１８ではメモリ２０は省略されている。第１の調停回路３１には第１のＭＰＵ１１が接続され、第２の調停回路３２には第２のＭＰＵ１２が接続される。第１の調停回路３１は演算処理回路（１）〜（ｎ／２）の調停を行なうことが可能で、ＭＰＵ命令実行要求信号を第１のＭＰＵ１１に出力する。また、第１のＭＰＵ１１は命令の実行が完了すると、第１の調停回路３１にＭＰＵ命令実行完了信号を出力する。第１の調停回路３１は、このＭＰＵ命令実行完了信号をＭＰＵ命令実行要求信号を出力した演算処理回路に出力する。第２の調停回路３２は、演算処理回路（２）〜（ｎ）の調停を行なうことが可能で、ＭＰＵ命令実行要求信号を第２のＭＰＵ１２に出力する。
【００３２】
したがって、演算処理回路（２）〜（ｎ／２）は、第１の調停回路３１及び第２の調停回路３２の双方に接続可能である。つまり、演算処理回路（２）〜（ｎ／２）と第１の調停回路３１および第２の調停回路３２とは、図１８に示すとおり、セレクタ５１〜５９を介して接続され、演算処理回路（２）〜（ｎ／２）が出力するＭＰＵ命令実行要求信号及びデータは、セレクタ５１〜５９の設定によって、第１の調停回路３１または第２の調停回路３２のどちらか一方に出力される。そして、ＭＰＵ命令実行要求信号及びデータは、第１の調停回路３１または第２の調停回路３２から、第１のＭＰＵ１１または第２のＭＰＵ１２に出力される。図１８において、セレクタ５１〜５９は９つのセレクタを意味するのではなく、図示されているセレクタのみに符号を付けた。
【００３３】
一方、第１のＭＰＵ１１または第２のＭＰＵ１２が出力したＭＰＵ命令実行完了信号は、第１の調停回路３１または第２の調停回路３２から、更に、直接、または、セレクタ５１〜５９を介してＭＰＵ命令実行要求信号を出力した演算処理回路に出力される。演算処理回路（１）と第１の調停回路３１とは直接接続している。
【００３４】
レジスタ及びデコーダ４０の端子Ｓ１，Ｓ２，・・・，Ｓ（ｎ／２ ―１）から出力される信号は、０または１の出力であり、セレクタ５１〜５９を切り替える。セレクタの切り替えは、レジスタ及びデコーダ４０からの指示によって行う。セレクタ５１〜５９をどのように設定するかは、第２のＭＰＵ１２からレジスタ及びデコーダ４０へセレクタ設定情報ｄとして与えられる。なお、レジスタ及びデコーダ４０へのセレクタ設定情報は第１のＭＰＵ１１から与えるようにしてもよい。
【００３５】
セレクタ５１，５２，５７を例として説明する。演算処理回路（２）の端子ａからの出力は、セレクタ５１の０端子とセレクタ５７の０端子に入力する。セレクタ５１，５７の１端子はグランドに接地され、セレクタ５１の出力は第１の調停回路３１の端子ａ（２）に入力する。セレクタ５７の出力は第２の調停回路３２の端子ａ（２）に入力する。
【００３６】
セレクタ５２の０端子には第１の調停回路３１のｂ（２）端子からの出力が入力し、セレクタ５２の１端子には第２の調停回路３２のｂ（２）端子からの出力が入力する。そして、セレクタ５２の出力は、演算処理回路（２）のｂ端子に入力する。
【００３７】
演算処理回路（３）〜（ｎ／２）も同様にセレクタ５３〜５６，５８，５９を介して第１の調停回路３１と第２の調停回路３２に接続されている。
【００３８】
レジスタ及びデコーダ４０のＳ１端子からの出力は、セレクタ５１，５２の切替え端子に入力し、一方、セレクタ５７の切替え端子にインバータ６０を介して入力する。例えば、レジスタ及びデコーダ４０の端子Ｓ１から「１」を意味する信号が出力されると、セレクタ５１のスイッチは「１」に接続され、Ｓ１から「０」を意味する信号が出力されると、セレクタ５１のスイッチは「０」に接続される。
【００３９】
上述したように、各演算処理回路（１）〜（ｎ）のａ端子から、ＭＰＵ命令実行要求信号およびデータが、直接、もしくは、セレクタ５１〜５９を介して第１の調停回路３１，第２の調停回路３２に出力される。図１８では、演算処理回路（１）、演算処理回路（ｎ／２ ＋１）〜演算処理回路（ｎ）は、第１の調停回路３１、または、第２の調停回路３２に直接接続されている。
【００４０】
そして、第１の調停回路３１，第２の調停回路３２からＭＰＵ命令実行完了信号が、直接、もしくは、セレクタを介して各演算処理回路（１〜ｎ）に送り出される。
【００４１】
セレクタ５１〜５９の選択信号は、レジスタ及びデコーダ４０により生成する。（ｎ／２ −１）個の演算処理回路を、第１の調停回路３１または第２の調停回路３２のどちらかに接続するかを決めるための選択信号Ｓ（ｎ／２ −１），・・・，Ｓ３，Ｓ２，Ｓ１は表１のようになる。
【００４２】
（表１）
2011198356.tif 000003
【００４３】
ここで、（Ｓ（ｎ／２ ―１），・・・，Ｓ３，Ｓ２，Ｓ１）＝（１，・・・，１，１，１）の場合、第１のＭＰＵ１１にデータ、ＭＰＵ命令実行要求信号を出力するのは演算処理回路（１）のみである。この場合、第１の演算処理回路と第１のＭＰＵ１１の間のデータ、ＭＰＵ命令実行要求信号、およびＭＰＵ命令実行完了信号の授受は、調停回路を介さずに直接行われる。
【００４４】
また、レジスタ及びデコーダ４０は、レジスタの設定値に応じて表１のような選択信号を生成する回路にする。このレジスタ及びデコーダ４０のレジスタはＭＰＵにより設定することが可能な構成とする。例えば、演算処理回路が８回路の場合、２ビットレジスタＲ１，Ｒ０を設け、このデータをデコードして、表２のように選択信号Ｓ１，Ｓ２，Ｓ３を生成する。
【００４５】
（表２）
2011198356.tif 000004
【００４６】
以上説明した本発明の実施形態によれば、本発明は、複数の演算処理回路と複数台のＭＰＵを用いる構成により、複数本の独立したシーケンスプログラムを並行して実行するハードウェアに関するものであるが、シーケンスプログラムの本数、各シーケンスプログラムを構成する命令の内容により、複数の演算処理回路と、複数台のＭＰＵのハードウェア接続の組み合わせの中から、プログラムの処理時間を最も短縮できる最適な構成を選択することができる。
【符号の説明】
【００４７】
１０  ＭＰＵ
１１  第１のＭＰＵ
１２  第２のＭＰＵ
１３  第３のＭＰＵ
１４  第ｍのＭＰＵ
２０  メモリ
３０  ＡＳＩＣ
３１  第１の調停回路
３２  第２の調停回路
３３  第３の調停回路
３４  第ｍの調停回路
３８，３９  調停回路
４０  レジスタ及びデコーダ
５１，５２，５３，５４，５５，５６，５７，５８，５９  セレクタ
６０，６１，６２  インバータ
ａ  ＭＰＵ命令実行要求信号及びデータ
ｂ  ＭＰＵ命令実行完了信号
ｄ  セレクタ設定情報
【図１】
2011198356.tif 000005
【図２】
2011198356.tif 000006
【図３】
2011198356.tif 000007
【図４】
2011198356.tif 000008
【図５】
2011198356.tif 000009
【図６】
2011198356.tif 000010
【図７】
2011198356.tif 000011
【図８】
2011198356.tif 000012
【図９】
2011198356.tif 000013
【図１０】
2011198356.tif 000014
【図１１】
2011198356.tif 000015
【図１２】
2011198356.tif 000016
【図１３】
2011198356.tif 000017
【図１４】
2011198356.tif 000018
【図１５】
2011198356.tif 000019
【図１６】
2011198356.tif 000020
【図１７】
2011198356.tif 000021
【図１８】
2011198356.tif 000022
【手続補正書】
【提出日】平成23年7月4日(2011.7.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本願の請求項１に係る発明は、複数の独立したシーケンスプログラムを並行して実行するプログラマブルコントローラであって、シーケンスプログラムの中の所定の第１の命令をハードウェアで実行する複数の演算処理回路と、並行して実行されている複数の独立したシーケンスプログラムの中で、前記演算処理回路で実行できない第２の命令を実行する複数台のＭＰＵと、前記演算処理回路で発生した少なくとも１つの前記第２の命令の情報を、その命令の発生した順番に前記ＭＰＵに転送する第１の転送手段と、前記ＭＰＵが実行した前記第２の命令の実行結果の情報を、前記第２の命令の情報の発生元である前記演算処理回路に転送する第２の転送手段とを備え、前記複数の演算処理回路は、前記のＭＰＵの数と同じ数の、少なくとも一つの演算処理回路を含んだグループに分けられ、かつそれらのグループのうちの少なくとも一つは、少なくとも二つの演算処理回路を含み、前記第１及び第２の転送手段並びに前記ＭＰＵはこの少なくとも二つの演算処理回路を含むグループに対応して配され、前記複数の演算処理回路を前記グループに分けて構成するときに、前記複数の演算処理回路の各々がどのグループに属するかを選択する選択手段を有することを特徴とする前記のプログラマブルコントローラである。  
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
請求項２に係る発明は、前記選択手段は、前記演算処理回路の各々がどのグループに属するかを指定するデータを格納するレジスタと、前記レジスタに格納されたデータに従って各々の前記演算処理回路を対応する各グループの前記ＭＰＵと前記第１の転送手段と前記第２の転送手段に関連づける選択回路と、を備えたことを特徴とする請求項１に記載のプログラマブルコントローラである。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
請求項３に係る発明は、前記演算処理回路の各々がどのグループに属するかを指定する前記データは、前記複数の独立したシーケンスプログラムを任意に前記グループに分けてシミュレーションを行い、前記複数のシーケンスプログラムの実行時間が最短となる組み合わせのデータであることを特徴とする請求項２に記載のプログラマブルコントローラである。  
請求項４に係る発明は、前記第１の転送手段に替えて、一つの前記演算処理回路から一つの前記ＭＰＵに前記第２の命令の情報を直接転送する第３の転送手段を有する構成を含むことを特徴とする請求項１から請求項３のいずれか一つに記載のプログラマブルコントローラである。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の独立したシーケンスプログラムを並行して実行するプログラマブルコントローラであって、
シーケンスプログラムの中の所定の第１の命令をハードウェアで実行する複数の演算処理回路と、
並行して実行されている複数の独立したシーケンスプログラムの中で、前記演算処理回路で実行できない第２の命令を実行する複数台のＭＰＵと、
前記演算処理回路で発生した少なくとも１つの前記第２の命令の情報を、その命令の発生した順番に前記ＭＰＵに転送する第１の転送手段と、
前記ＭＰＵが実行した前記第２の命令の実行結果の情報を、前記第２の命令の情報の発生元である前記演算処理回路に転送する第２の転送手段とを備え、
前記複数の演算処理回路は、前記のＭＰＵの数と同じ数の、少なくとも一つの演算処理回路を含んだグループに分けられ、
かつそれらのグループのうちの少なくとも一つは、少なくとも二つの演算処理回路を含み、前記第１及び第２の転送手段並びに前記ＭＰＵはこの少なくとも二つの演算処理回路を含むグループに対応して配され、
前記複数の演算処理回路を前記グループに分けて構成するときに、前記複数の演算処理回路の各々がどのグループに属するかを選択する選択手段を有することを特徴とする前記のプログラマブルコントローラ。
【請求項２】
前記選択手段は、
前記演算処理回路の各々がどのグループに属するかを指定するデータを格納するレジスタと、
前記レジスタに格納されたデータに従って各々の前記演算処理回路を対応する各グループの前記ＭＰＵと前記第１の転送手段と前記第２の転送手段に関連づける選択回路と、を備えたことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記演算処理回路の各々がどのグループに属するかを指定する前記データは、前記複数の独立したシーケンスプログラムを任意に前記グループに分けてシミュレーションを行い、前記複数のシーケンスプログラムの実行時間が最短となる組み合わせのデータであることを特徴とする請求項２に記載のプログラマブルコントローラ。
【請求項４】
前記第１の転送手段に替えて、一つの前記演算処理回路から一つの前記ＭＰＵに前記第２の命令の情報を直接転送する第３の転送手段を有する構成を含むことを特徴とする請求項１から請求項３のいずれか一つに記載のプログラマブルコントローラ。