(57)【要約】      （修正有）【課題】各ＣＰＵの共有メモリへのアクセス経路を内部バスと切り離すことで当該内部バスに接続されている各種メモリの実行を可能とし、各ＣＰＵの負荷の高速制御を可能とする。【解決手段】各ＣＰＵそれぞれに内部バスを介してＦＰＧＡを接続し、各ＦＰＧＡそれぞれを外部バスを介してモジュールバスに接続すると共に、ＦＰＧＡにメモリバスを介して共有メモリを接続し、上記ＦＰＧＡは、各ＣＰＵの共有メモリへのアクセスのためのバス調停と、共有メモリへのデータ書き込みの制御を行うバス調停／書き込み制御ブロックと、上記バス調停／書き込み制御ブロックにより上記共有メモリにいずれか一のＣＰＵがアクセス中のとき他のＣＰＵが上記共有メモリに書き込むデータが書き込まれ、共有メモリへの上記一のＣＰＵがアクセス終了後に上記メモリ回路に書き込んであるデータを上記共有メモリに書き写されるメモリブロックとを、コンフィグレーションされている。【選択図】図１
2010049511.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが制御プログラムを実行するＣＰＵを内蔵した複数のＣＰＵモジュールを備え、各ＣＰＵが少なくとも１つのメモリを共有メモリとするプログラマブルコントローラにおいて、各ＣＰＵの該共有メモリへのアクセス方式であって、
それぞれのＣＰＵモジュールは、内部のＣＰＵそれぞれに内部バスを介してフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を接続し、各ＦＰＧＡそれぞれを、外部バスを介してモジュールバスに接続すると共に、少なくとも一方のＦＰＧＡにメモリバスを介して共有メモリを接続した構成となし、
上記ＦＰＧＡは、その内部に、各ＣＰＵの共有メモリへのアクセスのためのバス調停と、共有メモリへのデータ書き込みの制御を行うバス調停／書き込み制御ブロックと、上記バス調停／書き込み制御ブロックにより上記共有メモリにいずれか一のＣＰＵがアクセス中のとき他のＣＰＵが上記共有メモリに書き込むデータが書き込まれると共に、上記共有メモリへの上記いずれか一のＣＰＵがアクセス終了後に上記メモリ回路に書き込んであるデータを上記共有メモリに書き写されるメモリブロックとを、コンフィグレーションされている、マルチＣＰＵ構成のプログラマブルコントローラにおける共有メモリへのアクセス方式。
【請求項２】
上記メモリブロックが、デュアルポートＲＡＭブロック構成になっている、請求項１に記載の方式。
【請求項３】
それぞれが制御プログラムを実行するＣＰＵを内蔵した複数のＣＰＵモジュールを備え、各ＣＰＵが少なくとも１つのメモリを共有メモリとするプログラマブルコントローラであって、各ＣＰＵが該共有メモリにアクセスする方式が上記請求項１または２に記載の方式である、プログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵを備えたプログラマブルコントローラにおいて、各ＣＰＵが１つのメモリを共有メモリとして、当該メモリへアクセスする方式ならびにマルチＣＰＵのプログラマブルコントローラに関するものである。
【背景技術】
【０００２】
プログラマブルコントローラはシーケンスプログラムを実行してそれに接続された制御機器をシーケンス制御するようになっている。このようなプログラマブルコントローラにおいて、ＣＰＵモジュールにはモジュールバスを介して複数の入出力モジュール等の各種モジュールが接続されている。ＣＰＵモジュールに内蔵するＣＰＵはシーケンスプログラムの実行により、例えば入出力モジュールに対してデータ送信要求を行い、入出力モジュールはこれに応答してセンサなどの入力デバイスデータをＣＰＵに送信し、ＣＰＵはアクチュエータなどの出力デバイスを制御する。
【０００３】
しかしながら、上記プログラマブルコントローラで、１つのＣＰＵにより高速制御化を図るには、ＣＰＵを、高速制御が可能であるが価格が高価なＣＰＵに交換することが必要である。そこで、ＣＰＵモジュールを複数化し、それぞれのＣＰＵモジュール内のＣＰＵをモジュールバスに接続し、これらＣＰＵに制御を分散する、いわゆるマルチＣＰＵ方式化することが考えられる。特許文献１参照。このようなマルチＣＰＵ方式構成では、ＣＰＵを高速制御可能な高価なものと交換する必要がなくなる。
【０００４】
図４を参照して従来のプログラマブルコントローラにおけるマルチＣＰＵ方式を説明すると、ＣＰＵモジュール１０，２０それぞれのＣＰＵ１１，２１をモジュールバス３０に共通接続し、モジュールバス３０には上記両ＣＰＵ１１，２１に共有される共有メモリ４０を接続している。モジュールバス３０には各種モジュール５０を接続している。また、ＣＰＵモジュール１０のＣＰＵ１１は内部バスＢ１１でワークメモリ１４に接続されている。ＣＰＵモジュール２０のＣＰＵ２１は内部バスＢ２１でワークメモリ２４に接続されている。
【０００５】
しかしながら、上記マルチＣＰＵ方式では、モジュールバス３０にＣＰＵ１１，２１を接続し、モジュールバス３０に接続した共有メモリ４０を各ＣＰＵ１１，２１間で共有使用する場合、各ＣＰＵ１１，２１間でモジュールバス３０使用上からバス調停を行う必要があった。
【０００６】
図５を参照して、ＣＰＵ１１が共有メモリ４０をアクセス中の時刻ｔ０−ｔ１は、モジュールバス３０はＣＰＵ１１により占有されているので、ＣＰＵ２１は、共有メモリ４０にアクセスすることができないで、ウエイトとなる。一方、ＣＰＵ１１も共有メモリ４０にアクセス中であるために、内部バスＢ１１は占有されていて、ＣＰＵ１１はワークメモリ１４にアクセスすることができないし、また、ＣＰＵ１１はワークメモリ１４を用いたワークができない。ＣＰＵ２１が共有メモリ４０をアクセス中の時刻ｔ２−ｔ３は、モジュールバス３０はＣＰＵ２１により占有されているので、ＣＰＵ１１は、共有メモリ４０にアクセスすることができないで、ウエイトとなる。一方、ＣＰＵ２１も共有メモリ４０にアクセス中であるために、内部バスＢ２１は占有されていて、ＣＰＵ２１はワークメモリ２４にアクセスすることができないし、また、ＣＰＵ２１はワークメモリ２４を用いたワークができない。このようにしてＣＰＵ１１，２１は互いに割り込みＩＮＴにより、バス調停する必要があり、複雑膨大な負荷を制御する場合に上記バス調停を行うと、負荷を高速処理することが困難化する。特に、各ＣＰＵ１１，２１間で割り込み処理宣言でバス使用の調停を行う場合、各ＣＰＵ１１，２１間で統率をとることが難しく、負荷処理の整然たる分担には不向きである。なお、特許文献には以下のものがある。
【特許文献１】特開２００６−０３１４２６号公報
【特許文献２】特開２００２−０２４１６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、各ＣＰＵが、共有メモリにアクセス中であっても、このアクセス経路をそれぞれの内部バスとは切り離すことで当該内部バスに接続されている各種メモリの実行を可能として、また、各ＣＰＵ自体はバス調停を行う必要性をなくすことで、負荷の高速制御を可能とした、マルチＣＰＵ構成のプログラマブルコントローラにおける共有メモリへのアクセス方式を提供するものである。
【０００８】
本発明はまた、各ＣＰＵのいずれかが共有メモリにアクセス中であっても、他のＣＰＵは別のメモリに共有メモリに対するデータを書き込んでおけば、上記アクセス終了後にその書き込んだデータを共有メモリに書き込み可能にして各ＣＰＵがさらに負荷の高速制御を可能とした、マルチＣＰＵ構成のプログラマブルコントローラにおける共有メモリへのアクセス方式を提供するものである。
【課題を解決するための手段】
【０００９】
本発明によるマルチＣＰＵ構成のプログラマブルコントローラにおいて共有メモリへのアクセス方式は、それぞれが制御プログラムを実行するＣＰＵを内蔵した複数のＣＰＵモジュールを備え、各ＣＰＵが少なくとも１つのメモリを共有メモリとするプログラマブルコントローラにおいて、各ＣＰＵの該共有メモリへのアクセス方式であって、それぞれのＣＰＵモジュールは、内部のＣＰＵそれぞれに内部バスを介してＦＰＧＡを接続し、各ＦＰＧＡそれぞれを、外部バスを介してモジュールバスに接続すると共に、少なくとも一方のＦＰＧＡにメモリバスを介して共有メモリを接続した構成となし、上記ＦＰＧＡは、その内部に、各ＣＰＵの共有メモリへのアクセスのためのバス調停と、共有メモリへのデータ書き込みの制御を行うバス調停／書き込み制御ブロックと、上記バス調停／書き込み制御ブロックにより上記共有メモリにいずれか一のＣＰＵがアクセス中のとき他のＣＰＵが上記共有メモリに書き込むデータが書き込まれると共に、上記共有メモリへの上記一のＣＰＵがアクセス終了後に上記メモリ回路に書き込んであるデータを上記共有メモリに書き写されるメモリブロックと、をコンフィグレーションされていることを特徴とするものである。
【００１０】
上記メモリブロックは、好ましくは、デュアルポートＲＡＭブロック構成になっている、ことである。
【００１１】
本発明によるプログラマブルコントローラは、それぞれが制御プログラムを実行するＣＰＵを内蔵した複数のＣＰＵモジュールを備え、各ＣＰＵが少なくとも１つのメモリを共有メモリとするプログラマブルコントローラであって、各ＣＰＵが該共有メモリにアクセスする方式が上記本発明のアクセス方式である、ことを特徴とするものである。
【発明の効果】
【００１２】
本発明によれば、上記ＦＰＧＡ内のバス調停／書き込み制御ブロックにより、各ＣＰＵのうちいずれか一のＣＰＵが共有メモリにアクセス中であっても、他のＣＰＵは負荷のデータ処理等ができる一方、各ＣＰＵは、共有メモリへのアクセスのためのバス調停を行う必要がなくなるので、バス調停に要していた時間を負荷のデータ処理に使用することができるようになり、各ＣＰＵにより負荷の高速制御が可能となる。
【００１３】
そして、本発明においては特に、各ＣＰＵのいずれかが共有メモリにアクセス中であっても、上記ＦＰＧＡ内のメモリブロックに他のＣＰＵは共有メモリへの書き込みデータを書き込んでおけば、上記アクセス終了後にその書き込んだデータを共有メモリに書き写しすることが可能であるから、各ＣＰＵはさらに負荷の高速制御を行うことが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、添付した図面を参照して、本発明の実施の形態に係るマルチＣＰＵ構成のプログラマブルコントローラにおける共有メモリへのアクセス方式を説明する。
【００１５】
図１は本実施の形態のマルチＣＰＵ構成のプログラマブルコントローラの構成を示し、図１において、１０，２０はＣＰＵモジュールであり、このＣＰＵモジュール１０，２０は、それぞれ、制御プログラムとしてシーケンスプログラムを実行するＣＰＵ１１，２１を内蔵する。このＣＰＵ１１，２１の内部バスＢ１１，Ｂ２１にシステムプログラムを格納するシステムメモリ１２，２２、シーケンスプログラムを格納するプログラムメモリ１３，２３、ＣＰＵ１１，２１の作業等に用いるワークメモリ１４，２４、フラッシュメモリ等からなるコンフィグレーションデータメモリ１５，２５が接続されている。
【００１６】
コンフィグレーションデータは、コンフィグレーションすべき回路構成のデータである。そして、この内部バスＢ１１，２１には、コンフィグレーションデータがコンフィグレーションされるＦＰＧＡ１６，２６が接続されている。
【００１７】
ＦＰＧＡ１６，２６は、ＳＲＡＭ型のフィールドプログラマブルゲートアレイ（Field Programmable Gate Array）である。ＦＰＧＡ１６，２６は同構成であり、ＦＰＧＡ２６について説明する。ＦＰＧＡ２６は、ＬＵＴ（ルックアップテーブル）とフリップフロップとで構成される基本セルを縦横配列したものであり、ＬＵＴを書き換えることにより内部のハードウェアロジックを変更することができるようになっている。こうしたＦＰＧＡ２６は、論理ブロックを記述する回路ブロック情報をこれらに読み込ませることで、内部の論理ブロックと論理ブロック間の結線を自由に構成することで、図２で示すブロックを任意に構成することができる。
【００１８】
すなわち、ＦＰＧＡ２６は、図２で示すように、入出力ブロック２６ａと、バス調停／書き込み制御ブロック２６ｂと、メモリブロックとしてのデュアルポートＲＡＭブロック２６ｃと、ゲートブロック２６ｄと、入出力ブロック２６ｅと、それらブロック間を接続する配線と、を有する論理ブロック構成にコンフィグレーションされている。ＦＰＧＡ２６は、コンフィグレーションデータメモリ２５に記憶された論理ブロック構成のデータを読み込んで所望の論理ブロック構成にコンフィグレーションされる。そして、ＦＰＧＡ２６は外部バスＢ２３を介してモジュールバス３０に接続されている。デュアルポートＲＡＭは、内部にページという一定単位の記憶領域を複数持ち、また、ポートを２つ有している。デュアルポートＲＡＭはいずれのポートからもデータの書き込み／読み出しが可能である。書き込みはポインタにより制御され、この制御により、リングバッファを構成する。
【００１９】
バス調停／書き込み制御ブロック２６ｂは、ＣＰＵ２１が共有メモリ２７にアクセス中のときに、ＣＰＵモジュール１０のＣＰＵ１１から共有メモリ２７へのデータ書き込み読み出しのアクセス要求があると、ＣＰＵ２１のアクセスをＣＰＵ１１のそれよりも優先するか、アクセス先着順とするか、ＣＰＵ１１のアクセスをＣＰＵ２１のそれよりも優先するかの判断を行う。
【００２０】
この判断により、ゲートブロック２６ｄの開閉を制御して共有メモリ２７に対するＣＰＵ１１，２１のアクセスのためのバス調停を行うようになっている。
【００２１】
また、このＣＰＵ１１が共有メモリ２７にアクセス中のときに、ＣＰＵ２１から共有メモリ２７へのデータ書き込みのためのアクセス要求があると、バス調停／書き込み制御ブロック２６ｂは、ＣＰＵ２１からのデータをデュアルポートＲＡＭブロック２６ｃに書き込ませる制御を行い、ＣＰＵ１１の共有メモリ２７へのアクセスが終了すると、デュアルポートＲＡＭブロック２６ｃに書き込んであるデータをゲートブロック２６ｄを制御して、共有メモリ２７に再度、書き込ませる。
【００２２】
このバス調停および書き込み制御を、図２、図３を参照して説明する。図２で点線（Ｂ）はＣＰＵ１１から共有メモリ２７へのアクセス経路、点線（Ａ）はＣＰＵ２１からデュアルポートＲＡＭブロック２６ｃへのデータ書き込み経路、一点鎖線（Ａ）はデュアルポートＲＡＭブロック２６ｃから共有メモリ２７へのデータの再書き込み経路を示し、図３でＡ、Ｂは上記図２のそれに対応するデータを示す。
【００２３】
図３（ａ）で示すように、ＦＰＧＡ２６は、時刻ｔ０以降でＣＰＵ１１が共有メモリ２７に出た書き込みのアクセスであるときに、図３（ｂ）で示すように、時刻ｔ１でＣＰＵ２１から共有メモリ２７にデータ書き込みのアクセス要求があると、ＣＰＵ２１からの書き込みデータをデュアルポートＲＡＭブロック２６ｃに書き込ませる。そして、時刻ｔ２でＣＰＵ１１の共有メモリ２７へのアクセスが終了すると、ＦＰＧＡ２６は、デュアルポートＲＡＭブロック２６ｃに書き込んであるデータをゲートブロック２６ｄを介して共有メモリ２７に書き写させる。
【００２４】
上記バス調停においては、各ＣＰＵ１１，２１それぞれの内部バスＢ１１，Ｂ２１はバス調停から切り離されており、各ＣＰＵ１１，２１は内部バスＢ１１，Ｂ２１を使用して制御を実行することができる。そのため、例えば、ＣＰＵ２１は、内部バスＢ２１を用いてワークメモリ２４にアクセスしてワークを行って負荷のデータ処理等ができると共に、ＣＰＵ２１は、バス調停を行う必要がなくなるので、バス調停に要していた時間を負荷のデータ処理に使用することができるようになり、負荷の高速制御が可能となる。
【００２５】
そして、上記実施の形態では、ＣＰＵ１１が共有メモリ２７にアクセス中であっても、ＣＰＵ２１はデュアルポートＲＡＭブロック２６ｃに共有メモリ２７に対するデータを書き込んでおき、ＣＰＵ１１の上記アクセスが終了すると、デュアルポートＲＡＭブロック２６ｃに書き込んだデータを共有メモリ２７に書き写しすることが可能であるから、ＣＰＵ２１は、ＣＰＵ１１の共有メモリ２７へのアクセス終了を待つことなく負荷の制御を行うことが可能となり、さらに負荷の高速制御を行うことが可能となる。
【００２６】
なお、ＣＰＵモジュール１０のＦＰＧＡ１６、共有メモリ１７も、同様に、バス調停およびデータの書き込み制御を行うことができるようにしてもよい。
【００２７】
なお、図１で示す実施の形態では、共有メモリ１７，２７をそれぞれのＣＰＵモジュール１０，２０が内蔵しているが、一方のＣＰＵモジュール１０にのみ共有メモリ１７を設け、他方のＣＰＵモジュール２０の共有メモリ２７を設けずに、かつ、その共有メモリ１７をＣＰＵモジュール１０のＦＰＧＡ１６と、ＣＰＵモジュール２０のＦＰＧＡ２６とに接続した構成とし、両ＦＰＧＡ１６，２６がバス調停およびデータの書き込み制御を行うようにしてもよい。この場合、両ＦＰＧＡ１６，２６の間でバス調停および書き込み制御に関するデータを通信して互いを監視できるようにしてもよい。
【図面の簡単な説明】
【００２８】
【図１】図１は本発明の実施形態に係るプログラマブルコントローラの構成を示す図である。
【図２】図２はＦＰＧＡのコンフィグレーション構成を示す図である。
【図３】図３は共有メモリへのアクセスのためのバス調停の説明に供する図である。
【図４】図４は従来のプログラマブルコントローラの構成を示す図である。
【図５】図５は共有メモリへのアクセスのためのバス調停の説明に供する図である。
【符号の説明】
【００２９】
１０，２０  ＣＰＵモジュール
３０  モジュールバス
５０  モジュール
１１，２１  ＣＰＵ
１２，２２  システムメモリ
１３，２３  プログラムメモリ
１４，２４  ワークメモリ
１５，２５  コンフィグレーションデータメモリ
１６，２６  ＦＰＧＡ
２６ａ  入出力ブロック
２６ｂ  バス調停／書き込み制御ブロック
２６ｃ  デュアルポートＲＡＭブロック（メモリブロック）
２６ｄ  ゲートブロック
２６ｅ  入出力ブロック
１７，２７  共有メモリ
Ｂ１１，Ｂ２１  内部バス
Ｂ１２，Ｂ２２  メモリバス
Ｂ１３，Ｂ２３  外部バス
【図１】
2010049511.tif 000003
【図２】
2010049511.tif 000004
【図３】
2010049511.tif 000005
【図４】
2010049511.tif 000006
【図５】
2010049511.tif 000007