(57)【特許請求の範囲】
【請求項１】
異種の制御処理を実行する複数のコントローラと、
前記複数のコントローラから共通してアクセス可能であり、前記複数のコントローラで共通に扱われるグローバル変数を記憶する共有記憶手段を備え、前記複数のコントローラを仮想的に単一のコントローラとして機能させる統合手段と
を具備し、
前記複数のコントローラは、一連の制御を分割した制御内容を実行する
ことを特徴とする統合コントローラ。
【請求項２】
請求項１記載の統合コントローラにおいて、
前記複数のコントローラは、ループ制御とシーケンス制御とコンピュータ制御のうちの少なくとも一つを実現することを特徴とする統合コントローラ。
【請求項３】
請求項２記載の統合コントローラにおいて、
前記複数のコントローラのうちの第１のコントローラは、ループ制御とシーケンス制御とコンピュータ制御とのうちのいずれかを実行し、
前記複数のコントローラのうちの第２のコントローラは、前記ループ制御と前記シーケンス制御と前記コンピュータ制御とのうち前記第１のコントローラと異種の制御を実行する
ことを特徴とする統合コントローラ。
【請求項４】
請求項１乃至請求項３のいずれか１項に記載の統合コントローラにおいて、
前記複数のコントローラのうちの少なくとも一つを備えた複数のステーションを備え、
前記統合手段は、ステーション内におけるコントローラ又はステーション間におけるコントローラを仮想的に単一のコントローラとして機能させる
ことを特徴とする統合コントローラ。
【請求項５】
請求項１乃至請求項４のいずれか１項に記載の統合コントローラにおいて、
前記共有記憶手段は、外部のコントローラ又は外部で仮想的に単一とされたコントローラからもアクセス可能であり、この外部のコントローラ又は外部で仮想的に単一とされたコントローラでも共通に扱われるグローバル変数を記憶することを特徴とする統合コントローラ。
【請求項６】
請求項１乃至請求項５のいずれか１項に記載の統合コントローラにおいて、
仮想的に単一のコントローラとして扱われる各コントローラは、前記共有記憶手段に記憶されているグローバル変数へのアクセスを、前記グローバル変数ではない他の変数のアクセスと同様の記述により実現可能なことを特徴とする統合コントローラ。
【請求項７】
請求項１乃至請求項６のいずれか１項に記載の統合コントローラにおいて、
前記共有記憶手段は、仮想的に単一のコントローラとして扱われる各コントローラに割り当てられた記憶手段であり、
前記統合手段は、当該各コントローラに割り当てられた記憶手段間の内容の整合性を確保する調停装置を備えた
ことを特徴とする統合コントローラ。
【請求項８】
請求項１乃至請求項７のいずれか１項に記載の統合コントローラにおいて、
仮想的に単一のコントローラとして扱われる各コントローラは、同一のプログラムを解釈し実行することを特徴とする統合コントローラ。
【請求項９】
請求項１乃至請求項８のいずれか１項に記載の統合コントローラにおいて、
仮想的に単一のコントローラとして扱われる各コントローラを組み込むための実装手段を付加したことを特徴とする統合コントローラ。
【請求項１０】
請求項１乃至請求項９のいずれか１項に記載の統合コントローラにおいて、
仮想的に単一のコントローラとして扱われる各コントローラで実行される処理が更新される場合に、先の処理で扱われていたデータが保持され、新規の処理で新しく扱われるデータがこの先の処理で扱われていたデータに追加されることを特徴とする統合コントローラ。
【請求項１１】
異種の制御処理を実行する複数のコントローラと、前記複数のコントローラから共通してアクセス可能であり前記複数のコントローラで共通に扱われるグローバル変数を記憶する共有記憶手段を備え前記複数のコントローラを仮想的に単一のコントローラとして機能させる統合手段とを具備する統合コントローラと、
前記複数のコントローラと異なる他のコントローラと、
前記統合コントローラと前記他のコントローラとから共通してアクセス可能であり、前記統合コントローラと前記他のコントローラとで共通に扱われるシステム・グローバル変数を記憶するシステム共有記憶手段を備え、前記統合コントローラと前記他のコントローラとを仮想的に単一のコントローラとして機能させる上位統合手段と
を具備し、
前記複数のコントローラと前記他のコントローラとは、一連の制御を分割した制御内容を実行する
ことを特徴とする制御システム。
【請求項１２】
請求項１１記載の制御システムにおいて、
前記複数のコントローラは、ループ制御とシーケンス制御とコンピュータ制御のうちの少なくとも一つを実現することを特徴とする統合コントローラ。
【請求項１３】
請求項１１又は請求項１２記載の統合コントローラにおいて、
前記他のコントローラは、仮想的に単一のコントローラとして機能する他の統合コントローラであることを特徴とする制御システム。
【請求項１４】
請求項１１乃至請求項１３のいずれか１項に記載の制御システムにおいて、
前記システム共有記憶手段は、仮想的に単一のコントローラとして扱われる各コントローラに割り当てられた記憶手段であり、
前記上位統合手段は、前記仮想的に単一のコントローラとして扱われる各コントローラに割り当てられた記憶手段間の内容の整合性を確保する調停装置を備えた
ことを特徴とする制御システム。
【請求項１５】
請求項１１乃至請求項１４記載の制御システムにおいて、
前記システム共有記憶手段は、前記システム・グローバル変数を、前記複数のコントローラと前記他のコントローラ毎の領域に記憶し、
前記システム共有記憶手段と、前記システム共有記憶手段の内容と外部のシステム共有記憶手段との内容の整合性を確保する調停手段とを備えた伝送装置をさらに具備する
ことを特徴とする制御システム。
【請求項１６】
請求項１５記載の制御システムにおいて、
前記システム共有記憶手段は、異なるネットワーク上のコントローラで共通に扱われるシステム・グローバル変数も各コントローラ毎の領域に記憶し、
前記調停手段は、前記異なるネットワーク間で前記システム・グローバル変数を相互に通知する
ことを特徴とする制御システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、鉄鋼プラント、製紙プラント、上下水道などの公共システム、自動車産業などの生産工程、化学・石油プラントなどの制御に利用されるコントローラ及び制御システムに関する。
【０００２】
【従来の技術】
現在、プラントや生産ライン等の各種分野で利用されている制御には、主にループ制御、シーケンス制御、コンピュータ制御の３つの態様がある。
【０００３】
ループ制御は、例えばプラントにおいてある部分の温度を所定の値に保つために繰り返し制御を行う場合等に利用され、代表的なものにＰＩＤ制御、フィードバック制御等がある。このループ制御は、温度の調整等に利用される制御手法であるため、制御周期は比較的低速（例えば数百ミリ秒〜数秒）でもよいとされている。主に、石油プラント、化学プラントで利用される。
【０００４】
シーケンス制御は、例えば生産ラインにおける第１工程、第２工程、第３工程をステップ毎に管理して順序を考慮した制御を行う等に利用され、所定の入力に対する一意的な出力を求めて制御する場合（組合せ論理を利用する場合）に主に適用される。このシーケンス制御は、制御内容に順序という時間的な要素を持ち、主に機械制御等に利用される制御手法であるため、制御周期が比較的高速（例えば数ミリ秒〜数百ミリ秒）に設定される。例えば製紙プラント、上下水道などの公共システム、自動車の生産ラインなどの産業用システムに広く利用される。
【０００５】
コンピュータ制御は、例えば収集したデータを情報処理あるいは解析して制御を行う場合に利用される制御手法でる。このコンピュータ制御は、例えばあるイベントが発生した場合にこのイベントに基づく制御を実現する。
【０００６】
上述したように、ループ制御を実行するループコントローラと、シーケンス制御を実行するプログラマブルコントローラと、コンピュータ制御を実現するためにＯＳに対応したソフトウェアを使用するパーソナルコンピュータとでは、一般的に制御対象、制御周期が異なる。また、制御処理の内容も性質が異なるため、制御処理の内容を記述するプログラミング言語も異なり、それぞれの態様毎に別のプラットフォーム（ハードウェア）を用い、別のプログラミング言語が利用される。
【０００７】
【発明が解決しようとする課題】
以上のように、主な制御の態様にはループ制御、シーケンス制御、コンピュータ制御があり、従来においては各制御対象に適した制御態様が選択されて利用される。例えば、食品加工における温度管理にはループ制御が利用され、加工後の食品のパッケージ工程ではシーケンス制御が利用される。
【０００８】
その一方で、ユーザは、例えば食品加工からパッケージまでを一貫して取り扱うことを希望する場合がある。すなわち、ループ制御の内容とシーケンス制御の内容をまとめて設計し、食品加工からパッケージ完了までをまとめて管理したいと考える場合がある。
【０００９】
しかしながら、ループ制御とシーケンス制御とでは、制御周期（制御タイミング）、使用するプラットホームの性質、利用するプログラミング言語等が異なる。ループ制御やシーケンス制御ではない他の制御を組み合わせたい場合も同様である。
【００１０】
したがって、従来においては、異種の制御を実現する異種のコントローラを併合しようとすると作業労力が高くなるため、異種のコントローラを積極的に統合して扱うという概念がなかった。
【００１１】
すなわち、従来において、異種コントローラを連係して動作させる場合には、データの変換、通信、制御周期の同期を実現する特別の装置（例えばタグコントローラ）が必要となるが、この場合、構成が複雑化し、管理負担が大きくなる。
【００１２】
さらに、異種コントローラ間の連携を実現する特別の装置を導入する場合には、データの変換に関する設定、通信に関する設定等の各種の設定を登録する必要があるため、導入時の負担が大きく、異種コントローラの新規の設置や処理内容の変更等も困難になる。
【００１３】
本発明は、以上のような実情に鑑みてなされたもので、特別な装置や作業を排除し、容易にかつ積極的に異種の制御手段を統合するために、異種の制御手段を単に連係動作させるのではなく、仮想的に単一の制御手段として取扱い可能とする統合コントローラ及び制御システムを提供することを目的とする。
【００１４】
【課題を解決するための手段】
本発明の骨子は、積極的に異種の制御手段の統合を図る点にある。
【００１５】
以下、本発明を実現するにあたって講じた具体的手段について説明する。
【００１６】
第１の発明の統合コントローラは、異種の制御処理を実行する複数のコントローラと、複数のコントローラから共通してアクセス可能であり、複数のコントローラで共通に扱われるグローバル変数を記憶する共有記憶手段を備え、複数のコントローラを仮想的に単一のコントローラとして機能させる統合手段とを具備し、複数のコントローラは、一連の制御を分割した制御内容を実行する。
【００１７】
この第１の発明の統合コントローラでは、異種のコントローラであっても仮想的に単一のコントローラとして機能させ、複数のコントローラに一連の制御を分割した制御内容を実行させ、単一のコントローラとして扱うことができるため、積極的に異種のコントローラを組み合わせて制御対象を制御することができる。
【００１８】
ゆえに、コントローラの間でのデータの交換や、制御の同期（例えばループ制御の結果ある部分の温度が所定の値になると、シーケンス制御により次の工程を開始する等）を容易にかつ適切に実行できる。
【００１９】
また、ユーザは異種のコントローラによる制御内容をまとめて設計、管理することができる。例えばループ制御による加工と、シーケンス制御によるパッケージをあわせて設計、プログラミング、作業の管理ができる。
【００２０】
さらに、各種コントローラを統合することで各種コントローラ毎の利点を組み合わせた制御を行うことができ、制御の質を向上させることができる。
【００２１】
さらに、異種のコントローラを仮想的に単一のコントローラとして扱うため、特別な装置の設置や設定の登録等を排除することができ、コントローラを統合する際の負担を抑制することができ、コントローラの追加や制御処理の変更等にも柔軟に対処することができる。
この第１の発明のように、各コントローラにおいて共通に利用されるグローバル変数（共有変数、共有データ）を、各コントローラが共通にアクセス可能な共有記憶手段に記憶することで、各コントローラ間でのデータの交換、制御の同期が単なるアクセスのみで可能になる。
これにより、各コントローラ内のプログラムの動作を、まとめて一つのプログラムの動作とみなすことができる。
したがって、この第１の発明の統合コントローラのように、グローバル変数を共有記憶手段に格納することにより、各コントローラの動作が仮想的に単一の動作を行っているとすることができる。
【００２２】
第２の発明は、第１の統合コントローラにおいて、ループ制御とシーケンス制御とコンピュータ制御のうちの少なくとも一つを実現する複数のコントローラを、統合手段が仮想的に単一のコントローラとして機能させるとしている。
【００２３】
したがって、この第２の発明の統合コントローラにおいては、異なる特徴を持つため、異なる装置として利用されてきたループ制御用のコントローラ、シーケンス制御用のコントローラ、コンピュータ制御用のコントローラをまとめて扱うことができる。
【００２４】
したがって、コントローラの種別に依存することなく、複数の制御内容を組み合わせた自由な制御の設計、プログラミング、作業の管理ができる。
【００２５】
また、ループ制御、シーケンス制御、コンピュータ制御を各種組み合わせて仮想的に単一のコントローラとして扱えるため、各コントローラの利点を活かした制御を実現することができる。
【００２６】
第３の発明は、第２の発明の統合コントローラにおいて、複数のコントローラのうちの第１のコントローラは、ループ制御とシーケンス制御とコンピュータ制御とのうちのいずれかを実行し、複数のコントローラのうちの第２のコントローラは、ループ制御とシーケンス制御とコンピュータ制御とのうち第１のコントローラと異種の制御を実行する統合コントローラである。
第４の発明は、第１から第３までのいずれかの発明の統合コントローラにおいて、複数のコントローラのうちの少なくとも一つを備えた複数のステーションを備え、統合手段はステーション内におけるコントローラ又はステーション間におけるコントローラを仮想的に単一のコントローラとして機能させる統合コントローラである。
【００２７】
ここで、ステーションとは、少なくとも一つのコントローラを内部に含む装置である。
【００２８】
すなわち、この第４の発明においては、ステーション内部のコントローラ、外部のステーションの内蔵するコントローラ、外部で仮想的に単一とされたコントローラのいずれをも自由に含めて、複数のコントローラを仮想的に単一のコントローラとして機能させる。
【００２９】
したがって、この第４の発明の統合コントローラにおいては、上記第１から第３までの発明と同様の作用・効果に加えて、内部に備えられるコントローラのみではなく、外部の他の装置に備えられるコントローラも含めて仮想的に単一のコントローラとして扱うことができる。
【００３０】
ゆえに、ネットワークで相互に接続されているコントローラからなる制御システム全体を単一のコントローラとして扱うことができる。
【００３１】
また、他の統合コントローラやステーションにおいて仮想的に単一のコントローラとして扱われているコントローラも含めて、仮想的に単一のコントローラとして扱うことができる。
【００３２】
ゆえに、複数の統合コントローラ間、ステーション間でも単一のコントローラとして扱うことができ、一層ユーザにとって有用であり、適切な制御を実現させることができる。
【００３７】
第５の発明は、第１から第４までのいずれかの発明の統合コントローラにおける共有記憶手段を、外部のコントローラ又は外部で仮想的に単一とされたコントローラからもアクセス可能であり、この外部のコントローラ又は外部で仮想的に単一とされたコントローラでも共通に扱われるグローバル変数を記憶するとしている。
【００３８】
したがって、外部のコントローラで実行される動作やプログラムも、この統合コントローラ内の動作やプログラムであるとみなすことができ、外部の装置とも統合できる。
【００３９】
第６の発明は、第１から第５までのいずれかの発明の統合コントローラにおいて、仮想的に単一のコントローラとして扱われる各コントローラは、共有記憶手段に記憶されているグローバル変数へのアクセスを、グローバル変数ではない他の変数のアクセスと同様の記述により実現可能としている。
【００４０】
この第６の発明においては、グローバル変数もグローバル変数ではないローカル変数も、同様の形式（フォーマット）で記述可能であるため、各コントローラで実行されるプログラムは両変数を同様の形式に基づいてアクセスすることができる。
【００４１】
これにより、ユーザは、コントローラで実行されるプログラムをグローバル変数とローカル変数とを区別することなく同一のフォーマットで記述することができ、また変数の存在場所を意識することなくプログラミングすることができるため、プログラミングが容易となる。
【００４２】
第７の発明は、第１から第６までのいずれかの統合コントローラにおいて、共有記憶手段は仮想的に単一のコントローラとして扱われる各コントローラに割り当てられた記憶手段であり、統合手段はこの各コントローラに割り当てられた記憶手段間の内容の整合性を確保する調停装置を備えている統合コントローラである。
【００４３】
なお、記憶手段の内容を一致させる手法には、例えばスキャン伝送が利用できる。また、各記憶手段には各コントローラ毎のデータ格納用領域を設けられているとしてもよく、また各領域の位置を全ての記憶手段間で同一としてもよい。
【００４４】
この第７の発明のように、例えばそれぞれのコントローラの有する記憶手段の内容を、各コントローラのための領域に分割し、この各領域の内容を一致させることで、グローバル変数の共有化、すなわち共有記憶手段が実現され、異種のコントローラを統合できる。
【００４５】
第８の発明は、第１から第７のいずれかの発明の統合コントローラにおいて、仮想的に単一のコントローラとして扱われる各コントローラは、同一のプログラムを解釈し実行するとしている。
【００４６】
この第８の発明においては、第１から第７の発明と同様の作用・効果に加え、各コントローラが同一のプログラム（命令コード）により動作するため、各コントローラ間のプログラムを相互に交換することができる。また、あるコントローラ用に開発したプログラムを異なる種別のコントローラに対しても適用することができる。ユーザは自由にプログラムを適用できる。
【００４７】
第９の発明は、第１から第８までの発明の統合コントローラにおいて、仮想的に単一のコントローラとして扱われる各コントローラを組み込むための実装手段を付加した統合コントローラである。
【００４８】
なお、この実装手段には、コネクタやスロットが利用できる。
【００４９】
この第９の発明においては、複数のコントローラが仮想的に単一のコントローラとして扱われるため、各コントローラがどの位置に配置されても、プログラムが何ら影響を受けることがない。
【００５０】
ゆえに、実装手段を設けることにより、自由な位置にコントローラを配置することができ、コントローラの変更や追加、削除を容易に実行することができる。
【００５１】
第１０の発明は、第１から第９までの発明の統合コントローラにおいて、仮想的に単一のコントローラとして扱われる各コントローラで実行される処理が更新される場合に、先の処理で扱われていたデータが保持され、新規の処理で新しく扱われるデータがこの先の処理で扱われていたデータに追加されるとしている。
【００５２】
この第１０の発明においては、コントローラのプログラムが更新されても、先のプログラムで利用されていたデータが引き続き継承できるため、プログラム実行中でのプログラム変更により、ローカル変数を使用する処理に変更があっても制御を継続でき、適切な制御を実現できる。
【００５３】
第１１の発明は、異種の制御処理を実行する複数のコントローラと、複数のコントローラから共通してアクセス可能であり複数のコントローラで共通に扱われるグローバル変数を記憶する共有記憶手段を備え複数のコントローラを仮想的に単一のコントローラとして機能させる統合手段とを具備する統合コントローラと、複数のコントローラと異なる他のコントローラと、統合コントローラと他のコントローラとから共通してアクセス可能であり、統合コントローラと他のコントローラとで共通に扱われるシステム・グローバル変数を記憶するシステム共有記憶手段を備え、統合コントローラと他のコントローラとを仮想的に単一のコントローラとして機能させる上位統合手段とを具備し、複数のコントローラと他のコントローラとは、一連の制御を分割した制御内容を実行する制御システムである。
【００５４】
この第１１の発明の制御システムにおいては、複数のコントローラを含む統合コントローラが単一のコントローラとして仮想的に取扱い可能とされる。
【００５５】
ゆえに、積極的に異種のコントローラを組み合わせて制御対象を制御することができる。また、各コントローラの利点を組み合わせた制御を実行することができる。また、異種のコントローラによる制御内容をまとめて設計、管理することができる。
この第１１の発明の制御システムにおいては、各コントローラからアクセス可能なシステム・共有記憶手段を備え、各コントローラで共通に取り扱われるシステム・グローバル変数をこのシステム共有記憶手段に記憶することで、各コントローラが仮想的に単一化されている。
【００５６】
第１２の発明は、第１１の発明の制御システムにおいて、複数のコントローラがループ制御とシーケンス制御とコンピュータ制御のうちの少なくとも一つを実現する統合コントローラである。
【００５７】
この第１２の発明の制御システムにおいては、上記第１１の発明と同様の作用・効果を得ることができ、さらにループ制御、シーケンス制御、コンピュータ制御のいずれのコントローラをも仮想的に単一のコントローラとして扱えるため、各種の制御の手法を組み合わせて各コントローラの利点を活かした制御を実現することができる。
【００５８】
第１３の発明は、第１１又は第１２の発明の統合コントローラにおいて、他のコントローラは、仮想的に単一のコントローラとして機能する他の統合コントローラである制御システムである。
【００６０】
第１４の発明は、第１１から第１３までのいずれかの制御システムにおいて、システム共有記憶手段は、仮想的に単一のコントローラとして扱われる各コントローラに割り当てられた記憶手段であり、上位統合手段は、仮想的に単一のコントローラとして扱われる各コントローラに割り当てられた記憶手段間の内容の整合性を確保する調停装置を備えている制御システムである。
【００６１】
この第１４の発明の制御システムにおいては、システム共有記憶手段を、仮想的に単一のコントローラとして扱われる各統合コントローラに割り当てられた記憶手段の内容を一致させることで実現している。
【００６２】
例えば、各統合コントローラに記憶手段を割り当て、この各記憶手段には各統合コントローラ毎の領域が用意されており、この各記憶手段の内容を一致させることで、変数の内容を共有化させることができる。
【００６３】
第１５の発明は、第１１から第１４までのいずれかの発明の制御システムにおいて、システム共有記憶手段は、システム・グローバル変数を、複数のコントローラと他のコントローラ毎の領域に記憶し、システム共有記憶手段と、システム共有記憶手段の内容と外部のシステム共有記憶手段との内容の整合性を確保する調停手段とを備えた伝送装置をさらに具備する制御システムである。
【００６４】
この第１５の発明において、伝送装置を備えることで、統合コントローラと他のコントローラとを仮想的に単一に扱うことができる。
【００６７】
第１６の発明は、第１５の発明の制御システムにおいて、システム共有記憶手段は、異なるネットワーク上のコントローラで共通に扱われるシステム・グローバル変数も各コントローラ毎の領域に記憶し、調停手段は、異なるネットワーク間でシステム・グローバル変数を相互に通知するとしている。
【００６８】
この第１６の発明の制御システムにおいては、異なるネットワーク上のコントローラに対しても、システム・グローバル変数とシステム共有記憶手段とにより仮想的に単一のコントローラとして扱える。また、システム共有記憶手段を介してデータを通知するため、異なるネットワーク間でのデータ交換を特定のコントローラや専用のゲートウェイ装置を用いることなく実現できる。
【００６９】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態について説明する。
【００７０】
（第１の実施の形態）
本実施の形態においては、複数の制御手段を統合するコントローラについて説明する。
【００７１】
図１は、本実施の形態に係る統合コントローラの構成を示すブロック図である。
【００７２】
この統合コントローラ（ステーション）１は、ループ制御を実行するためのコントローラ（制御手段）２と、シーケンス制御を実行するためのコントローラ３と、コンピュータ制御を実行するためのコントローラ４と、各コントローラ２〜４を統合する統合部５とを備えている。
【００７３】
統合部５は、各コントローラ２〜４を仮想的に単一のコントローラとして動作可能とする部分である。以下においては、例として共有メモリ及び共有バスから構成される統合部５を例として説明する。
【００７４】
図２は、本実施の形態に係る統合コントローラ１の統合部５を共有メモリと共有バスとにより構成した場合のブロック図を示す。
【００７５】
各コントローラ２〜４は、他のコントローラにおいても共通に扱われるグローバル変数（データ）を利用して処理（プログラム）を実行する。
【００７６】
統合部５の共有バス５ａは、各コントローラ２〜４及び共有メモリ５ｂと接続されており、各コントローラ２〜４から共有メモリ５ｂへのアクセスを可能としている。
【００７７】
共有メモリ５ｂは、各コントローラ２〜４が共有バス５ａを介して共通にアクセス可能な記憶装置である。この共有メモリ５ｂは、グローバル変数を記憶する。
【００７８】
上記のような構成を持つ統合コントローラ１においては、各コントローラ２〜４で相互に利用されるグローバル変数が共有メモリ５ｂに格納される。
【００７９】
この共有メモリ５ｂに対しては、コントローラ２〜４のいずれからでもアクセス可能である。したがって、共有メモリ５ｂ上のグローバル変数は、各コントローラ２〜４が自己の変数（ローカル変数）をアクセスするのと同様に、他のコントローラからもアクセス可能である。
【００８０】
本実施の形態に係る統合コントローラ１によれば、異種コントローラ２〜４間でのデータ交換を、共有するグローバル変数を介して容易に実行できる。
【００８１】
これにより、他コントローラ内のプログラムの動作が自コントローラ内のプログラムの動作と同様にみなすことができるため、異種のコントローラ２〜４の統合体をあたかも一つのコントローラのように扱うことが可能となる。
【００８２】
例えば、コントローラ２〜４のうちのいずれかが共有メモリ５ｂにグローバル変数として書き込んだ後、他のコントローラが共有メモリ５ｂからグローバル変数を読み出すことにより、コントローラ間でデータの転送処理等を行わなくてもデータを交換することができる。また、このような異種コントローラ２〜４によるデータの交換時に、データ型の変更、データ通信を行う必要がない。
【００８３】
また、いずれかのコントローラが共有メモリ５ｂにグローバル変数を書き込み、この共有メモリ５ｂ上のグローバル変数を他のコントローラが監視する。そして、このグローバル変数の値が所定の範囲に含まれた場合に所定の制御を実行することで、コントローラ間の制御タイミングの調整を実行することができる。
【００８４】
このように、共有バス５ａ及び共有メモリ５ｂからなる統合部５により、異種コントローラ２〜４間でのデータの交換や制御の同期が適切になされるので、異種コントローラ２〜４の複合体をあたかも一つのコントローラのように扱うことが可能となる。
【００８５】
以上説明したように、本実施の形態に係る統合コントローラ１においては、各コントローラ２〜４で共用されるグローバル変数を、各コントローラ２〜４が共通にアクセス可能な共有メモリ５ｂに記憶することで、各コントローラ２〜４を仮想的に単一のコントローラとして統合している。
【００８６】
これにより、ある一連の制御のうち、ループコントローラに適した制御をループコントローラ２に実行させ、シーケンスコントローラに適した制御をシーケンスコントローラ３に実行させる等のように、適切な制御を適切な環境で実現させることができる。すなわち、ユーザは制御の内容をまとめて設計し、その設計した制御内容を適切なコントローラに分割して配置し、まとめて管理することができる。
【００８７】
また、本実施の形態においては、特別の装置や設定入力を必要とすることなく、コントローラ２〜４間をまとめることができるため、新規のコントローラの設置や、コントローラ２〜４の処理内容の変更を容易にでき、作業を簡素化することができる。
【００８８】
特に、本実施の形態においては、単にメモリをアクセスするのと同様の作業でデータの共有、制御周期の適切化が可能となるため、コントローラ間でのデータ伝送処理や、データ変換が必要なく、処理を簡略化することができる。
【００８９】
なお、本実施の形態においては、共有バス５ａと共有メモリ５ｂとから統合部５が構成されており、各コントローラ２〜４が共有バス５ａを介して共有メモリ５ｂ上のグローバル変数にアクセスすることで統合した場合について説明している。しかしながら、コントローラの統合手法はこれに限定されるものではなく、例えば各コントローラを単に共有バス５ａで接続し、相互にグローバル変数を通知するとしてもよい。また、例えば、共有バス５ａを介することなく、各コントローラが直接共有メモリ５ｂをアクセスするとしてもよい。
【００９０】
また、本実施の形態に係る統合コントローラ１においては、ループ制御、シーケンス制御、コンピュータ制御を行う３種のコントローラ２〜４をそれぞれ１つ備えている場合を例として説明しているが、これに限定されるものではない。例えば、コントローラの数はいくつでもよく、自由に削除、追加させることができる。また、コントローラの種別はどのようなものでもよい。
【００９１】
（第２の実施の形態）
本実施の形態においては、先で述べた第１の実施の形態に係る統合コントローラの変形例について説明する。
【００９２】
図３は、本実施の形態に係る統合コントローラ６の構成を示すブロック図であり、図１及び図２と同一の部分については同一の符号を付してその説明を省略し、ここでは異なる部分についてのみ詳しく説明する。
【００９３】
統合コントローラ６の統合部７は、共有メモリ２ａ〜４ａと共有バス５ａとから構成されている。
【００９４】
この統合コントローラ６の備える各コントローラ２〜４には、統合部７の要素である共有メモリ２ａ〜４ａが内蔵されており、さらにこの各共有メモリ２ａ〜４ａは相互に共有バス５ａに接続されている。
【００９５】
各コントローラ２〜４で扱われるグローバル変数は、それぞれのコントローラ２〜４に内蔵されている共有メモリ２ａ〜４ａに記憶され、さらに各共有メモリ２ａ〜４ａの記憶内容は他の記憶メモリに通知され、記憶される。
【００９６】
すなわち、本実施の形態においては、各コントローラ２〜４の共有メモリ２ａ〜４ａには、各コントローラ２〜４が管理する変数が格納されている。そして、この各コントローラ２〜４が管理する変数の内容は、各共有メモリ２ａ〜４ａ間でやり取りされて全ての共有メモリ２ａ〜４ａに記憶される。
【００９７】
なお、本実施の形態においては、この各変数のアドレスは、各共有メモリ２ａ〜４ａで同一であり、各変数へのアドレスの割り当ては、全体を管理するエンジニアリングツールが行う。
【００９８】
これにより、各共有メモリ２ａ〜４ａにおいて同一の変数が同一の位置に配置されることになり、各コントローラが他のコントローラで管理される変数を自コントローラ内の変数と同様にアクセス可能となる。
【００９９】
以上説明したように、本実施の形態に係る統合コントローラ６においては、各記憶メモリ２ａ〜４ａ上に全てのコントローラ２〜４で扱われるグローバル変数が記憶され、同一の記憶内容となる。
【０１００】
したがって、各コントローラ２〜４は、自己に備えられている記憶メモリ２ａ〜４ａを参照して他のコントローラで扱われているグローバル変数を利用することができる。
【０１０１】
すなわち、本実施の形態においては、各コントローラ２〜４が共有メモリ上のグローバル変数を介して接続されており、このグローバル変数がどのコントローラからも自コントローラ内の変数をアクセスするのと同様にアクセス可能であるため、データの交換や制御周期の調整が実現できる。
【０１０２】
ゆえに、本実施の形態においては、先で説明した第１の実施の形態と同様の状態、すなわちコントローラ２〜４を仮想的に単一のコントローラとして扱うことができる。
【０１０３】
（第３の実施の形態）
本実施の形態においては、自己内のコントローラのみではなく外部のコントローラも含めて、仮想的に単一のコントローラとして取り扱う統合コントローラについて説明する。
【０１０４】
また、本実施の形態に係る統合コントローラは、外部において既に仮想的に単一とされたコントローラであっても、さらに仮想的に単一のコントローラとして取り扱う。
【０１０５】
図４は、本実施の形態に係る統合コントローラによって構成される計算機システムを示すブロック図であり、図１と同一の部分については同一の符号を付してその説明を省略し、ここでは異なる部分についてのみ詳しく説明する。
【０１０６】
計算機システム８は、２台の統合コントローラ９ａ、９ｂを備えており、この２台の統合コントローラ９ａ、９ｂの双方が上位統合部１０にアクセス可能である。
【０１０７】
各統合コントローラ９ａ、９ｂは、先の第１の実施の形態で説明した統合コントローラ１と同様の構成で同様に作用し、統合部５は統合コントローラ９ａ、９ｂ毎に内部のコントローラ２〜４をあたかも一つのコントローラとして取扱い可能とする。
【０１０８】
上位統合部１０は、一つのコントローラとして取扱い可能な結合コントローラ９ａ、９ｂをさらに一つのコントローラとして取扱い可能とする。
【０１０９】
上記のような統合コントローラ９ａ、９ｂ及び上位統合部１０により構成される計算機システム８の具体例について説明する。
【０１１０】
図５は、本実施の形態に係る統合コントローラ９ａ、９ｂによって構成される計算機システム８を具体的に示すブロック図であり、図２と同一の部分については同一の符号を付してその説明を省略し、ここでは異なる部分についてのみ詳しく説明する。
【０１１１】
統合コントローラ９ａ、９ｂ内でのグローバル化（ステーション・グローバル）を実現する統合部５は、共有バス５ａと共有メモリ５ｂとから構成されている。
【０１１２】
一方、上位統合部１０は、各統合コントローラ９ａ、９ｂに備えられる２台の伝送装置１０ａとシステム共有メモリ１０ｂとから構成されている。
【０１１３】
共有バス５ａには、コントローラ２〜４及び共有メモリ５ｂに加えて、伝送装置１０ａが接続されており、各コントローラ２〜４が共有バス５ａ及び伝送装置１０ａを介してシステム共有メモリ１０ｂへのアクセスを可能としている。
【０１１４】
各統合コントローラ９ａ、９ｂの備える共有メモリ５ｂには、各統合コントローラ９ａ、９ｂ毎に、コントローラ２〜４で共通して扱われるステーション・グローバル変数が記憶される。共有メモリ５ｂ上のステーション・グローバル変数は、同一の統合コントローラ９ａ、９ｂ内の各コントローラ２〜４から共通にアクセス可能であり、これにより各統合コントローラ９ａ、９ｂ毎のグローバル化がなされる。
【０１１５】
また、各統合コントローラ９ａ、９ｂの備える伝送装置１０ａは、コントローラ２〜４からシステム共有メモリ１０ｂへのアクセスを実現する。
【０１１６】
システム共有メモリ１０ｂは、制御システム８におけるグローバル化（システム・グローバル）を実現するための要素である。このシステム共有メモリ１０ｂには、統合コントローラ９ａ、９ｂ間で共有されるシステム・グローバル変数が記憶され、統合コントローラ９ａ、９ｂ双方に備えられているコントローラ２〜４が伝送装置１０ａを介して共通にアクセス可能である。
【０１１７】
すなわち、本実施の形態においては、複数の統合コントローラ９ａ、９ｂがシステム共有メモリ１０ｂ上のシステム・グローバル変数で接続されている。システム共有メモリ１０ｂ上のシステム・グローバル変数は、どの統合コントローラのどのコントローラからでもアクセス可能であり、自コントローラ内の変数と同様の方法でアクセス可能である。したがって、このシステム・グローバル変数を利用して各統合コントローラ９ａ、９ｂ間のデータ交換や制御タイミングの調整が実現され、統合コントローラ９ａ、９ｂの複合体をあたかも一つのコントローラのように扱うことが可能となる。
【０１１８】
以上説明したように、本実施の形態においては、同一の統合コントローラ内のコントローラ間でのデータ交換を行うステーション・グローバル変数、及び複数の統合コントローラ間でのデータ交換を行うシステム・グローバル変数とによる２レベルのグローバル変数を使用可能とした。
【０１１９】
これにより、複数のコントローラを一つのコントローラとして扱う統合コントローラを、さらに一つのコントローラとして扱うことができ、各種の制御を組み合わせて適切な制御を実現することができる。また、ユーザが制御の設計、管理するのに有効な制御システムを提供することができる。
【０１２０】
なお、本実施の形態においては、ステーション及びシステムの２レベルで統合を行っているが、さらにシステム間で統合を行ってもよく、複数の統合階層を実現できる。
【０１２１】
（第４の実施の形態）
本実施の形態においては、先で述べた第３の実施の形態に係る統合コントローラによって構成される計算機システムの変形例について説明する。
【０１２２】
図６は、本実施の形態に係る統合コントローラによって構成される計算機システムを示すブロック図であり、図３乃至図５と同一の部分については同一の符号を付してその説明を省略し、ここでは異なる部分についてのみ詳しく説明する。
【０１２３】
計算機システム１１は、２台の統合コントローラ１２ａ、１２ｂを備えている。この各統合コントローラ１２ａ、１２ｂは、先の第２の実施の形態で説明した統合コントローラ６と同様の構成に加えて、それぞれシステム共有メモリ１３を内蔵する伝送装置１４を持つ。
【０１２４】
上位統合部１５は、この各統合コントローラ１２ａ、１２ｂに備えられた２台の伝送装置１４により構成される。
【０１２５】
本実施の形態において、各コントローラ２〜４は、システム・グローバル変数を同一の統合コントローラに配置されている伝送装置１４内のシステム共有メモリ１３に記憶する。
【０１２６】
各伝送装置１４の間では、内部のシステム共有メモリ１３内のシステム・グローバル変数の内容が他の伝送装置１４に送信されており、各システム共有メモリ１３の等値化が常時行われている。
【０１２７】
この各伝送装置１４内のシステム共有メモリ１３には、同一の統合コントローラ内のどのコントローラ２〜４からでもアクセス可能である。
【０１２８】
したがって、他の統合コントローラで扱われるシステム・グローバル変数であっても、自己のシステム共有メモリ１３を参照することで容易にかつ高速に利用可能であり、これにより統合コントローラ１２ａ、１２ｂ間でデータの交換、制御タイミングの調整が可能となる。
【０１２９】
以上説明したように、本実施の形態においては、統合コントローラ１２ａ、１２ｂ間でデータの交換、制御タイミングの調整が可能となり、統合コントローラ１２ａ、１２ｂの複合体を一つのコントローラのように扱うことができる。
【０１３０】
したがって、本実施の形態においては、上記第３の実施の形態と同様に、適切な制御を実現させることができ、ユーザにとって便利な制御システムを提供できる。
【０１３１】
（第５の実施の形態）
本実施の形態においては、上記各実施の形態における統合コントローラで扱われる命令語の形式について説明する。
【０１３２】
図７は、本実施の形態に係る統合コントローラが使用する命令語のフォーマットを例示する図。
【０１３３】
命令語１６においてオペランドのアドレスはオフセットアドレス１６ｂの他に、変数の存在場所を示すコード１６ａを持っている。このコード１６ａは、グローバル変数が統合コントローラ内にあるのか、統合コントローラ外にあるのかなどを指定している。
【０１３４】
変数をアクセスする場合には、まず存在位置を示すコード１６ａに基づいてアクセス先を取得し、次にこのアクセス先におけるオフセットアドレス１６ｂの示す部分をアクセスするという形式を採用する。すると、グローバル変数も、ローカル変数も同様にアクセスすることが可能となる。
【０１３５】
また、本実施の形態に係る統合コントローラにおいては、先で述べた第４の実施の形態の場合と同様に、統合コントローラが伝送装置内に共有メモリを持ち、常に各共有メモリの内容を等値化する処理を行っている。
【０１３６】
図８は、伝送装置内の共有メモリの内容を等値化させる処理の具体例を示すブロック図である。
【０１３７】
伝送装置１７〜１９は、それぞれ異なる統合コントローラ２０〜２２に備えられている。各伝送装置１７〜１９の中の共有メモリ２３〜２５は、各統合コントローラ２０〜２２がデータを出力する領域（エリア）を独立して確保しており、出力されたデータは他の伝送装置内の共有メモリに定期的に送信される。
【０１３８】
以上のように、共有メモリの内容を一致させ、グローバル変数に関する命令語フォーマットとローカル変数に関する命令語フォーマットを一致させることで、容易に他の統合コントローラで扱われる変数を利用することができる。
【０１３９】
通常、伝送装置を介して変数をアクセスし、利用する場合には、伝送処理（伝送関数の実行）などが必要であり、変数をアクセスするためのプログラムを作成する必要がある。
【０１４０】
しかしながら、本実施の形態においては、共有メモリをアクセスするだけでグローバル変数にアクセスできることになり、統合させるために特別なプログラムを作成する必要がない。
【０１４１】
以上説明したように、本実施の形態に係る統合コントローラにおいては、共有メモリの等値化が行われている。また、複数の統合コントローラが共有するグローバル変数を指定するアドレスに、データが存在する場所を示すコードを付与し、グローバル変数をローカル変数と同様の方法でアクセス可能としている。
【０１４２】
したがって、本実施の形態においては、自コントローラ内のプログラムが利用するローカル変数も、他のコントローラ内の変数も、グローバル変数と同一のフォーマットで記述可能であり、変数の存在位置を意識することなくプログラミングすることができる。
【０１４３】
これに対し、上記のような統合がなされないコントローラ間では、他のコントローラから変数を読み出す関数を実行し、その関数の出力を利用する必要があり、プログラムが煩雑になる。
【０１４４】
ゆえに、先で述べた効果と同様の効果に加えて、制御プログラムの作成を簡略化させることができ、ユーザによって便利な統合コントローラを提供することができる。例えば、他のコントローラで扱われる変数を、関数の入力として直接記述することができる。
【０１４５】
（第６の実施の形態）
本実施の形態においては、上記各実施の形態と同様にコントローラをまとめて取扱い可能であり、さらに異種のコントローラが共通の命令語を実行するものとする。
【０１４６】
この統合コントローラに含まれる各コントローラは、命令語コードをハードウェアで実行しても良いし、ソフトウェアのインタプリタで実行してもよい。
【０１４７】
すなわち、本実施の形態に係る統合コントローラにおいては、内部のコントローラがシーケンスコントローラであっても、ループコントローラであっても、その他のコントローラであっても、同一の命令語を解釈して実行する。
【０１４８】
また、本実施の形態に係る統合コントローラに格納されている各種コントローラは、単一のコントローラとして取扱い可能であるため、同一のＩ／Ｏモジュールにアクセス可能で同一の環境を持っている。
【０１４９】
したがって、どのコントローラにプログラムを実行させても実行速度の相違こそあれ、実行結果は同一となるように構成されている。
【０１５０】
したがって、共通のプログラム編集手段でプログラムを作成した場合であっても、最適なコントローラを選択して作成したプログラムを実行させることができる。また、プログラムを自由に分割して複数のコントローラに分担させて実行することができる。また、任意のコントローラに任意のプログラムを実行させることができる。
【０１５１】
（第７の実施の形態）
本実施の形態においては、内蔵するコントローラの配置位置を変更したり、新規のコントローラを搭載可能な実装部を持つ統合コントローラについて説明する。
【０１５２】
上記各実施の形態で説明した統合コントローラにおいて、先の図７に示すような命令語コードを使用すると、共有メモリの存在場所は統合コントローラ内のどのコントローラからみても同一のアドレスによって指定可能な構成になっている。
【０１５３】
したがって、同一の統合コントローラ内であればどこにコントローラが実装されても、プログラムを実行して同一の結果を得ることが可能である。
【０１５４】
なお、共有メモリを各コントローラ内に持たせた構成の場合には、プログラム実行前に自コントローラが他のコントローラのアドレスを確認する必要があるが、その後は他のコントローラの論理的アドレスと物理的アドレスを常に変換しながらアクセスすることで同様の効果を得ることが可能である。
【０１５５】
以上のように、本実施の形態に係る統合コントローラにおいては、内部のコントローラの実装位置によってグローバル変数のアクセス方法が変化しない。
【０１５６】
ゆえに、コントローラ搭載用のスロットやコネクタ等の実装部を統合コントローラに設けることで、コントローラを自由に実装することができ、実装位置にしたがってプログラムを変更する必要がないため、コントローラの変更を容易に行うことができる。
【０１５７】
（第８の実施の形態）
本実施の形態においては、オブジェクト指向プログラミングにより作成されたプログラムを実行する統合コントローラについて説明する。
【０１５８】
本実施の形態に係る統合コントローラは、上記各実施の形態で述べた統合コントローラの含む各コントローラに対してオブジェクト指向プログラミングを可能としたものとする。すると、本実施の形態に係る統合コントローラにおいて、各コントローラで実行されるプログラムと固有のデータとは、対になる。
【０１５９】
オブジェクト指向プログラミングを利用した場合、通常はプログラムのコンパイル時にデータのアドレスが決定され、プログラムの変更があるとデータのアドレスも変化してしまう。また、データ領域はプログラム変更時に新しい領域に確保し直されるので、プログラム変更前のデータの内容は失われてしまう。
【０１６０】
本実施の形態に係る統合コントローラでは制御の連続性を保つことを目的とし、変更前の処理において利用されていたデータを変更後の処理においても継続利用可能とするために、プログラム変更後にローカルデータの値も維持するように構成している。
【０１６１】
なお、グローバル変数は、他のコントローラによる処理において利用される場合があるため、処理を変更した後においても当然に共有メモリに確保されている。
【０１６２】
このようにプログラム変更前のデータを確保するため、コンパイルを実行するエンジニアリングツールは、プログラム実行中のプログラム変更時に、ローカル変数のオフセットアドレスが変化しないようなコンパイルを行う。
【０１６３】
図９は、本実施の形態に係る統合コントローラに備えられているコントローラのプログラムが変更された場合のメモリ領域の変化を示す概念図である。
【０１６４】
つまり、変更後において変数が新規に追加された場合にはこれまでのデータ領域２６に追加する形で新規の変数アドレスが領域２７に確保され、新しいアドレスが使用される。加えて、旧変数のいずれかが削除された場合でもそのオフセットアドレスは新たに使用されずに使用を保留された状態にしておく。そして、プログラムをコントローラに格納する際に、新規に追加するべきデータ領域の大きさと旧データ領域からコピーすべきデータ量を、プログラミング支援ツールからコントローラに指示するようにしている。
【０１６５】
以上説明したように、本実施の形態においては、プログラムの変更によりローカルデータの構成に変更があり、データ領域の割付に変更があったとしても、プログラム変更前から存在していた変数の内容、アドレスが変更されない。
【０１６６】
したがって、オブジェクト指向プログラムを採用していてもオンライン変更に対応することが可能となり、ローカルデータを使用しながらも変更前のローカルデータを引き継いでプログラムを継続実行することができる。
【０１６７】
これにより、プログラム実行中にプログラムを変更しても、変更前のローカルデータの内容を引き継いでプログラムを継続させることもできる。
【０１６８】
（第９の実施の形態）
本実施の形態においては、複数のコントローラを統合し、この統合した複数のコントローラをさらに統合する伝送装置を備えた統合コントローラについて説明する。
【０１６９】
図１０は、本実施の形態に係る統合コントローラを備えた制御システムの構成を示すブロック図である。
【０１７０】
また、図１１は、本実施の形態に係る統合コントローラ単体の構成を示すブロック図である。
【０１７１】
なお、この図１０及び図１１の説明において、図１と同一の部分については同一の符号を付してその説明を省略する。
【０１７２】
制御システム２８は、ネットワーク２９に３台の統合コントローラ３０ａ〜３０ｃが接続されて構成されている。
【０１７３】
各統合コントローラ３０ａ〜３０ｃには、コントローラ２〜４に加えて統合部として動作する伝送装置３１ａ〜３１ｃが備えられており、それぞれがシステムバス３６に接続されている。
【０１７４】
各統合コントローラ３０ａ〜３０ｃ内部の伝送装置３１ａ〜３１ｃにはそれぞれ共有メモリ３２ａ〜３２ｃが実装されている。さらに、伝送装置３１ａ〜３１ｂには、それぞれ他の伝送装置との間で通信を行う伝送部（伝送回路）３３及び共有メモリ３２ａ〜３２ｃ間の調整を行う調停部（調停回路）３４とが実装されている。
【０１７５】
共有メモリ３２ａは、統合コントローラ３０ａが書込む領域３５ａと、統合コントローラ３０ｂからのデータを受信して書込む領域３５ｂ、統合コントローラ３０ｃからデータを受信して書込む領域３５ｃとに区切られている。
【０１７６】
また、上記の各領域３５ａ〜３５ｃは、さらに各コントローラ２〜４毎の領域に区切られている。
【０１７７】
なお、共有メモリ３２ｂ、３２ｃも図１１に示すように共有メモリ３２ａと同様に区切られており、同様の構成を持つ。
【０１７８】
各統合コントローラ３０ａ〜３０ｃは、定期的に自己が割り付けられている領域の記憶内容を他の統合コントローラに送信する。
【０１７９】
すなわち、統合コントローラ３０ａは定期的に共有メモリ３２ａ上の領域３５ａの内容を統合コントローラ３０ｂ、３０ｃに送信する。統合コントローラ３０ｂは統合コントローラ３０ａからの受信データを共有メモリ３２ｂ上の領域３５ａに相当する領域に書込む。同様に統合コントローラ３０ｃは統合コントローラ３０ａからの受信データを共有メモリ３２ｃ上の領域３５ａに相当する領域に書込む。共有メモリ３２ａ〜３２ｃ上の他の領域３５ｂ、３５ｃについても各統合コントローラ３０ａ〜３０ｃは同様の動作を行う。
【０１８０】
以下に、共有メモリ３２ａの利用状態について統合コントローラ３０ａの場合を例として説明する。
【０１８１】
図１１に示すように、共有メモリ３２ａ上の領域３５ａは、統合コントローラ３０ａに実装されているコントローラ（コントローラモジュール）２〜４が使用する領域に区切られている。
【０１８２】
コントローラ２〜４はシステムバス３６を経由して共有メモリ３２ａ上の領域３５ａの割り付けられた領域にデータを書き込み可能とする。
【０１８３】
また、各コントローラ２〜４は、共有メモリ３２ａ上の領域３５ａの自己に割り付けられた領域及び他のコントローラの領域を自由に読み出すことが可能とする。
【０１８４】
コントローラ２は、共有メモリ３２ａ上の領域３５ａにおけるコントローラ２の領域にプログラムで使用する変数を定義し、書き込んで、定期的に更新する。
【０１８５】
この共有メモリ３２ａ上の領域３５ａの内容は、他の統合コントローラ３０ｂ、３０ｃの共有メモリ３２ｂ、３２ｃ上の領域３５ａに記憶される。
【０１８６】
他の統合コントローラ３０ｂ、３０ｃに実装されているコントローラ２〜４は、共有メモリ３２ａ〜３２ｃ上の統合コントローラ３０ａの領域３５ａにおけるコントローラ２の記憶領域に存在する変数を読み出すことができる。
【０１８７】
それにより、統合コントローラ３０ａ〜３０ｃに備えられている全てのコントローラ間で変数を共有することが可能となり、統合コントローラ内、及びシステム内でのグローバル変数を実現する。
【０１８８】
以上説明した本実施の形態に係る統合コントローラの伝送装置を利用することで、複数のコントローラをまとめて一つのコントローラとして取扱い可能となる。また、まとめて一つのコントローラとしたコントローラ群をさらにまとめて扱うこともできる。
【０１８９】
ゆえに、ループ制御、シーケンス制御、コンピュータ制御等の種別を自由に適用して、ユーザの要求する制御内容を適切なコントローラで実行させることができる。
【０１９０】
（第１０の実施の形態）
本実施の形態においては、異種系統のネットワークに接続されたコントローラ間を、ゲートウェイ装置を利用することなく統合する伝送装置を備えた統合コントローラについて説明する。
【０１９１】
図１２は、本実施の形態に係る統合コントローラを備えた制御システムを構成するブロック図であり、図１０と同一の部分については同一の符号を付してその説明を省略し、ここでは異なる部分についてのみ詳しく説明する。
【０１９２】
制御システム３７は、統合コントローラ３８が接続されたネットワーク３９ａ及び統合コントローラ４０が接続されたネットワーク３９ｂに、統合コントローラ４１が接続されて構成されている。
【０１９３】
この制御システム３７において、ネットワーク３９ａ、３９ｂは、例えばイーサネットとField busというように系統が異なっているとする。
【０１９４】
本実施の形態に係る統合コントローラ４１は、コントローラ２、３に加えて、第１の伝送装置４２、第２の伝送装置４３とを備える。
【０１９５】
第１の伝送装置４２はネットワーク３９ｂに接続されており、第２の伝送装置４３はネットワーク３９ａに接続されており、それぞれが同一の統合コントローラ４１に実装されている。
【０１９６】
各伝送装置４２、４３には、ネットワーク３９ｂ、３９ａとの間での通信を行う伝送部４５と、記憶内容の共有化を実現するための調停部４６が実装されている。
【０１９７】
さらに、第１の伝送装置４２内には共有メモリ４４が実装されており、共通メモリ４４は、伝送装置４２で得られたデータを記憶する領域４４ａ、コントローラ２からのデータを記憶する領域４４ｂ、コントローラ３からのデータを記憶する領域４４ｃ、伝送装置４３で得られたデータを記憶する領域４４ｄに区切られている。
【０１９８】
ネットワーク３９ｂに接続されている統合コントローラ４０が、ネットワーク３９ａに接続されている統合コントローラ３８にデータを送信する場合、まず統合コントローラ４０は、統合コントローラ４１内部の伝送装置４２内の共有メモリ４４上の領域４４ａにデータを書込む。
【０１９９】
伝送装置４３は、伝送装置４２用の領域４４ａに書込まれたデータを読み出し、ネットワーク３９ａに接続されている統合コントローラ３８に送信する。
【０２００】
逆に、ネットワーク３９ａに接続されている統合コントローラ３８が、ネットワーク３９ｂに接続されている統合コントローラ４０にデータを送信する場合、統合コントローラ４１は、伝送装置４３でデータを受信し、共有メモリ４４上の伝送装置４３用の領域４４ｄにデータを書込む。
【０２０１】
伝送装置４２は、共有メモリ４４上の伝送装置４３用の領域４４ｄに書込まれたデータを読み出し、ネットワーク３９ｂに接続されている統合コントローラ４０に送信する。
【０２０２】
以上説明したように、本実施の形態に係る統合コントローラ４１の伝送装置４２，４３を適用すると、系統の異なる別々のネットワーク３９ａ、３９ｂ間で共有メモリを介してデータを伝送するため、ネットワーク３９ａ、３９ｂに属する統合コントローラ３８、４０間でのデータの交換を、コントローラ及び専用のゲートウェイ装置を用いることなく実現できる。
【０２０３】
ゆえに、容易に統合コントローラ３８、４０、４１をまとめて一つのコントローラとすることができ、異種ネットワーク間でもデータの交換を高速に実現し、適切に制御タイミングを調整できる。
【０２０４】
【発明の効果】
以上詳記したように本発明においては、ループ制御、シーケンス制御、コンピュータ制御のように制御の手法が異なる制御手段を仮想的に一つの制御手段として取扱うことができる。
【０２０５】
したがって、各制御手段の特徴を組み込んだ制御が実現でき、適切に制御対象を制御することができる。
【０２０６】
また、本発明においては、複数の制御手段間で単に連係動作可能とする場合と異なり、仮想的に単一のコントローラとしているため、データの交換を適切に実行でき、適切な制御タイミングを実現できる。
【０２０７】
また、複数の制御手法を組み合わせて制御を行う場合に、制御内容に関する設計、管理をまとめて行うことができるため、ユーザにとって便利である。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る統合コントローラの構成を示すブロック図。
【図２】同実施の形態に係る統合コントローラの結合部を共有メモリと共有バスとにより構成した場合のブロック図。
【図３】本発明の第２の実施の形態に係る統合コントローラの構成を示すブロック図。
【図４】本発明の第３の実施の形態に係る統合コントローラによって構成される計算機システムを示すブロック図。
【図５】同実施の形態に係る統合コントローラによって構成される計算機システムを具体的に示すブロック図。
【図６】本発明の第４の実施の形態に係る統合コントローラによって構成される計算機システムを示すブロック図。
【図７】本発明の第５の実施の形態に係る統合コントローラが使用する命令語のフォーマットを示す図。
【図８】同実施の形態に係る統合コントローラにおいて伝送装置内の共有メモリの内容を等値化させる処理の具体例を示すブロック図。
【図９】本発明の第８の実施の形態に係る統合コントローラに備えられてるコントローラのプログラムが変更された場合のメモリ領域の変化を示す概念図。
【図１０】本発明の第９の実施の形態に係る統合コントローラを備えた制御システムの構成を示すブロック図。
【図１１】同実施の形態に係る統合コントローラ単体の構成を示すブロック図。
【図１２】本発明の第１０の実施の形態に係る統合コントローラを備えた制御システムを構成するブロック図。
【符号の説明】
１、６、９ａ、９ｂ、１２ａ、１２ｂ、２０〜２２、３０ａ〜３０ｃ、３８、４０、４１…統合コントローラ
２〜４…コントローラ
５、７…統合部
５ａ…共有バス
２ａ〜４ａ、５ｂ、２３〜２５、３２ａ〜３２ｃ、４４…共有メモリ
８、２８、３７…制御システム
１０…上位統合部
１０ａ、１４、１７〜１９、３１ａ〜３１ｃ、４２、４３…伝送装置
１０ｂ、１３…システム共有メモリ
１６…命令語
１６ａ…コード
２６、２７…データ領域
２９、３９ａ、３０ｂ…ネットワーク
３３、４５…伝送部
３４、４６…調停部
３５ａ〜３５ｃ、４４ａ〜４４ｄ…共有メモリの領域
【図１】
0003737650.tif 000002
【図２】
0003737650.tif 000003
【図３】
0003737650.tif 000004
【図４】
0003737650.tif 000005
【図５】
0003737650.tif 000006
【図６】
0003737650.tif 000007
【図７】
0003737650.tif 000008
【図８】
0003737650.tif 000009
【図９】
0003737650.tif 000010
【図１０】
0003737650.tif 000011
【図１１】
0003737650.tif 000012
【図１２】
0003737650.tif 000013