(57)【要約】【課題】ＣＰＵモジュールの接続台数に変更があっても、バス調停の必要なく、簡易にかつ容易に、各ＣＰＵモジュールにバス使用権を与えること。【解決手段】本プログラマブルコントローラは、ＣＰＵ内蔵の複数のＣＰＵモジュール２と、上記各ＣＰＵモジュールが並列に多重接続される外部バス１と、を具備し、各ＣＰＵモジュール２は、それぞれ、外部バス１から所定データを入力し、内部で所定の並列演算を実行すると共に、各実行結果を外部バス１に制御データとして出力する一方、外部バスクロックに所定周期ごと順次的に同期して、当該外部バス１を使用してデータ伝送を行う。【選択図】図１
2010257193.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ内蔵の複数のＣＰＵモジュールと、
上記各ＣＰＵモジュールが並列に多重接続される外部バスと、
を具備し、
上記各ＣＰＵモジュールは、それぞれ、外部バスから所定データを入力し、内部で所定の並列演算を実行すると共に、各実行結果を外部バスに制御データとして出力する一方、外部バスクロックに所定周期ごと順次的に同期して、当該外部バスを使用してデータ伝送を行う、ことを特徴とするプログラマブルコントローラ。
【請求項２】
ＣＰＵ内蔵の複数のＣＰＵモジュールと、上記各ＣＰＵモジュールが並列に多重接続される外部バスと、外部バス上にバスクロックを供給するバスクロック源と、上記各ＣＰＵモジュールそれぞれに対して外部バス上でのデータ伝送を外部バスクロックにより制御するバスクロック制御部と、を具備し、各ＣＰＵモジュールは、それぞれ外部バスから所定データを入力し、内部で所定の並列演算を実行すると共に、各実行結果を外部バスに制御データとして出力する一方、バスクロック制御部は、各ＣＰＵモジュールそれぞれのＣＰＵに対して、外部バスクロックに順次的かつ周期的に同期して、当該外部バスの使用権を付与する制御を行う、ことを特徴とするプログラマブルコントローラ。
【請求項３】
上記バスクロック制御部は、外部バスへのＣＰＵモジュールの台数に応じてバスクロックの周波数を可変することができるようになっている、ことを特徴とする請求項２に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ内蔵の複数のＣＰＵモジュールを外部バスに並列に多重接続して、各ＣＰＵモジュールはその内部では内部バスを用いてデータ伝送して並列演算を行う一方、外部とのデータ入・出力には外部バスを用いるプログラマブルコントローラに関するものである。
【背景技術】
【０００２】
産業機械の制御装置であるプログラマブルコントローラは、ユーザが作成したユーザプログラム、例えば、ラダープログラム等のシーケンスプログラムを実行し、それに接続された制御機器を制御するようになっている。
【０００３】
このようなプログラマブルコントローラにおいては、ＰＬＣバス等の外部バス上にＣＰＵモジュール、１ないし複数の入出力モジュール等の各種モジュールが接続されている。これらＣＰＵモジュールはシーケンスプログラムメモリと、ＣＰＵと、を内蔵する。ＣＰＵは、入出力モジュールからの入力データに従い、内部ではシーケンスプログラムに従い演算を実行し入出力モジュールに演算結果を出力データとして出力する。
【０００４】
この場合、ＣＰＵはシーケンスプログラムの実行のため、入出力モジュールに対してデータ送信要求を行い、入出力モジュールはこれに応答してセンサなどの入力デバイスデータをＣＰＵに送信し、ＣＰＵはアクチュエータなどの出力デバイスにデータを出力制御する。
【０００５】
ところで、制御速度の向上や制御の利便性向上、あるいは高信頼性のための冗長性向上のため、複数のＣＰＵモジュールを外部バスに多重接続し、これら各ＣＰＵモジュールそれぞれの内蔵ＣＰＵに並列演算させて制御を分散する、いわゆるマルチＣＰＵ方式化することが考えられる。特許文献１参照。
【０００６】
しかしながら、このようなプログラマブルコントローラ仕様においては、各ＣＰＵモジュールが同時に外部バスを使用して例えば、入出力モジュールや共有メモリ等との間でデータ伝送をすることはできないので、バス調停回路によりバスアービトレーション（調停）を行う必要がある。
【０００７】
従来、ＣＰＵモジュールは、バスを使用して例えば、メモリにデータを書き込みあるいは読み出しする場合は、バス調停回路に対して、バス使用要求をアサートする。バス調停回路は、バスからのバス使用要求が競合すると、アービトレーションアルゴリズムにしたがって、複数のバス使用要求のうちの１つの要求にのみバス使用権を与える。
【０００８】
ところで、このようなバス調停は外部バスに接続するＣＰＵモジュールの台数増や台数減などにより変更等があれば、バス使用権の付与調整を行う必要があるが、このような調整は必ずしも容易ではない。
【０００９】
なお、バス調停については例えば特許文献２がある。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００６−０３１４２６号公報
【特許文献２】特開平０６−０３５８４０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明により解決すべき課題は、ＣＰＵモジュールの外部バスへの接続台数に増減変更があっても、簡易にかつ容易に各ＣＰＵモジュールにバス使用権を与えられるようにすることである。
【課題を解決するための手段】
【００１２】
本発明第１による多重接続並列演算型プログラマブルコントローラは、ＣＰＵ内蔵の複数のＣＰＵモジュールと、上記各ＣＰＵモジュールが並列に多重接続される外部バスと、を具備し、各ＣＰＵモジュールは、それぞれ外部バスから所定データを入力し、内部で所定の並列演算を実行すると共に、各実行結果を外部バスに制御データとして出力する一方、外部バスクロックに所定周期ごと順次的に同期して、当該外部バスを使用してデータ伝送を行うことを特徴とするものである。
【００１３】
本発明第１によれば、各ＣＰＵモジュールがそれぞれ外部バスクロックに所定周期ごと順次的に同期して、当該外部バスを使用してデータ伝送を行うので、外部バスに接続されるＣＰＵモジュールの台数が例えば増加しても、各ＣＰＵモジュールそれぞれの外部バス使用を容易に制御することができる。例えば、ＣＰＵモジュールの接続台数が２台であれば、外部バスクロック交互にかつ外部バスクロックに同期して各ＣＰＵモジュールは外部バスをデータ伝送に使用することができる。また、ＣＰＵモジュールの接続台数が３台以上であれば、外部バスクロックに順次的かつ周期的に同期して各ＣＰＵモジュールは外部バスをデータ伝送に使用することができる。
【００１４】
本発明第２によるプログラマブルコントローラは、ＣＰＵ内蔵の複数のＣＰＵモジュールと、上記各ＣＰＵモジュールが並列に多重接続される外部バスと、外部バス上にバスクロックを供給するバスクロック源と、各ＣＰＵモジュールそれぞれに対して外部バス上でのデータ伝送を外部バスクロックにより制御するバスクロック制御部と、を具備し、各ＣＰＵモジュールは、それぞれ外部バスから所定データを入力し、内部で所定の並列演算を実行すると共に、各実行結果を外部バスに制御データとして出力する一方、バスクロック制御部は、各ＣＰＵモジュールそれぞれのＣＰＵに対して、外部バスクロックに順次的かつ周期的に同期して、当該外部バスの使用権を付与する制御を行う、ことを特徴とする。
【００１５】
本発明第２によれば、外部バスに接続されるＣＰＵモジュールの台数が増加しても、バスクロック制御部により、各ＣＰＵモジュールそれぞれの外部バス使用を制御することができる。例えば、ＣＰＵモジュールの接続台数が２台であれば、外部バスクロック交互にかつ外部バスクロックに同期して各ＣＰＵモジュールは外部バスをデータ伝送に使用することができる。また、ＣＰＵモジュールの接続台数が３台以上であれば、外部バスクロックに順次的かつ周期的に同期して各ＣＰＵモジュールは外部バスをデータ伝送に使用することができる。
【００１６】
本発明第２において、好ましい態様は、上記バスクロック制御部は、外部バスへのＣＰＵモジュールの台数に応じてバスクロックの周波数を可変することができるようになっていることである。
【００１７】
この態様では、ＣＰＵモジュールの接続台数が増減しても、外部バスクロック上でデータ伝送速度を一定に維持することができる。
【発明の効果】
【００１８】
本発明によると、ＣＰＵモジュールの接続台数に変更があっても、バス調停の必要なく、簡易にかつ容易に、各ＣＰＵモジュールにバス使用権を与えることができる。
【図面の簡単な説明】
【００１９】
【図１】図１は本発明の実施形態に係るプログラマブルコントローラの構成を示す図である。
【図２】図２はＣＰＵモジュールの接続台数に対応して外部バスクロックに同期するときのタイミングチャートを示す図である。
【図３】図３は外部バスクロックの周波数を可変にした場合のＣＰＵモジュールの接続台数に対する外部バスクロックのタイミングチャートを示す図である。
【発明を実施するための形態】
【００２０】
以下、添付した図面を参照して、本発明の実施の形態に係る多重接続並列演算型プログラマブルコントローラを説明する。図１は本実施の形態のプログラマブルコントローラの構成を示す。
【００２１】
図１を参照して、外部バス１上には、Ｎ台（Ｎは２以上の整数）のＣＰＵモジュール２と、外部メモリ４と、入出力モジュール６、とが接続されている。
【００２２】
各ＣＰＵモジュール２は、内部バス２ａを有し、この内部バス２ａにＣＰＵ２ｂ、メモリ２ｃ、バスインターフェース２ｄが接続されている。ＣＰＵ２ｂは、入出力モジュール６からの入力データを外部バス１を介して入力し、内部では入力データに対応して、メモリ２ｃに格納のシーケンスプログラムに従い演算を実行し、その演算結果を外部バス１を介して入出力モジュール６に制御データとして出力する。
【００２３】
そして、実施の形態では、外部バス１には、バスクロック源８と、バスクロック制御部１０と、を接続している。バスクロック源８は外部バス１上に外部バスクロックを出力するものである。この外部バスクロックの周波数は、可変することができる。この外部バスクロックの周波数は、ＣＰＵモジュール２の接続台数に応じて可変することができる。
【００２４】
バスクロック制御部１０は、バスクロック源８と各ＣＰＵモジュール２とに接続されている。バスクロック制御部１０は、制御線１１により各ＣＰＵモジュール２に接続され、この制御線１１上に各ＣＰＵモジュール２それぞれからモジュール番号を送信され、これにより外部バス１に対するＣＰＵモジュール２の接続台数を認識することができる。そして、バスクロック制御部１０は、この認識に基づいて、バスクロック源８を制御して、外部バス１上にその接続台数に対応した周波数の外部バスクロックを出力させることができる。バスクロック制御部１０はまた、各ＣＰＵモジュール２に当該各ＣＰＵモジュール２の外部バス１に対する接続台数のデータを入力する。
【００２５】
バスクロック制御部１０はまた、各ＣＰＵモジュール２それぞれに対して外部バス１上でのデータ伝送を外部バスクロックにより制御するものであり、各ＣＰＵモジュール２それぞれのＣＰＵ２ｂに対して、外部バスクロックに順次的かつ周期的に同期して、当該外部バス１の使用権を付与する制御を行うようになっている。なお、入出力モジュール６にはセンサ等の入力デバイスや、アクチュエータ等の出力デバイスを含むターゲットシステム１２が接続されている。
【００２６】
なお、バスクロック制御部１０に代えて、各ＣＰＵモジュール２それぞれが、互いに通信して、外部バスクロックに順次的かつ周期的に同期して、当該外部バス１の使用権を相互に付与する制御を行うようにしてもよい。
【００２７】
図２を参照してバスクロック制御部１０の制御動作を説明すると、図２（ａ）はＣＰＵモジュール２が２台（Ｎ＝２）の場合の外部バスクロックのタイムチャートを示す。各ＣＰＵモジュールを符号で第１ＣＰＵモジュールを２Ａ、第２ＣＰＵモジュールを２Ｂとすると、第１ＣＰＵモジュール２Ａは外部バスクロックＣＬＫ１、ＣＬＫ３，ＣＬＫ５，…と奇数番号の外部バスクロックにより、また、第２ＣＰＵモジュール２Ｂは、外部バスクロックＣＬＫ２、ＣＬＫ４，ＣＬＫ６，…と偶数番号の外部バスクロックに同期して、外部バス１の使用権をバスクロック制御部１０から付与される。
【００２８】
図２（ｂ）はＣＰＵモジュールが３台（Ｎ＝３）の場合の外部バスクロックのタイムチャートを示す。第１、第２、第３ＣＰＵモジュールそれぞれを符号で２Ａ，２Ｂ，２Ｃとする。第１、第２、第３ＣＰＵモジュール２Ａ，２Ｂ，２Ｃはそれぞれ外部バスクロック３個を１周期としてこの周期内の外部バスクロックに同期して順次に外部バス１の使用権をバスクロック制御部１０から付与される。図２（ｂ）の例では、第１ＣＰＵモジュール２Ａは、外部バスクロックＣＬＫ１，ＣＬＫ４，…により、第２ＣＰＵモジュール２Ｂは、外部バスクロックＣＬＫ２，ＣＬＫ５，…により、第３ＣＰＵモジュール２Ｃは、外部バスクロックＣＬＫ３，ＣＬＫ６，…、により、それぞれ、応答して、外部バス１の使用権をバスクロック制御部１０から付与される。
【００２９】
図２（ｃ）は、ＣＰＵモジュールが２台（Ｎ＝２）の場合の外部バスクロックのタイムチャートを示す。各ＣＰＵモジュールを符号で第１ＣＰＵモジュールを２Ａ、第２ＣＰＵモジュールを２Ｂとすると、各ＣＰＵモジュール２Ａ，２Ｂはそれぞれ連続する２つの外部バスクロックを１周期として各周期内では連続して、各周期ごと交互に外部バスクロックに同期して外部バス１の使用権をバスクロック制御部１０から付与される。この図２（ｃ）の例では、ＣＰＵモジュール２Ａでは、最初に連続する２つの外部バスクロックＣＬＫ１，ＣＬＫ２，ＣＰＵモジュール２Ｂでは、次に連続する２つの外部バスクロックＣＬＫ３，ＣＬＫ４…により、…というようにして、外部バス１の使用権をバスクロック制御部１０から付与される。
【００３０】
バスクロック制御部１０は、バスクロック源８から外部バス１上に出力される外部バスクロックの周波数（周期）を可変制御することができる。これを図３を参照して説明すると、図３（ａ）では、ＣＰＵモジュールが２台（符号で２Ａ，２Ｂ）の場合であり、外部バスクロック制御部１０は、バスクロック源８を制御して、外部バスクロックの周期をＴ１にしている。各ＣＰＵモジュール２Ａ，２Ｂは、各周期Ｔ１で交互に、外部バス１の使用権を与えられる。
【００３１】
そして、ＣＰＵモジュールが図３（ｂ）で示すように４台（符号で２Ａ，２Ｂ，２Ｃ，２Ｄ）となった場合、外部バスクロック制御部１０は、バスクロック源８を制御して、外部バスクロックの周期をＴ２にしている。各ＣＰＵモジュール２Ａ，２Ｂ，２Ｃ，２Ｄは、各周期Ｔ２で順次に、外部バス１の使用権を与えられる。
【００３２】
この場合、周期Ｔ２は、周期Ｔ１の半分であり、外部バスクロック周波数は２倍となっている。
【００３３】
図３（ａ）と図３（ｂ）とを比較して明らかであるように、例えば、第１ＣＰＵモジュール２Ａでは、外部バスクロックの周期がＴ１の場合でその周波数が低い場合も、周期がＴ２の場合でその周波数が２倍高い場合でも、外部バス１を占有してデータを伝送できるタイミングは同じである。
【００３４】
以上説明したように、本実施の形態では、各ＣＰＵモジュール２はそれぞれ、外部バスクロックに順次的かつ周期的に同期して、外部バス１の使用権を付与されるから、ＣＰＵモジュール台数が増加しても、各ＣＰＵモジュール２は、それぞれ、外部バス使用権を得るタイミングが、外部バスクロックに順次的あるいは周期的に同期させることですみ、外部バス使用権を容易に得ることができる。
【符号の説明】
【００３５】
１  外部バス
２  ＣＰＵモジュール
４  外部メモリ
６  入出力モジュール
８  バスクロック源
１０  バスクロック制御部
【図１】
2010257193.tif 000003
【図２】
2010257193.tif 000004
【図３】
2010257193.tif 000005