JP4700906B2 - 階層アーキテクチャを有する監視プロセス制御/製造情報システム・アプリケーション - Google Patents

階層アーキテクチャを有する監視プロセス制御/製造情報システム・アプリケーション Download PDF

Info

Publication number
JP4700906B2
JP4700906B2 JP2003507691A JP2003507691A JP4700906B2 JP 4700906 B2 JP4700906 B2 JP 4700906B2 JP 2003507691 A JP2003507691 A JP 2003507691A JP 2003507691 A JP2003507691 A JP 2003507691A JP 4700906 B2 JP4700906 B2 JP 4700906B2
Authority
JP
Japan
Prior art keywords
application
objects
engine
platform
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003507691A
Other languages
English (en)
Other versions
JP2004536391A (ja
Inventor
エム.レスニック ロバート
ジー.ルブラン ローレンス
ソエル ティモシー
エイチ モディー パンカジ
Original Assignee
インベンシス システムズ インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インベンシス システムズ インコーポレーテッド filed Critical インベンシス システムズ インコーポレーテッド
Publication of JP2004536391A publication Critical patent/JP2004536391A/ja
Application granted granted Critical
Publication of JP4700906B2 publication Critical patent/JP4700906B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)
  • General Factory Administration (AREA)

Description

本発明は一般に、コンピュータ化されたプロセス制御ネットワークの分野に関する。より詳細には、本発明は、監視プロセス制御/製造情報システム(supervisory process control and manufacturing information system)に関する。そうしたシステムは一般に、プロセス制御ネットワーク内の制御レイヤ上で実行されて、たとえばプログラマブル・ロジック・コントローラ(PLC)など下位レベルの制御要素についての情報(guidance)を提供する。
本出願は、2001年6月22日に出願された、レスニック(Resnick)らの「監視プロセス制御/製造アプリケーションを実行するためのオブジェクト・ベース・アーキテクチャ(An Object-based Architecture for Executing Supervisory Process Control and Manufacturing Applications)」と題する米国特許仮出願第60/300363号、および2001年6月22日に出願された、ローリー(Rowley)らの「監視プロセス制御/製造情報システム・ソフトウェアの遠隔地からのインストールおよびハンドルの動的再バインドのための方法(Method for Installing Supervisory Process Control and Manufacturing Information System Software From a Remote Location and Dynamic Re-Binding Handles)」と題する米国特許仮出願第60/300174号の優先権を主張する。上記各仮出願の内容の全体を、そこで参照されている内容および教示を含めて、参照により本明細書に明白に組み込む。
工業用プロセス制御技術における著しい進歩は、工場およびプラント操業のすべての面を大幅に改良した。今日の現代的な工業用プロセス制御システムが導入される以前は、工業プロセスは、人間および簡単な機械制御によって、操作/制御されていた。その結果、プロセス制御の複雑さおよび程度には、1人または複数の人間が、さまざまなプロセス状態変数のステータスを確認し、現在のステータスを所望の操業レベルと比較し、(必要ならば)修正動作を計算し、状態変数が変化するように制御点を変更するのに要するスピードからくる限界があった。
プロセス制御技術の改良は、より大規模で、より複雑な工業プロセスを、プログラムされた制御プロセッサで制御することを可能にした。制御プロセッサは、複数のプロセス状態変数を読み取る制御プログラムを実行し、その状態変数データと所望の設定値情報とに基づく制御アルゴリズムを実行して、工業プロセス中の複数の制御点についての出力値を返す。こうした制御プロセッサおよびプログラムは、(一度、設定値が設定されると)実質的に、自動運転の工業プロセス(self-running industrial process)をサポートする。
工業プロセスが、プログラムされたプロセス・コントローラの制御下で、人間の介入を必要とせず、先に設定された設定値で動作できるとしても、制御プロセッサおよびその関連プロセスを監視制御し、モニタリングすることが望ましい。こうした監視(oversight)は、人間と、マルチ・レベル・プロセス制御ネットワークのアプリケーション/ヒューマン・インターフェース・レイヤに存在するより上位レベルの制御プログラムとの両方によって提供される。こうした監視には、一般に、下位レベルのプロセス・コントローラの下で制御されるプロセスが適切に実行されているか検証すること、制御されるプロセスの設定値を設定すること、が求められる。
製造/プロセス制御システムは、プロセス制御装置およびプロセス自体に変化が生じると、修正される。したがって、そうした場合に、システムの変化していない部分に影響を及ぼすことなく、速やかに構成/再構成を行う手段を提供することが重要になる。また、工業プロセスの動作の中断を最小限に抑えながら、たとえば、プロセスが停止する時間を最短に抑えながら、そうした変更を行う手段を提供することも重要になる。
監視プロセス制御/製造情報システムを改良し続けることによる利益とその望ましさを考えれば、監視プロセス制御/製造情報システムがある1つのアーキテクチャに固定されないようにすることが強く望まれる。プロセス制御システムは変化し、そうした変化に対して、その変化の規模にかかわらず、適合できる上位レベルのシステムを有していることが望ましい。さらに、柔軟性の低い監視プロセス制御/製造情報システムを提供するということは、一度インストールされるとそのアプリケーションに対する変更が相対的にフレキシビリティを欠くので、プロセス制御のインストール設計者は、アプリケーションの長期的に要求される事柄も考慮しなければならなくなる。
しかし、そうしたアプリケーションのフレキシビリティの欠如は、保守的な(conservative)工業用制御システムの市場では望ましくない。プロセス制御産業では、よく試験的に運用することに気を配り、しばしば、設計者は、最終的インストールに組み込まれる自動制御の全体的な範囲および形態を十分に認識していないことが多い。プラントの寿命の後期になって、新機能が付け加えられると、その新しい制御システム・コンポーネントは、既存システムを活用し、または既存システムを併合する。プロセス制御システムが大幅に変更されるような場合は、インストールされている監視プロセス制御アプリケーションに異なるアーキテクチャを組み入れたほうが有利である。
本発明の一態様によれば、監視プロセス制御/製造情報システム・アプリケーションは、下位レイヤのアプリケーション・コンポーネントは、より上位にインストールされたレイヤのアプリケーション・コンポーネントをホストする多重レイヤ階層方式(multi-layered hierarchical manner)で、ネットワーク接続された複数のコンピュータ装置に分散することができる。アプリケーション・オブジェクトは、分散アプリケーション・アーキテクチャの比較的上位レベルに常駐し、プロセス制御システム内のエンティティをモデル化したものである。エンジン・オブジェクトは、ランタイム環境で、アプリケーション・オブジェクトの実行をホストする。したがって、アプリケーション・オブジェクトが関連付けられているホスト・エンジン・オブジェクトを展開(deploy)しないうちに、アプリケーション・オブジェクトを展開することはできない。エンジン・オブジェクトは、プラットフォーム・オブジェクトにホストされる。プラットフォーム・オブジェクトは、エンジン・オブジェクトと関連アプリケーション・オブジェクトを実行するための、物理コンピュータ・システム・コンポーネントに対応する。
本発明の別の態様によれば、構成ファシリティ(configuration facility)は、監視プロセス制御/製造情報アプリケーションに関する展開モデル(deployment model)を指定する。展開モデルは、アプリケーション・オブジェクトを特定の物理コンピューティング装置に関連付け、物理コンピューティング装置上に分散するオブジェクトのビューを提供する。具体的には、構成ファシリティは、アプリケーション内でエンジンをホストするのに利用可能な1つまたは複数の物理コンピューティング装置タイプを指定する1組のプラットフォーム定義を含む。1組のエンジン定義は、物理コンピューティング・システム上で実行するエンジンを指定し、したがって物理コンピューティング装置によってサポートされるサービス・タイプを定める。1組のエリア定義は、アプリケーション・オブジェクトの論理的なグループ分けを指定する。さらに、1組の階層関係(hierarchical relationship)は、物理コンピューティング・システムのうちの特定システムへのエンジンの割り当て、およびエンジンのうちの特定エンジンへのエリアの割り当てを指定する。展開ビュー・ジェネレータ(deployment view generator)は、1組の階層関係に従って、物理コンピューティング装置、エンジン、およびエリアから成る階層ビューを生成する。
本発明のさらに別の態様によれば、監視プロセス制御/製造情報システム・アプリケーション構成ファシリティ(supervisory process control and manufacturing information system application configuration facility)は、多様な複数のビューを含む。この複数のビューは、プロセス制御/製造情報ソフトウェアの構成および展開を容易にする。構成ファシリティは、プラント内の複数のエンティティである装置および機能に対応する1組の監視プロセス制御システム・オブジェクトを含む。装置および機能(function)に関連付けられた個別機能(functionality)は、各オブジェクトに含まれる。さらに、監視プロセス制御システム・オブジェクトは、複数の監視プロセス制御システム・オブジェクト間の関係を指定する1組のアトリビュートで、自らを関連付けられた1組のアトリビュートを有する。
構成ファシリティは、監視プロセス制御システム・オブジェクト間の結合関係に従って、監視プロセス制御システム・オブジェクトを描くためのビュー・ジェネレータも含む。1組のビューは少なくとも、プロセス/プラントとモニタされるそのコンポーネントの論理構成を表す第1のビューと、アプリケーションを実施するオブジェクトのコンピュータ・システム上の物理展開を表す第2のビューを含む。
特許請求の範囲に、本発明の特徴を詳細に記述する。本発明、ならびにその目的および利点は、以下の詳細な説明を添付の図面と併せ読むことにより、最もよく理解することができるであろう。
変更されるプロセス制御システム・アーキテクチャに適合するということに関しての周知の監視プロセス制御アプリケーションの短所を考慮して、基盤をなす既存のプロセス制御システム技術に与える影響をできるだけ小さく抑えつつ、監視プロセス制御/製造情報システム・アプリケーションのようなアプリケーションを再構築(re-architect)(たとえば、拡張(augment)や再構成(reconfigure)など)する際にユーザに自由度を提供する監視プロセス制御/製造情報システム・アプリケーションが記載されている。具体的には、本明細書で例として説明する開示のシステム・アーキテクチャは、下位の各レイヤが、すぐ上のレイヤをホストするという関係を提示する複数のレイヤを備える。しかし、こうしたホスト関係は、通信の面まで及ばないこと、したがって、ホストされるレイヤへの/からの通信は、そのホストを通過する必要がないこと、に留意されたい。開示の階層アプリケーション・アーキテクチャによれば、アプリケーション・オブジェクトは、エンジンによってホストされる。このエンジンは、たとえば、基盤ソフトウェアを備えたパーソナル・コンピュータに対応するプラットフォームによってホストされる。中間のエンジン・レイヤは、プラットフォーム・アーキテクチャからアプリケーション・オブジェクトを抽象化する。したがって、アプリケーション・オブジェクトを含む物理システム内のロケーションを、アプリケーション・オブジェクトがアドレス指定する必要はない。
開示の監視プロセス制御/製造情報アプリケーションの一態様は、そのアプリケーション・オブジェクトが常駐するコンピューティング・システムのハードウェアに関連付けられる設計上の制約から、上位レベルのアプリケーション・オブジェクトを解放するオブジェクト階層である。具体的には、監視プロセス制御アプリケーション環境に関連付けられるオブジェクトは、物理コンピューティング装置上に、複数のレイヤを備える階層の形で配置される。アプリケーション・オブジェクトは、アプリケーション・レイヤで実行される。アプリケーション・オブジェクトは、中間レイヤのエンジン・オブジェクトによってホストされる。エンジン・オブジェクトは、3レイヤの最下位レイヤに位置するプラットフォーム・オブジェクトによってホストされる。各プラットフォーム・オブジェクトは、さらに下位のレイヤのブートストラップ・オブジェクトによって起動される。プラットフォーム・オブジェクトは、アプリケーション・オブジェクトおよびエンジン・オブジェクトがその上で実行される物理コンピューティング・システム(オペレーティング・システムを含む)に対応する。したがって、アプリケーション・オブジェクトは、ホスト・アプリケーション・エンジン・オブジェクトとの適切な標準化された関係を定めさえすればよい。監視制御/製造情報システムの物理コンピューティング装置およびそのオペレーティング・システムに関する側面は、エンジン/プラットフォーム・オブジェクト構成(engine and platform object configuration)が取り扱う。システムの物理トポロジおよびアプリケーションの物理ロケーションは、アプリケーション・オブジェクトの動作からは透過的である。
開示のオブジェクトの階層ホスティング構成(layered hosting arrangement)は、監視プロセス制御アプリケーションを、そのアプリケーションがその上で実行するコンピューティング・ハードウェアおよび監視制御ネットワーク・トポロジから独立にモデル化することを可能にする。アプリケーション・モデルを物理展開構成から分離することは、必要が生じた際にアプリケーションを新しい/異なるコンピューティング・システムに移動させ、そのアプリケーションの耐用期間(course of the life)にわたって基盤ハードウェアの変化に対応していくことができる。このような能力は、試験的なインストールがコンセプトの妥当性を明らかにするために使用され、それにつれてアプリケーションが成長し、いつか、アプリケーションが正しいとされる、という手法をとる、プロセス制御/製造情報システムの分野では特に有益である。
アプリケーション・モデルは、「エリア」と呼ばれる論理コンテナ内への複数のアプリケーション・オブジェクトのグループ分けを含む。同一エリア内のすべてのアプリケーション・オブジェクトは、ソフトウェア展開方式(software deployment scheme)に従って、同一のアプリケーション・エンジン上に展開しなければならない。しかし、階層アプリケーション・アーキテクチャでは、開発の後期ステージに、アプリケーション・モデルを特定の展開モデルに結びつけることが可能である。したがって、開発者が監視レベルのシステムを展開し実行する準備を整えるまで、抽象的な「エリア」を特定のエンジンに関連付ける必要はない。
監視制御/製造情報システムのセキュリティ・モデルは、物理的ハードウェアから独立しており、したがって、監視制御/製造情報システムの構築者は、物理システム・コンポーネントを収容する物理システム内にアプリケーション・モジュールを展開するまで、セキュリティを特定の物理システム・コンポーネントに結びつける必要がない。セキュリティをシステムの特定の物理コンポーネントに後から結びつけることは、開発者が、展開されたアプリケーション・オブジェクトに基づいて、個々のシステムへの権限付与を決めることができ、特定の個々のコンピューティング・ノードに展開されたアプリケーション・オブジェクトの機能性に基づいて、開発者がセキュリティを設定する、ことを可能にする。
さらに、アプリケーション・オブジェクトによって提供される機能(ビジネス・ロジック)を、その上でアプリケーション・オブジェクトが実行するコンピュータ・システムから分離するは、複数のビュー/モデルに従って定義されたシステム/ソフトウェア構成を提示することを可能とする。「プラントを中心にした(plant centric)」アプリケーション・モデルは、システム開発者が、論理的方法でアプリケーション・モデルを構築することを可能にする。システム開発者は、個々の装置および機能を、プラント内の別個のエンティティとして定義する。関連する機能はすべて、各々のオブジェクトに含まれる。ユーザは、プラント内の個々のオブジェクトを定義した後、オブジェクト間の関係を設定(configure)(アッセンブル)する。
アプリケーション・モデルは、プラントの物理エリア、および物理エリア内の設備と機能に関する、プラントの論理構造である。技術者は、これらプラント・エリアのエンティティの挙動および結合関係を設定する。監視プロセス制御/製造情報システムは、エリアと設備、および設備自体についての包含階層(containment hierarchy)を示すアプリケーション・モデルの構成ビュー(configuration view)を提供する。
アプリケーション・モデルは、オブジェクト内にオブジェクトを包含することをサポートし、包含関係をテンプレートで指定することができる。包含関係は、監視プロセス制御/製造情報アプリケーション開発について異なる技術者による異なるレベルでの作業を活用することを容易にする。ある技術者が、ある特定の下位レベルの装置についての詳細を定義した後で、別の技術者が、その特定の下位レベルの装置の1つまたは複数のインスタンスを含む、アプリケーション内の、ユニットまたは他の装置を定義することができる。
アプリケーション・モデルは、継承による変更の伝播をサポートする。つまり、子オブジェクトは、参照される親テンプレートの定義の変更を継承する。
開発者がプロセス制御/製造情報アプリケーションの機能性を指定した後、アプリケーションは、潜在的に多数の物理コンピューティング・システムに展開される。本明細書で開示する本発明の一実施形態では、展開モデルと呼ばれる第2のタイプのシステム・ビューは、ユーザが、アプリケーションに関連する物理的PCおよび装置を構成することを可能にする。この展開モデルは、複数のPC、およびそのプラットフォーム上で動作する複数のエンジン・タイプを定義し、また外部装置の統合(external device integration)を定義する。ユーザは、特定のエンジン上で動作することになるエリアを定義し、それによって、特定のアプリケーションを物理的にどこで実行するかを決定する。監視プロセス制御/製造情報システムは、物理的PCとその物理的PC上で動作するエリアおよびアプリケーション・オブジェクトに関して階層を示展開モデルの構成ビューを提供する。開発者が展開モデルを指定/確認した後、アプリケーション・オブジェクトとエンジン・オブジェクトは、その展開モデルに従って、物理的コンピューティング装置上に展開される。
システムの再構成(再構築)することを容易にする監視プロセス制御/製造情報システムの新しいアーキテクチャについての概要を述べてきたが、次に、本発明を実施したアプリケーション・アーキテクチャを組み込んだシステムの説明用の例を備える、図1を参照する。第1のアプリケーション・サーバ用パーソナル・コンピュータ(PC)100と第2のアプリケーション・サーバ用PC102は、共同し連携しながら、第1の部分104と第2の部分106を含む分散多重レイヤ監視プロセス制御/製造情報アプリケーションを実行する。アプリケーション部分104、106は、装置統合アプリケーション・オブジェクト(device integration application object)PLC1NetworkとPLC1、およびPLC2NetworkとPLC2をそれぞれ含む。PLCxNetwork装置統合オブジェクトは、データ・アクセス・サーバ(たとえば、OPC DAServer116、118)(OPC;OLE for Process Control、OLE;Object Linking and Embedding)の構成を容易にする。OPCクライアントとして動作するPLC1およびPLC2装置統合オブジェクトは、OPC DAServer116、118のバッファ内のデータ・ロケーションにアクセスする。データ・アクセス・サーバ116、118、および装置統合オブジェクトは連携して、PLCまたはその他のフィールド装置(field device)などの外部のプロセス制御コンポーネントからデータをインポートしバッファリングする。データ・バッファには、パーソナル・コンピュータ100、102上で実行されるさまざまなアプリケーション・オブジェクト105、107がアクセスする。アプリケーション・オブジェクトの例としては、たとえば、ディスクリート装置(discrete device)、アナログ装置、フィールド参照(field references)などが挙げられる。
本発明の一実施形態によれば、アプリケーション・エンジンは、(本明細書で「エリア」と呼ぶ論理グループ化オブジェクトを介して)アプリケーション・オブジェクトをホストする。このエンジンは、監視プロセス制御/製造情報アプリケーション内ですぐ下のレベルに位置するプラットフォーム・オブジェクトによって、同様にホストされる。アプリケーション部分104、106は、汎用的なブートストラップ・コンポーネント108、110によって、同様にホストされる。上記のすべてのコンポーネントを、以下本明細書で、図2を参照しながら説明する。
本発明を実施した例示的なシステムでは、部分104、106を含む多重レイヤ・アプリケーションは、制御されるプロセスと通信可能に接続される。具体的には、第1のアプリケーション・サーバ用パーソナル・コンピュータ100は、第1のプログラマブル・ロジック・コントローラ112に通信可能に結合され、第2のアプリケーション・サーバ用パーソナル・コンピュータ102は、第2のプログラマブル・ロジック・コントローラ114に通信可能に結合される。PC100、102からPLC112、114への図示のコネクションは、論理コネクションであることに留意されたい。そのような論理コネクションは、直接的および間接的な物理通信リンクに相当する。たとえば、ある具体的な実施形態では、PLC112、114は、パーソナル・コンピュータ100、104も接続されたイーサネット(登録商標)LAN上のノードを含む。別の実施形態では、PLC112、114は、PC100、102の物理的通信ポートに直接接続される。
図1に示す例示的な実施形態では、PC100、102はそれぞれ、データ・アクセス・サーバ116、118を実行する。データ・アクセス・サーバ116、118は、PLC112、114から与えられたプロセス情報を取得/抽出し、部分104、106を含むアプリケーションのアプリケーション・オブジェクト(たとえば、PLC1Network、PLC1、PLC2Network、PLC2)にそのプロセス情報を提供する。データ・アクセス・サーバ116、118は、たとえば、OPC(OLE for Process Control)サーバである。しかし、データ・アクセス・サーバ116、118が、カスタマイズされた、また標準化された多種多様なデータ・フォーマット/プロトコルを潜在的に実行できることは、当業者には容易に理解されよう。さらに、例示的なアプリケーション・オブジェクトは、データ・アクセス・サーバ116、118へのコネクションを介して、PLCネットワーク、およびPLC自体の動作を表す。しかし、このアプリケーション・オブジェクトは、監視プロセス制御/製造情報アプリケーションのコンテクストで所望の監視制御機能およびデータ獲得/統合機能を実行する実行可能オブジェクトについての、仮想的に際限の無い広範囲のクラスを含む。
監視プロセス制御/管理情報アプリケーションは、たとえば、データベースアプリケーション・オブジェクト、およびアプリケーション・オブジェクトを生成するテンプレートを始めとするその他の関連情報に対して、監視プロセス制御/管理情報アプリケーションの構成データベース124を維持管理するデータベース(たとえば、SQL)・サーバ122を実行する構成パーソナル・コンピュータ120によって、増強される。構成データベース124はまた、ロケーションとは独立のオブジェクト名をロケーションから導出した、図1に示すシステム内のオブジェクト間でメッセージを容易に転送できるようにする、ハンドルに結びつけることを容易にするグローバル名前テーブル(global name table)125も含む。構成PC120および関連するデータベース・サーバ122は、マルチユーザ環境の管理上のモニタリング(administrative monitoring)、改定履歴管理、集中的ライセンス管理、新しいオブジェクトおよび関連ソフトウェアの展開およびインストールを含む集中的オブジェクト展開(centralized object deployment)、グローバル名前テーブル125のメンテナンス、およびオブジェクト・テンプレートおよびインスタンスのインポート/エキスポート、をサポートする。
アプリケーションの実際の構成は、分散コンポーネント・オブジェクト・モデル(DCOM;distributed component object model)プロトコルを介してデータベース・サーバ122と通信する、統合開発環境(IDE;Integrated Development Environment)127によって実施される。IDEは、アプリケーション・オブジェクトを構成し、アプリケーション・サーバPC100、102に展開するためのユーティリティである。監視プロセス制御/製造情報アプリケーションの開発者は、IDEを介して、新しいオブジェクトおよびテンプレート・タイプのインポートすること、既存テンプレートからの新テンプレートを構成すること、新しいアプリケーション・オブジェクトを定義すること、およびアプリケーション・サーバPC100、102上のホスト・アプリケーション・エンジン(図1のAppEngine1およびAppEngine2)へのアプリケーション・オブジェクトの展開、を含む多種多様なシステム設計機能を実施する。
図1に示す例示的な監視制御ネットワーク環境は、1組の操作者ステーション130、132、134も含み、これらの操作者ステーションは、PC100、102上の1組の階層オブジェクトとしてインストールされて実行される監視プロセス制御/管理情報アプリケーションによってモニタされ/制御されるプロセスまたはプロセスの一部へのビューを提供する。原料(RawMaterial)PC130は、監視される工業プロセスの原料エリアをモニタできるようにする担当者ビュー(representative view)を提供する。生産(Production)PC132は、監視される工業プロセスの生産部分についての担当者ビューを提示する。完成品(Finished Product)PC134は、完成品に関連付けられる生産ファシリティ・エリアについての担当者ビューを提供する。操作者ステーション130、132、134の各々は、個々の操作者ステーション・プラットフォームに対してホストするブートストラップを含む。操作者ステーション130、132、134の各々は、グラフィック情報を処理して、監視される工業プロセスまたはその一部についてグラフィカルに描き出すビュー・エンジンを含む。
図1に示し、本明細書で、ここまで説明したシステムは、監視プロセス制御/製造情報システム用の多重レイヤ階層アーキテクチャの一例にすぎないことに留意されたい。本発明は、開示された特定のアプリケーション/システムに限定されるものではない。たとえば、多重レイヤ・アプリケーション手法は、より下位のレイヤで、分散制御システム(DCS;distributed control system)またはプログラマブル・ロジック・コントローラ(PLC)アプリケーションにも適用可能であることが企図されている。これらの場合、DCSまたはPLC内の独自のコンピューティング・ハードウェアに対して、それぞれ固有のプラットフォームおよびアプリケーション・エンジンのそれぞれのオブジェクトが開発される。さらに、図1は、インストールされたソフトウェアと物理コンピューティング・ハードウェアとの相互関係の論理ビューとして提示されており、何らかの特定のネットワーク・トポロジを指定するものではないことにも留意されたい。寧ろ、本発明は、仮想的な任意のネットワーク・トポロジにふさわしい。実際、本発明は、制御対象プロセスに接続された単一コンピュータ・システム上で動作する制御アプリケーションにも適用可能である。
次に図2に移ると、少なくとも監視プロセス制御/製造情報アプリケーションの一部を実行するコンピュータに関連付けられた階層ソフトウェアの階層的構成を示すクラス図が示されている。各コンピュータは、階層の最下位レベルで、マイクロソフトのWINDOWS(登録商標)などのオペレーティング・システム200を実行する。オペレーティング・システム200は、ブートストラップ・オブジェクト202をホストする。ブートストラップ・オブジェクト202は、コンピュータにロードされ、オペレーティング・システム200によって実行される起動プロシージャに関連して活動化される。ブートストラップ・オブジェクト202は、プラットフォーム・クラス・オブジェクト204のホストとして、プラットフォーム・クラス・オブジェクト204の動作を開始する前に活動化しなければならない。ブートストラップ・オブジェクト202は、プラットフォーム・クラス・オブジェクトを開始させ、また停止させる。ブートストラップ・オブジェクト202はまた、プラットフォーム・クラス・オブジェクト204がホストする1つまたは複数のエンジン・オブジェクト206を開始させ、また停止させるために、プラットフォーム・クラス・オブジェクト204が利用するサービスを提供する。
プラットフォーム・クラス・オブジェクト204は、1つまたは複数のエンジン・オブジェクト206のホストとなる。本発明の一実施形態では、プラットフォーム・クラス・オブジェクト204は、1つまたは複数のエンジン・オブジェクト206に対して、特定のオペレーティング・システムを実行するコンピュータとなる。プラットフォーム・クラス・オブジェクト204は、プラットフォーム・クラス・オブジェクト204上に展開されるエンジン・オブジェクト206のリストを維持管理し、エンジン・オブジェクト206を開始させ、また停止させ、エンジン・オブジェクト206がクラッシュした場合、これを再開する。プラットフォーム・クラス・オブジェクト204は、エンジン・オブジェクト206の動作状態をモニタし、クライアントに状態情報を公開する。プラットフォーム・クラス・オブジェクト204は、プラットフォーム・クラス・オブジェクト204を実行するコンピュータ・システム上で、診断および管理タスクの実行を可能とするシステム管理コンソール診断ユーティリティ(system management console diagnostic utility)を含む。プラットフォーム・クラス・オブジェクト204はまた、分散警報サブシステム(distributed alarm subsystem)へ警報を提供する。
エンジン・オブジェクト206は、アプリケーションに関連付けられた監視プロセス制御および/または製造情報獲得機能(supervisory process control and/or manufacturing information acquisition function)を実施する1組のアプリケーション・オブジェクトをホストする。エンジン・オブジェクト206は、すべてのアプリケーション・オブジェクト210のスタートアップを開始する。エンジン・オブジェクト206はまた、スケジューラ・オブジェクトの助けを得て、アプリケーション・オブジェクト210同士の間でその実行をスケジュールする。エンジンは、アプリケーション・オブジェクトを実行のためスケジューラに登録する。スケジューラは、エンジンによって指定された構成に基づく他のアプリケーション・オブジェクトとの相対関係に従って、アプリケーション・オブジェクトを実行する。エンジン・オブジェクト206は、アプリケーション・オブジェクト210の動作をモニタし、機能不良なものを隔離状態におく。エンジン・オブジェクト206は、オートメーション・オブジェクト(automation objects)によるランタイム・アプリケーションの変更を構成ファイルにセーブ/リストアすることによって、チェック・ポイント機能をサポートする。エンジン・オブジェクト206は、アトリビュート参照(たとえば、tank1.valve.pv)をアプリケーション・オブジェクト210のうちの適切なものに参照を付ける名前バインディング・サービス(name binding service)を維持管理する。
エンジン・オブジェクト206は最終的に、アプリケーション・オブジェクトの実行をいかに起させるかを制御する。しかし、エンジン・オブジェクト206がアプリケーション・オブジェクト210に関する実行スケジュールを決定した後は、それらの実行についてのリアルタイム・スケジューリングは、スケジューラ208によって制御される。スケジューラは、メソッドRegisterAutomationObject()およびUnregisterAutomationObject()を含むインターフェースをサポートする。これらのメソッドは、エンジン・オブジェクト206が特定のアプリケーション・オブジェクトをスケジューラのスケジュール済み動作のスケジュール・リストに追加したり、またリストから削除したりすることができるようにする。
アプリケーション・オブジェクト210は、特定のプロセス制御動作(たとえば、ポンプを作動させる、弁を開くなど)、および/または情報収集/管理機能(たとえば、フィールド装置の出力信号の受信値に基づいて警報を発生させるなど)を、たとえば、工業プロセス制御システムのコンテクストで実行することを容易にするビジネス・ロジックを実行する多種多様なオブジェクトを含む。アプリケーション・オブジェクトの例として、アナログ入力、ディスクリート装置、PIDループ(PID loop)などが挙げられる。あるクラスのアプリケーション・オブジェクト210は、装置統合オブジェクト(たとえば、OPC DAServer118)を介して、PLCなどのプロセス制御システムによって供給されるデータに基づいて動作する。統合オブジェクトの機能は、プロセス制御/製造情報ソースと監視プロセス制御/製造情報アプリケーションとの間にブリッジを提供することである。
例示的な実施形態では、アプリケーション・オブジェクト210は、エンジン・オブジェクトおよびスケジューラによってアクセスされるアプリケーション・インターフェースを含む。エンジン・オブジェクトは、アプリケーション・オブジェクト・インターフェースにアクセスして、アプリケーション・オブジェクトを初期化したり、開始させたり、また停止させたりする。スケジューラは、アプリケーション・オブジェクト・インターフェースを使用して、アプリケーション・オブジェクトのスケジュールされた実行を開始する。
階層化構成の監視プロセス制御/製造情報アプリケーションの主要コンポーネントを説明してきたが、次に、図3から図7を参照する。これらは、上記のオブジェクト構造を構成するプリミティブのアトリビュートを識別する。最初に図3を参照すると、共通のオブジェクト・プリミティブ定義(common object primitive definition)が示されている。共通のプリミティブは、すべてのアプリケーション・オブジェクト(すなわち、プラットフォーム、アプリケーション・エンジン、スケジューラ、アプリケーションなど)に組み込まれる。Scriptsアトリビュート300は、アプリケーション・オブジェクトに関連付けられたスクリプトを把握するのに使用される。Scriptsアトリビュート300は、特定のオブジェクト・タイプ用に特に生成されたスクリプトに加えて、テンプレートから継承したスクリプトも含む。UDA(ユーザ定義アトリビュート)アトリビュート302は、オブジェクト用の、継承されたユーザ定義アトリビュートと新しいユーザ定義アトリビュートを参照付けする。Alarm Modeアトリビュート304は、警報を有効にするかどうか、またどの程度まで有効にするかを指定する。Based Onアトリビュート306は、オブジェクトの派生元である特定の基底テンプレートを識別する。アトリビュート308は、オブジェクト内のアトリビュート名を識別する文字列を格納する。Contained Nameアトリビュート310は、コンテナ内のオブジェクトに割り当てられた名前を識別する。たとえば、オブジェクトは、「reactor」オブジェクト内に含まれる「level」に相当するものとすることができる。Deployed versionアトリビュート312は、展開されたオブジェクトのバージョンを識別する整数を格納する。Derived fromアトリビュート314は、オブジェクトの直接の派生元であるテンプレートを識別する。Derived fromアトリビュート314の内容は、Based Onアトリビュート306の内容とは異なる。Based Onアトリビュート306は、当該オブジェクトの派生元の基底テンプレートを表す。Derived fromアトリビュート314は、当該オブジェクトを生成した直前のテンプレートを表す。たとえば、以下に示すテンプレート階層を考える。
$DiscreteDevice
$Pump
Pump001
ここで、$DiscreteDeviceは、新しいテンプレート$Pumpを派生させる基底テンプレートである。インスタンスPump001は、テンプレート$Pumpから生成される。オブジェクトPump001のアトリビュート「Derived from」は$Pumpとなる。オブジェクトPump001のアトリビュート「Based On」は$DiscreteDeviceとなる。
Relative Execution Orderアトリビュート316は、当該オブジェクトとある相対的な実行順序関係をもつ別のオブジェクトを識別する。別のオブジェクトを識別するのに加えて、アトリビュート316は、そのオブジェクト実行の相対的順序(たとえば、無し、前、後など)も識別する。相対的実行順序情報は、アプリケーション・オブジェクトの実行をスケジュールするのに利用される。Hierarchical Nameアトリビュート318は、そのオブジェクトのすべてのコンテナを含む、そのオブジェクトのフルネーム(たとえば、Reactor1.level)を格納する。IsTemplateアトリビュート320は、そのオブジェクトが、テンプレートであるか、それともテンプレートからインスタンス化されたオブジェクトであるかを示す。エリアまたはコンテナ・オブジェクト内のAlarmInhibitアトリビュート322は、エリアまたはコンテナ内のすべてのオブジェクトについて警報を抑制するためのカットアウト機能を提供する。Alarm Modeアトリビュート324は、オブジェクトの現在の警報モードを指定する。このモードは、エリアおよびコンテナが有効とされている場合、そのオブジェクトの命令されたモード(commanded mode)に基づく。無効な場合、コンテナまたは親エリアの最も無効な状態(most disabled state)が適用される。Alarm Mode Commandアトリビュート326は、そのオブジェクトの現在の命令された警報モードを指定する。
本発明の説明のための例では、オブジェクト階層がサポートされる。オブジェクトは、プラント/モデル・ビューのコンテクストでのそうした階層を、Areaアトリビュート328中で指定し、このアトリビュート328は、そのオブジェクトが属するエリアを指定する。Containerアトリビュート330は、オブジェクトを含むコンテナを指定する。先に説明したように、ホスト関係は、さまざまな展開オブジェクト間に存在する。具体的には、プラットフォームはエンジンをホストし、エンジンは(エリアを介して)アプリケーション・オブジェクトをホストする。このように、Hostアトリビュート338は、オブジェクトのホストを識別する。
Categoryアトリビュート332は、そのオブジェクトが関連するオブジェクト・クラスを指定し、それによって、局所的な関係および/または機能によってオブジェクトを体系づけることを容易にする。その値は、Category Enumアトリビュート334内に名前が列挙されているカテゴリのうちの値である。Errorアトリビュート336は、そのオブジェクトによって生じたエラーを識別する。InAlarmフラグ340は、オブジェクト内に警報が発生しているかどうかを示すブール・フラグ(Boolean flag)を格納する。このフラグは、Scan Stateフラグ342が真(オブジェクトはスキャン対象)であり、かつオブジェクトの警報が有効な場合にのみ、真となる。オブジェクトのスキャン状態は、そのオブジェクトがスキャン対象か対象外かを通知するScanStateCommand344によって変更される。
Security Group346は、オブジェクトへのアクセス/使用を特定のクラスのユーザのみに制限するために、オブジェクトに固有のセキュリティ・グループを指定することを可能にする。Descriptionアトリビュート348は、オブジェクトの短い説明を格納する領域を提供する。TagNameアトリビュート350は、オブジェクトの一意タグを指定する。Warningアトリビュート352には、オブジェクトが出したすべての警告が記入される。
本明細書で説明するすべてのオブジェクトに共通のアトリビュートについて説明したが、次に以下の本明細書で、各オブジェクト・タイプに固有の1組のアトリビュートについて説明する。まず、図4に示されたプラットフォーム・プリミティブのアトリビュートから始める。図4の中で識別されるアトリビュートは、オブジェクト/エンジン/プラットフォームのホスティング階層のサポートに関連する。図4には記されていないが、プラットフォーム・プリミティブによって、プラットフォーム・オブジェクトがコンピュータ装置の統計データをモニタ/報告できるようにする1組のアトリビュートが、提供される。図4には含まれないが、例示的なプラットフォーム・プリミティブには、コンピュータ装置の統計データに関連付けられた警報の検出および報告、ならびに統計データの保存に関するアトリビュートが含まれる。
RegisterEngineアトリビュート400には、新しいエンジンを登録するためのコマンドが格納される。RegisterEngineアトリビュート400は、展開時に、ホスト・プラットフォームにエンジンを登録するのに使用される。StartEngineアトリビュート402には、プラットフォーム上に展開された特定のエンジンを開始させるためのコマンドが格納される。StartHostedObjectsアトリビュート404には、自動スタートおよび半自動スタート・タイプのエンジンである、すべてのホストされるエンジンを開始するために、プラットフォームに渡されるコマンドが格納される。StopEngineアトリビュート406には、プラットフォーム上に展開された特定のエンジンを停止させるためのコマンドが格納される。UnregisterEngineアトリビュート308には、プラットフォーム上に先に展開されたエンジンを展開解除するためのコマンドが格納される。Engineアトリビュート410には、プラットフォーム上に展開されたすべてのエンジンのリストが格納される。EngineStatusアトリビュート412には、プラットフォームによってホストされるすべてのエンジン・オブジェクトの現在の動作状態のリストが格納される。
図5に、エンジン・プリミティブに関連付けられる1組のアトリビュートを要約して示す。External Nameアトリビュート500には、外部参照用に使用される文字列が格納される。Internal Nameアトリビュート502には、内部参照用に使用される文字列が格納される。Reference Countアトリビュート504には、エンジン・オブジェクトを参照付けするオブジェクトの数が格納される。参照付けの数が0に達した場合、エンジンの外部に、エンジン上のAutomationObjectアトリビュートを参照するクライアントはない。これは、エンジンを停止させた場合の影響度(どれだけのクライアントが影響を受けるか)を、操作者が判断するのに役立つ。Objectアトリビュート506は、エンジン・オブジェクトにホストされるすべてのオブジェクトの組を備えた配列(array)である。Startup Typeアトリビュート508は、エンジン・オブジェクトがどのようにして開始されるか(たとえば、自動、半自動、手動など)を識別する。CanGoOnscanアトリビュート510は、エンジン・オブジェクトをスキャン対象にできるかどうかを示す。BindReferenceアトリビュート512は、ハンドルへの参照(たとえば、pump001.inlet.PV)を解決するのに使用されるコマンドである。これらのハンドルは、実行中にメッセージング基盤(messaging infrastructure)によってオブジェクトを探し出すのに使用される。AutoRestartアトリビュート514には、障害の検出時にエンジン・オブジェクトを自動的に再開するかどうかを指示するブール値が格納される。CheckPointFailedアトリビュート516には、ホストされるオブジェクトに関するチェック・ポイント情報をセーブする直近の試み(last attempt to checkpoint hosted objects)がその試みの最中に失敗したかどうかを示す値が格納される。AlarmThrottleLimitアトリビュート518には、エンジン上のオブジェクトが発生させる警報を制限される(throttling of alarms)までに、エンジン・オブジェクトが1秒間に発生させることのできる警報の数(value, in alarms per second raised by a engine object)を格納する。EngineAlarmRateアトリビュート520は、直近に完了したスキャンの最中にエンジンに登録された警報の数を示す。AlarmsThrottledアトリビュート522は、直近のスキャンの最中にエンジン・オブジェクトが警報を制限したことを示す。
スクリプト実行を処理するための1組のアトリビュートが提供される。ScriptExecuteTimeoutアトリビュート524には、エンジン・オブジェクトに警報を発生させることなく、同期的スクリプトに実行を完了させるための時間の限界が格納される。ScriptStartupTimeoutアトリビュート526には、警報を発生させずに、同期的スクリプトを開始するための時間の限界が格納される。ScriptShutdownTimeoutアトリビュート528には、警報を発生させずに、同期的スクリプトを停止するための時間の限界が格納される。PublisherHeartbeatアトリビュート530には、エンジン・オブジェクトが別のエンジン・オブジェクトからのハートビート・メッセージを、そのエンジンが障害を起していると仮定せずに待つことのできる秒数に相当する数が格納される。ProcessIdアトリビュート532は、エンジン・プロセスに割り当てられた一意の識別子を識別する。
エンジン・オブジェクトはまた、アプリケーション・オブジェクトの管理に関連付けられた1組のコマンド・アトリビュートも含む。CreateAutomationObjectアトリビュート534は、アプリケーション・オブジェクトを生成するためのコマンド・アトリビュートである。DeleteAutomationObjectアトリビュート536は、アプリケーション・オブジェクトを削除するためのコマンド・アトリビュートである。StartHostedObjectsアトリビュート538は、ホスト対象アプリケーション・オブジェクトを開始するためのコマンド・アトリビュートである。
図6に移ると、スケジューラ・プリミティブ内に含まれ、スケジューラ・オブジェクト毎に固有な1組のアトリビュートが要約されている。各スケジューラ・オブジェクトは、External Nameアトリビュート600およびInternal Nameアトリビュート602を含む。StatsAvgPeriodアトリビュート604には、以下本明細書で説明するアトリビュートに格納される統計データを、スケジューラが獲得するのに要する平均期間を表す値が格納される。CheckpointPeriodAvgアトリビュート606は、現在の平均期間の間におかれるチェック・ポイント間の現在の平均時間を識別する。ExecutionTimeAvgアトリビュート608には、1スキャン・サイクルですべてのオブジェクトを実行するのに要する時間量を表す値が格納される。HousekeepingTimeAvgアトリビュート610には、日常業務(housekeeping operations)を完了するのに要する1サイクル当りの平均時間に相当する値が格納される。TimeIdleAvgアトリビュート612には、期間当りの平均アイドル時間を表す値が格納される。TimeIdleMaxアトリビュート614には、記録された最長アイドル時間を表す値が格納される。TimeIdleMinアトリビュート616には、記録された最短アイドル時間を表す値が格納される。InputMsgSizeAvgアトリビュート618には、平均期間での平均(普通の)入力メッセージ長が格納される。InputMsgsProcesssedAvgアトリビュート620には、平均期間中の1スキャン・サイクルで処理されたメッセージの全体量を表す値がバイト単位で格納される。InputMsgsQueuedAvgアトリビュート622には、平均期間中の1スキャン・サイクルで待ち行列に入れられたメッセージの平均数が格納される。InputMsgsQueuedMaxアトリビュート624には、統計データ・アトリビュートが最後にリセットされて以降の、アトリビュート622に格納された最大平均値が格納される。
InputQueueSizeMaxAllowedアトリビュート626には、ネットワーク・メッセージ交換の入力待ち行列(network message exchange input queue)に入れられるメッセージの最大許容サイズが格納される。InputQueueSizeAvgアトリビュート628には、平均期間中の入力待ち行列の平均サイズがバイト単位で格納される。InputQueueSizeMaxアトリビュート630には、統計アトリビュートが最後にリセットされて以降の、アトリビュート628に格納された最大平均値が格納される。
TimeInputAvgアトリビュート632には、現在の期間中に入力メッセージを処理するのに必要な平均時間を表す値が格納される。ObjectCntアトリビュート634には、スケジューラ・オブジェクトが現在処理しているアプリケーション・オブジェクトの数に相当する計数値が格納される。ObjectOffScanCntアトリビュート636は、現在スキャン対象外のアプリケーション・オブジェクトの数を示す。TimeOutputAvgアトリビュート638には、サイクル中に出力メッセージを処理するのに必要な平均時間量が格納される。StatsResetアトリビュート640は、スケジューラに関して説明した統計アトリビュートのうち定期的にはリセットされないもの(たとえば、最大値など)をリセットするためのリクエストを指定する。ScanCyclesCntアトリビュート642には、StatsResetアトリビュート640によって最後にアトリビュートがリセットされて以降のサイクル数を示す値が格納される。ScanOverrunsCntアトリビュート644は、最後のStatsReset以降の、すべてのオブジェクトのスキャンを完了させずに終了したスキャン・サイクルの回数を示す。ScanOverrunsConsecutiveCntアトリビュート646には、現在オーバランを連続して発生させている一連のサイクルの数が格納される。ScanOverrunHighLimitアトリビュート648には、ScanOverrunConditionアトリビュート650に格納されている警報をトリガする、連続オーバランの上側警報限界(high alarm limit)が格納される。ScanPeriodアトリビュート652には、スケジューラのサイクル時間を表す値が格納される。
特定のオブジェクト・タイプに関連付けられるアトリビュートは、特定のオブジェクト・プリミティブ・タイプのものだけには限定されないことに留意されたい。実際、すべてのオブジェクト・タイプは、少なくとも上記のプリミティブの2つの組を含む。すべてのオブジェクト・タイプは、共通オブジェクト・プリミティブを利用する。加えて、プラットフォーム・オブジェクトは、上記のスケジューラ、エンジン、およびプラットフォーム・プリミティブを含む。エンジン・オブジェクトは、スケジューラ、およびエンジン・プリミティブを含む。
図7に移ると、アプリケーション・オブジェクトに関連付けられる1組のプリミティブが示されている。アプリケーション・オブジェクトの各タイプ毎に、固有の1組のプリミティブがある。プリミティブは、業務特有のロジックと、そのプリミティブの機能に固有の1組のアトリビュートを含む。これらのプリミティブは、異なるアプリケーションオブジェクトタイプの間で再利用することができる。
アナログ装置アプリケーション・オブジェクトに関連付けられた1組の例示的なプリミティブが図7に示されている。AnalogDevice Attributesと名づけられたプリミティブ700は、クライアントが関心を持つであろうアナログ装置特有の1組のアトリビュートを含む。PV.Input701は、装置統合オブジェクト(たとえば、PLC1など)を介して、フィールド装置からデータを読み取るプリミティブである。PV.Output702は、装置統合オブジェクトを介して、そのフィールドへデータを書き込むプリミティブである。Scaling703は、入力プリミティブ(PV.Input701)から読み取ったデータに対して、線形または平方根スケーリング(linear or square root scaling)を実行するプリミティブである。LevelAlarms704は、AnalogDeviceプリミティブ700内のプロセス変数が設定値を上回った、または下回った場合に、警報を発生させるプリミティブである。PV.Roc705は、PVが事前設定された限界より速く増加または減少した場合に、警報を発生させるプリミティブである。SP706は、PV.Output702が書き込んだ値を変更したい場合に、クライアントが書き込むプリミティブである。PVDev707は、フィールド装置から(プリミティブ701を介して)読み込んだ値が、フィールド装置に(プリミティブ702を介して)書き込まれた値からある量だけずれている場合に、警報を発生させるために使用されるプリミティブである。CtrlTrack708は、設定点およびPVプリミティブが、外部装置によって引き起こされる変化を追跡できるようにするプリミティブである。本発明を実施する監視プロセス制御/製造情報アプリケーションの基本的な構成要素について説明してきたが、次に、そうしたアプリケーションを実行する際に用いられる方法を要約した1組のシーケンス図に話を進める。図8に移ると、階層ホスティング関係を実施するアプリケーションを開始させ、また停止させるための諸ステップを描いたシーケンス図が示されている。ステージ800で、コンピュータ・システム上のブートストラップ・プロセスが、ロードされたプラットフォーム・オブジェクトにプラットフォーム開始リクエストを発行する。それに応答して、ステージ802で、プラットフォーム・プロセスが、プラットフォーム・オブジェクトがホストするすべてのアプリケーション・エンジンを開始させるようブートストラップに要求するコールを、ブートストラップ・インターフェースに発行する。ステージ804で、ブートストラップ・プロセスが、先に論じたアトリビュートを有するアプリケーション・エンジン・オブジェクトを生成する。
ステージ806で、アプリケーション・エンジン・プロセスが、ホスト対象であるすべてのアプリケーション・オブジェクトを開始させる。アプリケーション・エンジンはまた、ステージ808で、ホスト対象のアプリケーション・オブジェクトをスケジューラ・プロセスに登録する。アプリケーション・オブジェクトを登録することで、そのアプリケーション・オブジェクトは、スケジューラが各スキャン・サイクル中にスキャンする1組のアプリケーション・オブジェクトに追加される。ステージ810で、アプリケーション・エンジンが、スケジューラに、開始および登録したアプリケーション・オブジェクトの実行/スキャンを開始するコマンドを発行する。その後、ステージ812で、スケジューラが、登録したアプリケーション・オブジェクトを実行する。こうした実行は、各スキャン・サイクル中に周期的に行われる。
スケジューラは、停止コマンドを受信するまで、監視プロセス制御/製造情報システム・アプリケーションに従って、周期的に登録されたアプリケーション・オブジェクトのスキャンを繰り返す。具体的には、ステージ814で、ブートストラップ・プロセスが、オペレーション・システムの停止コマンドに応答して、プラットフォーム・プロセスに停止コマンドを発行する。ステージ816で、プラットフォーム・プロセスが、プラットフォーム・プロセスがホストするすべてのエンジンの停止を開始させるエンジン停止コマンドを、ブートストラップに返す。それに応答して、ステージ818で、ブートストラップが、アプリケーション・エンジンに停止を求めるリクエストを発行する。ブートストラップは、エンジンが停止するのを待機する。しかし、ある期間が過ぎてもアプリケーション・エンジンが停止しない場合、ブートストラップは、オペレーティング・システムにアプリケーション・エンジン・プロセスを停止させるようリクエストする。
正常動作状態の下では、ステージ820で、アプリケーション・エンジンが、エンジンがホストするアプリケーション・オブジェクトを登録解除するためのコマンドを、スケジューラに発行する。さらに、本発明の実施形態では、エンジンは、ホスト対象のアプリケーション・オブジェクトに停止を求めるリクエストを発行する。しかし、本発明の代替実施形態では、停止リクエストは、スケジューラが登録解除コマンドに応答して発行する。
上で説明した例示的な実施形態では、エンジン・オブジェクトとプラットフォーム・オブジェクトは、ブートストラップ・プロセスと通信を行い、アプリケーションがその上で実行している物理的なコンピューティング装置構成に関連する監視プロセス制御/製造情報システム・アプリケーションのいくつかの態様を処理していることに留意されたい。しかし、アプリケーション・オブジェクト自体は、プラットフォームとは独立のインターフェースによって、エンジンおよびスケジューラのみと通信を行う。アプリケーション・オブジェクトをホストする1つまたは複数のエンジン・オブジェクトは、アプリケーション・オブジェクトがその上で実行されるコンピュータ・システムの特性から、アプリケーション・オブジェクトを分離する。したがって、アプリケーション・オブジェクトは、物理的なコンピューティング装置構成とは独立に実行される。アプリケーション・オブジェクトは、同一エリア内のその他のアプリケーション・オブジェクトとは同一エンジン上で共に実行するよう制約を受けるが、システム内の複数の可能なエンジンおよび/またはプラットフォームのうちの特定の1つの上で実行すべきとの要件による制約を受けない。したがって、1組のアプリケーション・オブジェクトを備えるエリアの移動(moving)は、影響を受けるエンジン上で動作している他のアプリケーション・オブジェクトの実行をできるだけ妨げないようにして行われる。
図9に移ると、アプリケーション・オブジェクトのホスト・エンジン・オブジェクトからの動作独立性(operational independence)と、アプリケーション・オブジェクトを別のエンジン・オブジェクト上に再展開できることを説明するシーケンス図が示されている。最初にステージ900で、エンジンAが、アプリケーション・オブジェクトAの周期的実行/スキャンを始める開始コマンドを、スケジューラAに発行する。ステージ902で、スケジューラは、周期的にアプリケーション・オブジェクトAを活動化して、複数のアプリケーション・オブジェクトを備えるアプリケーションに関連付けられたその業務ロジックを実行する。
その後、アプリケーション技術者が、アプリケーション・オブジェクトAを異なるコンピュータ・プラットフォーム上のエンジンBに移動させることにしたとする。そのような変更を行う1つの理由は、システムが大きくなった場合に、コンピュータ装置上の作業負荷を軽減するためである。ステージ904で、ユーザが、アプリケーション・オブジェクトAを移動させるリクエストを、エンジンAに発行する。それに応答して、ステージ906で、エンジンAが、アプリケーション・オブジェクトAのスキャンを停止させるリクエストを、スケジューラAに発行する。ステージ908で、エンジンAは、アプリケーション・オブジェクトAに停止(シャットダウン)を求めるコマンドを発行する。それ以外の点では、エンジンAおよびスケジューラAの動作は、アプリケーション・オブジェクトAの移動による影響を受けない。
本発明の一実施形態では、アプリケーションは、複数のコンピューティング装置上に分散され、各コンピューティング装置は、アプリケーション・オブジェクトの実行を容易にするアプリケーション階層を成すプラットフォーム、エンジン、およびスケジューラ・オブジェクトを備えている。下位レベルのホスティング機能を複数のハードウェア・プラットフォームにわたって複製することは、アプリケーションの動作に影響を与えることなく、アプリケーション・オブジェクトの再配置を可能にする、ある程度のプラットフォームの独立性を提供する。たとえば、ステージ910で、ユーザは、アプリケーション・オブジェクトAを異なるコンピュータ上のエンジンBに追加する。初期化ステージ912には、たとえば、アプリケーション・オブジェクトを開始する前に、アプリケーション・オブジェクトが実行するカスタマイズされた初期化動作(たとえば、アプリケーション・オブジェクトが使用するクラス変数、キャッシング・インターフェースの初期化など)が含まれる。ステージ914で、エンジンBが、アプリケーション・オブジェクトAに開始コマンドを発行する。この時点で、そのオブジェクトは、そのプリミティブのすべてが初期化されていて、これらのプリミティブ内で管理されるアトリビュートに基づいて、最初の計算を達成することができるとものとする。ステージ916で、エンジンBが、実行中のアプリケーション・オブジェクトAを、新しいコンピューティング・プラットフォーム上のスケジューラBに登録する。その後、ステージ918で、スケジューラBは周期的に、アプリケーション・オブジェクトAにその業務ロジックを実行するよう指示する。アプリケーション・オブジェクトを実行した結果は、局所的に、また各エンジンを接続するネットワーク全体に提供される。したがって、アプリケーション・オブジェクトAをエンジンBに再展開したとしても、アプリケーション・オブジェクトAに関するデータアクセスには影響を及ぼさない。
メッセージ交換(message exchange)を介したオブジェクト間通信
本発明の一実施形態では、アプリケーション・オブジェクトは、物理アドレスではなく論理名で、他のオブジェクトを参照する。したがって、同一アプリケーション内の複数のアプリケーション・オブジェクト間の通信は、アプリケーション・オブジェクトに関しては、そのアプリケーション・オブジェクトを含むその基礎をなすネットワークの物理構成から分離される。プラットフォームおよびエンジン・オブジェクト内に組み込まれた、メッセージ交換と呼ばれるアプリケーションのコンポーネントは、アプリケーション・オブジェクトが、その分散アプリケーションを実行するネットワーク内のどこに位置する他のオブジェクトからデータを抽出(取得)したり、そこへデータを送信(設定)したりすることができる。メッセージ交換は、相手を物理ネットワーク・アドレスではなく論理名で指定することのできるピアツーピアの通信基盤である。したがって、アプリケーション・オブジェクトは、データ・リクエストの受信相手の物理ロケーションを考慮することなく、通信を行うことができる。これによって、アプリケーション・オブジェクトが最終的にどこに展開されるかにかかわらず、アプリケーションのアプリケーション・オブジェクト・レイヤを配置することも可能になる。本発明の一実施形態では、メッセージ交換は、アプリケーション・エンジンが実行するローカル・メッセージ交換(LMX)と、分散アプリケーションを実行する、ネットワークを介して接続されたコンピューティング装置間で名前付きリクエストを通信できるようにするプラットフォームによって実行されるネットワーク・メッセージ交換(NMX)と、に分けられる。本発明のさらに別の実施形態では、LMXとNMXの機能は、エンジンによって実行される。このような構成にすることによって、プラットフォーム・オブジェクトがNMXを実行するイベントで必要になる、余計なプロセス間通信を回避することができる。
エンジン・オブジェクト(たとえば、アプリケーション・エンジン・オブジェクト)内に組み込まれたLMXは、他のオブジェクトのアトリビュートとして維持管理されているデータに、アプリケーション・オブジェクトがアクセスできるようにするサービスを提供する。LMXを使用して対象データにアクセスする場合、アプリケーション・オブジェクトは、オブジェクトに関連付けられた1データを表す文字列(たとえば、「ObjectB.AttributeA」の形式で指定されるアトリビュート)を指定する。LMXは、この文字列を用いて、(ネットワーク内の別のコンピューティング装置上に位置する対象オブジェクトにアクセスするために、プラットフォームが提供するNMXサービスを潜在的にリクエストする)オブジェクトに関連付けられたデータを探し出す。LMXは、オブジェクトに関連付けられたデータを、そのデータを要求したアプリケーション・オブジェクトに返す。さらに、メッセージ交換は、メッセージ配信の認証を保証する。したがって、アプリケーション・オブジェクトが、メッセージを他のアプリケーション・オブジェクトに送信すると、送信元オブジェクトは、メッセージ送信先がメッセージを受信したかどうかの確認を受信する。
アプリケーション・エンジンのLMXは、たとえば、1組のインターフェースを含む。1組のインターフェースには、IMxSupervisoryConnectionとIMxUserConnectionが含まれる。IMxSupervisoryConnectionインターフェースは、アプリケーション・オブジェクトがプラント内の物理装置からの情報にアクセスする際に使用するメソッドを定義する。このインターフェースで使用されるメソッドには、SupervisoryRegisterReference、SupervisoryGetAttribute、およびSupervisorySetAttributeがある。SupervisoryRegisterReferenceメソッドは、アトリビュートの値へのアクセス要求がこれから来ることをメッセージ交換に通知するために、アプリケーション・オブジェクトによって呼び出される。SupervisorySetAttributeメソッドは、先のSupervisoryRegisterReference呼び出しで指定されたアトリビュートの値を変更するようメッセージ交換に指示するために、アプリケーション・オブジェクトによって使用される。SupervisoryGetAttributeメソッドは、先のSupervisoryRegisterReference呼び出しで指定されたアトリビュートの値を取り出すようメッセージ交換に指示するために、アプリケーション・オブジェクトによって使用される。
IMxUserConnectionインターフェースは、アプリケーションがプラント内の物理装置から取り出されたデータを視覚化する際に使用するメソッドを定義する。このインターフェースで使用されるメソッドには、UserRegisterReference、UserGetAttribute、およびUserSetAttributeがある。これらのメソッドは、先に説明したIMxSupervisoryConnectionインターフェースのメソッドと非常に類似している。1つの違いは、IMxUserConnectionインターフェース・メソッドのメソッドが、コールバック機構を介してデータ更新を可能にして、ユーザ・インターフェース・クライアントに応じるのに対して、IMxSupervisoryConnectionでは、ポーリング機構が利用されることである。
メッセージ交換の機能性を実現するために、1組の構造が利用される。MxReference構造は、IMxReferenceインターフェースを実装するマイクロソフトのコンポーネント・オブジェクト・モデル(COM)であり、値がアプリケーション・オブジェクトによってアクセスされるオブジェクトのアトリビュートを識別し、メソッドSupervisoryRegisterReferenceおよびUserRegisterReferenceに渡される。MxReferenceHandle(整数値)は、メッセージ交換よって使用され、MxReferenceによって参照される値を取り出すロケーション透過な手段をアプリケーション・オブジェクトに提供する。SupervisoryRegisterReferenceコールまたはUserRegisterReferenceコールが正常終了したときに、メッセージ交換は、アプリケーション・オブジェクトにMxReferenceHandleを返す。MxReferenceHandleは、アプリケーション・オブジェクトによって、アトリビュートの取得および設定を行う、UserSetAttribute、UserGetAttribute、SupervisorySetAttribute、SupervisoryGetAttributeなどのメソッド・コールに渡される。
MxHandle構造は、オブジェクトのアトリビュートのプロパティを識別する。MxHandleは、オブジェクトが属するプラットフォームおよびエンジンを識別する。MxHandleは、2つの構造、MxAutomationObjectHandleおよびMxAttributeHandleを備える。MxAutomationObjectHandleは、システム全体のオブジェクトのロケーションを表すのに使用されるデータ構造である。MxAttributeHandleデータ構造は、オブジェクト内のアトリビュートのプロパティを識別するのに使用される。MxAttributeHandle構造は、速やかにオブジェクトのアトリビュートを探し出すために、メッセージ交換によって、内部的に、使用される。
MxAutomationObjectHandleデータ構造は、5つのフィールド、galaxy、platform、engine、object、およびsignatureを含む。galaxyフィールドは、参照されるオブジェクトが属する全体的なシステムを識別する。platformフィールドは、参照されるオブジェクトが関連するプラットフォーム・オブジェクトを識別する。engineフィールドは、オブジェクトのエンジンを識別する。objectフィールドは、オブジェクトを識別する。signatureフィールドには、オブジェクト名から派生し、オブジェクトの再配置時に発生し得る構成上の不整合を防止する値が格納される。
MxAttributeHandleデータ構造は、7つのフィールド、primitiveID、attributeID、propertyID、index1、index2、index3、およびsignatureを含む。primitiveIDフィールドは、オートメーション・オブジェクト内のプリミティブを識別する。プリミティブは、たとえば、アプリケーション・オブジェクト内の特定の動作を実行するヘルパ・オブジェクト(helper object)である。attributeIDフィールドは、識別されたプリミティブ内の特定のアトリビュートを識別する。propertyIDフィールドは、アトリビュートのプロパティを識別する。index1、index2、index3フィールドは、最高3次元の配列に対するインデクスを提供する。signatureフィールドには、MxAttributeHandleの内容から派生した、構成上の不整合を防止するためのチェックサム値が格納される。
本発明の実施形態では、メッセージ交換は、追加のデータ構造およびインターフェースを含むことに留意されたい。そうした追加のインターフェースおよび構造は、当業者には周知であろう。さらに本発明は、監視プロセス制御/製造情報アプリケーション内の1組のアプリケーション・オブジェクトのオブジェクト間通信向けに、ハードウェア/展開とは独立のメッセージ・サービスをメッセージ交換を利用して提供するシステムに限定されるものでないことにも留意されたい。
複数ビュー/後段階でのモデル展開の設定
提案されるアプリケーション・アーキテクチャの別の態様は、オブジェクト間の関連付け(associations)の指定である。以下本明細書で論じるこの関連付けは、本明細書で統合開発環境(IDE)と呼ぶ構成コンポーネントが、1組の関連する複数のオブジェクトを、少なくとも(論理)モデル・ビュー(model view)と(物理コンピューティング)展開ビュー(deployment view)を含む多様なビューで、フィルタリングして表示することができる。IDEは、アプリケーションの構成についてその表示されたビューを通して、ユーザが、多数のコンピューティング装置を備えるコンピュータ・ネットワーク内のアプリケーションを設計し、展開することを可能にする。
アプリケーション構成は、構成データベース124内に「パッケージ(package)」として格納される。パッケージ・フレームワーク・サブ・システム(package framework subsystem)はインターフェースを提供し、IDEはこれを用いて、パッケージのオブジェクトを格納し、取り出すことができる。パッケージ・フレームワークは、オブジェクトと他のオブジェクトとの関連付け/関係(associations/relationships)に関するパッケージ・データおよび知識(knowledge)を格納するのに、リレーショナル・データベースを利用する。IDEは、あるオブジェクトとの指定された関連付けに基づくオブジェクトのリストを転送するよう、パッケージ・フレームワークにクエリを発行する。たとえば、IDEは、指名したエンジンがホストするオブジェクトをパッケージから取り出すよう、パッケージ・フレームワークに要求することができる。
開発者は、前述したオブジェクト間の関連付け(または「関係」)を、IDEおよびパッケージ・マネージャを介して構築する。こうした関連付けには、たとえば、以下の事前定義された割り当て関係、すなわち、ホスト、エリア、コンテナ、エンジン、およびプラットフォームが含まれる。これらの関係の各々について、以下本明細書で論じる。
ホスト関係は、オブジェクトがどこで実行されるかを示すために、実行時に使用される。さらに、オブジェクトは、そのホストが展開されないうちは展開できない。アプリケーション・オブジェクトは、エリア・オブジェクトによってホストされ、エリア・オブジェクトは、エンジン・オブジェクトによってホストされ、エンジン・オブジェクトは、プラットフォーム・オブジェクトによってホストされる。エリア関係は、オブジェクトを論理グループに分類し、エリアの下にまとめられたオブジェクトが発生させるイベントおよび警報を収集する手段を提供する。コンテナ関係は、2つのオブジェクト間の緩やかな結合を指定し、アプリケーション・ロジックのコンテクストにおいてのみ意味をもつ。たとえば、弁(Valve)オブジェクトは槽(Tank)オブジェクトの中に含まれる。包含されるオブジェクトは、そのオブジェクトのコンテナとの関係で、階層名(hierarchical name)を獲得することができる。たとえば、入口弁(inlet)として機能する弁は、別名「inlet」を割り当てられ、階層名「Tank.Inlet」を受け取る。オブジェクトのエンジンは、そのオブジェクトを実行する実際のエンジンである。オブジェクトのプラットフォームは、そのオブジェクトが展開されたコンピュータ装置上で動作する唯一のプラットフォーム・オブジェクトである。オブジェクトは、これら5つの関係をすべてもつことができるが、1つのオブジェクトがこれらの関係のうちの任意の1つに関連付けられるだけである。たとえば、(一つの)アプリケーション・オブジェクトは、1つのエリアにしか割り当てることができない。
モデル・ビューは、制御されるプラント・プロセス内にあるプラント/プロセス設備間の論理的な関連付け、たとえば、物理的なプラント配置図表現、の形でアプリケーションを描き出す。展開ビューは、物理コンピュータ装置と、モデル・ビューで識別されるインスタンス化されたオブジェクトの、コンピュータ装置およびそのコンピュータ装置上で実行されるエンジンへの割り当てを描き出す。派生ビュー(derivation view)は、モデル・ビュー要素の機能を実行するために、テンプレートからインスタンス化されたオブジェクトのソース(基底テンプレートからインスタンスへ継承されたプロパティの関係)を描き出す。
たとえば、図1には、2台のアプリケーション・サーバ・コンピュータ100、102に物理的に展開されたアプリケーションが示されている。あるいは、アプリケーションは、そのアプリケーションによる監視プロセス制御の実行および/または製造情報の抽出におけるアプリケーション・オブジェクトの役割を視覚的に表現することによって、ユーザに提示される。次に図10に移ると、プラント・プロセス・アプリケーションが、プラント・プロセスにおけるアプリケーション・オブジェクトの役割に基づいて、プラント・モデルで表現されている。この説明のための例は、本発明の例示的な実施形態を説明的に表現する目的で規模を小さくしてある。当業者が容易に理解するように、本発明は、この例よりもはるかに複雑な多種多様な工業用/プラント用のモニタ/制御アプリケーションに適用可能である。
制御出口弁を有するホッパH1 1000は、左右に移動または停止するように制御可能なコンベヤC1 1002に原料を供給する。原料は、コンベヤC1 1002によって、ミキサM1 1004およびミキサM2 1006の中に落とされる。原料は、ミキサM1 1004の弁V1 1012およびミキサM2 1006の弁V2 1014を開放することによって、各ミキサ内部に流れ込むようにされる。ミキサM1 1004およびミキサM2 1006はそれぞれ、制御可能な撹拌器A1 1008およびA2 1010を含む。混合された原料は、ホッパH2 1016およびH3 1018に落とされる。ホッパH2 1016およびH3 1018を選択的に開放して、混合された製品を、右に移動または、停止するコンベヤC2 1020の上に落とす。コンベヤC2 1020は、移動中であれば、混合された原料を昇降機E1 1022の上に落とす。昇降機E1 1022は、混合された原料を右に移動するコンベヤC3 1024の上に降ろす。コンベヤC3 1024は、左右に移動可能で、混合された製品を第1の2状態ドアD1 1028と第2の2状態ドアD2 1030とに分配することのできる分配コンベヤC4 1026の上に、原料を降ろす。ドアD1 1028は、完成品をビンB1 1032またはビンB2 1034に送り出すように制御可能である。ドアD2 1030は、完成品をビンB3 1036またはビンB4 1038に送り出すように制御可能である。
図10に示した上記の加工ラインは単純であり、それゆえ、流れを追うのも比較的簡単であるが、大抵の場合、工程は非常に複雑であり、数百あるいは数千の異なるセンサや制御された構成要素を含む。そうした場合、センサや制御された構成要素に対応するアプリケーション・オブジェクトは、論理的にエリアにグループ分けされる。アプリケーション・オブジェクトの論理的グループ化は、実行時に、警報およびイベント管理に関して特定のアプリケーション・オブジェクトを一様に取り扱うために利用される。たとえば、あるエリア・オブジェクト内の1アトリビュートの指定次第で、そのエリア内ではすべての警報を無効にすることができる。ホスト・エリアとホストされるオブジェクトとの適合性は、ホストされるオブジェクトの「必要とされるホスト機能」と、ホスト・エリア・オブジェクトが指定する「サポートする機能(supported features)」とを調べることにより決定される。これらのオブジェクト・アトリビュートは、オブジェクトを構成するときに定められる。「必要とされるホスト機能(required host features)」が、「サポートする機能」と合致している場合、ホスト割り当ては、ホストされるオブジェクトに適切な値を割り当てることによって完了する。オブジェクトは、アプリケーションまたはエリア・オブジェクトの共通プリミティブのAreaアトリビュート328にエリア名を指定することによって、エリア内に配置される。
エリア自体も、階層構成内の別のエリア内にグループ化することができる。エリアを別の「ホスト」エリアに割り当てるには、たとえば、ホストされるエリア・オブジェクトのAreaアトリビュート328にホスト・エリア名を指定する。エリアとサブ・エリアの関係にあるエリア同士を、同一エンジン上で実行する必要はない。したがって、監視プロセス制御/製造情報アプリケーションのアプリケーション・オブジェクトを複数のプラットフォーム・オブジェクト(複数のコンピュータ装置に相当)とエンジン・オブジェクトを含むシステム内に展開する場合、エリア内のサブ・エリアを異なるアプリケーション・エンジンに割り当てることができる。しかし、本発明の一実施形態では、サブ・エリア内に指定される各アプリケーション・オブジェクトは、同一アプリケーション・エンジン上に展開するという制約を設ける。この制約は、ノード間通信遅延を発生させることなく、エリア内のすべてのアプリケーション・オブジェクトを処理することを確実にする。
エリア・オブジェクトは、たとえば、上記の機能性の実施を容易にするアトリビュート、すなわち、alarm informationアトリビュート、disable all alarmアトリビュート、disable the display of all alarmsアトリビュート、sub−area listアトリビュートを含む。
図11に移ると、図10の関連するプロセス・コンポーネントを、論理的にエリアにグループ分けした様子が示されている。改定されたプロセス説明図では、論理的にグループ分けされた制御されるプロセス・コンポーネントを備える一連のエリアとして、システムが描いてある。原料貯蔵エリア1100は、ホッパH1 1000を含む。生産エリア1102は、コンベヤC1 1002、ライン1エリア1104、およびライン2エリア1106を含み、ライン1エリアは、ミキサM1 1004、弁V1 1012、およびホッパH2 1016を含み、ライン2エリアは、ミキサM2 1006、弁V2 1014、およびホッパH3 1018を含む。配送エリア1108は、コンベヤC2 1020、昇降機E1 1022、コンベヤC3 1024、コンベヤC4 1026、2状態ドアD1 1028、および2状態ドアD2 1030を含む。完成品貯蔵エリア1110は、ビンB1 1032、B2 1034、B3 1036、およびB4 1038を含む。1組のサブ・エリアは、1つのプロセス・プラント・エリア1120の下にグループ化される。
例示的なプラント・プロセスと、そのプラント・プロセスに関連するアプリケーションを表示するための2つの択一的方法(すなわち、プラント・モデル・ビューとアプリケーション・オブジェクト展開ビュー)を説明してきたが、次に、これら2つの択一的ビューによってアプリケーション・コンポーネントを表示する、構成ユーティリティ・インターフェースについて説明する。図12を簡単に参照すると、構成ユーティリティイが生成した未完成のモデル・ビュー・ユーザ・インターフェースによって描かれた、ツリー形式で表現したエリア階層が示されている。このツリー構造は、図11に描かれたプロセス・プラント内で示されたエリアの上位レベルのモデル・ビューを提示している。このモデル・ビューは、識別された各エリアにグループ分けされたアプリケーション・オブジェクトと、アプリケーション・オブジェクト同士の包含関係を識別していないので、未完成である。
例示的なツリー構造を参照すると、プロセス・プラント・エリア1120に対応するProcessPlantノード1200が、階層エリア表現の最上位レベルとして指定されている。プロセス・プラント・エリア1120内でグループ分けされたサブ・エリアに対応する1組の第2レベルのノードは、ProcessPlantノード1200から枝分れしている。RawMaterialStoreノード1202、Productionノード1204、Distributionノード1206、FinishedProductStoreノード1208はそれぞれ、原料貯蔵エリア1100、生産エリア1102、配送エリア1108、完成品貯蔵エリア1110に対応する。Productionノード1204から枝分れするLine1ノード1210、Line2ノード1212は、図11において生産エリア1102内でグループ分けされたライン1エリア1104、ライン2エリア1106に対応する。このビューは、技術者が、警報の挙動などの、アプリケーション・オブジェクトを制御する方針を定めるための論理グループ分けを、素早く、識別し、指定する(明示する)ことができる。
識別されたエリア内のアプリケーション・オブジェクトおよびコンパウンド(compound)を識別する、図12のモデル・ビューの拡張版について説明する前に、テンプレートからのオブジェクトの派生について論じる。図10内で識別される各構成要素は、1つのアプリケーション・オブジェクトに対応する。本発明の一実施形態では、アプリケーション・オブジェクトは、オブジェクト・テンプレートからインスタンス化される。派生ビューには、アプリケーションの現モデルによって指定されるアプリケーション・オブジェクトの派生元であるすべてのタイプのテンプレートが示される。
アプリケーション・オブジェクトがそこから派生する1組の候補テンプレート(candidate template)は拡張性をもつ。ユーザには、基底テンプレートと、ユーザがそこからアプリケーション・オブジェクトを構築するカスタマイズされた新しいテンプレートを定義するためのエディタと、を備えたツールキットが提供される。基底テンプレートの例としては($はテンプレートであることを表す)、図10に描かれた主コンベヤおよび弁を表すアプリケーション・オブジェクトを生成するように構成できる状態機械である$DiscreteDevice、および共通プリミティブのみを含む単純なオブジェクト・テンプレートである$UserDefinedが挙げられ、ユーザは、これらにビンやホッパに対応するアプリケーション・オブジェクトをモデル化するためのスクリプトやアトリビュートを追加することによって、構成環境内で、拡張(テンプレート)を構築する。
図13に移ると、生成された派生ビューによって描かれた例示的な派生ビューが、説明のために図示されている。図13を参照すると、図10に示す例に関して、ユーザが、$DiscreteDevice基底テンプレートから、$Valve、$SliceGate、$Agitator、および$Conveyorのカスタム・アプリケーション・オブジェクト・テンプレート・タイプを派生させている。さらに、$Conveyorテンプレートの下に、$SingleDirectionConveyor、$BiDirectionConveyor、および$Elevatorテンプレート・タイプが定義されている。$UserDefinedテンプレートの下では、$Vesselアプリケーション・オブジェクト・テンプレートが派生している。$Vesselテンプレートはさらに、$Hopperおよび$Binのアプリケーション・オブジェクトを派生するように再定義されている。図13を参照すると、基底テンプレートが、個々のテンプレートのユーザ指定に基づいて構成ビュー・ジェネレータが描いた階層派生ツリー(hierarchical derivation tree)の最上位レベルを占めている。基底テンプレートから派生したオブジェクト・テンプレートは、基底テンプレート・ノードから伸びる枝によって識別される。図13に図示するように、オブジェクトを他の派生オブジェクトから派生させることが可能である。そのような場合、子は親テンプレートの指定された特性を継承する。子と親テンプレートの間の派生関係は、テンプレート・オブジェクトのDerived fromアトリビュート314に登録される。
(アプリケーション・オブジェクトのContainerアトリビュート330で指定された)アプリケーション・オブジェクトの包含、および1組の定義済みオブジェクト・テンプレートからのコンパウンド・オブジェクトの生成が、本明細書で開示されるテンプレートアーキテクチャの別の態様である。本発明の一実施形態では、包含は同一オブジェクト・タイプに制限される。したがって、エリア・オブジェクトは、エリア・オブジェクトのみを含むことができ、アプリケーション・オブジェクトは、アプリケーション・オブジェクトのみを含むことができる。他のオブジェクトを含むオブジェクトを、本明細書では「コンパウンド(compounds)」と呼ぶ。他のオブジェクトを含むためだけに存在するオブジェクトを、「コンポジット(composite)」と呼ぶ。
簡単に図14aおよび図14bを参照すると、コンパウンド・アプリケーション・オブジェクト・テンプレートの例、この場合は、タグ名「Inlet」を割り当てられた弁オブジェクト、オブジェクト名と同じタグ名「Agitator」をもつ撹拌器オブジェクト、およびタグ名「Vessel」を割り当てられたミキサ・オブジェクトを含む、$MixerVesselコンパウンド・オブジェクト・テンプレートが提供されている。包含されるこれら3つのオブジェクトの各々に対応したテンプレートのContained Nameアトリビュート310。完全な階層タグ名(たとえば、MixerVessel.Inlet)は、包含される3つのオブジェクト各々のHierarchical Nameアトリビュート318に格納される。包含される各オブジェクトのContainerアトリビュート330には、文字列「MixerVessel」が割り当てられる。図14aには、図10に描かれた、ミキサ槽装置を含むプロセス・プラントの一部が、概略的に描かれている。図14bには、$MixerVesselアプリケーション・オブジェクト・テンプレートとそれが包含する(改名された)アプリケーション・オブジェクの間の包含関係を示す、コンパウンド・テンプレートのモデル・ビューが示されている。本発明の一実施形態では、実際のアプリケーション内でインスタンス化がなされると、コンパウンド・アプリケーション・オブジェクトに含まれるすべてのアプリケーション・オブジェクトは、アトリビュート338に同一ホストを(また、要件によりアトリビュート328に同一エリアを)指定する。この包含階層は、(展開制約に従うことを条件に)他のオブジェクトにも同様に適用可能であり、(数多くのより小さなアプリケーション・オブジェクトを含む)論理構成要素の生成をサポートすることによって、システム開発の際にシステム開発者を支援する。
本発明の一実施形態では、IDEによってサポートされる「包含(contain)」機能が、グラフィカル・ユーザ・インターフェースの「ドラッグ・アンド・ドロップ」操作を介して、オブジェクト間の包含関係の設定を容易にする。ソースとターゲット(コンテナ)アプリケーション・オブジェクトの間の包含関係を設定するために、開発者は、ユーザ・インターフェース上に表示されているソース・アプリケーション・オブジェクトを選択し、そのソース・アプリケーション・オブジェクトをターゲット(コンテナ)オブジェクトの上までドラッグし、そのソース・アプリケーション・オブジェクトをターゲット・アプリケーション・オブジェクトの上にドロップする。IDEは、2つのオブジェクト同士の適合性(すなわち、ともにアプリケーション・オブジェクトであること)を確認した後、(パッケージ・マネージャ・ユーティリティを用いて)ソース・オブジェクト内のHost、Area、Containerアトリビュートを設定する。具体的には、Areaアトリビュート328には、ターゲット・オブジェクトのエリアが設定され、Hostアトリビュート338には、ターゲットのホストが設定され、Containerアトリビュート330には、ターゲット・オブジェクトの名前が設定される。この時点で、ソースのContained Nameアトリビュート310およびHierarchical Nameアトリビュート318にも、開発者によって提供される名前が入れられる。
図13に戻ると、$MixerVesselコンパウンド・アプリケーション・オブジェクト・テンプレートが、$UserDefined基底テンプレート・ノードの下の枝に割り当てられ、そのコンパウンドのアプリケーション・オブジェクト・テンプレート要素間の包含関係を指定している。さらに、$Valveから派生した$MixerVessel.Inletテンプレートが、$Valveテンプレート・ノードの下に展開されている。$Vesselから派生した$MixerVessel.Vesselテンプレートが、$Valveテンプレート・ノードの下に展開されている。$Agitatorから派生した$MixerVessel.Agitatorテンプレートが、$Agitatorテンプレート・ノードの下に展開されている。この包含関係は、各コンパウンド要素のContainerアトリビュート330に$MixerVesselテンプレート・オブジェクトを指定することによって登録される。この包含関係は、図13の派生ビュー・ツリーにおいて、派生ビュー・ツリー内での$MixerVessel.Inlet、$MixerVessel.Agitator、$MixerVessel.Vesselというオブジェクト・テンプレート表現における「$MixerVessel」のプリアンブルによって、示されている。
アトリビュート・ロッキング(attribute locking)、およびテンプレート間の変更伝播へのその影響が、本明細書で開示する例示的な構成ユーティリティについての派生アーキテクチャのまた別の態様である。派生アーキテクチャはオブジェクト・テンプレート内の情報を派生オブジェクトに伝播させることができ、あるいは、開発者が置き換え可能なデフォルト値が、派生テンプレートに指定される。本発明の一実施形態では、伝播は、親のロック・アトリビュート(locked attribute)のコピーへの参照を格納することによって、自動的に影響を受ける。
テンプレートまたはインスタンス内のアトリビュートは、親の中でアンロックおよびロックができ、あるいは自己の中でロックができる。テンプレートとインスタンスは、アンロックのアトリビュートをもつことができる。アンロックのアトリビュート(unlocked attribute)は、読み書き可能であり、オブジェクトは、アトリビュート値のそれ自身のコピー、すなわち、派生オブジェクトには共有(共用)されないコピーをもつ。テンプレートは、自己ロック・アトリビュート(locked in me attribute)状態を取ることができるが、インスタンスは取れない。自己ロック・アトリビュートの場合、その値は読み書き可能である。派生オブジェクトは、アトリビュート値の自己用のコピーをもつことはできず、代りに、アトリビュートがロックされている先祖を参照することによって、そのロックされた値を共有する。自己ロック・アトリビュートの子のアトリビュート状態は、「親ロック(locked in parent)」となる。したがって、自己ロック・テンプレート・アトリビュートの値の変更は、すべての子に伝播する。テンプレートとインスタンスは、親ロック・アトリビュート(locked in parent attribute)をもつことができる。親ロック・アトリビュートは、読取り専用である。
アトリビュートのロック状態を取得し設定するためのインターフェースが、構成クライアントに提示される。クライアントは、アトリビュートへの参照を取得し、そのロック状態を設定する。アトリビュートの変更が許可されるかどうか、および/またはその変更を派生した子に伝播させるかどうかは、テンプレート内の特定のアトリビュートがロックされているかどうかに基く。アトリビュートのロックによって、2つの結果がもたらされる。第1に、親ロック・アトリビュートは、派生テンプレートまたは派生インスタンスで変更することができない。第2に、テンプレートの自己ロック・アトリビュートは、変更することができ、その変更は、そのロック・アトリビュートを含むそのテンプレートから派生したすべてのテンプレートとインスタンスに次々に伝播する。一方、アトリビュートがロックされていない場合、そのアトリビュートは、派生テンプレート内で置き換えることのできるデフォルト値を指定する。さらに、非ロック(non-locked)アトリビュートの値が変更された場合、その変更は、派生テンプレートに伝播しない。
図10内で識別されるアプリケーション・オブジェクトのために利用される1組のテンプレートを設定した後、提示のプロセス制御/製造情報監視アプリケーションに基づいて、アプリケーション・オブジェクト・インスタンスがテンプレートから生成される。図13で定義されるテンプレートと図10に描かれた例示的なプロセス・プラントを使用して、以下のアプリケーション・オブジェクトが描かれる。
$MixerVesselが、ミキサM1、M2用に使用される。
$Hopperホッパが、H1、H2、H2用に使用される。
$SingleDirectionConveyorが、コンベヤC2、C3用に使用される。
$BiDirectionalConveyorが、コンベヤC1、C4用に使用される。
$SlideGateが、ドアD1、D2用に使用される。
$Binが、ビンB1、B2、B3、B4用に使用される。
図15に移ると、生成元のオブジェクト・テンプレートから、エンジンおよびプラットフォームのオブジェクトのソース描き出したハードウェア派生ビューが示されている。こうしたビューは、特定のエンジンおよび/またはプラットフォーム要件をもつエリアをどこに分散し、または再配置するかを決める際に有益である。ノード1500は、WINDOWS(登録商標)オペレーティング・システム・ベースのプラットフォーム・テンプレートに対応する。WINDOWS(登録商標)オペレーティング・システム・ベースのプラットフォーム・テンプレートから派生したプラットフォーム・オブジェクトに相当する1組のプラットフォーム・インスタンスが、ノード1500から枝分れしており、これらは、図1内で識別されるパーソナル・コンピュータの各々に対応する。ノード1510は、アプリケーション・エンジン・テンプレートに対応する。アプリケーション・エンジン・テンプレートから派生する1組のアプリケーション・エンジン・インスタンスが、ノード1510から枝分れしており、これらは、図1に描かれたアプリケーション・エンジンに対応する。ノード1520は、ビューエンジン・テンプレートに対応する。1組のビューエンジン・インスタンスが、ノード1520から枝分れしており、これらは、図1に描かれたビュー・エンジンに対応する。ノード1530は、PLCNetwork装置統合オブジェクト・テンプレートに対応する。ノード1530から派生する1組のインスタンスは、図1内で識別される、OPCサーバ116、118の構成をサポートする装置統合オブジェクトに対応する。最後に、ノード1540は、PLCObject装置統合オブジェクト・テンプレートに対応する。ノード1540から派生する1組のインスタンスは、図1内で識別される装置統合オブジェクトに対応する。
図16には、図10および図11に描かれたプロセス・アプリケーションのモデル・ビューが示されている。このモデル・ビューは、(アプリケーション・オブジェクトとエリアを含む)オブジェクトが指定する、エリア・ホスティングおよび包含関係を表示する。このモデル・ビューは、プラント・レイアウトを記述するために論理的にグループにまとめられたオブジェクトを識別する。このモデル・ビューは、ユーザがオブジェクトを速やかに指定することを可能にし、それによって、オブジェクトは特定の方針(たとえば、警報することなど)に従って一様に扱われるようになる。このモデル・ビューは、たとえば、図11で指定されるノードで、図12のエリアのツリー構造に描かれたエリアに対応するノードを含む。ツリー1600の各リーフ(葉)は、アプリケーション・オブジェクトと、それらの識別されたエリアへ割り当てを識別する。さらに、このモデル・ビューのツリーは、(図13を参照して先に論じた)$MixerVesselコンパウンド・テンプレートからインスタンス化された1組のコンパウンド・コンテナ・オブジェクトMV1、MV2などのコンパウンド・コンテナが描かれている。
このモデル・ビューは、ある特定のアプリケーションの下で指定された、オブジェクトのAreaおよびContainerアトリビュートに基いて、モデル・ビュー・ジェネレータによって描かれる。本発明の一実施形態では、エリア/コンテナとグループ化された/包含されたオブジェクトとの適合性は、ユーザが関連付け(association)を生成しようとする際に確定される。この適合性は、親オブジェクトがサポートする機能を、グループ化された/包含された子オブジェクトの要求(needs)と比較することによって確定される。さらに、本発明の一実施形態では、あるコンテナに含まれるすべてのオブジェクトには、同じエリアを指定する必要がある。
エリアは階層をもつことができる。したがって、あるエリアは別のエリアを含むことができ、親エリアは、サブ・エリア内のすべてのオブジェクトのために、警報統計データを収集する。図16に示すモデル・ビューの階層ツリー構造は、ツリー構造の最上位レベルから始まり、あるエリア・オブジェクトのためのエリアが指定されていない場合、そのエリア・オブジェクト(たとえば、ProcessPlant1602)は直接ルート・ノード(ツリーの最上位レベル)に接続される。次のレベルでは、ProcessPlant1602のサブ・エリア(すなわち、RawMaterialStore1604、Production1606、Distribution1608、およびFinishedProductStore1610)が、ProcessPlant1602ノードの枝として接続される。例示的なアプリケーション・モデル・ツリー1600では、サブ・エリアから伸びる枝は、アプリケーション・オブジェクト(すなわち、ホッパH1、コンベヤC1〜C4、ドアD1〜D2、昇降機E1、およびビンB1〜B4)、および下位レベルのサブ・エリア(Production1606サブ・エリア内のLine1、Line2)を含む。Line1およびLine2サブ・エリアは、コンパウンド(すなわち、ミキサ槽MV1、MV2)を含む。コンパウンドMV1、MV2の葉は、コンパウンド・オブジェクトに含まれるオブジェクトを識別する。具体的な例では、ミキサ槽コンパウンドMV1は、撹拌器A1、槽M1、および入口弁V1を含む。ミキサ槽コンパウンドMV2は、撹拌器A2、槽M2、および入口弁V2を含む。
図17には、アプリケーション・モデルのエリアを図1に示すハードウェアおよびプラットフォームに展開した、例示的な展開ビューが示されている。この展開ビューは、アプリケーションのさまざまなオブジェクトをどこで実行するかを視覚的に表している。したがって、展開ビューは、オブジェクトが指定するホスティング(アトリビュート338)および包含(アトリビュート330)関係に基いて描かれる。子エリア・オブジェクトを、指定された親エリア(アトリビュート328)と同じアプリケーション・エンジン上で実行する必要はなく、オブジェクトが指定するエリア関係は、展開ビューを描く際には適用されない。アプリケーション・オブジェクトは、そのエリアにホストされ(アトリビュート338)、したがって、展開ビューには、アプリケーション・オブジェクトとそのエリアとの関係が示される。したがって、展開ビュー(およびネストしたエリア・オブジェクトの実際の展開)は、エリア・オブジェクト間の指定された階層エリアのモデル関係に関連付けられた警報/イベントの集中および伝播を反映していない。
図17には、アプリケーション・オブジェクトは表示されていない。しかし、展開ビュー・ジェネレータは、それらのオブジェクト内のホスト/コンテナ指定に基いて、適切なエリアの下にアプリケーション・オブジェクトを配置する。本発明の一実施形態では、アプリケーション・オブジェクトの指定されたホストおよびエリアは、要件から同一になる。したがって、エリア・オブジェクトを参照するすべてのアプリケーション・オブジェクトは、エリア・オブジェクトのHostアトリビュート338で識別されるのと同一のエンジン・オブジェクト上で実行される。この要件は、特定のエリアに属するアプリケーション・オブジェクト用に管理する警報およびデータを、同一のコンピュータ装置上で局所的に管理することを可能にする。アプリケーション・オブジェクトが、アトリビュート330でコンテナ(コンパウンド・アプリケーション・オブジェクト)を指定している場合、展開ビュー・ツリーを生成する際、指名されたエリア・ホストを指名されたコンテナで置き換える(すなわち、コンパウンド(コンテナ)内のアプリケーション・オブジェクトを、指定されたコンパウンド名の下に置く)。しかし、本発明の一実施形態では、コンパウンド内に含まれるすべてのアプリケーション・オブジェクトを、同一のホスト上で実行する必要はない(すなわち、包含されるすべてのアプリケーション・オブジェクトは、コンパウンド/コンテナの指定されたエリアを獲得する)。
エリアおよびそれに関連するオブジェクトは、プラットフォーム/アプリケーション・エンジンのどのような組合せによっても実行させることができるので、図17に示す展開ビューは、例として特に適切にクラス分けされている。プラットフォーム/エンジン/エリア/アプリケーション・オブジェクトから成る多重レイヤのホスティング構成は、図17に示すアプリケーション・コンポーネントについてのグラフィカルな展開表現における適切なホスト・エンジンのブランチ(枝)に、さまざまなエリア(およびそれに関連するアプリケーション・オブジェクト)をインストールできるようにする。展開ツリー階層の最上位レベルは、図1に示すパーソナル・コンピュータに対応する1組のプラットフォームを識別する。ノードによって表される1組のプラットフォームには、RawMaterialPCノード1700、Production PCノード1702、FinishedProductPCノード1704、ConfigurationPCノード1706、ApplicationServer1PCノード1708、ApplicationServer2PCノード1710が含まれる。
1組のエンジン(複数のエンジンの集合)がプラットフォーム・ホストに展開される。展開された1組のエンジン・オブジェクト・ノードは、示されたプラットフォーム・オブジェクトにホストされるエンジン・オブジェクトに対応し、これには、RawMaterialViewエンジン・ノード1712、ProductionView エンジン・ノード1714、FinishedProductViewエンジン・ノード1716、AppEngine1ノード1718、AppEngine2ノード1720が含まれる。
これらのエンジンは、展開ビュー内にノードとして表される、装置統合オブジェクト、およびアプリケーション・オブジェクトのエリア・グループにホストする。展開された装置統合オブジェクトに対応する1組の装置統合オブジェクト・ノードには、PLC1Ethernet(登録商標)ノード1722、PLC1ノード1724、PLC2Ethernet(登録商標)ノード1726、PLC2ノード1728が含まれる。アプリケーション・オブジェクトおよび/または他のエリアのグループを含む展開されたエリアに対応する1組のエリア・オブジェクト・ノードには、ProcessPlantノード1730、RawMaterialStoreノード1732、Productionノード1734、Line1ノード1736、Line2ノード1738、Distributionノード1740、FinishedProductStoreノード1742が含まれる。上で識別したエリア・ノードをそれに関連するエンジンに接続するブランチ(枝)は、そのエリア・オブジェクトおよびそれに関連するアプリケーション・オブジェクトのHostアトリビュート338で識別される各エンジンに対応するが、いたずらに複雑となるのを避けるため、図17に示す展開ビューでは省略してある。
本発明の例示的な実施形態およびその変形を、図面および付随の説明によって提供した。本発明は、これらの実施形態に限定されるものではない。監視プロセス制御/製造情報アプリケーションを構成し実施するための新しい有用な方法およびアプリケーションを説明してきたことが、当業者には理解されよう。本発明の原理が適用できる多くの可能な環境、およびソフトウェアベースのシステムを設計し実施する上での柔軟性に鑑みて、本明細書で説明した実施形態は例示的なものであり、本発明の範囲を限定するものと捉えるべきではないことを理解されたい。本発明の主旨から逸脱することなく、例示的な実施形態にその構成および詳細について変更を施し得ることが、本発明が適用される分野の当業者には理解されよう。本発明は、開示された実施形態のみならず、本開示および本明細書に添付した特許請求の範囲で規定される発明に照らして許容可能な最も広い範囲において本発明の範囲および主旨に収まるその他の実施形態を包含するものである。したがって、本明細書で説明した本発明は、添付の特許請求の範囲およびその均等物の範囲に収まり得るそうしたすべての実施形態を企図するものである。
多重レイヤ化された監視プロセス制御/製造情報アプリケーションを含む例示的な監視プロセス制御ネットワークの概略図である。 アプリケーションの多重に階層化されたオブジェクト構成を示す図である。 アプリケーションを構成する複数のオブジェクトの共通部分に関連付けられる1組のアトリビュートを示す図である。 プラットフォーム・オブジェクトのプラットフォーム固有部分に関連付けられる1組のアトリビュートを示す図である。 エンジン・オブジェクトに関連付けられる1組のアトリビュートを示す図である。 スケジューラ・オブジェクトに関連付けられる1組のアトリビュートを示す図である。 例示的なアプリケーション・オブジェクトに関連付けられる1組のアトリビュートを示す図である。 本発明を実施する多重レイヤ化されたアプリケーションを開始させるために実行する1組のステップを要約して示すシーケンス図である。 複数のアプリケーション・エンジンを備えるネットワーク内でオブジェクトを別のエンジンに移動するための1組のステップを要約して示すシーケンス図である。 単純なプラント・プロセス内の制御される構成要素を示す概略図である。 単純なプラント・プロセス内の構成要素が論理的にエリアにグループ分けされた様子を示す概略図である。 図11のプラント構成におけるエリアのグループを示す階層ツリー構造図である。 図10のプラント・プロセスに関連付けられた監視プロセス制御アプリケーションのオブジェクト間の派生関係を表す階層ツリー構造図である。 図10のプラント・プロセスのミキサ槽の一部を示す概略図である。 図14aのミキサ槽に対応するMixerVesselコンパウンド・アプリケーション・オブジェクト・テンプレートの包含関係を表す階層モデル・ビューである。 システムのハードウェア(たとえば、プラットフォーム、エンジン、装置統合オブジェクト)に関連するアプリケーションの一部の派生構造を表す階層ツリー構造図である。 アプリケーション・オブジェクトが関連づけられるエリアを含むアプリケーション・オブジェクト構成のモデル・ビューを示す階層ツリー構造図である。 階層のトップレベルで識別されるプラットフォーム・オブジェクトで表される1組のコンピュータ装置にアプリケーションを展開した、展開ビューを示す階層ツリー構造図である。

