(57)【要約】【課題】ＩＥＣ６１１３１−３が規定するグローバル変数の仕様を完全に満たしながら、コンフィグレーションレベル・グローバル変数の取り扱いを容易にする。【解決手段】リソース間システムバス４上に、各リソース１，２で共有できるコンフィグレーションレベル・グローバル変数用メモリ３Ａを設け、このメモリにはコンフィグレーションでユニークな変数名を付け、各リソースで扱うコンフィグレーションレベル・グローバル変数用共有メモリのサイズを変える。  各リソースはコンフィグレーションレベル・グローバル変数用リソース内メモリをもち、各リソースの中に全リソース共通の１つのコンフィグレーションレベル・グローバル変数用仮想空間を置き、各リソースは仮想空間とリソース内メモリとの間で、リソース間一斉同報通信によってコンフィグレーションレベル・グローバル変数を交換することも含む。【選択図】図１
2008090635.tif 000002
【特許請求の範囲】
【請求項１】
コンフィグレーションレベル・グローバル変数を扱うプログラマブルコントローラであって、
リソース間システムバス上に、各リソースで共有できるコンフィグレーションレベル・グローバル変数用メモリを設け、
前記コンフィグレーションレベル・グローバル変数用メモリにはコンフィグレーションでユニークな変数名を付け、
各リソースで扱う前記コンフィグレーションレベル・グローバル変数用共有メモリのサイズを変えた構成を特徴とするプログラマブルコントローラ。
【請求項２】
コンフィグレーションレベル・グローバル変数を扱うプログラマブルコントローラであって、
各リソースは、コンフィグレーションレベル・グローバル変数用リソース内メモリをもち、
各リソースの中に全リソース共通の１つのコンフィグレーションレベル・グローバル変数用仮想空間を置き、
各リソースは、前記コンフィグレーションレベル・グローバル変数用仮想空間と前記リソース内メモリとの間で、リソース間一斉同報通信によってコンフィグレーションレベル・グローバル変数を交換する構成を特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＪＩＳＢ３５０３（ＩＥＣ６１１３１−３）に規定されているプログラム言語に準拠したプログラマブルコントローラに関わり、特に、アプリケーションソフトウェアが扱うリソース間グローバル変数の定義／配置方式に関わるものである。
【背景技術】
【０００２】
現在、各社からＩＥＣ６１１３１−３準拠のプログラマブルコントローラ（ＰＬＣ）が発売されている。ＩＥＣ６１１３１−３ではアプリケーションプログラムが扱う変数として、ローカル変数とグローバル変数を定義している。ローカル変数は１つのプログラム構成単位（ＰＯＵ：Ｐｒｏｇｒａｍ  Ｏｒｇａｎｉｚａｔｉｏｎ  Ｕｎｉｔ）内だけで使用する変数である。グローバル変数はいくつかのＰＯＵ間で相互に使用できる変数である。
【０００３】
更に、グローバル変数を定義するレベルによって、リソースレベル・グローバル変数（リソース内グローバル変数）とコンフィグレーションレベル・グローバル変数（リソース間グローバル変数）に分類される。リソースレベル・グローバル変数はリソース内にあるＰＯＵ間で有効な変数である。コンフィグレーションレベル・グローバル変数はコンフクレーション内に存在するすべてのリソースにあるＰＯＵ間で有効な変数である。すなわち、コンフィグレーションレベル・グローバル変数はその有効範囲が広くなっている。
【０００４】
図３はローカル変数とグローバル変数の関係図を示し、ローカル変数はリソース１，２を使用する各ＰＯＵ１Ａ，１Ｂ，２Ａ，２Ｂ内だけを有効範囲とし、リソースレベル・グローバル変数は同じリソース１，２を使用するＰＯＵ１Ａと１Ｂ，２Ａと２Ｂ間だけを有効範囲とし、コンフィグレーションレベル・グローバル変数はコンフィグレーション３内の全てを有効範囲とする。
【０００５】
現在、各社から発売されているＩＥＣ６１１３１−３準拠のＰＬＣにおいて、グローバル変数の扱いには、リソースレベル・グローバル変数とコンフィグレーションレベル・グローバル変数を明確に分類しているものは少ない。
【０００６】
Ａ社方式ではリソースレベル・グローバル変数のみ使用できるようになっている。図４に示すＢ社方式では両方使用できる。Ｂ社の方式はリソース内に共有メモリを持ち、他のリソースからその共有メモリをアクセスすることでコンフィグレーションレベル・グローバル変数を実現している（例えば、特許文献１参照）。
【特許文献１】特開２００２−９９４２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前記のＢ社方式のコンフィグレーションレベル・グローバル変数は各リソース内にあるため、リソースの種類により、そのリソース内に確保できるコンフィグレーションレベル・グローバル変数の大きさが決まる。また、図３と図４の違いで明らかなように、コンフィグレーションレベル・グローバル変数がリソース内にあるため、コンフィグレーションレベル・グローバル変数は各リソースで定義することになる。このことで、コンフィグレーションレベルでユニークでなければならないコンフィグレーションレベル・グローバル変数の名称が重複する可能性があり、コンパイラ等で、変数名の重複チェックを行わなければならないことになる。このことはユーザの負担増加となる。
【０００８】
本発明の目的は、ＩＥＣ６１１３１−３が規定するグローバル変数の仕様を完全に満たしながら、コンフィグレーションレベル・グローバル変数の取り扱いを容易にしたプログラマブルコントローラを提供することにある。
【課題を解決するための手段】
【０００９】
前記の課題を解決するため、本発明は、以下の構成とする。
【００１０】
（１）コンフィグレーションレベル・グローバル変数を扱うプログラマブルコントローラであって、
リソース間システムバス上に、各リソースで共有できるコンフィグレーションレベル・グローバル変数用メモリを設け、
前記コンフィグレーションレベル・グローバル変数用メモリにはコンフィグレーションでユニークな変数名を付け、
各リソースで扱う前記コンフィグレーションレベル・グローバル変数用共有メモリのサイズを変えた構成を特徴とする。
【００１１】
（２）コンフィグレーションレベル・グローバル変数を扱うプログラマブルコントローラであって、
各リソースは、コンフィグレーションレベル・グローバル変数用リソース内メモリをもち、
各リソースの中に全リソース共通の１つのコンフィグレーションレベル・グローバル変数用仮想空間を置き、
各リソースは、前記コンフィグレーションレベル・グローバル変数用仮想空間と前記リソース内メモリとの間で、リソース間一斉同報通信によってコンフィグレーションレベル・グローバル変数を交換する構成を特徴とする。
【発明の効果】
【００１２】
以上のとおり、本発明によれば、ＩＥＣ６１１３１−３が規定するグローバル変数の仕様を完全に満たしながら、コンフィグレーションレベル・グローバル変数の取り扱いが容易になる。
【発明を実施するための最良の形態】
【００１３】
（実施形態１）
図１は、本実施形態を示す要部構成図であり、図３，図４と同等の部分は同一符号で示す。
【００１４】
図１に示すように、コンフィグレーションレベル・グローバル変数が各リソース１，２で共有できるように、コンフィグレーションレベル・グローバル変数をリソース１，２の外に置き、すべてのリソースから参照できるようにする。
【００１５】
具体的には、リソース間を接続するシステムバス４上に、コンフィグレーションレベル・グローバル変数用メモリ３Ａを置き、そのメモリ３Ａを各リソース１，２がアクセスできるようにする。
【００１６】
本実施形態の特徴的事項を以下に説明する。
【００１７】
（ａ）図４の方式では、リソース内にコンフィグレーションレベル・グローバル変数を置くため、リソースによって、リソースに置けるコンフィグレーションレベル・グローバル変数の大きさを統一させることができない。
【００１８】
本実施形態では、リソース１，２の外にコンフィグレーションレベル・グローバル変数用メモリ３Ａを置くため、リソースの種類によらず、どのリソースからも同じ大きさのコンフィグレーションレベル・グローバル変数を参照できる。
【００１９】
（ｂ）図４の方式では、各リソースにコンフィグレーションレベル・グローバル変数用共有メモリがあるため、各リソースで定義したコンフィグレーションレベル・グローバル変数の変数名に重複があるかどうかを、コンパイラなどでチェックする必要があった。
【００２０】
本実施形態では、コンフィグレーションレベル・グローバル変数用メモリは１つになるため、コンフィグレーションレベル・グローバル変数には常にユニークな名前を付けられる。そのため、変数名の重複チェックは必要ない。
【００２１】
（ｃ）本実施形態では、各リソースで扱うコンフィグレーションレベル・グローバル変数用共有メモリのサイズを変えることで、システム規模に対応したリソースにコンフィグレーションレベル・グローバル変数用ハードウェアの品揃えができる。
【００２２】
（実施形態２）
図２は、本実施形態を示す要部構成図であり、図３，図４と同等の部分は同一符号で示す。
【００２３】
図２に示すように、コンフィグレーションレベル・グローバル変数用の仮想空間を各リソース１，２内に用意して、その仮想空間とコンフィグレーションレベル・グローバル変数用リソース内メモリ１Ｃ，２Ｃの交換処理によって、コンフィグレーションレベル・グローバル変数を実現する。
【００２４】
リソース間システムバス４によって、リソース間一斉同報通信を行うことで、コンフィグレーションレベル・グローバル変数用仮想空間を実現する。
【００２５】
本実施形態において、コンフィグレーションレベル・グローバル変数用の仮想空間は全リソースで同じ仕様としておき、共通の変数名を使用できるようにする。
【００２６】
また、コンフィグレーションレベル・グローバル変数用リソース内メモリ１Ｃ，２Ｃは、リソースの種類により、大きさは変更できるようにしておき、コンフィグレーションレベル・グローバル変数用仮想空間の中で、そのリソースが使用する部分のみをコンフィグレーションレベル・グローバル変数用リソース内メモリにマッピングする。
【００２７】
また、コンフィグレーションレベル・グローバル変数用の仮想空間は物理的なメモリを有するのではなく、システムバス４上のアドレス空間として存在する。システムバス上に、仮想空間アドレスとデータを一斉同報で送信することで、その仮想アドレスを使用するリソースがそれを取り込み、仮想アドレスと対応するマッピングをとっている自分のリソース内の物理的なメモリに格納することになる。また、自分のコンフィグレーションレベル・グローバル変数用リソース内メモリの内容は仮想空間アドレスに変換されて、システムバス上に一斉同報送信することになる。
【００２８】
また、各リソース１，２では仮想空間のアドレスと自リソースの内部メモリのアドレス対応関係を定義するだけで良い。仮想空間上でコンフィグレーションレベル・グローバル変数の変数名称を定義すれば、すべてのリソースで同じ変数名を使用できる。
【００２９】
本実施形態の特徴的事項を以下に説明する。
【００３０】
（ａ）図４の方式では、リソース内にコンフィグレーションレベル・グローバル変数を置くため、リソースによって、リソースに置けるコンフィグレーションレベル・グローバル変数の大きさを統一させることができない。
【００３１】
本実施形態では、リソース１、２の中に全リソース共通のコンフィグレーションレベル・グローバル変数用仮想空間を置くため、リソースの種類によらず、どのリソースからも同じ大きさのコンフィグレーションレベル・グローバル変数を参照できる。
【００３２】
（ｂ）図４の方式では、各リソースにコンフィグレーションレベル・グローバル変数用共有メモリがあるため、各リソースで定義したコンフィグレーションレベル・グローバル変数の変数名に重複があるかどうかを、コンパイラなどでチェックする必要があった。
【００３３】
本実施形態では、コンフィグレーションレベル・グローバル変数用仮想空間アドレスに対して変数名を付けるため、その変数名は１つになり、コンフィグレーションレベル・グローバル変数には常にユニークな名前を付けられる。そのため、変数名の重複チェックは必要ない。
【００３４】
（ｃ）コンフィグレーションレベル・グローバル変数用仮想空間とリソース内のコンフィグレーションレベル・グローバル変数用メモリ１Ｃ、２Ｃとをマッピングする方式とするため、リソース種別により、自由にコンフィグレーションレベル・グローバル変数を選択使用することができる。
【００３５】
（ｄ）コンフィグレーションレベル・グローバル変数用仮想空間の大きさに制限はないため、かなり大きな空間まで対応することができる。このことは将来的に色々なリソースハードウェアに対しても有効であることになる。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態１を示す要部構成図。
【図２】本発明の実施形態２を示す要部構成図。
【図３】ローカル変数とグローバル変数の関連図。
【図４】従来のコンフィグレーションレベル・グローバル変数とリソースの関連図。
【符号の説明】
【００３７】
１、２  リソース
１Ａ、１Ｂ、２Ａ、２Ｂ  ＰＯＵ（プログラム構成単位）
１Ｃ、２Ｃ  コンフィグレーションレベル・グローバル変数用リソース内メモリ
３  コンフィグレーション
３Ａ  コンフィグレーションレベル・グローバル変数用メモリ
４  リソース間システムバス
【図１】
2008090635.tif 000003
【図２】
2008090635.tif 000004
【図３】
2008090635.tif 000005
【図４】
2008090635.tif 000006