(57)【要約】      （修正有）【課題】図形要素を用いてプロセスコントロール環境を構成する。【解決手段】プロセスコントロール環境を構成するための方法において、前記プロセスコントロール環境は表示装置にプロセッサが結合されたコンピュータシステムを備え、前記方法は、ステンシルオブジェクトを含むステンシルビューを前記表示装置に提示し、前記ステンシルオブジェクトはプロセスコントロールモジュールを表し、前記表示装置にダイヤグラムビューを提示し、前記ダイヤグラムビューはプロセスコントロール環境構成を表し、前記ステンシルビューから前記ダイヤグラムビューまで前記ステンシルオブジェクトをドラッグし、前記プロセスコントロール環境におけるプロセスコントロールモジュールの場所を示す位置で、前記ステンシルオブジェクトを前記ダイヤグラムビュー上でドロップし、前記ダイヤグラムビューに従って、前記プロセスコントロール環境を構成する。【選択図】図１
2009009560.tif 000002
【特許請求の範囲】
【請求項１】
表示装置に接続されたプロセッサと、少なくとも１つのフィールド装置に接続されたコントローラとを有するコンピュータシステムを含むプロセスコントロール環境を構成するための方法において、
前記プロセスコントロール環境を構成するために利用可能なオブジェクトを含むステンシル部を前記表示装置で提示するステップと、
前記プロセスコントロール環境に使用されるプロセスコントロール環境構成を表すダイヤグラム部を前記表示装置で提示するステップと、
前記ステンシル部から前記ダイヤグラム部へ前記オブジェクトをドラッグするステップと、
プロセスを実行するためにプロセスコントロール環境が制御を実行する際の異なるやり方を特定する新しいプロセスコントロール環境構成を表すために、前記ダイヤグラム部の前記プロセスコントロール環境における要素の場所を示す位置で前記オブジェクトをドロップするステップと、
コンピュータ実行可能な命令セットとして、実行時に前記新しいプロセスコントロール環境構成を実施するプロセスコントロールプログラムを生成するステップと、
コントローラが前記プロセスコントロールプログラムの少なくとも一部をランタイムインプリメンテーションの一部として実行するように、プロセスコントロールプログラムのコンピュータ実行可能な命令セットの少なくとも一部をコントローラに送信し、コントローラ内にコンピュータ実行可能な命令セットを保存することにより、前記プロセスコントロール環境内の前記コントローラを自動設定するステップとを備えている、方法。
【請求項２】
前記ステンシル部から前記ダイヤグラム部へ前記オブジェクトをドラッグするステップは、前記オブジェクトを選択するステップを含んでいる、請求項１に記載の方法。
【請求項３】
前記コントローラを自動設定するステップは、オブジェクト指向フレームワークの使用を実施している、請求項１に記載の方法。
【請求項４】
前記オブジェクト指向フレームワークはクラスを含み、
前記クラスは、ファウンデーションクラスのセットから得られる又は該セットに含まれている、請求項３に記載の方法。
【請求項５】
前記オブジェクトはステンシルオブジェクトである、請求項１に記載の方法。
【請求項６】
前記要素はプロセスコントロールモジュールである、請求項１に記載の方法。
【請求項７】
前記オブジェクトはプロセスコントロールモジュールを表している、請求項１に記載の方法。
【請求項８】
表示装置に接続されたプロセッサ、及び、少なくとも１つのフィールド装置に接続された分離されたコントローラを有するコンピュータシステムを含むプロセスコントロール環境を構成するためのシステムにおいて、
前記プロセスコントロール環境を構成するために利用可能なオブジェクトを含むステンシル部を前記表示装置で提示する第１ソフトウェア部と、
前記プロセスコントロール環境に使用されるプロセスコントロール環境構成を表すダイヤグラム部を前記表示装置で提示する第２ソフトウェアと、
前記表示装置に動作可能に接続されており、前記ステンシル部から前記ダイヤグラム部へ前記オブジェクトをドラッグすること、及び、プロセスを実行するためにプロセスコントロール環境が制御を実行する際の異なるやり方を特定する新しいプロセスコントロール環境構成を表すために、前記ダイヤグラム部の前記プロセスコントロール環境における要素の場所を示す位置で前記オブジェクトを前記ダイヤグラム部にドロップすること、をユーザにより制御可能とするユーザインターフェースと、
コンピュータ実行可能な命令セットとして、前記新しいプロセスコントロール環境構成を実施するプロセスコントロールプログラムを生成する生成プログラムと、
コントローラが前記プロセスコントロールプログラムの少なくとも一部をランタイムインプリメンテーションの一部として実行するように、プロセスコントロールプログラムのコンピュータ実行可能な命令セットの少なくとも一部をコントローラに送信し、コントローラ内にコンピュータ実行可能な命令セットを保存することにより、前記プロセスコントロール環境内の前記コントローラを自動設定する設定プログラムとを備えている、システム。
【請求項９】
前記表示装置上でカーソル、前記ユーザインターフェースにより制御される前記カーソルの動作、ユーザが前記ステンシル部で前記オブジェクトを選択するために前記カーソルを制御し、前記プロセスコントロール環境におけるプロセスコントロール要素の場所を示す前記ダイヤグラム部の位置に前記ステンシル部から前記オブジェクトをドラッグすることを可能にする前記ユーザインターフェース、を提示する第３ソフトウェア部をさらに備えている、請求項８に記載のシステム。
【請求項１０】
前記オブジェクトはプロセスコントロールモジュールである、請求項９に記載のシステム。
【請求項１１】
前記第３ソフトウェア部はオブジェクト指向フレームワークを使用することで実施される、請求項９に記載のシステム。
【請求項１２】
前記オブジェクトはステンシルオブジェクトである、請求項８に記載のシステム。
【請求項１３】
前記オブジェクトはモジュール化されている、請求項８に記載のシステム。
【請求項１４】
前記第２ソフトウェア部はオブジェクト指向フレームワークを使用することで実施される、請求項８に記載のシステム。
【請求項１５】
前記オブジェクト指向フレームワークはクラスを含み、
前記第２ソフトウェア部は、ファウンデーションクラスのセットから得られる又は該セットに含まれている、請求項１４に記載のシステム。
【請求項１６】
前記第１ソフトウェア部はオブジェクト指向フレームワークを使用することで実施される、請求項８に記載のシステム。
【請求項１７】
新たなプロセスコントロール環境内の新たなプロセスコントロール環境構成を生成するためのシステムにおいて、
表示装置に接続されたプロセッサ、及び、少なくとも１つのフィールド装置に接続された分離されたコントローラを有するコンピュータシステムと、
前記プロセスコントロール環境を構成するために利用可能な複数のオブジェクトを含むステンシル部を前記表示装置で提示する第１ソフトウェア部と、
前記プロセスコントロール環境を実行するために使用されるプロセスコントロール環境構成を表すダイヤグラム部を前記表示装置で提示する第２ソフトウェアと、
前記表示装置に動作可能に接続されており、前記ステンシル部から前記ダイヤグラム部へ前記オブジェクトの１又は複数をドラッグすること、及び、プロセスを実行するためにプロセスコントロール環境が制御を実行する際の異なるやり方を特定する新しいプロセスコントロール環境構成を表すために、前記ダイヤグラム部の前記プロセスコントロール環境における要素の場所を示す位置でそのオブジェクトを前記ダイヤグラム部にドロップすること、をユーザにより制御可能とするユーザインターフェースと、
コンピュータ実行可能な命令セットとして、前記新しいプロセスコントロール環境構成を実施するプロセスコントロールプログラムを生成する第３ソフトウェアと、
コントローラが前記プロセスコントロールプログラムの少なくとも一部をランタイムインプリメンテーションの一部として実行するように、プロセスコントロールプログラムのコンピュータ実行可能な命令セットの少なくとも一部をコントローラに送信し、コントローラ内にコンピュータ実行可能な命令セットを保存することにより、前記プロセスコントロール環境内の前記コントローラを自動設定する設定プログラムとを備えている、システム。
【請求項１８】
前記表示装置上でカーソル、前記ユーザインターフェースにより制御される前記カーソルの動作、ユーザが前記ステンシル部で前記オブジェクトを選択するために前記カーソルを制御し、前記プロセスコントロール環境におけるプロセスコントロール要素の場所を示す前記ダイヤグラム部の位置に前記ステンシル部から前記オブジェクトをドラッグすることを可能にする前記ユーザインターフェース、を提示する第４ソフトウェア部をさらに備えている、請求項１７に記載のシステム。
【請求項１９】
前記要素はプロセスコントロールモジュールである、請求項１７に記載のシステム。
【請求項２０】
前記オブジェクトはステンシルオブジェクトである、請求項１７に記載のシステム。
【請求項２１】
前記オブジェクトはモジュール化されている、請求項１７に記載のシステム。
【請求項２２】
前記第３ソフトウェア部は、クラスを含むオブジェクト指向フレームワークを使用し、商業上利用可能なファウンデーションクラスのセットから得られる又は該セットに含まれるクラスを有している、請求項１７に記載のシステム。
【請求項２３】
前記第２ソフトウェア部はオブジェクト指向フレームワークを使用することで実施される、請求項１７に記載のシステム。
【請求項２４】
前記オブジェクト指向フレームワークはクラスを含み、前記第２ソフトウェア部は商業上利用可能なファウンデーションクラスのセットから得られる又は該セットに含まれるクラスを有している、請求項２３に記載のシステム。
【請求項２５】
前記第１ソフトウェア部はオブジェクト指向フレームワークを使用することで実施される、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセスモニタおよびコントロールシステムに関する。特に、本発明は、複数個のコントロールテンプレートの各々を作成するためのシステムに関し、個々のコントロールテンプレートは、ユーザによって選択されて設計プロセスコントロール解を生成する関連の属性、方法および図形を有する。
【背景技術】
【０００２】
今日のプロセスコントロールシステムは、計器、コントロール装置および通信システムを使用して、弁およびスイッチ等のコントロール要素をモニタして操作し、温度、圧力、流量等を含む１個以上のプロセス変数を選択された目標値に維持する。プロセス変数は、望ましいプロセス目標の達成、例えばプロセス内で利用される機械や機器の安全で効率的な動作の達成のために選択され、コントロールされる。プロセスコントロールシステムは、例えば、化学、石油および製造工業において使用するプロセス等の工業用プロセスの自動化に広く適用されている。
【０００３】
プロセスのコントロールは、多くの場合、コマンドやデータをハードウェア装置に伝送したりそこから受信したりすることによってプロセスをモニタし、プロセスの特定のアスペクトまたはプロセス全体をコントロールするマイクロプロセッサベースコントローラ、コンピュータまたはワークステーションを用いて実現される。これらのマイクロプロセッサ、コンピュータまたはワークステーションにおけるソフトウェアプログラムによって実現される特定のプロセスコントロール機能は、ハードウェアへの変更を必要とすることなく、プログラミングを介して個々に設計、修正または変更可能である。例えば、エンジニアによってプログラムが書き込まれて、コントローラがタンク内のレベルセンサから流体レベルを読み出し、タンクレベルを所定の望ましいレベルと比較し、その後、読み出されたレベルが所定の望ましいレベルよりも低かったか高かったかに基づいて給送弁を開閉することも可能である。プロセスの選択された視点を表示し、その後、選択された視点を用いてプログラムを修正することによって、パラメータが容易に変更される。エンジニアは一般に、プロセスの視点を表示、修正することによってパラメータを変更する。
【０００４】
コントロールプロセスを実行することに加えて、ソフトウェアプログラムもまたプロセスの視点をモニタして表示し、特定のプロセスの状態に関してオペレータの表示または視点の形態でフィードバックを提供する。モニタリングソフトウェアプログラムもまた、問題が発生すると警報信号を送る。問題が発生すると、オペレータに命令または提案を表示するプログラムもある。コントロールプロセスに責任のあるオペレータは、自分の見地からプロセスを見る必要がある。表示またはコンソールは、一般に、プロセスコントロール機能を実行するマイクロプロセッサベースコントローラまたはコンピュータとオペレータとの間、およびプログラマまたはエンジニアと、プロセスコントロール機能を実行するマイクロプロセッサベースコントローラまたはコンピュータとの間のインターフェースとして設けられる。
【０００５】
プロセスコントロール環境における機能を実行、モニタ、コントロールおよびフィードバックするシステムは、一般に、高レベルコンピュータプログラミング言語、例えば、ベーシック、フォートランまたはシーで書き込まれ、コンピュータまたはコントローラ上で実行されるソフトウェアによって実現される。これらの高レベル言語は、プロセスコントロールプログラミングに対して有効であるが、通常、プロセスエンジニア、保守エンジニア、コントロールエンジニア、オペレータおよびスーパバイザによって使用または理解されていない。より高いレベルの図形表示言語が、連続関数ブロックおよびはしご型論理等、そのような人のために開発されている。このように、各エンジニア、保守職員、オペレータ、ラボ職員等は、かれらの責任に関する項のシステムを見ることが可能なプロセスコントロールシステムのエレメントの図形を必要とする。
【０００６】
例えば、プロセスコントロールプログラムは、フォートランで書き込まれ、２個の入力を必要とし、その２個の入力の平均を計算し、その平均に等しい出力値を生成することも可能である。このプログラムは、ＡＶＥＲＡＧＥ機能とも呼ばれ、コントロールエンジニアのための図形表示を介して呼び出され、参照することが可能である。典型的な図形表示は、２個の入力と１個の出力とを有する矩形ブロックと、そのブロックをＡＶＥＲＡＧＥで示すラベルとから構成することも可能である。異なるプログラムを用いて、オペレータが平均値を見るためのこの同一機能を図形表現することも可能である。システムが顧客に受け渡される前に、これらのソフトウェアプログラムが、定義済みのユーザ選択自在機構のライブラリに配置される。プログラムは、機能ブロックによって識別される。ユーザは、その後、機能を呼び出し、定義済み図形表現を選択し、例えばフォートランにおける全く新しいプログラムを開発する必要性よりもプロセスコントロール解を定義する際に使用するために、複数個の機能ブロックのうちの１個をライブラリから選択することによって、オペレータ、エンジニア等のために異なる視点を生成することも可能である。
【０００７】
各々が関連する機能ブロックによって示された標準化機能のグループは、コントロールライブラリに記憶することも可能である。このようなライブラリを備えた設計者は、機能ブロックを用いて選択された様々な機能または要素をコンピュータ表示画面上で相互接続して特定のタスクを実行することによって、プロセスコントロール解を設計することが可能である。マイクロプロセッサまたはコンピュータは、機能ブロックによって定義された機能または要素の各々を、ライブラリに記憶された定義済みテンプレートと関連づけ、設計者によって望まれた相互接続に従って、プログラム機能または要素の各々を互いに関係づける。理想的には、設計者が、フォートランまたは他の高レベルプログラミング言語で１個の命令行を書き込むことなく、定義済み機能の図形を用いてプロセスコントロールプログラム全体を設計することが可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
プロセスコントロールプログラミングに対する図形の利用に関する問題として、既存のシステムによって、この機器のユーザではなく機器製造業者のみが、関連の図形と共に自分自身のコントロール機能を作成するか、または提供されたライブラリ内の定義済み機能を変更可能であることが挙げられる。
【０００９】
新たなプロセスコントロール機能は、会社が提供する機能の標準セットの一部ではない機能を特に必要とする可能性のあるエンドユーザではなく、主として設計システムを販売する会社によって設計される。標準化機能は、エンドユーザに対するシステムが備わったコントロールライブラリ内に含まれる。エンドユーザは、設計環境が提供される既存の機能を利用するか、または設計環境を供給する会社に依存し、望ましい特定の個別化された機能を開発しなければならない。エンジニアの視点のパラメータを変更するように設計者が求められる場合、そのパラメータを用いる他の全ての視点をそれに応じて書き換え、変更しなければならない。その理由は、機能プログラムおよびビュープログラムが独立して開発されることが多く、統合開発環境の一部ではないからである。このような手順がかなり煩わしく、費用がかかり、時間を浪費することは明らかである。
【００１０】
必要なことは、設計者または製造業者のみならず、ユーザによっても容易に使用可能であり、既存の解をカスタム化して、プロセスコントロール機能を開発する特定の必要性を満たすことが可能である均一または汎用の設計環境である。
【課題を解決するための手段】
【００１１】
プロセスコントロール環境は、アルゴリズムに従うステンシル項目を有するステンシル部分（パレット部分とも呼ぶ）と、ステンシル項目がドラッグおよびドロップ動作を介してコピー可能なダイヤグラム部分とを備えるコントロールスタジオオブジェクトシステムを提供することによって容易に、しかも迅速に構成または変更可能であることが分かった。ステンシル項目は、プロセスコントロール環境をプログラミングするために必要な全ての情報を含むオブジェクトを作成するためにダイヤグラム部分が必要とする全ての情報を含むオブジェクトであるため、完全ダイヤグラム部分が、プロセスコントロール環境の実際の構成を反映する。オブジェクトとしてステンシル項目を提供することによって、ダイヤグラムがノードに従う言語でコンパイル化するかまたは書き換えられる必要なく、ダイヤグラミングした環境がノードに直接インストール可能であることも分かった。
【００１２】
一態様では、本発明は、プロセスコントロール環境を構成するための方法に関し、プロセスコントロール環境は、表示装置にプロセッサが結合されたコンピュータシステムを備える。この方法は、モジュールオブジェクトを含むステンシルビューを表示装置に提示するステップを備え、モジュールオブジェクトはプロセスコントロールモジュールを表し、表示装置にプロセスコントロール環境ビューを提示するステップを備え、プロセスコントロール環境ビューはプロセスコントロール環境構成を表し、ステンシルビューからプロセスコントロール環境ビューまでモジュールオブジェクトをドラッグするステップと、プロセスコントロール環境におけるプロセスコントロールモジュールの場所を示す位置で、モジュールオブジェクトをプロセスコントロール環境ビュー上でドロップするステップと、プロセスコントロール環境ビューに従って、プロセスコントロール環境を構成するステップとを備える。
【００１３】
上記設計環境によって、プロセスコントロール設計者またはユーザが、標準プロセスコントロール機能を変更するか、または固有のカスタム化プロセスコントロール機能を作成し、全て共通環境内にある変更された、または新たに作成されたプロセスコントロール機能に関連する図形視点を作成することが可能になる。
【００１４】
設計環境は、エンジニアの機能が変更または作成されると、変更または作成が、機能の他の全ての図形視点に現れるように、機能の作成と、その関連のエンジニア、オペレータ、ラボおよび保守人員または他の望ましいユーザとの両方に対する共通インタフェースを備える。さらに、設計環境は、属性および方法の共通データベース構造と、プロセスコントロール機能に関連する図形とを備え、設計者が望む、または必要とするいずれかの図形方法論、様々なエンジニア、オペレータ、ラボおよび保守人員が他の望ましい図形視点として必要とする、はしご型論理、連続機能ブロックまたは他の設計言語のいずれかで、変更または作成されたプロセスコントロール機能が表現できる。
【発明を実施するための最良の形態】
【００１５】
図１には、プロセスコントロール環境１００が示されており、ディジタルコントロールシステム、プロセスコントローラ等を実現するためのコントロール環境が例示されている。プロセスコントロール環境１００は、ローカルエリアネットワーク（「ＬＡＮ」）１０８または他の既知の通信リンクによって電気的に相互接続され、種々のワークステーション間でデータおよびコントロール信号を転送し、且つ受信するためのオペレータワークステーション１０２およびエンジニアリングワークステーション１０６と、複数個のコントローラ／マルチプレクサ１１０とを備える。ワークステーション１０２および１０６は、例えば、ＩＢＭコンパチブルアーキテクチャに従うコンピュータである。ワークステーション１０２および１０６は、ワークステーションと複数個のプロセス１１２との間で電気的にインタフェースする複数個のコントローラ／マルチプレクサ１１０にＬＡＮ１０８によって接続されて示されている。多くの様々な実施の形態において、ＬＡＮ１０８はコントローラ／マルチプレクサ１１０に直接接続された１個のワークステーションを備えるか、または複数個のワークステーション、例えば２個のワークステーション１０２および１０６と、プロセスコントロール環境１００の目的および必要条件に応じて多数のコントローラ／マルチプレクサ１１０とを備える。１個のプロセスコントローラ／マルチプレクサ１１０が数個の異なるプロセス１１２をコントロールするか、または１個のプロセスの一部をコントロールする実施の形態もある。
【００１６】
プロセスコントロール環境１００においては、例えばエンジニアリングワークステーション１０６上のソフトウェアコントロール解を作成し、その解を、ＬＡＮ１０８を介して、実行するためのオペレータワークステーション１０２、ラボワークステーション１０４およびコントローラ／マルチプレクサ１１０に送ることによってプロセスコントロール戦略が開発される。オペレータワークステーション１０２は、コントローラ／マルチプレクサ１１０において実現されたコントロール／モニタ戦略にインタフェース表示を供給し、１個以上のコントローラ／マルチプレクサ１１０に通信して、プロセス１１２を見て、設計された解の必要条件に従ってコントロール属性値を変化させる。プロセス１１２は、スマートフィールド装置または従来の（ノンスマート）フィールド装置であってもよい１個以上のフィールド装置から形成される。
【００１７】
さらに、オペレータワークステーション１０２は、コントロールされたプロセス１１２の状態および条件に関して視聴覚フィードバックをオペレータに通信する。エンジニアリングワークステーション１０６は、プロセッサ１１６と、表示装置１１５と、１個以上の入力／出力またはユーザインタフェース装置１１８、例えばキーボード、ライトペン等を備える。ワークステーションもまた、メモリ１１７を備えており、このメモリ１１７は、揮発性および不揮発性メモリの両方を備える。メモリ１１７は、プロセッサ１１６上で実行して、プロセスコントロール環境１００のコントロール動作および機能を実現するコントロールプログラムを備える。メモリ１１７はまた、コントロールテンプレートシステム１２０とコントロールスタジオオブジェクトシステム１３０とを備える。オペレータワークステーション１０２およびプロセスコントロール環境１００内の他のワークステーション（図示せず）は少なくとも１個の中央処理装置（図示せず）を備えており、この中央処理装置は、表示装置（図示せず）とユーザインタフェース装置（図示せず）とに電気的に接続されて、ユーザおよびプロセッサ間の相互作用を許容する。
【００１８】
プロセスコントロール環境１００はまた、テンプレート発生器１２４とコントロールテンプレートライブラリ１２３とを備えており、これらは共にコントロールテンプレートシステム１２０を形成する。コントロールテンプレートは、プロセスをコントロールするために使用する属性機能のグループ化、および特定のプロセスコントロール機能のために使用する方法論、特定の機能のためのコントロール属性、変数、入力および出力、ならびにエンジニアビューおよびオペレータビュー等の必要な機能の図形ビューとして定義される。
【００１９】
コントロールテンプレートシステム１２０は、テンプレート発生器１２４と通信するコントロールテンプレートライブラリ１２３を備える。コントロールテンプレートライブラリ１２３は、プロセスコントロールプログラムにおいて使用するための定義済みまたは既存のコントロールテンプレート機能の組を表すデータを備える。コントロールテンプレート機能は、システム設計者からユーザに至る一般にシステムに付属するテンプレートである。テンプレート発生器１２４は、ユーザが新たなコントロールテンプレート機能を作成するか、または既存のコントロールテンプレート機能を変更するのを都合良く可能にするインタフェースである。作成され、変更されたテンプレート機能は、コントロールテンプレートライブラリ１２３に選択的に記憶される。
【００２０】
テンプレート発生器１２４は、属性および方法言語発生器１２６と、グラフィックス発生器１２８とを備える。属性および方法言語発生器１２６は、ユーザが、新たなコントロールテンプレート機能の作成、または特定の既存のコントロールテンプレート機能、例えば入力、出力および他の属性の変更に関連する複数個の属性機能を定義することが可能な表示画面を提供し、且つユーザが、特定のコントロールテンプレートに対する新たな、または変更された機能を実行する方法またはプログラムを選択することを可能にするための表示画面を提供する。グラフィックス発生器１２８は、特定のコントロールテンプレートに関連する図形ビューを設計するためのユーザ能力を提供する。ユーザは、属性および方法言語発生器１２６とグラフィックス発生器１２８とによって記憶されたデータを利用して、コントロールテンプレートに対する属性、方法および図形ビューを完全に定義する。作成されたコントロールテンプレート機能を表すデータは、一般にコントロールテンプレートライブラリ１２３に記憶され、その後、プロセスコントロール解の設計のためにエンジニアが選択および使用するために利用可能となる。
【００２１】
コントロールスタジオオブジェクトシステム１３０は、ユーザフレンドリインタフェースを提供し、このユーザフレンドリインタフェースによって、ユーザは、ステンシル項目、パレット項目またはテンプレートと呼ばれるダイヤグラムの基本ビルディングブロックの作成、変更、使用および削除を行うことができる。
【００２２】
コントロールスタジオオブジェクトシステム１３０は、テンプレート発生器の基本ビルディングブロックを操作した経験のないユーザによっても理解できる。コントロールスタジオオブジェクトシステム１３０、特にコントロールスタジオオブジェクトシステム１３０のステンシル部分は、テンプレート発生器１２０と相互作用する。
プロセスコントロール環境１００は、図２に示す構成モデルまたは構成インプリメンテーション２１０およびランタイムモデルまたはランタイムインプリメンテーション２２０に存在する。構成インプリメンテーション２１０においては、プロセスコントロール環境１００内の構成装置、オブジェクト、相互接続および相互関係が定義される。ランタイムインプリメンテーション２２０では、様々な構成装置、オブジェクト、相互接続および相互関係の動作が実行される。構成インプリメンテーション２１０およびランタイムインプリメンテーション２２０は、ＡＳＣＩＩベースダウンロード言語を介して相互接続される。ダウンロード言語は、ユーザによって供給される定義に従ってシステムオブジェクトを作成し、供給された定義からインスタンスを作成する。ダウンローディング定義に加えて、ダウンロード言語はまた、インスタンスおよびインスタンス値をアップロードする。構成インプリメンテーション２１０は、インストール手順を用いてランタイムインプリメンテーション２２０内で実行するように活動化される。
【００２３】
プロセスコントロール環境１００は、多数のサブシステムを備えており、このサブシステムのうちのいくつかは、構成およびランタイムインプリメンテーションの両方を有する。例えば、プロセスグラフィックサブシステム２３０は、ユーザ定義されたビューおよびオペレータインタフェーシングをプロセスコントロール環境１００のアーキテクチャに供給する。プロセスグラフィックサブシステム２３０は、プロセスグラフィックエディタ２３２と、構成インプリメンテーション２１０の一部と、プロセスグラフィックビューワ２３４と、ランタイムインプリメンテーション２２０の一部とを有する。プロセスグラフィックエディタ２３２は、インタサブシステムインタフェース２３６によってダウンロード言語でプロセスグラフィックビューワ２３４に接続される。プロセスコントロール環境１００はまた、コントロールサブシステム２４０を備えており、このコントロールサブシステム２４０は、定義およびモジュールエディタ２４２におけるコントロールモジュールおよび機器モジュールを構成し、且つインストールし、ランタイムコントローラ２４４におけるコントロールモジュールおよび機器モジュールを実行する。定義およびモジュールエディタ２４２は構成インプリメンテーション２１０内で動作し、ランタイムコントローラ２４４はランタイムインプリメンテーション２２０内で動作して、連続および順序付けコントロール機能を提供する。定義およびモジュールエディタ２４２は、インタサブシステムインタフェース２４６によってダウンロード言語でランタイムコントローラ２４４に接続される。多数のサブシステムが、サブシステムインタフェース２５０によって相互接続される。
【００２４】
構成インプリメンテーション２１０およびランタイムインプリメンテーション２２０は、マスタデータベース２６０とインタフェースして、共通データ構造へのアクセスを支持する。様々なローカル（ノンマスタ）データベース２６２は、例えばマスタデータベース２６０とインタフェースし、ユーザによって指示されたように、マスタデータベース２６０からローカルデータベース２６２まで構成データを転送する。マスタデータベース２６０の一部は、持続データベース２７０である。持続データベース２７０は、データベースの作成者が存在しなくなった後でもデータベースが存在し続けるように時間を超越し、データベースが作成されたアドレス空間とは異なるアドレス空間に移動可能となるように空間を超越するオブジェクトである。構成インプリメンテーション２１０全体は、持続データベース２７０に記憶される。
【００２５】
ランタイムインプリメンテーション２２０は、持続データベース２７０およびローカルデータベース２６２とインタフェースし、構成インプリメンテーション２１０によつて形成されたデータ構造にアクセスする。特に、ランタイムインプリメンテーション２２０は、ローカルデータベース２６２および持続データベース２７０から、選択された機器モジュール、表示等を取り出す。ランタイムインプリメンテーション２２０は、他のサブシステムとインタフェースして、定義をインストールし、それによって、定義がまだ存在していない時にはインスタンスを作成するために使用するオブジェクトをインストールし、ランタイムインスタンスを生成し、様々なソースからデスティネーションオブジェクトに情報を転送する。
【００２６】
図３は、構成モデル３００のシステムオブジェクト間の階層関係を示す概略ブロック図である。構成モデル３００は、コントロール、Ｉ／Ｏ、プロセス図形、プロセス機器、警報、履歴および事象を含む多くの構成アスペクトを備える。構成モデル３００はまた、装置記述およびネットワークトポロジレイアウトを備える。
【００２７】
構成モデル階層３００は、システムオブジェクト関係および位置を視覚化し、様々なシステムオブジェクト間で保守情報を伝送するか、または移動させるために、特定の組のユーザによって使用するために定義される。例えば、１個の構成モデル階層３００、特に物理的プラント階層は、物理的プラント関係および位置を視覚化し、物理的プラントにおける様々な計器および機器間で保守情報を伝送するか、または移動させるために、保守エンジニアおよび技術者によって使用するために定義される。物理的プラント階層を形成する構成モデル階層３００の実施の形態は、ＳＰ８８物理的機器標準階層のサブセットを支持し、構成モデルサイト３１０と、１個以上の物理的プラント領域３２０と、機器モジュール３３０と、コントロールモジュール３４０とを備える。
【００２８】
構成モデル階層３００は、１個のプロセスサイト３１０に対して定義され、このプロセスサイト３１０は、構成モデル階層３００内で定義される１個以上の名前付き物理的プラント領域３２０に分割される。物理的プラント領域３２０は、タグ付きモジュールを任意選択で含み、その各々は、構成モデル階層３００内で一意にインスタンス生成される。物理的プラント領域３２０は、１個以上の機器モジュール３３０を任意選択で含む。機器モジュール３３０は、他の機器モジュール３３０と、コントロールモジュール３４０と、機能ブロックとを任意選択で含む。機器モジュール３３０は、連続機能ブロック、はしご型論理または逐次機能図表作成（「ＳＦＣ」）を含む多数の異なる図形プロセスコントロールプログラミング言語のうちの１個に従って作成されたコントロールテンプレートを備え、且つそれによってコントロールされる。構成モデル階層３００は、１個以上のコントロールモジュール３４０を任意選択で含む。コントロールモジュール３４０は、物理的プラント領域３２０，機器モジュール３３０または他のコントロールモジュール３４０等のオブジェクトに含まれる。コントロールモジュール３４０は、他のコントロールモジュール３４０または機能ブロック等のオブジェクトを任意選択で含む。
【００２９】
コントロールスタジオオブジェクトシステム１３０によって、ユーザは、ダイヤグラム、ダイヤグラムとサードパーティアプリケーションとの間のドラッグおよびドロップオブジェクト、ならびにダイヤグラムと他のアプリケーションとの間のカットおよびペーストオブジェクトにオブジェクトを追加し、それに対するオブジェクトを有するダイヤグラムによって示されたプロセスコントロール環境をインストールすることが可能である。
【００３０】
コントロールスタジオオブジェクトシステムのユーザインタフェースアスペクト 図４を参照すると、コントロールスタジオオブジェクトシステム１３０の主コントロールウィンドウは、テクスチュアルプルダウンメニュー４０２と、絵文字メニュー４０４と、ステンシル部分プレゼンテーション４０６と、ダイヤグラム部分画面プレゼンテーション４０８とを備える。ステンシル項目４２０は、ステンシル部分プレゼンテーション４０６内で表示される。プロセスコントロール環境設計のユーザのダイヤグラムは、ダイヤグラム部分画面プレゼンテーションで提示される。プロセスコントロール設計環境のこのダイヤグラムは、プロセスコントロール環境ビューと呼ばれる。主ウィンドウにおけるプレゼンテーションの各々は、既知のウィンドウ機能技術に従って、ユーザがサイズを再設定可能であり、且つ再配置可能である。コントロールスタジオシステム１３０は、スタイルおよび他の情報と同様に、二次元表示内の座標を含む持続オブジェクトデータを維持することによって主ウィンドウの区画の位置およびサイズをトラッキングする。
【００３１】
プロセスコントロール環境を設計する際、ユーザは、ステンシル部分プレゼンテーション４０８からステンシル項目を単に操作し、ダイヤグラム部分画面プレゼンテーション４０８内の望ましい位置に操作されたステンシル項目をドラッグし、望ましい位置の操作されたステンシル項目をドロップする。コントロールスタジオオブジェクトシステム１３０は、その後、プロセスコントロール環境を構成するのに必要な情報を全て用いてダイヤグラムがオブジェクトを作成することが可能なダイヤグラム項目を作成する。ステンシル項目は、ダイヤグラムがプロセスコントロール環境を構成するために必要な情報を全て含むオブジェクトであるため、プロセスコントロール環境設計がダイヤグラム部分内で完了すると、この設計は、プロセスコントロール環境の適当な部分に直接ダウンロード可能である。
【００３２】
図５ａないし図５ｆを参照すると、完全プロセスコントロールダイヤグラムをノードにインストールするプロセスが示されている。すなわち、図５ａに示すように、ユーザがプロセスコントロールダイヤグラムをノードにインストールしたい場合、ユーザは、ファイルメニューからインストール・ノード項目を選択する。ユーザに提示された選択は、モジュール全体をインストールするか、または最後のインストール動作が実行されて以来の単なる変更をインストールするかどうかである。ユーザがモジュール全体をインストールすることを選択すると、ウィンドウが提示され、モジュールがノードに割り当てられていないことをユーザに知らせ、ユーザがモジュールをノードにインストールしたいかどうかを尋ねる(図５ｂ参照)。次に、ユーザが構成に適するノードを選択するノードリストがユーザに提示される(図５ｃ参照)。ユーザが構成のためのノードを選択した後、モジュールを更新したいかどうかを尋ねるウィンドウがユーザに提示される(図５ｄ参照)。ユーザは、その後、モジュールに名前を付けるように要求される(図５ｅ参照)。ユーザが名前を選択または生成すると、インストール手順の実行を確実に望んでいるかどうかをユーザに尋ねる(図５ｆ参照)。「はい」と答えると、コントロールスタジオオブジェクトシステム１３０が、選択されたモジュールへのインストールを自動的に実行する。
【００３３】
コントロールスタジオオブジェクトシステムの実現
プロセスコントロール環境１００、特にコントロールスタジオオブジェクトシステム１３０は、オブジェクト指向フレームワークを用いて実現される。オブジェクト指向フレームワークは、オブジェクト指向概念、例えばクラス階層、オブジェクト状態およびオブジェクト動態を使用する。これらの概念は、以下で簡単に述べるが、当該技術分野において周知である。このオブジェクト指向フレームワークは、オブジェクト指向Ｃ++プログラミング言語を用いて書き込まれ、これは当該技術分野において周知である。
【００３４】
オブジェクト指向フレームワークのビルディングブロックは、オブジェクトである。オブジェクトは、状態および動態によって定義される。オブジェクトの状態は、そのフィールドで示される。オブジェクトの動態は、その方法で示される。各オブジェクトは、クラスのインスタンスであり、これは、そのオブジェクトに対するテンプレートを提供する。クラスは、ゼロまたはそれ以上のフィールドおよびゼロまたはそれ以上の方法を定義する。
【００３５】
フィールドは、オブジェクトの状態の一部またはオブジェクトデータを定義する情報を含むデータ構造である。同一クラスのインスタンスであるオブジェクトは、同一フィールドを有する。しかし、オブジェクトのフィールド内に含まれた特定の情報は、オブジェクトからオブジェクトに変化可能である。各フィールドは、整数値等の直接的または他のオブジェクトに対する基準等の間接的情報を含むことが可能である。
【００３６】
方法としては、コンピュータシステムソフトウェアによってプロセッサ１１６内で実行可能なコンピュータ命令の収集である。方法が定義されるオブジェクトがその方法を実行することをソフトウェアが要求する際、その方法の命令が実行される、すなわちその方法が実行される。方法は、それを含むクラスのメンバであるいずれかのオブジェクトによって実行可能である。その方法を実行する特定のオブジェクトは、応答機または応答オブジェクトである。方法を実行する際、応答機は、１個以上の引数、すなわち入力データを消費し、ゼロまたは１の結果、すなわち出力データとして戻されたオブジェクトを生成する。特定のオブジェクトに対する方法は、そのオブジェクトの動態を定義する。
【００３７】
オブジェクト指向フレームワークのクラスは、クラス階層に編成される。クラス階層においては、クラスがそのスーパークラスによって定義されるフィールドおよび方法を継承する。さらに、クラスが定義したフィールドおよび方法は、そのクラスのいずれかのサブクラスによって継承される、すなわちサブクラスのインスタンスは、スーパークラスによって定義されたフィールドを含み、そのスーパークラスによって定義された方法を実行することが可能である。従って、オブジェクトの方法が呼び出されると、そのオブジェクトがメンバであるクラス、またはそのオブジェクトがメンバであるクラスのいずれか１個のスーパークラスにおいて、アクセスされる方法が定義可能である。オブジェクトの方法が呼び出されると、プロセスコントロール環境１００は、方法を選択し、オブジェクトのクラス、また必要に応じてオブジェクトのいずれかのスーパークラスを調べることによって実行する。
【００３８】
サブクラスは、スーパークラスから継承された方法定義をオーバライドまたは取り替えて、サブクラスの動態を向上または変更することも可能である。しかし、サブクラスは、方法のシグネチャを取り替えることができない。方法のシグネチャは、方法の識別子、引数の数および型式、結果が戻されるかどうか、もし戻されるならばその結果の型式を含む。サブクラスは、方法の実行の際に行われるコンピュータ命令を再定義することによって、継承された方法定義を取り替える。
【００３９】
インスタンスを有することが可能なクラスは、具象クラスである。インスタンスを有することが不可能なクラスは、抽象クラスである。抽象クラスは、そのサブクラスによって継承されるフィールドおよび方法を定義することも可能である。抽象クラスのサブクラスは、他の抽象クラスであってもよい。しかし、最終的にクラス階層内では、サブクラスが具象クラスである。
【００４０】
開示された好ましい実施の形態で定義された全てのクラスは、以下で述べるミックス・インクラスを除いて、クラスＣオブジェクトのサブクラスである。このように、ここで述べる、ミックス・インクラスではない各クラスは、クラスＣオブジェクトの方法およびフィールドを継承し、マイクロソフトファウンデーションクラスフレームワーク内のベースクラスである。
【００４１】
すなわち、コントロールスタジオオブジェクトシステム１３０は、ウィンドウズ（登録商標）ＮＴバージョン３．５１のビジュアルＣ++に対するマイクロソフトディベロッパズキットのファウンデーションクラスバージョン４．０を用いて実現される。
【００４２】
図６を参照すると、コントロールスタジオオブジェクトシステム１３０は、ファウンデーションクラスＣＭＤＩＣｈｉｌｄＷｎｄ６０２から降順し、且つそれに関連する複数個のクラスを備える。クラスＣＭｄｅＭＤＩＣｈｉｌｄＷｎｄ６０４は、クラスＣＭＤＩＣｈｉｌｄＷｎｄ６０２から降順する。クラスＣＳｐｌｉｔＣｈｉｌｄＷｎｄ６０６は、クラスＣＭＤＩＣｈｉｌｄＷｎｄ６０４から降順する。クラスＣＳｔｅｎｃｉｌＶｉｅｗ６０８、ＣＳｐｌｉｔｔｅｒＷｎｄ６１０およびＣＤｉａｇｒａｍＯｃｘＶｉｅｗ６１２は、クラスＣＳｐｌｉｔＣｈｉｌｄＷｎｄ６０６と集約される。クラスＣＳｔｅｎｃｉｌＶｉｅｗ６０８およびＣＤｉａｒｇｒａｍＯＣＸＶｉｅｗは、ファウンデーションクラスＣＦｏｒｍＶｉｅｗ６１４から降順する。
【００４３】
クラスＣＭＤＩＣｈｉｌｄＷｎｄ６０２は、多重文書インタフェースアプリケーションの子ウィンドウに対するフレームウィンドウである。クラスＣＭｄｅＭＤＩＣｈｉｌｄＷｎｄ６０４は、スクリーン表示からタイトルテキストを除去する。クラスＣＳｐｌｉｔＣｈｉｌｄＷｎｄ６０６は、当該技術分野において周知のように、スプリットウィンドウ型式でその子の管理を提供する。クラスＣＳｔｅｎｃｉｌＶｉｅｗ６０８は、ＣＬｉｓｔステンシルコントロールを保守し、ステンシル部分のステンシルユーザインタフェースを管理する。クラスＣＤｉａｇｒａｍＯｃｘＶｉｅｗ６１２は、ダイヤグラム部分のダイヤグラムユーザインタフェースを管理し、ダイヤグラムオールドカスタムコントロール（ＯＣＸ）のインスタンスを含む。クラスＣＳｐｌｉｔｔｅｒＷｎｄ６１０は、当該技術分野において周知のように、分割区画をコントロールするファウンデーションクラスである。クラスＣＦｏｒｍＶｉｅｗ６１４は、コントロールクラスを含むためのファウンデーションクラスである。
【００４４】
図７を参照すると、コントロールスタジオオブジェクトシステム１３０は、ファウンデーションクラスＣＬｉｓｔＣｔｒｌ７０２およびＣＩｍａｇｅＬｉｓｔ７０４から降順し、且つそれに関連する複数個のクラスを備える。すなわち、クラスＣＳｔｅｎｃｉｌＬｉｓｔＣｔｒ１７０６は、クラスＣＬｉｓｔＣｔｒｌ７０２から降順する。クラスＣＦｂＳｔｅｎｃｉｌＶｉｅｗ７０８およびＣＳｆｃＳｔｅｎｃｉｌＶｉｅｗ７１０は、ＣＳｔｅｎｃｉｌＬｉｓｔＣｔｒｌ７０６と集約される。クラスＣＦｂＳｔｅｎｃｉｌＶｉｅｗ７０８およびＣＳｆｃＳｔｅｎｃｉｌＶｉｅｗ７１０は、クラスＣＳｔｅｎｃｉｌＶｉｅｗ７１２から降順する。ファウンデーションクラスＣＩｍａｇｅＬｉｓｔ７０４、クラスＣＳｔｅｎｃｉｌＩｔｅｍ７１４およびクラスＣＳｔｅｎｃｉｌＤｒｏｐＴａｒｇｅｔ７１６は、クラスＣＳｔｅｎｃｉｌＬｉｓｔＣｔｒ１７０６に関連する。クラスＣＳｔｅｎｃｉｌＤｒｏｐＴａｒｇｅｔ７１６は、クラスＣＯｌｅＤｒｏｐＴａｒｇｅｔ７１８から降順する。クラスＣＳｔｅｎｃｉｌＩｔｅｍ７１４は、ファウンデーションクラスＣＯｂｊｅｃｔ７２０から降順する。
【００４５】
クラスＣＬｉｓｔＣｔｒｌ７０２は、リストビューコントロールの機能性をカプセル化するファウンデーションクラスである。クラスＣＩｍａｇｅＬｉｓｔ７０４は、イメージリストの機能性をカプセル化するファウンデーションクラスである。クラスＣＳｔｅｎｃｉｌＬｉｓｔＣｔｒｌ７０６は、ステンシル項目を管理し、ステンシル項目のビューを提供し、ドラッグソース能力を提供する。クラスＣＦＢＳｔｅｎｃｉｌＶｉｅｗ７０８は、機能ブロック図を作成するために使用する１個以上のステンシルをコントロールする。クラスＣＳｆｃＳｔｅｎｃｉｌＶｉｅｗ７１０は、ＳＦＣダイヤグラムを作成するために使用する１個以上のステンシルをコントロールする。ＣＳｔｅｎｃｉｌＩｔｅｍ７１４は、ステンシルリストコントロールにおける１個の項目に対するドラッグ／ドロップ情報を含む。ＣＳｔｅｎｃｉｌＤｒｏｐＴａｒｇｅｔ７１６は、クラスＣＳｔｅｎｃｉｌＬｉｓｔＣｔｒｌｆ０６に対するドラッグおよびドロップ通知メッセージをコントロールする。ＣＯｌｅＤｒｏｐＴａｒｇｅｔ７１８は、ドラッグ／ドロップ動作におけるドロッピングの機能性をカプセル化するファウンデーションクラスである。
【００４６】
図８を参照すると、コントロールスタジオオブジェクトシステム１３０は、ファウンデーションクラスＣＯｂｊｅｃｔ８０２から降順する複数個のクラスを含む。すなわち、クラスＣｌｔｗｔＢａｓｅ８０４は、クラスＣＯｂｊｅｃｔ８０２から降順する。クラスＣｌｔｗｔＡｔｔｒｉｂｕｔｅ８０６、ＣｌｔｗｔＵｓａｇｅ８０８、ＣＬｔｗｔＳｆｃＳｔｅｐＤａｔａ８１０、ＣＬｔｗｔＳＦＣＴｒａｎｓｉｓｔｉｏｎＤａｔａ８１２およびＣＬｔｗｔＧｒａｐｈｉｃ８１４は、クラスＣｌｔｗｔＢａｓｅ８０４から降順する。これらのクラスは各々、ドラッグおよびドロップ動作に使用可能な異なる型式のダイヤグラム項目を表す。クラスＧＬｔｗｔＵｓａｇｅＡｌｌ８２２は、クラスＣＬｔｗｔＵｓａｇｅ８０８から降順する。クラスＣＬｔｗｔＵｓａｇｅＣｏｎｎｅｃｔｏｒＡｔｔｒｓ８２０およびＧＬｔｗｔＵｓａｇｅＡｌｌ８２２もまた、クラスＣＬｔｗｔＡｔｔｒｉｂｕｔｅ８０６と集約される。クラスＣＬｔｗｔＣｏｎｎＮａｍｅＡｔｔｒＮａｍｅ８２６は、クラスＣＬｔｗｔＵｓａｇｅＡｌｌ８２２と集約される。クラスＣＬｔｗｔＳｆｃＳｔｅｐｓＡｌｌ８３０は、クラスＣＬｔｗｔＳｆｃＳｔｅｐＤａｔａ８１０から降順する。クラスＣＬｔｗｔＳｆｃＳｔｅｐＡｃｔｉｏｎＤａｔａ８３２は、クラスＣＬｔｗｔＳｆｃＳｔｅｐｓＡｎｄＡｃｔｉｏｎｓ８３０と集約される。クラスＣＬｔｗｔＣｏｍｍｅｎｔ８４０およびＣＬｔｗｔＢｏｘ８４２は、クラスＣＬｔｗｔＧｒａｐｈｉｃ８１４から降順する。
【００４７】
クラスＣＬｔｗｔＡｔｔｒｉｂｕｔｅ８０６は、属性についてデータベースから、またはデータベースに書き込まれたデータを記憶する。クラスＣＬｔｗｔＵｓａｇｅ８０８は、データベースとアプリケーションとの間でデータを転送するために用いる使用情報のためのライトウェイトデータホールダである。
【００４８】
このクラスは、主として機能ブロック図によって使用されるが、逐次機能チャートアルゴリズムは、このクラスを限定された方法で用いる。クラスＣＬｔｗｔＵｓａｇｅＡｌｌ８２２は、ＣＬｔｗｔＵｓａｇｅクラスのサブクラスであり、入力および出力ＣＬｔｗｔＣｏｎｎＮａｍｅＡｔｔｒＮａｍｅオブジェクトのリストおよびＣＬｔｗｔＡｔｔｒｉｂｕｔｅｓオブジェクトのリストを備える追加情報を含む。このクラスは、ドラッグおよびドロップで使用され、ユーザが特定の使用に対して行った可能性のあるいずれかの属性またはコネクションオーバライドを設定する。クラスＣＬｔｗｔＳｆｃＳｔｅｐＤａｔａ８１０は、逐次機能チャートアルゴリズムにおけるステップを表すライトウェイトデータホールダである。クラスＣＬｔｗｔＧｒａｐｈｉｃ８１４は、ボックスおよびコメント等の全てのグラフィックオブジェクトに共通の動態を実現する。クラスＣＬｔｗｔＳｆｃＳｔｅｐＡｃｔｉｏｎＤａｔａ８３２は、１個の逐次機能チャートアクションを表すものである。クラスＣＬｔｗｔＳｔｅｐｓＡｌｌ８３０は、ドラッグおよびドロップのために使用するアクションを含むステップを特定的に表すものである。クラスＣＬｔｗｔＢｏｘ８４２は、データベースオブジェクトを表すＣＬｔｗｔＧｒａｐｈｉｃのサブクラスであり、アルゴリズム上のボックスまたは矩形も表す。クラスＣＬｔｗｔＣｏｍｍｅｎｔ８４０は、データベースオブジェクトを表すＣＬｔｗｔＧｒａｐｈｉｃのサブクラスであり、ユーザがアルゴリズム上で入力したテキストも表す。クラスＣＬｔｗｔＢａｓｅ８０４は抽象ベースクラスであり、これはダイヤグラム上に現れることが可能なデータベースオブジェクトの表現を管理する方法を提供する。クラスＣＬｔｗｔＳＦＣＴｒａｎｓｉｓｔｉｏｎＤａｔａ８１２は、ＳＦＣアルゴリズムにおける遷移オブジェクトを表すものである。クラスＣＬｔｗｔＣｏｎｎＮａｍｅＡｄｄｒＮａｍｅ８２６は、属性、およびその属性に関連するコネクタの名前を表すものであり、ある属性のみが、それに関連するコネクタを有する。
【００４９】
図９を参照すると、コントロールスタジオオブジェクトシステムは、ファウンデーションクラスＣＯｂｊｅｃｔ８０２から降順し、他の項目の連結に関連する複数個のクラスを含む。すなわち、クラスＣＬｔｗｔＣｏｎｎｅｃｔｉｏｎＢａｓｅ９０４は、クラスＣＯｂｊｅｃｔ８０２から降順する。クラスＣＬｔｗｔＳＦＣＣｏｎｎｅｃｔｉｏｎ９０６およびＣＬｔｗｔＦＢＣＣｏｎｎｅｃｔｉｏｎ９０８は、クラスＣＬｔｗｔＣｏｎｎｅｃｔｉｏｎＢａｓｅ９０４から降順する。
【００５０】
クラスＣＬｔｗｔＣｏｎｎｅｃｔｉｏｎＢａｓｅ９０４は、コネクションオブジェクトを表す。好ましい実施の形態では、２つの型式のコネクションオブジェクトは、機能ブロックまたは逐次機能チャートコネクションである。ＣＬｔｗｔＳｆｃＣｏｎｎｅｃｔｉｏｎ９０６は、データベースにおける逐次機能チャートアルゴリズム上のコネクションを表現する。クラスＣＬｔｗｔＦｂＣｏｎｎｅｃｔｉｏｎ９０８は、データベースにおける機能ブロックアルゴリズム上のコネクションを表現する。
【００５１】
図１０を参照すると、コントロールスタジオオブジェクトシステム１３０は、ファウンデーションクラスＣＯｌｅＤｒｏｐＴａｒｇｅｔ１００２から降順するクラスを含む。すなわち、クラスＣＤｉａｇｒａｍＤｒｏｐＴａｒｇｅｔ１００４は、ファウンデーションクラスＤＯｌｅＤｒｏｐＴａｒｇｅｔ１００２から降順する。クラスＣＤｉａｇｒａｍＣｔｒｌ１００６およびＣＣｌｉｐｂｏａｒｄＦｏｒｍａｔｓ１００８は、クラスＣＤｉａｇｒａｍＤｒｏｐＴａｒｇｅｔ１００４と集約される。
【００５２】
クラスＣＤｉａｇｒａｍＣｔｒｌ１００６は、クラスＣＯｌｅＣｏｎｔｒｏｌ１０１０から降順する。ＣＤｉａｒｇｒａｍＣｔｒｌ１００６は、クラスＣＤｉａｇｒａｍＯｃｘＶｉｅｗ１０１２と集約される。
【００５３】
クラスＣＤｉａｇｒａｍＣｔｒｌ１００６は、図形表現と、機能ブロックおよび逐次機能チャートアルゴリズムに対するオブジェクトの操作手段とを提供する。このクラスは、ＯＬＥコントロールクラスである。クラスＣＤｉａｇｒａｍＤｒｏｐＴａｒｇｅｔ１００４は、ダイヤグラムドラッグおよびドロップ動作のターゲットウィンドウを表す。このクラスは、そこにドロップされたいずれかのデータを受け取るかどうかを決定し、（データベースにおけるドロップされたオブジェクトを実際作成するコンテナにＯｎＤｒｏｐ事象をファイヤする）ＣＤｉａｇｒａｍＣｔｒｌオブジェクトのＯｎＤｒｏｐ方法を呼び出す。クラスＣＣｌｉｐｂｏａｒｄＦｏｒｍａｔｓ１００８は、ＯＣＸによるドロップのために支持された登録済みフォーマットのアレイを保持する。クラスＣＯｌｅＣｏｎｔｒｏｌ１０１０は、ＯＬＥコントロールを開発するためのファウンデーションクラスである。クラスＣＤｉａｇｒａｍＯｃｘＶｉｅｗ１０１２は、図６を参照して述べている。
【００５４】
図１１を参照すると、コントロールスタジオオブジェクトシステム１３０は、クラスＣＯｂｊｅｃｔ８０２から降順し、ダイヤグラムに既に存在するドラッグおよびドロップ項目またはカットおよびペースト項目の機能に関連するクラスも含む。クラスＣＮａｔｉｖｅＤｒａｇＤｒｏｐ１１０４は、クラスＣＯｂｊｅｃｔ１１０２から降順する。クラスＣＬｔｗｔＣｏｎｎｅｃｔｉｏｎＢａｓｅ９０４およびＣｌｔｗｔＢａｓｅ１１０８は、クラスＣＮａｔｉｖｅＤｒａｇＤｒｏｐ１１０４と集約される。
【００５５】
クラスＣＮａｔｉｖｅＤｒａｇＤｒｏｐ１１０４は収集クラスであり、これは、ダイヤグラム上に現在存在し、ドラッグされ且つドロップされ、またはカット／コピーされ且つペーストされるべきＣＬｔｗｔＢａｓｅおよびＣＬｔｗｔＣｏｎｎｅｃｔｉｏｎＢａｓｅオブジェクトのリストを保持する。このオブジェクトはまた、ペースト／ドロップ動作の間、適当な位置を設定するのを援助する位置オフセットを記憶する。クラスＣＮａｔｉｖｅＤｒａｇＤｒｏｐ１１０４オブジェクトは、共用ファイルに、且つそこから自身を直列化し、ＣＯｌｅＤａｔａＳｏｕｒｃｅおよびＣＯｌｅＤａｔａＯｂｊｅｃｔオブジェクトからのデータを設定し且つ獲得する方法を提供する。クラスＣＬｔｗｔＢａｓｅ１１０８は、データベースにおけるデータオブジェクトを表すオブジェクトに対する抽象ベースクラスである。クラスＣＬｔｗｔＣｏｎｎｅｃｔｉｏｎＢａｓｅ９０４は、図９を参照して上で述べている。
【００５６】
コントロールスタジオオブジェクトシステムの動作
コントロールスタジオオブジェクトシステム１３０は、オブジェクトシステム１３０のダイヤグラム部分にオブジェクトを追加するための複数個の動作モードを含む。これらの動作モードは、ダイヤグラム部分へのオブジェクトの追加と、ステンシル部分へのオブジェクトの追加とを含む。
【００５７】
ステンシル部分からダイヤグラム部分にステンシルオブジェクトを追加する際、ユーザは、ソースステンシルウィンドウ、すなわちステンシル部分におけるステンシルオブジェクト上でカーソル（図示せず）を位置決めし、マウス等の位置決め装置を駆動する。ステンシルウィンドウ内のステンシルオブジェクトは、選択を指示するように強調表示される。選択されたステンシルオブジェクト上にカーソルがある状態で、ユーザは、左マウスボタンを押した状態で、マウスを移動させることによってカーソルのドラッグを開始する。カーソルと共に移動するステンシルのドラッグイメージを表示することによって、ワークステーションが応答する。ユーザは、次に、ダイヤグラム部分にカーソルを位置決めする。ユーザがダイヤグラムウィンドウを横切ってカーソルをドラッグし続けると、オブジェクトシステム１３０によって、矩形が結合された状態でカーソルの矢印を表すことによって、カーソルがドロップターゲット上にあることを示すように更新される。ユーザがダイヤグラム部分のウィンドウのエッジの外側にカーソルを移動させると、システムは、対角線が通過する円でカーソルを表して、ドロップターゲットの上方にないことを示す。ユーザは、新たなオブジェクトがダイヤグラムに追加されるべき位置にカーソルを移動させると、左マウスボタンを離す。これに応じて、システムが、表示されたドラッグイメージを除去し、カーソルを正常に再表示し、ダイヤグラムウィンドウにおける対応するダイヤグラムオブジェクトを作成して表示する。ユーザがマウスボタンを離す代わりに、キーボード上のエスケープキーを押すと、システムがドラッグおよびドロップをキャンセルする。ステンシル部分のウィンドウにある状態でユーザがマウスボタンを離すと、システムは、選択されたステンシルオブジェクトをステンシル部分のウィンドウにおける新たな位置に移動させ、カーソルを正常にリセットすることによって応答する。この機能性を実現するために用いるクラスは、ＣＳｔｅｎｃｉｌＬｉｓｔＣｔｒｌ、ＣＩｍａｇｅＬｉｓｔ、ＣＤｉａｇｒａｍＤｒｏｐＴａｒｇｅｔ、ＣＳｔｅｎｃｉｌＤｒｏｐＴａｒｇｅｔ、ＣＳｔｅｎｃｉｌＩｔｅｍおよびＣＤｉａｇｒａｍＣｔｒｌ、ＣＤｉａｇｒａｍＯｃｘＶｉｅｗ、ＣＮａｔｉｖｅＤｒａｇＤｒｏｐである。
【００５８】
図１２Ａには、ステンシルドラッグ／ドロップ動作中のコントロールスタジオオブジェクトシステム１３０の動作が示されている。ユーザが左マウスボタンでステンシルオブジェクトを選択して、ステンシルオブジェクトをドラッグし始めると、ドラッグ／ドロップ動作がステップ１２０２で開始する。コントロールは、その後、処理ステップ１２０４に進み、クラスＣＳｔｅｎｃｉｌＬｉｓｔＣｔｒｌｆ０６のＯｎＢｅｇｉｎＤｒａｇ方法が呼び出される。方法ＯｎＢｅｇｉｎＤｒａｇは、ステンシルオブジェクト１２０５のドラッグイメージを作成する。
【００５９】
ステップ１２０４を完了すると、コントロールは処理ステップ１２０６に進み、方法ＣＳｔｅｎｃｉｌＬｉｓｔＣｔｒｌがＣＯｌｅＤａｔａＳｏｕｒｃｅおよびＣＯｌｅＤｒｏｐＳｏｕｒｃｅオブジェクトを作成する。ステップ１２０６は、その後、選択されたステンシルオブジェクトからＣＳｈａｒｅｄＦｉｌｅ１２０７にデータをキャッシュする。コントロールは、ステップ１２０６からステップ１２０８に進み、ＣｏｌｅＤａｔａＳｏｕｒｃｅオブジェクトのＤｏＤｒａｇＤｒｏｐ方法が呼び出される。コントロールは、その後、判断ステップ１２１０に進む。
【００６０】
図１２Ｂを参照すると、判断ステップ１２１０において、左マウスボタンがユーザによって駆動されたままであるかどうかをコントロールスタジオオブジェクトシステム１３０が決定する。マウスボタンが駆動されていると、コントロールは判断ステップ１２１２に進む(図１２Ｃ参照)。
【００６１】
マウスボタンが駆動されていない場合には、コントロールスタジオオブジェクトシステム１３０が判断ステップ１２１４に進む。判断ステップ１２１４において、ステンシルリストコントロールとして機能するステンシル部分にカーソルが位置決めされているかどうかをコントロールスタジオオブジェクトシステム１３０が決定する。カーソルがステンシル部分に位置決めされている場合には、コントロールは処理ステップ１２１６に進み、ＳｔｅｎｃｉｌｓＯｎＤｒｏｐ事象が活動化される。Ｓｔｅｎｃｉｌｓ ＯｎＤｒｏｐ事象が活動化されると、コントロールは判断ステップ１２２０に進む(図１２ｅ参照)。
【００６２】
カーソルがステンシルリストコントロール上に位置決めされていない場合、コントロールは判断ステップ１２２２に進む。判断ステップ１２２２では、カーソルがダイヤグラム部分にあるかどうかをコントロールスタジオオブジェクトシステム１３０が決定する。カーソルがダイヤグラム部分にある場合には、コントロールは処理ステップ１２２４に進み、ＤｉａｇｒａｍＯｎＤｒｏｐ事象が活動化される。Ｄｉａｇｒａｍ ＯｎＤｒｏｐ事象が活動化されると、コントロールはステップ１２２６に進む（図１２ｄ参照）。カーソルが判断ステップ１２２２でダイヤグラム上にない場合には、コントロールは終了ステップ１２２８に進み、ドラッグおよびドロップ動作が終了する。
【００６３】
図１２Ｃを参照すると、判断ステップ１２１２において、カーソルがステンシルリストコントロール上に位置決めされているがどうかをコントロールスタジオオブジェクトシステム１３０が決定する。カーソルがステンシルリストコントロール上に位置決めされていない場合、コントロールは判断ステップ１２３０に進む。判断ステップ１２３０においては、カーソル位置が最後にチェックされた時に、カーソルがステンシルリストコントロール上に位置決めされていたかどうかをコントロールスタジオオブジェクトシステム１３０が決定する。カーソルがステンシルリストコントロール上に位置決めされていなかった場合、コントロールは判断ステップ１２１０に進む。カーソル位置が最後にチェックされた時に、カーソルがステンシルリストコントロール上に位置決めされていた場合、コントロールはステップ１２３２に進む。ステップ１２３２において、コントロールスタジオオブジェクトシステム１３０は、ＯｎＤｒａｇＬｅａｖｅ事象を活動化し、カーソルがステンシルリストコントロールビューを出たことを示す。ＯｎＤｒａｇＬｅａｖｅ事象が活動化されると、コントロールは判断ステップ１２１０に進む。
【００６４】
判断ステップ１２１２では、カーソルがステンシルリストコントロール上に位置決めされている場合、コントロールは判断ステップ１２３４に進む。判断ステップ１２３４において、コントロールスタジオオブジェクトシステム１３０は、カーソル位置を最後にチェックした時にカーソルがステンシルリストコントロール上に位置決めされていたかどうかを決定する。カーソル位置が最後にチェックされた時にカーソルがステンシルリストコントロール上になかった場合、コントロールは処理ステップ１２３６に進む。処理ステップ１２３６においては、ＯｎＤｒａｇＥｎｔｅｒステンシル事象が活動化される。ＯｎＤｒａｇＥｎｔｅｒは、カーソルがステンシルリストコントロールウィンドウを入力したことをシステムに指示する。カーソル位置が最後にチェックされた時にカーソルがステンシルリストコントロール上に位置決めされていた場合、コントロールは処理ステップ１２３８に進む。処理ステップ１２３８において、オブジェクトシステム１３０はＯｎＤｒａｇＯｖｅｒ事象を活動化する。オブジェクトシステム１３０によってＯｎＤｒａｇＯｖｅｒが使用され、ドロップ効果を決定する。コントロールは、それぞれの事象が活動化された後、処理ステップ１２３６および処理ステップ１２３８から判断ステップ１２１０に進む。
【００６５】
図１２Ｄを参照すると、処理ステップ１２２６において、ＣＤｉａｇｒａｍＤｒｏｐＴａｒｇｅｔ１０４に対するＯｎＤｒｏｐ事象が活動化される。ＯｎＤｒｏｐ事象が活動化されると、コントロールは処理ステップ１２４０に進み、そのステップにおいて、ＣＤｉａｇｒａｍＣｔｒｌに対するＯｎＤｒｏｐ事象が活動化される。ＯｎＤｒｏｐ事象が活動化されると、コントロールは処理ステップ１２４２に進む。処理ステップ１２４２において、パラメータとしてＣＯｌｅＤａｔａＯｂｊｅｃｔを用いて方法ＣＤｉａｇｒａｍＯｃｘＶｉｅｗが呼び出される。コントロールスタジオオブジェクトシステムは、その後、ＣＳｈａｒｅｄＦｉｌｅ１２０７へのハンドルを得て、処理ステップ１２４４に進む。処理ステップ１２４４において、方法ＣＤｉａｇｒａｍＯｃｘＶｉｅｗは、新たなＣＳｔｅｎｃｉｌＩｔｅｍオブジェクトを作成し、ＣＳｈａｒｅｄＦｉｌｅ１２０７からのデータをそれに入れる。ステップ１２４４が完了すると、コントロールは処理ステップ１２４６に進む。処理ステップ１２４６において、ＣＤｉａｇｒａｍＯｃｘＶｉｅｗが、カーソル位置にあるダイヤグラム項目１２４８を作成する。ダイヤグラム項目が作成されると、ステンシルオブジェクトのドラッグおよびドロップ動作が完了する。
【００６６】
図１２Ｅを参照すると、判断ステップ１２２０において、ステンシルオブジェクトがこのステンシルリストコントロールからのものであるかどうかをコントロールスタジオオブジェクトシステム１３０が決定し、これによって、カーソルが位置決めされているＣＳｔｅｎｃｉｌＬｉｓｔＣｔｒｌからステンシル項目が発生されているかどうかを示す。ステンシルオブジェクトがこのステンシルリストコントロールからのものである場合、コントロールは処理ステップ１２５０に進む。処理ステップ１２５０において、オブジェクトシステム１３０は、ステンシルリストコントロールにおけるその現在の位置からカーソル位置までステンシルオブジェクトを移動させる。ステンシルオブジェクトの移動が完了すると、コントロールは終了ステップ１２５２に進み、ドラッグおよびドロップ動作が完了する。ステンシルオブジェクトがこのステンシルリストコントロールからのものでない場合、コントロールは処理ステップ１２５４に進む。処理ステップ１２５４において、ＣＯｌｅＤａｔａＯｂｊｅｃｔを用いて方法ＣＳｔｅｎｃｉｌＬｉｓｔＣｔｒｌが呼び出され、それを利用してＣＳｈａｒｅｄＦｉｌｅ１２０７へのハンドルを得る。ハンドルが得られると、コントロールは処理ステップ１２５６に進む。処理ステップ１２５６において、方法ＣＳｔｅｎｃｉｌＬｉｓｔＣｔｒｌは新たなＣＳｔｅｎｃｉｌＩｔｅｍオブジェクトを作成し、そのオブジェクトにＣＳｈａｒｅｄＦｉｌｅ１２０７からのステンシルオブジェクトデータを入れる。コントロールは、その後、処理ステップ１２５８に進む。処理ステップ１２５８において、カーソル位置で、ステンシルリストコントロール１２６０にステンシルオブジェクトが追加される。コントロールは、その後、終了ステップ１２５２に進む。
【００６７】
図１３Ａには、ダイヤグラム内の、またはその間の１個以上の選択された項目をドラッグし、且つドロップする動作が示されている。すなわち、ドラッグおよびドロップ動作は、ユーザがマウスを駆動して、選択された項目に保持することによって、ステップ１３０２で開始される。コントロールは、その後、処理ステップ１３０４に進む。処理ステップ１３０４において、ＣＤｉａｇｒａｍＣｔｒｌクラスのＯｎＢｅｇｉｎＤｒａｇ事象が活動化される。この事象の活動化は、ＣＯｌｅＤａｔａＳｏｕｒｃｅおよびＣＯｌｅＤｒｏｐＳｏｕｒｃｅオブジェクトを作成し、ＯｎＢｅｇｉｎＤｒａｇ事象を活動化する。ＯｎＢｅｇｉｎＤｒａｇ事象を活動化すると、コントロールは処理ステップ１３０６に進む。処理ステップ１３０６において、コントロールスタジオオブジェクトシステム１３０がＣＮａｔｉｖｅＤｒａｇＤｒｏｐオブジェクトを作成し、ＣＮａｔｉｖｅＤｒａｇＤｒｏｐオブジェクトのＯｎＢｅｇｉｎＤｒａｇ方法を呼び出す。コントロールは、その後、処理ステップ１３０８に進む。処理ステップ１３０８において、呼び出されたＯｎＢｅｇｉｎＤｒａｇ方法は、選択された全てのオブジェクトのデータを共有メモリファイルＣＳｈａｒｅｄＦｉｌｅ１３１０に保存する。コントロールは、その後、処理ステップ１３１２に進み、ＣＤｉａｇｒａｍＣｔｒｌ事象がＣＯｌｅＤａｔａＳｏｕｒｃｅオブジェクトのＤｏＤｒａｇＤｒｏｐ方法を呼び出す。コントロールは、その後、判断ステップ１３２０に進む(図１３Ｂ参照)。
【００６８】
図１３Ｂを参照すると、判断ステップ１３２０において、マウスボタンが駆動されたままであるかどうかをコントロールスタジオオブジェクトシステム１３０が決定する。マウスボタンが駆動されたままである場合、コントロールは判断ステップ１３２２に進む。判断ステップ１３２２において、カーソルが有効ドロップ位置にあるかどうかをオブジェクトシステム１３０が決定する。カーソルが有効ドロップ位置にない場合、コントロールは処理ステップ１３２４に進む。処理ステップ１３２４において、ＣＤｉａｇｒａｍＣｔｒｌｉ０６がカーソルを更新し、ドラッグおよびドロップ動作が行われていることを示し、また囲い込んだ輪郭矩形も表示する。コントロールは、その後、判断ステップ１３２０に戻る。
【００６９】
判断ステップ１３２２において、オブジェクトシステム１３０はカーソルが有効ドロップ位置にあることを決定し、その後、コントロールは処理ステップ１３２６に進む。処理ステップ１３２６において、オブジェクトシステム１３０はカーソルを更新して、有効ドロップ位置にないことを示す。コントロールは、その後、判断ステップ１３２０に戻る。
判断ステップ１３２０において、クラスＣＤｉａｇｒａｍＣｔｒｌ ｉ０６はマウスボタンを離していると決定すると、コントロールが判断ステップ１３２８に進む。判断ステップ１３２８において、オブジェクトシステム１３０はカーソルが有効ドロップ位置にあるかどうかを決定する。カーソルが有効ドロップ位置にない場合、コントロールは終了シンボル１３３０に進み、ドラッグおよびドロップ動作が終了する。カーソルが有効ドロップ位置にある場合、コントロールは処理ステップ１３３２に進む。処理ステップ１３３２において、ＣＤｉａｇｒａｍＤｒｏｐＴａｒｇｅｔのＯｎＤｒｏｐ方法が呼び出される。ＣＤｉａｇｒａｍＤｒｏｐＴａｒｇｅｔＯｎＤｒｏｐ方法は、ステップ１３４２でＣＤｉａｇｒａｍＣｔｒｌ ＯｎＤｒｏｐ方法を呼び出し、ＯｎＤｒｏｐ事象をファイヤする(図１３Ｃ参照)。
【００７０】
図１３Ｃを参照すると、処理ステップ１３４０において、オブジェクトシステム１３０はＣＤｉａｇｒａｍＣｔｒｌクラスのＯｎＤｒｏｐ方法を呼び出す。ＯｎＤｒｏｐ方法が呼び出されると、コントロールは処理ステップ１３４２に進む。処理ステップ１３４２において、オブジェクトシステム１３０は、ＯｎＤｒｏｐ事象をファイヤする。ＯｎＤｒｏｐ事象が活動化されると、コントロールは処理ステップ１３４４に進む。処理ステップ１３４４において、オブジェクトシステム１３０はＣＮａｔｉｖｅＤｒａｇＤｒｏｐオブジェクトを作成し、処理ステップ１３４６に進む。処理ステップ１３４６において、オブジェクトシステム１３０は、ＣＮａｔｉｖｅＤｒａｇＤｒｏｐオブジェクトのＯｎＤｒｏｐ方法を呼び出す。コントロールは、その後、処理ステップ１３４８に進む。処理ステップ１３４８において、ＯｎＤｒｏｐ方法は、事前に共有ファイル１３１０に直列化されたデータを読み出す。コントロールは、その後、処理ステップ１３５０に進む。処理ステップ１３５０において、方法ＣＮａｔｉｖｅＤｒａｇＤｒｏｐは、ドロップされたオブジェクトの位置をオフセットする。コントロールは、その後、処理ステップ１３５２に進む。処理ステップ１３５２において、オブジェクトシステム１３０は、データベース内の新たなオブジェクトを作成する。コントロールは、その後、判断ステップ１３６０に進む(図１３Ｄ参照)。
【００７１】
図１３Ｄを参照すると、判断ステップ１３６０において、オブジェクトシステムは他にドロップされたオブジェクトがあるかどうかを決定する。他にドロップされたオブジェクトがある場合、コントロールは処理ステップ１３６２に進む。
【００７２】
処理ステップ１３６２において、オブジェクトシステム１３０は、ダイヤグラム部分においてドロップされたオブジェクトを作成する。コントロールは、その後、処理ステップ１３６４に進む。処理ステップ１３６４において、オブジェクトシステム１３０は、新たに作成されたダイヤグラムオブジェクトを選択し、判断ステップ１３６０に進み、他にドロップされたオブジェクトがあるかどうかを決定する。ドロップされたオブジェクトがこれ以上ない場合、コントロールは処理ステップ１３６６に進む。処理ステップ１３６６において、オブジェクトシステム１３０は全ての可視ウィンドウを更新して、ダイヤグラムに成された変化を反映する。コントロールは、その後、終了シンボル１３６８に進み、ドラッグおよびドロップ動作が完了する。
【００７３】
図１４Ａないし図１４Ｄには、ダイヤグラムからの１個以上のオブジェクトのカット、コピーおよびペーストの動作が示されている。すなわち、カット動作中にステップ１４０２に示すようにユーザがカットコマンドを選択する。カットコマンドが選択されると、コントロールは、判断ステップ１４０４に進む。判断ステップ１４０４において、オブジェクトシステム１３０は、選択された型式の全てがカット動作によって支持されているかどうかを決定する。選択された型式の全てがカット動作によって支持されているわけではない場合、コントロールは、処理ステップ１４０６に進む。処理ステップ１４０６において、オブジェクトシステム１３０は、ユーザに警告して、継続したいかどうかを尋ねる。コントロールは、その後、判断ステップ１４０８に進む。判断ステップ１４０８において、オブジェクトシステム１３０は、ユーザが継続したいかどうかを決定する。ユーザが継続しないことを選択する場合、コントロールは終了ステップ１４０９に進み、カット動作をやめる。ユーザが継続することを選択する場合、または選択されたオブジェクト型式の全てが、判断ステップ１４０４で決定されたようにカット動作によって支持された場合、コントロールは処理ステップ１４１０に進む(図１４Ｂ参照)。
【００７４】
図１４Ｂを参照すると、処理ステップ１４１０において、オブジェクトシステム１３０は、ＣＮａｔｉｖｅＤｒａｇＤｒｏｐおよびＣＯｌｅＤａｔａＳｏｕｒｃｅオブジェクトを作成し、ＣＮａｔｉｖｅＤｒａｇＤｒｏｐオブジェクトのＯｎＢｅｇｉｎＤｒａｇ方法を呼び出す。コントロールは、その後、処理ステップ１４１２に進む。処理ステップ１４１２において、ＯｎＢｅｇｉｎＤｒａｇ方法は、選択されたオブジェクトのデータを共有ファイル１４１４に直列化する。コントロールは、その後、処理ステップ１４１６に進む。処理ステップ１４１６において、ＯｎＢｅｇｉｎＤｒａｇ方法は、データをＣＯｌｅＤａｔａＳｏｕｒｃｅにキャッシュする。コントロールは、その後、処理ステップ１４１８に進む。処理ステップ１４１８において、ＣＤｉａｇｒａｍＣｔｒｌオブジェクトのＣｏｐｙＯｂｊｅｃｔ方法が呼び出される。コントロールは、その後、処理ステップ１４２０に進む。処理ステップ１４２０において、方法ＣｏｐｙＯｂｊｅｃｔは、オブジェクトを様々なフォーマットでクリップボードにコピーする。完了すると、オブジェクトシステム１３０は、呼び出し機能に進み、コピーが完成する。コントロールスタジオオブジェクトシステム１３０は、その後、処理ステップ１３３３に進み、選択されたオブジェクトを全て削除し、終了ステップ１４３５に進み、そこでカットが完了する。
【００７５】
図１４Ｃを参照すると、コピー動作中、ステップ１４３２で示すように、ユーザがコピーコマンドを選択する。コピーコマンドが選択されると、コントロールは、上で述べた処理ステップ１４１０に進む(図１４Ｂ参照)。
【００７６】
図１４Ｄを参照すると、ペースト動作中、ステップ１４４０で示すように、ユーザがペーストコマンドを選択する。ペーストコマンドが選択されると、コントロールは処理ステップ１４４２に進む。処理ステップ１４４２において、オブジェクトシステム１３０は、ＣＮａｔｉｖｅＤｒａｇＤｒｏｐおよびＣＯｌｅＤａｔａＯｂｊｅｃｔオブジェクトを作成する。コントロールは、その後、処理ステップ１４４６に進む(図１３Ｃ参照)。
【００７７】
図１５には、コントロールスタジオオブジェクトシステム１３０の動作が示されている。すなわち、ユーザは、ノードにプロセスコントロールダイヤグラムをインストールしたい場合、ファイルメニューからインストール・ノード項目を選択する。ユーザ入力に基づいて、その後、モジュール全体、または前回インストール動作が行われて以来の変化のみをインストールするかどうかを、オブジェクトシステム１３０が決定する。ユーザがモジュール全体をインストールすることを選択し、モジュールがまだノードに割り当てられていない時、オブジェクトシステム１３０は、モジュールがノードに割り当てられていないことをユーザに知らせ、ユーザがモジュールをノードにインストールしたいかどうかを尋ねる。オブジェクトシステム１３０は、ユーザが構成に適するノードを選択できるノードリストをユーザに提示する。ユーザが構成のためのノードを選択すると、オブジェクトシステム１３０は、ユーザがモジュールを更新したいかどうかを確認するウィンドウをユーザに提示する。オブジェクトシステム１３０は、その後、モジュールに名前を付けるようにユーザに要求する。ユーザが名前を選択または生成すると、オブジェクトシステム１３０は、ユーザがインストール手順を確実に実行したいのかどうかを尋ねる。「はい」と答えると、コントロールスタジオオブジェクトシステム１３０は、データベース内に記憶された情報を選択されたモジュールにダウンロードすることによって、インストール動作を自動的に実行する。
【００７８】
他の実施の形態 他の実施の形態は、特許請求の範囲内にある。
【００７９】
すなわち、本発明の特定の実施の形態を例示し、説明したが、より広範な態様において本発明を逸脱することなく変更および修正を行ってもよいため、特許請求の範囲が、本発明の真の精神および範囲内にあるものとして、このような全ての変更および修正を含むものであるが、他のプログラミング言語での実現には限定されないことが当業者には明らかとなるであろう。さらに、好ましい実施の形態は、ソフトウェア実現として開示されているが、アプリケーション特定集積回路実現等のハードウェア実現もまた以下の特許請求の範囲内にあることが認識されるであろう。
【図面の簡単な説明】
【００８０】
【図１】新たなコントロールテンプレートを作成する能力および既存のコントロールを変更する能力を提供する、本発明の一般的実施の形態によるワークステーションを示す概略ブロック図である。
【図２】構成インプリメンテーションおよびランタイムインプリメンテーションにおけるプロセスコントロール環境を示す概略ブロック図である。
【図３】本発明の実施の形態による構成モデルのシステムオブジェクト間の階層関係を示す概略ブロック図である。
【図４】本発明の実施の形態によるコントロールスタジオオブジェクトシステムの画面表示である。
【図５Ａ】本発明の実施の形態による完全プロセスコントロールダイヤグラムをプロセスコントロール環境のノードにインストールする画面表示である。
【図５Ｂ】本発明の実施の形態による完全プロセスコントロールダイヤグラムをプロセスコントロール環境のノードにインストールする画面表示である。
【図５Ｃ】本発明の実施の形態による完全プロセスコントロールダイヤグラムをプロセスコントロール環境のノードにインストールする画面表示である。
【図５Ｄ】本発明の実施の形態による完全プロセスコントロールダイヤグラムをプロセスコントロール環境のノードにインストールする画面表示である。
【図５Ｅ】本発明の実施の形態による完全プロセスコントロールダイヤグラムをプロセスコントロール環境のノードにインストールする画面表示である。
【図５Ｆ】本発明の実施の形態による完全プロセスコントロールダイヤグラムをプロセスコントロール環境のノードにインストールする画面表示である。
【図６】コントロールスタジオオブジェクトシステムダイヤグラムビュークラス階層のクラス階層を示すブロック図である。
【図７】コントロールスタジオオブジェクトシステムステンシルクラスのクラス階層を示すブロック図である。
【図８】クラスＣオブジェクトから降順するコントロールスタジオオブジェクトライトウェイトクラスのクラス階層を示すブロック図である。
【図９】クラスＣオブジェクトから降順するコントロールスタジオオブジェクトシステムコネクションクラスのクラス階層を示すブロック図である。
【図１０】コントロールスタジオオブジェクトシステムドラッグおよびドロップクラスのダイヤグラム部分のクラス階層を示すブロック図である。
【図１１】コントロールスタジオオブジェクトシステムネイティブドラッグおよびドロップオブジェクトクラスのクラス階層を示すブロック図である。
【図１２Ａ】本発明によるコントロールスタジオオブジェクトシステムのステンシルドラッグおよびドロップ動作を示すフローチャートである。
【図１２Ｂ】本発明によるコントロールスタジオオブジェクトシステムのステンシルドラッグおよびドロップ動作を示すフローチャートである。
【図１２Ｃ】本発明によるコントロールスタジオオブジェクトシステムのステンシルドラッグおよびドロップ動作を示すフローチャートである。
【図１２Ｄ】本発明によるコントロールスタジオオブジェクトシステムのステンシルドラッグおよびドロップ動作を示すフローチャートである。
【図１２Ｅ】本発明によるコントロールスタジオオブジェクトシステムのステンシルドラッグおよびドロップ動作を示すフローチャートである。
【図１３Ａ】本発明によるコントロールスタジオオブジェクトシステムのダイヤグラム部分に対するネイティブドラッグおよびドロップを示すフローチャートである。
【図１３Ｂ】本発明によるコントロールスタジオオブジェクトシステムのダイヤグラム部分に対するネイティブドラッグおよびドロップを示すフローチャートである。
【図１３Ｃ】本発明によるコントロールスタジオオブジェクトシステムのダイヤグラム部分に対するネイティブドラッグおよびドロップを示すフローチャートである。
【図１３Ｄ】本発明によるコントロールスタジオオブジェクトシステムのダイヤグラム部分に対するネイティブドラッグおよびドロップを示すフローチャートである。
【図１４Ａ】本発明によるコントロールスタジオオブジェクトシステムのダイヤグラム部分におけるネイティブカット、コピーおよびペースト動作を示すフローチャートである。
【図１４Ｂ】本発明によるコントロールスタジオオブジェクトシステムのダイヤグラム部分におけるネイティブカット、コピーおよびペースト動作を示すフローチャートである。
【図１４Ｃ】本発明によるコントロールスタジオオブジェクトシステムのダイヤグラム部分におけるネイティブカット、コピーおよびペースト動作を示すフローチャートである。
【図１４Ｄ】本発明によるコントロールスタジオオブジェクトシステムのダイヤグラム部分におけるネイティブカット、コピーおよびペースト動作を示すフローチャートである。
【図１５】本発明によるダイヤグラムをノードにインストールする動作を示すフローチャートである。
【図１】
2009009560.tif 000003
【図２】
2009009560.tif 000004
【図３】
2009009560.tif 000005
【図４】
2009009560.tif 000006
【図５Ａ】
2009009560.tif 000007
【図５Ｂ】
2009009560.tif 000008
【図５Ｃ】
2009009560.tif 000009
【図５Ｄ】
2009009560.tif 000010
【図５Ｅ】
2009009560.tif 000011
【図５Ｆ】
2009009560.tif 000012
【図６】
2009009560.tif 000013
【図７】
2009009560.tif 000014
【図８】
2009009560.tif 000015
【図９】
2009009560.tif 000016
【図１０】
2009009560.tif 000017
【図１１】
2009009560.tif 000018
【図１２Ａ】
2009009560.tif 000019
【図１２Ｂ】
2009009560.tif 000020
【図１２Ｃ】
2009009560.tif 000021
【図１２Ｄ】
2009009560.tif 000022
【図１２Ｅ】
2009009560.tif 000023
【図１３Ａ】
2009009560.tif 000024
【図１３Ｂ】
2009009560.tif 000025
【図１３Ｃ】
2009009560.tif 000026
【図１３Ｄ】
2009009560.tif 000027
【図１４Ａ】
2009009560.tif 000028
【図１４Ｂ】
2009009560.tif 000029
【図１４Ｃ】
2009009560.tif 000030
【図１４Ｄ】
2009009560.tif 000031
【図１５】
2009009560.tif 000032