(57)【特許請求の範囲】
【請求項１】
夫々のデバイス種別に対応して複数のデータから成るデータ配列が配置され、同じデバイス種別のデータ配列がアドレスが連続していない複数の記憶領域に分断して配置されるデバイス記憶部と、
前記夫々の分断されたデータ配列が配置される夫々記憶領域について、該データ配列のデバイス種別と、該データ配列の分断される前のデータ配列における先頭からのオフセットと、記憶領域の先頭の絶対アドレスと、記憶領域の領域サイズと、を記述するアドレス変換テーブルと、
デバイス種別と該デバイス種別の分断される前のデータ配列の先頭を基準とした相対アドレスとを指定するデータアクセス要求を外部装置から受信したとき、該データアクセス要求が指定するデバイス種別および相対アドレスに対応する前記デバイス記憶部の絶対アドレスを前記アドレス変換テーブルに基づいて導出するアドレス変換部と、
前記受信したデータアクセス要求に対応して前記デバイス記憶部の前記導出した絶対アドレスにアクセスするデバイス記憶部アクセス部と、
を備えることを特徴とする制御装置。
【請求項２】
前記データは、Ｃ言語で記述されたソースコードを元にＣ言語コンパイラによって生成された制御プログラムを制御部が実行した実行結果であって、
前記制御部は、前記制御プログラムの仕様に基づいて前記夫々のデータ配列を配置する記憶領域を前記デバイス記憶部に割り当てる、
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
複数の夫々異なるアドレス変換テーブルを保持するアドレス変換テーブル記憶部と、
前記複数のアドレス変換テーブルから１つのアドレス変換テーブルを指定するアドレス変換テーブル指定部と、
をさらに備え、
前記アドレス変換部は、
前記アドレス変換テーブル指定部が指定するアドレス変換テーブルに基づいて前記データアクセス要求に指定される情報に対応する絶対アドレスを導出する、
ことを特徴とする請求項１または２に記載の制御装置。
【請求項４】
受信したデータアクセス要求と前記アドレス変換部が導出した前記受信したデータアクセス要求に対応する絶対アドレスとを対応付けたアクセステーブルをデータアクセス要求毎に記憶するアクセステーブル記憶部と、
前記外部装置から新たにデータアクセス要求を受信したとき、前記アクセステーブル記憶部を検索し、前記新たに受信したデータアクセス要求が対応付けられたアクセステーブルが前記アクセステーブル記憶部に記憶されている場合、該アクセステーブルを取得し、前記新たに受信したデータアクセス要求に対応する絶対アドレスを導出するアクセステーブル検索部と、
をさらに備え、
前記アドレス変換部は、
前記新たに受信したデータアクセス要求が対応付けられたアクセステーブルが前記アクセステーブル記憶部に記憶されていない場合、前記新たに受信したデータアクセス要求が要求するデータが配置されている絶対アドレスを導出するとともに、前記新たに受信したデータアクセス要求と前記導出した絶対アドレスとを対応付けたアクセステーブルを新たに作成して前記アクセステーブル記憶部に追加記憶させ、
前記デバイス記憶部アクセス部は、
前記デバイス記憶部の、前記アドレス変換部または前記アクセステーブル検索部が導出した絶対アドレスにアクセスする、
ことを特徴とする請求項１〜３の何れか１つに記載の制御装置。
【請求項５】
前記アクセステーブル検索部は、
データアクセス要求と該データアクセス要求に対応付けられたアクセステーブルの記憶される前記アクセステーブル記憶部における絶対アドレスとを対応付けるとともに、受信した回数をデータアクセス要求毎に記録するアクセステーブル記憶テーブルを保持し、前記アクセステーブル記憶テーブルを前記記録されている受信した回数が多いデータアクセス要求から検索し、前記新たに受信したデータアクセス要求に対応付けられたアクセステーブルが記憶されている絶対アドレスを導出する、
ことを特徴とする請求項４に記載の制御装置。
【請求項６】
前記アクセステーブル検索部は、
データアクセス要求と該データアクセス要求に対応付けられたアクセステーブルの記憶される前記アクセステーブル記憶部における絶対アドレスとを対応付けるアクセステーブル記憶テーブルを保持し、ハッシュを用いて前記アクセステーブル記憶テーブルを検索することによって前記新たに受信したデータアクセス要求に対応付けられたアクセステーブルが記憶されている絶対アドレスを導出する、
ことを特徴とする請求項４に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用機器の制御を行う制御装置に関するものである。
【背景技術】
【０００２】
従来、産業用機器の制御を行うプログラマブルコントローラ（ＰＬＣ）は、ラダー言語などで記述されるシーケンスプログラムを実行し、実行結果であるデバイスの状態を示すデータを格納するデバイスメモリあるいはデバイスメモリ領域（以下、デバイス記憶部という）を有する。該デバイス記憶部は、デバイス種別毎に異なる複数の記憶領域に分割されており、同じデバイス種別のデータは連続したアドレスが確保された１つの領域に一塊のデータ配列として格納されるように構成されている。そして、各デバイス種別について、デバイス種別名とデータ配列の先頭が配置されるデバイスメモリの絶対アドレスとを対応付けるアドレス変換テーブルを有している。
【０００３】
ＰＬＣのデバッグを行うプログラミング装置や、ＰＬＣの動作をモニタするプログラマブル表示器などの外部装置は、上記のように構成されているＰＬＣのデバイス記憶部に配置されるデータにアクセスするとき、所望のデータのデバイス種別名と、該デバイス種別のデータが格納される領域における相対アドレスと、を指定するデータアクセス要求をＰＬＣに送信する。ＰＬＣは、アドレス変換テーブルを参照して、データアクセス要求に指定されるデバイス種別名のデータ配列が配置される先頭の絶対アドレスと、データアクセス要求に指定される相対アドレスとから、所望のデータが配置されている絶対アドレスを導出する。外部装置は、導出された絶対アドレスに配置されるデータにアクセスする。
【０００４】
さて、近年、汎用高級言語で記述される高度な処理を実行する制御プログラムをＰＬＣ用のラダー言語に移植することなく使用することができ、かつ従来のラダー言語などのシーケンスプログラムを利用したＰＬＣと同等以上の被制御装置に対する制御性能を実現する制御装置が開発されている。例えば、Ｃ言語を用いた制御装置によれば、過去のＣ言語プログラム資産が流用でき、かつ三角関数などラダー言語が不得意とする関数も簡単に扱うことができる。
【０００５】
【特許文献１】特開昭５８−２００３６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、Ｃ言語には、ソースコードにおいてメモリの絶対アドレスを指定する命令が用意されていない。したがって、例えばソースコード中でデバイス種別毎のデータ配列を配置するためにＣ言語における配列を定義しても、ソースコードをコンパイルすると、生成された実行コードは、定義された配列毎にアドレスが連続した領域を確保するとは限らず、アドレスが連続していない複数の領域を確保し、同じデバイス種別のデータ配列を複数に分断して配置する場合がある。この場合、デバイス種別名と相対アドレスとを指定してＰＬＣから目的のデータを取得していた外部装置は、このような制御装置からはデータを取得できないという問題があった。
【０００７】
特許文献１には、実システムに対応した複数の仮想システムを実行するシステムにおいて、仮想システムのアドレスと実システムのアドレスとを対応付けるアドレス変換表と、仮想システムの入出力装置と実システムの入出力装置とを対応付ける入出力装置変換表とを備え、仮想システムから送出された入出力命令で直接実システムの入出力装置で駆動できるようにする技術が開示されている。しかしながら、このような技術は、一つの装置内に実行される複数のシステム間の入出力装置共有に関するものであって、前記する問題を解決するものとは異なる。
【０００８】
本発明は、上記に鑑みてなされたものであって、デバイス種別と該デバイス種別のデータ配列の先頭からの相対アドレスとを指定してアクセス要求する外部装置に対応できる制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、夫々のデバイス種別に対応して複数のデータから成るデータ配列が配置され、同じデバイス種別のデータ配列がアドレスが連続していない複数の記憶領域に分断して配置されるデバイス記憶部と、前記夫々の分断されたデータ配列が配置される夫々記憶領域について、該データ配列のデバイス種別と、該データ配列の分断される前のデータ配列における先頭からのオフセットと、記憶領域の先頭の絶対アドレスと、記憶領域の領域サイズと、を記述するアドレス変換テーブルと、デバイス種別と該デバイス種別の分断される前のデータ配列の先頭を基準とした相対アドレスとを指定するデータアクセス要求を外部装置から受信したとき、該データアクセス要求が指定するデバイス種別および相対アドレスに対応する前記デバイス記憶部の絶対アドレスを前記アドレス変換テーブルに基づいて導出するアドレス変換部と、前記受信したデータアクセス要求に対応して前記デバイス記憶部の前記導出した絶対アドレスにアクセスするデバイス記憶部アクセス部と、を備えることを特徴とする。
【発明の効果】
【００１０】
この発明によれば、デバイス種別と該デバイス種別のデータ配列の先頭からの相対アドレスとを指定してアクセス要求する外部装置に対応できる制御装置を得ることができる。
【発明を実施するための最良の形態】
【００１１】
理解を助けるために、まず現在一般的に普及しているＰＬＣについて説明する。図９は、ＰＬＣの機能構成を説明する図である。図９において、ＰＬＣ１は、デバイスの状態を示すデータが配置されるデバイス記憶部１１と、データアクセス要求に指定されるデバイス種別および相対アドレスからデバイス記憶部１１の絶対アドレスに変換するためのアドレス変換テーブルを記憶するアドレス変換テーブル記憶部１０と、産業用装置などの被制御装置を制御するラダー言語などで記述されたシーケンスプログラムである制御プログラムを格納する被制御装置制御プログラム記憶部１２と、デバイス記憶部１１にアクセスを行う動作を含むＰＬＣ１全体の動作の制御と、制御プログラムを実行してデバイス記憶部１１に配置されるデータを適宜参照・上書きし、該データに基づいて行う被制御装置の制御とを実行する制御部１４と、外部装置とのデータの送受信を行うための通信Ｉ／Ｆ（インターフェース）である通信Ｉ／Ｆ部１５と、外部装置から通信Ｉ／Ｆ部１５を介してデータアクセス要求を受信したとき、アドレス変換テーブルを参照して該データアクセス要求が要求するデータが配置される絶対アドレスを導出するアドレス変換部１３と、を備える。
【００１２】
図１０は、ＰＬＣ１の動作を該動作に密接に関連する機能構成とともに概略的に説明する図である。ＰＬＣ１のデバイス記憶部１１は、デバイス種別毎に記憶領域が確保されているメモリ構成となっている。ここでは、デバイス種別名が、「Ｄ」、「Ｗ」、「Ｍ」、「Ｂ」の４種類のデータ配列を夫々される配置記憶領域が確保されている。そして、夫々のデバイス種別名の記憶領域の先頭アドレスがデバイス記憶部１１の絶対アドレス表記で「0x10000000」、「0x20000000」、「0x30000000」、「0x40000000」となっており、アドレス変換テーブル記憶部１０に記憶されるアドレス変換テーブル１００には、デバイス種別名と該デバイス種別名のデータを格納する領域の先頭アドレスとの対応が記述されている。
【００１３】
ここで、わかりやすくするために、以降の説明において、デバイス記憶部１１および後述する本発明の各実施の形態の制御装置のデバイス記憶部１１Ａの一つのアドレスは１バイトのデータを格納することができることとする。もちろん、一つのアドレスの容量が１バイト以外であるようにしてもよい。
【００１４】
また、外部装置２が例えばＰＬＣ１をモニターするプログラマブル表示器の場合、外部装置２はＰＬＣ１に、アクセス先に配置されているデータを取得する際にデータアクセス要求を送信する。また、外部装置２がＰＬＣのデバッグを行うプログラミング装置の場合、外部装置２は、アクセス先に配置されているデータを取得する際、およびアクセス先に配置されているデータを変更するなどの設定を行う際にデータアクセス要求を送信する。以降の説明においては、外部装置２はＰＬＣ１からデータを取得するためにＰＬＣ１から該当するデータを送信させる命令を含んだデータアクセス要求である要求データをＰＬＣ１に送信する例を取り上げて説明する。
【００１５】
まず、外部装置２は、図示するように、デバイス種別名が「Ｄ」の領域の１００バイト目のアドレスを先頭とし、サイズが１０バイトのサイズのデータを取得する命令の要求データをＰＬＣ１に送信する。ＰＬＣ１は、通信Ｉ／Ｆ部１５を介して該要求データを受信すると、アドレス変換部１３は、アドレス変換テーブル１００を参照し、「Ｄ」のデバイス種別のデータを格納する領域の１００バイト目のアドレスが「0x10000100」であることを導出する。そして、ＰＬＣ１の制御部１４は、通信Ｉ／Ｆ部１５を介して、デバイス記憶部１１のアドレス「0x10000100」から１０バイトの範囲に配置されているデータであるデータの配列「１、２、３、４、５、６、７、８、９、１０」を読み出して応答データとして外部装置２に送信する。
【００１６】
このように、ＰＬＣは、一般的に、同じデバイス種別のデータ配列を１つの連続した領域に配置し、デバイス種別名と該種別のデータ配列が格納される領域の先頭の絶対アドレスとを対応付けるアドレス変換テーブルを有するようにしているので、デバイス種別と該デバイス種別の配列の先頭からの相対アドレスとを指定して取得する命令に対応して該当するデータを返すことができる。
【００１７】
これに対して、Ｃ言語など、デバイス記憶部１１へのメモリ割り当てを設計者が直接指定できない言語を用いて作成された制御プログラムを使用した制御装置は、デバイス種別毎に１つの連続した領域に配置されるようにメモリ割り当てを行うとは限らない。同じデバイス種別のデータ配列が複数の記憶領域に不連続に分断されると、例えば、図１０のデバイス記憶部１１に示すようなデバイス種別名「Ｄ」のデータの配列「１、２、３、４、５、６、７、８、９、１０」が、図２のデバイス記憶部１１Ａに示すように、「0x10000100」から「0x10000103」までの４バイトに「１、２、３、４」が配置され、「0x50000104」から残りの「５、６、７、８、９、１０」が配置される、というように、同じデバイス種別名のデータ配列が分断される。したがって、このような制御装置は、外部装置２から受信するデバイス種別と先頭からの相対アドレスとを指定する命令に対応できない。すなわち、このような制御装置は、一般的なＰＬＣとの間に完全な互換性あるとは言いがたい。
【００１８】
本発明の実施の形態は、外部装置から受信するデバイス種別と先頭からの相対アドレスとを指定する命令に対応できるようにしたことが主たる特徴となっている。以下に、本発明にかかる制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１９】
実施の形態１．
図１は、本発明にかかる制御装置の実施の形態１の機能構成を示す図である。図１において、制御装置１Ａは、デバイスの状態を示すデータが配置されるデバイス記憶部１１Ａと、要求データに指定されるデバイス種別および相対アドレスからデバイス記憶部１１Ａの絶対アドレスに変換するためのアドレス変換テーブルを記憶するアドレス変換テーブル記憶部１０Ａと、Ｃ言語で記述されたソースコードから生成された実行コードである、被制御装置を制御する制御プログラムを格納する被制御装置制御プログラム記憶部１２Ａと、デバイス記憶部１１Ａにアクセスを行う動作を含む制御装置１Ａ全体の動作の制御と、制御プログラムを実行してデバイス記憶部１１Ａに配置されるデータを適宜参照・上書きし、該データに基づいて行う被制御装置の制御とを実行する制御部１４Ａと、外部装置とのデータの送受信を行うための通信Ｉ／Ｆ（インターフェース）である通信Ｉ／Ｆ部１５Ａと、外部装置から通信Ｉ／Ｆ部１５Ａを介して要求データを受信したとき、アドレス変換テーブルを参照して該要求データが要求するデータが配置される絶対アドレスを導出するアドレス変換部１３Ａと、を備える。
【００２０】
Ｃ言語で記述された制御プログラムを用いると、制御部１４Ａは、該Ｃ言語で記述された制御プログラムの仕様に基づき、デバイス記憶部１１Ａにデータを配置するメモリ割り当てを決定する。Ｃ言語を用いると、一般的なＰＬＣ１で用いられるラダー言語などによる制御プログラムより簡単に高度な演算を行うことができるようになるが、Ｃ言語には直接にアドレスを指定してメモリ割り当てを行う手段が用意されていない。したがって、同じデバイス種別のデータ配列を１つの連続するアドレスの記憶領域に指定して割り当てさせることはできず、分断されてしまう場合がある。図２は、制御部１４Ａによりデータ配列のメモリ割り当てが決定されたデバイス記憶部１１Ａのメモリ構成の一例を示す図である。前記説明したように、デバイス種別名「Ｄ」のデータ配列の一部のデータの配列「１、２、３、４、５、６、７、８、９、１０」が、図２のデバイス記憶部１１Ａに示すように、「0x10000100」から「0x10000103」までの４バイトに「１、２、３、４」が配置され、「0x50000104」から残りの「５、６、７、８、９、１０」が配置される、というように、デバイス種別「Ｄ」のデータ配列が複数の記憶領域に分断されて配置されているとする。
【００２１】
図３は、アドレス変換テーブル記憶部１０Ａに記憶されるアドレス変換テーブルの一例を説明する図である。図３において、アドレス変換テーブル１００Ａは、夫々の分断されたデータ配列が配置される夫々記憶領域について、該データ配列のデバイス種別と、該データ配列の分断される前のデータ配列における先頭からの相対位置を示すオフセットと、記憶領域の先頭の絶対アドレスと、記憶領域の領域サイズ（エリアサイズ）と、を記述している。オフセットとは、分断前の同じデバイス種別のデータ配列において、分断されたデータ配列の前に配列されるデータ配列のトータルのサイズである。すなわち、図３の例においては、デバイス種別名「Ｄ」の記憶領域が２つの記憶領域に分断されており、アドレス変換テーブル１００Ａのコンテンツの上から２段目の行が示す断片化された記憶領域は、オフセットが「0x104」バイトとなっているので、断片化前のデバイス種別「Ｄ」のデータ配列における先頭から「0x105」バイト目から始まる分断されたデータ配列が配置されることとなる。
【００２２】
図４は、実施の形態１の制御装置１Ａの動作を該動作と密接に関連する機能構成とともに概略的に説明する図である。まず、制御装置１Ａは、外部装置２から要求データを受信する。要求データは、図１０にて説明した一般的なＰＬＣ１に対する要求データの例と同じものであるとする。すると、アドレス変換部１３Ａは、アドレス変換テーブル１００Ａを参照して該要求データが要求するデータが配置される絶対アドレスを導出する。すなわち、まず、要求データが指定するデバイス種別「Ｄ」の１００バイト目の絶対アドレスを求めるために、デバイス種別「Ｄ」かつオフセット「０」の行を検索する。ここでは、アドレス変換テーブル１００Ａの一段目のコンテンツが該当する行であり、アドレス変換部１３Ａは、デバイス種別「Ｄ」のデータが配置される一個目の記憶領域が先頭の絶対アドレスが「0x10000000」であり、該記憶領域のサイズが「0x104」バイトであることを知る。すなわち、アドレス変換部１３Ａは、要求データは、先頭から１００バイト目から１０バイトのデータを要求しているため、「0x10000100」から該分断された記憶領域の終端の「0x10000103」までに配置される４バイト分のデータの配列「１、２、３、４」が要求されるデータの一部であることを知る。
【００２３】
そして、アドレス変換部１３Ａは、続く６バイト分のデータの絶対アドレスを導出するために、デバイス種別が「Ｄ」かつオフセットが１個目の記憶領域のサイズと等しい「0x104」の行を検索する。アドレス変換テーブル１００Ａのコンテンツの二段目の行が該当する行であり、アドレス変換部１３Ａは、デバイス種別「Ｄ」の二個目の分断されたデータ配列が配置される記憶領域の先頭の絶対アドレスが「0x50000104」であり、該記憶領域のサイズが「0x3EFB」バイトであることを知る。すなわち、アドレス変換部１３Ａは、「0x50000104」から「0x10000109」までに配置される６バイト分のデータの配列「５、６、７、８、９、１０」が要求される残りのデータであることを知る。
【００２４】
そして、制御装置１Ａの制御部１４Ａは、「0x10000100」から「0x10000103」までに配置される４バイト分のデータの配列「１、２、３、４」と、「0x50000104」から「0x10000109」までに配置される６バイト分のデータの配列「５、６、７、８、９、１０」と、を読み出してつなぎ合わせ、得た「１、２、３、４、５、６、７、８、９、１０」を応答データとして通信Ｉ／Ｆ部１５を介して外部装置２に送信する。
【００２５】
このように、アドレス変換テーブル１００Ａを工夫したので、制御装置１Ａはデバイス種別と相対アドレスとを指定する要求データに対応することができる。換言すると、外部装置２からは１１Ａ´に示すように、仮想的に一般的なＰＬＣ１と同様にデータ配列が連続的に配置されているように見えるため、制御装置１Ａは該一般的なＰＬＣ１との互換性が得られる。
【００２６】
このように、実施の形態１によれば、夫々の分断されたデータ配列が配置される夫々記憶領域について、該データ配列のデバイス種別と、該データ配列の分断される前のデータ配列における先頭からのオフセットと、記憶領域の先頭の絶対アドレスと、記憶領域の領域サイズと、を記述するアドレス変換テーブルを有するように構成したので、デバイス種別と該デバイス種別の配列の先頭からの相対アドレスとを指定してアクセスする外部装置に対応することができる。
【００２７】
実施の形態２．
実施の形態１における制御装置は、夫々の分断されたデータ配列が配置される夫々記憶領域について、該データ配列のデバイス種別と、該データ配列の分断される前のデータ配列における先頭からのオフセットと、記憶領域の先頭の絶対アドレスと、記憶領域の領域サイズと、を記述するアドレス変換テーブルを有することによって、一般的なＰＬＣのように、デバイス種別と該デバイス種別の配列の先頭からの相対アドレスとを指定する命令に対応することができる。実施の形態２の制御装置は、このようなアドレス変換テーブルを複数有することが特徴となっている。
【００２８】
図５は、本発明にかかる実施の形態２の制御装置の動作を該動作に密接に関連する機能構成とともに概略的に説明する図である。実施の形態２の制御装置１Ｂは、実施の形態１の制御装置に加えて、アドレス変換テーブル記憶部１０Ｂに複数のアドレス変換テーブル１００Ｂを格納し、かつ複数のアドレス変換テーブル１００Ｂから一つ指定するアドレス変換テーブル指定部１６を備える。
【００２９】
複数のアドレス変換テーブル１００Ｂは、例えば設計者がデバッグなどを行いやすいように、一つまたは複数のデバイス種別のデータ配列の中でデータの並びを組み替えることができるように作成されたものである。
【００３０】
制御装置１Ｂが外部装置２から要求データを受信したとき、アドレス変換部１３Ｂは、アドレス変換テーブル記憶部１０Ｂからアドレス変換テーブル指定部１６が指定する一つのアドレス変換テーブル１００Ｂを一つ読み出し、要求データが要求するデータが配置される絶対アドレスを導出する。アドレス変換部１３Ｂは、デバイス記憶部１１Ａの導出した絶対アドレスに配置されているデータを読み出し、外部装置２に応答データとして送信する。
【００３１】
ここで、アドレス変換テーブル指定部１６がどのアドレス変換テーブル１００Ｂを指定するかを設定する方法は特に限定されるものではない。例えば、制御装置１Ｂが予めアドレス変換テーブルを一つ選択する入力を受け付け、該選択されたアドレス変換テーブルを指定するようにしてもよい。また、該入力は、外部装置２から要求データとともに受け付けるようにしてもよい。
【００３２】
このように、実施の形態２によれば、複数の異なるアドレス変換テーブルを有し、切り替えて使用できるようにしたので、外部装置からみた仮想的な連続したデータ配列のデータの配列パターンを切り替えることができ、デバッグなどが行われやすくなるという効果を奏する。
【００３３】
実施の形態３．
実施の形態３の制御装置によれば、受信した要求データと、導出した該要求データが要求するデータが配置されるデバイス記憶部１１Ａの絶対アドレスと、を対応付けて要求データ毎にアクセステーブルとして記憶し、新しく要求データを受信したとき、該記憶されているアクセステーブルを検索して該新しく受信した要求データと同じ要求データを過去に受信している場合、アドレス変換テーブル１００Ａを参照することなく該当するデータの絶対アドレスを導出することが特徴となっている。
【００３４】
図６は、実施の形態３の制御装置の動作を該動作に密接に関連する機能構成とともに概略的に説明する図である。図６に示すように、実施の形態３の制御装置１Ｃは、実施の形態１の制御装置１Ａの構成に加えて、アクセステーブル記憶部１７と、アクセステーブル記憶部１７に記憶されているアクセステーブルを検索するアクセステーブル検索部１８とをさらに有する。ここでは、アクセステーブル記憶部１７は、要求データＡおよび要求データＢに関するアクセステーブルを記憶しているとしている。
【００３５】
図６において、制御装置１Ｃが外部装置２から要求データＡを受信すると、まず、アクセステーブル検索部１８は、要求データＡに関するアクセステーブルを検索する。アクセステーブル記憶部１７には要求データＡに関するアクセステーブルが格納されているので、該アクセステーブルから要求データＡに対応するデータが配置されている絶対アドレスを読み出し、制御装置１Ｃの制御部１４Ａは、デバイス記憶部１１Ａの該読み出した絶対アドレスからデータを読み出し、外部装置２に送信する。
【００３６】
制御装置１Ｃが、いままでに受信したことがない要求データ、すなわち要求データＡおよびＢ以外の要求データを受信すると、アクセステーブル検索部１８は、アクセステーブル記憶部１７を検索するが、該要求データに関するアクセステーブルは記憶されていないので、検索に失敗する。すると、アドレス変換部１３Ｃは、アドレス変換テーブル１００Ａを参照し、該要求データに対応する絶対アドレスを導出するとともに、該要求データと導出した絶対アドレスとの対応を新しいアクセステーブルとしてアクセステーブル記憶部１７に追加で記憶させる。制御装置１Ｃの制御部１４Ａは、デバイス記憶部１１Ａの、前記導出した絶対アドレスからデータを読み出し、外部装置２に送信する。
【００３７】
このように、実施の形態３によると、受信した要求データごとに、要求データと導出した絶対アドレスとを対応付けたアクセステーブルとして記憶し、過去に受信したことがある要求データを再び受信したとき、該記憶されたアクセステーブルを用いて絶対アドレスを導出するようにしたので、実施の形態１の制御装置に比して高速に外部装置から要求されるデータの絶対アドレスを導出できるようになるという効果を奏する。
【００３８】
実施の形態４．
実施の形態４の制御装置においては、アクセステーブル検索部１８は、要求データと該要求データに関するアクセステーブルが記憶されているアクセステーブル記憶部１７における絶対アドレスとを対応付けるアクセステーブル記憶テーブルを有するとともに、アクセステーブルから絶対アドレスを読み出した回数をアクセステーブル毎に記録し、新しく要求データを受信したとき、絶対アドレスを読み出される回数が高いアクセステーブルから順番にアクセステーブルを検索することが特徴となっている。
【００３９】
図７は、アクセステーブル記憶テーブルの一例を示す図である。図７のアクセステーブル記憶テーブル１８０は、要求データと該要求データに関するアクセステーブルが記憶されているアクセステーブル記憶部１７における絶対アドレスとを対応付けるとともに、要求データごとにアクセステーブルから絶対アドレスを読み出した回数が記録されている。
【００４０】
アクセステーブル検索部１８は、過去に受信したことがある要求データ、例えば要求データＢを受信したとき、アクセステーブル記憶テーブル１８０を検索して要求データＢに関するアクセステーブルが記憶されている絶対アドレスを導出するとともに、アクセステーブル記憶テーブル１８０に記録されている要求データＢに関する読み出した回数に１加算する。アクセステーブル検索部１８は、アクセステーブル記憶部１７における前記導出した絶対アドレスに格納されているアクセステーブルから、要求データＢが要求するデータが格納されている絶対アドレスを導出する。
【００４１】
ここで、アクセステーブル記憶テーブル１８０は、読み出された回数の多いアクセステーブルから優先して検索されるようにする。例えば、アクセステーブル検索部１８がアクセステーブル記憶テーブル１８０を上から検索する場合、各要求データに関するアクセステーブルの絶対アドレスの情報は、回数が多いほどアクセステーブル記憶テーブル１８０の上位に位置するように並べられている。アクセステーブル検索部１８は、読み出した回数に１加算したとき、上下の要求データで読み出し回数が変化したとき、適宜アクセステーブル記憶テーブル１８０上の要求データの順位を入れ替える。図７のアクセステーブル記憶テーブル１８０では、要求データＣの情報が、より読み出した回数の多い要求データＢの情報よりも上になっているので、要求データＣの情報と要求データＢの情報とを並び替えてアクセステーブル記憶テーブル１８０´のようにする。
【００４２】
アクセステーブル検索部１８は、過去に受信したことがない要求データを受信したとき、該要求データに関する情報はまだ保持されていないので、アクセステーブル記憶テーブル１８０の検索に失敗する。すると、アドレス変換部１３Ｃは、アドレス変換テーブル１００Ａを検索して該要求データに対応するデバイス記憶部１１Ａ上の絶対アドレスを導出するとともに、該要求データに対応するアクセステーブルを作成してアクセステーブル記憶部１７に格納し、該要求データと該アクセステーブルの格納先の絶対アドレスとを対応付けてアクセステーブル記憶テーブル１８０の最下部に追加する。
【００４３】
このように、実施の形態４によれば、絶対アドレスを読み出される回数が高いアクセステーブルから順番にアクセステーブルを検索するようにしたので、実施の形態３の制御装置よりもさらに高速に外部装置から要求されるデータの絶対アドレスを導出できるようになる。
【００４４】
実施の形態５．
実施の形態５の制御装置は、要求データと該要求データに関するアクセステーブルが記憶されているアクセステーブル記憶部１７における絶対アドレスとを対応付けるアクセステーブル記憶テーブルに対して、ハッシュを用いて検索ができるようにすることが特徴となっている。
【００４５】
アクセステーブル記憶テーブルに対するハッシュの用い方は特に限定しないが、例えば、アクセステーブル検索部１８は、要求データを所定のハッシュ関数を用いてハッシュ値化し、該要求データのハッシュ値とアクセステーブルの絶対アドレスとを対応付けたアクセステーブル記憶テーブルを保持するようにする。図８は、該アクセステーブル記憶テーブルの一例を示す図である。
【００４６】
すなわち、アクセステーブル検索部１８は、過去に受信したことがある要求データを受信したとき、該受信した要求データから前記所定のハッシュ関数を用いてハッシュ値を算出する。そして、アクセステーブル検索部１８は、算出したハッシュ値に対応するアクセステーブル記憶テーブル１８１を参照してアクセステーブルの記憶先の絶対アドレスを読み出す。例えば要求データＢを受信したとき、ハッシュ関数によりハッシュ値３が得られ、アクセステーブル記憶テーブル１８１を参照してアクセステーブルが記憶されているアドレスが「0x87AB4323」であることを知る。
【００４７】
アクセステーブル検索部１８は、過去に受信したことがない要求データを受信したとき、該要求データに関する情報はまだ保持されていないので、アクセステーブル記憶テーブルの検索に失敗する。すると、アドレス変換部１３Ｅは、アドレス変換テーブル１００Ａを検索して該要求データに対応するデバイス記憶部１１Ａ上の絶対アドレスを導出するとともに、該要求データに対応するアクセステーブルを作成してアクセステーブル記憶部１７に格納し、該要求データを元データとしたハッシュ値と該アクセステーブルの格納先の絶対アドレスとを対応付けてアクセステーブル記憶テーブル１８１に追加する。
【００４８】
このように、実施の形態５によれば、アクセステーブル記憶テーブルに対して、ハッシュを用いて検索ができるようにしたので、実施の形態３の制御装置に比してさらに高速に外部装置から要求されるデータの絶対アドレスを導出できるようになる。
【００４９】
なお、実施の形態１〜５の制御装置の説明においては、Ｃ言語の制御プログラムを用いる制御装置に適用する例を示したが、デバイス記憶部に夫々のデバイス種別に対応して複数のデータから成るデータ配列が配置され、同じデバイス種別のデータ配列がアドレスが連続していない複数の記憶領域に分断して配置される制御装置であれば、Ｃ言語の制御プログラムを用いる制御装置以外にも適用することが可能である。
【００５０】
また、以上の説明では、外部装置の例として、プログラミング装置およびプログラマブル表示器を挙げたが、他には本発明の各実施の形態の制御装置と協働して産業用装置を制御する他のＰＬＣまたは制御装置なども本発明における外部装置に該当する。すなわち、外部装置は、デバイス種別と該デバイス種別の配列の先頭からの相対アドレスとを指定してＰＬＣにアクセスする装置を指す。
【産業上の利用可能性】
【００５１】
以上のように、本発明にかかる制御装置は、デバイス記憶部に夫々のデバイス種別に対応して複数のデータから成るデータ配列が配置され、同じデバイス種別のデータ配列がアドレスが連続していない複数の記憶領域に分断して配置される制御装置に適用して好適である。
【図面の簡単な説明】
【００５２】
【図１】本発明にかかる制御装置の実施の形態１の機能構成を示す図である。
【図２】デバイス記憶部のメモリ構成の一例を示す図である。
【図３】アドレス変換テーブルの一例を説明する図である。
【図４】実施の形態１の制御装置の動作を機能構成とともに概略的に説明する図である。
【図５】実施の形態２の制御装置の動作を機能構成とともに概略的に説明する図である。
【図６】実施の形態３の制御装置の動作を機能構成とともに概略的に説明する図である。
【図７】実施の形態４の制御装置のアクセステーブル記憶テーブルの一例を示す図である。
【図８】実施の形態５の制御装置のアクセステーブル記憶テーブルの一例を示す図である。
【図９】一般的に普及しているＰＬＣの機能構成を説明する図である。
【図１０】一般的に普及しているＰＬＣの動作を機能構成とともに概略的に説明する図である。
【符号の説明】
【００５３】
１  ＰＬＣ
１Ａ〜１Ｃ  制御装置
２  外部装置
１０、１０Ａ、１０Ｂ  アドレス変換テーブル記憶部
１１、１１Ａ  デバイス記憶部
１２、１２Ａ  被制御装置制御プログラム記憶部
１３、１３Ａ〜１３Ｃ  アドレス変換部
１４  制御部
１５、１５Ａ  通信Ｉ/Ｆ部
１６  アドレス変換テーブル指定部
１７  アクセステーブル記憶部
１８  アクセステーブル検索部
１００、１００Ａ、１００Ｂ  アドレス変換テーブル
１８０、１８０´、１８１  アクセステーブル記憶テーブル
【図１】
0005224923.tif 000002
【図２】
0005224923.tif 000003
【図３】
0005224923.tif 000004
【図４】
0005224923.tif 000005
【図５】
0005224923.tif 000006
【図６】
0005224923.tif 000007
【図７】
0005224923.tif 000008
【図８】
0005224923.tif 000009
【図９】
0005224923.tif 000010
【図１０】
0005224923.tif 000011