Claims (16)

  1. ネットワーク接続された複数の物理コンピュータ装置上に分散されて実行する監視プロセス制御/製造情報システムのアプリケーション・プログラムであって、前記プログラムは、3階層アーキテクチャーを有し、一つのプラットフォームが前記複数の物理コンピュータ装置のうちの一つの上で動作する形態で、前記複数の物理コンピュータ装置それぞれの上で動作する複数のプラットフォーム・オブジェクトと、当該プラットフォーム・オブジェクト上で、当該プラットフォーム・オブジェクトの動作により管理および制御されて動作する少なくとも一つのエンジン・オブジェクトと、前記プラットフォーム・オブジェクト上で、一つのエンジンの動作により管理および制御されて動作する少なくとも一つのアプリケーション・オブジェクトとを備え、
    前記アプリケーション・オブジェクトは、前記3階層アーキテクチャーの上位層で動作し、前記プロセス制御/製造情報システム内の各装置/機能に対応する、アナログ入力、ディスクリート装置の入出力制御、PIDループ制御のうちの少なくとも1つに関連付けられたハードウェア構成要素に対する処理を前記物理コンピュータ装置に実行させ、
    前記エンジン・オブジェクトは、前記3階層アーキテクチャーの中位層で動作し、ランタイム環境で、前記エンジン・オブジェクトに関連付けられたアプリケーション・オブジェクトに対する、開始/停止および監視のうちの少なくとも1つの実行を管理して制御する処理を前記物理コンピュータ装置に実行させ、
    複数の各プラットフォーム・オブジェクトは、前記3階層アーキテクチャーの下層で、前記装置/機能に関連付けられたハードウェア構成要素を備える物理的コンピュータ・システムである前記物理コンピュータ装置のそれぞれの上で動作し、前記プラットフォーム・オブジェクトに関連付けられたエンジン・オブジェクトと、前記関連付けられたエンジン・オブジェクトに関連付けられた前記アプリケーション・オブジェクトを実行させる実行環境を提供し、1つまたは複数の前記エンジン・オブジェクトに対する、開始/停止および監視のうちの少なくとも一つの管理と制御の処理を、前記物理コンピュータ装置に実行させ、
    前記複数のエンジン・オブジェクトと前記複数のプラットフォーム・オブジェクトは、前記ネットワーク接続された物理コンピュータ装置の物理的なコンピューティング装置構成に関する前記アプリケーション・オブジェクトの動作が、前記装置および/または機能に関連付けられたハードウェア構成要素を備える前記物理的なコンピューティング装置構成に対して実際に実行される基盤を提供するように前記物理コンピュー装置を動作させ、
    ここで、前記アプリケーション・オブジェクト自体は、前記プラットフォーム・オブジェクトとは独立のインターフェースによって、前記エンジン・オブジェクトおよびスケジューラのみと通信を行い、前記アプリケーション・オブジェクトをホストする前記複数のエンジン・オブジェクトは、前記アプリケーション・オブジェクトがその上で実行される前記物理的なコンピューティング装置構成の特性から、前記アプリケーション・オブジェクトを分離し、
    これにより、前記複数のアプリケーション・オブジェクトは、前記アプリケーション・オブジェクトがその上で実行している前記物理的なコンピューティング装置構成とは独立に実行し、
    同一物理コンピュー装置上の前記複数のアプリケーション・オブジェクト間の通信は前記複数のエンジン・オブジェクトを介して実行され、複数の物理コンピュー装置からなるネットワーク全体にわたる通信は前記複数のプラットフォーム・オブジェクトによってサポートされ、
    ここで、前記アプリケーション・オブジェクトは、物理アドレスではなく論理名で、他のオブジェクトを参照し、同一アプリケーション内の前記複数のアプリケーション・オブジェクト間の通信は、前記アプリケーション・オブジェクトに関しては、前記アプリケーション・オブジェクトを含むその基礎をなす前記ネットワークの物理構成から分離され、前記プラットフォーム・オブジェクトおよび前記エンジン・オブジェクト内に組み込まれた、メッセージ交換と呼ばれるアプリケーションのコンポーネントは、相手を物理ネットワーク・アドレスではなく論理名で指定することのできるピアツーピアの通信基盤であり、
    それによって、前記複数のアプリケーション・オブジェクト間の通信は、前記複数のアプリケーション・オブジェクトがその中で実行する前記物理的コンピュータ・システムのトポロジから分離される
    ことを特徴とするアプリケーション・プログラム。
  2. ネットワーク接続された複数の物理コンピュータ装置上に分散されて実行する監視プロセス制御/製造情報システムのアプリケーション・プログラムの各オブジェクトそれぞれの、分散先を指定して、前記複数の物理コンピュー装置上の前記複数のオブジェクトについての分散を表すビューを提供する、前記複数の物理コンピュー装置とは異なる物理コンピュータ装置上で実行される構成ファシリティ(コンフィグレータ)・プログラムであって、
    前記アプリケーション・プログラムは、3階層アーキテクチャーを有し、一つのプラットフォームが前記複数の物理コンピュータ装置のうちの一つの上で動作する形態で、前記複数の物理コンピュータ装置それぞれの上で動作する複数のプラットフォーム・オブジェクトと、当該プラットフォーム・オブジェクト上で、当該プラットフォーム・オブジェクトの動作により管理および制御されて動作する少なくとも一つのエンジン・オブジェクトと、前記プラットフォーム・オブジェクト上で、一つのエンジンの動作により管理および制御されて動作する少なくとも一つのアプリケーション・オブジェクトとを備え、
    前記アプリケーション・オブジェクトが、前記3階層アーキテクチャーの上位層で動作し、前記プロセス制御/製造情報システム内の各装置/機能に対応する、アナログ入力、ディスクリート装置の入出力制御、PIDループ制御のうちの少なくとも1つに関連付けられたハードウェア構成要素に対する処理を前記物理コンピュータ装置に実行させ、
    前記エンジン・オブジェクトが、前記3階層アーキテクチャーの中位層で動作し、ランタイム環境で、前記エンジン・オブジェクトに関連付けられたアプリケーション・オブジェクトに対する、開始/停止および監視のうちの少なくとも1つの実行を管理して制御する処理を前記物理コンピュータ装置に実行させ、
    複数の各プラットフォーム・オブジェクトが、前記3階層アーキテクチャーの下層で、前記装置/機能に関連付けられたハードウェア構成要素を備える物理的コンピュータ・システムである前記物理コンピュータ装置のそれぞれの上で動作し、前記プラットフォーム・オブジェクトに関連付けられたエンジン・オブジェクトと、前記関連付けられたエンジン・オブジェクトに関連付けられた前記アプリケーション・オブジェクトを実行させる実行環境を提供し、1つまたは複数の前記エンジン・オブジェクトに対する、開始/停止および監視のうちの少なくとも一つの管理と制御の処理を、前記物理コンピュータ装置に実行させ、
    前記構成ファシリティ・プログラムは、前記物理コンピュータ装置に、
    前記1つまたは複数の物理コンピューティング装置のタイプを指定するための1つまたは複数のプラットフォームを定義する処理、
    前記複数の物理コンピューティング・システム上で実行する複数のエンジンを指定し、それによって前記複数の物理コンピューティング装置によってサポートされる複数のサービスについての複数のタイプを定めるための複数のエンジンを定義する処理、
    前記複数のアプリケーション・オブジェクトについての複数の論理グループを備える複数のエリアを指定するための複数のエリアを定義する処理、
    前記複数の物理コンピューティング・システムのうち特定のものへの前記複数のエンジンの割り当てと、前記複数のエンジンのうち特定のものへの前記複数のエリアの割り当てとを指定するための1組の階層関係を定義する処理、および
    前記1組の階層関係に従って、前記複数の物理コンピューティング装置、前記複数のエンジン、および前記複数のエリアの階層を、前記物理コンピュータ装置上に描くための展開ビューを生成する処理
    を実行させることを特徴とする構成ファシリティ・プログラム。
  3. ネットワーク接続された複数の物理コンピュータ装置上に分散されて実行される監視プロセス制御/製造情報システムのアプリケーション・プログラムの構成および分散を容易にする、アプリケーション・プログラムの各オブジェクトの分散を管理するための、前記複数の物理コンピュータ装置とは異なる物理コンピュータ装置上で実行される構成ファシリティ(コンフィグレータ)・プログラムであって、
    前記アプリケーション・プログラムは、3階層アーキテクチャーを有し、一つのプラットフォームが前記複数の物理コンピュータ装置のうちの一つの上で動作する形態で、前記複数の物理コンピュータ装置それぞれの上で動作する複数のプラットフォーム・オブジェクトと、当該プラットフォーム・オブジェクト上で、当該プラットフォーム・オブジェクトの動作により管理および制御されて動作する少なくとも一つのエンジン・オブジェクトと、前記プラットフォーム・オブジェクト上で、一つのエンジンの動作により管理および制御されて動作する少なくとも一つのアプリケーション・オブジェクトとを備え、
    前記アプリケーション・オブジェクトが、前記3階層アーキテクチャーの上位層で動作し、前記プロセス制御/製造情報システム内の各装置/機能に対応する、アナログ入力、ディスクリート装置の入出力制御、PIDループ制御のうちの少なくとも1つに関連付けられたハードウェア構成要素に対する処理を前記物理コンピュータ装置に実行させ、
    前記エンジン・オブジェクトが、前記3階層アーキテクチャーの中位層で動作し、ランタイム環境で、前記エンジン・オブジェクトに関連付けられたアプリケーション・オブジェクトに対する、開始/停止および監視のうちの少なくとも1つの実行を管理して制御する処理を前記物理コンピュータ装置に実行させ、
    複数の各プラットフォーム・オブジェクトが、前記3階層アーキテクチャーの下層で、前記装置/機能に関連付けられたハードウェア構成要素を備える物理的コンピュータ・システムである前記物理コンピュータ装置のそれぞれの上で動作し、前記プラットフォーム・オブジェクトに関連付けられたエンジン・オブジェクトと、前記関連付けられたエンジン・オブジェクトに関連付けられた前記アプリケーション・オブジェクトを実行させる実行環境を提供し、1つまたは複数の前記エンジン・オブジェクトに対する、開始/停止および監視のうちの少なくとも一つの管理と制御の処理を、前記物理コンピュータ装置に実行させ、
    前記構成ファシリティ・プログラムは、前記物理コンピュータ装置に、
    前記各オブジェクトを、前記各オブジェクト間の関係を指定する1組の関連するアトリビュートに関連付ける処理、および
    前記複数のオブジェクト間の関連付けに従って、前記複数のオブジェクトの相互関係を描くためのビューを生成する処理
    を実行させ
    ビュー・ジェネレータによって、前記物理コンピュータ装置上に提供されるビューは、プロセス/プラントおよびその前記監視プロセス制御/製造情報システム内の監視される各構成要素の論理構成を表す第1のビュー、および
    前記アプリケーション・プログラムを実行するコンピュータ・システム上での各オブジェクトについての物理な分散状態を表す第2のビュー
    であることを特徴とする構成ファシリティ・プログラム。
  4. 1組のユーザ定義エリアを備え、当該各エリアは同一エンジン上で実行するように制限された関連する1組のアプリケーション・オブジェクトを含み、前記エリアと前記エンジンの間の関連付けは前記第2のビューで描かれることを特徴とする請求項3に記載の構成ファシリティ・プログラム。
  5. 前記複数のオブジェクトは、その内部にネストされた他の複数のオブジェクトを含む複数のコンテナ・オブジェクトを備えることを特徴とする請求項3に記載の構成ファシリティ・プログラム。
  6. 前記複数のオブジェクトは、複数のテンプレートから派生/インスタンス化され、前記複数のテンプレートは、他の複数のテンプレートの包含関係を指定することを特徴とする請求項3に記載の構成ファシリティ・プログラム。
  7. 前記複数のテンプレートは、親テンプレートを指定することができ、親テンプレートを指定した後で当該親テンプレートに加えられた変更を含めて、前記親テンプレートから特性を継承することを特徴とする請求項6に記載の構成ファシリティ・プログラム。
  8. 1組のアプリケーション・オブジェクトは、1つのエリアに関連付けられ、前記エリア内の1組のアプリケーション・オブジェクトのそれぞれは、同じエンジン・オブジェクトによって管理および制御されるように拘束されることを特徴とする請求項1に記載のアプリケーション・プログラム。
  9. 前記複数のアプリケーション・オブジェクト、複数のエンジン・オブジェクト、および複数のプラットフォーム・オブジェクトは、共通のベース・オブジェクト定義を共有することを特徴とする請求項1に記載のアプリケーション・プログラム。
  10. 前記複数のプラットフォーム・オブジェクトは、前記複数のプラットフォーム・オブジェクト上に展開される1組のエンジンを構成し、制御するための1組のアトリビュートを含むことを特徴とする請求項1に記載のアプリケーション・プログラム。
  11. 前記複数のエンジン・オブジェクトは、複数のアプリケーション・オブジェクトの管理に関連付けられた1組のコマンド・アトリビュートを含むことを特徴とする請求項1に記載のアプリケーション・プログラム。
  12. 前記アプリケーション・オブジェクトの展開ビューは、複数のアプリケーション・オブジェクト、複数のエンジン・オブジェクト、及び複数のプラットフォーム・オブジェクトを、物理コンピュータ装置に描写することを特徴とする請求項1に記載のアプリケーション・プログラム。
  13. 前記展開ビューは、複数のプラットフォーム・オブジェクト、複数のエンジン・オブジェクトおよび複数のアプリケーション・オブジェクトを階層的に描写することを特徴とする請求項12に記載のアプリケーション・プログラム。
  14. 前記アプリケーションについてのアプリケーション・ビューは、プラントの物理エリアおよび前記物理エリア内の設備に関するプラントについての論理的構成要素を描写することを特徴とする請求項1に記載のアプリケーション・プログラム。
  15. 前記アプリケーション・ビューは、前記アプリケーション・レイヤを構成する、複数のエリアとアプリケーション・オブジェクトを階層的に描写することを特徴とする請求項14に記載のアプリケーション・プログラム。
  16. 管理および制御されるアプリケーション・オブジェクト用の実行スケジュールであって、スクジューラ・オブジェクトによって実装されている実行スケジュールを指定するタスクの管理および制御は、前記エンジン・オブジェクトの動作によって実行されることを特徴とする請求項1に記載のアプリケーション・プログラム。
