(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-15
(45)【発行日】2023-08-23
(54)【発明の名称】フィールドデバイスを稼働するためのシステム、方法、およびコンピュータによって実施されるプログラム
(51)【国際特許分類】
G05B 19/05 20060101AFI20230816BHJP
【FI】
G05B19/05 A
【外国語出願】
(21)【出願番号】P 2020012442
(22)【出願日】2020-01-29
【審査請求日】2022-12-26
(32)【優先日】2019-03-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】100106909
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100146835
【氏名又は名称】佐伯 義文
(74)【代理人】
【識別番号】100167553
【氏名又は名称】高橋 久典
(74)【代理人】
【識別番号】100181124
【氏名又は名称】沖田 壮男
(72)【発明者】
【氏名】マーク・アンソニー・デ・カストロ・チュ-アンジエン
(72)【発明者】
【氏名】廣岡 勲
(72)【発明者】
【氏名】村田 秀樹
(72)【発明者】
【氏名】ナイン・オオ・リン
(72)【発明者】
【氏名】アーチー・サンビタン・オリド
(72)【発明者】
【氏名】森 健
(72)【発明者】
【氏名】ウィルフレッド・ウーン・ユー・テオ
(72)【発明者】
【氏名】イン・ズー・フアン
(72)【発明者】
【氏名】安波 大輔
【審査官】田中 友章
(56)【参考文献】
【文献】特開2015-135692(JP,A)
【文献】特表2009-534766(JP,A)
【文献】特開2011-70669(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
G06F 8/20
(57)【特許請求の範囲】
【請求項1】
工業プラントモジュールベースエンジニアリングシステムであって、
i)グループモジュールライブラリナビゲータであって、
i-1)各グループクラスモジュールが、
i-1-1)複数のクラスモジュールのグループ化、および
i-1-2)複数の論理制御モジュール図面の複合ループを定義するための複数の図面への前記クラスモジュールの割当てを定義する少なくとも1つの割振りを含む、複数のグループクラスモジュール、ならびに
i-2)前記複数のグループクラスモジュールのうちの関連するグループクラスモジュールに属するそれぞれの複数の子クラスモジュールであって、各子クラスモジュールが、前記複数のクラスモジュールのうちの関連するクラスモジュールを参照するそれぞれのショートカットファイルを含み、前記複数の子クラスモジュールが、前記関連するグループクラスモジュールにおける前記複合ループの論理を定義して形成する複数の子クラスモジュールを含むグループモジュールライブラリナビゲータと、
ii)前記グループクラスモジュールの階層を反映することによって前記グループクラスモジュールをインスタンス化して、アプリケーション構造ナビゲータにおいて、前記グループクラスモジュールからグループアプリケーションモジュール(グループAPM)および前記グループアプリケーションモジュール(グループAPM)の階層を生成するように構成されたグループモジュールインスタンス化エンジンであって、前記子クラスモジュールをインスタンス化して、前記アプリケーション構造ナビゲータにおいて、前記子クラスモジュールから子アプリケーションモジュール(子APM)をインスタンス化するように構成されたグループモジュールインスタンス化エンジンと、
iii)各グループクラスモジュールの前記割振りおよび各グループクラスモジュールの前記複合ループのそれぞれのトポロジーを更新するように構成されたグループモジュール更新エンジンであって、各グループアプリケーションモジュール(グループAPM)の割振りおよび各グループアプリケーションモジュール(グループAPM)の前記複合ループのそれぞれのトポロジーを更新するように構成されたグループモジュール更新エンジンと、
iv)前記グループクラスモジュールの前記少なくとも1つの割振りに基づいて、前記グループアプリケーションモジュール(グループAPM)およびレガシーアプリケーションモジュール(レガシーAPM)を工業プラントにおけるフィールドコントローラの図面にバインドするように構成されたモジュールバインディングエンジンであって、iv-1)ソースクラスモジュールを参照するクラスベースアプリケーションモジュール、およびiv-2)ソースクラスモジュールを参照しないクラスレスアプリケーションモジュールのうちの少なくとも一方であるモジュールバインディングエンジンとを備える工業プラントモジュールベースエンジニアリングシステム。
【請求項2】
各グループクラスモジュールは、複数の子クラスモジュールと、フォルダと、前記子クラスモジュールおよび前記フォルダの階層とを有する、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項3】
各グループクラスモジュールは、
モジュール設計の文書を生成するために使用される設計文書情報と、
前記クラスモジュールに関するアーチファクトを記憶するために使用されるアタッチメントと、
クラスモジュールのグループ化および複数の制御図面への前記クラスモジュールの割当てを定義してフィールド制御システムの図面についての複合ループを定義する前記割振りとを備える、請求項2に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項4】
v)クラスモジュールライブラリナビゲータであって、
v-1)再使用可能なモジュールエンジニアリングデータとドキュメンテーションとを含むクラスモジュールのそれぞれの定義を含み、
前記再使用可能なモジュールエンジニアリングデータが、制御論理と、アラームパラメータと、チューニングパラメータとを含み、
前記ドキュメンテーションが、設計情報とアタッチメントとを含む、クラスモジュールライブラリナビゲータをさらに備える、請求項3に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項5】
前記クラスモジュールは、
モジュール設計の文書を生成するために使用される設計文書情報と、
前記クラスモジュールに関するアーチファクトを記憶するために使用されるアタッチメントと、
プロセス制御の論理情報を含む制御論理と、
アラーム属性と、
チューニングパラメータとを含む、請求項4に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項6】
前記グループモジュールインスタンス化エンジンは、ユーザが前記子クラスモジュールにおいてインスタンス化すべきでない部分を選択するのを可能にし、ユーザが単一のグループクラスモジュールから様々なグループアプリケーションモジュールのセットを生成するのを可能にするように構成される、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項7】
前記モジュールバインディングエンジンは、各グループクラスモジュールにおいて定義された前記複数の論理制御図面を複数の物理フィールド制御システムのうちのそれぞれの物理フィールド制御システムに割り当てるように構成される、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項8】
前記グループモジュール更新エンジンは、前記グループクラスモジュールの前記複合ループの前記それぞれのトポロジーを更新する場合に、前記グループクラスモジュールからインスタンス化された前記グループアプリケーションモジュール(グループAPM)を参照する子アプリケーションモジュール(子APM)の追加および削除の少なくとも一方を実行するようにさらに構成される、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項9】
前記グループモジュール更新エンジンは、前記子アプリケーションモジュール(子APM)のコンテンツを更新する場合に、前記グループクラスモジュールからインスタンス化された前記グループアプリケーションモジュール(グループAPM)を参照する前記子アプリケーションモジュール(子APM)の前記コンテンツを更新するようにさらに構成される、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項10】
前記グループモジュール更新エンジンは、各グループアプリケーションモジュール(グループAPM)の前記複合ループの前記それぞれのトポロジーを更新する場合に、前記グループクラスモジュールからインスタンス化された前記グループアプリケーションモジュール(グループAPM)を参照する子アプリケーションモジュール(子APM)の追加および削除の少なくとも一方を実行するようにさらに構成される、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項11】
前記グループモジュール更新エンジンは、各グループアプリケーションモジュール(グループAPM)の前記複合ループの前記それぞれのトポロジーを更新する場合に、前記グループクラスモジュールからインスタンス化された各グループアプリケーションモジュール(グループAPM)の前記複合ループのトポロジーを更新するようにさらに構成される、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項12】
各グループアプリケーションモジュール(グループAPM)は、
i-1-1)アプリケーションモジュールのグループ化、および
i-1-2)複数の論理制御図面の複合ループを定義するための複数の制御図面への前記アプリケーションモジュールの割当てを定義する少なくとも1つの割振りを含む、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項13】
前記グループモジュール更新エンジンは、各グループクラスモジュールの前記割振りおよび各グループクラスモジュールの前記複合ループの前記それぞれのトポロジーを更新した場合に、各グループアプリケーションモジュール(グループAPM)のうちの少なくとも1つの前記割振りおよび各グループアプリケーションモジュール(グループAPM)の前記複合ループの前記それぞれのトポロジーを更新するように構成される、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項14】
前記グループモジュール更新エンジンは、各グループクラスモジュールのうちの少なくとも1つの前記割振りおよび各グループクラスモジュールの前記複合ループのそれぞれのトポロジーに変更または修正が行われた場合に、各グループアプリケーションモジュール(グループAPM)のうちの少なくとも1つの前記割振りおよび各グループアプリケーションモジュール(グループAPM)の前記複合ループの前記それぞれのトポロジーを更新するように構成される、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項15】
前記グループモジュール更新エンジンは、前記グループモジュール更新エンジンによって削除された前記子クラスモジュールからインスタンス化された前記子アプリケーションモジュールを削除するように構成される、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項16】
前記グループモジュール更新エンジンは、追加の子クラスモジュールを追加するように構成され、前記グループモジュールインスタンス化エンジンは、前記グループモジュール更新エンジンが前記追加の子クラスモジュールを追加した場合に、前記追加の子クラスモジュールをインスタンス化するように構成される、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項17】
前記グループモジュール更新エンジンは、前記アプリケーション構造ナビゲータから前記子アプリケーションモジュールを削除するように構成される、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項18】
vi)前記グループアプリケーションモジュールをグループ化解除するように構成されたグループ化解除エディタであって、前記グループアプリケーションモジュールの最上位のフォルダをアプリケーションフォルダに変更し、前記最上位のフォルダの直下の前記グループアプリケーションモジュールの設計情報、アタッチメントリスト、および前記割振りを削除し、また、グループ化解除された前記グループアプリケーションを参照する前記子アプリケーションモジュールをクラスベースアプリケーションモジュールに変更するように構成されるグループ化解除エディタをさらに備える、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項19】
前記グループモジュールインスタンス化エンジンは、前記グループクラスモジュールの適用可能なインスタンスを作成して前記グループクラスモジュールをテンプレートグループモジュールとして再使用するのを可能にし、インスタンス化された前記グループクラスモジュールにおける編集可能なパラメータを構成するのを可能にするための処理系を備える、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項20】
前記グループモジュール更新エンジンは、前記グループモジュールインスタンス化エンジンによって作成された前記グループクラスモジュールの前記適用可能なインスタンスを更新して、更新された前記グループクラスモジュールを再使用するのを可能にし、更新された前記グループクラスモジュールにおける編集可能なパラメータを構成するのを可能にするための処理系を含む、請求項19に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項21】
前記グループアプリケーションモジュール(グループAPM)の前記割振りは、前記グループアプリケーションモジュール(グループAPM)がインスタンス化された前記グループクラスモジュールの前記割振りのうちのサブセットを含む、請求項1に記載の工業プラントモジュールベースエンジニアリングシステム。
【請求項22】
工業プラントモジュールベースエンジニアリング方法であって、
i)グループモジュールライブラリナビゲータにおいて、
i-1)各グループクラスモジュールが、
i-1-1)クラスモジュールのグループ化、および
i-1-2)複数の論理制御図面の複合ループを定義するための複数の制御図面への前記クラスモジュールの割当てを定義する少なくとも1つの割振りを含む、複数のグループクラスモジュール、ならびに
i-2)各子クラスモジュールが、各子クラスモジュールが参照する前記複数のクラスモジュールの関連するグループクラスモジュールへのそれぞれのショートカットファイルを含み、各ショートカットファイルが、前記関連するグループクラスモジュールにおける前記複合ループの論理を定義して形成する、複数の子クラスモジュールを作成するステップと、
ii)前記グループクラスモジュールの階層を反映することによって前記グループクラスモジュールをインスタンス化して、アプリケーション構造ナビゲータにおいて、前記グループクラスモジュールからグループアプリケーションモジュール(グループAPM)および前記グループアプリケーションモジュール(グループAPM)の階層を生成し、ユーザが前記グループクラスモジュールをテンプレートグループモジュールとして再使用するのを可能にし、かつインスタンス化された前記グループクラスモジュールにおける編集可能なパラメータを構成するのを可能にするステップと、
iii)前記子クラスモジュールをインスタンス化して、前記アプリケーション構造ナビゲータにおいて、前記子クラスモジュールから子アプリケーションモジュール(子APM)を生成し、インスタンス化された前記グループクラスモジュールを再使用するのを可能にし、かつインスタンス化された前記グループクラスモジュールにおける編集可能なパラメータを構成するのを可能にするステップとを含む工業プラントモジュールベースエンジニアリング方法。
【請求項23】
iv)各グループクラスモジュールの前記割振りおよび各グループクラスモジュールの前記複合ループのそれぞれのトポロジーを更新するステップと、
v)各グループアプリケーションモジュール(グループAPM)の割振りおよび各グループアプリケーションモジュール(グループAPM)の前記複合ループのそれぞれのトポロジーを更新するステップとをさらに含む、請求項22に記載の工業プラントモジュールベースエンジニアリング方法。
【請求項24】
vi)前記グループクラスモジュールの前記少なくとも1つの割振りに基づいて、前記グループアプリケーションモジュール(グループAPM)およびレガシーアプリケーションモジュール(レガシーAPM)を工業プラントにおけるフィールドコントローラの図面にバインドするステップであって、
前記レガシーアプリケーションモジュールが、iv-1)ソースクラスモジュールを参照するクラスベースアプリケーションモジュール、およびiv-2)ソースクラスモジュールを参照しないクラスレスアプリケーションモジュールのうちの少なくとも一方である、ステップをさらに含む、請求項22に記載の工業プラントモジュールベースエンジニアリング方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は概して、工業プラントのオートメーション設計のためのモジュールベースエンジニアリングシステムおよびモジュールベースエンジニアリング方法に関する。
【背景技術】
【0002】
[モジュールベースエンジニアリングの概要]
工業プラントにおいて、モジュールベースエンジニアリングは、プラント器械、安全器械、および維持管理を含む、全体的なプラント制御システムを構成し維持することによるオートメーション設計に有用である。一般に、オートメーションエンジニアリングシステムのサーバは、エンジニアリングデータのデータベースを集中的に管理して、プラント制御システムを拡張、修正、または維持するために設計情報を利用可能にし、設計情報とプラント制御システムに記憶された実際の情報との間の不一致を修正するための不要な人的資源を節約する。モジュールベースエンジニアリングは、制御論理および設計情報をモジュールに変換し、次いでオートメーションエンジニアリングシステムのサーバにおいてモジュール同士を組み合わせることによって制御アプリケーションおよびアラームを設計するためのエンジニアリング方法を指す。モジュールは一般に、過去の設計パターン経験から収集された顧客情報およびノウハウなどの独立したソフトウェア構成要素からなることがあり、制御論理、アラーム属性、および設計情報を含むこともある。以前のプロジェクトにおいて構成されたモジュールを再使用すると、エンジニアリング品質を向上させ、エンジニアリング時間を短縮することができ、このことはプロジェクト期間を短縮することに寄与する。
図1は、オートメーション設計についてのモジュールベースエンジニアリングの一般的な概念の概略図である。
図1に示すように、モジュールは、オートメーションエンジニアリングシステムのエンジニアリングツールによって構成し、オートメーションエンジニアリングシステムのサーバに登録し、かつオートメーションエンジニアリングのサーバからダウンロードすることができる。エンジニアリング設計情報は、エンジニアリング結果の要約文書を作成するために保存される。さらに、モジュールベースエンジニアリングは、以下のエンジニアリングタスク、すなわち入出力設計、制御アプリケーション設計、およびシステム構成設計と同時に実行することができる。
【0003】
モジュールベースエンジニアリングでは、制御論理、アラーム属性、設計情報、およびアタッチメントがモジュールと見なされる。モジュールは一般に、設計情報、制御論理、チューニングパラメータ、アラーム属性、およびアタッチメントを含むことがある。機能仕様などの設計情報は、モジュール構成要素として定義されることがある。設計情報は一般に、モジュールの詳細について説明するテキスト、画像、および表を含むことがある。制御論理は、制御図面、ならびに機能ブロック、スイッチ、およびメッセージの詳細な定義を含むことがある。制御論理は、クラスモジュールまたはアプリケーションモジュールにおいて定義されることがある。モジュールベースエンジニアリングは、フィールド制御システムの制御論理に定義された機能ブロックにおけるチューニングパラメータ設計値のバルク編集により、かつフィールド制御システムのチューニングパラメータ設計値および現在の値を比較し設定することによって、チューニングパラメータをモジュール構成要素として見なすのを可能にすることがある。フィールド制御システムは、ハードウェア入出力コントローラであってもよい。アラーム属性は、アラーム設定値およびアラーム優先順位であってもよい。任意のファイルをモジュール構成要素として付加することができる。アタッチメントのリストは単純な動作によって起動することができる。
【0004】
モジュールベースエンジニアリングには2種類のモジュール、たとえばクラスモジュールおよびアプリケーションモジュールが利用可能である。クラスモジュールは、制御アプリケーションについてのテンプレートとして使用され、アプリケーションモジュールは実際の制御アプリケーションとして働く。クラスモジュールはテンプレートである。クラスモジュールに基づいて、実際の制御アプリケーションを実行するアプリケーションモジュールを作成することができる。アプリケーションモジュールは、テンプレートとして使用されるクラスモジュールとの関係を維持し、クラスモジュールに対する変更はアプリケーションモジュールに反映される。単一のモジュールが複数のアプリケーションモジュールについてのテンプレートとして使用される。アプリケーションモジュールは、入出力およびタグ名をアプリケーションモジュールに割り当てることによって制御アプリケーションを実行する。2種類のアプリケーションモジュール、たとえば、クラスモジュールに基づいて作成されるクラスベースアプリケーションモジュール、およびクラスモジュールを使用せずに作成されるクラスレスアプリケーションモジュールが利用可能である。
【0005】
モジュールベースエンジニアリングは、入出力、制御アプリケーション、およびシステム構成を並行して設計するのを可能にすることがあり、それによってシステム構成を仕上げる前に制御アプリケーションおよび入出力の設計を開始するのを可能にする。制御アプリケーションを設計した後でも、入出力設計が柔軟に変更されてもよい。プラント情報は、制御システムエンジニアリングを実施するための様々な種類の情報を含む。モジュールベースエンジニアリングでは、入出力は、プラントの取得された入出力情報に基づいて設計されてもよい。一般に、オートメーションエンジニアリングシステムのエンジニアリングツールは、入出力を設計して、プラント入出力情報を表形式の入出力情報リストとして構成するために使用されてもよい。入出力情報リストは、入出力タグ名、入出力モジュールタイプ、および入出力モジュールが装備されるFCSステーション名、ならびに各入出力の特定の情報などの情報を定義する。入出力情報リストに対してエクスポートおよび/またはインポートを行うことができる。入出力情報リストの設定情報は、エクスポートされた外部ファイル上で編集されてもよく、設定情報は、オートメーションエンジニアリングシステムのエンジニアリングツールにインポートされてもよい。まず必要に応じてクラスモジュールが作成される。次いで、クラスモジュールを使用するかまたはクラスモジュールを使用せずにアプリケーションモジュールが作成される。オートメーションエンジニアリングシステムのエンジニアリングツールは、制御アプリケーション設計のエンジニアリングに使用される。アプリケーションモジュールの入出力端末に入出力タグ名が与えられる。アプリケーションモジュールの機能ブロックに実際のタグ名が適用される。入出力タグ名に基づいて制御アプリケーションが作成されるので、制御アプリケーションは、入出力モジュール割当て情報または各入出力の特定の情報などの入出力設計が完了する前に作成することができる。
【0006】
入出力アプリケーションおよび制御アプリケーションを設計すること以外の項目のエンジニアリングは、フィールド制御ステーション(FCS)およびヒューマンインターフェースステーション(HIS)などのシステム構成ならびにプロジェクトに共通し各ステーションに関連する項目を設計することによって行われる。これらの項目は、システムビューによって構成される。オートメーションエンジニアリングシステムのエンジニアリングツールは、コモンスイッチ、グローバルスイッチ、アナンシエータ、信号イベント、オペレータ案内メッセージ、および印刷メッセージなどのスイッチを設定するために使用される。システム構成とは独立にオートメーションエンジニアリングシステムのエンジニアリングツールにおいて作成される入出力設計および制御アプリケーション設計のエンジニアリングデータは最終的に、フィールド制御ステーション(FCS)に割り当てられ、任意のプロジェクトデータとして生成される。プロセス入出力、シリアル通信イーサネット(登録商標)通信についてのエンジニアリングは、プロジェクトデータが完成するときに完了する。
【0007】
プロジェクトデータを完成することによってモジュールベースエンジニアリングが終了すると、試験機能の定義済みのセットを使用することによって制御アプリケーション試験が行われる。モジュールベースエンジニアリングをサポートする機能は、文書生成機能、バルク編集機能、チューニングパラメータ管理機能を含む。文書生成機能は、モジュールの設計情報と様々なエンジニアリングデータを統合して単一の文書ファイルを生成する機能である。チューニングパラメータ管理機能は、制御アプリケーションを作成する際に設計される機能ブロックチューニングパラメータ値およびフィールド制御システムの現在のチューニングパラメータ値を管理するための機能である。バルク編集機能は、制御アプリケーションを構成する間に設計されるモジュールの制御論理およびアラーム属性を集合的に編集するための機能である。
【発明の概要】
【課題を解決するための手段】
【0008】
いくつかの態様では、工業プラントモジュールベースエンジニアリングシステムは、複数のグループクラスモジュールと、複数のグループクラスモジュールのうちの関連するグループクラスモジュールよりも下位にあるそれぞれの複数の子クラスモジュールとを含むグループモジュールライブラリナビゲータを含む。グループモジュールインスタンス化エンジンは、グループクラスモジュールの階層を反映することによってグループクラスモジュールをインスタンス化して、アプリケーション構造ナビゲータにおいて、グループクラスモジュールからグループアプリケーションモジュール(グループAPM)およびグループアプリケーションモジュールの階層(グループAPM)を生成し、子クラスモジュールをインスタンス化して、アプリケーション構造ナビゲータにおいて、子クラスモジュールから子アプリケーションモジュール(子APM)を生成するように構成される。グループモジュール更新エンジンは、各グループクラスモジュールの割振りおよび各グループクラスモジュールの複合ループのそれぞれのトポロジーを更新するように構成される。
【図面の簡単な説明】
【0009】
【
図1】オートメーション設計のためのモジュールベースエンジニアリングの一般的な概念の概略図である。
【
図2】標準アドレス指定バッチプロセス制御などの標準物理モデルに基づいて階層アーキテクチャとして構成されたプラント制御システムにおける様々な機器を参照する工業プラントの階層を示すブロック図である。
【
図3】制御モジュールレベルで再使用可能な通常クラスモジュールを使用する通常モジュールベースエンジニアリングシステムを含むプラントエンジニアリングシステムを示すブロック図である。
【
図4】グループクラスモジュールベースエンジニアリングに基づいて階層化アーキテクチャとして編成されたプラント制御システムにおける様々な機器を参照する工業プラントの階層を示すブロック図である。
【
図5】制御モジュールレベル、機器モジュールレベル、および/またはユニットレベルで再使用可能なグループクラスモジュールを使用するグループモジュールベースエンジニアリングシステムを含むプラントエンジニアリングシステムを示すブロック図である。
【
図6】グループクラスモジュール、およびグループクラスモジュールから部分的にインスタンス化された2つのグループアプリケーションモジュールの例を示す図である。
【
図7】グループクラスモジュールおよびグループアプリケーションモジュールのための更新管理の例を示す図である。
【
図8】グループアプリケーションモジュール(グループAPM)のためのモジュール更新のサンプルシナリオを示す図である。
【発明を実施するための形態】
【0010】
いくつかの実施形態では、工業プラントモジュールベースエンジニアリングシステムは、限定はしないが、グループモジュールライブラリナビゲータと、グループモジュールインスタンス化エンジンと、グループモジュール更新エンジンと、モジュールバインディングエンジンとを含んでもよい。グループモジュールライブラリナビゲータは、複数のグループクラスモジュールと、複数のグループクラスモジュールのうちの関連するグループクラスモジュールに属するそれぞれの複数の子クラスモジュールとを含む。各グループクラスモジュールは、複数のクラスモジュールのグループ化、および複数の図面へのクラスモジュールの割当てを定義して複数の論理制御モジュール図面の複合ループを定義する少なくとも1つの割振りを含む。各子クラスモジュールは、複数のクラスモジュールのうちの関連するクラスモジュールを参照するそれぞれのショートカットファイルを含む。複数の子クラスモジュールは、関連するグループクラスモジュールにおける複合ループの論理を定義して形成する。グループモジュールインスタンス化エンジンは、グループクラスモジュールの階層を反映することによってグループクラスモジュールをインスタンス化して、アプリケーション構造ナビゲータにおいて、グループクラスモジュールからグループアプリケーションモジュール(グループAPM)およびグループアプリケーションモジュール(グループAPM)の階層を生成するように構成される。グループモジュールインスタンス化エンジンは、子クラスモジュールをインスタンス化して、アプリケーション構造ナビゲータにおいて、子クラスモジュールから子アプリケーションモジュール(子APM)を生成するように構成される。グループモジュール更新エンジンは、各グループクラスモジュールの割振りおよび各グループクラスモジュールの複合ループのそれぞれのトポロジーを更新するように構成される。グループモジュール更新エンジンは、各グループアプリケーションモジュール(グループAPM)の割振りおよび各グループアプリケーションモジュール(グループAPM)の複合ループのそれぞれのトポロジーを更新するように構成される。モジュールバインディングエンジンは、グループクラスモジュールの少なくとも1つの割振りに基づいて、グループアプリケーションモジュール(グループAPM)およびレガシーアプリケーションモジュール(レガシーAPM)を工業プラントにおけるフィールドコントローラの図面にバインドするように構成される。レガシーアプリケーションモジュールは、ソースクラスモジュールを参照するクラスベースアプリケーションモジュール、およびソースクラスモジュールを参照しないクラスレスアプリケーションモジュールのうちの少なくとも一方である。
【0011】
場合によっては、各グループクラスモジュールは、複数の子クラスモジュールと、フォルダと、子クラスモジュールおよびフォルダの階層とを有してもよい。
【0012】
場合によっては、各グループクラスモジュールは、限定はしないが、モジュール設計の文書を生成するために使用される設計文書情報と、クラスモジュールに関するアーチファクトを記憶するために使用されるアタッチメントと、クラスモジュールのグループ化および複数の制御図面へのクラスモジュールの割当てを定義してフィールド制御システムの図面についての複合ループを定義する割振りとを含んでもよい。
【0013】
場合によっては、工業プラントモジュールベースエンジニアリングシステムは、限定はしないが、クラスモジュールライブラリナビゲータを含んでもよい。クラスモジュールライブラリナビゲータは、再使用可能なモジュールエンジニアリングデータとドキュメンテーションとを含むクラスモジュールのそれぞれの定義を含む。再使用可能なモジュールエンジニアリングデータは制御論理と、アラームパラメータと、チューニングパラメータとを含む。ドキュメンテーションは、設計情報とアタッチメントとを含む。
【0014】
場合によっては、クラスモジュールは、限定はしないが、モジュール設計の文書を生成するために使用される設計文書情報と、クラスモジュールに関するアーチファクトを記憶するために使用されるアタッチメントと、プロセス制御の論理情報を含む制御論理と、アラーム属性と、チューニングパラメータとを含んでもよい。
【0015】
場合によっては、グループモジュールインスタンス化エンジンは、ユーザが子クラスモジュールにおいてインスタンス化すべきでない部分を選択するのを可能にし、ユーザが単一のグループクラスモジュールから様々なグループアプリケーションモジュールのセットを生成するのを可能にする。
【0016】
場合によっては、モジュールバインディングエンジンは、各グループクラスモジュールにおいて定義された複数の論理制御図面を複数の物理フィールド制御システムのうちのそれぞれの物理フィールド制御システムに割り当てるように構成される。
【0017】
場合によっては、グループモジュール更新エンジンは、グループクラスモジュールの複合ループのそれぞれのトポロジーを更新する場合に、グループクラスモジュールからインスタンス化されたグループアプリケーションモジュール(グループAPM)を参照する子アプリケーションモジュール(子APM)の追加および削除の少なくとも一方を実行するようにさらに構成される。
【0018】
場合によっては、グループモジュール更新エンジンは、グループアプリケーションモジュール(グループAPM)の子アプリケーションモジュールのコンテンツを更新する場合に、グループクラスモジュールからインスタンス化されたグループアプリケーションモジュール(グループAPM)を参照する子アプリケーションモジュール(子APM)のコンテンツを更新するようにさらに構成される。
【0019】
場合によっては、グループモジュール更新エンジンは、各グループアプリケーションモジュール(グループAPM)の複合ループのそれぞれのトポロジーを更新する場合に、グループクラスモジュールからインスタンス化されたグループアプリケーションモジュール(グループAPM)を参照する子アプリケーションモジュール(子APM)の追加および削除の少なくとも一方を実行するようにさらに構成される。
【0020】
場合によっては、グループモジュール更新エンジンは、各グループアプリケーションモジュール(グループAPM)の複合ループのそれぞれのトポロジーを更新する場合に、グループクラスモジュールからインスタンス化されたグループアプリケーションモジュール(グループAPM)を参照する子アプリケーションモジュール(子APM)のコンテンツを更新するようにさらに構成される。
【0021】
場合によっては、各グループアプリケーションモジュール(グループAPM)は、アプリケーションモジュールのグループ化、および複数の制御図面へのアプリケーションモジュールの割当てを定義して複数の論理制御図面の複合ループを定義する少なくとも1つの割振りを含む。
【0022】
場合によっては、グループモジュール更新エンジンは、各グループクラスモジュールの割振りおよび各グループクラスモジュールの複合ループのそれぞれのトポロジーを更新した場合に、各グループアプリケーションモジュール(グループAPM)のうちの少なくとも1つの割振りおよび各グループアプリケーションモジュール(グループAPM)の複合ループのそれぞれのトポロジーを更新するように構成される。
【0023】
場合によっては、グループモジュール更新エンジンは、各グループクラスモジュールの割振りおよび/または各グループクラスモジュールの複合ループのそれぞれのトポロジーに変更または修正が加えられた場合に、各グループアプリケーションモジュール(グループAPM)のうちの少なくとも1つの割振りおよび各グループアプリケーションモジュール(グループAPM)の複合ループのそれぞれのトポロジーを更新するように構成される。モジュール更新のためのプロセス、すなわち、割振りを更新することは、各アプリケーションモジュール(グループAPM)に対する変更または修正を反映するかまたは同期させるようにグループモジュール更新エンジンによって実行されている。
【0024】
場合によっては、グループモジュール更新エンジンは、グループモジュール更新エンジンによって削除された子クラスモジュールからインスタンス化された子アプリケーションモジュールを削除するように構成される。
【0025】
場合によっては、グループモジュール更新エンジンは、追加の子クラスモジュールを追加するように構成され、グループモジュールインスタンス化エンジンは、グループモジュール更新エンジンが追加の子クラスモジュールを追加した場合に、追加の子クラスモジュールをインスタンス化するように構成される。
【0026】
場合によっては、工業プラントモジュールベースエンジニアリングシステムは、限定はしないが、グループ化解除エディタをさらに含んでもよい。グループ化解除エディタは、グループアプリケーションモジュールをグループ化解除するように構成される。グループ化解除エディタは、グループアプリケーションモジュールの最上位のフォルダをアプリケーションフォルダに変更し、最上位のフォルダの直下のグループAPMの設計情報、アタッチメントリスト、および割振りを削除し、また、グループ化解除されたグループアプリケーションモジュールを参照する子アプリケーションモジュールをクラスベースアプリケーションモジュールに変更するように構成される。
【0027】
場合によっては、グループモジュールインスタンス化エンジンは、限定はしないが、グループクラスモジュールの適用可能なインスタンスを作成してグループクラスモジュールをテンプレートグループモジュールとして再使用するのを可能にし、インスタンス化されたグループクラスモジュールにおける編集可能なパラメータを構成するのを可能にするための処理系を含んでもよい。
【0028】
場合によっては、グループモジュール更新エンジンは、限定はしないが、グループモジュールインスタンス化エンジンによって作成されたグループクラスモジュールの適用可能なインスタンスを更新して、更新されたグループクラスモジュールを再使用するのを可能にし、更新されたグループクラスモジュールにおける編集可能なパラメータを構成するのを可能にするための処理系を含んでもよい。
【0029】
場合によっては、グループアプリケーションモジュール(グループAPM)の割振りは、グループアプリケーションモジュール(グループAPM)がインスタンス化されたグループクラスモジュールの割振りのうちのサブセットを含む。
【0030】
他の実施形態では、工業プラントモジュールベースエンジニアリング方法は、限定はしないが、i)グループモジュールライブラリナビゲータにおいて、i-1)複数のグループクラスモジュールおよびi-2)複数の子クラスモジュールを作成するステップを含んでもよい。各子クラスモジュールは、各子クラスモジュールが参照する複数のグループクラスモジュールのうちの関連するグループクラスモジュールへのそれぞれのショートカットファイルを含み、各ショートカットファイルは、関連するグループクラスモジュールにおける複合ループの論理を定義し形成する。この方法は、ii)グループクラスモジュールの階層を反映することによってグループクラスモジュールをインスタンス化して、アプリケーション構造ナビゲータにおいて、グループクラスモジュールからグループアプリケーションモジュール(グループAPM)およびグループアプリケーションモジュール(グループAPM)の階層を生成し、ユーザがグループクラスモジュールをテンプレートグループモジュールとして再使用するのを可能にし、インスタンス化されたグループクラスモジュールにおける編集可能なパラメータを構成するのを可能にする。この方法は、iii)子クラスモジュールをインスタンス化して、アプリケーション構造ナビゲータにおいて、子クラスモジュールから子アプリケーションモジュール(子APM)を生成し、インスタンス化されたグループクラスモジュールを再使用するのを可能にし、かつインスタンス化されたグループクラスモジュールにおける編集可能なパラメータを構成するのを可能にするステップをさらに含んでもよい。
【0031】
場合によっては、工業プラントモジュールベースエンジニアリング方法は、限定はしないが、iv)各グループクラスモジュールの割振りおよび各グループクラスモジュールの複合ループのそれぞれのトポロジーを更新するステップと、v)各グループアプリケーションモジュール(グループAPM)の割振りおよび各グループアプリケーションモジュール(グループAPM)の複合ループのそれぞれのトポロジーを更新するステップとをさらに含んでもよい。
【0032】
場合によっては、工業プラントモジュールベースエンジニアリング方法は、限定はしないが、vi)グループクラスモジュールの少なくとも1つの割振りに基づいて、グループアプリケーションモジュール(グループAPM)およびレガシーアプリケーションモジュール(レガシーAPM)を工業プラントにおけるフィールドコントローラの図面にバインドするステップをさらに含んでもよい。レガシーアプリケーションモジュールは、iv-1)ソースクラスモジュールを参照するクラスベースアプリケーションモジュールおよびiv-2)ソースクラスモジュールを参照しないクラスレスアプリケーションモジュールの少なくとも一方である。
【0033】
以下の開示では、一方が通常クラスモジュールを使用し、他方がグループクラスモジュールを使用する、2種類のモジュールベースエンジニアリング方法について説明する。通常クラスモジュールベースエンジニアリングの適用範囲は、階層における最低レベルを包含する。たとえば、通常クラスモジュールベースエンジニアリングの適用範囲は、制御モジュール図面の規則的な単純ループのみを包含し、制御モジュール図面、機器モジュール図面、および/またはユニット図面の複合ループを含まない。インスタンス化指向のクラスモジュールベースオブジェクトの特性および振る舞いに関する制御モジュール図面についてのクラスモジュールのグループ化は、適用範囲を拡張し、グループクラスモジュールベースエンジニアリングの適用範囲に最低階層レベルにおける制御モジュール図面の規則的な単純ループだけでなくより高い階層レベルにおける図面の複合ループも包含することを可能にする。グループクラスモジュールベースエンジニアリングの適用範囲は、通常クラスモジュールベースエンジニアリングの適用範囲よりも広い。
【0034】
インスタンス化は、クラスの特定のインスタンスを作成するためのプロセスである。
【0035】
クラスのインスタンス化はオブジェクトを生成するためのプロセスである。
【0036】
オブジェクトはクラスのインスタンスである。オブジェクトはクラスをインスタンス化することによって生成される。
【0037】
グループアプリケーションモジュール(グループAPM)は、グループクラスモジュールのインスタンスである。
【0038】
子アプリケーションモジュール(子APM)は、クラスモジュールのショートカットまたは参照である子クラスモジュールのインスタンスである。
【0039】
クラスは、オブジェクトを作成するための拡張可能なプログラムコードテンプレートであり、振る舞いの状態メンバー変数および処理系についての初期値を示す。クラスモジュールは再使用可能なテンプレートである。クラスモジュールは、エンジニアリング論理データと、アラーム属性と、チューニングパラメータとを含み、パラメータおよびモジュール規則についてのクラスモジュールのデフォルトセットを定義してインスタンス化時にパラメータに値を動的に設定する。クラスは、命令および特性または他のオブジェクトの参照のセットを含めるためのテンプレートでもある。クラスモジュールは、別のクラスの参照を含むことのできるクラスとは異なり、別のクラスモジュールを参照することはできない。
【0040】
クラスモジュールのインスタンス化は、クラスベースアプリケーションモジュールを生成するためのプロセスである。
【0041】
クラスベースモジュールはクラスモジュールのインスタンスである。
【0042】
オブジェクトは、クラスをインスタンス化することによって生成され、変数、関数、およびデータ構造の組合せ、または名前もしくはキーおよび値の集合から構成されるデータタイプから構成される。
【0043】
制御ループは、制御ループ内の別の変数の値を操作することによってシステム変数の所望の値を実現して維持するためにシステムとして協働する構成要素のグループである。各制御ループは、少なくとも入力と出力とを有する。2種類の制御ループ、開ループと閉ループがある。
【0044】
グループは、クラスモジュール間の関係を定義するために論理構造またはトポロジーを作成または形成するクラスについてのコンテナである。しかし、クラスとは異なり、グループモジュールは、部分的な構造によってインスタンス化され、一方、クラスは常にそのオブジェクトについての構造全体によってインスタンス化される。
【0045】
グループクラスモジュールは、モジュールエンジニアリングの利点を拡張するのを可能にして、複数の制御図面の複合ループをグループ化することによってグループクラスモジュールの再使用可能性および利便性を向上させる。
【0046】
[通常クラスモジュールを使用したモジュールベースエンジニアリング]
図2は、標準アドレス指定バッチプロセス制御などの標準物理モデルに基づいて階層アーキテクチャとして構成されたプラント制御システムにおける様々な機器を参照する工業プラントの階層を示すブロック図である。階層化アーキテクチャは
図2に示す通りである。言い換えれば、
図2は、特定の物理モデルに基づいて階層アーキテクチャとして構成されたプラント制御システムにおける様々な機器を参照するプラント階層を示す。
【0047】
現場とは、企業内の物理的セグメント化、地理的セグメント化、または論理的セグメント化によって特定されるバッチ生産企業の一構成要素を指す。
【0048】
領域とは、現場内の物理的セグメント化、地理的セグメント化、または論理的セグメント化によって特定されるバッチ生産現場の一構成要素を指す。領域は、プロセスセルと、ユニットと、機器モジュールと、制御モジュールとを含んでもよい。
【0049】
プロセスセルとは、領域内の物理的セグメント化、地理的セグメント化、または論理的セグメント化によって特定されるバッチ生産領域の一構成要素を指す。プロセスセルは、ユニットと、機器モジュールと、制御モジュールとを含んでもよい。プロセスセルは、1つまたは複数のバッチの生産に必要な機器を含む機器の論理グループ化を指す。論理グループ化は、領域内のプロセス機器の1つのセットの論理制御の範囲を定義する。論理グループ化という用語は、物理機器と機器エンティティの両方に適用される。
【0050】
ユニットとは、プロセスセル内の物理的セグメント化、地理的セグメント化、または論理的セグメント化によって特定されるバッチ生産プロセスの一構成要素を指す。ユニットは、機器モジュールと制御モジュールとを含んでもよい。ユニットは、関連する制御モジュールおよび/または機器モジュールならびに1つまたは複数の主要な処理活動を行うことのできるその他のプロセス機器の集合を指す。ユニットは、一度に1つのバッチのみに作用することが想定される。ユニットは、互いに相対的に独立して動作する。ユニットという用語は、物理機器と機器エンティティの両方に適用される。主要な処理活動の例には、反応、結晶化、および溶液の調製がある。
【0051】
機器エンティティとは、ある制御機能または制御機能のセットを実行するようにグループ化された物理処理および制御機器ならびに機器制御の集合を指す。
【0052】
機器モジュールとは、ユニット内の物理的セグメント化、地理的セグメント化、および論理的セグメント化によって特定されるバッチ生産ユニットの一構成要素を指す。機器モジュールは制御モジュールを含んでもよい。機器モジュールはまた、重要性の低い有限数の特定の処理活動を実施することができる機器の機能グループを指す場合がある。機器モジュールは一般に、1つのプロセス機器(計量タンク、プロセスヒーター、スクラバなど)を中心とするものであってもよい。機器モジュールという用語は、物理機器と機器エンティティの両方に適用される。重要性の低い処理活動の例には、薬注および計量がある。
【0053】
制御モジュールとは、機器モジュール内の物理的セグメント化、地理的セグメント化、または論理的セグメント化によって特定されるバッチ生産機器モジュールの一構成要素を指す。
【0054】
制御モジュールレベルでは、アプリケーションモジュールは制御モジュール図面の単純な規則的な制御ループを有する。機器モジュールレベルおよびユニットレベルなどのより高いレベルでは、アプリケーションモジュールは図面およびシーケンス制御の複合ループを有する。
【0055】
いくつかの例示的な例では、限定はしないが、現場は工場であってもよく、領域は部署であってもよく、プロセスセルは生産ラインであってもよく、ユニットはユニットであってもよく、機器モジュールは機器であってもよく、制御モジュールは制御ループであってもよい。
【0056】
モジュールベースエンジニアリングでは、クラスモジュールは、制御モジュールレベルまたは最低レベルでのみ再使用可能であり、機器モジュールレベルおよびユニットモジュールレベルなどのより高いレベルでは再使用できない。通常クラスモジュールを使用することによるモジュールエンジニアの範囲は、最低レベルまたは制御モジュールレベルを包含する。クラスモジュールは、1つの図面よりも小さい範囲を有する。工業用途では、代表的なループは、制御モジュール、機器モジュール、および/またはユニットの複数の図面を有してもよい。通常クラスモジュールを使用することによるモジュールエンジニアリングの範囲は、制御モジュール、機器モジュール、および/またはユニットの複数の図面、機器モジュール図面および/またはユニット図面の複合ループを包含しない。
【0057】
図3は、制御モジュールレベルで再使用可能な通常クラスモジュールを使用する通常モジュールベースエンジニアリングシステムを含むプラントエンジニアリングシステムを示すブロック図である。プラントエンジニアリングシステム30000は、モジュールエンジニアリングシステム31000と、制御ネットワーク32000と、複数の物理フィールドコントローラ33000と、フィールドネットワーク34000と、複数のフィールドデバイス35000と、制御システム36000とを含む。制御システム36000はシステムエンジニアリングデータベース36100を有する。制御システム36000は、イーサネット(登録商標)などの任意の利用可能なネットワークを介してモジュールエンジニアリングシステム31000に接続される。制御システム36000は、制御ネットワーク32000を介して複数の物理フィールドコントローラ33000に接続される。複数のフィールドデバイス35000は、フィールドネットワーク34000に接続され、フィールドネットワーク34000は複数の物理フィールドコントローラ33000にさらに接続され、それによって、複数の物理フィールドコントローラ33000は複数のフィールドデバイス35000を制御する。
【0058】
モジュールエンジニアリングシステム30000はモジュールエンジニアリングエディタ31000を含む。モジュールエンジニアリングエディタ31000は、ライブラリナビゲータ31100と、アプリケーション構造ナビゲータ31200と、システム構造31300とを含む。ライブラリナビゲータ31100は、再使用可能なクラスモジュールをエンジニアリングテンプレートとして含むクラスモジュールライブラリ31110を有する。各クラスモジュールは、設計情報と、アタッチメントと、制御論理と、アラーム属性と、チューニングパラメータとを含む。モジュールエンジニアリングエディタ31000は、クラスモジュールインスタンス化エンジン31400を含む。クラスモジュールインスタンス化エンジン31400は、ライブラリナビゲータ31100におけるクラスモジュール1をインスタンス化して、アプリケーション構造ナビゲータ31200における現場1の領域1に属するアプリケーションモジュール1および2を生成するように構成される。クラスモジュールインスタンス化エンジン31400は、クラスモジュール2をインスタンス化して、現場1の領域1に属するアプリケーションモジュール3を生成するように構成される。インスタンス化は、クラスの特定のインスタンスを作成するためのプロセスである。オブジェクトはクラスのインスタンスである。オブジェクトはクラスをインスタンス化することによって生成される。アプリケーション1、2、および3の各々は、設計情報と、アタッチメントと、制御論理と、アラーム属性と、チューニングパラメータとを有する。モジュールエンジニアリングエディタ31000は、クラスモジュール更新エンジン31500をさらに含む。クラスモジュール更新エンジン31500は、アプリケーションモジュール1、2、および3を更新するように構成される。モジュールエンジニアリングエディタ31000はモジュールバインディングエンジン31600を含む。モジュールバインディングエンジン31600は、ライブラリナビゲータ31100内のクラスモジュール1からクラスモジュールインスタンス化エンジン31400によってインスタンス化されたアプリケーションモジュール1および2をシステム構造31300における制御図面「DRXXXX」にバインドするように構成される。システム構造31300における制御図面「DRXXXX」は、エンジニアリングデータに変換され、このエンジニアリングデータは、システムエンジニアリングデータベース36100に記憶される。
図3に示すように、クラスモジュールからインスタンス化されたアプリケーションモジュールは、モジュールバインディングエンジン31600によって個々にバインドされて、制御モジュール図面、機器モジュール図面、および/またはユニット図面の複合ループなしに制御図面の規則的な制御ループを作成する。
【0059】
モジュールエンジニアリングシステム30000は、クラスモジュールを再使用して
図2の制御モジュールレベルにおける制御モジュールを作成する。モジュールエンジニアリングシステム30000は、クラスモジュールを再使用して
図2の制御モジュールレベル以外のより高いレベルにおける機器モジュールまたはユニットモジュールを作成するようには構成されない。その理由は、モジュールエンジニアリングシステム30000は、通常クラスモジュールを使用して、インスタンスまたはアプリケーションモジュールへの複合ループなしで制御モジュール図面の規則的な制御ループを反映するように構成されるからである。機器モジュールレベルおよびユニットレベルのようなより高いレベルにおいては、アプリケーションモジュールは、制御モジュール図面の複合ループとシーケンス制御とを有する。
【0060】
[グループクラスモジュールを使用したモジュールベースエンジニアリング]
(モジュールベースエンジニアリングの拡張範囲)
工業プラントのオートメーション設計についてのグループクラスモジュールベースエンジニアリングの最も重要な機能のうちの1つは、再使用可能性の向上である。試験済みのグループクラスモジュールを再使用すると、エンジニアリング品質を向上させ、エンジニアリング時間および試験時間を短縮することができ、試験済みのグループクラスモジュールは、一部が修正され、一部が再使用される。
【0061】
図面についてのクラスモジュールをインスタンス化指向のクラスモジュールベースオブジェクトの特性および振る舞いに関してグループ化することによって、モジュールベースエンジニアリングの適用範囲が制御モジュール図面、機器モジュール図面、および/またはユニット図面の複合ループに拡張される。モジュールベースエンジニアリングの再使用可能性に関する値は大幅に増大する。複合ループを有する制御モジュール図面についてはエクスポートおよびインポートを行うことができる。複合ループを有する制御モジュール図面は、インスタンス化してフィールド制御システムなどの物理デバイスに割り当てることができる。
図4は、グループクラスモジュールベースエンジニアリングに基づいて階層アーキテクチャに編成されたプラント制御システムにおける様々な機器を参照する工業プラントの階層を示すブロック図である。グループモジュールベースエンジニアリングの場合、グループクラスモジュールは、制御モジュールレベルまたは最低レベルで再使用可能であるだけでなく、機器モジュールレベルおよびユニットモジュールレベルなどのより高いレベルでも再使用可能である。グループクラスモジュールを使用することによるグループクラスモジュールエンジニアリングの適用範囲は、最低レベルすなわち制御モジュールレベルだけでなく、機器モジュールレベルおよびユニットレベルも包含する。グループクラスモジュールは、複数の図面の範囲を有する。工業用途では、典型的なループは、制御モジュール、機器モジュール、および/またはユニットの複数の図面を有することがある。グループクラスモジュールを使用することによるモジュールエンジニアリングの適用範囲は、制御モジュール、機器モジュール、および/またはユニットの複数の図面の複合ループを包含する。
【0062】
グループクラスモジュールは、柔軟に全体的または部分的にインスタンス化されてもよく、それによって、ユーザは図面の高度に複合構造を作成することができるだけでなく、制御モジュール図面のより単純な構造を柔軟にインスタンス化することができる。グループクラスモジュールのインスタンス化は、トップダウンもしくはボトムアップ手法、または制御モジュール図面、機器モジュール図面、および/もしくはユニット図面の任意の複合構造からの単なる抽出であってもよい。トップダウン手法は、たとえば、限定はしないが、ユニット、機器モジュール、および制御モジュールの順番のモジュール開発であってもよい。ボトムアップ手法は、たとえば、限定はしないが、制御モジュール、機器モジュール、およびユニットの順番のモジュール開発であってもよい。
【0063】
グループクラスモジュールは、インスタンス化することができるクラスベースでオブジェクト指向のような特性および振る舞いの一部を固守するように設計されてもよい。各グループクラスモジュールは、クラスが別のクラスをその特性および/またはフィールドとして含むかまたは参照するのと同様に、クラスモジュールのショートカットまたは参照である1つまたは複数の子クラスモジュールを含んでもよい。グループクラスモジュールは、クラス継承などのオブジェクト指向のクラスのすべての特性に適用できるとは限らない。このことは、クラスモジュールを別のクラスモジュールまたはグループクラスモジュール、ポリモーフィズムなどから継承するかまたはバイアスさせることは不可能であることを意味する。
【0064】
図5は、制御モジュールレベル、機器モジュールレベル、および/またはユニットレベルで再使用可能なグループクラスモジュールを使用するグループモジュールベースエンジニアリングシステムを含むプラントエンジニアリングシステムを示すブロック図である。プラントエンジニアリングシステム50000は、グループモジュールエンジニアリングシステム51000と、制御ネットワーク52000と、複数の物理フィールドコントローラ53000と、フィールドネットワーク54000と、複数のフィールドデバイス55000と、制御システム56000とを含む。制御システム56000は、システムエンジニアリングデータベース56100を有する。制御システム56000は、イーサネット(登録商標)などの任意の利用可能なネットワークを介してグループモジュールエンジニアリングシステム51000に接続される。制御システム56000は、制御ネットワーク52000を介して複数の物理フィールドコントローラ53000に接続される。複数のフィールドデバイス55000はフィールドネットワーク54000に接続され、フィールドネットワーク54000は複数の物理フィールドコントローラ53000にさらに接続され、それによって、複数の物理フィールドコントローラ53000は複数のフィールドデバイス55000を制御する。
【0065】
グループモジュールエンジニアリングシステム50000は、グループモジュールエンジニアリングエディタ51000を含む。グループモジュールエンジニアリングエディタ51000は、ライブラリナビゲータ51100と、アプリケーション構造ナビゲータ51200と、システム構造51300と、グループモジュールインスタンス化エンジン51400と、グループモジュール更新エンジン51500と、グループモジュールバインディングエンジン51600とを含む。ライブラリナビゲータ51100は2つの異なる種類のナビゲーショナルライブラリ、たとえば、クラスモジュールライブラリ51110およびグループクラスモジュールライブラリ51120を有する。クラスモジュールライブラリ51110は、再使用可能クラスモジュールをクラスベースエンジニアリングテンプレートとして含む。各クラスモジュールは、設計情報と、アタッチメントと、制御論理と、アラーム属性と、チューニングパラメータとを含む。グループクラスモジュールライブラリ51120は、再使用可能グループクラスモジュールをグループクラスベースエンジニアリングテンプレートとして含む。
【0066】
アプリケーション構造ナビゲータの階層を制御システムのプラント階層に反映してモジュールエンジニアリングの適用範囲を拡張可能にすべきである。
【0067】
クラスモジュールライブラリ51110は、再使用可能モジュールエンジニアリングデータ(制御論理、アラームパラメータ、およびチューニングパラメータ)ならびにドキュメンテーション(設計情報およびアタッチメント)を含むクラスモジュールの定義を含む。各クラスモジュールは、1)説明情報、2)アタッチメント、3)制御論理、4)アラーム属性、および5)チューニングパラメータから構成される。
【0068】
グループクラスモジュールライブラリ51120は、複数の制御図面にバインドされたより複合ループを形成するためのクラスモジュールのグループ化を含むグループクラスモジュールの定義を含む。
【0069】
設計情報は、モジュールの設計がワード文書に公開される場合がある文書生成機能において使用される。
【0070】
アタッチメントは、クラスモジュールに関する関連するアーチファクトを記憶するために使用される。アーチファクトは、任意のバイナリファイルとすることができる。
【0071】
制御論理はプロセス制御の論理情報を含む。制御論理のコンテンツは、制御図面および機能ブロック詳細定義を設計するためのコンテンツである。
【0072】
アラーム属性のコンテンツは、機能ブロックのアラーム属性および動作ステーション(HIS)用のアラームシステムにおいて取り扱われるアラーム属性を設計するためのコンテンツである。
【0073】
チューニングパラメータのコンテンツは、制御関連チューニングパラメータの設計値を設計するためのコンテンツである。
【0074】
各グループクラスモジュールは、1)設計情報と、2)アタッチメントと、3)割振りとで構成される。設計情報およびアタッチメントは、クラスモジュールの場合と同様の機能であり、ドキュメンテーションの対象とされ、一方、割振りは、複合ループを定義するためにクラスモジュールのグループ化および複数の制御図面へのクラスモジュールの割当てを定義する。
【0075】
子クラスモジュールは、クラスモジュールへのショートカットを含む。子クラスモジュールは、グループモジュールにおける複合ループの論理を定義して形成する。
【0076】
グループクラスモジュールは、それ自体のトポロジーを定義して制御および/または機器モジュールまたはユニットについての論理構造を表す。
【0077】
(グループモジュールライブラリ)
各グループクラスモジュールは、複合構造を有する。各グループクラスモジュールは、設計情報と、アタッチメントと、割振りとを含む。各グループクラスモジュールは1つまたは複数のクラスフォルダを有してもよい。クラスフォルダは、グループクラスモジュールまたはグループクラスモジュールにおける別のクラスフォルダの下位に作成することができ、それによって、クラスフォルダは、1つもしくは複数の子クラスモジュールまたは1つもしくは複数の他のクラスフォルダを含んでもよい。各グループクラスモジュールはまた、1つまたは複数の子クラスモジュールを有してもよい。
図5は、グループクラスモジュールの複合構造の一例を示す。ここで、フォルダ1などのクラスフォルダはグループクラスモジュール1に属する。グループクラスモジュール1は、それぞれ複数のクラスモジュール1、2、---nに関連付けられた複数の子クラスモジュール1、2、---nを含む。この例では、子クラスモジュール1はクラスフォルダ1に属する。他の残りの子クラスモジュール2、3、---nは共通的にグループクラスモジュール1に属する。グループクラスモジュールと通常クラスモジュールとの違いの1つは、グループクラスモジュールが割振りと、それぞれクラスモジュールに関連付けられた複数の子クラスモジュールとを含むことである。グループクラスモジュールおよび複数の子クラスモジュールについての割振りによって、適用範囲が拡張され、グループクラスモジュールベースエンジニアリングの適用範囲を最低階層レベルの制御モジュール図面の規則的な単純ループだけでなく、より高い階層レベル、たとえば機器レベルおよびユニットレベルにおける図面の複合ループも包含することができる。
【0078】
第1に、ユーザはグループクラスモジュールライブラリ51120におけるグループクラスモジュールを作成する。ユーザは、次いで、グループクラスモジュールの下位にクラスフォルダと子クラスモジュールを作成する。子クラスモジュールは、レガシークラスモジュールへのショートカットファイルである。
【0079】
エンジニアリングテンプレートとしてのグループクラスモジュールにおける割振りは、制御モジュール図面についてのモジュールグループ化情報を含む。割振りは、少なくとも2つ、すなわち、1)クラスモジュールのグループ化、および2)制御モジュール、機器モジュール、および/またはユニットの複数の図面へのクラスモジュールの割当てを定義して、複数の論理図面の複合ループ構造を定義する。グループアプリケーションモジュールについての別の種類の割振りがあり、これについては後述する。ここでは、複数の論理図面の複合ループ構造についてのエンジニアリングテンプレートとしてのグループクラスモジュールにおける割振りについて説明する。
【0080】
それぞれの複数の子クラスモジュールは、複数のグループクラスモジュールの関連するグループクラスモジュールに属する。各子クラスモジュールは、複数のクラスモジュールの関連するクラスモジュールを参照するそれぞれのショートカットファイルを含む。それぞれの複数の子クラスモジュールは、関連するグループクラスモジュールに属し、関連するグループクラスモジュールにおける複合ループの論理を定義して形成する。
【0081】
エンジニアリングテンプレートとしてのグループクラスモジュールに属する子クラスモジュールは、クラスモジュールライブラリ51110における複数のクラスモジュールのクラスモジュールを参照するそれぞれのショートカットファイルを含む。子クラスモジュールが参照するクラスモジュールは、子クラスモジュールについてのレガシークラスモジュールである。エンジニアリングテンプレートとしてのグループクラスモジュールは、ユーザが各子クラスモジュールのインスタンス化または非インスタンス化を選択するのを可能にする。言い換えれば、エンジニアリングテンプレートとしてのグループクラスモジュールは、ユーザが1つまたは複数の子クラスモジュールをインスタンス化しないモジュールとして選択し、残りの子クラスモジュールをインスタンス化するモジュールとして選択するのを可能にする。レガシークラスモジュールに対する修正は、レガシークラスモジュールを参照しレガシークラスモジュールからインスタンス化される1つまたは複数の子クラスモジュールのすべてに直接反映される。これによって、モジュール保全性がある程度向上する。1つまたは複数の子クラスモジュールが参照するレガシークラスモジュールはエクスポート可能でありかつインポート可能である。グループクラスモジュールは、グループクラスモジュールごとにチェックアウト/チェックインされる。各子クラスモジュールを独立にチェックアウト/チェックインすることはできない。各子クラスモジュールはレガシークラスモジュールから削除することができる。レガシークラスモジュールに追加の子クラスモジュールを追加することができ、追加の子クラスモジュールは、レガシークラスモジュールを参照するショートカットファイルを有する。各子クラスモジュールのショートカットファイルは、クラスがその特性および/またはフィールドとして別のクラスを含むかまたは参照するのと同様にレガシークラスモジュールを参照することができる。グループクラスモジュールベースエンジニアリングの場合、レガシークラスモジュールを参照する複数の子クラスモジュールがグループクラスモジュールの複合ループの論理を定義し形成するので、子クラスモジュールが必要である。
【0082】
グループクラスモジュールは、それ自体のトポロジーを制御モジュール図面、機器モジュール図面、および/またはユニット図面についての論理構造を表すように定義することができる。
【0083】
機能仕様などの設計情報は、モジュール構成要素として定義されてもよい。設計情報は一般に、モジュールの詳細について説明するテキスト、画像、テーブルを含んでもよい。制御論理は、制御図面と、機能ブロック、スイッチ、およびメッセージの詳細な定義とを含んでもよい。制御論理は、クラスモジュールまたはアプリケーションモジュールにおいて定義されてもよい。モジュールベースエンジニアリングは、フィールド制御システムの制御論理において定義された機能ブロックにおけるチューニングパラメータ設計値のバルク編集により、かつチューニングパラメータ設計値およびフィールド制御システムの現在の値を比較し設定することによって、チューニングパラメータをモジュール構成要素と見なすことを可能にする。アラーム属性は、アラーム設定値およびアラーム優先順位であってもよい。任意のファイルをモジュール構成要素として付加することができる。アタッチメントのリストは、単純な動作によって起動することができる。
【0084】
(グループクラスモジュールのインスタンス化)
図5に示すように、モジュールエンジニアリングエディタ51000はグループモジュールインスタンス化エンジン51400を含む。グループモジュールインスタンス化エンジン51400は、選択された子クラスモジュールのユーザ構成に基づいてグループアプリケーションモジュール(グループAPM)を作成する。子クラスモジュールのうちのいくつかを、導出されたグループアプリケーションモジュール(グループAPM)から除外することが可能である。これによって、エンジニアまたはユーザは、グループモジュールについてのモジュールエンジニアリングデータをフェーズごとに構成することができる。
【0085】
グループモジュールインスタンス化エンジン51400は、グループクラスモジュールおよびグループクラスモジュールライブラリ51120内の子クラスモジュール1、2、---nをインスタンス化して、アプリケーション構造ナビゲータ51200においてインスタンスおよびインスタンスに属する子インスタンスを生成するように構成される。グループモジュールインスタンス化エンジン51400によってグループクラスモジュール1から作成されるかまたはインスタンス化されるインスタンスは、インスタンスとしてのグループアプリケーションモジュール1および2(グループAPM2、グループAPM2)およびアプリケーションフォルダ1を含む。アプリケーションフォルダ1はグループアプリケーションモジュール1(グループAPM1)に属する。ここで、部分的なインスタンス化の結果として、グループアプリケーションモジュール2(グループAPM2)には、インスタンス化されていないグループクラスモジュールライブラリ51120内の子クラスモジュール1を含むアプリケーションフォルダ1をクラスフォルダ1として含めないことが可能である。
【0086】
グループアプリケーションモジュール1および2(グループAPM1、グループAPM2)はあるプロジェクト(PJT)に属する。グループクラスモジュールライブラリ51120内の子クラスモジュール1、2、---nからグループモジュールインスタンス化エンジン51400によって作成されるかまたはインスタンス化される子インスタンスは、子アプリケーションモジュール1、2、---nの第1のセットならびに子アプリケーションモジュール2、---nの第2のセットを含む。子アプリケーションモジュール1、2、---nの第1のセットはグループアプリケーションモジュール1(グループAPM1)に属し、子アプリケーションモジュール1は、グループアプリケーションモジュール1(グループAPM1)に属するアプリケーションフォルダ1に属する。他の子アプリケーションモジュール2、---nは、直接グループアプリケーションモジュール1(グループAPM1)に属する。子アプリケーションモジュール1、2、---nの第1のセットはそれぞれクラスモジュール1、2、---nに関連付けられる。子アプリケーションモジュール2、---nの第2のセットは、直接グループアプリケーションモジュール2(グループAPM2)に属する。子アプリケーションモジュール2、---nの第2のセットはそれぞれクラスモジュール2、---nに関連付けられる。
【0087】
グループアプリケーションモジュール1および2(グループAPM1、グループAPM2)の各々は、設計情報と、アタッチメントと、割振りとを含む。グループアプリケーションモジュール1(グループAPM1)の割振りは、グループクラスモジュールの割振りからの単なるサブセットであってもよい。グループアプリケーションモジュール1および2(グループAPM1、グループAPM2)の各々における割振りは、制御モジュール図面、機器モジュール図面、および/またはユニット図面についてのモジュールグループ化情報を含んでもよい。グループアプリケーションモジュール1および2(グループAPM1、グループAPM2)の各々における割振りは、少なくとも2つ、すなわち、1)グループアプリケーションモジュール1および2のグループ化、ならびに2)複数の論理図面の複合ループ構造を定義するための制御モジュール、機器モジュール、および/またはユニットの複数の図面へのグループアプリケーションモジュール1および2の割当てを定義する。
【0088】
さらに、グループモジュールインスタンス化エンジン51400は、クラスモジュールライブラリ51110内のクラスモジュール1、2、---nをインスタンス化して、それぞれクラスモジュール1、2、---nに関連付けられたクラスベースアプリケーションモジュール1、2、---nを生成するように構成される。クラスベースアプリケーションモジュールを生成した後、クラスベースアプリケーションモジュールをグループモジュール更新エンジン51500によって更新することができ、それによって、クラスベースアプリケーションモジュールとクラスモジュールとの間の関連付けが破壊され、クラスベースアプリケーションモジュールがクラスモジュールから独立し、その結果、クラスベースアプリケーションモジュールはクラスレスアプリケーションモジュールになる。
【0089】
図5に示すように、子アプリケーションモジュール1、2、---n、クラスベースアプリケーションモジュールn、およびクラスレスアプリケーションモジュールの各々は、設計情報と、制御論理と、チューニングパラメータと、アラーム属性と、アタッチメントとを含む。機能仕様などの設計情報は、モジュール構成要素として定義されてもよい。設計情報は一般に、モジュールの詳細について説明するテキスト、画像、および表を含んでもよい。制御論理は、制御図面、ならびに機能ブロック、スイッチ、およびメッセージの詳細な定義を含んでもよい。制御論理は、クラスモジュールまたはアプリケーションモジュールにおいて定義されてもよい。モジュールベースエンジニアリングは、フィールド制御システムの制御論理において定義された機能ブロックにおけるチューニングパラメータ設計値のバルク編集により、かつチューニングパラメータ設計値およびフィールド制御システムの現在の値を比較し設定することによって、チューニングパラメータをモジュール構成要素と見なすことを可能にする。アラーム属性は、アラーム設定値およびアラーム優先順位であってもよい。任意のファイルをモジュール構成要素として付加することができる。アタッチメントのリストは、単純な動作によって起動することができる。
【0090】
モジュールエンジニアリングエディタ51000は、グループモジュール更新エンジン51500をさらに含む。グループモジュール更新エンジン51500は、グループアプリケーションモジュール1および2(グループAPM1、グループAPM2)ならびにクラスベースアプリケーションモジュール(クラスベースAPM)を更新するように構成される。モジュールエンジニアリングエディタ51000は、モジュールバインディングエンジン51600を含む。モジュールバインディングエンジン51600は、グループアプリケーションモジュール1(グループAPM1)に属するアプリケーションモジュール1および2(子APM1、子APM2)を制御図面"DRXXXX"にバインドし、また、別のインスタンス、子アプリケーションモジュール(子APM3)を別の制御図面"DRYYYY"にバインドするように構成される。同様に、モジュールバインディングエンジン51600は、子APM、すなわちグループAPM2の子APM2、クラスベースアプリケーションモジュール(クラスベースAPM)、およびクラスレスアプリケーションモジュール(クラスレスAPM)をさらに別の制御図面「DRZZZZ」にバインドするように構成される。システム構造51300における制御図面"DRXXXX"、"DRYYYY"、および"DRZZZZ"は、エンジニアリングデータに変換され、エンジニアリングデータはシステムエンジニアリングデータベース56100に記憶される。
図5に示すように、グループクラスモジュールおよびクラスモジュールからインスタンス化されたアプリケーションモジュールは、モジュールバインディングエンジン51600によって複数の制御図面にバインドされ、制御モジュール図面、機器モジュール図面、および/またはユニット図面の複合ループを定義する。エンジニアリング適用範囲を機器モジュールおよび/またはユニットレベルに拡張した結果、工業制御についてのエンジニアリング効率は著しく改善されている。
【0091】
上述のように、グループクラスモジュールライブラリ51120内のグループクラスモジュールおよび子クラスモジュールの階層は、グループモジュールインスタンス化エンジン51400によるグループクラスモジュールライブラリ51120におけるグループクラスモジュールおよび子クラスモジュールのインスタンス化時にアプリケーション構造ナビゲータ51200に反映される。ユーザは、モジュールライブラリ51110内のクラスモジュールのグループ化を構成してグループクラスモジュールライブラリ51120においてグループクラスモジュールを生成する。ユーザがクラスモジュールのグループ化を構成する理由は、このグループ化を後のプロセス、すなわち、インスタンス化後のモジュールバインディングにおいて使用するからである。ユーザは、クラスモジュールのグループ化を構成し、グループクラスモジュールライブラリ51120においてグループクラスモジュールを生成した後、インスタンス化を実行し、グループアプリケーションモジュール(グループAPM)およびその階層が、ユーザがアプリケーション構造ナビゲータ51200において指定した位置に作成される。グループクラスモジュールからインスタンス化されたインスタンスはグループアプリケーションモジュール(グループAPM)と呼ばれる。子クラスモジュールからインスタンス化されたインスタンスは子アプリケーションモジュール(子APM)と呼ばれる。ユーザは、インスタンス化を実行する際、インスタンス化すべきでない1つまたは複数の子クラスモジュールを選択するか、または、言い換えれば、インスタンス化すべき子クラスモジュールを選択する。ユーザは、同じグループクラスモジュールを1つまたは複数の子アプリケーションモジュール(子APM)のそれぞれに異なる選択肢によってインスタンス化することができる。この部分的なインスタンス化によって、たとえば、1つまたは複数の子アプリケーションモジュール(子APM)の第1のセットを有する第1のグループアプリケーションモジュールと、1つまたは複数の子アプリケーションモジュール(子APM)の第2のセットを有する第2のグループアプリケーションモジュールが生成されてもよく、1つまたは複数の子アプリケーションモジュール(子APM)の第1のセットは、1つまたは複数の子アプリケーションモジュール(子APM)の第2のセットとは異なる。グループモジュールインスタンス化エンジン51400は、選択された子クラスモジュールのユーザ構成に基づいてグループアプリケーションモジュール(グループAPM)を作成するように構成される。子クラスモジュールのうちのいくつかを、導出されたグループアプリケーションモジュール(グループAPM)から除外することが可能である。これによって、エンジニアは、グループモジュールについてのモジュールエンジニアリングデータをフェーズごとに構成することができる。モジュールエンジニアリングエディタ51000は、グループクラスモジュールの適用可能なインスタンスを作成してユーザがテンプレートグループクラスモジュールを再使用するのを可能にするための処理系を含む。
【0092】
設計情報は、グループアプリケーションモジュール(グループAPM)によってコピーされることもまたは継承されることもない。設計情報は、その現実世界の用途、設計、および目的または具体的な用途、設計、および目的について説明するための設計情報自体のドキュメンテーションを有してもよい。アタッチメントは、グループアプリケーションモジュール(グループAPM)によってコピーされることもまたは継承されることもない。アタッチメントは、その現実世界の用途、設計、および目的または具体的な用途、設計、および目的について説明するためのアタッチメント自体のドキュメンテーションを有してもよい。グループアプリケーションモジュール(グループAPM)の割振りは、どの子クラスモジュールがインスタンス化されるかに応じてグループクラスモジュールの割振りからの単なるサブセットであってもよい。
【0093】
ユーザは、グループクラスモジュールのインスタンス化にどの子クラスモジュールを含めるべきかを選択する。
【0094】
それぞれの子アプリケーションモジュール(子APM)1、2、および3は通常、1)設計情報と、2)アタッチメントと、3)制御論理と、4)アラーム属性と、5)チューニングパラメータとを有する。
【0095】
アプリケーション構造ナビゲータ51200内の子アプリケーションモジュール1(子APM1)における設計情報とクラスモジュールライブラリ51110内のクラスモジュール1における設計情報の間には違いがある。
【0096】
アプリケーション構造ナビゲータ51200内の子アプリケーションモジュール1(子APM1)におけるアタッチメントとクラスモジュールライブラリ51110内のクラスモジュール1におけるアタッチメントの間には違いがある。
【0097】
いくつかの編集可能なフィールドにおいて、アプリケーション構造ナビゲータ51200内の子アプリケーションモジュール(子APM1)における制御論理とクラスモジュールライブラリ51110内のクラスモジュール1における制御論理の間には違いがある。
【0098】
いくつかの編集可能なフィールドにおいて、アプリケーション構造ナビゲータ51200内の子アプリケーションモジュール1(子APM1)におけるアラーム属性とクラスモジュールライブラリ51110内のクラスモジュール1におけるアラーム属性の間には違いがある。
【0099】
いくつかの編集可能なフィールドにおいて、アプリケーション構造ナビゲータ51200内の子アプリケーションモジュール1(子APM1)におけるチューニングパラメータとクラスモジュールライブラリ51110内のクラスモジュール1におけるチューニングパラメータの間には違いがある。
【0100】
単にソースグループクラスモジュールからのインスタンス化によってモジュールエンジニアリングデータをトポロジーおよびコンテンツに関して再使用し、さらにエンジニアリングの労力を最小限に抑えるために、グループアプリケーションモジュール1(グループAPM1)およびグループアプリケーションモジュール2(グループAPM2)はグループクラスモジュール1から作成される。依然としていくつかの編集可能なパラメータを構成する必要がある。クラスベースアプリケーションモジュール(クラスベースAPM)はソースクラスモジュールを有し、クラスレスアプリケーションモジュール(クラスレスAPM)は、ソースクラスモジュールを参照しない。
【0101】
図6は、グループクラスモジュール、およびグループクラスモジュールから部分的にインスタンス化された2つのグループアプリケーションモジュールの一例を示す。割振りは、クラスモジュールのグループ化、および複合ループを定義するための複数の制御図面へのクラスモジュールの割当てを定義する。一例として、ライブラリ内のグループクラスモジュール「ABCD_UNIT」は、グループAPM「UNIT_0001(ABCD_UNIT)」またはグループAPM「UNIT_0002(ABCD_UNIT)」としてインスタンス化されている。ユーザは、部分的なインスタンス化を実行するための設計ニーズおよび/または設計フェーズに応じてインスタンス化すべきでないグループクラスモジュールの下位の子クラスモジュールを選択することができる。たとえば、
図6に示すように、グループクラスモジュール「ABCD_UNIT」の子クラスモジュール「BBB(CM_2)」はグループAPM「UNIT_0001(ABCD_UNIT)」ではインスタンス化されていない。
【0102】
最後に、論理制御図面は、グループクラスモジュールにおいて構成されたが、物理フィールド制御システム33000の制御図面に割り当てられる。場合によっては、同じグループクラスモジュールの下位のグループアプリケーションモジュール(グループAPM)は、同じ物理フィールド制御システム33000に割り当てられるべきである。複数の子クラスモジュールからレガシークラスモジュールが参照されるとき、レガシークラスモジュールについての修正は複数の子クラスモジュールに直接反映され、それによってモジュール保全性が向上する。
【0103】
(制御図面用のグループアプリケーションモジュールのバインド)
図5に示すように、モジュールエンジニアリングエディタ51000はモジュールバインディングエンジン51600を含む。モジュールバインディングエンジン51600は、グループアプリケーションモジュール1(グループAPM1)に属する子アプリケーションモジュール1および2(子APM1、子APM2)を制御図面「DRXXXX」にバインドし、また、別のインスタンス、子アプリケーションモジュール(子APM3)を別の制御図面「DRYYYY」にバインドするように構成される。同様に、モジュールバインディングエンジン51600は、クラスベースアプリケーションモジュール(クラスベースAPM)とクラスレスアプリケーションモジュール(クラスレスAPM)の両方をさらに別の制御図面「DRZZZZ」にバインドするように構成される。モジュールバインディングエンジン51600の機能は、子アプリケーションモジュール(子APM)間の関係を維持することである。レガシーアプリケーションモジュール(レガシーAPM)は任意の図面に独立にバインドすることができ、レガシーアプリケーションモジュール(レガシーAPM)にはグループ化も制限も適用されない。グループアプリケーションモジュール(グループAPM)では、割振り情報は、子アプリケーションモジュール(子APM)にグループ化をあらかじめ割り当てて、子アプリケーションモジュール(子APM)を同じ制御図面に割り当てさせる。
【0104】
(インスタンス化後のグループクラスモジュールの更新)
グループモジュール更新エンジン51500は、グループクラスモジュールからのトポロジーおよび割振りデータの変更を、グループアプリケーションモジュール(グループAPM)についてのグループクラスモジュールの適用可能なインスタンスに同期させるために使用される。グループモジュール更新エンジン51500は、グループアプリケーションモジュール1および2のループ構造におけるトポロジーおよび1つまたは複数の目標グループアプリケーションモジュール1および/または2のトポロジーを更新して、グループアプリケーションモジュール1および2のトポロジーの更新を、1つまたは複数の目標グループアプリケーションモジュール1および/または2のトポロジーに同期させるかまたは反映するように構成される。グループモジュール更新エンジン51500は、各グループクラスモジュールの割振りおよびグループクラスモジュールライブラリ51120内の各グループクラスモジュール1の複合ループのそれぞれのトポロジーを更新するように構成される。グループモジュール更新エンジン51500は、目標グループアプリケーションモジュール1または2(目標グループAPM1またはグループAPM2)の割振りおよび目標グループアプリケーションモジュール1または2(目標グループAPM1またはグループAPM2)の複合ループのそれぞれのトポロジーを更新するように構成される。グループモジュール更新エンジン51500は、どのグループアプリケーションモジュールおよびループ構造におけるグループアプリケーションモジュールのトポロジーを目標グループアプリケーションモジュール(目標グループAPM)に反映しなければならないかを特定するか、またはユーザが特定するのを可能にするように構成される。言い換えれば、グループモジュール更新エンジン51500は、グループクラスモジュールのループ構造におけるトポロジーの更新による変更または修正を目標グループアプリケーションモジュール(目標グループAPM)のループ構造におけるトポロジーに反映するために使用される。
【0105】
上述のように、各グループクラスモジュールは複合ループ構造を有する。グループクラスモジュールには複合更新管理が必要である。上述のように、各グループクラスモジュールは設計情報と、アタッチメントリストと、割振りとを有する。同じく上述のように、各グループアプリケーションモジュール(グループAPM)は、設計情報と、アタッチメントリストと、割振りとを有する。設計情報とアタッチメントは別個の定義であり、インスタンス化またはモジュール更新時には更新されない。「更新」という用語は、変更、修正、追加、および削除のためのプロセスを指す。グループクラスモジュールのループ構造におけるトポロジーの更新による変更または修正を目標グループアプリケーションモジュール(目標グループAPM)のループ構造におけるトポロジーに反映するためのプロセスは、1)目標グループアプリケーションモジュール(目標グループAPM)のループ構造におけるトポロジーを更新すること、2)1つまたは複数の子アプリケーションモジュールが属する目標グループアプリケーションモジュール(目標グループAPM)に1つまたは複数の子アプリケーションモジュールを追加するかまたは目標グループアプリケーションモジュール(目標グループAPM)から1つまたは複数の子アプリケーションモジュールを削除すること、および3)1つまたは複数の子アプリケーションモジュールのコンテンツを更新することの3つのステップを含んでもよい。
【0106】
グループモジュール更新エンジン51500は、グループアプリケーションモジュール(グループAPM)内に子アプリケーションモジュール(子APM)が存在することおよびソース子クラスモジュールの位置に対する変更に基づいて、グループクラスモジュールおよびグループアプリケーションモジュール(グループAPM)のトポロジー間の更新を実行するように構成される。グループモジュール更新エンジン51500は、グループクラスモジュールのすでに作成された適用可能なインスタンスをその新しいバージョンによって更新するための処理系を含む。
【0107】
インスタンス化後のグループクラスモジュールの更新についてより詳細に説明し、すなわち、再使用可能性、チェックアウト/イン、コンテンツ、更新、およびグループ化解除に関して説明する。
【0108】
図7は、グループクラスモジュールおよびグループアプリケーションモジュールについての更新管理の一例を示す。インスタンス化後、グループクラスモジュール「ABCD_UNIT」のフォルダBの下位において子クラスモジュール「AAA(CM_1)」が削除された場合、モジュール更新がトリガされならびに/または実行されたときに、アプリケーション構造ナビゲータの下位の対応するグループAPMから子クラスモジュール「AAA(CM_1)」のインスタンス「APM_1(CM_1)」が削除される。グループクラスモジュールの下位に子クラスモジュール「EEE(CM_1)」が追加された場合、子クラスモジュール「EEE(CM_1)」は、別個のインスタンスウィンドウ対話を使用してインスタンス化され、「APM_5(CM_1)」としてインスタンス化される。エンジニアまたはユーザは、アプリケーション構造ナビゲータの下位のクラスAPMを削除し、たとえば、「APM_4(CM_2)」を削除することができるが、「DDD(CM_2)」であるこの削除によってAPM_4のソースクラスモジュールが削除されることはない。
【0109】
再使用可能性:
グループクラスモジュールは2段階でエクスポートおよび/またはインポートを行うことができる。第1に、子クラスモジュールによって参照されるレガシークラスモジュールがエクスポートならびに/またはインポートされる。第2に、グループクラスモジュールがエクスポートならびに/またはインポートされる。再使用可能なモジュールエンジニアリングデータの、他のシステムプロジェクトのエンジニアリングデータベースへのエクスポートおよびインポートを行うことができ、それによって、他のシステムプロジェクトはこのエンジニアリングデータを再使用することができる。
【0110】
チェックアウトおよび/またはチェックイン
チェックアウトおよび/またはチェックインのためのプロセスは、グループクラスモジュールに属するすべての子クラスモジュールを含むグループクラスモジュール全体ごとに実行することができる。すなわち、各子クラスモジュールの独立したチェックアウトおよび/またはチェックインを行うことはできない。これに対して、グループアプリケーションモジュール(グループAPM)については、グループアプリケーションモジュール(グループAPM)のみまたは子アプリケーションモジュール(子APM)との組合せごとにチェックアウトおよび/またはチェックインのプロセスを実行することができる。すなわち、各子アプリケーションモジュール(子APM)の独立したチェックアウトおよび/またはチェックインを行うことができる。
【0111】
コンテンツ
上述のように、グループクラスモジュールは、そのグループクラスモジュールについての設計情報と、アタッチメントリストと、割振りとを有する。同じく上述のように、グループアプリケーションモジュール(グループAPM)は設計情報と、アタッチメントと、割振りとを有する。設計情報とアタッチメントは別個の定義であり、インスタンス化またはモジュール更新プロセス時には更新されない。この振る舞いはレガシーモジュールの振る舞いと同じである。
【0112】
更新
上述のように、インスタンス化後にグループクラスモジュールが修正される場合、以下の3段階で修正をグループアプリケーションモジュール(グループAPM)に反映することができる。
1)グループAPMトポロジーの更新
2)子APMの追加および/または削除
3)子APMコンテンツの更新
【0113】
第1に、グループクラスモジュールについてモジュール更新マネージャが起動される。次いで、グループアプリケーションモジュール(グループAPM)のトポロジーおよび割振りが、モジュール更新マネージャによって更新される。グループアプリケーションモジュール(グループAPM)は、グループクラスモジュールが修正される場合、ユーザの選択および/またはユーザによるトリガによって更新される。グループクラスモジュールを更新することによって子クラスモジュールが削除される場合、対応する子アプリケーションモジュール(子APM)が削除される。この段階では、すべての子アプリケーションモジュール(子APM)のチェックアウトおよび/またはチェックインを行わなければならない。
【0114】
第2に、1つまたは複数の子クラスモジュールが追加される場合、追加された子クラスモジュールはインスタンスリストウィンドウにおいてインスタンス化される。1つまたは複数の子アプリケーションモジュール(子APM)を削除する必要がある場合、1つまたは複数の子アプリケーションモジュール(子APM)は、アプリケーション構造ナビゲータにおいて削除される。
【0115】
最後に、子クラスモジュールによって参照されるレガシークラスモジュールが更新され、それによって、子アプリケーションモジュール(子APM)のコンテンツが更新される。
【0116】
グループAPMのグループ解除
ユーザは、グループアプリケーションモジュール(グループAPM)の「グループ解除」を実行することができる。グループ解除は、グループ化のプロセスとは逆のプロセスを指す。グループアプリケーションモジュール(グループAPM)をグループ解除すると、ループ構造が破壊され、各アプリケーションモジュールがアプリケーション構造ナビゲータにおけるプロジェクトフォルダとしての最上位のフォルダの直下に配置される。「グループ解除」のためのプロセスの後、グループアプリケーションモジュール(グループAPM)の最上位のフォルダがアプリケーションフォルダになり、最上位のフォルダの直下の設計情報およびアタッチメントリストが削除され、子アプリケーションモジュール(子APM)が、それぞれのクラスモジュールを指すクラスベースアプリケーションモジュール(クラスベースAPM)になる。
【0117】
図8は、グループアプリケーションモジュール(グループAPM)についてのモジュール更新のサンプルシナリオを示す。この節ではグループAPMについてのモジュール更新の具体的な例について説明する。
図8は、グループAPM EQUIP1を有するグループクラスモジュールGM0001の一例を示す。このグループアプリケーションモジュール(グループAPM)は、グループクラスモジュールGM0001に属する、フォルダ1の子クラスモジュールにおける3つの子クラスモジュールのうちの2つの子クラスモジュール、すなわち「CM0001へのショートカット」および「PUMP_LOGIC1(CM0002へのショートカット)」によって部分的に作成される。具体的には、「CM0001へのショートカット」は子アプリケーションモジュール「RECIPE1」としてインスタンス化されており、「CM0002へのショートカット」は、子アプリケーションモジュール「PUMP_LOGIC1」としてインスタンス化されている。
【0118】
割振り設定
以下に、グループクラスモジュールおよびグループAPMからの割振り設定のための構成を示す。
【0119】
【0120】
モジュールバインディング
これは、グループ番号1がFCS0101→DR0001にバインドされることを表すグループAPMのモジュールバインディング状態を示す。
【0121】
【0122】
以下の表に、ユーザシナリオおよびモジュール更新を実行した結果が与えられた場合のモジュール更新対話のステータスを表す。
【0123】
【0124】
要するに、上述の実施形態から、工業プラントのオートメーション設計についてのグループクラスモジュールベースエンジニアリングの最も重要な機能の1つが再使用可能性の向上であることを諒解することができる。試験済みのグループクラスモジュールを再使用するとエンジニアリング品質を向上させ、エンジニアリング時間および試験時間を短縮することができ、試験済みのグループクラスモジュールは部分的に修正され部分的に再使用される。
【0125】
上述のゲーム装置についての各要素またはデバイスは、ハードウェアとソフトウェアによって実装することも、またはソフトウェアなしでハードウェアによって実装することもできる。場合によっては、ゲーム装置は、1つまたは複数のハードウェアプロセッサおよび1つまたは複数のソフトウェア構成要素によって実装されてもよく、その場合、1つまたは複数のソフトウェア構成要素は、ゲーム装置についての各要素またはデバイスを実装するように1つまたは複数のハードウェアプロセッサによって実行される。いくつかの他の場合には、ゲーム装置は、ゲーム装置についての各要素またはデバイスの各動作を実行するように構成された回路のシステムまたは回路によって実装されてもよい。
【0126】
上述の実施形態におけるシステムおよび方法は、コンピュータソフトウェア、ソフトウェア構成要素、プログラムコード、および/または1つもしくは複数のプロセッサに対する命令を実行するマシンまたは回路によって部分的または全体的に展開されてもよい。1つまたは複数のプロセッサは、汎用コンピュータ、サーバ、クラウドサーバ、クライアント、ネットワークインフラストラクチャ、モバイルコンピューティングプラットフォーム、固定コンピューティングプラットフォーム、または他のコンピューティングプラットフォームの一部であってもよい。1つまたは複数のプロセッサは、プログラム命令、コード、バイナリ命令などを実行することができる任意の種類の計算または処理デバイスであってもよい。1つまたは複数のプロセッサは、信号プロセッサ、デジタルプロセッサ、組込みプロセッサ、マイクロプロセッサ、または記憶されたプログラムコードもしくはプログラム命令の実行を直接的もしくは間接的に容易にすることがあるコプロセッサ、たとえば数値演算コプロセッサ、グラフィックコプロセッサ、通信コプロセッサなどの任意の変形例であってもよく、またはそれらを含んでもよい。さらに、1つまたは複数のプロセッサは、複数のプログラム、スレッド、およびコードの実行を可能にしてもよい。各スレッドは、1つまたは複数のプロセッサの実行を向上させ、アプリケーションの同時動作を容易にするように同時に実行されてもよい。本明細書で説明するプログラムコード、プログラム命令などは、1つまたは複数のスレッドにおいて実施されてもよい。1つまたは複数のプロセッサは、本明細書で説明するようにコード、命令、およびプログラムを記憶するメモリを含んでもよい。プロセッサは、本明細書および他の部分で説明するようにコード、命令、およびプログラムを記憶する場合がある非一時的プロセッサ可読記憶媒体にインターフェースによってアクセスしてもよい。プログラム、コード、プログラム命令、またはコンピューティングデバイスもしくは処理デバイスによって実行することができる他の種類の命令を記憶するためにプロセッサに関連付けられた非一時的プロセッサ可読記憶媒体は、限定はしないが、メモリ、ハードディスク、フラッシュドライブ、RAM、ROM、CD-ROM、DVD、キャッシュなどのうちの1つまたは複数を含んでもよい。
【0127】
プロセッサは、マルチプロセッサの速度および性能を向上させる場合がある1つまたは複数のコアを含んでもよい。いくつかの実施形態では、プロセッサは、デュアルコアプロセッサ、クアッドコアプロセッサ、2つ以上の独立したコアを組み合わせる他のチップレベルマルチプロセッサなどであってもよい。
【0128】
本明細書で説明する方法およびシステムは、サーバ、クライアント、ファイアウォール、ゲートウェイ、ハブ、ルータ、または他のコンピュータおよび/もしくはネットワーキングハードウェア上でコンピュータソフトウェアを実行するマシンによって部分的または全体的に展開されてもよい。
【0129】
ソフトウェアプログラムは、ファイルクライアント、印刷クライアント、ドメインクライアント、インターネットクライアント、イントラネットクライアント、および二次クライアント、ホストクライアント、分散クライアントなどの他の変形例を含んでもよい1つまたは複数のクライアントに関連付けられてもよい。クライアントは、メモリ、プロセッサ、コンピュータ可読媒体、記憶媒体、物理および仮想ポート、通信デバイス、ならびに有線または無線媒体によって他のクライアント、サーバ、マシン、およびデバイスにアクセスすることのできるインターフェースなどのうちの1つまたは複数を含んでもよい。本明細書で説明するようなプログラムまたはコードは、クライアントによって実行されてもよい。さらに、この適用例において説明するような方法を実行するのに必要な他のデバイスは、クライアントに関連するインフラストラクチャの一部と見なされることがある。クライアントは、サーバ、他のクライアント、プリンタ、データベースサーバ、プリントサーバ、ファイルサーバ、通信サーバ、分散サーバなどを含む他のデバイスとのインターフェースを構成してもよい。この結合および/または接続は、ネットワークを介したプログラムのリモート実行を容易にすることがある。これらのデバイスのうちのいくつかまたはすべてのネットワーク化は、1つまたは複数の位置におけるプログラムまたは方法の並列実行を容易にすることがある。さらに、インターフェースによってクライアントに付加されたデバイスのうちの任意のデバイスは、方法、プログラム、アプリケーション、コード、および/または命令を記憶することができる少なくとも1つの記憶媒体を含んでもよい。中央リポジトリは、様々なデバイス上で実行すべきプログラム命令を提供してもよい。この実装形態では、リモートリポジトリは、プログラムコード、命令、およびプログラム用の記憶媒体として働いてもよい。
【0130】
ソフトウェアプログラムは、ファイルサーバ、プリントサーバ、ドメインサーバ、インターネットサーバ、イントラネットサーバ、および二次サーバ、ホストサーバ、分散サーバなどの他の変形例を含んでもよい1つまたは複数のサーバに関連付けられてもよい。サーバは、メモリ、プロセッサ、コンピュータ可読媒体、記憶媒体、物理および仮想ポート、通信デバイス、ならびに有線または無線媒体によって他のサーバ、クライアント、マシン、およびデバイスにアクセスすることのできるインターフェースなどのうちの1つまたは複数を含んでもよい。本明細書で説明するような方法、プログラム、またはコードはサーバによって実行されてもよい。さらに、この適用例において説明するような方法を実行するのに必要な他のデバイスは、サーバに関連するインフラストラクチャの一部と見なされることがある。サーバは、クライアント、他のサーバ、プリンタ、データベースサーバ、プリントサーバ、ファイルサーバ、通信サーバ、分散サーバ、ソーシャルネットワークなどを含む他のデバイスとのインターフェースを構成してもよい。この結合および/または接続は、ネットワークを介したプログラムのリモート実行を容易にすることがある。これらのデバイスのうちのいくつかまたはすべてのネットワーク化は、1つまたは複数の位置におけるプログラムまたは方法の並列実行を容易にすることがある。インターフェースによってサーバに付加されたデバイスのうちの任意のデバイスは、プログラム、コード、および/または命令を記憶することができる少なくとも1つの記憶媒体を含んでもよい。中央リポジトリは、様々なデバイス上で実行すべきプログラム命令を提供してもよい。この実装形態では、リモートリポジトリは、プログラムコード、命令、およびプログラム用の記憶媒体として働いてもよい。
【0131】
本明細書で説明する方法およびシステムは、ネットワークインフラストラクチャによって部分的または全体的に展開されてもよい。当技術分野で知られているように、ネットワークインフラストラクチャは、コンピューティングデバイス、サーバ、ルータ、ハブ、ファイアウォール、クライアント、パーソナルコンピュータ、通信デバイス、ルーティングデバイス、ならびにその他の能動および受動デバイス、モジュール、ならびに/または構成要素などの要素を含んでもよい。ネットワークインフラストラクチャに関連するコンピューティングおよび/または非コンピューティングデバイスは、他の構成要素は別として、フラッシュメモリ、バッファ、スタック、RAM、ROMなどの記憶媒体を含んでもよい。本明細書および他の部分で説明するプロセス、方法、プログラムコード、命令は、ネットワークインフラストラクチャ要素のうちの1つまたは複数によって実行されてもよい。
【0132】
本明細書および他の部分で説明する方法、プログラムコード、および命令は、モバイルデバイス上でまたはモバイルデバイスを介して実施されてもよい。モバイルデバイスは、ナビゲーションデバイス、携帯電話、モバイルフォン、モバイル携帯情報端末、ラップトップ、パームトップ、ネットブック、ページャ、電子ブックリーダ、音楽プレーヤなどを含んでもよい。これらのデバイスは、他の構成要素は別として、フラッシュメモリ、バッファ、RAM、ROM、および1つまたは複数のコンピューティングデバイスなどの記憶媒体を含んでもよい。モバイルデバイスに関連付けられたコンピューティングデバイスは、記憶されたプログラムコード、方法、および命令を実行するのを可能にされてもよい。代替として、モバイルデバイスは、他のデバイスと協働して命令を実行するように構成されてもよい。モバイルデバイスは、サーバとインターフェース接続されプログラムコードを実行するように構成された基地局と通信してもよい。モバイルデバイスは、ピアツーピアネットワーク、メッシュネットワーク、または他の通信ネットワーク上で通信してもよい。プログラムコードは、サーバに関連付けられた記憶媒体上に記憶され、サーバ内に組み込まれたコンピューティングデバイスによって実行されてもよい。基地局は、コンピューティングデバイスと記憶媒体とを含んでもよい。記憶デバイスは、基地局に関連付けられたコンピューティングデバイスによって実行されるプログラムコードおよび命令を記憶してもよい。
【0133】
コンピュータソフトウェア、プログラムコード、および/または命令については、ある時間間隔の間コンピューティングに使用されるデジタルデータを保持するコンピュータ構成要素、デバイス、および記録媒体、ランダムアクセスメモリ(RAM)と呼ばれる半導体ストレージ、光学ディスク、ハードディスク、テープ、ドラム、カード、およびその他の種類のような磁気ストレージ形式などの通常より永久的な記憶用のマスストレージ、プロセッサレジスタ、キャッシュメモリ、揮発性メモリ、不揮発性メモリ、CD、DVDなどの光学ストレージ、フラッシュメモリ、たとえば、USBスティックまたはキー、フロッピーディスク、磁気テープ、紙テープ、パンチカード、スタンドアロンRAMディスク、ジップドライブ、リムーバブルマスストレージ、オフラインなどの取外し可能媒体、ダイナミックメモリ、スタチックメモリ、読取り/書込みストレージ、ミュータブルストレージ、読取り専用、ランダムアクセス、シーケンシャルアクセス、ロケーションアドレス可能、ファイルアドレス可能、コンテンツアドレス可能、ネットワーク接続ストレージ、ストレージエリアネットワーク、バーコード、磁気インクなどの他のコンピュータメモリを含んでもよい機械可読媒体上での記憶および/またはアクセスが行われてもよい。
【0134】
本明細書で説明する方法、デバイス、装置、およびシステムは、物理的な品目および/または有形の品目を1つの状態から別の状態に変換してもよい。本明細書で説明する方法およびシステムはまた、物理的な品目および/または有形の品目を表すデータを1つの状態から別の状態に変換してもよい。
【0135】
本明細書に記載され、図全体におけるフローチャートおよびブロック図に含まれるモジュール、エンジン、構成要素、および要素は、モジュール、エンジン、構成要素、および要素間の論理的境界を暗示する。しかし、ソフトウェアまたはハードウェアエンジニアリングの慣習に従って、モジュール、エンジン、構成要素、および要素ならびにそれらの機能は、モノリシックソフトウェア構造、スタンドアロンソフトウェアモジュール、または外部ルーチン、コード、サービス、もしくはこれらの任意の組合せを使用するモジュールとして記憶されたプログラム命令を実行することができるコンピュータ実行可能媒体を介して1つまたは複数のプロセッサ、コンピュータ、マシン上に実装されてもよく、すべてのそのような実装形態は本開示の範囲内であってもよい。そのようなマシンの例には、限定はしないが、携帯情報端末、ラップトップ、パーソナルコンピュータ、モバイルフォン、他のハンドヘルドコンピューティングデバイス、医療機器、有線または無線通信デバイス、トランスジューサ、チップ、計算器、衛星、タブレットPC、電子ブック、ガジェット、電子デバイス、人工知能を有するデバイス、コンピューティングデバイス、ネットワーク化機器、サーバ、ルータ、プロセッサ組込みアイウェアなどが含まれてもよい。さらに、フローチャートおよびブロック図におけるモジュール、エンジン、構成要素、および要素または任意の他の論理構成要素は、プログラム命令を実行できる1つまたは複数のマシン、コンピュータ、またはプロセッサ上に実装されてもよい。上記の説明および説明において参照された図面には、開示されたシステムのいくつかの機能態様が記載されているが、明示的に指摘されるかまたは他の点で文脈から明らかでない限り、これらの機能態様を実施するためのソフトウェアの特定の構成をこれらの説明から推定すべきではない。上記で特定し説明した様々なステップが変形されてもよく、ステップの順序が本明細書で開示された技法の特定の適用例に適合されてもよいことが諒解されよう。すべてのそのような変形実施形態および修正実施形態は本開示の範囲内であることが意図される。様々なステップの順序の説明は、特定の適用例によって必要とされるか、または明示的に指摘されるかもしくは他の点で文脈から明らかでない限り、それらのステップを実行する特定の順序を必要とすると理解すべきではない。
【0136】
上述の方法および/またはプロセスならびにそれらのステップは、特定の適用例に適したハードウェア、ソフトウェア、またはハードウェアとソフトウェアの任意の組合せにおいて実現されてもよい。ハードウェアは、汎用コンピュータならびに/あるいは専用コンピューティングデバイスまたは特定のコンピューティングデバイスまたは特定のコンピューティングデバイスの特定の態様もしくは構成要素を含んでもよい。プロセスは、1つもしくは複数のマイクロプロセッサ、マイクロコントローラ、組込みマイクロコントローラ、プログラム可能デジタル信号プロセッサ、または他のプログラム可能デバイスにおいて、内部および/または外部メモリと協働して実現されてもよい。プロセスは、追加または代替として、特定用途向け集積回路、プログラム可能ゲートアレイ、プログラム可能アレイロジック、または電子信号を処理するように構成されてもよい任意の他のデバイスもしくはデバイスの組合せにおいて具現化されてもよい。プロセスのうちの1つまたは複数が、機械可読媒体上で実行することができるコンピュータ実行可能コードとして実現されてもよいことがさらに諒解されよう。
【0137】
コンピュータ実行可能コードは、上記のデバイスのうちの1つ上に記憶され、かつそのデバイス上で動作するようにコンパイルまたは解釈されてもよいオブジェクト指向プログラミング言語、ならびにプロセッサ、プロセッサアーキテクチャの異種組合せ、または異なるハードウェアおよびソフトウェアの組合せ、またはプログラム命令を実行することができる任意の他のマシンを使用して作成されてもよい。
【0138】
したがって、上述の各方法およびそれらの組合せは、1つまたは複数のコンピューティングデバイス上で実行されたときに方法のステップを実行するコンピュータ実行可能コードにおいて具現化されてもよい。別の態様では、方法は、そのステップを実行するシステムにおいて具現化されてもよく、いくつかの方法で各デバイスに分散されてもよく、または機能のすべてが専用スタンドアロンデバイスまたは他のハードウェアに組み込まれてもよい。別の態様では、上述のプロセスに関連するステップを実行するための手段は、上述のハードウェアおよび/またはソフトウェアのうちのいずれを含んでもよい。すべてのそのような変形および組合せは、本開示の範囲内であることが意図される。
【0139】
本発明のいくつかの実施形態について説明したが、これらの実施形態は一例としてのみ提示されており、本発明の範囲を制限するものではない。すなわち、本明細書で説明する新規の実施形態は、様々な他の形態で具現化されてもよく、さらに、本明細書で説明した実施形態の形の様々な省略、置換、および変更は、本発明の趣旨から逸脱せずに施されてもよい。添付の特許請求の範囲およびその均等物は、本発明の範囲および趣旨の範囲内であるような形態または修正を対象とするものである。
【符号の説明】
【0140】
30000 プラントエンジニアリングシステム
31000 モジュールエンジニアリングシステム、モジュールエンジニアリングエディタ
31100 ライブラリナビゲータ
31110 クラスモジュールライブラリ
31200 アプリケーション構造ナビゲータ
31300 システム構造
31400 クラスモジュールインスタンス化エンジン
31500 クラスモジュール更新エンジン
31600 モジュールバインディングエンジン
32000 制御ネットワーク
33000 物理フィールドコントローラ、物理フィールド制御システム
34000 フィールドネットワーク
35000 フィールドデバイス
36000 制御システム
36100 システムエンジニアリングデータベース
50000 プラントエンジニアリングシステム
51000 グループモジュールエンジニアリングシステム、グループモジュールエンジニアリングエディタ
51100 ライブラリナビゲータ
51110 クラスモジュールライブラリ
51120 グループクラスモジュールライブラリ
51200 アプリケーション構造ナビゲータ
51300 システム構造
51400 グループモジュールインスタンス化エンジン
51500 グループモジュール更新エンジン
51600 モジュールバインディングエンジン
52000 制御ネットワーク
53000 物理フィールドコントローラ
54000 フィールドネットワーク
55000 フィールドデバイス
56000 制御システム
56100 システムエンジニアリングデータベース