(57)【要約】【課題】全体としての演算処理時間を延ばすことなく圧縮されたプログラムを演算処理することができるようにすること。【解決手段】圧縮された複数のプログラムを展開する展開手段３と、展開手段３で展開された複数のプログラムを順次実行するＣＰＵ１とを備え、展開手段３は、ＣＰＵ１でのプログラム実行に並行して、次に実行するプログラムを展開する。【選択図】        図１
2006343845.tif 000002
【特許請求の範囲】
【請求項１】
圧縮された複数のプログラムを展開する展開手段と、
前記展開手段で展開された複数のプログラムを順次実行するＣＰＵとを備え、
前記展開手段は、前記ＣＰＵでのプログラム実行に並行して、次に実行するプログラムを展開するようにしたことを特徴とするプログラマブルコントローラ。
【請求項２】
前記展開手段によって展開されたプログラムが記憶されるメモリを更に備え、
前記展開手段は、前記メモリへのプログラムの展開が完了する毎に展開完了をＣＰＵに通知し、
前記ＣＰＵは、展開完了の通知を受けると前記メモリに記憶されているプログラムを実行すると共に、プログラムの実行が完了すると実行完了を前記展開手段に通知し、
前記展開手段は、最初のプログラムに続く２番目のプログラムについては前記実行完了の受信に関係なく最初のプログラムに続いて連続してプログラムを前記メモリに展開し、その後のプログラムはＣＰＵからの実行完了を受信した後に前記メモリへの展開処理を実行することを特徴とする請求項１に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮されたプログラムを展開して実行する機能を有するプログラマブルコントローラに関するものである。
【背景技術】
【０００２】
プログラマブルコントローラ（以下、ＰＬＣともいう）は、演算処理装置（ＣＰＵ）、メモリ、通信手段などを備え、プログラミングツール等により通信手段を通してプログラムをメモリに予め記憶させておき、演算実行時にはＣＰＵがプログラムをメモリから読み出しながら演算処理する。ＰＬＣとは元来、ハードウェアのリレー回路をソフトウェアプログラム化して実行するものであって、例えばセンサスイッチの入力に対する停止信号出力のように安全装置のような使用をされることもあり、ハードウェアリレー回路に近づけるような高速なプログラム処理が要求される。
【０００３】
またＰＬＣは、様々な機器の制御、複雑な制御に使用されるようになっており、さらにファンクションブロックダイヤグラム等の視覚的なプログラミングを行うツールによってプログラムが自動的に変換・生成されることもあることから、ＰＬＣの演算処理するプログラムは肥大化してきている。ただし、このような複雑で大容量のプログラムは、機能ごとに幾つかのプログラムに分割されることが多い。
【０００４】
このように、ＰＬＣにおいては、大容量のプログラムを、高速にプログラム処理することが求められているが、その反面、メモリ容量の増大による製造コスト高は避けなければならない。そこで、大容量のプログラムを圧縮してＰＬＣに搭載することが考えられるが、ＣＰＵが直接アクセスするメモリに、プログラムを圧縮状態で記憶すると、展開処理に要する時間を考慮しなくてはならず、ＣＰＵのプログラム処理速度を向上させることはできない。
【０００５】
そこで、特許文献１においては、マイクロコンピュータにおいて、ＣＰＵからプログラムのロード命令が発行されると、ＲＯＭから圧縮された実行プログラムが必要量だけ加工部へ送られ、加工部にて伸張、加工されて実行プログラムとなってＲＡＭへ格納され、ＣＰＵはＲＡＭへ格納されたプログラムに従って処理を行い、実行中のプログラムの続きがまだＲＡＭへ格納されていない処理へ続く場合には、ＣＰＵは再びＲＯＭに格納されている圧縮された実行プログラムをＲＡＭへロードする命令をＲＯＭと加工部へ発行するようにしている。
【０００６】
【特許文献１】特開平１０−１３３８８０号公報（第３−４頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に示された従来の技術では、ＣＰＵはプログラムの展開済み部分の演算処理が完了した後、加工部へプログラムを展開する命令を発行し、加工部によるプログラムの展開完了を待ってから演算処理を再開することとなる。このため、特許文献１では、本来のプログラム演算処理時間以外に、プログラムを展開している間の待ち時間が掛かり、全体としてのプログラム実行にかかる時間が長くなるという問題点があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、全体としての演算処理時間を延ばすことなく圧縮されたプログラムを演算処理することができるプログラマブルコントローラを得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明のプログラマブルコントローラは、圧縮された複数のプログラムを展開する展開手段と、前記展開手段で展開された複数のプログラムを順次実行するＣＰＵとを備え、前記展開手段は、前記ＣＰＵでのプログラム実行に並行して、次に実行するプログラムを展開するようにしたことを特徴とする。
【発明の効果】
【００１０】
この発明によれば、展開手段がプログラムを展開する処理とＣＰＵがプログラムを実行する処理とが並列して処理されるので、ＣＰＵ側では展開による待ち時間がなくなり、これにより全体としてのプログラム演算処理時間を短くすることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明にかかるプログラマブルコントローラの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
図１は、この発明の実施の形態に係るプログラマブルコントローラ（ＰＬＣ）を示すものである。ＰＬＣは、プログラムを演算処理するＣＰＵ１と、プログラム，データなどの圧縮処理を実行する圧縮手段２と、プログラム，データなどの展開処理を実行する展開手段３と、プログラミングツール（図示せず）等との通信を行うための通信手段４と、プログラムを記憶するメモリ（一次メモリ５および二次メモリ６）を備えている。
【００１３】
プログラムやデータを記憶するメモリは、一次メモリ５と二次メモリ６によって構成されている。二次メモリ６は拡張や交換の可能な外部メモリを含んでいてよい。プログラミングツール等から通信手段４を介して受信したプログラムは、二次メモリ６に記憶される。一次メモリ５にはＣＰＵ１によって演算処理可能なプログラムが記憶される。
【００１４】
展開手段３および圧縮手段２は、ＣＰＵ１と独立して動作できることを特徴としている。これにより、ＣＰＵ１の演算処理時間に影響を与えることなく、同時並行的にプログラムの展開および圧縮を実行でき、かつＣＰＵ１を介することなくメモリに記憶されたプログラムを読み出し、またプログラムをメモリへ書き込むことができる。
【００１５】
プログラミングツール等からＰＬＣに送信されるプログラムやデータには、データの名前がつけられており、名前によってデータの種類を区別できる。よって、プログラムやユーザが作成したテキスト情報等のデータサイズが大きくなると予想されるデータについては、予めＰＬＣにそのデータの種類が登録され、ＰＬＣがそのデータの種類によって、あまりサイズの大きくならないデータと区別可能である。このときのデータの種類は、ユーザがプログラム作成時に任意に設定するパラメータ等で登録できるものとし、例えば、プログラムとともに二次メモリ６に書き込まれる。
【００１６】
通信手段４はプログラミングツールやその他の装置とプログラムやデータを送受信するとき、相手側装置が展開手段３または圧縮手段２と等価な展開または圧縮の機能を有しているか識別する。これによって、通信の相手側の装置が展開機能を有している場合には、圧縮したままのプログラムやデータを送信し、通信の相手側の装置が圧縮機能をを有している場合には、圧縮したままのプログラムやデータを送信するよう相手側の装置に要求する。
【００１７】
尚、メモリ（一次メモリ５および二次メモリ６）には複数のプログラムやデータを記憶することが可能である。プログラムが複数の場合、それらの実行順序はパラメータに設定される。パラメータとは、ＰＬＣの動作に必要な設定情報であり、プログラミングツール等によってプログラムと共に送信され、他のプログラムやデータと同様にＰＬＣのメモリ（一次メモリ５および／または二次メモリ６）に記憶される。
【００１８】
このように構成されたＰＬＣにおいて、まず、ＰＬＣがプログラミングツール等とプログラムやデータを送受信するときの動作を説明する。
【００１９】
ＰＬＣは、プログラミングツールやその他の機器からのデータを通信手段４を介して受信すると、パラメータによりデータの名前を識別することによりプログラムや圧縮するべき種類のデータであるかどうかを判定する。プログラムまたは圧縮すべきデータならば圧縮手段２により圧縮してから二次メモリ６に記憶する。圧縮すべき種類でないデータは、そのまま二次メモリ６に記憶する。また、圧縮手段２と等価なデータ圧縮機能を有するプログラミングツールやその他の機器により、既に圧縮されているプログラムやデータを受信した場合は、そのまま二次メモリ６に記憶する。
【００２０】
一方、ＰＬＣからプログラミングツールやその他の機器へプログラムまたはデータを送信するときは、圧縮して記憶されたプログラムやデータは展開手段３により展開され、圧縮前の状態に戻してから送信される。なお、送信する相手のプログラミングツールその他の機器が展開手段３と等価な圧縮データの展開機能を有する場合は、圧縮したままのデータを送信する。
【００２１】
つぎに、圧縮されて二次メモリ６に記憶されたプログラムを展開して実行するときの動作を説明する。この場合、一次メモリ５は、２つのプログラムを記憶する容量を備えているものとして説明する。
【００２２】
展開手段３は、二次メモリ６に記憶されたパラメータを参照してプログラムの実行順序を確認し、圧縮されて二次メモリ６に記憶された複数のプログラムのうち、最初に実行するプログラム（第１のプログラム）を読み出して展開して一次メモリ５に記憶する。展開が完了すると、展開手段３は、第１のプログラムが展開完了した旨を示す展開完了通知をＣＰＵ１に送信するとともに、２番目のプログラム（第２のプログラム）をＣＰＵ１からの実行完了通知の受信に関係なく最初のプログラム（第１のプログラム）に続いて連続して展開処理して一次メモリ５に記憶する。２番目のプログラムの展開処理が終了すると、展開手段３は、第２のプログラムが展開完了した旨を示す展開完了通知をＣＰＵ１に送信する。
【００２３】
ＣＰＵ１は、展開完了通知を受信すると、一次メモリ５に展開された第１のプログラムの演算処理を実行する。ＣＰＵ１は、第１のプログラムの演算処理の実行が完了すると、第１のプログラムの実行が完了した旨を示す実行完了通知を展開手段３に送信する。さらに、ＣＰＵ１は、展開手段３から第２のプログラムが展開完了した旨を示す展開完了通知が送られてきている場合は、一次メモリ５に展開された第２のプログラムの演算処理を続いて実行する。
【００２４】
展開手段３は、第１のプログラムの実行完了通知を受信すると、二次メモリ６に記憶された次のプログラム（第３のプログラム）を展開して、一次メモリ５上の第１のプログラムに上書きする。展開が完了すると、展開手段３は、第３のプログラムの展開が完了した旨を示す展開完了通知をＣＰＵ１に送信する。
【００２５】
ＣＰＵ１は、第２のプログラムの実行が完了すると、第２のプログラムの実行が完了した旨を示す実行完了通知を展開手段３に送信する。展開手段３は、第２のプログラムの実行完了通知を受けると、次に実行するプログラム（第４のプログラム）を展開して、一次メモリ５上の第２のプログラムに上書きし、さらに第４のプログラムの展開が完了した旨を示す展開完了通知をＣＰＵ１に通知する。
【００２６】
ＣＰＵ１は、第２のプログラムの実行完了通知した後、展開手段３から展開完了の通知を受けると、第３のプログラムの演算処理を実行し、完了したらその旨を示す実行完了通知を展開手段３に通知する。続いて、第４のプログラムについての展開完了の通知を受信している場合は、第４のプログラムについて演算処理を実行する。以降、この手順を繰り返すことにより、限られた一次メモリ５の容量の中で複数のプログラムを入れ替えながら順次演算処理を実行する。
【００２７】
なお、一般に、ＰＬＣでは、一連のプログラムを最後まで実行すると、また最初から同じ一連のプログラムを繰り返し実行することが多い。このような場合は、ＣＰＵ１が最後のプログラムの実行中に、展開手段３が最初の第１のプログラムを展開するようにする。このような場合、２巡目以降においては、展開手段３は、２番目のプログラム（第２のプログラム）を展開する際、ＣＰＵ１から最後のプログラムの実行完了通知した後、展開処理を実行する。
【００２８】
このように、本実施の形態によれば、展開手段３は、ＣＰＵ１でのプログラム実行に並行して、次に実行するプログラムを展開するようにしたので、ＣＰＵ１側では展開による待ち時間がなくなり、これにより全体としてのプログラム演算処理時間を短くすることができ、高速のプログラム処理が可能となる。
【００２９】
なお、ＰＬＣが使用される分野では、ユーザが、プログラムを実行させてから調整のためプログラムの一部を変更することが多いが、本ＰＬＣは、一連のプログラムの実行中にその一部を変更する場合は、二次メモリ６に記憶されているプログラムのみを書き換えればよい。従って、プログラムが書き換えられた後、該プログラムを展開手段３が展開して一次メモリ５に記憶することによって、ＣＰＵ３が実行する一次メモリ５上のプログラムは自動的に、変更後のプログラムに置き換えられる。
【産業上の利用可能性】
【００３０】
以上のように、本発明にかかるプログラマブルコントローラは、圧縮されたプログラムを展開して実行する機能を有するプログラマブルコントローラとして有用である。
【図面の簡単な説明】
【００３１】
【図１】本発明にかかるプログラマブルコントローラの一例を示す機能ブロック図である。
【図２】プログラム実行の際のＣＰＵと展開手段との動作タイミングを説明するためのシーケンス図である。
【符号の説明】
【００３２】
１  ＣＰＵ
２  圧縮手段
３  展開手段
４  通信手段
５  一次メモリ
６  二次メモリ
【図１】
2006343845.tif 000003
【図２】
2006343845.tif 000004