JP2003507691A 2001-06-22 2002-06-24 階層アーキテクチャを有する監視プロセス制御/製造情報システム・アプリケーション Expired - Lifetime JP4700906B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US30017401P 2001-06-22 2001-06-22
US30036301P 2001-06-22 2001-06-22
US60/300,174 2001-06-22
US60/300,363 2001-06-22
PCT/US2002/020231 WO2003001366A1 (en) 2001-06-22 2002-06-24 Supervisory process control and manufacturing information system application having a layered architecture

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007318879A Division JP4382847B2 (ja) 2001-06-22 2007-12-10 階層アーキテクチャを有する監視プロセス制御/製造情報システム・アプリケーションのためのコンピュータ・システムおよびそのための構成ファシリティを有する記録媒体

Publications (2)

Publication Number Publication Date
JP2004536391A JP2004536391A (ja) 2004-12-02
JP4700906B2 true JP4700906B2 (ja) 2011-06-15

Family

ID=26971631

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003507691A Expired - Lifetime JP4700906B2 (ja) 2001-06-22 2002-06-24 階層アーキテクチャを有する監視プロセス制御/製造情報システム・アプリケーション
JP2007318879A Expired - Lifetime JP4382847B2 (ja) 2001-06-22 2007-12-10 階層アーキテクチャを有する監視プロセス制御/製造情報システム・アプリケーションのためのコンピュータ・システムおよびそのための構成ファシリティを有する記録媒体

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2007318879A Expired - Lifetime JP4382847B2 (ja) 2001-06-22 2007-12-10 階層アーキテクチャを有する監視プロセス制御/製造情報システム・アプリケーションのためのコンピュータ・システムおよびそのための構成ファシリティを有する記録媒体

