(57)【要約】【課題】プログラマブルコントローラの高速化を図る。【解決手段】プログラムをラダー図形式からニーモニック形式にコンパイルする第１ステップと、上記プログラムを構成する複数のプログラム要素に関して関数を含むプログラム要素と、関数を含まないプログラム要素との情報を生成する第２ステップと、上記情報から関数を含むプログラム要素については、リコンフィギャラブルプロセッサによる実行が可能なリコンフィギャラブル論理ブロック構成にハードウェア化コンパイルする一方、関数を含まないプログラム要素についてはＣＰＵの実行が可能な実行ファイルにコンパイルする第３ステップと、プログラムの実行に際しては、関数を含むプログラム要素についてはリコンフィギャラブルプロセッサが上記リコンフィギャラブル論理ブロックを用いて実行する一方、関数を含まないプログラム要素についてはＣＰＵが上記実行ファイルを実行する第４ステップと、を含む。【選択図】図１
2009251782.tif 000002
【特許請求の範囲】
【請求項１】
シーケンス制御のプログラムを実行するに際して、関数を含まないプログラム要素については、実行ファイル化コンパイルし、関数を含むプログラム要素については、リコンフィギャラブルプロセッサにより、リコンフィギャラブル論理ブロック構成にハードウェア化コンパイルする、ことを特徴とするプログラマブルコントローラの高速化方法。
【請求項２】
シーケンス制御のプログラムをラダー図形式からニーモニック形式にコンパイルする第１ステップと、
上記プログラム内の関数情報を解析する第２ステップと、
上記関数情報から関数を含むプログラム要素については、リコンフィギャラブルプロセッサによりリコンフィギャラブル論理ブロック構成にハードウェア化コンパイルし、関数を含まないプログラム要素についてはＣＰＵの実行が可能な実行ファイル化コンパイルする第３ステップと、
プログラムの実行に際しては、関数を含むプログラム要素については、リコンフィギャラブルプロセッサにより上記リコンフィギャラブル論理ブロック構成にハードウェア化して実行し、関数を含まないプログラム要素については、実行ファイル化して実行する第４ステップと、
を含むことを特徴とするプログラマブルコントローラの高速化方法。
【請求項３】
パーソナルコンピュータからプログラマブルコントローラへのプログラム転送方法において、プログラムをラダー図形式からニーモニック形式にコンパイルすると共に、このコンパイルしたプログラムにおける関数を解析し、その解析情報を含めたプログラムをプログラマブルコントローラに転送する、ことを特徴とするプログラマブルコントローラへのプログラム転送方法。
【請求項４】
シーケンス制御するプログラムを含むリコンフィギャラブル関数情報が格納されているメモリと、
プログラムを実行するに際して、上記リコンフィギャラブル関数情報から関数を含むプログラム要素を、リコンフィギャラブル論理ブロック構成にハードウェア化コンパイルして実行するリコンフィギャラブルプロセッサと、
上記リコンフィギャラブルプロセッサによりそのハードウェア構成を上記リコンフィギャラブル関数情報に対応したリコンフィギャラブル論理ブロックに組み替えることができるメモリと、
を含むことを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械等の制御に用いられるプログラマブルコントローラ（ＰＬＣ）の制御動作を高速化する方法、プログラマブルコントローラへのプログラム転送方法、ならびにプログラマブルコントローラに関するものである。
【背景技術】
【０００２】
生産工場等に設置されるファクトリーオートメーション（ＦＡ）の制御装置として、プログラマブルコントローラが用いられている。このプログラマブルコントローラは、複数のユニットから構成される。この複数のユニットとしては、電源ユニット、ＣＰＵユニット、入力ユニット、出力ユニット、通信ユニット、その他の高機能ユニット、等がある。ＣＰＵユニットは、内部にＣＰＵ、Ｉ／Ｏメモリ、プログラムメモリ等を有し、このＣＰＵは、入力ユニットで入力した信号をＩ／Ｏメモリに取り込むＩＮリフレッシュ処理を行い、プログラムメモリ内のシーケンス制御用のプログラムに基づき演算実行し、その演算実行結果をＩ／Ｏメモリに書き込んで出力ユニットに送り出すＯＵＴリフレッシュ処理を行い、その後、通信ユニットを介して通信ネットワーク上の他のＰＬＣとデータ送受信を行ったり、ＣＰＵユニットに備えられた通信ポートを介して外部のパーソナルコンピュータ等とデータ送受信などを行ったりする周辺処理を行う一連の処理を繰り返す。入力ユニットにはセンサ等が、出力ユニットにはアクチュエータ等が接続される。センサ等は工場内の機械や設備等の状態をセンシングし、その情報を入力ユニットに入力し、アクチュエータ等は出力ユニットからの出力に応答して工場内の機械や設備等を駆動する。
【０００３】
シーケンス制御用のプログラムには各種あり、例えばラダー図方式、ステージ方式、ＳＦＣ方式等によるラダープログラムがある。そしてこれらプログラムのうち、例えば、ラダープログラムは、ラダー図を用いて作成されるプログラムであり、たとえば、パーソナルコンピュータを用いて作成される。パーソナルコンピュータにおいて作成されたラダープログラムは、パーソナルコンピュータ内でニ−モニック形式に変換される。ニーモニック形式のプログラムはプログラム命令語がニーモニック言語で記述されたプログラムである。
【０００４】
そして、パーソナルコンピュータをプログラマブルコントローラに接続し、ニ−モニック形式のプログラムをパーソナルコンピュータからプログラマブルコントローラに送ると、そのプログラムがプログラマブルコントローラ内でマシンコードに変換され、プログラマブルコントローラ内のプログラムメモリに記憶される。これにより、プログラマブルコントローラは、プログラムメモリ内に記憶されているマシンコードに変換されたプログラムに基づいて制御対象を制御することが可能になる。
【０００５】
以上のプログラマブルコントローラにおいては、その動作制御の高速化への要求が高まっているが、既存のプログラマブルコントローラでは内蔵ＣＰＵの処理能力に依存しているために、このＣＰＵの処理能力が低い場合では、プログラマブルコントローラの高速化には限界があった。
【０００６】
特に、ラダー図形式からニーモニック形式へのプログラムの変換のためのアルゴリズムは必ずしも体系化されておらず、この変換は最適化されていないと、変換速度が遅くなり、プログラマブルコントローラの高速化を図りにくい。
【０００７】
そこで、本出願人は、リコンフィギャラブル（再構成可能）プロセッサを用いてプログラマブルコントローラの高速化に関して鋭意研究した。リコンフィギャラブルプロセッサは、プログラムをリコンフィギャラブル論理ブロック上にハードウェアにて構成することができるようにするものである。なお、リコンフィギャラブルプロセッサについては例えば、特許文献１等を参照することができる。
【０００８】
上記リコンフィギャラブル論理ブロックは、アレイ状に配置されたＡＬＵ（算術演算ユニット）などの演算回路と、演算回路間を接続するスイッチとから構成されたものであり、演算回路の機能と、演算回路間の配線とをコンフィグレーションレジスタと呼ばれるレジスタの内容により再構成することが可能になっている。リコンフィギャラブルプロセッサは、このようなリコンフィギャラブル論理ブロックの構成を再構成することができる。そして、本出願人は、リコンフィギャラブルプロセッサにて、ニーモニック形式のプログラムをリコンフィギャラブル論理ブロック上に再構成することについて検討した。
【０００９】
しかしながら、リコンフィギャラブル論理ブロックは、ソフトウェアで論理回路の構成を書き換えることができる機能を備えていても、その論理回路の再構成データを格納するメモリアレイが必要なために、リコンフィギャラブル論理ブロックサイズが大型化してしまう上に、論理回路の書き換えに、メモリからバスラインを介して多量の回路構成情報をシリアル伝送することが必要であり、論理回路の再構成に長時間を要する。
【特許文献１】特開２００４−３３４４２９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
そこで、本発明においては、リコンフィギャラブルプロセッサを用いてプログラマブルコントローラの高速化を図るうえで、シーケンス制御のプログラムを構成するプログラム要素の中でも、関数演算がプログラマブルコントローラの高速化を阻む１つの要因であることに着目して、リコンフィギャラブル論理ブロック上へのハードウェア再構成作業量を減らすことで、リコンフィギャラブル論理ブロックサイズの小型化を可能とし、論理回路の再構成に必要とする時間の短縮化を図ることで、プログラマブルコントローラの高速化を達成しようとするものである。
【課題を解決するための手段】
【００１１】
本発明第１によるプログラマブルコントローラの高速化方法は、シーケンス制御のプログラムを実行するに際して、関数を含まないプログラム要素については、実行ファイル化コンパイルし、関数を含むプログラム要素については、リコンフィギャラブルプロセッサにより、リコンフィギャラブル論理ブロック構成にハードウェア化コンパイルすることを特徴とするものである。
【００１２】
上記関数には、例えばＰＩＤ関数、三角関数 、指数関数等の各種算術演算関数があり、また、ラダープログラムの実行に際して使用頻度の高い演算処理を、ファンクションまたはファンクションブロックとして関数化したものを含むことができ、ユーザ定義することができる。また、ラダープログラムの一部を関数と定義することもできる。
【００１３】
本発明第２によるプログラマブルコントローラの高速化方法は、シーケンス制御のプログラムをラダー図形式からニーモニック形式にコンパイルする第１ステップと、上記プログラム内の関数情報を解析する第２ステップと、上記関数情報から関数を含むプログラム要素については、リコンフィギャラブルプロセッサによりリコンフィギャラブル論理ブロック構成にハードウェア化コンパイルし、関数を含まないプログラム要素についてはＣＰＵの実行が可能な実行ファイル化コンパイルする第３ステップと、プログラムの実行に際しては、関数を含むプログラム要素についてはリコンフィギャラブルプロセッサにより上記リコンフィギャラブル論理ブロック構成にハードウェア化して実行し、関数を含まないプログラム要素については、実行ファイル化して実行する第４ステップと、を含むことを特徴とするものである。
【００１４】
本発明第１、第２では、プログラム実行に時間がかかる関数を含むプログラム要素については、リコンフィギャラブルプロセッサによりリコンフィギャラブル論理ブロック構成にハードウェア化コンパイルして実行するようにしたので、その分、プログラマブルコントローラの動作速度を高速化することができる。この際、プログラムのすべてをリコンフィギャラブルプロセッサによるリコンフィギャラブル論理ブロック上にハードウェア化するのではなく、関数を含むプログラム要素のみをハードウェア化して実行するので、関数演算をソフトウエアで行う場合と比較してより処理が高速化し、また、リコンフィギャラブル論理ブロック上で論理回路の再構成量が少なく済むから、全体として、プログラマブルコントローラの高速化が可能となる。
【００１５】
本発明第３によるプログラマブルコントローラへのプログラム転送方法は、転送対象であるプログラムをラダー図形式からニーモニック形式にコンパイルすると共に、このコンパイルしたプログラムにおける関数を解析し、その解析情報を含めたプログラムをプログラマブルコントローラに転送する、ことを特徴とするものである。
【００１６】
本発明第３では、パーソナルコンピュータ等のプログラミングツールにてラダー図形式でプログラムを作成し、その作成したプログラムをニーモニック形式にコンパイルした後で、そのコンパイルしたプログラム内の各プログラム要素中から関数を解析し、その解析情報を含めてプログラマブルコントローラにプログラムを転送するので、プログラマブルコントローラ側では、ＣＰＵがプログラムを実行中に関数を含むプログラム要素については、リコンフィギャラブルプロセッサにより再構成したリコンフィギャラブル論理ブロックを用いて実行することができるので、プログラム処理の高速化、すなわち、プログラマブルコントローラの制御動作の高速化を図ることができる。
【００１７】
本発明第４によるプログラマブルコントローラは、シーケンス制御するプログラムを含むリコンフィギャラブル関数情報が格納されているメモリと、プログラムを実行するに際して、上記リコンフィギャラブル関数情報から関数を含むプログラム要素を、リコンフィギャラブル論理ブロック構成にハードウェア化コンパイルして実行するリコンフィギャラブルプロセッサと、上記リコンフィギャラブルプロセッサによりハードウェア構成をそれに対応したリコンフィギャラブル論理ブロックに組み替えることができるメモリと、を含むことを特徴とするものである。
【００１８】
本発明第４では、上記したように、プログラム実行を高速で行うことができ、高速化されたプログラマブルコントローラを提供することができる。
【発明の効果】
【００１９】
本発明によれば、プログラマブルコントローラの高速化を図ることができる。また本発明では、リコンフィギャラブルプロセッサによるリコンフィギャラブル論理ブロックへのハードウェア化作業量を減らすことができる。
【発明を実施するための最良の形態】
【００２０】
以下、添付した図面を参照して、本発明の実施の形態に係るプログラマブルコントローラの高速化方法、その他を説明すると、まず、図１を参照して、１はプログラミングツールとしてシーケンス制御をするためのプログラムを作成するパーソナルコンピュータ（ＰＣ）、２はパーソナルコンピュータ１からシーケンス制御用プログラムが転送されるプログラマブルコントローラ（ＰＬＣ）を示す。
【００２１】
パーソナルコンピュータ１を用いて、図２で示すように、ステップｎ１でユーザにより機械・装置のシーケンス制御用のプログラムがラダー図形式で作成される。このラダー図形式のプログラム（ラダープログラム）の作成はすでに多くの特許文献にも開示された技術であり、その説明は略する。ステップｎ２で、ラダー図形式で記述されたプログラムがニーモニック形式のプログラムにコンパイルされる。ニーモニックは、周知されるようにコンピュータがプログラムを実行させるためのマシーン語を、プログラミングしやすくするための簡略記憶記号である、英単語や記号の組み合わせに置き換えたものである。次いで、ステップｎ３では、パーソナルコンピュータではニーモニック形式に一次コンパイルしたプログラムについて関数が解析される。この関数は、例えばＰＩＤ関数、三角関数、指数関数、対数関数等の各種算術演算関数、累積関数、分布関数、ハッシュ関数、論理関数、伝達関数、プログラム関数、１６進、１０進変換関数、ファジィでのメンバーシップ関数、通信関数、等である。ステップｎ４で、上記プログラムを構成する複数のプログラム要素のうち、関数を含むプログラム要素と、関数を含まないプログラム要素とに関する情報がリコンフィギャラブル関数情報として生成される。生成されたリコンフィギャラブル関数情報は、ステップｎ５で、プログラムと共にプログラマブルコントローラ２に転送され、プログラマブルコントローラ２内のメモリに格納される。
【００２２】
こうしてパーソナルコンピュータ１からプログラムと共にリコンフィギャラブル関数情報が転送されてきたプログラマブルコントローラ２は、図３で示すように、概略であるが、ＣＰＵ４、メモリ５、通信インターフェース６、入出力インターフェース７、リコンフィギャラブルプロセッサ８、リコンフィギャラブル論理ブロック構成用のメモリ９を備える。このメモリ９としては、ＳＲＡＭ、フラッシュメモリ、ＥＥＰＲＯＭ等の書き換え可能なメモリを適用することができる。
【００２３】
メモリ５はＲＯＭ、ＲＡＭ、等であり、システムプログラム、シーケンス制御プログラム、リフレッシュ用のＩ／Ｏデータを含む各種データ格納等の各種メモリである。通信インターフェース６はパーソナルコンピュータ１とプログラム転送等の通信のためのもので、その通信形態は何でもよい。入出力インターフェース７には図示略のセンサ等の入力機器、アクチュエータ等の出力機器が接続される。リコンフィギャラブルプロセッサ８とメモリ９は、ワンチップ化したリコンフィギャラブルなＬＳＩ（大規模集積回路装置）で構成されたものである。こうしたＬＳＩは例えば特開２００６−１９６７７４、特開２００７−１９３３８５、特開２００６−０７２８４２等にその詳細が開示されている。リコンフィギャラブルプロセッサ８は、リコンフィギャラブル関数情報を読み込んでメモリ９のハードウェア構成を、例えばそれに対応したリコンフィギャラブル論理ブロック１０に組み替えることが可能である。この場合、関数を含むプログラム要素は、プログラムの実行過程で複数存在するが、リコンフィギャラブルプロセッサ８はそのプログラム要素ごとに１クロックでメモリ９のハードウェア構成をそれに対応したリコンフィギャラブル論理ブロック１０に組み替えることができるようになっている。このハードウェア構成の組み換え（機能変更）が可能なリコンフィギャラブルプロセッサには、ＤＡＰＤＮＡ（ＩＰフレックス（株）の商品名）があり、その動作クロックは１クロックで構成変更が可能である。
【００２４】
すなわち、図４で示すように、ＣＰＵ４がメモリ５に格納するシーケンス制御プログラムを実行する場合、ＣＰＵ４は、関数を含まないプログラム要素を実行し、関数を含むプログラム要素については、リコンフィギャラブルプロセッサ８に関数を含むプログラム要素についての実行命令を発し、リコンフィギャラブルプロセッサ８はその実行命令に応答して、メモリ９をその関数に対応したリコンフィギャラブル論理ブロック１０に組み替え、ＣＰＵ４はそのハードウェア構成となった関数を含むプログラム要素を実行する。
【００２５】
以上説明したように、本実施形態では、プログラム実行に時間がかかる関数を含むプログラム要素については、リコンフィギャラブルプロセッサ８によりその関数をハードウェア構成化して実行するようにしたので、従来その関数の実行に時間を要していたプログラマブルコントローラ２の動作速度を高速化することができる。
【図面の簡単な説明】
【００２６】
【図１】図１はパーソナルコンピュータとプログラマブルコントローラとを示す。
【図２】図２は本発明の実施の形態にかかる方法に関わるステップを示す。
【図３】図３は本発明の実施の形態にかかる方法に関わるプログラマブルコントローラの内部ブロック構成を示す図である。
【図４】図４はプログラマブルコントローラのＣＰＵにおけるプログラム実行過程を示す図である。
【符号の説明】
【００２７】
１  パーソナルコンピュータ
２  プログラマブルコントローラ
４    ＣＰＵ
５,９ メモリ
６    通信インターフェース
７    入出力インターフェース
８    リコンフィギャラブルプロセッサ
１０  リコンフィギャラブル論理ブロック
【図１】
2009251782.tif 000003
【図２】
2009251782.tif 000004
【図３】
2009251782.tif 000005
【図４】
2009251782.tif 000006