(57)【要約】      （修正有）【課題】プロセスプラント内のプロセスコントローラの入力／出力を仮想化するためのコンピューティングデバイスを提供する。【解決手段】構成アプリケーション７２ａは、識別されたＩ／Ｏオブジェクトのパフォーマンスを模倣する仮想デバイス信号タグ（ＤＳＴ）を生成する。例えば、バックエンド環境のコミッショニング中に、制御モジュールのテスト及び検証を容易にするために、構成アプリケーションはシミュレーション環境内で仮想コントローラをインスタンス化する。仮想コントローラを生成するために、構成アプリケーションはＩ／Ｏオブジェクトへの任意の参照を、それぞれの仮想ＤＳＴへの参照に置き換える。したがって、仮想ＤＳＴをフィールドデバイスへのＩ／Ｏのプロキシとして使用することによって、フィールド環境を完全にコミッショニングすることなく、フィールドデバイスの前に制御モジュール及び／またはコントローラをテストすることができる。【選択図】図１
2019079508.tif 000002
【特許請求の範囲】
【請求項１】
プロセスプラントのコミッショニング中に前記プロセスプラント内のプロセスコントローラの入力／出力（Ｉ／Ｏ）を仮想化するためのコンピューティングデバイスであって、
構成データベースと、
１つ以上のプロセッサと、
前記構成データベース及び前記１つ以上のプロセッサに結合され、構成アプリケーションをその上に格納する、非一時的コンピュータ可読媒体であって、前記１つ以上のプロセッサによって実行されると、前記コンピューティングデバイスに、
前記プロセスプラントのランタイム環境内のプロセスコントローラによって実行されるべき制御モジュールの指示を受信させ、
前記プロセスコントローラをシミュレートする要求を受信させ、前記受信した要求に基づいて、
前記構成データベースを使用して、前記制御モジュールに含まれる各ＤＳＴのそれぞれの仮想デバイス信号タグ（ＤＳＴ）を生成させ、
各仮想ＤＳＴを前記構成データベースのそれぞれの位置に格納させ、
シミュレーション環境において、各ＤＳＴのそれぞれの位置への参照を、前記各仮想ＤＳＴの前記構成データベース内の前記それぞれの位置で置き換えることを含んで、前記プロセスコントローラに対応する仮想コントローラにおける前記制御モジュールをインスタンス化させる、非一時的コンピュータ可読媒体と、を含む、コンピューティングデバイス。
【請求項２】
前記制御モジュールに含まれる第１の特定のＤＳＴがフィールドデバイスに割り当てられ、
前記第１の特定のＤＳＴの前記それぞれの仮想ＤＳＴは、前記第１の特定のＤＳＴに対応し前記フィールドデバイス用に構成されたＤＳＴオブジェクトのインスタンスに格納されたデータのコピーを含む、請求項１に記載のコンピューティングデバイス。
【請求項３】
前記制御モジュールに含まれる第２の特定のＤＳＴは、いずれのフィールドデバイスにも割り当てられていないか、またはいずれのフィールドデバイスにも対応付けられていないかのいずれかであり、
前記第２の特定のＤＳＴの前記それぞれの仮想ＤＳＴは、前記第２の特定のＤＳＴのタイプに対応するテンプレートオブジェクトのコピーを含み、前記テンプレートオブジェクトの前記コピーはデフォルトパラメータ値を格納する、請求項１に記載のコンピューティングデバイス。
【請求項４】
前記コンピューティングデバイスは、前記プロセスプラントの資産オブジェクトシステムに通信可能に接続されており、前記資産オブジェクトシステムは、デバイスプレースホルダオブジェクトを格納する、請求項１に記載のコンピューティングデバイス。
【請求項５】
前記制御モジュールに含まれる第３の特定のＤＳＴは、いずれのフィールドデバイスにも割り当てられず、
前記第３の特定のＤＳＴの前記それぞれの仮想ＤＳＴは、前記資産オブジェクトシステムに格納された前記第３の特定のＤＳＴのためのデバイスプレースホルダオブジェクトのコピーを含む、請求項４に記載のコンピューティングデバイス。
【請求項６】
前記制御モジュールに含まれる第４の特定のＤＳＴは、前記フィールドデバイスに対応付けられず、
前記第４の特定のＤＳＴの前記それぞれの仮想ＤＳＴは、前記資産オブジェクトシステムに格納された前記第４の特定のＤＳＴのためのデバイスプレースホルダオブジェクトの
コピーを含む、請求項４に記載のコンピューティングデバイス。
【請求項７】
前記構成アプリケーションはさらに、前記コンピューティングデバイスに、
前記制御モジュールのための入力値の指示を受信させ、
前記仮想コントローラへの入力と関連付けられた仮想ＤＳＴに前記入力値を提供することによって前記制御モジュールを実行する前記プロセスコントローラをシミュレートさせる、請求項１に記載のコンピューティングデバイス。
【請求項８】
前記制御モジュールを実行する前記プロセスコントローラの前記シミュレーションは、前記仮想コントローラの出力と関連付けられた仮想ＤＳＴを介して出力値を生成し、前記仮想コントローラによって生成された前記出力値は、前記入力値に基づいている、請求項７に記載のコンピューティングデバイス。
【請求項９】
前記構成アプリケーションはさらに、前記コンピューティングデバイスに、前記制御ルーチンを前記プロセスコントローラにダウンロードさせる、請求項１に記載のコンピューティングデバイス。
【請求項１０】
プロセスプラント内のモジュールの入力／出力（Ｉ／Ｏ）を仮想化するための方法であって、
少なくとも１つの構成アプリケーションを実行する１つ以上のプロセッサによって、前記プロセスプラントのランタイム環境内のプロセスコントローラによって実行されるべき制御モジュールの指示を受信することと、
前記１つ以上のプロセッサによって、前記プロセスコントローラをシミュレートする要求を受信することと、前記要求を受信すると、
前記構成データベースにアクセスすることによって、前記制御モジュールに含まれる各ＤＳＴのそれぞれの仮想デバイス信号タグ（ＤＳＴ）を生成することと、
各仮想ＤＳＴを前記構成データベースのそれぞれの位置に格納することと、
各ＤＳＴのそれぞれの位置への参照を、前記各仮想ＤＳＴの前記構成データベース内の前記それぞれの位置で置き換えることを含んで、前記プロセスコントローラに対応する仮想コントローラにおける前記制御モジュールをインスタンス化することを含む、方法。
【請求項１１】
前記制御モジュールに含まれる第１の特定のＤＳＴがフィールドデバイスに割り当てられ、
前記第１の特定のＤＳＴの前記それぞれの仮想ＤＳＴを生成することは、前記第１の特定のＤＳＴに対応し前記フィールドデバイス用に構成されたＤＳＴオブジェクトのインスタンスに格納されたデータのコピーを生成することを含む、請求項１０に記載の方法。
【請求項１２】
前記制御モジュールに含まれる第２の特定のＤＳＴは、いずれのフィールドデバイスにも対応付けられず、
前記第２の特定のＤＳＴの前記それぞれの仮想ＤＳＴを生成することは、前記第２の特定のＤＳＴのタイプに対応するテンプレートオブジェクトのコピーを生成することを含み、前記テンプレートオブジェクトの前記コピーはデフォルトパラメータ値を格納する、請求項１０に記載の方法。
【請求項１３】
前記制御モジュールに含まれる第３の特定のＤＳＴは、いずれのフィールドデバイスにも割り当てられず、
前記第３の特定のＤＳＴの前記それぞれの仮想ＤＳＴを生成することは、資産オブジェクトシステムに格納された前記第３の特定のＤＳＴのためのデバイスプレースホルダオブジェクトのコピーを生成することを含む、請求項１０に記載の方法。
【請求項１４】
前記制御モジュールに含まれる第４の特定のＤＳＴは、いずれのフィールドデバイスにも対応付けられず、
前記第４の特定のＤＳＴの前記それぞれの仮想ＤＳＴを生成することは、資産オブジェクトシステムに格納された前記第４の特定のＤＳＴのためのデバイスプレースホルダオブジェクトのコピーを生成することを含む、請求項４に記載のコンピューティングデバイス。
【請求項１５】
前記１つ以上のプロセッサによって、前記制御モジュールのための入力値の指示を受信することと、
前記仮想コントローラへの入力と関連付けられた仮想ＤＳＴに前記入力値を提供することによって前記制御モジュールを実行する前記プロセスコントローラをシミュレートすることと、をさらに含む、請求項１０に記載の方法。
【請求項１６】
前記制御モジュールを実行する前記プロセスコントローラを前記シミュレートすることは、前記仮想コントローラの出力と関連付けられた仮想ＤＳＴを介して出力値を得ることを含み、前記仮想コントローラによって生成された前記出力値は、前記入力値に基づいている、請求項１５に記載の方法。
【請求項１７】
前記１つ以上のプロセッサによって、前記制御モジュールへの変更を検出することと、
前記１つ以上のプロセッサによって、前記検出された変更を含むように前記仮想コントローラをリフレッシュすることと、
前記１つ以上のプロセッサによって、前記リフレッシュされた仮想コントローラを使用して更新されたシミュレーションを実行することと、をさらに含む、請求項１０に記載の方法。
【請求項１８】
前記１つ以上のプロセッサによって、前記制御ルーチンを前記プロセスコントローラにダウンロードすることをさらに含む、請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、「コミッショニングのためのＩ／Ｏ仮想化」と題された２０１７年１０月２日に出願された米国仮特許出願第ＵＳ６２／５６７，１１０号の出願日の優先権及び利益を主張し、その開示の全体は、参照により本明細書に明確に組み込まれる。
【０００２】
本開示は、一般にプロセスプラント及びプロセス制御システムに関し、より具体的には、コントローラのコミッショニングを容易にするためにプロセス制御システムのＩ／Ｏ構成要素を仮想化することに関する。
【背景技術】
【０００３】
物理的物質または生産物を製造、精製、変形、生成、または生産するための、化学、石油、工業、または他のプロセスプラントにおいて使用されるもの等の分散型プロセス制御システムは、典型的には、アナログバス、デジタルバス、またはアナログ／デジタル結合バスを介して、あるいは無線通信リンクまたはネットワークを介して、１つ以上のフィールドデバイスと通信可能に連結される、１つ以上のプロセスコントローラを含む生産物。例えば、バルブ、バルブポジショナ、スイッチ、及びトランスミッタ（例えば、温度センサ、圧力センサ、レベルセンサ、及び流量センサ）である場合があるフィールドデバイスは、プロセス環境内に位置付けられ、概して、バルブの開放または閉鎖、温度もしくは圧力等のプロセスパラメータ及び／または環境パラメータの測定等の物理的またはプロセス制御機能を実行して、プロセスプラントまたはシステム内で実行中の１つ以上のプロセスを制御する。周知のＦｉｅｌｄｂｕｓプロトコルに準拠するフィールドデバイス等のスマートフィールドデバイスは、制御計算、アラーム機能、及びコントローラ内で一般に実装される他の制御機能もまた実行し得る。プロセスコントローラは、これもまた典型的にはプラント環境内に位置付けられるが、フィールドデバイスによって行われるプロセス測定を指示する信号及び／またはフィールドデバイスに関する他の情報を受信し、例えば、プロセス制御判断を行い、受信した情報に基づき制御信号を生成し、ＨＡＲＴ（登録商標）、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）、及びＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓフィールドデバイス等の、フィールドデバイスで実行される制御モジュールまたはブロックと連携する、異なる制御モジュールを実行するコントローラアプリケーションを実行する。コントローラ内の制御モジュールは、通信ラインまたはリンクを経由して、フィールドデバイスに制御信号を送信し、それによって、プロセスプラントまたはシステムの少なくとも一部分の動作を制御し、プラントまたはシステム内部で稼働または実行している１つ以上の工業プロセスの少なくとも一部分を、例えば、制御する。例えば、コントローラ及びフィールドデバイスは、プロセスプラントまたはシステムによって制御されているプロセスの少なくとも一部分を制御する。Ｉ／Ｏデバイスは、これもまた典型的にはプラント環境内に位置付けられ、典型的にはコントローラと１つ以上のフィールドデバイスとの間に配設され、それらの間の通信を、例えば、電気信号をデジタル値に変換することによって可能にし、逆の場合も同様である。
【０００４】
フィールドデバイス及びコントローラからの情報は、典型的には制御室もしくはより過酷なプラント環境からは離れた他の場所に設置される、オペレータワークステーション、パーソナルコンピュータまたはコンピューティングデバイス、データ履歴、レポートジェネレータ、集中データベース、または他の集中管理コンピューティングデバイス等の、１つ以上の他のハードウェアデバイスに対して、通常、通信ネットワークを経由して利用可能にされる。これらのハードウェアデバイスの各々は、典型的には、プロセスプラントにわたって、またはプロセスプラントの一部分にわたって集中化される。これらのハードウ
ェアデバイスは、例えば、プロセス制御ルーチンの設定の変更、コントローラまたはフィールドデバイス内の制御モジュールのオペレーションの修正、プロセスの現在の状態の閲覧、フィールドデバイス及びコントローラによって生成されたアラームの閲覧、人員の訓練もしくはプロセス制御ソフトウェアのテストを目的としたプロセスの動作のシミュレーション、構成データベースの保守及び更新等の、プロセスの制御及び／またはプロセスプラントの動作に関する機能を、オペレータが実行することを可能にし得るアプリケーションを実行する。ハードウェアデバイス、コントローラ及びフィールドデバイスによって利用される通信ネットワークは、有線通信経路、無線通信経路、または有線及び無線通信経路の組み合わせを含むことができる。
【０００５】
例として、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔによって販売されている、ＤｅｌｔａＶ（商標）制御システムは、プロセスプラント内の多様な場所に位置付けられている異なるデバイス内に記憶され、それら異なるデバイスによって実行される複数のアプリケーションを含む。１つ以上のワークステーションまたはコンピューティングデバイス内に備わる構成アプリケーションは、ユーザがプロセス制御モジュールを作成または変更し、通信ネットワークを経由してこれらのプロセス制御モジュールを専用分散型コントローラにダウンロードすることを可能にする。典型的には、これらの制御モジュールは、通信可能に相互接続された機能ブロックで構成され、これらの機能ブロックは、それに対する入力に基づき制御スキーム内で機能を実行し、出力を制御スキーム内の他の機能ブロックに提供するオブジェクト指向プログラミングプロトコル内のオブジェクトである。また、構成アプリケーションは、データをオペレータに対して表示するため、かつオペレータによるプロセス制御ルーチン内の設定点等の設定の変更を可能にするために閲覧アプリケーションが使用するオペレータインターフェースを、構成設計者が作成または変更することを可能にし得る。各専用コントローラ、及び一部の場合においては、１つ以上のフィールドデバイスは、実際のプロセス制御機能を実装するために、それらに割り当てられてダウンロードされた制御モジュールを実行するそれぞれのコントローラアプリケーションを記憶及び実行する。１つ以上のオペレータワークステーション（またはオペレータワークステーション及び通信ネットワークと通信可能に接続された１つ以上のリモートコンピューティングデバイス）上で実行され得る閲覧アプリケーションは、コントローラアプリケーションから通信ネットワークを経由してデータを受信し、ユーザーインターフェースを使用してこのデータをプロセス制御システム設計者、オペレータ、またはユーザに表示して、オペレータのビュー、エンジニアのビュー、エンジニアのビュー等の多数の異なるビューのうちのいずれかを提供し得る。データ履歴アプリケーションは、典型的には、通信ネットワークにわたって提供されたデータの一部または全てを収集及び格納するデータ履歴デバイスに格納され、それによって実行される一方で、構成データベースアプリケーションは、現在のプロセス制御ルーチン構成及びそれと関連付けられたデータを格納するために通信ネットワークに取り付られるさらに離れたコンピュータで実行され得る。代わりに、構成データベースは、構成アプリケーションと同じワークステーションに位置付けられてよい。
【０００６】
概して、プロセスプラントまたはシステムのコミッショニングは、プラントまたはシステムの種々の構成要素を、システムまたはプラントが意図されたように動作することができる点まで導くことを包含する。一般に知られているように、物理的プロセス要素（プロセスプラント内でのプロセスを制御するために利用される、例えばバルブ、センサなど）は、例えば、配管計装線図（Ｐ＆ＩＤ）及び／またはプラントフロアレイアウト及び／またはプロセスレイアウトの他のプランまたは「設計図」に従って、プラントのフィールド環境内のそれぞれの位置に設置される。プロセス要素が設置された後、プロセス要素のうちの少なくともいくつかがコミッショニングされる。例えば、プロセスコントローラ、Ｉ／Ｏカードまたはデバイス、フィールドデバイス、サンプリングポイント、及び／または他の要素は、コミッショニングされる対象となる。コミッショニングは、典型的には複数
の動作や活動を含む、入り組んで複雑なプロセスである。例えば、コミッショニングは、とりわけ、設置されたプロセス制御装置（フィールドデバイス、コントローラ、またはＩ／Ｏデバイスまたはフィールドデバイス及びコントローラを相互接続するカード等）のアイデンティティ及びその期待される接続を検証または確認する、プロセス制御システムまたはプラント内のプロセス制御デバイスを一意に識別するタグを決定し提供する、デバイス用のパラメータ、限界値などの初期値を設定または構成する、例えば、デバイスに与えられた信号を操作し、他のテストを実行することによってさまざまな条件下でのデバイスの設置、動作及び挙動の正確さを検証する、等の動作または活動、及び他のコミッショニング活動及び動作を含むことができる。コミッショニング中のデバイス検証は、安全上の理由から、また規制や品質要件に準拠するために重要である。
【０００７】
典型的に、プロセスプラントのコミッショニングは、プロセスプラントのフィールド環境内で設置され、セットアップされ、及び相互接続される物理的デバイス、接続、配線等を必要とする。プラントのバックエンド環境において（例えば、典型的には制御室内またはプラントのより過酷なフィールド環境から離れた他の位置に配置されたオペレータワークステーション、パーソナルコンピュータまたはコンピューティングデバイス、集中データベース、構成ツール等の集中管理コンピューティングデバイスにおいて）、種々のデバイス、それらの構成、及びそれらの相互接続を特に識別及び／または指定するデータが、統合されるか、検証されるかまたはコミッショニングされて、記憶される。
【０００８】
他のコミッショニング動作また活動は、１つ以上のＩ／Ｏデバイス及び１つ以上のフィールドデバイスを含むプロセス制御ループ内の制御ルーチンを実装するプロセスコントローラに関連し得る。そのようなコミッショニング動作または活動は、例えば２〜３例を挙げると、プロセス制御ループに含まれるデバイス間の様々な相互接続にわたって送信された様々な信号が、相互接続の両端で期待される動作、プロセス制御ループの完全性チェックをもたらすことを検証すること、ループ内で実装されるデバイスの実際の物理的接続を示す完成状態Ｉ／Ｏリストを生成することのほかに、他の「インストール済み」データを記録することを含む。
【０００９】
従来、プロセスコントローラのランタイムに実行される制御ルーチンまたは戦略をコミッションするために、バックエンドオペレータは、テストまたはシミュレーションロジックを現場またはフロントエンド環境に配設されたコントローラにダウンロードし、対象制御ルーチンまたは戦略（例えば、これらは１つ以上の制御モジュールとして実装され得る）をコントローラにダウンロードし、ダウンロードされたシミュレーションロジックを実行して、対象制御ルーチンの実行動作を検証する。一例では、ダウンロードされたシミュレーションロジックは、コントローラの入力に相互接続されたシミュレーションモジュールを含む。しかしながら、シミュレーション制御ルーチンがコントローラにダウンロードされると、コミッショニングプロセスのこの部分は、前提条件として、バックエンド環境とコミッショニングされるコントローラとの間、及び／またはＩ／Ｏデバイスとコミッショニングされるコントローラと関連付けられたフィールドデバイスとの間の、物理的経路を必要とする。したがって、いくつかの態様では、プロセスプラントの信号経路のコミッショニング及び／またはＩ／Ｏ及びフィールドデバイスのコミッショニングは、制御ルーチンのコミッショニングをゲート制御し、それによりプロセスプラントのコミッションにかかる時間を延ばす。
【００１０】
加えて、フィールドエンジニアがフィールド環境内でフィールドデバイスをコミッションするので、フィールドエンジニアは、新たにコミッショニングされたフィールドデバイスをコントローラに割り当てることができる。同様に、フィールドエンジニアは、フィールドデバイスを異なるコントローラに割り当てるなどして、コントローラに既に割り当てられているフィールドデバイスを変更することができる。したがって、バックエンドオペ
レータは、コミッショニング中にシミュレーションを行う際及び制御ルーチン及びループのテストを行う際に、これらの変更及び同様の変更の責任を担い、制御ルーチンを調整してコントローラに再ダウンロードしなければならない。
【発明の概要】
【００１１】
コントローラのコミッショニングを容易にするために入出力（Ｉ／Ｏ）を仮想化するため（例えば、Ｉ／Ｏブロック及び／またはＩ／Ｏデバイスの他の部分を仮想化するため）の技術、システム、装置、構成要素、デバイス、及び方法が本明細書に開示される。そのような技術、システム、装置、構成要素、デバイス、及び方法は、工業プロセス制御システム、環境、及び／またはプラントに対して適用することができ、これらは本明細書においては交換可能に、「工業制御」、「プロセス制御」、もしくは「プロセス」システム、環境、及び／またはプラントとも呼ばれる。典型的には、そのようなシステム及びプラントは、分散型の様式で、生の物理的物質を製造、精製、または変形し、生産物を生成または生産するように動作する、１つ以上のプロセス（本明細書では、“産業プロセス”とも呼ばれる）の制御を提供する。
【００１２】
プロセス制御システム及び／またはプラントのコミッショニング中のＩ／Ｏ仮想化は、コミッショニングプロセスの少なくとも一部が非同期的に実行されることを可能にする様々な技術、システム、装置、構成要素及び／または方法を含み、そのため、コントローラ及びコントローラによって制御されるデバイスは、全体としてプラントまたはシステムに組み込まれるかまたは統合される前に、部分的または全体的にでさえコミッショニングされ得る。コミッショニング中のＩ／Ｏ仮想化は、例えば、プロセス制御システムの様々な部分及び／またはそれらのそれぞれの安全計装システム（ＳＩＳ）（例えば、スタンドアロンまたは統合された安全システム（ＩＣＳＳ））または基本プロセス制御システム（ＢＰＣＳ）が、プロセスプラントの常駐位置または現場で一つにまとめられ統合される前に、異なる地理的位置で（例えば、異なる「モッドヤード」で）構築され、少なくとも部分的にコミッショニングされることを可能にする。ある意味では、Ｉ／Ｏ仮想化により、コミッショニング活動及び動作が並行して行われる。
【００１３】
例えば、Ｉ／Ｏ仮想化は、コミッショニング活動及び／または動作の（ほとんどでない場合）一部がプロセスプラントのフィールド環境内やバックエンド環境内で独立して（実際には必要に応じて並行して）実行されることを可能にする。フィールド環境で実装された設計とエンジニアリングのコミッショニングは、バックエンド環境で実行されてほとんどは完了される機能設計、エンジニアリング、及びコミッショニングの進捗（及び完了）にはもはや依存しない。このように、バックエンド環境の機能的構成要素または論理的構成要素のコミッショニングの重要な部分は、フィールド環境の物理的構成要素のローカルコミッショニング活動とは独立して実行することができ、その逆も同様である。つまり、フィールド環境及びバックエンド環境のいずれかにおけるコミッショニング活動及び動作の少なくとも一部は、フィールド環境及びバックエンド環境が通信可能に切断されている間、例えば、フィールド環境に設置された（または設置されている）ループ（またはその一部）がバックエンド環境から通信可能に切断されている間に、実行されてもよい。例えば、Ｉ／Ｏ仮想化技術を使用して、プロセス制御システムまたはプラントがフィールドデバイスの特定のＩ／Ｏカード及び／またはチャネルへの割り当て、及び／またはプロセスコントローラの特定のＩ／Ｏカード及び／またはチャネルへの割り当ての知識を有する前に、フィールド環境及び／またはバックエンド環境におけるコミッショニング活動及び動作の少なくとも一部を実行することができる。
【００１４】
同様に、プロセスプラントにおいて制御ルーチンを実装するプロセスコントローラに関して、Ｉ／Ｏ仮想化は、コントローラに関連する様々なコミッショニング活動及び／または動作が、制御ループに含まれるすべての構成要素が最初に設置され相互接続される必要
なく実行されることを可能にする。例えば、仮想Ｉ／Ｏオブジェクトは、まだコミッショニングされていない構成要素（例えば、Ｉ／Ｏデバイス、フィールドデバイスなど）のＩ／Ｏを例えば制御ルーチンにシミュレートするために生成されてもよい。したがって、制御ループ内の制御ルーチンを実装するコントローラのコミッショニング活動の少なくとも一部は、制御ループの様々な構成要素が切断されている間、または互いに対して、フィールドデバイスに対して、及び／またはバックエンド環境に対してまだ割り当てられていない間に、実行されてもよい。このように、それぞれのコミッショニング活動は、プロセスプラントのバックエンド環境及びフィールド環境の両方で、２つの環境が通信可能に切断されているかまたは部分的にのみ接続される間に、開始及び実行されてもよい。
【００１５】
その結果、Ｉ／Ｏ仮想化により、プロセスプラントのフィールド環境で実行される物理的設計及びエンジニアリングが、プロセスプラントのバックエンド環境で実行される機能設計及びエンジニアリングとは独立して進行することが可能になり、さらに、Ｉ／Ｏ仮想化により、制御ループの構成要素の区分的コミッションが独立してまたは設置時の状態に基づいて実行されることが可能になるので、バックエンドとフィールドとの間のコミッショニングのスケジューリングの依存関係が削減され、プロセスプラントをコミッショニングするために必要な全体的なカレンダー時間も短縮される。したがって、Ｉ／Ｏ仮想化は、時間と人員両方のリソースを大幅に削減し、ひいてはコストを大幅に削減しながら、コミッショニングプロセス全体を最適化する。
【図面の簡単な説明】
【００１６】
【図１】本明細書に記載されたＩ／Ｏ仮想化技術の１つ以上を利用することによって、その少なくとも一部がコミッショニングされ得る例示的なシステムプロセスプラントを示すブロック図を描画する。
【図２Ａ】モジュール、アプリケーション、及びインターフェースプログラム等のバックエンド構成要素に対してコミッショニング動作を構成及び実行する能力を提供するプロセスまたは産業プラントのバックエンドシステム内の例示的な構成要素の図を示し、プラント内のＩ／Ｏネットワークを介して接続及び／または割り当てられる前のフィールド機器を含む。
【図２Ｂ】モジュール、アプリケーション、及びインターフェースプログラム等のバックエンド構成要素に対してコミッショニング動作を構成及び実行する能力を提供するプロセスまたは産業プラントのバックエンドシステム内の例示的な構成要素の図を示し、プラント内のＩ／Ｏネットワークを介して接続及び／または割り当てられる前のフィールド機器を含む。
【図２Ｃ】フィールド機器がプラント内のＩ／Ｏネットワークを介して接続及び／または割り当てられる前に、バックエンドシステム構成要素を構成及びコミッショニングするときに、フィールド機器へのプロキシとして仮想デバイス信号タグ（ＤＳＴ）と通信するための例示的なシステムを描画する。
【図３】図１のプロセスプラント内のコントローラによって実装される制御ルーチンの指示を含む構成アプリケーションによって提示される例示的な画面表示を示す。
【図４】図１のプロセスプラントの制御モジュールのシミュレーションを可能にするユーザコントロールを提供する構成アプリケーションによって提示される例示的な画面表示を示す。
【図５】図１のプロセスプラントの仮想ＤＳＴの入力値をシミュレートするユーザコントロールを提供するシミュレーションアプリケーションによって提示される例示的な画面表示を示す。
【図６】図１のプロセスプラントの仮想コントローラの出力を示すシミュレーションアプリケーションによって提示される例示的な画面表示を示す。
【図７】Ｉ／Ｏデバイスを仮想化する例示的な方法のフロー図を描画する。
【発明を実施するための形態】
【００１７】
上述のように、オンライン時、１つ以上の産業プロセスをリアルタイムで制御するように動作するプロセスプラント、プロセス制御システム、またはプロセス制御環境は、本明細書に記載されたＩ／Ｏ仮想化技術、システム、装置、構成要素、デバイス、及び／または方法の１つ以上を利用して、コミッショニングされ得る。プロセスプラントは、コミッショニングされてオンラインで動作するとき、プロセスプラント内で実行される１つ以上のプロセスを制御するために、プロセス制御システムと協働して物理的機能を実行する１つ以上の有線または無線プロセス制御デバイス、構成要素または要素を含む。プロセスプラント及び／またはプロセス制御システムは、例えば、１つ以上の有線通信ネットワーク及び／１つ以上の無線通信ネットワークを含んでもよい。加えて、プロセスプラントまたは制御システムは、連続、バッチ、資産管理、履歴、及び他の種類のデータベースなどの集中データベースを含んでもよい。
【００１８】
説明するために、図１は、本明細書に記載されたＩ／Ｏ仮想化技術のうちの任意の１つ以上を使用することによって、その少なくとも一部分がコミッショニングされた例示的なプロセスプラント、プロセス制御システム、またはプロセス制御環境５のブロック図である。プロセスプラント５は、フィールドデバイスによって行われたプロセス測定を示す信号を受信し、この情報を処理して制御ルーチンを実装し、有線または無線プロセス制御通信リンクまたはネットワークを経由して他のフィールドデバイスに送信されてプラント５内のプロセスの動作を制御する制御信号を生成する１つ以上のプロセスコントローラ（本明細書では互換的に「コントローラ」とも呼ばれる）を含む。典型的には、少なくとも１つのフィールドデバイスが物理的機能（例えば、バルブの開閉、温度の上昇または下降、測定、状態の検知など）を実行し、プロセスの動作を制御する。いくつかのタイプのフィールドデバイスは、Ｉ／Ｏデバイス（本明細書では互換的に「Ｉ／Ｏカード」とも呼ばれる）を使用することによってコントローラと通信する。プロセスコントローラ、フィールドデバイス及びＩ／Ｏデバイスは、有線または無線であってよく、任意の数及び組み合わせの有線及び無線プロセスコントローラ、フィールドデバイス及びＩ／Ｏデバイスが、プロセスプラント環境またはシステム５内に含まれてよい。
【００１９】
例えば、図１は、プロセスコントローラ１１を示し、このプロセスコントローラは、Ｉ／Ｏカード２６及び２８を介して、有線フィールドデバイス１５〜２２に通信可能に接続され、無線ゲートウェイ３５及びプロセス制御データハイウェイまたはバックボーン１０を介して無線フィールドデバイス４０〜４６に通信可能に接続される。プロセス制御データハイウェイ１０は、１つ以上の有線及び／または無線通信リンクを含むことができ、例えば、イーサネットプロトコルなどの任意の所望のまたは好適なまたは通信プロトコルを使用して実装することができる。ある構成（図示せず）において、コントローラ１１は、バックボーン１０以外の１つ以上の通信ネットワークを使用して、１つ以上の通信プロトコル、例えば、Ｗｉ−Ｆｉまたは他のＩＥＥＥ８０２．１１に準拠する無線ローカルエリアネットワークプロトコル、移動体通信プロトコル（例えば、ＷｉＭＡＸ、ＬＴＥ、もしくは他のＩＴＵ−Ｒ対応プロトコル）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＨＡＲＴ（登録商標）、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）、Ｐｒｏｆｉｂｕｓ、ＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓなどをサポートする、任意の数の他の有線または無線通信リンクの使用等によって、無線ゲートウェイ３５と通信可能に接続される。
【００２０】
コントローラ１１は、例として、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔによって販売されている、ＤｅｌｔａＶ（商標）コントローラであり得るが、フィールドデバイス１５〜２２及び４０〜４６のうちの少なくともいくつかを使用して、バッチプロセスまたは連続プロセスを実装するように動作してよい。ある実施形態においては、プロセス制御データハイウェイ１０に対して通信可能に接続されるのに加えて、コントローラ１１はまた、例えば標準的な４〜２０ｍＡデバイス、Ｉ／Ｏカード２６、２８、及び
／またはＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓプロトコル、ＨＡＲＴ（登録商標）プロトコル、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）プロトコル等の任意のスマート通信プロトコルと関連付けられた、任意の所望のハードウェア及びソフトウェアを使用して、フィールドデバイス１５〜２２及び４０〜４６のうちの少なくともいくつかとも通信可能に接続される。図１において、コントローラ１１、フィールドデバイス１５〜２２及びＩ／Ｏカード２６、２８は、有線デバイスであり、フィールドデバイス４０〜４６は、無線フィールドデバイスである。当然ながら、有線フィールドデバイス１５〜２２及び無線フィールドデバイス４０〜４６は、任意の他の所望の規格（複数可）またはプロトコル、例えば今後開発される任意の規格またはプロトコルを含む任意の有線または無線プロトコルに適合することができる。
【００２１】
図１のプロセスコントローラ１１は、１つ以上のプロセス制御ルーチン３８（例えば、メモリ３２内に記憶されている）を実装または監督するプロセッサ３０を含む。プロセッサ３０は、フィールドデバイス１５〜２２及び４０〜４６、ならびにコントローラ１１と通信可能に接続されている他のノードと通信するように構成される。本明細書に記載される任意の制御ルーチンまたはモジュールはいずれも、そのように所望される場合は、その一部を異なるコントローラまたは他のデバイスによって実装または実行させてもよいことに留意されたい。同様に、プロセス制御システム５内で実装される本明細書に記載のプロセス制御ルーチンまたはモジュール３８は、ソフトウェア、ファームウェア、ハードウェア等を含む任意の形態を取ってよい。制御ルーチンは、オブジェクト指向プログラミング、ラダー論理、シーケンシャルファンクションチャート、機能ブロック図を使用したもの、または任意の他のソフトウェアプログラミング言語もしくは設計パラダイムを使用したもの等の任意の所望のソフトウェアフォーマットにおいて実装されてもよい。制御ルーチン３８は、ランダムアクセスメモリ（ＲＡＭ）または読み取り専用メモリ（ＲＯＭ）等の任意の所望の種類のメモリ３２に記憶され得る。同様に、制御ルーチン３８は、例えば１つ以上のＥＰＲＯＭ、ＥＥＰＲＯＭ、特定用途向け集積回路（ＡＳＩＣ）、または任意の他のハードウェアもしくはファームウェア要素にハードコードされてもよい。したがって、コントローラ１１は、任意の所望の様式で制御ストラテジまたは制御ルーチンを実装するように構成することができる。
【００２２】
コントローラ１１は、一般的に機能ブロックと称されるものを使用して制御ストラテジまたは制御ルーチン３８を実装し、各機能ブロックは、全体的な制御ルーチンのオブジェクトまたは他の部分（例えば、サブルーチン）であり、（リンクと呼ばれる通信を介して）他の機能ブロックと共に動作して、プロセス制御システム５内でプロセス制御ループを実装する。制御ベースの機能ブロックは、典型的には、トランスミッタ、センサまたは他のプロセスパラメータ測定デバイスと関連付けられた入力機能、ＰＩＤ、ファジー論理等の制御を実行する制御ルーチンと関連付けられた制御機能、またはバルブ等のいくつかのデバイスの動作を制御してプロセス制御システム５内のいくつかの物理的機能を実行する出力機能、のうちの１つを実行する。無論、ハイブリッド及び他の種類の機能ブロックが存在する。機能ブロックはコントローラ１１内に記憶され、それによって実行されてもよく、これは典型的には、これらの機能ブロックが標準的な４〜２０ｍＡデバイス及びＨＡＲＴ（登録商標）デバイス等のいくつかの種類のスマートフィールドデバイス用に使用されるかあるいはそれと関連するときに成り立ち、あるいは機能ブロックは、フィールドデバイスそのものの内部に記憶され、それによって実装されてもよく、これはＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓデバイスの場合に成り立ち得る。コントローラ１１は、機能ブロックのうちの１つ以上を実行することで実行される１つ以上の制御ループを実装し得る１つ以上の制御ルーチン３８を含んでもよい。
【００２３】
有線フィールドデバイス１５〜２２は、センサ、バルブ、トランスミッタ、ポジショナ等の任意の種類のデバイスであってよく、一方でＩ／Ｏカード２６及び２８は、任意の所
望の通信またはコントローラプロトコルに適合する任意のタイプのＩ／Ｏデバイスであってもよい。図１では、フィールドデバイス１５〜１８は、アナログ回線またはアナログデジタル結合回線を経由してＩ／Ｏカード２６と通信する標準的な４〜２０ｍＡデバイスまたはＨＡＲＴ（登録商標）デバイスであり、一方で、フィールドデバイス１９〜２２は、ＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓ通信プロトコルを使用してデジタルバスを経由してＩ／Ｏカード２８と通信する、ＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓフィールドデバイス等のスマートデバイスである。しかし、いくつかの実施形態では、有線フィールドデバイス１５、１６及び１８〜２１のうちの少なくともいくつかならびに／またはＩ／Ｏカード２６、２８のうちの少なくともいくつかは、加えてまたは代わりに、プロセス制御データハイウェイ１０を使用して、及び／または他の好適な制御システムプロトコル（例えば、プロフィスバス、ＤｅｖｉｃｅＮｅｔ、Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓ、ＣｏｎｔｒｏｌＮｅｔ、Ｍｏｄｂｕｓ、ＨＡＲＴ等）を使用することによって、コントローラ１１と通信し得る。
【００２４】
図１では、無線フィールドデバイス４０〜４６は、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）プロトコル等の無線プロトコルを使用して、無線プロセス制御通信ネットワーク７０を介して通信する。そのような無線フィールドデバイス４０〜４６は、（例えば、無線プロトコルまたは別の無線プロトコルを使用して）無線通信するようにも構成される無線ネットワーク７０の１つ以上の他のデバイスまたはノードと直接通信し得る。無線で通信するようには構成されていない１つ以上の他のノードと通信するために、無線フィールドデバイス４０〜４６は、プロセス制御データハイウェイ１０または別のプロセス制御通信ネットワークに接続される無線ゲートウェイ３５を利用してよい。無線ゲートウェイ３５は、無線通信ネットワーク７０の種々の無線デバイス４０〜５８へのアクセスを提供する。特に、無線ゲートウェイ３５は、無線デバイス４０〜５８、有線デバイス１１〜２８、及び／またはプロセス制御プラント５の他のノードまたはデバイス間の通信可能な結合を提供する。例えば、無線ゲートウェイ３５は、プロセス制御データハイウェイ１０を使用することによって、及び／またはプロセスプラント５の１つ以上の他の通信ネットワークを使用することによって、通信可能な結合を提供する。
【００２５】
有線フィールドデバイス１５〜２２と同様に、無線ネットワーク７０の無線フィールドデバイス４０〜４６は、プロセスプラント５内で、物理的制御機能、例えば、バルブの開放もしくは閉鎖、またはプロセスパラメータの測定値の取得を実行する。しかしながら、無線フィールドデバイス４０〜４６は、ネットワーク７０の無線プロトコルを使用して通信するように構成されている。このように、無線フィールドデバイス４０〜４６、無線ゲートウェイ３５、及び無線ネットワーク７０の他の無線ノード５２〜５８は、無線通信パケットの生産者でありコンシューマである。
【００２６】
プロセスプラント５のいくつかの構成では、無線ネットワーク７０は、非無線デバイスを含む。例えば、図１では、図１のフィールドデバイス４８は、従来の４−２０ｍＡデバイスであり、フィールドデバイス５０は、有線ＨＡＲＴ（登録商標）デバイスである。ネットワーク７０内で通信するために、フィールドデバイス４８及び５０は、無線アダプタ５２ａ、５２ｂを介して無線通信ネットワーク７０に接続される。無線アダプタ５２ａ、５２ｂは、ＷｉｒｅｌｅｓｓＨＡＲＴ等の無線プロトコルをサポートし、かつＦｏｕｎｄａｔｉｏｎ（登録商標）Ｆｉｅｌｄｂｕｓ、ＰＲＯＦＩＢＵＳ、ＤｅｖｉｃｅＮｅｔ等の１つ以上の他の通信プロトコルもサポートし得る。加えて、いくつかの構成では、無線ネットワーク７０は、無線ゲートウェイ３５と有線通信する独立した物理デバイスであり得るか、または一体型デバイスとして無線ゲートウェイ３５内に提供され得る、１つ以上のネットワークアクセスポイント５５ａ、５５ｂを含む。また、無線ネットワーク７０はまた、無線通信ネットワーク７０内の１つの無線デバイスから別の無線デバイスにパケットを転送するための１つ以上のルータ５８を含み得る。図１では、無線デバイス４０〜４６
及び５２〜５８は、無線通信ネットワーク７０の無線リンク６０を経由して、及び／またはプロセス制御データハイウェイ１０を介して、互いに、及び無線ゲートウェイ３５と通信する。
【００２７】
図１では、プロセス制御システム５は、データハイウェイ１０に通信可能に接続された１つ以上のオペレータワークステーション７１を含む。オペレータワークステーション７１を介して、オペレータは、プロセスプラント５のランタイム動作を閲覧及び監視することができ、そのほか、必要であり得る任意の診断、是正、保守、及び／または他の処置を取り得る。オペレータワークステーション７１のうちの少なくともいくつかは、プラント５内またはその近くのさまざまな防護領域内に位置付けられてよく、いくつかの状況では、オペレータワークステーション７１のうちの少なくともいくつかは、遠隔に位置付けられるが、それにもかかわらずプラント５と通信可能に接続されてよい。オペレータワークステーション７１は、有線または無線コンピューティングデバイスであり得る。
【００２８】
例示的なプロセス制御システム５は、構成アプリケーション７２ａ及び構成データベース７２ｂを含むものとしてさらに示され、それら各々は、データハイウェイ１０にも通信可能に接続される。上述のように、構成アプリケーション７２ａの様々なインスタンスは、１つ以上のコンピューティングデバイス（図示せず）上で実行されることができ、ユーザ（例えば、構成エンジニア）によるプロセス制御モジュールの作成または変更、及びこれらのモジュールを、データハイウェイ１０を介して、コントローラ１１へのダウンロードを可能にしてドラフトプロセス制御モジュールのシミュレーションまたはテストのためのコントローラ１１のうちの１つを表す仮想コントローラを生成し、ならびに、オペレータがそれを介してプロセス制御ルーチン内でデータを閲覧しデータ設定を変更することができるオペレータインターフェースのユーザによる作成または変更を可能にする。構成データベース７２ｂは、テンプレートモジュール、制御モジュール、表示モジュール、及び／またはオペレータインターフェースを含む、作成された（例えば、構成された）モジュールを格納する。概して、構成アプリケーション７２ａ及び構成データベース７２ｂは、構成アプリケーション７２ａのうちの複数のインスタンスが、プロセス制御システム５内で同時に実行され得るにもかかわらず、集中化され、プロセス制御システム５に対して単一の論理的外観を有してよく、構成データベース７２ｂは、複数のデータ記憶デバイスにまたがって実装され得る。したがって、構成アプリケーション７２ａ、構成データベース７２ｂ、及びそれに対するユーザインターフェース（図示せず）は、制御及び／または表示モジュール用の構成または開発システム７２を含む。典型的には、構成システム７２用のユーザーインターフェースは、プラント５がリアルタイムで動作しているかどうかにかかわらず、構成エンジニア及び開発エンジニアによって利用されるので、構成システム７２用のユーザーインターフェースは、オペレータワークステーション７１とは異なるが、必ずしもそうである必要はないのに対して、オペレータワークステーション７１は、プロセスプラント５のリアルタイム動作（ここでは互換的にプロセスプラント５の「ランタイム」動作とも呼ばれる）中にオペレータによって利用される。
【００２９】
また、例示のプロセス制御システム５は、データ履歴アプリケーション７３ａ及びデータ履歴データベース７３ｂを含み、それら各々がまた、データハイウェイ１０に通信可能に接続される。データ履歴アプリケーション７３ａは、データハイウェイ１０をわたって提供されたデータのいくつかまたはすべてを収集し、長期にわたる記憶のために、データを履歴化するか、または履歴データベース７３ｂ内に記憶するように動作する。構成アプリケーション７２ａ及び構成データベース７２ｂと同様に、データ履歴アプリケーション７３ａ及び履歴データベース７３ｂは、データ履歴アプリケーション７３ａのうちの複数のインスタンスが、プロセス制御システム５内で同時に実行され得るにも関わらず、集中化され、プロセス制御システム５に対して単一の論理的外観を有してよく、データ履歴７３ｂは、複数の物理的データ記憶デバイスにまたがって実装されてよい。
【００３０】
いくつかの構成では、プロセス制御システム５は、Ｗｉ−Ｆｉまたは他のＩＥＥＥ８０２．１１準拠の無線ローカルエリアネットワークプロトコル、ＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）または他のＩＴＵ−Ｒ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ  Ｒａｄｉｏ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｅｃｔｏｒ（国際電気通信連合無線通信部門））互換性プロトコルなどのモバイル通信プロトコル、近距離無線通信（ＮＦＣ）及びＢｌｕｅｔｏｏｔｈなどの短波無線通信などの他の無線プロトコル、または他の無線通信プロトコルを使用して他のデバイスと通信する１つ以上の他の無線アクセスポイント７４を含む。典型的には、そのような無線アクセスポイント７４は、無線ネットワーク７０とは異なり、かつ無線ネットワーク７０とは異なる無線プロトコルをサポートする、それぞれの無線プロセス制御通信ネットワークを経由して、手持ち式または他の携帯用コンピューティングデバイス（例えば、ユーザーインターフェースデバイス７５）による通信を可能にする。例えば、無線または携帯用ユーザーインターフェースデバイス７５は、プロセスプラント５内のオペレータ（例えば、オペレータワークステーション７１のうちの１つのインスタンス）によって利用される、モバイルワークステーションまたは診断試験機器であってよい。いくつかのシナリオでは、携帯用コンピューティングデバイスに加えて、１つ以上のプロセス制御デバイス（例えば、コントローラ１１、フィールドデバイス１５〜２２、または無線デバイス３５、４０〜５８）もまた、アクセスポイント７４によってサポートされる無線プロトコルを使用して通信する。
【００３１】
いくつかの構成では、プロセス制御システム５は、即時プロセス制御システム５の外部にあるシステムへの１つ以上のゲートウェイ７６、７８を含む。典型的には、そのようなシステムは、プロセス制御システム５によって生成または操作される情報の顧客または供給者である。例えば、プロセス制御プラント５は、即時プロセスプラント５を別のプロセスプラントと通信可能に接続するためのゲートウェイノード７６を含むことができる。追加的または代替的に、プロセス制御プラント５は、即時プロセスプラント５を、実験室システム（例えば、実験室情報管理システムまたはＬＩＭＳ）、オペレータラウンド在庫管理システム、製品在庫管理システム、生産スケジューリングシステム、気象データシステム、出荷及び処理システム、パッケージングシステム、インターネット、別のプロバイダのプロセス制御システム、または他の外部システム等の外部の公私のシステムと通信可能に接続するためのゲートウェイノード７８を含むことができる。
【００３２】
図１は有限数のフィールドデバイス１５〜２２及び４０〜４６、無線ゲートウェイ３５、無線アダプタ５２、アクセスポイント５５、ルータ５８、ならびに例示のプロセスプラント５内に含まれるプロセス制御通信ネットワーク７０と共に単一の無線コントローラ１１を示すのみであるが、これは例示的かつ非限定的実施形態であるに過ぎないことが留意される。任意の数のコントローラ１１がプロセス制御プラントまたはシステム５内に含まれてもよく、コントローラ１１のうちのいずれが、任意の数の有線または無線デバイス及びネットワーク１５〜２２、４０〜４６、３５、５２、５５、５８、及び７０と通信して、プラント５内でのプロセスを制御してもよい。
【００３３】
さらに、図１のプロセスプラントまたは制御システム５は、フィールド環境１２２（例えば、「プロセスプラントフロア１２２」）と、データハイウェイ１０によって通信可能に接続されるバックエンド環境１２５とを含むことが留意される。図１に示されるように、フィールド環境１２２は、その中に配設、設置及び相互接続され、稼働中にプロセスを制御するように動作する物理的構成要素（例えば、プロセス制御デバイス、ネットワーク、ネットワーク要素等）を含む。例えば、コントローラ１１、Ｉ／Ｏカード２６、２８、フィールドデバイス１５〜２２、及び他のデバイス及びネットワーク構成要素４０〜４６
、３５、５２、５５、５８及び７０は、位置付けられるか、配設されるか、さもなければプロセスプラント５のフィールド環境１２２に含まれる。概して言えば、プロセスプラント５のフィールド環境１２２においては、その中に配設された物理的構成要素を使用して原料が受け取られて処理され、１つ以上の製品を生成する。
【００３４】
プロセスプラント５のバックエンド環境１２５は、過酷な状況及びフィールド環境１２２の材料から遮蔽され及び／または保護されたコンピューティングデバイス、オペレータワークステーション、データベースまたはデータバンク等の種々の構成要素を含む。図１を参照すると、バックエンド環境１２５は、例えばオペレータワークステーション７１、モジュール及び他の実行可能モジュールを制御するための構成または開発システム７２、データ履歴システム７３、及び／またはプロセスプラント５のランタイム動作をサポートする他の集中管理システム、コンピューティングデバイス、及び／または機能性を含む。いくつかの構成では、プロセスプラント５のバックエンド環境１２５に含まれる種々のコンピューティングデバイス、データベース、及び他の構成要素及び器機は、異なる物理的位置に物理的に位置付けられ得、そのうちのいくつかは、プロセスプラント５に対してローカルであってもよく、そのうちいくつかはリモートであってもよい。
【００３５】
図２Ａは、フィールド機器がプラント内の様々なＩ／Ｏネットワークカード及び／またはチャネルに接続及び／または割り当てられる前に、バックエンドシステム構成要素（例えば、特にプロセスコントローラに関連するバックエンド構成要素）を作成、テスト、構成及び（少なくとも部分的に）コミッショニングすることを可能にするハードウェアエンティティ及びソフトウェアエンティティを含む例示的なバックエンドシステム２００を示す。バックエンドシステム２００は、例示的な実装において、図１のバックエンド環境１２５に含まれてもよい。
【００３６】
より具体的には、図２Ａに示すように、バックエンドシステム２００は、制御システム２１０、資産管理システム（ＡＭＳ）２１２、及びシミュレーションシステム２１４として示される制御、保守及びシミュレーションシステムを含むことができる。単一のブロックとして簡略化するために示されている制御システム２１０は、図１の様々な異なる処理装置、ユーザーワークステーション、サーバ、及びデータベース等の同じまたは異なる制御システム処理装置に格納されて実行される多くの異なる制御アプリケーション及びデータベースを含むことができる。より具体的には、制御システム２１０は、様々な制御モジュール、制御機能ブロック、制御ユーザーインターフェースアプリケーション、及び他の制御プログラム（例えば、図２Ａに示され、本明細書では制御モジュール２１０Ｂと総称される）を生成するのに使用され得る構成アプリケーション等の１つ以上の制御システム設計アプリケーション２１０Ａを含むことができる。コミッショニング活動を容易にするために制御アプリケーション２１０Ａを使用することができるので、構成アプリケーションを含む制御アプリケーション２１０Ａのいずれも、「コミッショニングツール」と称することができる。制御アプリケーション２１０Ａを使用して生成及び／または修正される制御モジュール２１０Ｂは、フィールド環境１２２内の１つ以上のプロセスコントローラまたは安全システム論理デバイスに、最終的にダウンロードされ、格納され、実行されてもよい。ランタイム中にフィールド環境１２２内の１つ以上のプロセスコントローラまたは安全論理デバイスにおいて実行する場合、制御モジュール２１０Ｂは、制御動作、安全動作を実施するための安全システムルーチンなどを実施する制御ルーチンを実行することができる。ユーザーインターフェース等を有するワークステーションのような１つ以上のバックエンドシステムコンピュータ装置で実行され得る制御ユーザーインターフェースアプリケーションは、制御エンジニア、制御オペレータ、または他の人員がプラント内の活動に基づく様々な制御を実行することを可能にしてもよい。一旦作成されると、そのような制御モジュール、ルーチン、アプリケーション、及びプログラム２１０Ｂは、プロセスプラント５のランタイム中の制御システムのフィールド環境１２２のコントローラ、Ｉ／
Ｏデバイス、フィールドデバイス、データベース、ユーザーインターフェースデバイス、サーバ、処理装置などの様々なものにダウンロードされ実行される。追加的または代替的に、制御モジュール、ルーチン、アプリケーション、及びプログラムは、シミュレーションシステム２１４におけるシミュレーション環境内の仮想コントローラによって実行されてもよい。さらに、作成された制御モジュール２１０Ｂ（例えば、相互接続された様々な機能ブロックで構成され得る）、安全計装モジュール、ユーザーインターフェースモジュール、通信モジュール、分析モジュール、データベースモジュールなどは、構成データベース２１６（図示せず）に格納されてもよい。ある時点で、これらの制御モジュール、プログラム、インターフェース等２１０Ｂは、コミッショニングプロセス中に、プロセスコントローラ、ワークステーション、ユーザーインターフェースデバイス、データベース、サーバなどの様々なコンピュータ処理装置にダウンロードされインストールされることもある。
【００３７】
同様に、資産管理システム（ＡＭＳ）２１２は、保守システムオブジェクト、ユーザーインターフェース、データベースオブジェクト、または他のアプリケーションを作成するのに使用される様々な保守システム作成及び構成アプリケーション２１２Ａ、またはプラント内の保守活動を実行するため、ユーザーワークステーションデバイス、手持ち式デバイス、携帯用コンピューティングデバイスなどを含むプラント内の様々なデバイスに格納されて実行され得るモジュール２１２Ｂを含むことができる。モジュール、オブジェクト、プログラム、及びアプリケーション２１２Ｂは、他の保守システム構成要素と連動してまたはそれによって実行されてもよく、プラント内で移動可能なバックエンドシステムデバイス、手持ち式または携帯用デバイス等の様々なプラットフォームまたはデバイス上で実行されてもよい。さらに、これらのモジュール、アプリケーション、プログラム、インターフェースなどは、プラントの制御システム及び安全計装システム内のデバイスを含む、プロセスまたは産業プラント内のデバイス上の任意の所望のまたは既知のタイプの保守活動を実施するのに使用されてもよい。図２Ａに示すように、ＡＭＳシステム２１２の構成要素は、構成データベース２１６に接続され、情報を格納し、構成データベース２１６から情報を受信し、プラントの動作中に、構成データベース２１６内のデータ、オブジェクト、他の情報を更新または変更するように動作してもよい。
【００３８】
さらに、図２Ａのバックエンド環境２００は、制御システム２１０内のアプリケーション２１０Ａ及び２１２ＡならびにＡＭＳ２１２を使用して開発された、及び／または構成データベース２１６に格納された、制御モジュール２１０Ｂ、安全モジュール２１０Ｂ、通信モジュール２１０Ｂ、資産管理システムモジュール２１２Ｂ、ユーザーインターフェースアプリケーション２１０Ａ及び２１２Ａなどの様々なものをテストするために使用され得る様々なアプリケーション２１４Ａを含み得るシミュレーションシステム２１４を含むものとして示されている。場合によっては、シミュレーションシステムアプリケーション２１４Ａを使用して、制御モジュール２１０Ｂ及び／またはそれぞれのコントローラ２６２のコミッショニングの一部として、制御モジュール及び／または制御ルーチンをテスト及び開発するための仮想コントローラを実行するためのシミュレーション環境を作成してもよい。図２Ａでは、シミュレーションシステムアプリケーション２１４Ａ（シミュレーション環境、１つ以上の仮想コントローラ等）を使用して作成されたシミュレーション構成要素は、参照番号２１４Ｂによって示されている。
【００３９】
バックエンド環境２００がフィールド機器に完全に通信可能に接続される前に、及び／またはＩ／Ｏネットワークがバックエンド環境２００とフィールド機器との間の通信経路を提供するように構成される前に、コミッショニング活動がバックエンド環境２００のソフトウェア及びハードウェア構成要素上で実行されることを可能にするために、バックエンド環境２００は、図２Ｂに示すように、制御システム２１０、ＡＭＳ２１２、シミュレーションシステム２１４、及び構成データベース２１６に通信可能に接続されている資産
オブジェクトシステム２３０を含む。場合によっては、資産オブジェクトシステム２３０は、構成データベース２１６の一部であってもよく、例えば、構成データベース２１６と一体的に実装されてもよい。資産オブジェクトシステム２３０は、その中に様々なデバイスプレースホルダオブジェクト２３２を格納し、一般に、フィールド環境内の各フィールド機器（例えば、各フィールドデバイス）のデバイスプレースホルダオブジェクト２３２ｍを格納する。フィールドデバイスまたは他のハードウェアのデバイスプレースホルダオブジェクトは、一般に、デバイスタグ（ＤＴ）プレースホルダオブジェクト２３２ｍとして示される。加えて、資産オブジェクトシステム２３０は、デバイスの異なる信号またはアドレス指定可能なパラメータごとにデバイスプレースホルダオブジェクトを格納することができ、これらのデバイスプレースホルダオブジェクトは、一般に、デバイス信号タグ（ＤＳＴ）オブジェクト２３２ｎとして示される。ＤＳＴオブジェクト２３２ｎは、デバイス信号タグがルートタグとして対応するデバイスのデバイスタグと同じデバイスタグを使用してもよく、その中に追加のまたは他の情報が含まれてもよい。したがって、ＤＳＴオブジェクト用のデバイスタグ２３２ｎは、信号が属するＤＴオブジェクト用のデバイスタグ２３２ｍを含んでもよく、例えば、追加の信号タグ情報がそこに連結されてもよい。
【００４０】
概して言えば、デバイスプレースホルダオブジェクト２３２は、上述のフィールド機器環境１２２で作成された同じデバイス（及び適切な場合はデバイス信号）のそれぞれに対して作成される。したがって、バックエンド環境２００内のデバイスプレースホルダオブジェクト２３２は、フィールド機器環境１２２にロードされるデバイスオブジェクトと同じフォーマット及び同じタイプの情報がそこに格納される（そのような検証されたデバイスオブジェクトは、例えばオブジェクト２１０Ｂとして構成データベース２１６のバックエンド環境２００に格納され、そこからフィールド環境１２２にダウンロードされてもよい）。いずれにしても、デバイスプレースホルダオブジェクト２３２（またはそのインスタンス）は、定義、パラメータ、Ｉ／Ｏデバイスタイプ、Ｉ／ＯデバイスなどのＩ／Ｏ通信チャネル情報を格納することができ、これらは、フィールドデバイスをバックエンドシステム２００及び／またはプロセスコントローラまたはフィールド環境１２２に配設された他のデバイスに通信可能に接続するために使用される。
【００４１】
加えて、デバイスプレースホルダオブジェクト２３２に格納されたＩ／Ｏチャネルプロパティは、シミュレーションシステム２１４によって実行されるシミュレーションで使用されてもよい。この目的のために、デバイスプレースホルダオブジェクト２３２に格納されたフィールドデバイスのＩ／Ｏチャネル情報は、シミュレーションシステム２１４に、特定のＩ／Ｏチャネルに割り当てられたプレースホルダオブジェクト２３２なしでデバイスプレースホルダオブジェクト（またはそのインスタンス）を複製、使用、及びテストする能力を提供する。当然ながら、シミュレーションシステム２１４は、特定のＩ／Ｏチャネルに割り当てられたデバイスプレースホルダオブジェクト２３２を複製し、使用し、テストすることができる。
【００４２】
したがって、プラント５内の１つ以上のフィールドデバイスに信号を送信するかまたはプラント５内の１つ以上のフィールドデバイスから信号を受信することを必要とするかまたは伴う、作成されたオブジェクト、モジュール、アプリケーション及びプログラム２１０Ｂ、２１２Ｂ、２１４Ｂは、制御システム構成アプリケーション２１０Ａ、保守システム構成アプリケーション２１２Ａ、及びシミュレーションシステム作成アプリケーション２１４Ａにおいて、フィールドデバイスのシステムタグ及び／またはデバイス信号タグ（フィールドデバイスのシステムタグを使用するフィールドデバイスの特定の信号またはパラメータを指す）を使用して（典型的であるように）作成されてよい。典型的には、フィールドデバイスのシステムタグ、デバイスタグ、及び／またはデバイス信号タグは、ＡＭＳシステム２１２及び／または制御システム２１０内のバックエンドシステム２００、例えば構成データベース２１６に格納されてもよい。次いで、ユーザは、モジュール、オブ
ジェクト、アプリケーション、及びプログラム２１０Ｂ、２１２Ｂ、２１４Ｂを構成及び実行するために、制御、保守及びシミュレーションシステムアプリケーション２１０Ａ、２１２Ａ、２１４Ａまたはスタンドアロンシミュレーションまたは構成アプリケーションを使用することができ、バックエンドシステム２００に格納されたデバイスシステムタグ（及び／またはデバイスシステムタグに基づくデバイス信号タグ）を使用して、参照されたデバイスまたはデバイス信号のための資産オブジェクトシステム２３０内のデバイスプレースホルダオブジェクト２３２の位置を特定することができる。資産オブジェクトシステム２３０に格納されたデバイスプレースホルダオブジェクト２３２がＩ／Ｏ未割り当て状態にあることが示されると、制御システム２１０、保守システム２１２、シミュレーションシステム２１４、または他のシミュレーションまたはテストエンジンは、実際のフィールドデバイスは、制御システムＩ／Ｏ通信ネットワークを介してバックエンドシステム２００に接続されていないことを認識する。しかしながら、これらの場合、デバイスプレースホルダオブジェクト２３２は、依然として、呼び出しているモジュール、アプリケーション、またはプログラムによって必要とされるまたは参照されているデバイス（及び／またはＩ／Ｏネットワークを介してデバイスに到達するために必要なＩ／Ｏパスまたはチャネル）に関する情報を格納してもよく、それゆえ、デバイスプレースホルダオブジェクト２３２は、デバイスの動作または実際の応答を模倣するために、または、デバイス及びアドレス指定されているデバイスに関して格納されているＩ／Ｏチャネル情報に基づいて呼び出しが適切に構成されているかどうかを示すために、デバイスプレースホルダオブジェクト２３２内に格納された構成データに基づいて応答を提供するかまたは応答を提供するために使用されてもよい。
【００４３】
この目的のために、デバイスプレースホルダオブジェクト２３２が作成されるとき、デバイスプレースホルダオブジェクト２３２は、デバイスプレースホルダオブジェクトが関連付けられているオブジェクトのタイプのデフォルトパラメータが割り当てられてもよい。例えば、構成データベース２１６は、アプリケーション２１０Ａ、２１２Ａ、及び２１４Ａに利用可能にされたデバイスオブジェクト用のテンプレートオブジェクトを格納する。テンプレートオブジェクトは、そのオブジェクトタイプのデフォルトパラメータを含む。いくつかの実施形態では、資産オブジェクトシステム２３０は、テンプレートオブジェクトのコピーを作成し、テンプレートプレースホルダオブジェクトがデフォルトパラメータを含むように、デバイスプレースホルダオブジェクト２３２を作成する。
【００４４】
他の場合では、例えば資産オブジェクトシステム２３０内の制御装置アプリケーション２１０Ａ、保守アプリケーション２１２Ａ、シミュレーションアプリケーション２１４Ａ、または別個の実行エンジンは、フィールドデバイスがＩ／Ｏ未割り当てデバイス状態であるとプレースホルダオブジェクト２３２から認識すると、フィールドデバイスからシミュレートされた応答を生成し、既知の信号を要求オブジェクトに戻すことができ、フィールドデバイスが制御システムＩ／Ｏネットワークを介して実際にバックエンド環境２００に接続されているかのように要求オブジェクトのテスト及びシミュレーションを可能にする。
【００４５】
図２Ｂは、１つ以上のバスまたは通信ネットワーク２６０を介して一緒に相互接続された図２Ａの様々なバックエンド機能システムを有するバックエンドシステム２００を示し、特に、制御システム２１０、資産管理システム２１２、シミュレーションシステム、構成データベース２１６、及び通信バス２６０に接続された資産オブジェクトシステムデータベース２３０を含み、これらは、有線または無線のイーサネット接続等の任意の１つ以上のタイプの通信ネットワークを使用して実装することができる。加えて、１つ以上のプロセスコントローラ２６２（これは、例えば、図１のプロセスコントローラ１１を含み得る）は、バス２６０に接続されているものとして示されている。コントローラ２６２は、Ｉ／Ｏネットワーク２６３を介して様々なフィールドデバイスまたはフィールド資産２６
４に接続されているものとして図２Ｂに示されている。しかしながら、Ｉ／Ｏネットワーク２６３は、コミッショニングプロセス中にコントローラ２６２に接続されていなくてもよく、またはＩ／Ｏネットワーク２６３がコントローラ２６２に接続されていてもよいが、Ｉ／Ｏネットワーク２６３は、まだ構成されていないかまたは割り当てられていなくてもよいことに留意されたい。したがって、コントローラ２６２は、Ｉ／Ｏネットワーク２６３を介して特定のフィールドデバイスまたはフィールド資産２６４にどのようにアクセスするかについての理解または表示を有していなくてもよい（例えば、Ｉ／Ｏネットワーク２６３を介してそのような各フィールドデバイス２６４までの信号経路がまだ確立または割り当てられていないため）。同様に、コントローラ２６２は、フィールドデバイス２６４がまだＩ／Ｏネットワーク２６３に物理的に接続されていない可能性があるため、構成された信号経路を介してフィールドデバイスと通信することができなくてもよい。したがって、Ｉ／Ｏネットワーク２６３及びフィールドデバイス２６４が図２Ｂに示されているが、Ｉ／Ｏネットワーク２６３は実際にはコントローラ２６２に接続されていなくてもよく、及び／または様々なフィールドデバイス２６４の１つは、バックエンドシステム２００で発生するコミッショニング活動の一部の間にＩ／Ｏネットワーク２６３に接続されていなくてもよい。
【００４６】
加えて、構成アプリケーション２１０Ａによって、構成エンジニアはシミュレーションシステム２１４内に仮想コントローラ２１４Ｂを実装することができる。この目的のために、構成アプリケーション２１０Ａは、制御ルーチンに含まれるＤＴ２３２ｍ及び／またはＤＳＴ２３２ｎ等の任意のＩ／Ｏオブジェクトを識別するために仮想化されるコントローラに割り当てられた制御モジュール２１０Ｂを分析する。これらのＩ／Ｏオブジェクトごとに、構成アプリケーション２１０Ａは、バックエンドシステム２００、例えば構成データベース２１６に格納されるそれぞれの仮想Ｉ／Ｏオブジェクト２３４ｍ、２３４ｎを生成する。構成アプリケーション２１０Ａが仮想コントローラシミュレーション２１４Ｂをシミュレーションシステム２１４に確立すると、構成アプリケーション２１０Ａは、制御モジュール２１０Ｂ内のＩ／Ｏオブジェクト２３２ｍ、２３２ｎの物理的位置へのいずれの参照も、対応する仮想Ｉ／Ｏオブジェクト２３４ｍ、２３４ｎの位置への参照で置き換える。いくつかの実施形態では、モジュールの非Ｉ／Ｏパラメータが依然として物理的経路を参照してもよいことに留意されたい。
【００４７】
理解されるように、Ｉ／Ｏオブジェクト２３２ｍ、２３２ｎは、割り当てられたまたは割り当てられていないＩ／Ｏパスを有するフィールドデバイスに割り当てられてもよい。加えて、いくつかの制御ルーチンでは、Ｉ／Ｏデバイス（例えば、Ｉ／ＯカードまたはＩ／Ｏオブジェクト２３２ｍ、２３２ｎをサポートする他の好適なハードウェア）は、任意のフィールドデバイス２６４から割り当て解除されてもよい。割り当てられたＩ／Ｏパスを有するフィールドデバイス２６４に割り当てられたＩ／Ｏデバイスの場合、構成アプリケーション２１０Ａは、対応するＤＴオブジェクトまたは構成データベース２１６に構成され格納され、割り当てられたフィールドデバイス２６４に対応するＤＳＴオブジェクトをコピーすることによって仮想Ｉ／Ｏオブジェクト２３４を生成してもよい。一方、割り当てられたＩ／Ｏパスのないフィールドデバイスに割り当てられた、またはデバイスに割り当てられていないＩ／Ｏデバイスの場合、構成アプリケーション２１０Ａは、資産オブジェクトシステム２３０に格納されたデバイスプレースホルダオブジェクト２３２をコピーすることによって、仮想Ｉ／Ｏオブジェクト２３４を生成し、未だ割り当てられていないフィールドデバイス２６４に対応させてもよい。あるいは、どちらの場合でも、構成アプリケーション２１０Ａは、構成データベース２１６に格納されたテンプレートオブジェクトをコピーすることによって仮想Ｉ／Ｏオブジェクト２３４を生成してよい。仮想コントローラ２１４Ｂを実装するとき、仮想Ｉ／Ｏオブジェクト２３４への参照が制御モジュール２１０Ｂにのみ含まれるので、シミュレーション制御システム２１４を介して対象制御モジュール２１０Ｂのテストが成功すると、同じ制御モジュール２１０Ｂを変更なしで
コントローラ２６２にダウンロードすることができると理解されたい。
【００４８】
加えて、図２Ｂに示すように、様々なシステム２１０、２１２、２１４は、制御アプリケーションまたは制御モジュール作成アプリケーション２１０Ａ、保守オブジェクトまたはインターフェース作成アプリケーション２１２Ａ、及びシミュレーションシステムアプリケーション２１４Ａ等の構成アプリケーションを含み、これらは、プラントのコミッショニング中またはモジュール、オブジェクト、アプリケーション、及び／またはユーザーインターフェースプログラム２１０Ｂ、２１２Ｂ、２１４Ｂの様々なものを作成するのに使用されてもよく、図１で示されるもののうちのいずれかのようなバックエンドシステム２００内の様々なコンピューティングデバイスにダウンロードされて潜在的に実行されるか、または、プラント５がオンラインで動作しているとき、すなわち、プラント５がコミッショニングされた後にプラント５の動作中に実行するために、コントローラ２６２（または安全システム論理処理部、図示せず）または他のデバイスのうちの１つに提供されてもよい。
【００４９】
理解されるように、資産オブジェクトシステムまたはデータベース２３０は、フィールドデバイス資産２６４ごとにデバイスプレースホルダオブジェクト２３２を格納し、したがって、これらのプレースホルダオブジェクトがＩ／Ｏ未割り当てデバイス状態であるとき、これらのオブジェクトに関する構成情報を他のシステム２１０、２１２、２１４に提供する。同様に、構成データベース２１６に格納された仮想Ｉ／Ｏオブジェクト２３４も、フィールドデバイス資産２６４に関する構成情報を提供する。デバイスプレースホルダオブジェクト２３２及び／または仮想Ｉ／Ｏオブジェクト２３４の使用は、フィールドデバイス２６４がＩ／Ｏネットワーク２６３を介して様々なコントローラ２６２に実際に接続または割り当てられる前に、プログラム２１０Ａ、２１２Ａ、２１４Ａなどの他のアプリケーションが、オブジェクト、モジュール、アプリケーション、及びプログラム２１０Ｂ、２１２Ｂ、２１４Ｂに対する様々なコミッショニング及びテスト活動を完了することを可能にする。例えば、いくつかのテスト活動は、コントローラ２６２に割り当てられた制御モジュール２１０Ｂを実装する仮想コントローラ２１４Ｂによって行われてもよい。
【００５０】
デバイスプレースホルダオブジェクト２３２及び／または仮想Ｉ／Ｏオブジェクト２３４が、例えばデバイスシステムタグ、デバイスタイプ、及びデバイスタイプ（ユーザによって提供されるそのような副情報を含む）に基づいて決定され得るまたは基づく様々な副情報などの情報を用いて、及び／またはフィールドデバイス２６４と通信するために使用されるＩ／Ｏチャネルに関連するＩ／Ｏチャネル情報を用いて、少なくともある程度まで一旦構成されると、様々な他のアプリケーション２１０Ａ、２１２Ａ、２１４Ａは、これらのデバイスプレースホルダオブジェクト２３２及び／または仮想Ｉ／Ｏオブジェクト２３４を、実際のフィールドデバイス２６４またはフィールドデバイス２６４内の信号と通信するためのプロキシとして使用することができる。したがって、デバイスプレースホルダオブジェクト２３２及び／または仮想Ｉ／Ｏオブジェクト２３４は、実際のフィールドデバイス２６４のプロキシとして機能し、コミッショニングプロセスまたはテストプロセス中には、Ｉ／Ｏネットワーク２６３を介して実際のフィールドデバイス２６４と通信しようとする代わりに、デバイスプレースホルダオブジェクト２３２または仮想Ｉ／Ｏオブジェクト２３４と（システム、デバイス、またはデバイス信号タグを使用して）通信し得る、制御、保守、及びシミュレーションアプリケーション２１０Ａ、２１２Ａ、２１４Ａ等の他のアプリケーションとして機能する。この機能によって、アプリケーション２１０Ａ、２１２Ａ、２１４Ａは、それらのアプリケーションのオンライン動作中に有する情報（すなわち、デバイスシステムタグ及び／またはデバイス信号タグ）のみを使用して作成された制御モジュールをテストすることが可能になり、フィールドデバイス２６４がＩ／Ｏネットワーク２６３を介して制御システムに接続され割り当てられる前に、テスト、構成、シミュレーション、及び様々な他のコミッショニング活動を実行する。
【００５１】
図２Ｃは、仮想コントローラ２３６を介して１つ以上の制御モジュール２１０Ｂの動作をシミュレートまたはテストするのに使用される制御アプリケーション２１０Ａのうちの１つと連動して動作することができ、それにより、バックエンド環境１２５またはバックエンドシステム２００内の制御オブジェクトまたはモジュール２１０Ｂのテストが、それらのモジュールまたはオブジェクトがフィールド環境１２２のコントローラ２６２に（または、テスト中の制御モジュールを担当するコントローラ２６２に接続される１つ以上のフィールドデバイス２６４に）ダウンロードされる前に可能となる、シミュレーションまたはテストシステム２７０を示す。特に、図２Ｃのシステム２７０は、制御モジュール２１０Ｂが制御システム２１０の一部である状態で、通信リンクと相互接続された１組の相互接続された機能ブロック２７２ａ、２７２ｂ、２７２ｃで構成された制御モジュール２１０Ｂを実行しテストするものとして示されている。追加的または代替的に、システム２７０は、資産管理システム２１２及びシミュレーションシステム２１４等の、バックエンドシステム２００内の他のシステムと関連付けられた他のモジュール、アプリケーション、プログラム、オブジェクトなどを実行及びテストする。
【００５２】
いずれにせよ、システム２７０は、順に、制御モジュール２１０Ｂの機能ブロック２７２ａ〜２７２ｃ各々を実行し、通信リンクによって規定されるようにこれらの機能ブロック２７２ａ〜２７２ｃ間で通信を提供する実行エンジン２８０を含む。実行エンジン２８０は、アプリケーション２１０Ａ、２１２Ａ、２１４Ａのいずれか１つを実行するコンピュータ処理装置、またはコミッショニングの目的で設計された専用シミュレーションまたはテストアプリケーションを実行するプロセッサ（これは、シミュレーションアプリケーション２１４Ａとは異なる場合がある）であり得ることに留意されたい。したがって、実行エンジン２８０は、制御システム２１０、資産管理システム２１２、シミュレーションシステム２１４などの一部であってもよく、または実行エンジン２８０は、テスト及びコミッショニング活動を実装するように設計されたまたは専用のスタンドアロン構成要素であってもよい。さらに、実行エンジン２８０は、資産オブジェクトシステム２３０及びデータベース２１６に通信可能に連結されている限り、バックエンドシステム２００内（任意の所望のコンピューティングデバイス内）の任意の場所に実装することができる。
【００５３】
いずれにしても、フィールドデバイスまたは他のフィールド資産との通信を必要とする特定の機能ブロック２７２の実行中、実行エンジン２８０は、例えばフィールドデバイスのシステムタグ（制御モジュール、メンテナンスモジュール、及びシミュレーションモジュールに共通である）を使用して、フィールドデバイスとインターフェースをとるために通信インターフェース２８２を呼び出すかまたは使用する。上述したように、仮想コントローラ２３６を実装する場合、構成アプリケーション２１０Ａは、構成データベース２１６に格納されたそれぞれの仮想Ｉ／Ｏオブジェクト２３４への参照に対するＤＴまたはＤＳＴへの機能ブロック２７２ａ〜２７２ｃのうちの１つによる任意の参照を構成する。したがって、実行エンジン２８０は、仮想Ｉ／Ｏオブジェクト２３４の通信経路を使用して、制御モジュール２１０Ｂに含まれるＩ／Ｏデバイスへの参照を実行する。
【００５４】
この目的のために、実行エンジン２８０は、フィールド環境１２２内のフィールドデバイス２６４に到達するために必要な通信経路（すなわち、Ｉ／Ｏネットワーク経路）及び／または経路がコミッショニングされているか、まだコミッションされていないかどうかを知らない（または、その点において知る必要がない）。むしろ、実行エンジン２８０は、通信インターフェース２８２を介して、フィールドデバイスの構成情報及び／またはＩ／Ｏチャネルにその仮想Ｉ／Ｏオブジェクト２３４を介してアクセスする要求を（例えば、構成データベース２１６に）送信する。通信インターフェース２８２は、仮想Ｉ／Ｏオブジェクト２３４に格納されたその所望のまたは必要な情報を取り出し、その情報を実行エンジン２８０に戻す。場合によっては、デバイス仮想Ｉ／Ｏオブジェクト２３４は、デ
バイスタイプ、ソース（ロング）タグ、システム（ショート）タグ、デバイス範囲、限界、能力などの実際のフィールドデバイスに関連するまたはそれを定義する構成情報を格納することができる。要求された情報が仮想Ｉ／Ｏオブジェクト２３４に実際に格納されている場合、この情報は、あたかもそれがフィールドデバイス２６４自体からのものであるかのように仮想Ｉ／Ｏオブジェクト２３４から返されてもよい。
【００５５】
さらに、場合によっては、通信インターフェース２８２は、制御モジュール２１０Ｂからの要求された通信が、デバイスの適切なプロトコルまたはデバイス構成または仮想Ｉ／Ｏオブジェクト２３４と関連付けられたデバイス用のＩ／Ｏチャネルに一致するかまたは準拠するかどうかをただ決定してもよい。この決定は依然として、コミッショニング人員が、制御モジュール２１０Ｂが、仮想Ｉ／Ｏオブジェクト２３４内に格納されたデバイスタイプ、デバイス構成パラメータ、Ｉ／Ｏチャネル構成パラメータなどに基づいて、特定のデバイスと正確に通信するように構成されているかどうか決定することを可能にする。
【００５６】
しかしながら、他の場合には、要求されたフィールドデバイスデータは、フィールドデバイスの実際の動作に基づいて、フィールドデバイスによって収集されるか、またはフィールドデバイスによって生成される非構成データに関連してもよい。したがって、通信インターフェース２８２は、フィールドデバイスの動作をシミュレートするためにフィールドデバイスに対してシミュレートされた応答を提供する仮想Ｉ／Ｏオブジェクト２３４のシミュレーション応答ブロックまたはモジュールにアクセスすることができる。シミュレーション応答ブロックまたはモジュールは、コミッショニングプロセスに特有であってもよく、仮想Ｉ／Ｏオブジェクト２３４を生成する一部として提供されてもよい。場合によっては、仮想Ｉ／Ｏオブジェクト２３４のシミュレーションブロックには、仮想Ｉ／Ｏオブジェクト２３４が作成されたときのデフォルトのシミュレーション値が提供される。そのようなシミュレートされた応答は、ユーザまたはテストシステムによって提供されてもよく、テスト及びコミッショニングの目的で作成されたシミュレーションファイルに格納されてもよく、シミュレーションアプリケーション２１４Ａとインターフェースするユーザによって即座に生成されてもよく、または、他の方法で提供されてもよい。このシミュレートされたデバイス応答（これはデバイス状態、デバイス測定値、デバイスパラメータなどのシミュレートされた値であってもよい）は、この値がフィールドデバイス自体から返された値または信号であるかのように実行エンジン２８０に供給される。このシミュレートされた応答は、それにより、所定のデバイス応答に基づいて制御モジュール２１０Ｂのさらなるテストを可能にする。概して言えば、シミュレーションブロックは、仮想Ｉ／Ｏオブジェクト２３４をスマートオブジェクトのように見せるように、または要求元のモジュール（すなわち、テスト中のモジュール２１０Ｂ）に実際のデバイス応答を返すことができるように見せるように、構成することができる。他の場合では、通信インターフェース２８２は、仮想Ｉ／Ｏオブジェクト２３４のシミュレーションブロックを使用して、テストまたはシミュレーションのための何か既知の方法で仮想Ｉ／Ｏオブジェクト２３４によって定義されたデバイスの動作を模倣する。
【００５７】
フィールド環境１２２内のフィールドデバイス２６４に到達するために必要な通信経路の少なくとも一部（すなわち、Ｉ／Ｏネットワーク経路）がコミッショニングされ及び／または定義されている（例えば、フィールドデバイスのそれぞれのデバイスプレースホルダオブジェクト２３２の状態によって示されるように）などの場合においては、仮想Ｉ／Ｏオブジェクト２３４は、Ｉ／Ｏネットワーク経路２６３のコミッショニングされた部分から直接少なくとも部分的に必要なフィールドデバイス情報を取得し、情報を実行エンジン２８０に返す。
【００５８】
当然ながら、図２Ａ〜２Ｃに関して説明したバックエンドシステム２００は、「切断されたプロセス制御ループの一部をコミットするためのデバイスパラメータの自動分布」と
題された２０１７年５月１８日に出願されたＰＣＴ出願番号ＰＣＴ／ＵＳ２０１６／０５６６１０に記載された機能などのより多くの、より少ない、及び／または代替の機能を含むことができる。
【００５９】
図３は、図１のプロセスプラント５内のコントローラ、例えばコントローラ１１または２６２によって実施される制御ルーチン（例えば、制御ルーチン２１０Ｂ）の指示を含む構成アプリケーションによって提示される例示的な画面表示３０２を示す。一例では、構成アプリケーションは、図１のバックエンド環境１２５の構成アプリケーション７２ａのうちの１つ、及び／または図２のバックエンドシステム２００の制御システム２１０の制御アプリケーション２１０Ａである。
【００６０】
構成アプリケーションには、機能ブロックテンプレートオブジェクトなどのテンプレートオブジェクトのライブラリ、場合によっては制御モジュールテンプレートオブジェクトが含まれる。これらの構成アプリケーションは、ランタイム中にプロセスプラントのコントローラに実装される（例えば、実行される）制御モジュールの制御ルーチンを構成するために使用される。テンプレートオブジェクトは、そこに関連付けられているデフォルトのパラメータ、設定及びメソッドを有する。構成アプリケーションを使用するエンジニアは、これらのテンプレートオブジェクトを選択し、選択されたテンプレートオブジェクトのコピーを構成画面に原則的に配置して、制御モジュールを開発することができる。構成画面にテンプレートオブジェクトを選択して配置するプロセスの間、エンジニアはこれらのオブジェクトの入力と出力を相互に接続し、それらのパラメータ、名前、タグ、及びその他のプロパティを変更して、プロセスプラント内で制御ルーチンを実行する特定の制御モジュールを作成する。
【００６１】
図示の例では、制御モジュールは、４つの機能ブロック、第１のアナログ入力（ＡＩ）ブロック３１１、第２のＡＩブロック３１２、アナログ出力（ＡＯ）ブロック３１３、及びＰＩＤ制御ブロック３１５を含む。図示の制御ルーチンでは、第１のＡＩブロック３１１の出力は、ＰＩＤブロック３１５のＦＦ＿ＶＡＬパラメータの入力に相互接続されている。第２のＡＩブロック３１２の出力は、ＰＩＤブロック３１５のＩＮパラメータの入力に相互接続されている。ＰＩＤブロック３１５のＯＵＴパラメータは、ＡＯブロック３１３のＣＡＳ＿ＩＮパラメータに相互接続されている。エンジニアは、コントローラに、それぞれの制御ルーチンを実装する任意の数の制御モジュールを割り当てることができることを理解されたい。
【００６２】
制御モジュールの制御ルーチンをセットアップまたは作成した後、エンジニアは、作成された制御モジュールをライブラリまたは図２Ａ〜２Ｂの構成データベース２１６などの構成データ記憶領域に格納することができる。次に、エンジニアは、制御モジュールをインスタンス化し（例えば、制御モジュールに対応する実行可能ファイルを作成させる）、それを、適切なコントローラ、またはプロセスプラントの動作中に実行するためのコントローラ、フィールドデバイス、及び他のプロセス要素に、ダウンロードすることができる。しかしながら、本明細書で説明するように、プロセスプラントのコミッショニング中、バックエンド環境１２５、２００と設計された制御ルーチンを実行するコントローラとの間の通信経路は、切断されてもよい。したがって、本明細書に記載された新規技術のうちの少なくともいくつかを使用して、構成アプリケーションにより、エンジニアは、シミュレーション環境内の仮想コントローラで各制御モジュール（ランタイム中に物理コントローラによって実装される）を実行することが可能になる。例えば、テスト及び／または検証の目的で図２Ａ、２Ｂのシミュレーションシステム２１４で実行されているものなどである。
【００６３】
この目的のために、構成アプリケーションは、設計された制御モジュールを実装するコ
ントローラのプロパティを変更して仮想コントローラ（かつ物理コントローラではない）を示すユーザコントロール３２０を提供する。図４は、ユーザコントロール３２０を介してコントローラプロパティを変更するためのユーザ入力に応答して、構成アプリケーションによって提示される例示的な画面表示４０２を示す。一例では、エンジニアは、画面表示３０２によって提示されたユーザコントロール３２０をクリックして、構成アプリケーションに画面表示４０２を提示させる。
【００６４】
画面表示４０２は、仮想コントローラを構成及び／または選択するための１つ以上のユーザコントロールを含む。例えば、ユーザコントロール４２２は、エンジニアが制御ルーチンのシミュレーションを実装するために仮想コントローラのタイプを選択することを可能にする。例えば、ユーザコントロール４２２は、エンジニアが仮想コントローラのモデル及びそのモデルのソフトウェアバージョンを選択することを可能にする。加えて、画面表示は、エンジニアが制御ルーチンを物理コントローラにダウンロードすることと、仮想コントローラで制御ルーチンを実行することとを切り替えることを可能にするユーザコントロール４２４を含む。
【００６５】
構成アプリケーションがスクリーン４０２を介して構成エンジニアによって指示された仮想コントローラを生成した後、エンジニアは、例えばテスト及び検証の目的で、制御モジュールへの様々な入力をシミュレートすることができる。この目的のために、エンジニアは仮想コントローラによって実行される対象制御モジュールをテストするためのシミュレーションアプリケーションを起動する。シミュレーションアプリケーションは、図２のバックエンドシステム２００のシミュレーションシステム２１４のシミュレーションアプリケーション２１４Ａのうちの１つであってもよい。一例では、構成アプリケーションは、シミュレーションアプリケーションを起動するためのインターフェースを含む。別の例では、シミュレーションアプリケーションは、例えば、図１のバックエンドシステム１２５のワークステーション７１で実行されるスタンドアロンアプリケーションである。
【００６６】
図５は、図１のプロセスプラント５の仮想ＤＳＴの入力値をシミュレートするユーザコントロールを提供するシミュレーションアプリケーションによって提示される例示的な画面表示５００を示す。シミュレーションアプリケーションは、入力デバイスに対応する仮想コントローラによって実装される１つ以上の制御モジュールに含まれるすべての仮想ＤＳＴをリストする入力タブを含むことができる。図示の例では、仮想コントローラは、様々な入力デバイスに対応する５つの異なる仮想ＤＳＴを含む制御モジュールを実装する。仮想コントローラによって制御される複数の制御モジュールが同じＤＳＴを含む場合、仮想ＤＳＴは１回だけリストされることを理解されたい。
【００６７】
リストされた仮想ＤＳＴの各々について、画面表示５００は、仮想ＤＳＴが対応するデバイスの指示（参照番号５０２）、仮想ＤＳＴを参照する仮想コントローラによって実装される制御モジュールの指示（参照番号５０４）、仮想ＤＳＴに対応する信号パラメータの指示（参照番号５０６）、仮想ＤＳＴのシミュレーション値の指示（参照番号５０８）、仮想ＤＳＴの状態の指示（参照番号５１０）、及び仮想ＤＳＴが対応するデバイスの出力値の指示（参照番号５１２）を含む。一例では、各値は、図２Ａ及び２Ｂの構成データベース２１６に格納された仮想ＤＳＴオブジェクトに含まれるデータに基づいて投入される。シミュレーションが実際に実行されるまで、出力値の指示は投入されないことを理解されたい。
【００６８】
画面表示５００は、エンジニアがリストされた仮想ＤＳＴの入力値をシミュレートすることを可能にする１つ以上のユーザコントロールをさらに含む。ユーザコントロール５１８は、エンジニアが選択された入力仮想ＤＳＴの値を設定することを可能にする。ユーザコントロール５１８はテキストボックスとして図示されているが、ユーザコントロール５
１８は、エンジニアがドロップダウンボックスまたはラジオ選択要素などの入力値を示すことを可能にする任意のタイプのユーザーインターフェース要素であってもよい。いくつかの実施形態では、仮想ＤＳＴが生成されるとき、仮想ＤＳＴにはデフォルトシミュレーションパラメータが割り当てられる。加えて、ユーザコントロール５２０は、シミュレーションアプリケーション５２０が、ユーザコントロール５１８を介して仮想ＤＳＴセットの入力値に基づいてシミュレーションを開始する指示を受信することを可能にする。
【００６９】
エンジニアがユーザコントロール５２０を選択すると、シミュレーションアプリケーションは仮想コントローラによって実装された制御モジュールを実行する。この目的のために、シミュレーションアプリケーションは、ユーザコントロール５１８を介して入力された値を、図２Ａ〜２Ｂの構成データベース２１６に格納された選択された仮想ＤＳＴ用の仮想ＤＳＴオブジェクトに書き込む。本明細書では前述のように、構成アプリケーションが仮想コントローラを生成すると、構成アプリケーションはＤＳＴへの参照を仮想ＤＳＴへの参照で置き換えた。したがって、シミュレーションアプリケーションが仮想ＤＳＴオブジェクトに入力値を書き込むと、制御ルーチンはＤＳＴが入力値を生成したかのように入力に応答する。したがって、バックエンド環境１２５におけるシミュレーションは、制御モジュールがランタイム環境１２２内のコントローラによって実装された場合に生成されるであろう同じエラー及び警告を作り出す。
【００７０】
図６は、図１のプロセスプラントの仮想コントローラの出力を示すシミュレーションアプリケーションによって提示される例示的な画面表示６００を示す。シミュレーションアプリケーションは、出力デバイスに対応する仮想コントローラによって実装された制御モジュールに含まれるすべての仮想ＤＳＴをリストする出力タブを含むことができる。図示の例では、コントローラは、出力デバイスに関連する１つのＤＳＴを含む制御モジュールを実装する。
【００７１】
リストされた仮想ＤＳＴの各々について、画面表示６００は、仮想ＤＳＴが対応するデバイスの指示（参照番号６０２）、仮想ＤＳＴを参照する仮想コントローラによって実装される制御モジュールの指示（参照番号６０４）、仮想ＤＳＴに対応する信号パラメータの指示（参照番号６０６）、仮想ＤＳＴの出力値の指示（参照番号６０８）、及び仮想ＤＳＴの状態の指示（参照番号６１０）を含む。一例では、各値は、図２Ａ〜２Ｂの構成データベース２１６に格納された仮想ＤＳＴオブジェクトに含まれるデータに基づいて投入される。
【００７２】
図７は、プロセスプラント５内の制御ルーチンをテストまたは検証する例示的な方法７００のフロー図を示す。方法７００は、オペレータワークステーション７１、サーバ、または図１のバックエンド環境１２５や図２Ａ〜２Ｂのバックエンド環境２００等のバックエンド環境の任意の他の好適なコンピューティングデバイス上で実行されてもよい。いくつかの実施形態では、方法７００は、非一時的なコンピュータ可読メモリに格納されオペレータワークステーション７１、サーバ、または任意の他の好適なコンピューティングデバイスの１つ以上のプロセッサ上で実行可能な構成アプリケーション７２ｂ、２１０Ａにおいて実装することができる。例えば、構成アプリケーション７２は、図２Ａ〜２Ｂの制御システム２１０の構成アプリケーション２１０Ａであってもよい。
【００７３】
ブロック７０２において、方法７００は、フィールド環境１２２内の物理コントローラ１１によって実施される制御ルーチンまたは制御モジュールの指示を受信することを含む。一実施形態では、構成アプリケーション７２は、エンジニアが制御ルーチンまたはモジュールを設計できるように表示画面３００を提示する。この目的のために、構成アプリケーション７２ａ、２０１ａは、エンジニアが制御ルーチンまたはモジュールの様々な機能ブロックを割り当てて、相互接続することを可能にする。いくつかの実施形態では、構成
アプリケーション７２は、ランタイム中に同じ物理コントローラ１１によって制御される複数の制御モジュールによって実装される複数の制御ルーチンの指示を受信することができる。
【００７４】
ブロック７０４において、方法７００は、例えば仮想コントローラ２３６を使用することによって、指示された制御ルーチン及び／または制御モジュールを実行する物理コントローラ１１をシミュレートする要求を受信することを含むことができる。一例では、要求は、図４の表示画面４００のような構成アプリケーション７２ａ、２１０ａ内に提示されたコントローラプロパティインターフェースを介して受信される。いくつかの実施形態では、要求は、仮想コントローラ２３６の所望のソフトウェアバージョン及び／またはその上で仮想コントローラ２３６を実行するシミュレーションシステムにおける特定の環境を詳述する情報を含む。
【００７５】
ブロック７０６において、方法７００は、作成された制御ルーチンまたは制御モジュール内で利用される（例えば、参照される）１つ以上のＤＴ及び／またはＤＳＴに対する１つ以上のそれぞれの仮想Ｉ／Ｏオブジェクト２３４を生成することを含むことができる。一実施形態では、構成アプリケーション７２ａ、２１０ａは、構成データベース２１６とインターフェースをとり、制御ルーチンまたはモジュールに含まれる各ＤＴ／ＤＳＴのそれぞれの仮想Ｉ／Ｏオブジェクト２３４を生成する。仮想Ｉ／Ｏオブジェクト２３４を生成するために、構成アプリケーション７２はまず、割り当てられたＩ／Ｏパスを有するフィールドデバイスにそれぞれのＤＴ／ＤＳＴが対応付けられているか、割り当てられていないＩ／Ｏパスを有するフィールドデバイスに対応付けられているか、またはフィールドデバイスに対応付けられていないかを決定する。割り当てられたＩ／Ｏパスを有するフィールドデバイスに対応付けられたＤＴ／ＤＳＴに対して、構成データベース２１６は、ＤＴ／ＤＳＴを表す定義済みまたは構成済みのＤＴ／ＤＳＴオブジェクトを含むことができる。したがって、これらのタイプのシナリオでは、割り当てられたＩ／Ｏパスを有するフィールドデバイス用の仮想Ｉ／Ｏオブジェクト２３４を生成するために、構成アプリケーション７２ａ、２１０ａは、構成データベース２１６に格納されたＤＴ／ＤＳＴオブジェクトをそれぞれの仮想Ｉ／Ｏオブジェクト２３４にコピーする。
【００７６】
一方、割り当てられたＩ／Ｏパスを有するフィールドデバイスに対応付けられたＤＴ／ＤＳＴ及び対応付けられていないＤＴ／ＤＳＴは、代わりに、資産オブジェクトシステム２３０に格納されたそれぞれのデバイスプレースホルダオブジェクト２３２によって表されることができる。したがって、いくつかの実施形態では、対応付けされていないまたは割り当てられていないＤＴ／ＤＳＴのそれぞれの仮想Ｉ／Ｏオブジェクト２３４を生成するために、方法７００は、資産オブジェクトシステム２３０に格納されたそれぞれのデバイスプレースホルダオブジェクト２３２をコピーすることを含むことができる。いくつかの実装では、資産オブジェクトシステム２３０が構成データベース２１６に含まれる。
【００７７】
追加的または代替的に、構成データベース２１６は、特定のタイプのＤＴ／ＤＳＴのテンプレートオブジェクトを格納することができる。このように、ランタイムに物理コントローラ１１によって実行される制御モジュールまたはルーチンによって参照される、対応付けられていない及び／または割り当てられていないＤＴ／ＤＳＴについて、構成アプリケーション２１６は、対象ＤＴ／ＤＳＴのタイプを決定することができる。したがって、対応する仮想Ｉ／Ｏオブジェクト２３４を作成するために、構成アプリケーション２１６は、特定のタイプのＤＴ／ＤＳＴのテンプレートオブジェクトのコピーを、対応する仮想Ｉ／Ｏオブジェクト２３４として作成することができる。
【００７８】
加えて、仮想Ｉ／Ｏオブジェクト２３４を生成すること（ブロック７０６）は、仮想Ｉ／Ｏオブジェクト２３４の少なくとも１つのシミュレーションモジュールを生成すること
を含むことができる。上述のように、シミュレーションモジュールは、応答が物理フィールドデバイスによって提供されたかのように、仮想Ｉ／Ｏオブジェクト２３４が仮想コントローラ２３６に応答することを可能にすることができる。一実施形態では、構成データベース２１６は、特定のタイプのＤＴ／ＤＳＴのパフォーマンスを模倣するように構成されたテンプレートシミュレーションオブジェクトを含む。場合によっては、シミュレーションオブジェクトは既定のシミュレーション値も含む。したがって、ある実施形態においては、仮想Ｉ／Ｏオブジェクト２３４を生成するとき（ブロック７０６）、構成アプリケーション７２ａ、２１０ａは、仮想Ｉ／Ｏオブジェクト２３４が仮想化している特定のタイプのＤＴ／ＤＳＴに対応する特定のテンプレートシミュレーションオブジェクトを含むかそうでなければ示すことができる。
【００７９】
ブロック７０８において、方法７００は、生成された仮想Ｉ／Ｏオブジェクト２３４を構成データベース２１６内のそれぞれの位置に格納することを含むことができる。この目的のために、ある例示的な実装においては、構成アプリケーション７２ａ、２１０ａが仮想Ｉ／Ｏオブジェクト２３４を構成データベース２１６に格納するとき、構成アプリケーション７２ａ、２１０ａは、各仮想Ｉ／Ｏオブジェクト２３４に、それを介して各仮想Ｉ／Ｏオブジェクト２３４にアクセスすることができる経路も割り当てる。いくつかの実施形態では、構成データベース２１６は、仮想Ｉ／Ｏオブジェクト２３４を格納するための専用記憶領域を含む。特定の仮想オブジェクト２３４に対応する任意のＤＴ／ＤＳＴオブジェクトのいずれも構成データベース２１６に格納されたままであってもよく、特定の仮想Ｉ／Ｏオブジェクト２３４が基づいている任意のデバイスプレースホルダオブジェクト２３２のいずれも、資産オブジェクトシステム２３０に格納されたままであってもよいと理解されたい。
【００８０】
ブロック７１０において、方法７００は、特定のＤＴ／ＤＳＴオブジェクトの位置への参照を対応する仮想Ｉ／Ｏオブジェクト２３４用の構成データベース２１６内のそれぞれの位置で置き換えることによって、シミュレーション環境内に仮想コントローラ２３６をインスタンス化することを含むことができる。この目的のために、ある実施形態においては、シミュレーションシステムにおいて仮想コントローラ２３６をセットアップまたは確立するとき、構成アプリケーション７２ａ、２１０Ａは、仮想化されたコントローラ２３６によって実装されるように割り当てられた制御モジュールに含まれるＩ／Ｏデバイスへの参照を識別する。したがって、構成アプリケーション７２ａ、２１０ａは、制御モジュール及び／またはその中の機能ブロックを変更して、ＤＴ／ＤＳＴへの経路が必要とされるたびに仮想Ｉ／Ｏオブジェクト２３４へのそれぞれの経路を含むようにする。したがって、仮想コントローラ２３６は、制御ルーチンを物理コントローラ１１、２６２にダウンロードする必要なく、フィールドデバイスが応答データを提供したかのように応答する。
【００８１】
いくつかの実施形態では、仮想コントローラ２３６は、コントローラ及び／またはフィールドデバイスが完全にコミッショニングされる前に、バックエンド環境のコミッショニングの一部としてテストを行うために利用される。したがって、エンジニアは、シミュレーションアプリケーションと対話して、入力デバイスと関連付けられた仮想Ｉ／Ｏオブジェクト２３４の特定の入力値をシミュレートすることができる。本明細書で説明するように、シミュレーションアプリケーションは、構成アプリケーション７２ａ、２１０ａに対するスタンドアロンアプリケーションまたはプラグインであってもよい。しかしながら、シミュレーションアプリケーションがスタンドアロンアプリケーションであっても、構成アプリケーション７２ａ、２１０ａを実行する１つ以上の同じプロセッサがシミュレーションアプリケーションも実行する。
【００８２】
したがって、いくつかの実施形態では、シミュレーションアプリケーションは、コントローラに入力を提供するフィールドデバイス等の入力デバイスと関連付けられた特定の仮
想ＤＳＴの入力値の指示を受信する。一実施形態では、入力値は、図５の画面表示５００を介して受信される。入力値の指示を受信した後、シミュレーションアプリケーションは、表示された仮想Ｉ／Ｏオブジェクト２３４の値として入力値を使用して仮想コントローラ２３６にシミュレーションを実行させる。この目的のために、一実施形態では、シミュレーションアプリケーションは、入力値が対応するフィールドデバイスによって生成されたかのように仮想コントローラ２３６が反応するように、仮想Ｉ／Ｏオブジェクト２３４のシミュレーションモジュールに入力値を書き込む。
【００８３】
シミュレーションを実行した後、いくつかの実施形態では、シミュレーションアプリケーションは、フィールドデバイスに出力値を提供するコントローラ等の出力デバイスと関連付けられた仮想Ｉ／Ｏオブジェクト２３４用のシミュレートされた出力値の指示を提示する。一例では、出力値は、図６の画面表示６００を介して提示される。出力デバイスと関連付けられた仮想Ｉ／Ｏオブジェクト２３４はまた、特定の出力値に基づいて出力ステータス（例えば、良い、悪い、注意、高い、低いなど）を含むことができる。したがって、シミュレーションアプリケーションは、出力デバイスと関連付けられた仮想Ｉ／Ｏオブジェクト２３４の出力ステータスの指示も提示することができる。
【００８４】
仮想コントローラ２３６は、明示的に削除されるまで、シミュレーション環境内に存在してもよいことを理解されたい。したがって、仮想コントローラ２３６を使用するコミッショニングテストは、複数の時間、日、週などにわたって行われてもよい。この時間の間は、同じまたは異なるエンジニアが、対応する物理コントローラ２６２に割り当てられた制御モジュールを修正することができる。例えば、追加の制御モジュールを物理コントローラ２６２に割り当ててもよいし、制御モジュールを物理コントローラ２６２から割り当て解除してもよいし、制御モジュールの制御ルーチンを修正してもよい。これらの変更が行われた後、仮想コントローラ２３６は、もはや物理コントローラ２６２の現在の構成を反映しない。したがって、シミュレーションアプリケーションは、物理的コントローラ２６２及び／または物理的コントローラ２６２に割り当てられた制御モジュールのコントローラオブジェクトへのいかなる変更も検出するために、構成データベース２１６を監視することができる。
【００８５】
変更を検出すると、いくつかの実施形態では、シミュレーションアプリケーションは、物理コントローラ２６２の現在の構成を反映するためにシミュレーションをリフレッシュされるべきであることをエンジニアに通知する。したがって、シミュレーションアプリケーションは、仮想コントローラ２３６をリフレッシュする指示を受信することができる。いくつかの実施形態では、シミュレーションアプリケーションは、リフレッシュされた仮想コントローラ２３６を生成するために構成データベース７２ｂ、２１６と直接対話する。他の実施形態では、シミュレーションアプリケーションは、構成アプリケーション７２ａ、２１０Ａを利用して仮想コントローラ２３６をリフレッシュする。シミュレーションアプリケーションが仮想コントローラ２３６をリフレッシュした後、リフレッシュされた仮想コントローラ２３６を使用してシミュレーションを実行するためにシミュレーションアプリケーションを利用することができる。
【００８６】
本明細書で説明されるＩ／Ｏ仮想化技術は、プロセス制御システム５に関して説明されているが、本明細書で説明されるＩ／Ｏ仮想化技術のいずれか１つまたは複数は、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔによって提供されるＤｅｌｔａＶ  ＳＩＳ（商標）製品のような、プロセス制御プラントのプロセス制御安全情報システムにも等しく適用可能であることが留意される。例えば、スタンドアロンプロセス制御安全システムまたは統合制御及び安全システム（「ＩＣＳＳ」）は、本明細書に記載された１つ以上のスマートコミッショニング技術のうちの任意の１つ以上を使用してコミッショニングされてもよい。
【００８７】
さらに、本明細書に記載されたＩ／Ｏ仮想化技術は、プロセス制御システム５がコミッショニングされている過程にあるシナリオに適用されるが、Ｉ／Ｏ仮想化技術のいずれも、完全にコミッショニングされたプロセス制御システムに等しく適用可能である。つまり、完全にコミッショニングされたプロセスプラントであっても、構成エンジニアは、テスト中のコントローラに変更をダウンロードすることなく、シミュレートされた環境内のコントローラへの変更をテスト及び／またはシミュレートすることができる。さらに、本明細書で説明するように、シミュレートされた制御モジュールは特別なシミュレーション機能ブロックを含まないため、本明細書に記載されるＩ／Ｏ仮想化技術は、生産制御ロジックを変更することなくコントローラのシミュレーションを可能にする。
【００８８】
加えて、ソフトウェアに実装される場合、本明細書に記載されるアプリケーション、サービス、及びエンジンはいずれも、コンピュータもしくはプロセッサのＲＡＭもしくはＲＯＭ等における磁気ディスク、レーザディスク、固体メモリデバイス、分子メモリ記憶デバイス、または他の記憶媒体等上の、任意の有形の非一時的コンピュータ可読メモリに記憶され得る。本明細書に開示される例示的なシステムは、他の構成要素の中でも、ハードウェア上で実行されるソフトウェア及び／またはファームウェアを含むように開示されているが、そのようなシステムは単に例示的であるに過ぎず、限定的であると見なされるべきではないことに留意されたい。例えば、これらのハードウェア、ソフトウェア、及びファームウェア構成要素のうちのいずれかまたは全てが、ハードウェアにのみ、ソフトウェアにのみ、あるいはハードウェア及びソフトウェアの任意の組み合わせで、埋め込まれ得ることが企図される。したがって、本明細書に記載された例示的なシステムは、１つ以上のコンピュータ装置のプロセッサ上で実行されるソフトウェアにおいて実施されるものとして説明されているが、当業者は、提供された例はそのようなシステムを実装する唯一の方法ではないことを容易に理解する。
【００８９】
したがって、本発明は具体的な例に関して記載されてきたが、これらの例は例解的であるに過ぎず、本発明の限定であることを意図せず、変更、追加、または削除が、本発明の趣旨及び範囲から逸脱することなく、開示される実施形態に対して行われ得ることが当業者には明らかであろう。さらに、上記の文章は多くの異なる実施形態の詳細な説明を記載しているが、本特許の範囲は、本特許の最後に記載される特許請求の範囲の語及びそれらの等価物によって定義されることが理解されるべきである。詳細な説明は、単に例示的なものとして解釈されるべきであり、全ての可能な実施形態を説明することは、不可能ではない場合でも非現実的であるので、全ての可能な実施形態を説明するものではない。多くの代替的実施形態が、現在の技術または本特許の出願日の後に開発された技術のいずれかを使用して実装され得るが、これらは、依然として特許請求の範囲及びそのすべての等価物の範囲内に収まるであろう。
【００９０】
本開示に記載されている技術の実施形態は、任意の数の下記の態様を、単独でまたは組み合わせのいずれかで含んでもよい。
【００９１】
１．  プロセスプラントのコミッショニング中にプロセスプラント内のプロセスコントローラの入力／出力（Ｉ／Ｏ）を仮想化するためのコンピューティングデバイスであって、構成データベースと、１つ以上のプロセッサと、構成データベース及び１つ以上のプロセッサに結合され、構成アプリケーションをその上に格納する、非一時的コンピュータ可読媒体であって、１つ以上のプロセッサによって実行されると、コンピューティングデバイスに、プロセスプラントのランタイム環境内のプロセスコントローラによって実行されるべき制御モジュールの指示を受信させ、プロセスコントローラをシミュレートする要求を受信させ、受信した要求に基づいて、構成データベースを使用して、制御モジュールに含まれる各ＤＳＴのそれぞれの仮想デバイス信号タグ（ＤＳＴ）を生成させ、各仮想ＤＳ
Ｔを構成データベースのそれぞれの位置に格納させ、シミュレーション環境において、各ＤＳＴのそれぞれの位置への参照を、各仮想ＤＳＴの構成データベース内のそれぞれの位置で置き換えることを含んで、プロセスコントローラに対応する仮想コントローラにおける制御モジュールをインスタンス化させる、非一時的コンピュータ可読媒体と、を含む、コンピューティングデバイス。
【００９２】
２．  制御モジュールに含まれる第１の特定のＤＳＴがフィールドデバイスに割り当てられ、第１の特定のＤＳＴのそれぞれの仮想ＤＳＴは、第１の特定のＤＳＴに対応しフィールドデバイス用に構成されたＤＳＴオブジェクトのインスタンスに格納されたデータのコピーを含む、態様１に記載のコンピューティングデバイス。
【００９３】
３．  制御モジュールに含まれる第２の特定のＤＳＴは、いずれのフィールドデバイスにも割り当てられていないか、またはいずれのフィールドデバイスにも対応付けられていないかのいずれかであり、第２の特定のＤＳＴのそれぞれの仮想ＤＳＴは、第２の特定のＤＳＴのタイプに対応するテンプレートオブジェクトのコピーを含み、テンプレートオブジェクトのコピーはデフォルトパラメータ値を格納する、先行する態様のいずれか１つに記載のコンピューティングデバイス。
【００９４】
４．  コンピューティングデバイスは、プロセスプラントの資産オブジェクトシステムに通信可能に接続されており、資産オブジェクトシステムは、デバイスプレースホルダオブジェクトを格納する、先行する態様のいずれか１つに記載のコンピューティングデバイス。
【００９５】
５．  制御モジュールに含まれる第３の特定のＤＳＴは、いずれのフィールドデバイスにも割り当てられず、第３の特定のＤＳＴのそれぞれの仮想ＤＳＴは、資産オブジェクトシステムに格納された第３の特定のＤＳＴのためのデバイスプレースホルダオブジェクトのコピーを含む、先行する態様のいずれか１つに記載のコンピューティングデバイス。
【００９６】
６．  制御モジュールに含まれる第４の特定のＤＳＴは、フィールドデバイスに対応付けられず、第４の特定のＤＳＴのそれぞれの仮想ＤＳＴは、資産オブジェクトシステムに格納された第４の特定のＤＳＴのためのデバイスプレースホルダオブジェクトのコピーを含む、先行する態様のいずれか１つに記載のコンピューティングデバイス。
【００９７】
７．  構成アプリケーションはさらに、コンピューティングデバイスに、制御モジュールのための入力値の指示を受信させ、仮想コントローラへの入力と関連付けられた仮想ＤＳＴに入力値を提供することによって制御モジュールを実行するプロセスコントローラをシミュレートさせる、先行する態様のいずれか１つに記載のコンピューティングデバイス。
【００９８】
８．  制御モジュールを実行するプロセスコントローラのシミュレーションは、仮想コントローラの出力と関連付けられた仮想ＤＳＴを介して出力値を生成し、仮想コントローラによって生成された出力値は、入力値に基づいている、先行する態様のいずれか１つに記載のコンピューティングデバイス。
【００９９】
９．  構成アプリケーションはさらに、コンピューティングデバイスに、制御ルーチンをプロセスコントローラにダウンロードさせる、先行する態様のいずれか１つに記載のコンピューティングデバイス。
【０１００】
１０．  プロセスプラント内のモジュールの入力／出力（Ｉ／Ｏ）を仮想化するための方法であって、少なくとも１つの構成アプリケーションを実行する１つ以上のプロセッサ
によって、プロセスプラントのランタイム環境内のプロセスコントローラによって実行されるべき制御モジュールの指示を受信することと、１つ以上のプロセッサによって、プロセスコントローラをシミュレートする要求を受信することと、要求を受信すると、構成データベースにアクセスすることによって、制御モジュールに含まれる各ＤＳＴのそれぞれの仮想デバイス信号タグ（ＤＳＴ）を生成することと、各仮想ＤＳＴを構成データベースのそれぞれの位置に格納することと、各ＤＳＴのそれぞれの位置への参照を、各仮想ＤＳＴの構成データベース内のそれぞれの位置で置き換えることを含んで、プロセスコントローラに対応する仮想コントローラにおける制御モジュールをインスタンス化することを含む、方法。
【０１０１】
１１．  制御モジュールに含まれる第１の特定のＤＳＴがフィールドデバイスに割り当てられ、第１の特定のＤＳＴのそれぞれの仮想ＤＳＴを生成することは、第１の特定のＤＳＴに対応しフィールドデバイス用に構成されたＤＳＴオブジェクトのインスタンスに格納されたデータのコピーを生成することを含む、態様１０に記載の方法。
【０１０２】
１２．  制御モジュールに含まれる第２の特定のＤＳＴは、いずれのフィールドデバイスにも対応付けられず、第２の特定のＤＳＴのそれぞれの仮想ＤＳＴを生成することは、第２の特定のＤＳＴのタイプに対応するテンプレートオブジェクトのコピーを生成することを含み、テンプレートオブジェクトのコピーはデフォルトパラメータ値を格納する、態様１０〜１１のいずれか１つに記載の方法。
【０１０３】
１３．  制御モジュールに含まれる第３の特定のＤＳＴは、いずれのフィールドデバイスにも割り当てられず、第３の特定のＤＳＴのそれぞれの仮想ＤＳＴを生成することは、資産オブジェクトシステムに格納された第３の特定のＤＳＴのためのデバイスプレースホルダオブジェクトのコピーを生成することを含む、態様１０〜１２のいずれか１つに記載の方法。
【０１０４】
１４．  制御モジュールに含まれる第４の特定のＤＳＴは、いずれのフィールドデバイスにも対応付けられず、第４の特定のＤＳＴのそれぞれの仮想ＤＳＴを生成することは、資産オブジェクトシステムに格納された第４の特定のＤＳＴのためのデバイスプレースホルダオブジェクトのコピーを生成することを含む、態様１０〜１３のいずれか１つに記載の方法。
【０１０５】
１５．  １つ以上のプロセッサによって、制御モジュールのための入力値の指示を受信することと、仮想コントローラへの入力と関連付けられた仮想ＤＳＴに入力値を提供することによって制御モジュールを実行するプロセスコントローラをシミュレートすることと、をさらに含む、態様１０〜１４のいずれか１つに記載の方法。
【０１０６】
１６．  制御モジュールを実行するプロセスコントローラをシミュレートすることは、仮想コントローラの出力と関連付けられた仮想ＤＳＴを介して出力値を得ることを含み、仮想コントローラによって生成された出力値は、入力値に基づいている、態様１０〜１５のいずれか１つに記載の方法。
【０１０７】
１７．  １つ以上のプロセッサによって、制御モジュールへの変更を検出することと、１つ以上のプロセッサによって、検出された変更を含むように仮想コントローラをリフレッシュすることと、１つ以上のプロセッサによって、リフレッシュされた仮想コントローラを使用して更新されたシミュレーションを実行することと、をさらに含む、態様１０〜１６のいずれか１つに記載の方法。
【０１０８】
１８．  １つ以上のプロセッサによって、制御ルーチンをプロセスコントローラにダウ
ンロードすることをさらに含む、態様１０〜１７のいずれか１つに記載の方法。
【図１】
2019079508.tif 000003
【図２Ａ】
2019079508.tif 000004
【図２Ｂ】
2019079508.tif 000005
【図２Ｃ】
2019079508.tif 000006
【図３】
2019079508.tif 000007
【図４】
2019079508.tif 000008
【図５】
2019079508.tif 000009
【図６】
2019079508.tif 000010
【図７】
2019079508.tif 000011
【外国語明細書】
2019079508000001.pdf