Country Status (6)

Country Link
US (2) US7650607B2 (ja)
EP (2) EP2369469A3 (ja)
JP (2) JP4700906B2 (ja)
CN (2) CN101714101A (ja)
AU (1) AU2002320159B2 (ja)
WO (1) WO2003001366A1 (ja)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
WO2000070417A1 (en) 1999-05-17 2000-11-23 The Foxboro Company Process control configuration system with parameterized objects
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
WO2003001343A2 (en) * 2001-06-22 2003-01-03 Wonderware Corporation Supervisory process control and manufacturing information system application having an extensible component model
US7222131B1 (en) * 2002-09-24 2007-05-22 Rockwell Automation Technologies, Inc. System and methodology facilitating data warehousing of controller images in a distributed industrial controller environment
US7383550B2 (en) * 2002-12-23 2008-06-03 International Business Machines Corporation Topology aware grid services scheduler architecture
US7526347B2 (en) 2003-02-18 2009-04-28 Fisher-Rosemount Systems, Inc. Security for objects in a process plant configuration system
US7117052B2 (en) 2003-02-18 2006-10-03 Fisher-Rosemount Systems, Inc. Version control for objects in a process plant configuration system
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
CN1981301B (zh) * 2004-05-17 2012-01-18 因文西斯系统公司 用于开发动画可视化界面的系统和方法
US7480725B2 (en) * 2004-09-16 2009-01-20 Invensys Systems, Inc. Transparent relocation of an active redundant engine in supervisory process control data acquisition systems
US7818615B2 (en) 2004-09-16 2010-10-19 Invensys Systems, Inc. Runtime failure management of redundantly deployed hosts of a supervisory process control data acquisition facility
US8230424B2 (en) * 2005-08-01 2012-07-24 The Mathworks, Inc. General interface with arbitrary job managers
JP4787614B2 (ja) * 2005-12-22 2011-10-05 株式会社リコー 画像形成装置及びアプリケーション管理プログラム
US8843503B2 (en) * 2006-06-30 2014-09-23 International Business Machines Corporation Methods and apparatus for automatically creating composite configuration items in configuration management database
US7848829B2 (en) * 2006-09-29 2010-12-07 Fisher-Rosemount Systems, Inc. Methods and module class objects to configure absent equipment in process plants
CN102077146B (zh) * 2008-05-02 2014-05-07 因文西斯系统公司 对监管控制和数据采集和制造执行系统信息保持统一存取的系统
US8594814B2 (en) 2008-06-20 2013-11-26 Invensys Systems, Inc. Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control
JP2010033437A (ja) 2008-07-30 2010-02-12 Autonetworks Technologies Ltd 制御装置、制御方法及びコンピュータプログラム
JP4922262B2 (ja) 2008-07-30 2012-04-25 株式会社オートネットワーク技術研究所 制御装置
US8229575B2 (en) 2008-09-19 2012-07-24 Rockwell Automation Technologies, Inc. Automatically adjustable industrial control configuration
US8396845B2 (en) * 2008-09-26 2013-03-12 Microsoft Corporation Data-tier application component
JP5147952B2 (ja) * 2008-12-11 2013-02-20 インターナショナル・ビジネス・マシーンズ・コーポレーション システムのモデルを変換する方法、コンピュータ・プログラム及びシステムモデル変換装置
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US8122434B2 (en) * 2009-05-29 2012-02-21 Invensys Sytems, Inc. Methods and apparatus for control configuration control objects associated with a track attribute for selecting configuration information
JP2010231808A (ja) * 2010-06-16 2010-10-14 Autonetworks Technologies Ltd プログラム変更方法及びコンピュータプログラム
JP5365584B2 (ja) * 2010-06-16 2013-12-11 株式会社オートネットワーク技術研究所 制御装置
WO2013059923A1 (en) * 2011-10-25 2013-05-02 Kemex Ltd. A methodology and preferred software that, together, reduce the effort required to write and maintain operating procedures for manufacturing plants and oil and gas facilities
US9098312B2 (en) 2011-11-16 2015-08-04 Ptc Inc. Methods for dynamically generating an application interface for a modeled entity and devices thereof
US9576046B2 (en) 2011-11-16 2017-02-21 Ptc Inc. Methods for integrating semantic search, query, and analysis across heterogeneous data types and devices thereof
US8909641B2 (en) 2011-11-16 2014-12-09 Ptc Inc. Method for analyzing time series activity streams and devices thereof
US8836497B2 (en) * 2012-07-23 2014-09-16 General Electric Company Systems and methods for configuring analog process alarms in control devices
JP6285010B2 (ja) 2013-03-15 2018-02-28 ピーティーシー インコーポレイテッド 意味論的モデル化およびタグ付けを使用してアプリケーションを管理する方法およびその装置
US9680794B2 (en) 2013-09-04 2017-06-13 Owl Computing Technologies, Llc Secure one-way interface for archestra data transfer
US9678505B2 (en) * 2013-10-14 2017-06-13 Invensys Systems, Inc. Line management in manufacturing execution system
CN103676849A (zh) * 2013-11-28 2014-03-26 成都淞幸科技有限责任公司 集散控制系统及方法
US9697374B2 (en) * 2014-02-19 2017-07-04 Microsoft Technology Licensing, Llc Data proxy service
US9560170B2 (en) 2014-03-21 2017-01-31 Ptc Inc. System and method of abstracting communication protocol using self-describing messages
US10313410B2 (en) 2014-03-21 2019-06-04 Ptc Inc. Systems and methods using binary dynamic rest messages
US9762637B2 (en) 2014-03-21 2017-09-12 Ptc Inc. System and method of using binary dynamic rest messages
US9961058B2 (en) 2014-03-21 2018-05-01 Ptc Inc. System and method of message routing via connection servers in a distributed computing environment
US9467533B2 (en) 2014-03-21 2016-10-11 Ptc Inc. System and method for developing real-time web-service objects
US9350812B2 (en) 2014-03-21 2016-05-24 Ptc Inc. System and method of message routing using name-based identifier in a distributed computing environment
US9350791B2 (en) 2014-03-21 2016-05-24 Ptc Inc. System and method of injecting states into message routing in a distributed computing environment
US10338896B2 (en) 2014-03-21 2019-07-02 Ptc Inc. Systems and methods for developing and using real-time data applications
US9462085B2 (en) 2014-03-21 2016-10-04 Ptc Inc. Chunk-based communication of binary dynamic rest messages
US10025942B2 (en) 2014-03-21 2018-07-17 Ptc Inc. System and method of establishing permission for multi-tenancy storage using organization matrices
CN104021043B (zh) * 2014-06-23 2017-09-15 中国银行股份有限公司 批量应用程序的中断重入方法及系统
US11580125B2 (en) 2015-05-08 2023-02-14 Adp, Inc. Information system with temporal data
US10075386B2 (en) 2015-05-08 2018-09-11 Adp, Llc Subscription-based information system
US11144520B2 (en) 2015-05-08 2021-10-12 Adp, Llc Information system with versioning descending node snapshot
CN105589724B (zh) * 2015-12-23 2018-08-31 杭州真鹏科技有限公司 一种高速创建系统变量的方法
US10338934B1 (en) * 2016-03-28 2019-07-02 VCE IP Holding Company LLC Inter-object validation system and method using chained specialized configuration applications
CN106292584B (zh) * 2016-08-16 2019-07-23 苏州朋泰智能科技有限公司 一种基于模块化的控制单元的柔性制造系统
CN106325242B (zh) * 2016-08-16 2019-09-24 苏州朋泰智能科技有限公司 一种基于模块化的控制单元的mes系统
CN111279279B (zh) * 2017-10-26 2024-02-20 西门子工业软件有限公司 建立和跟踪自动化工程环境
US10564993B2 (en) * 2017-11-07 2020-02-18 General Electric Company Contextual digital twin runtime environment
WO2020051237A1 (en) * 2018-09-04 2020-03-12 Aveva Software, Llc Stream-based composition and monitoring server system and method
EP3719646B1 (en) 2019-04-02 2023-11-15 Gamma-Digital Kft. Method for communicating in a network-distributed process control system and network-distributed process control system
CN113448793B (zh) * 2020-03-25 2023-05-30 大唐移动通信设备有限公司 一种兼容多操作系统的系统监控方法及装置
US20230139509A1 (en) * 2021-10-29 2023-05-04 JFrog Ltd. Software release distribution across a hierarchical network

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371895A (en) * 1985-10-08 1994-12-06 The Foxboro Company Local equipment controller for computerized process control applications utilizing language structure templates in a hierarchical organization and method of operating the same
US4910691A (en) * 1987-09-30 1990-03-20 E.I. Du Pont De Nemours & Co. Process control system with multiple module sequence options
US5006992A (en) * 1987-09-30 1991-04-09 Du Pont De Nemours And Company Process control system with reconfigurable expert rules and control modules
JP2538069B2 (ja) * 1989-09-13 1996-09-25 株式会社日立製作所 プラント制御システム、その制御回路表示方法および保守装置
US5134574A (en) * 1990-02-27 1992-07-28 The Foxboro Company Performance control apparatus and method in a processing plant
US5594858A (en) * 1993-07-29 1997-01-14 Fisher-Rosemount Systems, Inc. Uniform control template generating system and method for process control programming
US5847955A (en) * 1994-05-04 1998-12-08 National Instruments Corporation System and method for controlling an instrumentation system
US5678039A (en) 1994-09-30 1997-10-14 Borland International, Inc. System and methods for translating software into localized versions
US5778356A (en) 1994-11-10 1998-07-07 Cadis, Inc. Dynamically selectable language display system for object oriented database management system
US5652884A (en) 1994-11-14 1997-07-29 Object Technology Licensing Corp. Method and apparatus for dynamic update of an existing object in an object editor
US5812394A (en) * 1995-07-21 1998-09-22 Control Systems International Object-oriented computer program, system, and method for developing control schemes for facilities
US5974372A (en) 1996-02-12 1999-10-26 Dst Systems, Inc. Graphical user interface (GUI) language translator
US5909368A (en) * 1996-04-12 1999-06-01 Fisher-Rosemount Systems, Inc. Process control system using a process control strategy distributed among multiple control elements
US5940294A (en) * 1996-04-12 1999-08-17 Fisher-Rosemont Systems, Inc. System for assisting configuring a process control environment
US5838563A (en) * 1996-04-12 1998-11-17 Fisher-Rosemont Systems, Inc. System for configuring a process control environment
US6055637A (en) * 1996-09-27 2000-04-25 Electronic Data Systems Corporation System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential
US5854930A (en) 1996-12-30 1998-12-29 Mci Communications Corporations System, method, and computer program product for script processing
US5980078A (en) * 1997-02-14 1999-11-09 Fisher-Rosemount Systems, Inc. Process control system including automatic sensing and automatic configuration of devices
US6275868B1 (en) 1997-03-12 2001-08-14 Microsoft Corporation Script Engine interface for multiple languages
US6353923B1 (en) 1997-03-12 2002-03-05 Microsoft Corporation Active debugging environment for debugging mixed-language scripting code
US6182142B1 (en) * 1998-07-10 2001-01-30 Encommerce, Inc. Distributed access management of information resources
JP3460593B2 (ja) * 1998-09-17 2003-10-27 株式会社デンソー 車両用制御装置
WO2000067117A2 (en) 1999-04-30 2000-11-09 Peoplesoft, Inc. Multilingual components for application development providing locale sensitive and culturally appropriate presentation of data
US6772017B1 (en) * 2000-01-20 2004-08-03 Fisher-Rosemount Systems, Inc. Tool for configuring and managing a process control network including the use of spatial information
EP1410228B1 (en) * 2001-06-22 2016-03-23 Wonderware Corporation Remotely monitoring / diagnosing distributed components of a supervisory process control and manufacturing information application from a central location

