(57)【特許請求の範囲】
【請求項１】
電源切断時にもデータを保持するバックアップ機能を有する低速演算データメモリと、
同様のバックアップ機能がない高速演算データメモリと、
前記各演算データメモリに対してデータのアクセスをして演算処理を実行する演算部と、
前記演算部からのデータ書込み要求命令に従って前記低速演算データメモリと前記高速演算データメモリに対するデータの読み書きを制御するとともに、前記高速演算データメモリへのデータ書き込みをし前記低速演算データメモリへのデータ書き込みをしないデータの対象を記憶する記憶部を持つ制御手段と、
を備えたコントローラであって、
前記演算部は、
演算処理時のデータ書き込みは、前記制御手段に対して演算処理時のデータ書込み要求命令をすることにより前記制御手段を介して同一内容のデータを前記各演算データメモリに対して行い、演算処理時のデータの読み出しは、前記制御手段を介して前記高速演算データメモリから行うものであり、
前記制御手段は、
メモリへのデータ書き込み制御において、演算部からのデータ書込み要求命令を受けて記憶部の内容を参照し、その書込み対象のデータについて低速演算データメモリへデータの書き込みをしてバックアップ保存する必要があるか否かを判断し、必要な場合には、前記低速演算データメモリと前記高速演算データメモリとの両方に対して同一内容のデータの書き込みを行い、不要な場合には、前記高速演算データメモリに対してデータの書き込みを行い、前記低速演算データメモリに対してデータの書き込みを行わないようにするものであり、
電源切断後に電源が再投入された場合に、前記低速演算データメモリにバックアップ保存されたデータを読み出し、その読み出したデータを対応する高速演算データメモリの所定領域に書き込み、前記演算部が前記制御手段を介して前記高速演算データメモリからバックアップしたデータを読み出せるようにした、
ことを特徴とするコントローラ。
【請求項２】
前記演算部と制御手段はＡＳＩＣにて構成されており、
前記高速演算データメモリとして、ＡＳＩＣ外部の高速演算データメモリとＡＳＩＣ内部の高速内部メモリとを設け、その高速演算データメモリと高速内部メモリは、前記演算部の演算処理時にデータを読み出されるものであり、
前記制御手段の記憶部は、前記高速内部メモリの使用領域を記憶しており、
前記制御手段は、前記高速演算データメモリへの書き込みの制御において、前記記憶部に記憶した高速内部メモリの使用領域の情報に基づいて、データ書き込み先を高速演算データメモリと高速内部メモリの何れかの領域にデータを格納し、高速演算データメモリと高速内部メモリとに対して重複して書き込むことをしないようにしたことを特徴とする請求項１に記載のコントローラ。
【請求項３】
前記制御手段は、
前記演算部からのデータ書込み要求命令に従い、前記記憶部の記憶内容から各演算データメモリのうちのアクセス先を決定するアクセスコントローラと、
前記低速演算データメモリ並びに前記高速演算データメモリに対してそれぞれ接続され、データの読み書きの動作を行う複数のメモリタイミングコントローラと、を備え、
前記各メモリタイミングコントローラは、それぞれ独立して動作可能にし、前記アクセスコントローラは、決定したアクセス先の演算データメモリに接続された前記メモリタイミングコントローラに対して動作命令を送り、その動作命令に従って前記各メモリタイミングコントローラが動作するようにしたことを特徴とする請求項１または２に記載のコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、プログラマブルコントローラ（ＰＬＣ）等のコントローラに関するものである。
【０００２】
【従来の技術】
ＦＡ（ファクトリオートメーション）で用いられるプログラマブルコントローラ（ＰＬＣ）は、入力機器（スイッチやセンサなど）のＯＮ／ＯＦＦ情報を入力し、ラダー言語などで書かれたシーケンスプログラム（ユーザプログラム）に沿って論理演算を実行して、その演算結果により、出力機器（リレーやバルブ、アクチュエータなど）にＯＮ／ＯＦＦ情報の信号を出力することで制御を行う。
【０００３】
図１は、係るＰＬＣの内部構造を、メモリアクセスに着目して記載した図である。同図に示すように、ＰＬＣ１内は、プログラムメモリ２内のユーザプログラムを読み出した演算部３が、プログラム内容に沿って演算データメモリ（低速メモリ）４から、所定のデータを読み出して演算処理をし、その演算結果を演算データメモリ４の所定エリアに書き戻す処理を行っている。なお、上記プログラムの読み出しやデータの読み書きは、メモリタイミングコントローラ５によって所定のタイミングで行われる。
【０００４】
そして、ＰＬＣ１は、電源を切断してもプログラムや演算データを保持しておき、次の電源投入時に利用する必要から、バックアップ用のバッテリー６を備え、そのバッテリー６からプログラムメモリ２や演算データメモリ４に対して電力を供給し、データ保持をする。
【０００５】
ところで、演算を実行するプログラムが、図２（ａ）に示すように、「接点ＡがＯＮの時に、Ｂ情報を読み出して（Ｃ）に書き込む処理を実行する。」ものの場合、実際の演算データメモリ４に対する読み書き（アクセス）は、図２（ｂ）に示すようになる。すなわち、
（１）ＬＤ命令での、Ａ情報の読み出し
（２）ＭＯＶ命令での、Ｂ情報の読み出し
（３）ＭＯＶ命令での、Ｃ情報の読み出し
（４）ＭＯＶ命令での、Ｂ情報を（Ｃ）に書き込む際の、マスクデータの読み出し
（５）ＭＯＶ命令での、Ｂ情報とマスクデータを加工して生成した値を（Ｃ）に書き込む
の５つの工程を実行する。なお、マスクデータ（ＭａｓｋＤａｔａ）は、データの書き替えをしないビットを特定するためのデータである。また、（Ｃ）とは、Ｃ情報を書き込むためのメモリ領域（アドレス）である。以下の説明でも（Ｘ）と有る場合には、Ｘ情報を書き込むためのメモリ領域（アドレス）を意味する。
【０００６】
【発明が解決しようとする課題】
演算メモリに対するリードアクセス，ライトアクセスは、使用するメモリのアクセススピードに依存する。仮に、１回の読み出しや書き込みが４サイクルかかるとすると、上記一連の処理を完了するまでに２０サイクル必要となる。
【０００７】
ところで、上記した構成のＰＬＣ１において処理速度を高速化するためには、メモリのアクセススピードを高速化する必要がある。
【０００８】
しかしながら、アクセススピードが高速なメモリは、多くの場合バックアップに対応していないか、仮に対応しているものは価格が高く、実用に供し得ないものとなる。従って、より高速化を行うことが困難であった。
【０００９】
一方、演算データメモリ４に格納していたデータの種類・内容について検証すると、データの中にはバックアップする必要がないものもある。しかし、従来のＰＬＣでは、演算データメモリ４は単一のメモリで構成されているため、例えば、高速なシステムを構築する場合、すべての演算データメモリをコストの高い高速・低消費電力のメモリで構成する必要があり、コスト高になってしまう。
【００１０】
この発明は、メモリ構成を複数化し、制御を行うことで、データバックアップを図りつつ、処理速度を高速化することができるコントローラを提供することを目的とする。また、データ（情報）の内容によって、アクセス先のメモリを切り替えることで、最適なメモリ構成を実現することを目的としている。
【００１１】
【課題を解決するための手段】
この発明によるコントローラは、電源切断時にもデータを保持するバックアップ機能を有する低速演算データメモリと、同様のバックアップ機能がない高速演算データメモリと、前記各演算データメモリに対してデータのアクセスをして演算処理を実行する演算部と、前記演算部からのデータ書込み要求命令に従って前記低速演算データメモリと前記高速演算データメモリに対するデータの読み書きを制御するとともに、前記高速演算データメモリへのデータ書き込みをし前記低速演算データメモリへのデータ書き込みをしないデータの対象を記憶する記憶部を持つ制御手段と、を備えたコントローラであって、前記演算部は、演算処理時のデータ書き込みは、前記制御手段に対して演算処理時のデータ書込み要求命令をすることにより前記制御手段を介して同一内容のデータを前記各演算データメモリに対して行い、演算処理時のデータの読み出しは、前記制御手段を介して前記高速演算データメモリから行うものであり、前記制御手段は、メモリへのデータ書き込み制御において、演算部からのデータ書込み要求命令を受けて記憶部の内容を参照し、その書込み対象のデータについて低速演算データメモリへデータの書き込みをしてバックアップ保存する必要があるか否かを判断し、必要な場合には、前記低速演算データメモリと前記高速演算データメモリとの両方に対して同一内容のデータの書き込みを行い、不要な場合には、前記高速演算データメモリに対してデータの書き込みを行い、前記低速演算データメモリに対してデータの書き込みを行わないようにするものであり、電源切断後に電源が再投入された場合に、前記低速演算データメモリにバックアップ保存されたデータを読み出し、その読み出したデータを対応する高速演算データメモリの所定領域に書き込み、前記演算部が前記制御手段を介して前記高速演算データメモリからバックアップしたデータを読み出せるように構成した。
【００１２】
この発明によると、低速演算データメモリにデータを格納するので、たとえ電源が切断された場合でも、データが保存される。また、データの格納は、この低速演算データメモリとともに、高速演算データメモリに同一内容のデータを格納し、読み出しの際には高速演算データメモリに格納されたデータを呼び出すので、読み出しにかかる時間が短くなり、全体としてメモリアクセスの処理速度が高速化する。
【００１３】
前記演算部と制御手段はＡＳＩＣにて構成されており、前記高速演算データメモリとして、ＡＳＩＣ外部の高速演算データメモリとＡＳＩＣ内部の高速内部メモリとを設け、その高速演算データメモリと高速内部メモリは、前記演算部の演算処理時にデータを読み出されるものであり、前記制御手段の記憶部は、前記高速内部メモリの使用領域を記憶しており、前記制御手段は、前記高速演算データメモリへの書き込みの制御において、前記記憶部に記憶した高速内部メモリの使用領域の情報に基づいて、データ書き込み先を高速演算データメモリと高速内部メモリの何れかの領域にデータを格納し、高速演算データメモリと高速内部メモリとに対して重複して書き込むことをしないようにすることができる。内部メモリを使用することで、更なる高速化が期待できる。また、このように複数のメモリを持たせることにより、データの内容によって、アクセス先のメモリを切り替えることができ、最適なメモリ構成が実現される。
【００１４】
もちろん、高速演算データメモリは１個でも良く、その場合のメモリの設置個所は、外部に取り付けても良いし、内蔵してもよい。また、高速演算データメモリを複数設ける場合でも、全てを外部メモリにしてももちろん良い。
【００１６】
更に、前記低速演算データメモリと前記高速演算データメモリに対し、前記演算部からの命令に従いデータの読み書きを制御する制御手段を設け、前記制御手段は、前記低速演算データメモリと前記高速演算データメモリに対するデータの書き込みを並列に処理可能とするとよい。もちろん、従来と同様に演算部が各演算データメモリに対してアクセスするようにしても良い。
【００１７】
また、前記制御手段としては、例えば、前記演算部からのデータ書込み要求命令に従い、前記記憶部の記憶内容から各演算データメモリのうちのアクセス先を決定するアクセスコントローラと、
前記低速演算データメモリ並びに前記高速演算データメモリに対してそれぞれ接続され、データの読み書きの動作を行う複数のメモリタイミングコントローラと、を備えて構成することができる。この場合に、前記各メモリタイミングコントローラは、それぞれ独立して動作可能にし、前記アクセスコントローラは、決定したアクセス先の演算データメモリに接続された前記メモリタイミングコントローラに対して動作命令を送り、その動作命令に従って前記各メモリタイミングコントローラが動作するようにする。
【００１８】
メモリタイミングコントローラが独立して動作できるので、高速演算データメモリと低速演算データメモリに対して平行、つまり同時に書き込むことができる。もちろん、高速演算データメモリが複数存在する場合には、各高速演算データメモリにそれぞれ独立して動作可能なメモリタイミングコントローラが接続される。また、アクセスコントローラが決定するアクセス先は、１つの場合もあれば複数の場合もある。
【００１９】
【発明の実施の形態】
図３は、本発明に係るコントローラであるＰＬＣの好適な一実施の形態を示している。同図に示すように、ＡＳＩＣ１０の外部に、ユーザプログラムが格納されたプログラムメモリ１１と、外部メモリとしての高速演算データメモリ１２と、低速演算データメモリ１３とを備え、低速演算データメモリ１３にはバッテリー１４が接続され、ＰＬＣの主電源が切断されたとしても、そのバッテリー１４からの電力供給を受け、格納されたデータを保持する。
【００２０】
ＡＳＩＣ１０内には、プログラムメモリ１１内のユーザプログラムを読み出し、所定の演算処理を実行する演算部１５と、演算部１５で演算処理する際に使用するデータを格納する高速演算データメモリたる高速内蔵メモリ１６を備えている。上記した３つの演算データメモリのメモリアクセススピードは、低速演算データメモリ１３が最も遅く（例えば、５５から７０ｎｓ）、高速内蔵メモリ１６が最も早い（例えば、７から１０ｎｓ）。そして、高速演算データメモリ１２は、その中間（例えば、１５から２５ｎｓ）の速度となっている。また、低速演算データメモリ１３と高速演算データメモリ１２の容量は同じ（たとえば１から４Ｍｂｉｔ）にし、それに比較し高速内蔵メモリ１６の容量は小さく（たとえば８から２５６ｋｂｉｔ）している。
【００２１】
また、ＡＳＩＣ１０内には、上記した各メモリ１１〜１３，１６に対して実際に所定のタイミングでデータの読み書きを行うためのメモリタイミングコントローラ１８と、３つの演算データメモリ１２，１３，１６に対してデータアクセスの制御を行うアクセスコントローラ１７も備えている。メモリタイミングコントローラ１８は、各メモリに対応して設けられ、それぞれが独立して動作可能となる。
【００２２】
更に、本形態では、アクセスコントローラ１７は、高速内蔵メモリ１６の使用領域（アドレス）を記憶する設定用レジスタ１７ａと、バックアップ用の書き込みをしないデータ（アドレス）を記憶する書き込み不要情報記憶部１７ｂを備えている。そして、アクセスコントローラ１７は、演算部１５からの要求に従い、３つの演算データメモリ１２，１３，１６のうちのアクセス先を決定し、その決定したアクセス先の演算データメモリに接続されたメモリタイミングコントローラ１８に対して動作命令を送る。メモリタイミングコントローラ１８は、受け取った動作命令に従って、接続された演算データメモリに対してデータの読み書きを行う。
【００２３】
このように、メモリタイミングコントローラ１８が独立して動作可能としているため、同一タイミングで動作することもでき、よって、例えばアクセスコントローラ１７が決定したアクセス先が複数存在する場合には、その複数のメモリタイミングコントローラ１８が同時に動作し、複数の演算データメモリに対して同時にデータを書き込むことができる。さらに、各演算データメモリ１２，１３，１６は、それぞれ独立した別々のメモリバス（高速対応、低速対応，超高速対応のもの）で接続されている。
【００２４】
なお、各演算データメモリ１２，１３，１６に格納されるデータとしては、例えば、ＰＬＣに直接またはネットワークを介して接続される入力機器からのＯＮ／ＯＦＦ情報や出力機器へのＯＮ／ＯＦＦ情報などがある。
【００２５】
まず、データの書き込みについて説明すると、バックアップ機能のない高速内蔵メモリ１６と高速演算データメモリ１２に対しては重複して書き込むことはなく、何れか一方に格納するようにしている。高速内蔵メモリ１６が使用されるメモリ領域は、設定用レジスタ１７ａによって予め決定されているので、アクセスコントローラ１７は、演算部１５から、あるメモリ領域に対してデータの書き込み要求を受けた場合には、設定用レジスタ１７ａに登録されているか否かを判断し、データの書き込み先（高速内蔵メモリ１６，高速演算データメモリ１３）を決定し、対応するメモリタイミングコントローラ１８を介してメモリにアクセスし、データを書き込む。
【００２６】
また、本形態では、高速演算データメモリ１２と低速演算データメモリ１３のメモリ容量を等しくしているので、高速演算データメモリ１２に格納したデータは、低速演算データメモリ１３に対しても同時に書き込む。これにより、低速演算データメモリ１３と高速演算データメモリ１２の内容の同時性を保つとともに、低消費電流である低速演算データメモリ１３に対してバッテリーバックアップを行うことで、長期のバッテリー１４によるデータ保持を可能とする。
【００２７】
同様に、高速内蔵メモリ１６に格納したデータについても、低速演算データメモリ１３に対して同時に書き込むようにすると、低速演算データメモリ１３と高速内蔵メモリ１６の内容の同時性を保つとともに、低消費電流である低速演算データメモリ１３に対してバッテリーバックアップを行うことで、長期のバッテリー１４によるデータ保持を可能とする。
【００２８】
但し、特に高速内蔵メモリ１６に格納するデータは、長期に保存、つまり、バックアップする必要がないものがある。係るバックアップが不要なデータについては、低速演算データメモリ１３への書き込みをしないようにしている。すなわち、係る書き込みをしないデータは、上記した通り不要情報記憶部１７ｂに格納されている。従って、アクセスコントローラ１７は、演算部１５から、あるメモリ領域に対してデータの書き込み要求を受けた場合に、設定用レジスタ１７ａに登録されているか否かを判断し、高速内蔵メモリ１６に格納するべきデータと判断した場合には、不要情報記憶部１７ｂをアクセスし、バックアップが必要か否かを判断する。そして、必要な場合には、高速内蔵メモリ１６と低速演算データメモリ１３の両方に対して同じにデータの書き込みを行い、不要な場合には高速内蔵メモリ１６のみにデータを書き込む。
【００２９】
なお、本形態では、高速内蔵メモリ１６については、バックアップをするか否かを選択できるようにしたが、本発明は必ずしも係る機能はなくても良く、高速内蔵メモリ１６に格納するデータの全てをバックアップするようにしても良いし、逆に全てをバックアップしないようにしても良い。さらに、係るバックアップしないようにする機能は、高速演算データメモリ１２に書き込むデータに対して設定するようにしてももちろん良い。
【００３０】
さらに、高速演算データメモリ１２には、マスクデータ（ＭａｓｋＤａｔａ）を格納するようにしている。このマスクデータは、あるデータ（ｎビット）のうちで更新（書き替え）をしないビットを特定するものである。具体的には、対応する各ビットの値が「０」の場合には書き替えを許容し、「１」の場合には書き替えしないようになる。つまり、あるＤ情報（４ｂｉｔｓ）についてのマスクデータが、「０１００」で、現在格納されているデータが「００００」とし、このＤ情報について「１１１１」を書き込めという命令があった場合、マスクデータが０の部分のみ更新されて「１０１１」という値が格納される。
【００３１】
一方、通常の演算実行に伴うデータの読み出しは、高速内蔵メモリ１６或いは高速演算データメモリ１２にアクセスし、読み出すことになる。つまり、演算部１５から、あるメモリ領域に格納されたデータの読み出し要求を受けた場合に、設定用レジスタ１７ａをアクセスして該当するデータが格納されているメモリが、高速内蔵メモリ１６と高速演算データメモリ１２の何れであるかを特定し、該当するメモリのメモリタイミングコントローラ１８を介してデータを読み出し、演算部１５に渡す。
【００３２】
なお、電源が切断後、投入された場合には、低速演算データメモリ１３に格納されたデータを読み出し、対応する高速演算データメモリ１２と高速内蔵メモリ１６の所定領域に書き込む。
【００３３】
そして、本形態では、上記したように、演算データを格納するメモリを複数有するが、書き込みは１回の命令に従って複数のメモリに対して同時に書き込み、読み出しは、対応する所定のメモリにアクセスして取得するため、演算部１５からみたメモリマップは、単一のメモリマップとして見える。よって、演算部１５における演算処理は、従来から行われる通常のものを実行できる。
【００３４】
メモリマップの一例を示すと、図４のようになる。この図では、高速内蔵メモリ１６は、０ｘ１０００から０ｘ２０００までが割り当てられており、Ａ情報，Ｂ情報，Ｄ情報は高速内蔵メモリ１６の各領域（Ａ），（Ｂ），（Ｄ）に書き込み、当該領域以外に格納されるＣ情報は、高速演算データメモリ１２の領域（Ｃ）に書き込まれる。また、この例では、バックアップ可能な低速演算データメモリ１３には、Ｄ情報，Ｃ情報が書き込まれる。換言すると、Ａ情報，Ｂ情報はバックアップはされない。
【００３５】
図４に示すメモリマップにおいて、図２（ａ）と同様の命令を実行した場合の各メモリへのアクセス例は、図５に示すようになる。すなわち、
（１）ＬＤ命令での、内蔵高速メモリ１６からのＡ情報の読み出し
（２）ＭＯＶ命令での、内蔵高速メモリ１６からのＢ情報の読み出し、及び高速演算データメモリ１２からＤ情報についてのマスクデータの読み出し
（３）ＭＯＶ命令での、高速演算データメモリ１２からのＣ情報の読み出し
（４）ＭＯＶ命令での、Ｂ情報，Ｃ情報とマスクデータを加工して得られた値を高速演算データメモリ１２の（Ｄ）、及び低速演算データメモリ１３の（Ｄ）に書き込む
以上の様な操作を行うことで、９Ｃｙｃｌｅにて処理が完了することとなる。また、低速演算データメモリ１３には、常にバッテリーで保存すべきデータが残されることとなる。
【００３６】
図６は、高速内蔵メモリ１６にデータを書き込む例を示しており、図５の例と比較すると、ＭＯＶ命令によるデータの格納先が「（Ｃ）」から「（Ｄ）」に変更されている。この場合の各メモリへのアクセス例は、以下の通りである。
（１）ＬＤ命令での、内蔵高速メモリからのＡ情報の読み出し
（２）ＭＯＶ命令での、内蔵高速メモリからのＢ情報の読み出し、及び高速演算データメモリからのＣ情報についてのマスクデータの読み出し
（３）ＭＯＶ命令での、内蔵高速メモリ１６からのＤ情報の読み出し、
（４）ＭＯＶ命令での、Ｂ情報，Ｄ情報とマスクデータを加工して得られた値を内蔵高速メモリ１６の（Ｃ）、及び低速演算データメモリ１３の（Ｃ）に書き込む
以上の様な操作を行うことで、８Ｃｙｃｌｅにて処理が完了することとなる。
【００３７】
さらにまた、バッテリーバックアップが不必要なデータを書き込む場合には、図７のようになり、５Ｃｙｃｌｅにて処理が完了し、より高速な処理が可能となる。
【００３８】
なお、上記した実施の形態では、高速演算データメモリとして、高速演算データメモリ１２と高速内蔵メモリ１６の２つを設けたが、いずれか一方でももちろん良い。逆に３つ以上設けても良い。
【００３９】
【発明の効果】
以上のように、この発明では、演算データを格納するメモリ構成を複数化し、少なくとも１つをバックアップ機能を持たせるとともに、そのバックアップ機能付きの低速演算データメモリと、処理速度の速い高速演算データメモリに対し同一データを書き込み、かつ、読み出しは高速演算データメモリから行うようにしたため、データバックアップを図りつつ、処理速度を高速化することができる。
【図面の簡単な説明】
【図１】従来例を示す図である。
【図２】（ａ）は、演算実行するプログラム例を示す図である。
（ｂ）は、そのプログラムを実行した場合のメモリへのアクセス例を示す図である。
【図３】本発明に係るコントローラの好適な一実施の形態の一例を示す図である。
【図４】メモリマップの一例を示す図である。
【図５】（ａ）は、演算実行するプログラムの一例を示す図である。
（ｂ）は、そのプログラムを実行した場合のメモリへのアクセス例を示す図である。
【図６】（ａ）は、演算実行する他のプログラムの一例を示す図である。
（ｂ）は、そのプログラムを実行した場合のメモリへのアクセス例を示す図である。
【図７】（ａ）は、演算実行する他のプログラムの一例を示す図である。
（ｂ）は、そのプログラムを実行した場合のメモリへのアクセス例を示す図である。
【符号の説明】
１０  ＡＳＩＣ
１１  プログラムメモリ
１２  高速演算データメモリ
１３  低速演算データメモリ
１４  バッテリー
１５  演算部
１６  高速内蔵メモリ
１７  アクセスコントローラ
１７ａ  設定用レジスタ
１７ｂ  不要情報記憶部
１８  メモリタイミングコントローラ
【図１】
0003827068.tif 000002
【図２】
0003827068.tif 000003
【図３】
0003827068.tif 000004
【図４】
0003827068.tif 000005
【図５】
0003827068.tif 000006
【図６】
0003827068.tif 000007
【図７】
0003827068.tif 000008