Also Published As

Publication number Publication date
JP4382847B2 (ja) 2009-12-16
US20020198920A1 (en) 2002-12-26
EP1410173A1 (en) 2004-04-21
CN101714101A (zh) 2010-05-26
CN1543601A (zh) 2004-11-03
US8230443B2 (en) 2012-07-24
US7650607B2 (en) 2010-01-19
JP2008135042A (ja) 2008-06-12
US20100122269A1 (en) 2010-05-13
EP2369469A3 (en) 2012-02-29
EP1410173A4 (en) 2008-04-09
EP2369469A2 (en) 2011-09-28
WO2003001366A1 (en) 2003-01-03
JP2004536391A (ja) 2004-12-02
AU2002320159B2 (en) 2009-01-29
CN100565447C (zh) 2009-12-02

Similar Documents

Publication Publication Date Title
JP4700906B2 (ja) 階層アーキテクチャを有する監視プロセス制御/製造情報システム・アプリケーション
US9829881B2 (en) Supervisory process control and manufacturing information system application having an extensible component model
EP1410196B1 (en) Installing supervisory process control and manufacturing software from a remote location and maintaining configuration data links in a run-time environment
US8984594B2 (en) Security architecture for a process control platform executing applications
AU2002320159A1 (en) Supervisory process control and manufacturing information system application having a layered architecture
US9268581B2 (en) Internationalization of objects executable in a supervisory process control and manufacturing information system
US8464227B2 (en) Process control script development and execution facility supporting multiple user-side programming languages

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061219

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070319

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070619

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070810

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20071109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071210

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080305

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080424

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080523

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091202

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20100520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100520

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101021

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110307

R150 Certificate of patent or registration of utility model

Ref document number: 4700906

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250