(57)【要約】      （修正有）【課題】多目的動的シミュレーションが、物理プロセス環境に連結された仮想プロセス環境を含み、仮想および物理プロセス環境の構成要素／ノードは、連携して、産業プロセスプラントのシミュレーションを動的に実施するシステムを提供する。【解決手段】仮想構成要素は、仮想ランタイムノードおよび／またはシミュレーションノードを含み得る。Ｉ／Ｏスイッチによってサービス提供されるノードは、それぞれの構成要素挙動モジュールを含み得、それぞれの構成要素挙動モジュールは、それぞれの構成要素挙動モジュールが仮想または物理ノード上で利用されているか否かを認識していない。シミュレーションは、リアルタイムで、さらにはプラントのランタイム動作と連携して実施され得、必要に応じて操作され得る（速度、値、運営など）。プラットフォームは、シミュレーションおよびランタイム動作、ならびにそれらの間の相互作用／共通部分を同時にサポートする。【選択図】図１
2020201949.tif 000002
【特許請求の範囲】
【請求項１】
産業プロセスプラントのシステムであって、
プロセス制御システムを備え、前記プロセス制御システムは、
前記産業プロセスプラントの物理環境内に配設されたフィールドデバイスであって、前記フィールドデバイスが、物理機能を実施する、フィールドデバイスと、
前記フィールドデバイスと仮想ノードとの間に通信可能に配設されたＩ／Ｏスイッチであって、前記Ｉ／Ｏスイッチが、前記フィールドデバイスによって生成され、かつパブリッシュされた第１のデータのサブスクライバであり、前記Ｉ／Ｏスイッチが、前記フィールドデバイスによって生成された前記第１のデータを示す第２のデータのパブリッシャである、Ｉ／Ｏスイッチと、
前記仮想ノードであって、前記仮想ノードが、前記フィールドデバイスに対応し、かつ前記Ｉ／Ｏスイッチによってパブリッシュされた、前記第２のデータのサブスクライバであり、前記仮想ノードが、前記フィールドデバイスに対応する前記第２のデータを操作することによって制御信号を生成して、前記プロセス制御システムの別のノードの挙動を変更する、構成要素挙動モジュールを含み、前記仮想ノードが、前記産業プロセスプラントの仮想環境に配設されている、仮想ノードと、を含み、
前記フィールドデバイス、前記仮想ノード、および前記別のノードが、前記産業プロセスプラントのランタイム動作中に連携して動作して、産業プロセスを制御する、システム。
【請求項２】
前記仮想ノードが、前記制御信号を示す第３のデータのパブリッシャであり、前記第３のデータの指示が、前記別のノードによって受信される、請求項１に記載のシステム。
【請求項３】
前記Ｉ／Ｏスイッチが、前記仮想ノードによって生成された前記制御信号を示す前記第３のデータのサブスクライバであり、
前記Ｉ／Ｏスイッチが、前記仮想ノードによって生成された前記制御信号に対応する前記第３のデータを示す第４のデータのパブリッシャであり、
前記別のノード、または前記Ｉ／Ｏスイッチと前記別のノードとの間に通信可能に配設される介在ノードが、前記第４のデータのサブスクライバである、請求項２に記載のシステム。
【請求項４】
前記介在ノードが、前記第４のデータの前記サブスクライバであり、
前記介在ノードが、前記Ｉ／Ｏスイッチと前記産業プロセスプラントの物理環境内に含まれる複数の物理デバイスとの間に通信可能に配設されたＩ／Ｏハブデバイスであり、前記複数の物理デバイスが、前記別のノードを含み、
前記Ｉ／Ｏハブデバイスが、前記複数の物理デバイスの各物理デバイスによってそれぞれ生成されたデータのパブリッシャである、請求項３に記載のシステム。
【請求項５】
前記仮想ノードが、第１の仮想ノードであり、前記別のノードが、第２の仮想ノードである、請求項１〜４のいずれか一項に記載のシステム。
【請求項６】
前記別のノードが、前記産業プロセスプラント内に配設された物理ノードである、請求項１〜４のいずれか一項に記載のシステム。
【請求項７】
前記仮想ノードが、前記産業プロセスプラントの仮想プロセスコントローラまたは仮想安全コントローラのうちの１つであり、前記構成要素挙動モジュールが、それぞれの制御モジュールである、請求項１〜６のいずれか一項に記載のシステム。
【請求項８】
前記仮想ノードが、前記産業プロセスプラントの仮想環境内に配設された複数の仮想ノードに含まれ、前記複数の仮想ノードが、仮想プロセスコントローラか、仮想安全コントローラか、仮想安全ロジックソルバか、仮想Ｉ／Ｏカード、デバイス、もしくはノードか、仮想無線デバイスか、仮想イーサネットデバイスか、仮想オペレータワークステーションか、仮想ユーザインターフェースデバイスか、仮想ツールか、仮想ゲートウェイか、仮想電子マーシャリングキャビネットもしくはシステムか、または前記産業プロセスプラントの物理環境内に配設された別のタイプの物理デバイスもしくは構成要素の仮想化、のうちの少なくとも１つを含む、請求項１〜７のいずれか一項に記載のシステム。
【請求項９】
前記仮想ノードに含まれる前記構成要素挙動モジュールが、前記仮想ノードによって表され、かつ前記産業プロセスプラントの物理環境内に配設される、物理デバイスにダウンロード可能である、請求項１〜８のいずれか一項に記載のシステム。
【請求項１０】
前記仮想ノードおよび前記フィールドデバイスが、前記プロセス制御システムの第１の制御ループ内に含まれ、
前記プロセス制御システムが、前記産業プロセスプラントのランタイム動作中に前記産業プロセスを制御するように動作する複数の制御ループを含み、
前記複数の制御ループの各制御ループが、前記産業プロセスプラントの前記物理環境内に配設されたそれぞれのフィールドデバイスと、前記産業プロセスプラントの前記仮想環境内に配設された少なくとも１つの他のプロセス制御デバイスとを含み、
前記複数の制御ループの各制御ループが、任意の物理Ｉ／Ｏデバイスの代わりに前記Ｉ／Ｏスイッチを利用する、請求項１〜９のいずれか一項に記載のシステム。
【請求項１１】
１つ以上のアプリケーションに通信可能に接続されたエッジゲートウェイシステムをさらに備え、前記１つ以上のアプリケーションの各々が、前記Ｉ／Ｏスイッチによってパブリッシュされた１つ以上のタイプのデータのそれぞれの少なくとも一部分のそれぞれのコンシューマであり、前記エッジゲートウェイシステムが、前記Ｉ／Ｏスイッチによってパブリッシュされた前記１つ以上のタイプのデータのサブスクライバであり、前記エッジゲートウェイシステムが、前記Ｉ／Ｏスイッチと前記１つ以上のアプリケーションとの間で前記１つ以上のタイプの前記データを配信する際に利用される１つ以上の安全機構を含む、請求項１〜１０のいずれか一項に記載のシステム。
【請求項１２】
前記Ｉ／Ｏスイッチと前記フィールドデバイスとの間に通信可能に配設されたＩ／Ｏハブデバイスをさらに備え、
前記Ｉ／Ｏハブデバイスが、前記フィールドデバイスによって生成された前記第１のデータのパブリッシャである、請求項１〜１１のいずれか一項に記載のシステム。
【請求項１３】
前記産業プロセスを制御するために前記産業プロセスプラントの前記ランタイム動作中に動作する前記仮想ノードが、前記産業プロセスプラントの前記仮想環境内に配設された複数の仮想ノードに含まれる仮想ランタイムノードであり、
前記複数の仮想ノードが、１つ以上のシミュレートされたノードを含み、前記１つ以上のシミュレートされたノードが、前記仮想ランタイムノードを含まず、
前記システムは、シミュレーションシステムをさらに備え、前記シミュレーションシステムが、前記Ｉ／Ｏスイッチおよび前記１つ以上のシミュレートされたノードを含む、請求項１〜１２のいずれか一項に記載のシステム。
【請求項１４】
前記１つ以上のシミュレートされたノードの各シミュレートされたノードが、前記産業プロセスプラントの前記物理環境内に配備可能である、それぞれの１つ以上の物理デバイスまたは構成要素の少なくとも一部分をシミュレートし、前記それぞれの１つ以上の物理デバイスまたは構成要素が、プロセスコントローラか、安全コントローラか、安全ロジックソルバか、Ｉ／Ｏノード、カード、もしくはデバイスか、無線デバイスか、イーサネットデバイスか、オペレータワークステーションか、ユーザインターフェースデバイスか、ツールか、ゲートウェイか、電子マーシャリングキャビネットか、ネットワーク接続か、または前記産業プロセスプラントの前記物理環境内に配設された別のタイプの物理デバイスもしくは構成要素、のうちの少なくとも１つを含む、請求項１３に記載のシステム。
【請求項１５】
前記各シミュレートされたノードによってシミュレートされた前記それぞれの１つ以上の物理デバイスまたは構成要素の前記少なくとも一部分が、特定の物理デバイスまたは構成要素の一部分を含み、前記特定の物理デバイスまたは構成要素の前記一部分が、前記特定の物理デバイスまたは構成要素のモジュールか、ルーチンか、関数もしくは挙動か、ＭＡＣアドレスか、またはハードウェア副構成要素、のうちの少なくとも１つを含む、請求項１４に記載のシステム。
【請求項１６】
単一の一体的なシミュレートされたノードが、前記産業プロセスプラントの前記ランタイム動作中に協調して動作するように配備可能である複数の物理デバイスまたは構成要素をシミュレートする、請求項１３〜１５のいずれか一項に記載のシステム。
【請求項１７】
前記１つ以上のシミュレートされたノードが、前記産業プロセスプラントの前記ランタイム動作の機能または動作をシミュレートするために協調して動作する複数のシミュレートされたノードを含む、請求項１３〜１６のいずれか一項に記載のシステム。
【請求項１８】
前記１つ以上のシミュレートされたノードのうちの特定のシミュレートされたノードを含むシミュレーション実行が、前記特定のシミュレートされたノードと、前記産業プロセスプラントの前記仮想環境内に配設された別の仮想ランタイムノードまたは前記産業プロセスプラントの前記物理環境内に配設された別の物理ノードのうちの少なくとも１つとの間の通信を含み、
前記別の仮想ランタイムノードまたは前記別の物理ノードのうちの前記少なくとも１つが、前記産業プロセスプラントの前記ランタイム動作中に動作するように構成されている、請求項１３〜１７のいずれか一項に記載のシステム。
【請求項１９】
前記シミュレーションシステムが、シミュレータアクセス機構をさらに含み、前記シミュレータアクセス機構を介して、シミュレータアプリケーションが、前記シミュレーションシステムによって実行されるシミュレーション実行で利用される１つ以上のシミュレートされた値を提供および／または受信する、請求項１３〜１８のいずれか一項に記載のシステム。
【請求項２０】
前記シミュレータアクセス機構が、アプリケーションプログラミングインターフェース（ＡＰＩ）である、請求項１９に記載のシステム。
【請求項２１】
前記シミュレータアクセス機構が、前記Ｉ／Ｏスイッチとインターフェースして、前記１つ以上のシミュレートされた値を提供および／または受信する、請求項１９または２０に記載のシステム。
【請求項２２】
前記シミュレータアクセス機構が、標準化されたデータまたは通信プロトコルを介して、前記産業プロセスプラントの構成データベース内に記憶されている前記１つ以上のシミュレートされたノードのそれぞれの識別情報を利用することによって、前記１つ以上のシミュレートされた値を通信するように構成されている、請求項１９〜２１のいずれか一項に記載のシステム。
【請求項２３】
前記シミュレータアクセス機構が、１つ以上のシミュレーションコマンドで動作することによって、あるランタイムペースで前記シミュレーション実行を実行することか、前記シミュレーション実行を高速化して、前記ランタイムペースよりも速く実行することか、前記シミュレーション実行を低速化して、前記ランタイムペースよりも遅く実行することか、前記シミュレーション実行のシミュレートされた値を設定することか、前記シミュレーション実行の初期条件を設定することか、前記シミュレーション実行を一時停止することか、前記シミュレーション実行の中間条件を設定することか、前記シミュレーションの前記実行のペースを変更することか、または前記シミュレーション実行と関連付けられたシミュレートされた値を変更すること、のうちの少なくとも１つを行うように構成されている、請求項１９〜２２のいずれか一項に記載のシステム。
【請求項２４】
前記シミュレータアクセス機構が、１つ以上のシミュレーションコマンドで動作することによって、前記シミュレーション実行の少なくとも一部分と関連付けられたデータを保存もしくは記憶することか、保存もしく記憶された前記シミュレーション実行の少なくとも一部分を検索することか、前記シミュレーション実行の構成を保存もしくは記憶することか、または保存もしくは記憶された前記シミュレーション実行の構成を検索すること、のうちの少なくとも１つを行うように構成されている、請求項１９〜２３のいずれか一項に記載のシステム。
【請求項２５】
前記シミュレータアクセス機構が応答する少なくとも１つのシミュレーションコマンドが、ユーザインターフェースを介して提供される、請求項１９〜２４のいずれか一項に記載のシステム。
【請求項２６】
前記シミュレータアクセス機構が応答する少なくとも１つのシミュレーションコマンドが、サードパーティシミュレーションアプリケーションを介して提供される、請求項１９〜２５のいずれか一項に記載のシステム。
【請求項２７】
前記シミュレータアクセス機構が、前記シミュレーション実行のそれぞれの部分とそれぞれ関連付けられた１つ以上の状態を維持する、請求項１９〜２６のいずれか一項に記載のシステム。
【請求項２８】
前記１つ以上の状態が、仮想構成要素の状態、物理構成要素の状態、シミュレートされた構成要素の状態、仮想デバイスの状態、物理デバイスの状態、シミュレートされたデバイスの状態、仮想モジュールの状態、物理モジュールの状態、シミュレートされたモジュールの状態、前記シミュレーション実行によって少なくとも部分的にシミュレートされているプロセスの状態、または前記シミュレーション実行の状態、のうちの少なくとも１つに対応する、請求項２７に記載のシステム。
【請求項２９】
前記産業プロセスを制御するために前記産業プロセスプラントの前記ランタイム動作中に動作する前記仮想ノードが、仮想ランタイムノードであり、
前記システムは、前記産業プロセスプラントの前記仮想環境内に配設された前記仮想ランタイムノードおよび任意の他の仮想ノードを、作成、構成、および運営する仮想化管理ノードをさらに備える、請求項１〜２８のいずれか一項に記載のシステム。
【請求項３０】
前記仮想環境内に配設された前記任意の他の仮想ノードが、少なくとも１つの、少なくとも１つの他の仮想ランタイムノードまたは少なくとも１つのシミュレートされたノードのうちの１つ以上を有する複数の仮想ノードを含む、請求項２９に記載のシステム。
【請求項３１】
前記仮想化管理ノードが、前記Ｉ／Ｏスイッチをさらに作成および構成する、請求項２９または３０に記載のシステム。
【請求項３２】
前記仮想化管理ノードが、前記プロセス制御システムの構成データベースに記憶された前記プロセス制御システムの構成に基づいて、前記仮想ランタイムノードを自動的に構成および運営する、請求項２９〜３１のいずれか一項に記載のシステム。
【請求項３３】
前記仮想化管理ノードが、前記プロセス制御システムの前記構成に対する変化に基づいて、前記仮想ランタイムノードを自動的に更新する、請求項３２に記載のシステム。
【請求項３４】
前記プロセス制御システムの前記構成に対する前記変化が、前記仮想ランタイムノードの前記構成、別の仮想ランタイムノードの構成、シミュレートされたノードの構成、または前記産業プロセスプラントの前記物理環境内に配設された物理ノードの構成、のうちの少なくとも１つに対する変化を含む、請求項３３に記載のシステム。
【請求項３５】
前記仮想化管理ノードが、前記産業プロセスプラントの前記仮想環境内に配設された、シミュレートされたノードを、前記プロセスプラントの前記物理環境内に配設され、かつ前記シミュレートされたノードによってシミュレートされた物理ノードに対応する前記プロセス制御システムの前記構成に対する変化に基づいて、さらに自動的に更新する、請求項３２〜３４のいずれか一項に記載のシステム。
【請求項３６】
前記プロセス制御システムの前記構成データベースが、システム構成データベースであり、
前記システムは、前記産業プロセスプラントの前記仮想環境内に配設されたそれぞれの仮想ノードのそれぞれの構成を記憶する仮想環境構成データベースをさらに含み、
前記仮想化管理ノードが、前記仮想環境構成データベースに記憶されたデータを、前記システム構成データベースに記憶されたデータと同期させる、請求項２９〜３５のいずれか一項に記載のシステム。
【請求項３７】
前記仮想環境内に配設された前記任意の他の仮想ノードが、少なくとも１つの他の仮想ランタイムノードまたは少なくとも１つのシミュレートされたノードのうちの１つ以上を有する複数の仮想ノードを含み、
前記仮想化管理ノードが、前記仮想環境をサポートする物理コンピューティングプラットフォームの１つ以上の条件に応答して、前記複数の仮想ノードを運営し、前記物理コンピューティングプラットフォームが、１つ以上のコンピューティングデバイスを含む、請求項２９〜３６のいずれか一項に記載のシステム。
【請求項３８】
前記仮想環境をサポートする前記物理コンピューティングプラットフォームに対応する前記１つ以上の条件が、障害の発生、前記物理コンピューティングプラットフォームの１つ以上のリソースのそれぞれの使用、前記１つ以上のリソースのそれぞれの負荷、前記１つ以上のリソースのそれぞれの可用性、前記１つ以上のリソースのそれぞれの帯域幅、前記１つ以上のリソースの性能のそれぞれの測定値、前記１つ以上のリソースのそれぞれの状態、または前記物理コンピューティングプラットフォームの少なくとも一部分の別のタイプの条件、のうちの少なくとも１つを含む、請求項３７に記載のシステム。
【請求項３９】
前記物理コンピューティングプラットフォームの前記１つ以上のリソースが、ハードウェアリソースまたはソフトウェアリソースのうちの少なくとも１つを含む、請求項３８に記載のシステム。
【請求項４０】
前記仮想化管理ノードによる前記複数の仮想ノードの前記運営が、前記複数の仮想ノードに含まれた特定の仮想ノードの削除、別の仮想ノードの作成、待機仮想ノードのアクティブ化、リソースの再割り当て、または別の運営措置、のうちの少なくとも１つを含む、請求項３７〜３９のいずれか一項に記載のシステム。
【請求項４１】
前記仮想環境をサポートする前記物理コンピューティングプラットフォームに対応する前記１つ以上の条件が、産業プロセスプラントのランタイム動作中に発生する、請求項３７〜４０のいずれか一項に記載のシステム。
【請求項４２】
前記仮想化管理ノードによって実施される前記仮想ランタイムノードの前記運営が、前記仮想ランタイムノードの少なくとも一部分のそれぞれの構成を記憶することか、前記仮想ランタイムノードの前記少なくとも前記一部分に対応するランタイムデータを記憶することか、前記仮想ランタイムノードの前記少なくとも前記一部分に対応するシミュレーションデータを記憶することか、前記仮想ランタイムノードの前記少なくとも前記一部分の状態を記憶することか、または前記仮想ランタイムノードの前記少なくとも前記一部分に対応する他のデータを記憶すること、のうちの少なくとも１つを含む、請求項２９〜４１のいずれか一項に記載のシステム。
【請求項４３】
前記仮想化管理ノードによって実施される前記仮想ランタイムノードの前記運営が、それぞれの記憶されたデータから前記仮想ランタイムノードの前記少なくとも前記一部分を復元することをさらに含む、請求項４２に記載のシステム。
【請求項４４】
前記仮想環境内に配設された前記任意の他の仮想ノードが、少なくとも１つの他の仮想ランタイムノードまたは少なくとも１つのシミュレートされたノードのうちの１つ以上を有する複数の仮想ノードを含み、
前記仮想化管理ノードによって実施される前記複数の仮想ノードの前記運営が、前記複数の仮想ノードのうちの１つよりも多い仮想ノードのそれぞれの構成を記憶することか、前記１つよりも多い仮想ノードに対応するランタイムデータを記憶することか、前記１つよりも多い仮想ノードに対応するシミュレーションデータを記憶することか、前記１つよりも多い仮想ノードの状態を記憶することか、または前記１つよりも多い仮想ノードに対応する他のデータを記憶すること、を含む、請求項２９〜４３のいずれか一項に記載のシステム。
【請求項４５】
前記仮想化管理ノードによって実施される前記複数の仮想ノードの前記運営が、それぞれの記憶されたデータから前記１つよりも多い仮想ノードを復元することをさらに含む、請求項４４に記載のシステム。
【請求項４６】
前記仮想環境内に配設された前記任意の他の仮想ノードが、複数の仮想ノードを含み、前記複数の仮想ノードが、前記産業プロセスプラントの前記物理環境内に配設された物理ノードをシミュレートする、シミュレートされたノードを含み、前記シミュレートされたノードが、構成要素挙動モジュールを含み、
前記仮想化管理ノードが、前記シミュレートされたノードの前記構成要素挙動モジュールを前記物理ノードにダウンロードさせる、請求項２９〜４５のいずれか一項に記載のシステム。
【請求項４７】
前記仮想化管理ノードが、前記仮想環境に代わって１つ以上の他のアプリケーションとインターフェースする、請求項２９〜４６のいずれか一項に記載のシステム。
【請求項４８】
前記１つ以上のアプリケーションが、ユーザインターフェースアプリケーション、前記産業プロセスプラントと関連付けられた情報技術（ＩＴ）層で実行されるアプリケーション、前記産業プロセスプラントのオペレーション技術（ＯＴ）層で実行されるアプリケーション、モノのインターネット（ＩｏＴ）アプリケーション、産業用モノのインターネット（ＩＩｏＴ）アプリケーション、コンピューティングクラウドで実行されるアプリケーション、１つ以上のパブリックネットワークを介して前記仮想化管理ノードに通信可能に接続されるアプリケーション、またはサードパーティアプリケーション、のうちの少なくとも１つを含む、請求項４７に記載のシステム。
【請求項４９】
前記産業プロセスプラントの前記仮想環境内に配設された前記仮想ランタイムノードおよび前記任意の他の仮想ノードの前記運営の少なくとも一部分が、インラインユーザ入力なしで、前記仮想化管理ノードによって自動的に実施される、請求項２９〜４７のいずれか一項に記載のシステム。
【請求項５０】
前記産業プロセスプラントの前記仮想環境内に配設された前記仮想ランタイムノードおよび前記任意の他の仮想ノードの前記運営の全体が、インラインユーザ入力なしで、前記仮想化管理ノードによって自動的に実施される、請求項４９に記載のシステム。
【請求項５１】
前記仮想ランタイムノードおよび前記任意の他の仮想ノードの前記作成、構成、および運営の少なくとも一部分が、インラインユーザ入力なしで、前記仮想化管理ノードによって自動的に実施される、請求項４９〜５０のいずれか一項に記載のシステム。
【請求項５２】
前記仮想ランタイムノードおよび前記任意の他の仮想ノードの前記作成、構成、および運営の全体が、インラインユーザ入力なしで、前記仮想化管理ノードによって自動的に実施される、請求項５１に記載のシステム。
【請求項５３】
産業プロセスプラントのプロセス制御システムのノードを制御する方法であって、
フィールドデバイスおよび仮想ノードを、前記フィールドデバイスと前記仮想ノードとの間に配設されたＩ／Ｏスイッチを介して通信可能に接続し、それにより、前記フィールドデバイス、前記Ｉ／Ｏスイッチ、および前記仮想ノードが、前記産業プロセスプラントのランタイム動作中に連携して動作して、産業プロセスを制御することであって、
前記フィールドデバイスが、前記産業プロセスプラントの物理環境内に配設され、物理機能を実施し、
前記Ｉ／Ｏスイッチが、前記フィールドデバイスによって生成され、かつパブリッシュされている、第１のデータのサブスクライバであり、前記Ｉ／Ｏスイッチが、前記フィールドデバイスによって生成された前記第１のデータを示す第２のデータのパブリッシャであり、
前記仮想ノードが、前記産業プロセスプラントの仮想環境内に配設され、前記仮想ノードが、前記フィールドデバイスに対応し、かつ前記Ｉ／Ｏスイッチによってパブリッシュされた、前記第２のデータのサブスクライバである、制御することと、
前記産業プロセスプラントの前記ランタイム動作中、
前記仮想ノードによって、前記フィールドデバイスに対応し、かつ前記Ｉ／Ｏスイッチによってパブリッシュされた、前記第２のデータを受信することと、
前記仮想ノードの構成要素挙動モジュールを利用することによって、前記第２のデータに関して動作し、それによって、前記第２のデータに基づいて制御信号を生成することと、
前記制御信号の指示を前記プロセス制御システムの受信側ノードに送信させ、それによって、前記受信側ノードの挙動を変更することと、を含む、方法。
【請求項５４】
前記制御信号の前記指示を前記受信側ノードに送信させることが、前記仮想ノードによって、前記制御信号を示す第３のデータをパブリッシュすることを含み、
前記Ｉ／Ｏスイッチが、前記制御信号を示す第３のデータのサブスクライバであり、かつ前記第３のデータを示す第４のデータのパブリッシャであり、
前記受信側ノード、または前記Ｉ／Ｏスイッチと前記別のノードとの間に通信可能に配設される介在ノードが、前記第４のデータのサブスクライバである、請求項５３に記載の方法。
【請求項５５】
前記介在ノードが、前記第４のデータのサブスクライバであり、前記介在ノードが、前記Ｉ／Ｏスイッチと前記産業プロセスプラントの物理環境内に含まれた複数の物理デバイスとの間に通信可能に配設されたＩ／Ｏハブデバイスであり、前記複数の物理デバイスが、前記受信側ノードを含み、前記Ｉ／Ｏハブデバイスが、前記複数の物理デバイスの各物理デバイスによってそれぞれ生成されたデータのパブリッシャである、請求項５４に記載の方法。
【請求項５６】
前記制御信号の指示を前記プロセス制御システムの前記受信側ノードに送信させ、それによって、前記受信側ノードの前記挙動を変更することが、
前記制御信号の前記指示を別の仮想ノードに送信させることであって、前記別の仮想ノードが、仮想プロセスコントローラか、仮想安全コントローラか、仮想安全ロジックソルバか、仮想Ｉ／Ｏカード、デバイス、もしくはノードか、仮想無線デバイスか、仮想イーサネットデバイスか、仮想オペレータワークステーションか、仮想ユーザインターフェースデバイスか、仮想ツールか、仮想ゲートウェイか、仮想電子マーシャリングキャビネットもしくはシステムか、または前記産業プロセスプラントの物理環境内に配設される別のタイプの物理デバイスもしくは構成要素の仮想化、のうちの１つである、送信させることと、
それによって、前記産業プロセスプラントがランタイムで動作して前記産業プロセスを制御している間に、前記別の仮想ノードのランタイム挙動を変更することと、を含む、請求項５３〜５５のいずれか一項に記載の方法。
【請求項５７】
前記制御信号の指示を前記プロセス制御システムの前記受信側ノードに送信させ、それによって、前記受信側ノードの挙動を変更することが、
前記制御信号の前記指示を前記産業プロセスプラント内に配設された物理ノードに送信させ、それによって、前記産業プロセスプラントがランタイムで動作して前記産業プロセスを制御している間に、前記物理ノードのランタイム挙動を変更することを含む、請求項５３〜５６のいずれか一項に記載の方法。
【請求項５８】
前記仮想ノードが、仮想ランタイムノードであり、
前記方法は、１つ以上のシミュレートされたノードを前記Ｉ／Ｏスイッチに通信可能に接続することをさらに含み、前記１つ以上のシミュレートされたノードが、前記産業プロセスプラントの前記仮想環境内に配設され、前記１つ以上のシミュレートされたノードおよび前記Ｉ／Ｏスイッチが、シミュレーションシステム内に含まれ、
前記１つ以上のシミュレートされたノードの各シミュレートされたノードが、前記産業プロセスプラントの前記物理環境内に配備可能である１つ以上のそれぞれの物理デバイスまたは構成要素の少なくとも一部分をシミュレートするために利用される、それぞれの構成要素挙動モジュールを含み、前記１つ以上のそれぞれの物理デバイスまたは構成要素が、
プロセスコントローラか、安全コントローラか、安全ロジックソルバか、Ｉ／Ｏノード、カード、もしくはデバイスか、無線デバイスか、イーサネットデバイスか、オペレータワークステーションか、ユーザインターフェースデバイスか、ツールか、ゲートウェイか、電子マーシャリングキャビネットか、ネットワーク接続か、ＭＡＣアドレスか、前記産業プロセスプラントの前記物理環境内に配設された別のタイプの物理デバイスもしくは構成要素か、または
前記産業プロセスプラントの前記物理環境内に配設された特定の物理デバイスもしくは構成要素の一部分、のうちの少なくとも１つを含み、前記特定の物理デバイスまたは構成要素の前記一部分が、モジュールか、ルーチンか、関数もしくは挙動か、ＭＡＣアドレスか、または前記特定の物理デバイスもしくは構成要素のハードウェア副構成要素、のうちの少なくとも１つを含む、請求項５３〜５７のいずれか一項に記載の方法。
【請求項５９】
特定のシミュレートされたノードを含むシミュレーション実行を実行することをさらに含み、これは、
前記特定のシミュレートされたノードの前記それぞれの構成要素挙動モジュールを実行して、データを生成することと、
前記Ｉ／Ｏスイッチを介して前記特定のシミュレートされたノードによって、前記特定のシミュレートされたノードの前記それぞれの構成要素挙動の実行から生成された前記データの指示を、前記仮想ランタイムノード、別の仮想ランタイムノード、別のシミュレートされたノード、または前記産業プロセスプラントの前記物理環境内に配設された物理ノードのうちの少なくとも１つに通信することと、を含み、
前記仮想ランタイムノード、前記別の仮想ランタイムノード、前記別のシミュレートされたノード、または前記物理ノードの前記少なくとも１つが、前記産業プロセスプラントの前記ランタイム動作中に動作する、請求項５８に記載の方法。
【請求項６０】
前記特定のシミュレートされたノードを含む前記シミュレーション実行を実行することに続いて、前記特定のシミュレートされたノードの前記それぞれの構成要素挙動モジュールを、前記特定のシミュレートされたノードに対応する前記１つ以上のそれぞれの物理デバイスまたは構成要素にダウンロードし、それによって、前記特定のシミュレートされたノードに対応する前記１つ以上のそれぞれの物理デバイスまたは構成要素を、前記産業プロセスプラントの前記ランタイム動作中に、前記特定のシミュレートされたノードの前記それぞれの構成要素挙動モジュールに従って、動作させることをさらに含む、請求項５９に記載の方法。
【請求項６１】
前記シミュレーションシステムが、シミュレータアクセス機構をさらに含み、前記方法は、前記シミュレータアクセス機構を利用して、
前記特定のシミュレートされたノードを含む前記シミュレーション実行の実行中に利用される１つ以上のシミュレートされた値を提供および／または受信することか、あるいは
１つ以上のシミュレーションコマンドを動作させ、それによって、あるランタイムペースで前記シミュレーション実行を実行することか、前記シミュレーション実行を高速化して、前記ランタイムペースよりも速く実行することか、前記シミュレーション実行を低速化して、前記ランタイムペースよりも遅く実行することか、前記シミュレーション実行のシミュレートされた値を設定することか、前記シミュレーション実行の初期条件を設定することか、前記シミュレーション実行を一時停止することか、前記シミュレーション実行の中間条件を設定することか、前記シミュレーションの前記実行のペースを変更することか、前記シミュレーション実行と関連付けられたシミュレートされた値を変更することか、前記シミュレーション実行の少なくとも一部分と関連付けられたデータを保存もしくは記憶することか、保存もしく記憶された前記シミュレーション実行の少なくとも一部分を検索することか、前記シミュレーション実行の構成を保存もしくは記憶することか、または保存もしくは記憶された前記シミュレーション実行の構成を検索すること、のうちの少なくとも１つを行うこと、のうちの少なくとも１つを行うことをさらに含む、請求項５９または６０に記載の方法。
【請求項６２】
前記シミュレータアクセス機構を利用することが、ユーザインターフェースを介して提供される少なくとも１つのシミュレーションコマンドに応答して前記シミュレータアクセス機構を利用することか、またはサードパーティシミュレーションアプリケーションを介して提供される少なくとも１つの他のシミュレーションコマンドに応答して前記シミュレータアクセス機構を利用すること、のうちの少なくとも１つをさらに含む、請求項６１に記載の方法。
【請求項６３】
前記シミュレータアクセス機構によって、前記シミュレーション実行の前記実行のそれぞれの部分とそれぞれ関連付けられた１つ以上の状態を維持することをさらに含み、前記１つ以上の状態が、仮想構成要素の状態、物理構成要素の状態、シミュレートされた構成要素の状態、仮想デバイスの状態、物理デバイスの状態、シミュレートされたデバイスの状態、仮想モジュールの状態、物理モジュールの状態、シミュレートされたモジュールの状態、前記シミュレーション実行によって少なくとも部分的にシミュレートされているプロセスの状態、前記シミュレーション実行の状態、または別のタイプの状態、のうちの少なくとも１つに対応する、請求項６１または６２に記載の方法。
【請求項６４】
請求項１〜６３のいずれか一項と請求項１〜６３の他のいずれか一項との組み合わせ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、「Ｉｎｄｕｓｔｒｉａｌ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｒｅａｌ−Ｔｉｍｅ  Ｓｉｍｕｌａｔｉｏｎ  ａｎｄ  Ｃｏｎｔｒｏｌ」と題する２０１９年６月１０日出願の米国仮特許出願第６２／８５９，５０８号に対する優先権および出願日の利益を主張し、その開示全体が参照により本明細書に明示的に組み込まれる。
【０００２】
本特許出願は、概して、産業およびプロセス制御システムに関し、より具体的には、仮想化された構成要素を使用してプロセス制御および／またはランタイムの実際のプロセス制御のシミュレーションを提供する産業制御システムに関する。
【背景技術】
【０００３】
材料から物理製品を生産する化学、石油、または他の産業プロセスプラントで使用されるものなどのプロセスまたは産業制御システムは、典型的には、アナログ、デジタルもしくは組み合わされたアナログ／デジタルバスを介して、または無線通信リンクもしくはネットワークを介して、１つ以上のフィールドデバイスに通信可能に連結される１つ以上のプロセスコントローラを含む。例えば、バルブ、バルブポジショナ、スイッチ、および送信機（例えば、温度、圧力、レベル、および流量センサ）であり得るフィールドデバイスは、プロセス環境内に位置し、概して、バルブの開閉、プロセスパラメータの測定などの物理またはプロセス制御機能を実施して、プロセスプラントまたはシステム内で実行している１つ以上のプロセスを制御する。周知のＦＯＵＮＤＡＴＩＯＮ（登録商標）フィールドバスプロトコルに適合するフィールドデバイスなどのスマートフィールドデバイスはまた、制御計算、警告機能、およびコントローラ内で一般に実装される他の制御機能も実施し得る。中央に位置し得るが、分散方法でプラント環境内にも位置し得るプロセスコントローラは、フィールドデバイスによって行われるプロセス測定を指示する信号および／またはフィールドデバイスに関する他の情報を受信し、例えば、プロセス制御判断を行い、受信した情報に基づき制御信号を発生させ、ＨＡＲＴ（登録商標）、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）、およびＦＯＵＮＤＡＴＩＯＮ（登録商標）フィールドバスフィールドデバイスなどの、フィールドデバイスで実施される制御モジュールまたはブロックと連携する、異なる制御モジュールを作動させるコントローラアプリケーションを実行する。コントローラ内の制御モジュールは、通信ラインまたはリンクを経由して、フィールドデバイスに制御信号を送信し、それによって、プロセスプラントまたはシステムの少なくとも一部分の動作を制御する。
【０００４】
フィールドデバイスおよびコントローラからの情報は、制御室もしくはより厳しいプラント環境から離れた他の場所に典型的に配置される、オペレータワークステーション、パーソナルコンピュータもしくはコンピューティングデバイス、データヒストリアン、レポートジェネレータ、集中データベース、または他の集中管理コンピューティングデバイスなどの１つ以上の他のハードウェアデバイスに対して、通常、データハイウェイを通じてコントローラから利用可能にされる。これらのハードウェアデバイスの各々は、典型的には、プロセスプラントにわたって、またはプロセスプラントの一部分にわたって集中化される。これらのハードウェアデバイスは、例えば、エンジニアがプロセスの一部分を構成すること、またはオペレータが、プロセス制御ルーチンの設定の変更、コントローラもしくはフィールドデバイス内の制御モジュールの動作の変更、プロセスの現在の状態の視認、フィールドデバイスおよびコントローラによって発生した警報の視認、担当者の訓練もしくはプロセス制御ソフトウェアの試験を目的としたプロセスの動作のシミュレーション、構成データベースの維持および更新などの、プロセスの制御および／またはプロセスプラントの動作に関する機能を実施することを可能にし得るアプリケーションを実行する。ハードウェアデバイス、コントローラおよびフィールドデバイスによって利用されるデータハイウェイは、有線通信経路、無線通信経路、または有線もしくは無線通信経路の組み合わせを含み得る。
【０００５】
例として、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔによって販売されているＤｅｌｔａＶ（商標）制御システムは、プロセスプラント内の多様な場所に位置付けられている異なるデバイス内に記憶され、それら異なるデバイスによって実行される複数のアプリケーションを含む。１つ以上のワークステーションまたはコンピューティングデバイス内に備わる構成アプリケーションは、ユーザによる、プロセス制御モジュールの作成または変更、およびデータハイウェイを経由した、これらのプロセス制御モジュールの、専用分散型コントローラへのダウンロードを可能にする。典型的には、これらの制御モジュールは、通信可能に相互接続された機能ブロックで構成され、これらの機能ブロックは、それに対する入力に基づき制御スキーム内で機能を実施し、出力を制御スキーム内の他の機能ブロックに提供するオブジェクト指向プログラミングプロトコル内のオブジェクトである。また、構成アプリケーションは、データをオペレータに対して表示するため、かつオペレータによるプロセス制御ルーチン内の設定点などの設定の変更を可能にするために視認アプリケーションが使用するオペレータインターフェースを、構成設計者が作成または変更することを可能にし得る。各専用コントローラ、およびいくつかの場合においては、１つ以上のフィールドデバイスは、実際のプロセス制御機能を実装するために、それらに割り当てられてダウンロードされた制御モジュールを作動させるそれぞれのコントローラアプリケーションを記憶および実行する。視認アプリケーションは、１つ以上のオペレータワークステーション（またはオペレータワークステーションおよびデータハイウェイと通信可能に接続された１つ以上のリモートコンピューティングデバイス）上で実行され得、この視認アプリケーションは、コントローラアプリケーションからデータハイウェイを経由してデータを受信し、ユーザインターフェースを使用してこのデータをプロセス制御システム設計者、オペレータ、またはユーザに表示して、オペレータのビュー、エンジニアのビュー、技師のビューなどのいくつかの異なるビューのうちのいずれかを提供し得る。データヒストリアンアプリケーションが、典型的には、データハイウェイにわたって提供されたデータの一部または全てを収集および記憶するデータヒストリアンデバイスに記憶され、それによって実行される一方で、構成データベースアプリケーションが、現在のプロセス制御ルーチン構成およびそれと関連付けられたデータを記憶するために、データハイウェイに取り付けられたなおさらに離れたコンピュータで作動され得る。代替的に、構成データベースは、構成アプリケーションと同じワークステーション内に位置し得る。
【０００６】
現在知られているプロセス制御プラントおよびプロセス制御システムのアーキテクチャは、制限されたコントローラおよびデバイスのメモリ、通信帯域幅、ならびにコントローラおよびデバイスのプロセッサ能力の影響を強く受ける。例えば、現在知られているプロセス制御システムアーキテクチャでは、コントローラでの動的および静的不揮発性メモリの使用は、通常、最小限に抑えられるか、または少なくとも慎重に管理される。その結果、システム構成中（例えば、先験的）に、ユーザまたは構成エンジニアは、典型的には、コントローラ内のどのデータがアーカイブまたは保存されるべきか、それが保存されることになる頻度、および圧縮が使用されるか否か、を選択しなければならず、したがって、コントローラは、この制限されたデータ規則セットで構成される。そのため、トラブルシューティングおよびプロセス分析に有用であり得るデータはアーカイブされないことが多く、収集された場合、データ圧縮により有用な情報が失われた可能性がある。
【０００７】
さらに、現在知られているプロセス制御システムでコントローラのメモリ使用量を最小限に抑えるために、（コントローラの構成によって指示されるときに）アーカイブまたは保存されるように選択されたデータが、適切なデータヒストリアンまたはデータサイロでのストレージ用にサイロワークステーションまたはコンピューティングデバイスにレポートされる。データをレポートするために使用される現在の技法は、通信リソースを十分に利用せず、過剰なコントローラの負荷を誘発する。さらに、ヒストリアンまたはサイロでの通信およびサンプリングの時間遅延により、データ収集およびタイムスタンプが実際のプロセスと同期していないことがよくある。
【０００８】
同様に、バッチプロセス制御システムでは、コントローラのメモリ使用量を最小限に抑えるために、コントローラ構成のバッチレシピおよびスナップショットは、典型的には、集中管理コンピューティングデバイスまたは（例えば、データサイロもしくはヒストリアン）の場所に記憶されたままであり、必要な場合にのみコントローラに転送される。かかる戦略は、コントローラに、およびワークステーションまたは集中管理コンピューティングデバイスとコントローラとの間の通信に、著しいバースト負荷をもたらす。
【０００９】
さらに、プロセス制御システムなどの産業制御システムの現在のアーキテクチャは、制御機能、入力／出力（Ｉ／Ｏ）機能、ユーザインターフェース機能などの様々な機能が、ハードウェア（例えば、ユーザワークステーションまたはインターフェースデバイス、プロセスコントローラ、安全システムコントローラ、専用Ｉ／Ｏデバイス、マーシャリングされたＩ／Ｏデバイス、フィールドデバイス、安全ロジックソルバなど）の特定の部分で実施され、それらに結び付けられており、常に特定のハードウェア内に記憶されたままである点で、主にハードウェア駆動である。例えば、現在のプロセス制御システムでは、コントローラとＩ／Ｏデバイス（例えば、個々のＩ／Ｏデバイス、またはマーシャリングされたＩ／Ｏデバイスのバンクのいずれか）との間の相互接続は、特定のハードウェアに基づいて構成され、その結果として、物理Ｉ／Ｏ関係が、堅固に結合され、最も一般的には、一対一の様式、例えば、Ｉ／Ｏデバイスがコントローラに、別のＩ／Ｏデバイスが別のコントローラに、などで結合される。このアーキテクチャ設計は、これらのシステムが迅速に変化または再構成することが困難であり、独自の制御ソフトウェアを実装するために使用される独自のハードウェアに堅固に結び付けられ、実装が高価であり得るデバイスベースによるデバイスに関するハードウェア冗長性を必要とし、かつ、例えば、物理プロセスコントローラ、Ｉ／Ｏデバイスの特定の特性および能力などの個々のデバイスのサイズ制限に起因して、特定の様式で構成されることを必要とする追加のハードウェアを追加せずに、容易に拡張可能ではないか、またはアップグレードされることができないため、制御システムの復元性、信頼性、可用性、応答性、および順応性を制限する。
【００１０】
これらの問題に対処するいくつかの試みとしては、物理コントローラを仮想化することが挙げられるが、コントローラの仮想化は、オフライン開発および試験システムに制限されており、物理プラントおよび／または生産環境でのランタイムプロセス制御に、利用されていたとしても、それほど広く利用されていなかった。さらに、仮想化されたコントローラおよび物理コントローラの両方が、性能、帯域幅、スループットなどの物理Ｉ／Ｏデバイスの制限を受けるままである。
【発明の概要】
【００１１】
産業プロセスプラントの産業またはプロセス制御システムが、既知の産業またはプロセス制御システムと比較して、より良好な復元性、応答性、および順応性を有することを可能にする、動的シミュレーションおよび／またはランタイム生産プロセス制御のための新規な多目的ハードウェア／ソフトウェアアーキテクチャまたはプラットフォーム。より具体的には、この新規なアーキテクチャまたはプラットフォームは、概ね、制御システムで使用されるハードウェアを、ハードウェアの挙動を統制するソフトウェアから連結解除し、システムをより容易に拡縮、再構成、および変化させると共に、全体的なシステムの信頼性、可用性、および性能を改善する。議論を容易にするために、新規な多目的動的シミュレーションおよびランタイム制御プラットフォームまたはアーキテクチャは、本明細書では、「ＭＰＤＳＣ」、「ＭＰＤＳＣプラットフォーム」、「ＭＰＤＳＣシステム」、または「ＭＰＤＳＣアーキテクチャ」と互換的に呼ばれる。
【００１２】
一般的に言うと、ＭＰＤＳＣは、物理プロセス環境に連結された仮想プロセス環境を含み、仮想および物理環境の構成要素が、連携して、産業プロセスの動的シミュレーションおよび／またはランタイム（例えば、実際の、または運転可能な）生産プロセス制御を実施する。ランタイムプロセス制御について、ＭＰＤＳＣプラットフォームは、プラントのランタイム中にバッチおよび／または連続産業プロセスを監視および制御するように連携する、仮想構成要素、物理構成要素、ならびに／または仮想構成要素および物理構成要素の両方を含み得る、プロセス制御システム（ＰＣＳ）をサポートする。いくつかの構成では、ＭＰＤＳＣプラットフォームはまた、ランタイム中にプラントの安全動作を維持し、プラントのフェイルセーフ動作を提供するように連携する仮想および物理構成要素の両方を有し得る、安全計装システム（ＳＩＳ）もサポートする。ランタイム、運転可能なプロセス制御、および／または関連ランタイム機能を実施する仮想ノード（例えば、プロセスプラントの物理環境内に配設された１つ以上の物理デバイスまたは構成要素と連携して）は、本明細書では「仮想ランタイムノード」と呼ばれる。
【００１３】
ＭＰＤＳＣプラットフォームは、追加的または代替的に、制御および／または安全システムおよび／または構成要素の試験、確認、検証、および／または検査、オペレータの訓練、事例研究、進行中プロセスの改善などに利用され得る、シミュレーション環境または空間をサポートし得る。シミュレーションの目的について、ＭＰＤＳＣプラットフォームは、物理プロセス環境内に配備可能である１つ以上の物理デバイス、モジュール、または構成要素をシミュレートする仮想ノードを提供する。プロセスプラントの物理環境内に配備可能である様々なデバイス、モジュール、および／または構成要素をシミュレートする仮想ノードは、本明細書では「シミュレートされたノード」と呼ばれる。
【００１４】
ＭＰＤＳＣプラットフォームによって提供されるシミュレーションは、プロセスプラントまたはその一部分のシミュレーションがリアルタイムで実行され、それによって、ランタイム中に発生する（ことになる）タイミングおよび他の挙動を反映するため、および／またはシミュレーションが、様々な値、初期条件、中間条件などを使用するために、リアルタイム実行よりも速いまたは遅いペースで実行するように操作され得るため、「動的」である。シミュレーション空間は、例えば、様々なシミュレートされたシナリオの保存／復元能力、様々なシナリオの編集可能な初期条件および／または中間条件、様々なプロトコルを介したサードパーティシミュレータとの調整、オペレータ表示ビューの試験および検査、ＰＣＳの１つ以上の部分のリアルタイムシミュレーション、ＰＣＳの１つ以上の部分のシミュレーションの高速化および／または低速化、実際の（例えば、シミュレーションされていない）仮想および／または物理構成要素と連動して動作するシミュレーションされた構成要素を含むシミュレーション、変更管理およびプラント構成との同期などの、様々な特徴を提供する。ＭＰＤＳＣプラットフォームは、シミュレーションおよびランタイム動作の両方、シミュレーションとランタイム動作と間の様々な相互作用および共通部分（例えば、アップグレード、パッチ、「ｗｈａｔ−ｉｆ」シナリオ、構成変化、ユーザ入力変化などの試験）を同時にサポートすることができる。さらに、ＭＰＤＳＣプラットフォームによると、システム冗長性、耐障害性、スイッチオーバ、計画された保守などが、シームレスかつ容易に達成されることができる。
【００１５】
ＭＰＤＳＣアーキテクチャの主要な構成要素の１つは、本明細書では、「Ｉ／Ｏスイッチ」または「Ｉ／Ｏサーバ」と呼ばれ、これは、概して、特定のハードウェアと具体的かつ直接的に関連付けられることから離れてプロセスプラントのＩ／Ｏを抽象化すると共に、シミュレーションおよび／またはランタイムプロセス制御のためのＩ／Ｏに関連する他の機能を実施する。Ｉ／ＯスイッチまたはＩ／Ｏサーバは、ランタイム中、プロセスプラントの仮想および／または物理ノード間でＩ／Ｏデータを配信するノードである。各ノード（仮想または物理のいずれか）は、典型的には、ＭＰＤＳＣシステム内で一意の名前、タグ、または識別子によって識別されるプロセスプラントの構成要素である。例えば、ノードは、物理もしくは仮想コントローラ、フィールドデバイス、安全情報コントローラ、安全ロジックソルバ、Ｉ／Ｏカードもしくはデバイス（例えば、無線Ｉ／Ｏデバイス、イーサネットＩ／Ｏデバイス、マーシャリングされたＩ／Ｏキャビネットまたはその構成要素など）、オペレータワークステーション、別のタイプのユーザインターフェースデバイス、ツール（例えば、診断ツール、シミュレーションツールなど）、ゲートウェイ、データストレージデバイス、または他のタイプの構成要素であり得る。一般的に言うと、Ｉ／Ｏスイッチは、Ｉ／Ｏスイッチがソースノード（仮想または物理のいずれか）と宛先ノード（仮想または物理のいずれか）との間でＩ／Ｏデータ（本明細書では、互換的に「プロセスＩ／Ｏデータ」または「ＰＩＯデータ」としても呼ばれる）を配信または切り替える、仮想および／または物理ノード間のデータブローカとして動作する。ある意味では、プロセスＩ／Ｏデータを配信するために異なるソースおよび宛先ノードに物理Ｉ／Ｏカードを堅固におよび／または具体的に連結するのではなく、Ｉ／Ｏスイッチは、ＭＰＤＳＣシステムのノード間のプロセスＩ／Ｏデータの物理配信機構を仮想化し、Ｉ／Ｏデータを配信する目的で利用されるハードウェア構成要素間の結合を緩める。さらに、Ｉ／Ｏスイッチは、ランタイムの実際の生産プロセス制御、および／または生産プロセス制御のリアルタイムシミュレーションをサポートするのに十分に迅速に（例えば、十分に小さい遅延で）Ｉ／Ｏデータを配信することができるように構成される。
【００１６】
一般的に言うと、Ｉ／ＯスイッチまたはＩ／Ｏサーバによってサービス提供される仮想および物理ノード／構成要素は、仮想および物理ノードまたは構成要素の挙動を統制するそれぞれのモジュールを含む。そのようなモジュールは、本明細書では「構成要素挙動モジュール」または「ＣＢＭ」と呼ばれ、その例としては、コントローラの制御モジュール、安全ロジックソルバの安全ロジック、および少なくとも一部でＩ／Ｏデータ上で動作することによって、モジュールが記憶および実行される構成要素の挙動および動作を統制する他のタイプのモジュールが挙げられる。ＭＰＤＳＣシステム内では、Ｉ／Ｏデータのプロセス関連ペイロードを動作させるＣＢＭは、Ｉ／Ｏスイッチ、および構成要素挙動動作モジュールに／からＩ／Ｏデータを配信する際のその役割を不可知であるか、または認識していない。つまり、ＣＢＭは、ＣＢＭのホストノードへの／からのＣＢＭのそれぞれのＩ／Ｏ配信機構が、物理Ｉ／Ｏカードであるか否か、またはＩ／Ｏスイッチであるか否かを認識していない。
【００１７】
そのため、Ｉ／Ｏスイッチは、ＭＰＤＳＣシステムの構成要素挙動モジュールに対して透過的であるＩ／Ｏデータのスイッチングファブリック、ルータ、および／または配信機構とみなされ得る。このため、Ｉ／Ｏスイッチは、ノードのそれぞれのパブリッシャ／サブスクライバ層（本明細書では互換的に「Ｐｕｂ／Ｓｕｂ層」とも呼ばれる）およびＩ／Ｏペイロードまたはデータがノード間で転送される仮想通信ネットワークを介して、仮想および／または物理ノード間でＩ／Ｏデータを配信する。例えば、送信またはパブリッシュノードは、仮想通信ネットワークに、送信ノードの構成要素挙動モジュールによって生成されたデータをパブリッシュするそれぞれのＰｕｂ／Ｓｕｂ層を含み得る。Ｉ／Ｏスイッチは、データの受信者またはデータのサブスクライバであるノードにパブリッシュされたデータを配信または切り替え得、各サブスクライバノードは、そのそれぞれの構成要素挙動モジュールによる消費のために、そのそれぞれのＰｕｂ／Ｓｕｂ層を介してデータを回復し得る。したがって、Ｉ／Ｏスイッチは、ＭＰＤＳＣシステム内のノードの定義された関係に従って、パブリッシャノードとサブスクライバノードとの間で要求に応じてデータを仲介する。
【００１８】
本明細書に利用される際、ＭＰＤＳＣプラットフォームまたはシステムの「物理環境」は、物理的な有形構成要素（例えば、フィールドデバイス、タンク、バルブ、アクチュエータ、ヒータ、蒸発器、センサなど）が、ランタイム制御されたプロセスを介して、物理材料を物理製品に変換するために利用される、生産プラントまたは環境を指す。したがって、「物理環境」は、本明細書では互換的に、産業プロセスプラントの「プラント環境」と呼ばれる。上述のように、物理環境またはプラント環境は、フィールドデバイス、センサ、送信機、スイッチ、ポジショナ、タンク、ヒータなどのＭＰＤＳＣシステムの物理またはハードウェア構成要素が配設され、物理製品を生産するために物理材料に対して動作するフロントエンド部分を含む。したがって、物理環境の「フロントエンド」部分は、本明細書では互換的に、プロセスプラントの物理環境の「フィールド」または「現場」部分と呼ばれる。
【００１９】
ＭＰＤＳＣシステムの物理環境またはプラント環境はまた、オペレータワークステーション、パーソナルコンピュータもしくはコンピューティングデバイス、データヒストリアン、レポートジェネレータ、集中データベース、および／または他の集中（または少なくとも部分的に集中化された）管理コンピューティングデバイスなどの物理またはハードウェア構成要素がアプリケーションを実行して、例えば、プロセスプラントおよび／またはその構成要素の構成、プラントのランタイム動作の表示および監視、プラントのランタイム動作中の警告または警報への応答、プラントのランタイム動作中のパラメータの調整、レポートの生成、データの記憶および分析などを行う。ＭＰＤＳＣシステムの物理環境のバックエンド部分は、現場、密閉された部屋、および／またはフィールド環境から離れたもしくは遠隔である場所などの、より厳しいフィールド環境から保護されている領域に位置し得る。
【００２０】
ＭＰＤＳＣシステムの仮想環境は、この開示の後のセクションでより詳細に説明されるように、様々な物理プロセスプラント構成要素の仮想化をサポートするプラットフォームを提供するように具体的に構成および相互接続される物理またはハードウェアコンピューティングデバイスを使用して実装される。一般的に言うと、仮想化プラットフォームを提供およびサポートする物理コンピューティングデバイスは、プラントの現場に物理的に位置し得るか（例えば、フィールド環境の保護され、密閉された領域内）、現場から離れて物理的に位置し得るか、または現場および現場から離れた場所の様々な場所に物理的にかつ分散して位置し得る。仮想化プラットフォームを提供およびサポートする物理コンピューティングデバイスは、任意の数の物理データリンクおよび／または通信／データネットワークを介して相互接続され得る。一般的に言うと、物理コンピューティングデバイス、データリンク、および通信／データネットワークは、ＭＰＤＳＣシステムの様々な論理または仮想構成要素が存在するコンピューティングプラットフォームを形成し、様々な論理または仮想構成要素は、物理プロセス環境の構成要素と組み合わせてランタイムプロセス制御に、またはプロセスシミュレーション目的に利用され得る。
【００２１】
ＭＰＤＳＣシステムの仮想環境に存在する論理または仮想構成要素は、ＭＰＤＳＣシステムの１つ以上の実際のまたは計画された物理部分のシミュレーションを提供するために動作し得る（例えば、必要に応じて、リアルタイムで、高速で、および／または低速で）。いくつかの実施態様では、ＭＰＤＳＣシステムの仮想環境内に存在する論理または仮想構成要素、およびＭＰＤＳＣシステムの物理環境内に存在する物理構成要素は、シミュレーションおよび／またはランタイムの実際の生産プロセス制御を提供するように協調して動作し得る。したがって、いくつかの実施形態では、ＭＰＤＳＣプラットフォームの物理および仮想環境は、１つ以上の通信リンクおよび／またはネットワークを介して通信可能に接続され、通信リンクおよび／またはネットワークは、任意の数の有線リンクおよび／またはネットワーク、無線リンクおよび／またはネットワーク、プライベートリンクおよび／またはネットワーク、パブリックリンクおよび／またはネットワークを含み得る。スタンドアロンの仮想リアルタイムシミュレーションの実施形態、ならびに産業制御システムの論理／仮想および物理構成要素とそれらの間の通信接続との間の協調の実施形態は、本開示の後のセクションでより詳細に説明される。
【００２２】
さらに、ＭＰＤＳＣプラットフォームの仮想および物理環境は、本明細書では「ＭＰＤＳＣシステム構成データベース」と呼ばれる、共通の（例えば、同じ）システム構成データベースを利用または共有する。したがって、ＭＰＤＳＣシステム構成データベースを介して、様々な仮想および物理構成要素が、仮想および物理環境の両方にわたってＭＰＤＳＣプラットフォーム内で一意に識別され得、シミュレーションとランタイム動作との間の共通部分（例えば、試験、スイッチオーバなど）がシームレスかつ容易に達成されることができる。
【００２３】
一実施形態では、多目的動的シミュレーションおよびランタイム産業またはプロセス制御（ＭＰＤＳＣ）システムなどのシステムは、フィールドデバイスを含むプロセス制御システムを含み、フィールドデバイスは、産業プロセスプラントの物理環境内に配設され、物理機能を実施する。加えて、プロセス制御システムは、フィールドデバイスと仮想ノードとの間に通信可能に配設されたＩ／Ｏスイッチを含み、仮想ノードは、産業プロセスプラントの仮想環境内に配設される。Ｉ／Ｏスイッチは、フィールドデバイスによって生成され、かつパブリッシュされている、第１のデータのサブスクライバであり、Ｉ／Ｏスイッチは、フィールドデバイスによって生成された第１のデータを示す第２のデータのパブリッシャである。プロセス制御システムは、仮想ノードをさらに含み、仮想ノードは、フィールドデバイスに対応し、かつＩ／Ｏスイッチによってパブリッシュされた、第２のデータのサブスクライバである。仮想ノードは、フィールドデバイスに対応する第２のデータに関して動作し、それによって、プロセス制御システムの別のノードの挙動を変更する制御信号を生成する、構成要素挙動モジュールを含む。フィールドデバイス、仮想ノード、および別のノードは、例えば、産業プロセスプラントのランタイム動作中に連携して動作して、産業プロセスを制御する。
【００２４】
一実施形態では、産業プロセスプラントのプロセス制御システムのノードを制御する方法は、フィールドデバイスおよび仮想ノードを、フィールドデバイスと仮想ノードとの間に配設されたＩ／Ｏスイッチを介して通信可能に接続し、それにより、フィールドデバイス、Ｉ／Ｏスイッチ、および仮想ノードが、産業プロセスプラントのランタイム動作中に連携して動作して、産業プロセスを制御することを含む。フィールドデバイスは、産業プロセスプラントの物理環境内に配設され、物理機能を実施する。Ｉ／Ｏスイッチは、フィールドデバイスによって生成され、かつパブリッシュされている、第１のデータのサブスクライバであり、Ｉ／Ｏスイッチは、フィールドデバイスによって生成された第１のデータを示す第２のデータのパブリッシャである。仮想ノードは、産業プロセスプラントの仮想環境内に配設され、仮想ノードは、フィールドデバイスに対応し、かつＩ／Ｏスイッチによってパブリッシュされた、第２のデータのサブスクライバである。産業プロセスプラントのランタイム動作中、方法は、仮想ノードによって、フィールドデバイスに対応し、かつＩ／Ｏスイッチによってパブリッシュされた、第２のデータを受信することと、仮想ノードの構成要素挙動モジュールを利用することによって、第２のデータに関して動作し、それによって、第２のデータに基づいて制御信号を生成することと、制御信号の指示をプロセス制御システムの別のノードに送信させ、それによって、別のノードの挙動を変更することと、を含む。
【図面の簡単な説明】
【００２５】
【図１】プロセスプラントの動的シミュレーションおよび／またはランタイム産業またはプロセス制御を提供する例示的な多目的動的シミュレーションおよびランタイム産業またはプロセス制御（ＭＰＤＳＣ）システムのブロック図である。
【図２】図１のＭＰＤＳＣシステム内に含まれ得る例示的な仮想ノードアーキテクチャの実施形態を例示するブロック図である。
【図３】図１のＭＰＤＳＣシステムがサポートし得る物理プラント環境の例示的な構成である。
【図４】図１のＭＰＤＳＣシステムで少なくとも部分的に実装され得る、複数のＩ／Ｏスイッチの例示的な構成を図示する。
【図５】図１のＭＰＤＳＣシステムの少なくとも一部分が構成および運営され得る例示的な仮想化管理システムを例示するブロック図である。
【図６】産業プロセスプラントのプロセス制御システムのノードを制御する例示的な方法のフロー図である。
【発明を実施するための形態】
【００２６】
図１は、産業またはプロセスプラントの動的シミュレーションおよび／またはランタイムプロセス制御を提供する例示的な多目的動的シミュレーションおよびランタイム産業またはプロセス制御（ＭＰＤＳＣ）システムまたはプラットフォーム１０のブロック図である。例示的なＭＰＤＳＣプラットフォーム１０は、産業プロセスプラントのプロセス制御の動的シミュレーションおよび／または仮想化されたデバイスを使用するリアルタイムプロセス制御をサポートする。例えば、仮想化されたデバイスは、プロセスプラントのランタイム中の物理的な生産目的のためにＭＰＤＳＣプラットフォーム１０によって利用され得る。図１に示されるように、ＭＰＤＳＣプラットフォーム１０は、仮想プラント環境部分１２および物理プラント環境部分１５を含むが、ＭＰＤＳＣプラットフォーム１０がリアルタイムシミュレーション目的のみに利用される実施形態では、物理プラント環境部分１５は、省略され得る。一般的に言うと、仮想プラント環境部分１２および物理プラント環境部分１５は、産業プロセスプラントの１つ以上のオペレーション技術（ＯＴ）層１８を集合的に形成し、これは、生成されたデータを、産業プロセスプラントと関連付けられた１つ以上の情報技術（ＩＴ）層２０に、および／または、例えば、１つ以上のアプリケーション２１ａ〜２１ｎ、２２ａ〜２２ｍによる企業および／または外部使用のために、ＩＴ層の外部にあるネットワークに提供し得る。例えば、アプリケーション２１ａ〜２１ｍは、ＭＰＤＳＣプラットフォーム１０を所有／動作させる企業によって提供され得、企業と関連付けられたＩＴ層で実施され得、アプリケーション２２ａ〜２２ｍは、インターネットまたは他のパブリックネットワークを介してアクセスされる遠隔ネットワークで実行する、それぞれのサードパーティによって提供されるモノのインターネット（ＩｏＴ）および／または産業用モノのインターネット（ＩＩｏＴ）アプリケーションであり得る。
【００２７】
企業のＩＴ層２０は、１つ以上のローカルおよび／または遠隔サーババンク、１つ以上のコンピューティングクラウドなどの任意の数のローカルおよび／または遠隔に配設されたコンピューティングデバイスに実装され得、任意の数のアプリケーションまたは企業のＯＴ層１８によって生成されたデータのコンシューマ２１ａ〜２１ｎを含み得る。典型的には（必須ではないが）、図１に示されるように、ＯＴ層１８は、１つ以上のパブリックおよび／またはプライベート通信ネットワーク２４および１つ以上のエッジゲートウェイシステム２８を介してＩＴ層２０に通信可能に連結され、エッジゲートウェイシステム２８は、ＯＴ層１８／ＭＰＤＳＣプラットフォーム１０とＩＴ層２０との間のデータ配信のセキュリティおよび効率を提供する。さらに、１つ以上のエッジゲートウェイシステム２８は、ＭＰＤＳＣプラットフォーム１０と外部ネットワークおよび／または外部アプリケーション２２との間のデータ配信のセキュリティおよび効率を提供し得る。
【００２８】
図１では、ＭＰＤＳＣプラットフォーム１０の仮想プラント環境１２は、Ｉ／Ｏスイッチ（本明細書では「Ｉ／Ｏサーバ」として互換的に呼ばれる）２５と通信可能に接続される１つ以上の仮想ノード（ＶＮ）３０ａ、３０ｂ、３０ｃ〜３０ｐを含む。一般的に言うと、各仮想ノード３０ｘは、物理プラント環境１５内で動作可能であり得るそれぞれの物理構成要素の挙動をシミュレートまたは仮想化する仮想マシンである。別の言い方をすると、仮想プラント環境１２内の各仮想ノード３０ｘは、物理プラント環境１５内のその物理的な対応する部分がデータを処理して挙動するのと同じ様式で、データを処理して挙動する。
【００２９】
特に、各仮想ノード３０ｘは、ＶＮ３０ｘが、仮想プラント環境１２内の他の仮想ノード３０ｘと、および／または物理ノード４０ａ、４０ｂ、４０ｃおよびエッジゲートウェイシステム２８（エッジゲートウェイ２８は、特定タイプのＰＮとみなされ得る）などの物理プラント環境１５内の１つ以上の物理ノード（ＰＮ）と通信することを可能するフレームワークおよび１つ以上のサブシステム３２を含み、物理ノードの各々は、仮想ノード３０ｘとの通信を可能にするフレームワークおよびそれぞれの１つ以上のサブシステム４２ｘを含む。加えて、ＭＰＤＳＣプラットフォーム１０は、任意の数の他の物理ノードまたは構成要素（例えば、ＰＮａ−ＰＮｋ）を含み得る。
【００３０】
仮想ノードは、様々なタイプの物理ノードを仮想化し得る。一般的に言うと、本明細書に利用される際、「物理ノード」は、ハードウェアを含み、他のデバイスまたは構成要素（仮想または物理）に／からデータを送信および／または受信する、ＭＰＤＳＣプラットフォーム１０の物理デバイスまたは構成要素である。それぞれの仮想ノードによって表され得る物理ノードのタイプの例としては、限定されるものではないが、様々なタイプのプロセス制御コントローラと、様々なタイプのローカルおよび／または遠隔Ｉ／Ｏデバイスまたはカード（無線Ｉ／Ｏカード（ＷＩＯＣ）、イーサネットＩ／Ｏカード（ＥＩＯＣ）など）、ならびにＩ／Ｏ電子マーシャリングシステムの様々な構成要素（特性化モジュール（ＣＨＡＲＭ）、端子台、ＣＨＡＲＭ  Ｉ／Ｏカード（ＣＩＯＣ）など）と、安全コントローラ、安全ロジックソルバ、ＳＩＳリピータ、安全ネットワークブリッジ、安全ネットワークゲートウェイなどの様々なタイプの安全計装システム（ＳＩＳ）ノードと、ローカルおよび／もしくは遠隔物理オペレータワークステーション、モバイルデバイス、ならびに／またはランタイム動作および／もしくはＭＰＤＳＣプラットフォーム１０に関連する他の目的のためのユーザインターフェースを提供する他のコンピューティングデバイスを含むユーザインターフェースデバイスと、制御構成ツール、データ統合および視認ツール、データ分析および分析構成ツール、表示ビュー構成ツール、診断ツール、資産管理ツール、アプリケーションステーションなどの、ＭＰＤＳＣプラットフォーム１０に関連するツールを提供するローカルおよび／または遠隔物理コンピューティングデバイスと、無線ゲートウェイ、安全ゲートウェイ、ファイアウォール、エッジゲートウェイ、フィールドゲートウェイ、システム間ゲートウェイなどの、ＭＰＤＳＣプラットフォーム１０内および／またはそれによって利用される様々なタイプのゲートウェイと、物理プラント環境１５内で利用され得る他のタイプの物理ノードが挙げられる。
【００３１】
いくつかの実施形態では、単一のＶＮ３０ｘは、物理ノード全体を表すか、または仮想化し得る。いくつかの実施形態では、単一のＶＮ３０ｘは、特定の物理ノードのうちの１つ以上の部分を表すか、または仮想化し得る。例えば、単一のＶＮ３０ｘは、特定のＰＮで実行または常駐する特定のモジュールまたはモジュールグループを表すか、または仮想化し得、そのようなモジュールは、ソフトウェアモジュールもしくは構成要素、ファームウェアモジュール構成要素、および／またはハードウェアモジュールもしくは構成要素を含み得る。例えば、第１のＶＮは、特定のＰＮ上で実行するアプリケーション全体（物理プロセスコントローラ上で実行可能である制御モジュール全体など）を表すか、または仮想化し得、第２のＶＮは、特定のＰＮ（特定の制御モジュールによって利用される特定の制御モデル、関数、またはルーチンなど）上で実行するアプリケーション全体のサブセットを表すか、または仮想化し得、第３のＶＮは、特定のＰＮと関連付けられたプロトコル特有のＩ／Ｏカードまたはデバイスの挙動を表すか、または仮想化し得、および／あるいは第４のＶＮは、特定のＰＮのハードウェア副構成要素（例えば、ポートもしくは他のインターフェース、バス、トランシーバ、チップ、ボードなど）、または特定のＰＮのファームウェアもしくはソフトウェア副構成要素（例えば、モジュール、ルーチン、関数もしくは挙動、ＭＡＣ（メディアアクセス制御）アドレスもしくは他のタイプのアドレスなどの、特定のＰＮのネットワークアドレスなど）と同様の粒度のＰＮサブ構成要素を表すか、または仮想化し得る。
【００３２】
物理プラント環境１５内で利用され得、かつＭＰＤＳＣ１０の仮想ノード３０ｘによって表される、および／または仮想化され得る、物理Ｉ／Ｏカードのタイプの例としては、限定されるものではないが、
高密度、本質的に安全、かつ冗長な離散出力カードを含む、離散出力カードと、
高密度、本質的に安全、かつ冗長な離散入力カードを含む、離散入力カードと、
ＨＡＲＴ（登録商標）（Ｈｉｇｈｗａｙ  Ａｄｄｒｅｓｓａｂｌｅ  Ｒｅｍｏｔｅ  Ｔｒａｎｓｄｕｃｅｒ）通信プロトコルをサポートするアナログ入力カード、ＨＡＲＴをサポートする冗長アナログ入力カード、ＨＡＲＴをサポートする高密度冗長アナログ入力カード、および高速アナログ入力カードを含む、アナログ入力カードと、
ＨＡＲＴ通信プロトコルをサポートするアナログ出力カード、ＨＡＲＴをサポートする冗長アナログ出力カード、ＨＡＲＴをサポートする高密度冗長アナログ出力カード、および高速アナログ出力カードを含む、アナログ出力カードと、
冗長、プログラム可能、かつ冗長なプログラマブルシリアルカードを含む、シリアルカードと、
フィールドバス通信プロトコルをサポートする離散アクチュエータおよび／またはセンサ用のインターフェースカード、ＲＴＤ（抵抗温度検出器）カード、熱電対カード、ミリボルトカード、絶縁温度カード、多機能カード、一連のイベントカード、Ｐｒｏｆｉｂｕｓ通信プロトコルをサポートする冗長フィールドバスサポートカード、冗長Ｐｒｏｆｉｂｕｓサポートカード、およびその他のタイプの物理カードと、が挙げられる。
【００３３】
図１に例示されるように、ＶＮ３０ａ、３０ｂ、３０ｃ〜３０ｐは、それぞれのパブリケーション／サブスクリプション層３２ａ、３２ｂ、３２ｃ〜３２ｐおよび３５を介して、互いに、およびＩ／Ｏスイッチ２５と通信し、パブリケーション／サブスクリプション層は、本明細書では互換的に「Ｐｕｂ／Ｓｕｂ層」と呼ばれ、各ＶＮ３０ｘおよびＩ／Ｏスイッチ２５のそれぞれのハッシュマークされた部分３２ｘ、３５によって図１に示されている。図１に例示されるような、物理ノードが含まれるＭＰＤＳＣプラットフォーム１０の実施形態では、物理プラント環境１５内に配設されたＰＮ２８、４０ａ、４０ｂ、４０ｃの少なくともいくつかは、それぞれのＰｕｂ／Ｓｕｂ層３８、４２ａ、４２ｂ、４２ｃを含み得る。ある意味では、Ｐｕｂ／Ｓｕｂ層３２ｘ、３５（および、いくつかの構成では、Ｐｕｂ／Ｓｕｂ層３８、４２ｘ）は、様々な仮想ノード３０ｘおよびＩ／Ｏスイッチ２５（および、いくつかの構成では、物理ノード４０ｘ）が、抽象化されたＩ／Ｏデータを通信し得る、仮想通信ネットワーク４５として機能する。例示的な実施態様では、各Ｐｕｂ／Ｓｕｂ層３２ｘ、３５、３８、４２ｘは、仮想通信ネットワーク４５へのそれぞれのインターフェースである。
【００３４】
仮想通信ネットワーク４５は、有線および／または無線ネットワークを含み得、イーサネット、光、ＩＰ、別のタイプの他のパケットネットワークなどの任意の好適な技術を使用して実装され得る、１つ以上の物理通信および／またはデータリンクおよび／またはネットワークによって実装され得る。データは、パブリケーションおよびサブスクリプションを介して、仮想通信ネットワーク４５を介してのノード間で通信され、パブリケーションおよびサブスクリプションをサポートする任意のまたはより多くの好適な通信プロトコルは、データの配信のための仮想通信ネットワーク４５内で利用され得る。例えば、プライベートパケットプロトコル、ならびに／またはパブリックもしくは標準化されたパケットプロトコル（ＩＰｖ６、ＩｏＴ、および／もしくはＩＩｏＴプロトコルなど）は、仮想通信ネットワーク４５の様々なノード３０ｘ、２８ｘ、４０ｘ間、および、任意選択的に、例えば、エッジゲートウェイシステム２８によって、他のアプリケーション２１ｘ、２２ｘに配信される、Ｉ／Ｏデータのパブリッシャおよびそれのサブスクライバに利用され得る。
【００３５】
例えば、仮想通信ネットワーク４５の各ノード（例えば、仮想ノード３０ｘ、Ｉ／Ｏスイッチ２５、物理ノード２８、４０ｘなど）は、そのそれぞれのＰｕｂ／Ｓｕｂ層を介して（例えば、Ｐｕｂ／Ｓｕｂ層３２ｘ、３５、３８、４２ｘなどを介して）仮想通信ネットワーク４５にＩ／Ｏデータをパブリッシュし得、仮想通信ネットワーク４５の各ノード（例えば、仮想ノード３０ｘ、Ｉ／Ｏスイッチ２５、物理ノード２８、４０ｘなど）は、そのそれぞれのＰｕｂ／Ｓｕｂ層を介して（例えば、Ｐｕｂ／Ｓｕｂ層３２ｘ、３５、３８、４２ｘなどを介して）仮想通信ネットワーク４５にパブリッシュされるＩ／Ｏデータをサブスクライブおよび取得し得る。典型的には、様々なパブリッシュされたデータに対するサブスクリプションは、Ｉ／Ｏスイッチ２５と他の各ノード３０ｘ、２８、４０ｘの各々との間に一対一の対応関係を有する。好ましい実施形態では、仮想通信ネットワーク４５の各ノード３０ｘ、２８、４０ｘは、Ｉ／Ｏスイッチ２５からのみサブスクリプションを受理し、他のノードから受理せず、各ノード３０ｘ、２８、４０ｘは、Ｉ／Ｏスイッチ２５によってパブリッシュされるＩ／Ｏデータ（Ｉ／Ｏスイッチ２５によってパブリッシュされたＩ／Ｏデータは、他のノードによって生成され、Ｉ／Ｏスイッチ２５がサブスクライブした、転送されたデータであり得る）のみをサブスクライブし、他のノードによってパブリッシュされたＩ／Ｏデータをサブスクライブしない。したがって、この好ましい一対一の実施形態では、パブリケーション／サブスクリプション関係の無向グラフは、ノードが他の複数のノードによる複数のサブスクリプションを有することを可能にする実施形態と比較して制限され、それによって、ネットワーク複雑性を軽減し、ネットワーク診断および管理を単純化し、ネットワーク負荷／利用を減少させる。ネットワーク複雑性をさらに軽減し、ネットワーク診断および管理を単純化し、ネットワーク負荷／利用を減少させるために、追加的または代替的に、仮想通信ネットワーク４５の各ノード３０ｘ、２８、４０ｘは、パブリケーションを介してＩ／Ｏスイッチ２５に、Ｉ／Ｏスイッチ２５によってＭＰＤＳＣプラットフォーム１０の他のノードに転送されることになるデータのみを送信し得る。当然ながら、いくつかの実施形態では、無向グラフの少なくとも一部分は、必要に応じて、一対多、多対一、および／または多対多の関係で実装され得る。
【００３６】
一般的に言うと、ＭＰＤＳＣプラットフォーム１０内では、プロセス関連ペイロードデータ（例えば、ＣＢＭおよび／またはプロセスプラントの物理構成要素によって生成されたもの）が抽象化され、Ｉ／Ｏデータとしてパブリッシュされ、要求に応じて仮想通信ネットワーク４５のサブスクライバノードに配信され得る。つまり、Ｉ／Ｏデータは、プロセス関連データペイロードが新しいパブリッシュイベントを必要とするとパブリッシュノードが決定したときに、配信され得る（例えば、パブリケーションを介して）。例えば、パブリッシュノードは、センサ生成データ値が変化したときに、特定のタイプのセンサ生成データをＩ／Ｏデータとして仮想通信ネットワークに自動的にパブリッシュし得る。任意選択的に、パブリッシュノードは、センサ生成データ値が変化していないときでも、センサ生成データ値を周期的に（例えば、５秒毎、１０秒毎、１分毎など）Ｉ／Ｏデータとしてパブリッシュし得、例えば、それによって、ロストメッセージおよび発生する可能性があり得る他の忠実度問題を軽減する。したがって、いくつかの実施形態では、明示的なサブスクリプション比率は、必要とされず、および／またはサブスクライバノードによって利用されない。その結果、各サブスクライバノードでの処理論理（例えば、構成要素挙動モジュール）の実行は、仮想通信ネットワーク４５にサブスクライブされ、かつそれを介して受信される着信データによって駆動され、したがって、各ノードおよび仮想通信ネットワーク４５によって利用されるリソースは、より効率的に利用され得る。
【００３７】
例示的なシナリオの一例では、ＶＮ３０ａは、ランタイム中にＩ／Ｏデータとして、特定のプロセス関連ペイロードデータセット、例えば、「Ｄａｔａ１」を生成し、そのＰｕｂ／Ｓｕｂ層３２ａにパブリッシュし得る。Ｉ／Ｏスイッチまたはサーバ２５は、Ｄａｔａ１を含むＩ／Ｏデータに対するサブスクリプションを有し得、仮想通信ネットワーク４５、そのそれぞれのＰｕｂ／Ｓｕｂ層３５、およびそのそれぞれのサブスクリプションを介して、プロセス関連ペイロードＤａｔａ１を取得し得る。次に、Ｉ／Ｏスイッチまたはサーバ２５は、取得されたプロセス関連ペイロードＤａｔａ１を、仮想通信ネットワーク４５にそのＰｕｂ／Ｓｕｂ層３５を介して、Ｄａｔａ１を含むＩ／Ｏデータに対するサブスクリプションを有するそれらのノードによる受信のために、Ｉ／Ｏデータとしてパブリッシュし得る。例えば、ＶＮ３０ｂは、Ｄａｔａ１を含むＩ／Ｏデータに対するサブスクリプションを有し得、Ｉ／Ｏスイッチ２５のＰｕｂ／Ｓｕｂ層３５を介したＩ／ＯデータとしてのＤａｔａ１のパブリケーションの際、ＶＮ３０ｂは、仮想通信ネットワーク４５、そのそれぞれのＰｕｂ／Ｓｕｂ層３２ｂ、およびＩ／Ｏデータに対するそのサブスクリプションを介したプロセス関連ペイロードＤａｔａ１を取得し得る。続いて、ＶＮ３０ｂは、取得されたプロセス関連ペイロードＤａｔａ１値に対して動作し得る。
【００３８】
したがって、ＭＰＤＳＣプラットフォーム１０は、Ｉ／Ｏスイッチ２５を介した仮想および物理ノード間、ならびにパブリケーションおよびサブスクリプションを介して仮想通信ネットワーク４５間の配信のために、産業プロセスプラントの様々な物理構成要素（例えば、離散出力、離散入力、アナログ出力、アナログ入力、シリアルＩ／Ｏ、レイルバス、ＨＡＲＴ、無線ＨＡＲＴ、フィールドバス、Ｐｒｏｆｉｂｕｓ、イーサネット、高度物理層、および／または任意の他のタイプのＩ／Ｏ）に利用され、それらに由来する複数の異なるタイプのＩ／Ｏを抽象化する。仮想通信ネットワーク４５の各ノードは、それがそのそれぞれのＰｕｂ／Ｓｕｂ層、および、任意選択的に、他のサブシステムを介して送受信するＩ／Ｏデータのそれぞれの抽象化および抽象化解除（例えば、回復）を実施し得る。
【００３９】
仮想ノード
Ｉ／Ｏ抽象化および抽象化解除を例示するために、図２は、仮想ノード３０ｘの２つの例示的なアーキテクチャの実施形態５２ａ、５２ｂを例示する。一般的に言うと、仮想ノード３０ｘは、物理プラント環境１５内で利用され、動作し得る、物理ノードまたは物理構成要素をシミュレートおよび／または仮想化する。各ＶＮ５２ａ、５２ｂは、それぞれのＰｕｂ／Ｓｕｂ層５５ａ、５５ｂを含み、それらを介して、ＶＮ５２ａ、５２ｂは、Ｉ／Ｏスイッチ２５と通信する。加えて、各ＶＮ５２ａ、５２ｂは、本明細書では「構成要素ビジネス論理モジュール」５８ａ、５８ｂまたは「ＣＢＭ」５８ａ、５８ｂと互換的に呼ばれる、それぞれの構成要素挙動モジュール５８ａ、５８ｂを含む。一般的に言うと、ＣＢＭ５８ｘは、その実行が、例えば、アプリケーションレベルで、そのそれぞれの仮想ノード３０ｘの動作挙動を統制するモジュールである。例えば、仮想コントローラノードのＣＢＭ５８ｘは、制御モジュールの特定のインスタンスであり得、制御モジュールの他のインスタンスは、物理プラント１５のランタイム中の実行のために、物理プラント環境１５内に配設された物理コントローラにダウンロードされ得る。別の例では、仮想ＣＩＯＣノードのＣＢＭ５８ｘは、遠隔Ｉ／Ｏモジュールの特定のインスタンスであり得、遠隔Ｉ／Ｏモジュールの他のインスタンスは、物理プラント環境１５のランタイム中、その中に配設された物理ＣＩＯＣで実行され得る。
【００４０】
ＣＢＭ５８ｘが物理構成要素内で実行され得るため、ＣＢＭは、典型的には、アナログ入力／出力、フィールドバス、レイルバスなどの１つ以上の対応する固有Ｉ／Ｏタイプで固有に通じる。さらに、ＣＢＭ５８ｘは、典型的には、それらが、仮想プラント環境１２の仮想ノード３０ｘ上、物理プラント環境１５内に配設された物理ノード４０ｘ、または物理プラント環境１５内に配設された別の物理構成要素上、例えば、ノードＰＮａ〜ＰＮｋ上で実行されているかどうかに関する認識を有していない。したがって、ＣＢＭ５８ｘが仮想プラント環境１２内で実行されているか、または物理プラント環境１５内で実行されているかどうかに関係なく、ＣＢＭ５８ｘは、同じ様式で同じ処理ロジックおよびＩ／Ｏタイプを使用してデータを送受信する。
【００４１】
仮想ノード５２ａの実施形態では、ＣＢＭ５８ａによって送受信されるプロセス関連ペイロードデータは、仮想プロセスＩ／Ｏ（ＰＩＯ）サブシステム６０を介してＶＮ５２ａへの／からの配信のために抽象化される。一般的に言うと、仮想ＰＩＯサブシステム６０は、仮想ノード５２ａの固有の物理ＰＩＯ配信をシミュレートする。つまり、仮想ノード５２ａのランタイム中、仮想ＰＩＯサブシステム６０は、例えば、Ｉ／Ｏプロセス値およびイベントが物理ハードウェアに由来していた／それに配信されていたかのように、ＣＢＭ５８ａに／から、その固有Ｉ／Ｏを使用して、Ｉ／Ｏプロセス値およびイベントを通信する。したがって、仮想ＰＩＯサブシステム６０は、仮想ノード５２ａの特定のタイプに合わせて調整され得、仮想ノードタイプは、そのＣＢＭ５８ａによって統制される。例えば、ＶＮ５２ａがレイルバスＩ／Ｏを使用して他のデバイスと通信する物理コントローラを表す場合、仮想ＰＩＯサブシステム６０は、レイルバスＩ／Ｏカードによって利用される形態で、制御ルーチンのＣＢＭ５８ａへの／からのＩ／Ｏデータを提供する。ＶＮ５２ａがＣＩＯＣを表す場合、仮想ＰＩＯサブシステム６０は、ＣＨＡＲＭによって利用される形態で、遠隔Ｉ／ＯのＣＢＭ５８ａへの／からのＩ／Ｏデータを提供する。
【００４２】
さらに、仮想ＰＩＯサブシステム６０は、仮想ノード５２ａに代わってデータパブリケーションおよびサブスクリプションを取り扱い得る。つまり、仮想ＰＩＯサブシステム６０は、ＣＢＭ５８ａによって生成されたデータをＰｕｂ／Ｓｕｂ層５５ａにパブリッシュし得、仮想ＰＩＯサブシステム６０は、Ｐｕｂ／Ｓｕｂ層５５ａを介して他のノードによって生成された（およびＩ／Ｏスイッチ２５によって転送された）データをサブスクライブし得る。一実施形態では、データに対するサブスクリプションおよびそのパブリケーションは、ＭＰＤＳＣプラットフォーム１０内で一意であるタグまたは他の識別子に基づき得る。タグまたは他の識別子は、例えば、ＭＰＤＳＣプラットフォーム１０のデータ、ノード、デバイス、または構成要素を一意に識別し得る。一実施形態では、タグおよび／または識別子は、構成および／または試運転中に割り当てられ得る。
【００４３】
したがって、仮想環境１２内の各仮想ノード５２ａでは、仮想ＰＩＯサブシステム６０は、オンボードＣＢＭ５８ａおよびその対応する物理Ｉ／Ｏを有する各物理ノードで物理環境１５内に維持される論理的分離（例えば、物理Ｉ／ＯカードまたはマーシャリングされたＩ／Ｏ構成を介した）と同様、ＣＢＭ５８ａと対応する物理Ｉ／Ｏとの間の論理的分離を維持する（例えば、Ｐｕｂ／Ｓｕｂ層５５ａ、仮想通信ネットワーク４５、および他のＰｕｂ／Ｓｕｂ層３２、３５、３８、４２を介して）。一般的に言うと、任意の仮想ノード３０の仮想ＰＩＯサブシステム６０は、仮想ノード３０に含まれるＩ／Ｏサブスクライバ（ＣＢＭ５８ａ、別のモジュール、別のタイプのＩ／Ｏコンシューマなど）とその対応する物理Ｉ／Ｏとの間の論理的分離を維持する。
【００４４】
図２に示される仮想ノード５２ｂの実施形態では、仮想ＰＩＯサブシステム６０は、省略されるか、または利用されない。典型的には、ＶＮアーキテクチャ５２ｂを利用する仮想ノードのタイプは、仮想通信ネットワーク４５が実装される物理構成要素および技術とＣＢＭ５８ｂが固有に通信することができるノードである。例えば、仮想通信ネットワーク４５がイーサネット上のＩＰプロトコルを介して実装される場合、ＥＩＯＣをシミュレートする仮想ノード５２ｂは、イーサネット上のＩＰプロトコルを使用して通信するように固有に構成されるＣＢＭ５８ｂを含む。その結果、ＥＩＯＣ仮想ノード５２ｂは、仮想ＰＩＯサブシステム６０を含まない場合があり（またはその動作をオフにするか、または無視し得る）、ＥＩＯＣ仮想ノード５２ｂは、ＣＢＭ５８ｂおよびＰｕｂ／Ｓｕｂ層５５ｂのみを使用することによって、５２ｂの仮想ノードへの／からのデータの配信を取り扱い得る。
【００４５】
物理ノード
図３は、図１のＭＰＤＳＣプラットフォーム１０と連携して動作し得る例示的な物理プラント環境１００のブロック図である。例えば、図１に例示されるＭＰＤＳＣプラットフォーム１０の物理環境部分１５は、物理プラント環境１００の少なくとも一部分を含み得る。
【００４６】
物理プラント１００は、産業プロセスを制御し（または、いくつかの実施形態では、産業プロセスを制御するように仮想プラント環境１２などの仮想プラント環境と連携して動作する）、産業プロセスは、プロセスの状態を特徴付ける１つ以上の「プロセス出力」（例えば、タンクレベル、流量、材料温度など）と、１つ以上の「プロセス入力」（例えば、様々な環境条件およびアクチュエータの状態、プロセス出力を変化させ得る操作）とを有するといえる。図３の物理プロセスプラント１００は、フィールド環境１０２およびバックエンド環境１０５を含み、それらの各々は、プロセス制御バックボーンまたはデータハイウェイ１０８によって互いに通信可能に接続されており、１つ以上の有線および／または無線通信リンクおよび／またはネットワークを含み得、例えば、イーサネットプロトコル、ＩＰプロトコル、または別のパケットプロトコルなどの任意の所望のまたは好適な通信プロトコルを使用して実装され得る。
【００４７】
高レベルでは（および図３に示されるように）、フィールド環境１０２は、ランタイム中に産業プロセスを制御するために動作するように接地および相互接続される、物理構成要素（例えば、プロセス制御デバイス、ネットワーク、ネットワーク要素など）を含む。全般的に、これらの物理構成要素は、物理プロセスプラント１００のフィールド環境１０２内に位置するか、配設されるか、または別様に含まれ、原材料が、その中に配設された物理構成要素を使用して受容および処理されて、それによって、１つ以上の物理製品（例えば、紙、精製油、医薬品など）を生成する。対照的に、物理プロセスプラント１００のバックエンド環境１０５は、フィールド環境１０２の過酷な条件および材料から遮蔽および／または保護されているコンピューティングデバイス、オペレータワークステーション、データベースまたはデータバンクなどの様々な物理構成要素を含む。いくつかの構成では、物理プロセスプラント１００のバックエンド環境１０５内に含まれる様々なコンピューティングデバイス、データベース、ならびに他の構成要素および機器は、異なる物理位置に物理的に位置し得、そのうちのいくつかは、物理プラント１００に対してローカルであってよく、そのうちいくつかは、遠隔であってよい。
【００４８】
図３に示されるように、フィールド環境１０２は、データハイウェイ１０８に通信可能に接続されている１つ以上のプロセスコントローラ１１０を含む。プロセスコントローラ１１０の各々は、コントローラ１１０とフィールドデバイスとの間の通信を容易にする１つ以上の中間ノード１１２、１１５（例えば、Ｉ／Ｏカード、Ｉ／Ｏデバイス、Ｉ／Ｏシステムなど）に接続され得る。一般的に言うと、プロセス制御産業では、「Ｉ／Ｏ」という用語は、いくつかの、関連するが、異なる文脈で使用される場合がある。この用語は、概して、フィールドデバイスをＩ／Ｏカードまたはコントローラに通信可能に連結する論理リンクまたは通信チャネル（例えば、「Ｉ／Ｏチャネル」）を指すが、Ｉ／Ｏチャネル（例えば、「Ｉ／Ｏデバイス」または「Ｉ／Ｏカード」）およびＩ／Ｏデバイスと関連付けられたコネクタまたは端子（例えば、「Ｉ／Ｏコネクタ」）を介してフィールドデバイスに信号を送信するか、またはそこから信号を受信するために利用される物理デバイスなどの、いくつかの他の概念を指すときに使用され得る。Ｉ／ＯデバイスおよびＩ／Ｏカード１１２、１１５は、スタンドアロンの個々の物理デバイスであり得、その各々は、図３に例示されるように、それぞれのコントローラおよび１つ以上のそれぞれのフィールドデバイスに接続される。いくつかの構成（図３には図示せず）では、Ｉ／Ｏデバイス、カード、コネクタ、および端子台、モジュールプロセッサなどの他のＩ／Ｏ関連構成要素は、内容全体が参照により本明細書に明示的に組み込まれる米国特許番号第７，６８４，８７５号、同第８，３３２，５６７号、同第８，７６２，６１８号、同第８，９７７，８５１号、同第９，０８３，５４８号、同第９，４１１，７６９号、同第９，４９５，３１３号、および同第９，９４６，２４０号に説明されるなどの、様々なタイプの複数のコントローラと複数のフィールドデバイスとの間のフレキシブルＩ／Ｏ配信を可能にする、Ｉ／Ｏ電子マーシャリングシステム内に含まれる。したがって、議論の明確化のために、本明細書に利用される際、「Ｉ／Ｏデバイス」という用語は、概して、物理Ｉ／Ｏデバイス、カード、電子マーシャリングシステム、およびその構成要素を指し、それらを介して、Ｉ／Ｏチャネルが実装されて、それによってフィールドデバイスおよびコントローラを通信可能に連結する。
【００４９】
また、プロセス制御産業では、「Ｉ／Ｏ」という用語は、概して、Ｉ／Ｏチャネル上で送信される信号（例えば、「Ｉ／Ｏ信号」）、信号によって表される変数もしくはコマンド（例えば、「Ｉ／Ｏパラメータ」）、または信号によって運ばれる変数もしくはコマンドの値（例えば、「Ｉ／Ｏパラメータ値」または「Ｉ／Ｏデータペイロード」）を指すために使用され得る。したがって、議論の明確化のために、本明細書に利用される際、Ｉ／Ｏ信号、Ｉ／Ｏパラメータ、およびＩ／Ｏパラメータ値は、本明細書では集合的かつ概略的に、「Ｉ／Ｏデータ」または「プロセスＩ／Ｏデータ」と呼ばれる。
【００５０】
本明細書で「Ｉ／Ｏ」という用語が修飾語なしで参照されている限り、文脈は、これらの概念のうちのどの概念が議論されているかを明確にするべきである。さらに、「Ｉ／Ｏチャネル」は、特定のタイプの「通信チャネル」または「チャネル」を表すことを理解されたい。つまり、文脈が別途示唆しない限り、本説明で「チャネル」という用語または「通信チャネル」という用語を「Ｉ／Ｏ」という修飾語なしで参照することは、いくつかの実施態様では、Ｉ／Ｏチャネルであり得る通信リンクを指す場合があるが、いくつかの実施態様では、Ｉ／Ｏチャネル以外の通信リンクを指す場合もある。
【００５１】
いずれの場合も、図３に戻ると、物理プロセスプラント１００の各プロセスコントローラ１１０は、コントローラ１１０のメモリ内に記憶され得る、１つ以上の制御ルーチン（例えば、１つ以上の構成要素挙動モジュール）によって定義される制御戦略を実装する。コントローラのプロセッサが制御ルーチンのうちの１つ以上を実行すると、コントローラは、有線または無線プロセス制御通信リンクまたはネットワークを介して、プラント１００内のプロセスの動作を制御するための他のフィールドデバイスへの制御信号（すなわち、「制御出力」）をフィールドデバイスに送信する。コントローラは、（ｉ）「制御入力」と呼ばれ得る１つ以上の受信された信号（例えば、フィールドデバイスによって取得された測定値を表す１つ以上の受信された信号）、および（ｉｉ）１つ以上のソフトウェア要素（例えば、機能ブロック）によって定義され得る、１つ以上の制御ルーチンの論理に基づいて制御信号を生成し得る。典型的には、コントローラは、プロセス入力（「操作される変数」と呼ばれ得る）を操作して、フィードバック（すなわち、制御される変数の測定値）およびプロセス出力の所望される値（すなわち、設定点）に基づいて、特定のプロセス出力（「制御される変数」または単に「プロセス変数」と呼ばれ得る）を変化させる。
【００５２】
概して、少なくとも１つのフィールドデバイスが物理機能（例えば、バルブの開閉、温度の上昇または下降、測定値の取得、条件の検知など）を実施して、プロセスプラント１００に実装されるプロセスの動作を制御する。フィールドデバイスのうちのいくつかのタイプは、Ｉ／Ｏデバイスを使用してコントローラと通信する。プロセスコントローラ、フィールドデバイスおよびＩ／Ｏデバイスは、有線または無線であってもよく、任意の数および組み合わせの有線および無線のプロセスコントローラ、フィールドデバイスおよびＩ／Ｏデバイスが、プロセスプラント環境またはプラットフォーム１００内に含まれ得る。
【００５３】
プラント１００のフロントエンド環境１０２
例えば、図３は、入力／出力（Ｉ／Ｏ）デバイス１１２および１１５を介して有線フィールドデバイス１２５〜１３２と通信可能に接続され、無線ゲートウェイ１６８およびデータハイウェイ１０８を介して、無線フィールドデバイス１４０〜１４６と通信可能に接続される、プロセスコントローラ１１０を例示する。いくつかの構成（図示せず）では、コントローラ１１０は、１つ以上の通信プロトコル、例えばＷｉ−Ｆｉまたは他のＩＥＥＥ８０２．１１準拠の無線ローカルエリアネットワークプロトコル、モバイル通信プロトコル（例えば、ＷｉＭＡＸ、ＬＴＥ、または他のＩＴＵ−Ｒ互換プロトコル）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＨＡＲＴ（登録商標）、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）、Ｐｒｏｆｉｂｕｓ、ＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓなどをサポートする任意の数の他の有線または無線通信リンクを使用することによってなど、バックボーン１０８以外の１つ以上の通信ネットワークを使用して、無線ゲートウェイ１６８に通信可能に接続され得る。
【００５４】
例として、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔによって販売されているＤｅｌｔａＶ（商標）コントローラであり得るコントローラ１１０は、フィールドデバイス１２５〜１３２および１４０〜１４６のうちの少なくともいくつかを使用して、バッチ産業プロセスまたは連続産業プロセスを実装するように動作し得る。一実施形態では、プロセス制御データハイウェイ１０８に通信可能に接続されることに加えて、コントローラ１１０はまた、例えば、標準４−２０ｍＡデバイス、Ｉ／Ｏカード１１２、１１５、および／またはＦＯＵＮＤＡＴＩＯＮ（登録商標）フィールドバスプロトコル、ＨＡＲＴ（登録商標）プロトコル、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）プロトコルなどの任意のスマート通信プロトコルと関連付けられた、任意の所望されるハードウェアおよびソフトウェアを使用して、フィールドデバイス１２５〜１３２および１４０〜１４６のうちの少なくともいくつかと通信可能に接続される。図３では、コントローラ１１０、フィールドデバイス１２５〜１３２、およびＩ／Ｏデバイス１１２、１１５は、有線デバイスであり、フィールドデバイス１４０〜１４６は、無線フィールドデバイスである。当然ながら、有線フィールドデバイス１２５〜１３２および無線フィールドデバイス１４０〜１４６は、任意の他の所望の規格（複数可）またはプロトコル、例えば今後開発される任意の規格またはプロトコルを含む任意の有線または無線プロトコルに適合することができる。
【００５５】
図３のプロセスコントローラ１１０は、１つ以上のプロセス制御ルーチン１１８（例えば、コントローラ１１０のメモリ１２２内に記憶されている）を実装または監督するプロセッサ１２０を含む。プロセッサ１２０は、フィールドデバイス１２５〜１３２および１４０〜１４６と、およびコントローラ１１０に通信可能に接続された他のノードと通信するように構成されている。本明細書に記載される任意の制御ルーチンまたはモジュールは、そのように所望される場合は、その一部を異なるコントローラまたは他のデバイスによって実装または実行させてもよいことに留意されたい。同様に、プロセス制御プラント１００内に実装されることになる本明細書に説明される制御ルーチンまたはモジュール１１８は、ソフトウェア、ファームウェア、ハードウェアなどを含む任意の形態をとり得る。制御ルーチンは、オブジェクト指向プログラミング、ラダー論理、シーケンシャルファンクションチャート、ファンクションブロックダイアグラムを使用するか、または任意の他のソフトウェアプログラミング言語もしくは設計パラダイムを使用するなどの、任意の所望されるソフトウェア形式で実装され得る。制御ルーチン１１８は、ランダムアクセスメモリ（ＲＡＭ）または読み取り専用メモリ（ＲＯＭ）などの任意の所望の種類のメモリ１２２に記憶され得る。同様に、制御ルーチン１１８は、例えば、１つ以上のＥＰＲＯＭ、ＥＥＰＲＯＭ、特定用途向け集積回路（ＡＳＩＣ）、または任意の他のハードウェアまたはファームウェア素子にハードコードされ得る。したがって、コントローラ１１０は、任意の所望の様式で制御ストラテジまたは制御ルーチンを実装するように構成することができる。
【００５６】
コントローラ１１０は、一般に機能ブロックと呼ばれるものを使用して制御戦略を実装し、各機能ブロックは、全体的な制御ルーチンのオブジェクトまたは他の部分（例えば、サブルーチン）であり、他の機能ブロックと連携して（リンクと呼ばれる通信を介して）動作して、ＭＰＤＳＣプラットフォーム１０内にプロセス制御ループを実装する。制御ベースの機能ブロックは、典型的には、（ｉ）送信機、センサ、もしくは他のプロセスパラメータ測定デバイスと関連付けられるものなどの入力機能（「入力ブロック」と呼ばれることもある）、（ｉｉ）ＰＩＤ、ファジー論理などを実施する制御ルーチンと関連付けられるものなどの制御機能（「制御ブロック」と呼ばれることもある）、または（ｉｉｉ）バルブなどのいくつかのデバイスの動作を制御して、プロセス制御プラント１００内でいくつかの物理機能を実施する出力機能（「出力ブロック」と呼ばれることもある）、のうちの１つを実施する。当然のことながら、ハイブリッドおよび他のタイプの機能ブロックが存在する。
【００５７】
機能ブロックはコントローラ１１０内に記憶され、それによって実行されてもよく、これは典型的には、これらの機能ブロックが標準４−２０ｍＡデバイスおよびＨＡＲＴ（登録商標）デバイスなどのいくつかのタイプのスマートフィールドデバイス用に使用されるかもしくはそれと関連するときに成り立ち、または機能ブロックは、フィールドデバイスそのものの内部に記憶され、それによって実装されてもよく、これはＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓデバイスの場合に成り立ち得る。制御ルーチン１１８のうちの１つ以上は、機能ブロックのうちの１つ以上を実行することによって行われる１つ以上の制御ループを実装し得る。ある意味では、制御ルーチン１１８は、コントローラ１１０の構成要素挙動モジュールとみなされ得る。
【００５８】
有線フィールドデバイス１２５〜１３２は、センサ、バルブ、送信機、送信機、ポジショナなどの任意のタイプのデバイスであり得、一方、Ｉ／Ｏカード１１２および１１５は、任意の所望される通信またはコントローラプロトコルに適合する任意のタイプのプロセス制御Ｉ／Ｏデバイスであり得る。例えば、Ｉ／Ｏデバイス１１２、１１５は、Ｉ／Ｏ電子マーシャリングシステムに含まれ得る。図３では、フィールドデバイス１２５〜１２８は、アナログラインまたは組み合わされたアナログおよびデジタルラインを介してＩ／Ｏカード１１２に通信する、標準４−２０ｍＡデバイスまたはＨＡＲＴ（登録商標）デバイスであり、一方、フィールドデバイス１２９〜１３２は、ＦＯＵＮＤＡＴＩＯＮ（登録商標）フィールドバス通信プロトコルを使用してデジタルバスを介してＩ／Ｏデバイス１１５に通信する、ＦＯＵＮＤＡＴＩＯＮ（登録商標）フィールドバスフィールドデバイスなどのスマートデバイスである。ただし、いくつかの実施形態では、有線フィールドデバイス１２５、１２６および１２８〜１３１のうちの少なくともいくつか、ならびに／またはＩ／Ｏデバイス１１２、１１５のうちの少なくともいくつかは、追加的または代替的に、プロセス制御データハイウェイ１０８を使用して、および／または他の好適な制御システムプロトコル（例えば、Ｐｒｏｆｉｂｕｓ、ＤｅｖｉｃｅＮｅｔ、Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓ、ＣｏｎｔｒｏｌＮｅｔ、Ｍｏｄｂｕｓ、ＨＡＲＴなど）を使用することによって、コントローラ１１０と通信する。いくつかの構成（図３には図示せず）では、フィールドデバイス１２５〜１３２のうちの少なくともいくつかは、個々のＩ／Ｏデバイス１１２、１１５を介する代わりに、電子Ｉ／Ｏマーシャリングシステムを介してコントローラ１１０と通信し得る。
【００５９】
図３では、無線フィールドデバイス１４０〜１４６は、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）プロトコルなどの無線プロトコルを使用して、無線プロセス制御通信ネットワーク１６５を介して通信する。そのような無線フィールドデバイス１４０〜１４６は、（例えば、無線プロトコルまたは別の無線プロトコルを使用して）無線通信するようにも構成される無線ネットワーク１６５の１つ以上の他のデバイスまたはノードと直接通信し得る。無線通信するように構成されていない１つ以上の他のノードと通信するために、無線フィールドデバイス１４０〜１４６は、プロセス制御データハイウェイ１０８に、または別のプロセス制御通信ネットワークに接続された無線ゲートウェイ１６８を利用し得る。無線ゲートウェイ１６８は、無線通信ネットワーク１６５の様々な無線デバイス１４０〜１５８へのアクセスを提供する。具体的には、無線ゲートウェイ１６８は、無線デバイス１４０〜１５８、有線デバイス１２５〜１３２、および／または物理プロセス制御プラント１００の他のノードもしくはデバイスの間の通信連結を提供する。例えば、無線ゲートウェイ１６８は、プロセス制御データハイウェイ１０８を使用することによって、および／または物理プロセスプラント１００の１つ以上の他の通信ネットワークを使用することによって、通信可能な連結を提供し得る。
【００６０】
有線フィールドデバイス１２５〜１３２と同様に、無線ネットワーク１６５の無線フィールドデバイス１４０〜１４６は、物理プロセスプラント１００内で、物理制御機能、例えば、バルブの開閉、またはプロセスパラメータの測定値の取得を実施する。しかしながら、無線フィールドデバイス１４０〜１４６は、ネットワーク１６５の無線プロトコルを使用して通信するように構成されている。このように、無線フィールドデバイス１４０〜１４６、無線ゲートウェイ１６８、および無線ネットワーク１６５の他の無線ノード１５２〜１５８は、無線通信パケットの生産者でありコンシューマである。
【００６１】
プロセスプラント１００のいくつかの構成では、無線ネットワーク１６５は、非無線デバイスを含む。例えば、図３では、図３のフィールドデバイス１４８は、レガシ４−２０ｍＡデバイスであり、フィールドデバイス１５０は、有線ＨＡＲＴ（登録商標）デバイスである。ネットワーク１６５内で通信するために、フィールドデバイス１４８および１５０は、無線アダプタ１５２ａ、１５２ｂを介して無線通信ネットワーク１６５に接続される。無線アダプタ１５２ａ、１５２ｂは、ＷｉｒｅｌｅｓｓＨＡＲＴなどの無線プロトコルをサポートし、かつＦｏｕｎｄａｔｉｏｎ（登録商標）Ｆｉｅｌｄｂｕｓ、ＰＲＯＦＩＢＵＳ、ＤｅｖｉｃｅＮｅｔなどの１つ以上の他の通信プロトコルもサポートし得る。加えて、いくつかの構成では、無線ネットワーク１６５は、無線ゲートウェイ１６８と有線通信する独立した物理デバイスであり得るか、または一体型デバイスとして無線ゲートウェイ１６８内に提供され得る、１つ以上のネットワークアクセスポイント１５５ａ、１５５ｂを含む。また、無線ネットワーク１６５はまた、無線通信ネットワーク１６５内の１つの無線デバイスから別の無線デバイスにパケットを転送するための１つ以上のルータ５８を含み得る。図３では、無線デバイス１４０〜１４６および１５２〜１５８は、無線通信ネットワーク１６５の無線リンク１６０を経由して、および／またはプロセス制御データハイウェイ１０８を介して、互いに、および無線ゲートウェイ１６８と通信する。
【００６２】
プラント１００のバックエンド環境１０５
記載されるように、バックエンド環境１０５は、典型的にフィールド環境１０２の過酷な条件および材料から遮蔽および／または保護されている、コンピューティングデバイス、オペレータワークステーション、データベースまたはデータバンクなどの様々な構成要素を含み得る。例えば、バックエンド環境１０５は、（ｉ）１つ以上のオペレータワークステーション１７０ａおよび他のローカルもしくは遠隔ユーザインターフェースデバイス１７０ｂ、（ｉｉ）１つ以上の構成アプリケーション１７２ａおよび構成データベース１７２ｂ、（ｉｉｉ）例えば、ツール、診断、資産管理システム、シミュレータ、および／もしくは他のタイプのアプリケーションを含み得る、１つ以上の他のタイプのアプリケーション１７５ａおよび／もしくはデータベース１７５ｂ、（ｉｖ）様々な無線プロトコルを使用してプラント１００と関連付けられた他のデバイス（例えば、ユーザインターフェースデバイス１７０ｂもしくは他のデバイス）と通信する１つ以上の他の無線アクセスポイント１７８、（ｖ）他のプラントへの１つ以上のプラントゲートウェイシステム１８０、（ｖｉ）物理プロセス制御プラットフォーム１００の直接のＯＴ層の外部にあるシステム１８５（例えば、クラウドコンピューティングおよび／もしくは他の好適なプラットフォーム上に実装され得る、企業のＩＴネットワーク／システム、および／もしくは外部データネットワーク／システム）への１つ以上のエッジゲートウェイシステム１８２、ならびに／または（ｖｉｉ）プロセスプラント１００をサポートするためにハードウェアおよびソフトウェアを介して専用に構成される他の物理構成要素、のうちのいずれか１つ以上を含み得、これらの各々は、データハイウェイ１０８に通信可能に接続され得る。
【００６３】
オペレータワークステーションおよびユーザインターフェースデバイス１７０ａ、１７０ｂ
オペレータワークステーション１７０ａおよび他のユーザインターフェースデバイス１７２ｂは、物理プロセスプラント１００のランタイム動作を視認および監視するために、ならびに任意の診断、補正、保守、および／または必要とされ得る他の措置をとるために、オペレータによって利用され得る。オペレータワークステーション１７２ａのうちの少なくともいくつかは、プラント１００内またはその近くの様々な防護された領域内に位置し得、いくつかの状況では、オペレータワークステーション１７２ｂのうちの少なくともいくつかは、遠隔に位置するが、それにもかかわらずプラント１０と通信可能な接続状態にあり得る。オペレータワークステーション１７２ａ、１７２ｂは、有線または無線コンピューティングデバイスであり得る。
【００６４】
構成アプリケーション１７２ａおよび構成データベース１７２ｂ
構成アプリケーション１７２ａおよび構成データベース１７２ｂは、制御モジュール／ルーチン、ユーザインターフェース、データ監視／分析などの、プラント１００の特定の態様を構成するために利用され得る。例えば、構成アプリケーション１７２ａの様々なインスタンスは、ユーザが、プロセス制御モジュールを作成または変更し、データハイウェイ１０８を介してこれらのモジュールをコントローラ１１０にダウンロードして、オペレータインターフェースを作成または変更することを可能にし、オペレータインターフェースを介して、オペレータは、データを視認し、プロセス制御ルーチン内のデータ設定を変更して、フィールド環境１０２内の様々な物理構成要素にダウンロードされ得るデータ監視／分析ルーチンおよび機能などを作成または変更することができる。構成データベース１７２ｂは、作成された（例えば、構成された）モジュール、オペレータインターフェース、データ監視／分析などを記憶する。概して、構成アプリケーション１７２ａおよび構成データベース１７２ｂは、集中化され、一体的な論理外観を有するが、構成アプリケーション１７２ａの複数のインスタンスは、物理プロセス制御プラットフォーム１００内で同時に実行され得、構成データベース１７２ｂは、複数の物理データストレージデバイスにわたって実装され得る。したがって、構成アプリケーション１７２ａ、構成データベース１７２ｂ、およびそれらに対するユーザインターフェース（図示せず）は、様々なタイプのモジュール、例えば、制御モジュール、ディスプレイまたはオペレータインターフェースモジュール、および／または分析モジュールのための構成または開発システム１７２を含む。典型的には、必須ではないが、構成システム１７２用のユーザインターフェースは、プラント１００が生産モードで動作しているか否かにかかわらず、構成システム１７２用のユーザインターフェースが構成および開発エンジニアによって利用されるが、それに対して、オペレータワークステーション／ユーザインターフェースデバイス１７０が、物理プロセスプラント１００のランタイム動作中にオペレータによって利用されるため、オペレータワークステーション／ユーザインターフェースデバイス１７０とは異なる。
【００６５】
ＭＰＤＳＣプラットフォーム１００の物理構成の試運転に関して、構成データベース１７２ｂは、プロセスプラントフロアまたはフィールド環境１０２上に実装されることが計画または所望される種々の物理デバイスまたは構成要素およびそれらの相互接続を特に識別および／またはアドレス指定する、データおよび他の情報を記憶し得る。この試運転データのいくつかは、その中のデバイスおよびループの試運転に使用するために、フィールド環境１０２内の構成要素に提供され得、このデータのうちのいくつかは、例えば、物理プロセスプラント１００のライブ動作中にフィールド環境１０２と連携して動作することになる、制御モジュール、ペレータインターフェースモジュール、および／または分析モジュールの設計、開発および準備のためにバックエンド環境１０５で利用され得る。一例では、承認された制御モジュールは、構成データベース１７２ｂからプロセスコントローラ１１０にダウンロードされ、それにより、ライブ動作中に実行されると、プロセスコントローラ１１０は、その常駐制御モジュールに従って動作して、そのループ内の他の構成要素に／から（および、場合によっては、他のプロセスコントローラに／から）様々な信号を送受信し、それによって、物理プロセスプラント１００内のプロセスの少なくとも一部分を制御する。
【００６６】
構成データベース１７２ｂは、フィールド環境１０２内の構成要素のいくつかの論理識別子を記憶し得、コントローラ１１０および他のデバイスが、論理識別子によって、構成要素および構成要素と関連付けられた信号を参照することを可能にする。例えば、所与のフィールドデバイスについて、構成データベース１７２ｂは、論理識別子を特定のハードウェアアドレスまたはＩ／Ｏチャネルにマッピングまたは結合する情報を記憶し得る。ハードウェアアドレスは、特定のコントローラ、特定のコントローラに接続された特定のＩ／Ｏデバイス、および／または特定のＩ／Ｏデバイスをフィールドデバイスに接続するＩ／Ｏチャネル用の特定のアドレスを識別し得る。いくつかの場合では、このマッピングまたは結合は、コントローラ１１０、ユーザインターフェースデバイス１７０ｂ、オペレータワークステーション１７０ａ、または任意の他の所望されるデバイス（例えば、論理識別子を解決することを必要とする任意のデバイス）に記憶され得る。論理識別子がハードウェアアドレスまたはＩ／Ｏチャネルに結合された後、識別子は、「割り当てられた」とみなされる。場合によっては、プラント１００は、「割り当てられていない」論理識別子を含み、これらは、ソフトウェア要素（例えば、制御ルーチンおよび／または機能ブロック）が参照するが、結合を有していない識別子である。つまり、論理識別子は、プラント１００および構成データベース１７２ｂが、タグに結合されていないハードウェアアドレスまたはＩ／Ｏチャネルを有していないときに「割り当てられていない」とみなされる。したがって、割り当てられていない論理識別子が制御ルーチンによって参照されると、プラント１００内の信号によって運ばれる値が読み出されないことになり、コマンドがプラント１００内のフィールドデバイスを介して送信されないことになる。
【００６７】
そのような論理識別子の例としては、各々が、特定の計器、コントローラ、バルブ、または他の物理フィールドデバイスを表す、デバイスタグ（ＤＴ）と、各々が、特定のデバイスによって受信または生成され、フィールドデバイスによって利用される特定のパラメータに典型的に対応する、特定の信号を表す、デバイス信号タグ（ＤＳＴ）とが挙げられる。いくつかのデバイスについて、デバイス信号タグは、デバイスのデバイスタグと、そのデバイスによって受信または生成された特定の信号の識別子、例えば、制御モジュールによって参照される特定のパラメータの識別子との組み合わせを含む。いくつかのデバイス、典型的には、レガシまたはダムデバイスについて、デバイスタグは、物理デバイスおよびデバイスによって生成された信号の両方を表す。一般的に言うと、デバイスの論理識別子は、デバイスを一意に識別するために、フィールド環境１０２およびバックエンド環境１０５の両方で物理プロセスプラント１００によって使用される。ＤＴおよびＤＳＴは、「システムタグ」または「システム識別子」と呼ばれ得る。
【００６８】
いくつかの場合では、スマートフィールドデバイス１２９〜１３２はまた、スマートフィールドデバイス１２９〜１３２に一意の論理識別子も記憶し得る。これらの論理識別子は、フィールドデバイス１２９〜１３２を識別するためにプラント１００によって利用されるシステムタグとは別個であり得、「ソース識別子」または「ソースタグ」と呼ばれ得る。ソースタグは、実装に依存して、構成データベース１７２ｂに記憶されてもよく、または記憶されなくてもよい。
【００６９】
構成データベース１７２ｂは、仮想プラント環境１２に実装されることが計画または所望される様々な仮想デバイスまたは構成要素（例えば、様々な仮想ノード３０）を具体的に識別および／またはアドレス指定するデータおよび他の情報を記憶し得る。物理デバイスおよび構成要素と同様、構成データベース１７２は、仮想環境１２の構成要素のそれぞれの論理識別子を記憶し、それによって、他のデバイスおよび／または構成要素（物理または仮想にかかわらず）が仮想構成要素を参照することを可能にし得る。例えば、物理ノード４０ｘと同様、様々な仮想ノード３０ｘは、それらのそれぞれのデバイスタグ（ＤＴ）、デバイス信号タグ（ＤＳＴ）、ソースタグ、および／または他のタイプの一意の識別子を介して、ＭＰＤＳＣプラットフォーム１０内で（例えば、仮想環境１２および物理環境１５の両方にわたって）一意に識別され得る。この開示のさらなるセクションは、仮想デバイスおよび構成要素の構成および識別をより詳細に議論する。
【００７０】
他のアプリケーション１７５ａおよびデータベース１７５ｂ
他のアプリケーション１７５ａおよびデータベース１７５ｂは、診断アプリケーション／データベース、データヒストリアンアプリケーション／データベース、システムレベル健全性監視アプリケーション／データベース、ローカルおよび／または遠隔ユーザインターフェースなどの、プロセスプラント１００に固有であるアプリケーションのインスタンスを含み得る。一般的に言うと、他のアプリケーション１７５ａおよびデータベース１７５ｂは、プロセスプラント１００のＯＴ層１８上で実行される１つ以上のアプリケーションおよびそれらの関連付けらえたデータベースを含み得る。追加的または代替的に、他のアプリケーション１７５ａおよびデータベース１７５ｂは、在庫管理アプリケーション、人事管理アプリケーション、サプライチェーン管理アプリケーション、他のタイプの企業関連アプリケーション、気象／環境アプリケーションなどの、プロセスプラント１００と関連付けられたＩＴ層２０で実行される１つ以上のアプリケーションと、それらの関連データベースとを含み得る。例えば、他のアプリケーション１７５ａおよびデータベース１７５ｂは、アプリケーション２１ａ〜２１ｎおよびそれらの関連データベースを含み得る。さらに追加的または代替的に、他のアプリケーション１７５ａおよびデータベース１７５ｂは、シミュレーションアプリケーション、分析アプリケーション、ＩｏＴアプリケーション、ＩＩｏＴアプリケーションなどの、プロセスプラント１００および／またはその企業の外部にある、および／またはそれらから遠隔で実行される、１つ以上のアプリケーションと、それらの関連データベースとを含み得る。例えば、他のアプリケーション１７５ａおよびデータベース１７５ｂは、アプリケーション２２ａ〜２２ｍおよびそれらの関連データベースを含み得る。他のアプリケーション１７５ａおよびデータベース１７５ｂは、サードパーティアプリケーションを含み得る、および／またはプロセスプラント１００と関連付けられた企業によって提供されるアプリケーションを含み得る。他のアプリケーション１７５ａおよびデータベース１７５ｂのうちの少なくともいくつかは、エッジゲートウェイシステム２８ならびに／またはいくつかの他のタイプのセキュリティおよび／もしくはファイアウォールシステムを介してアクセスされ得る。
【００７１】
無線アクセスポイント１７８
１つ以上の他の無線アクセスポイント１７８は、バックエンド環境１０５内（および、場合によっては、フィールド環境１０２内）のデバイスが、Ｗｉ−Ｆｉもしくは他のＩＥＥＥ８０２．１１準拠の無線ローカルエリアネットワークプロトコルなどの無線プロトコルか、ＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）もしくは他のＩＴＵ−Ｒ（国際電気通信連合無線通信部門（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ  Ｒａｄｉｏ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｅｃｔｏｒ）互換性プロトコルなどのモバイル通信プロトコルか、近距離無線通信（ＮＦＣ）およびＢｌｕｅｔｏｏｔｈなどの短波無線通信か、または他の無線通信プロトコルを使用して、他のデバイスと通信することを可能にする。典型的には、そのような無線アクセスポイント１７８は、ハンドヘルドまたは他のポータブルコンピューティングデバイス（例えば、ユーザインターフェースデバイス１７０ｂ）が、無線ネットワーク１６５とは異なり、無線ネットワーク１６５とは異なる無線プロトコルをサポートする、それぞれの無線プロセス制御通信ネットワークを介して通信することを可能にする。例えば、無線またはポータブルユーザインターフェースデバイス１７０ｂは、物理プロセスプラント１００内のオペレータによって利用される、モバイルワークステーションまたは診断試験機器（例えば、オペレータワークステーション１７０ａのうちの１つのインスタンス）であり得る。いくつかのシナリオでは、携帯用コンピューティングデバイスに加えて、１つ以上のプロセス制御デバイス（例えば、コントローラ１１０、フィールドデバイス１２５〜１３２、または無線デバイス１６８、１４０〜１５８）もまた、アクセスポイント１７４によってサポートされる無線プロトコルを使用して通信する。
【００７２】
ゲートウェイシステム１８０、１８２
ゲートウェイノードまたはシステム１８０および１８２は、直接の物理プロセス制御プラント１００の外部にあるシステムとインターフェースし得る。典型的には、そのようなシステムは、物理プロセスプラント１００によって生成または動作される情報のコンシューマまたは供給側である。例えば、プロセス制御プラント１００は、直接の物理プロセスプラント１００を別のプロセスプラントと通信可能に接続するためのプラントゲートウェイノード１８０を含み得る。追加的または代替的に、プロセス制御プラント１００は、直接の物理プロセスプラント１００を、研究所システム（例えば、研究所情報管理システムまたはＬＩＭＳ）、オペレータラウンドデータベース、データ統合および視認システム、データ分析システム、材料ハンドリングシステム、資産管理システム、保守管理システム、製品在庫制御システム、生産スケジューリングシステム、気象データシステム、出荷およびハンドリングシステム、包装システム、インターネット、ＩＯＴアプリケーション、ＩＩＯＴアプリケーション、または他の外部システムなどの、外部のパブリックまたはプライベートシステムと通信可能に接続するためのエッジゲートウェイノードまたはシステム１８２を含み得る。
【００７３】
一般的に言うと、エッジゲートウェイシステム１８２は、通信が、プロセスプラント１００と他のネットワーク１８５との間で安全に配信されることを可能にする。例示的なアーキテクチャでは、エッジゲートウェイシステム１８２は、内部またはプラント向きエンジン（「フィールドゲートウェイ」と呼ばれ得る）および外部または外向きエンジン（「エッジゲートウェイ」と呼ばれ得る）を含み、プラント向きエンジンおよび外部向きエンジンは、プラントデータのコンシューマである外部ネットワークおよび／またはアプリケーション（例えば、ＩＴ層、ならにび／または外部ネットワークおよび／もしくはシステム）にプロセスプラントデータ（例えば、ＯＴ層によって生成されたデータ）を安全に配信するように連携する。多くの実施形態のうちの１つでは、プラント向きエンジンは、プロセスプラント１００の様々な構成要素によって生成されたデータを収集し、収集されたデータを、例えば、第１のパブリケーションセットを介して、１つ以上の安全な通信リンクを介して外部向きエンジンに安全に送信する。外部向きエンジンは、プラント向きエンジンによって生成された様々なパブリケーションをサブスクライブしており、そこから、収集されたプラントデータを取得する。次に、外部向きエンジンは、取得されたプラントデータを、ネットワーク１８５内の１つ以上の外部クライアントアプリケーション（例えば、アプリケーション２１ａ〜２１ｎ、２２ａ〜２２ｍ）に、例えば、第２のパブリケーションセットを介して安全に送信する。プラント向きエンジンおよび／または外部向きエンジンでのパブリケーションおよびサブスクリプションは、それぞれ、必要に応じて構成され得る。ただし、典型的には、プラント向きエンジンと外部向きエンジンとの間で利用されるパブリケーション／サブスクリプション、暗号化、および／または他の安全なデータ配信機構は、外部向きエンジンと外部アプリケーションとの間で利用されるパブリケーション／サブスクリプション、暗号化、および／または他の安全なデータ配信機構とは異なる。いくつかの実施形態では、追加の安全性のために、エッジゲートウェイシステム１８２は、データが外部ネットワーク１８５からプロセスプラント１００に流れることを防止するために、プラント向きエンジンと外部向きエンジンとの間に配設された一方向データダイオードを含む。エッジゲートウェイシステムの例は、米国特許公開第２０１８／０１１５５１６号、同第２０１８／０１１５５２８号、同第２０１８／０１１５５１７号、および同第２０１８／０１１３４４２号に見出され得、これらの開示全体は、参照により本明細書に組み込まれる。当然ながら、他のエッジゲートウェイシステムが、追加的または代替的にプロセスプラント１００によって利用され得る。
【００７４】
図３は、例示的なプロセスプラント１００内に含まれる、有限数のフィールドデバイス１２５〜１３２および１４０〜１４６を含む単一のプロセスコントローラ１１０、無線ゲートウェイ１６８、無線アダプタ１５２、アクセスポイント１５５、ルータ１５８、ならびに無線プロセス制御通信ネットワーク１６５のみを例示しているが、これは、例示的かつ非限定的な実施形態に過ぎない点に留意されたい。任意の数のコントローラ１１０が、プロセス制御プラントまたはプラットフォーム１００内に含まれ得、コントローラ１１０のいずれかが、任意の数の有線または無線デバイスおよびネットワーク１２５〜１３２、１４０〜１４６、１６８、１５２、１５５、１５８および１６５と通信して、プラント１００内のプロセスを制御してもよい。
【００７５】
ここで、物理ノードに関して図１および図３を一緒に参照すると、図１に示される各物理ノード４０ａ〜４０ｃおよびＰＮａ〜ＰＮｋは、図３のプロセス制御プラント１００に関して議論された物理構成要素またはデバイスのそれぞれ１つであり得る。例えば、ＰＮ４０ｂは、それぞれのＰｕｂ／Ｓｕｂ層４２ｂを有し、かつＩ／ＯカードＰＮｇを介してフィールドデバイスＰＮｈに通信可能に接続される、プロセスコントローラであり得る。別の例では、ＰＮ４０ｃは、６つの異なるフィールドデバイスＰＮａ〜ＰＮｆが通信可能に接続されるＣＩＯＣ（それぞれのＰｕｂ／Ｓｕｂ層４２ｃを有する）であり得るか、またはＰＮ４０ｃは、Ｐｕｂ／Ｓｕｂ層を有していない様々な他の物理構成要素ＰＮａ〜ＰＮｆが通信接続される、無線アクセスポイント１７８もしくはＥＩＯＣ（それぞれのＰｕｂ／Ｓｕｂ層４０ｃを有する）であり得る。さらに別の例では、ＰＮ４０ａは、そのＰｕｂ／Ｓｕｂ層４２ａを介して、Ｐｕｂ／Ｓｕｂを有していない複数の他のＰＮ、例えば、ＰＮｉ〜ＰＮｋに代わってプロセスＩ／Ｏデータを配信するＩ／ＯマーシャリングデバイスまたはＩ／Ｏハブデバイスであり得る。Ｉ／Ｏマーシャリングまたはハブデバイス４０ａは、スタンドアロンデバイスであり得るか、またはコントローラ１１０、Ｉ／Ｏデバイス１１２、１１５（例えば、ＣＩＯＣ、ＥＣＯＣ、ＷＩＯＣなど）、アクセスポイント１７８、ゲートウェイ１８０、１８２内など、物理プラント環境１５内に配設された別の物理構成要素内に含まれ得る。さらに、いくつかの実施態様では、エッジゲートウェイシステム２８およびそのＰｕｂ／Ｓｕｂ層３８は、例えば、図３に関して議論されたような様式で、物理プラント環境１５の様々な物理構成要素（例えば、ＰＮ４０ａ〜４０ｃおよびＰＮａ〜ＰＮｋ）に通信可能に接続される（図１には図示せず）物理ノードであり得る。
【００７６】
Ｉ／Ｏスイッチ
上述のように、図１に示されるＩ／Ｏスイッチ２５は、仮想通信ネットワーク４５のノード間でＩ／Ｏデータを処理するためのデータブローカ、スイッチングファブリック、またはルータとして機能する。つまり、Ｉ／Ｏスイッチ２５は、パブリッシュノードに代わって、パブリッシュノードによって生成されたＩ／Ｏデータを、そのデータをサブスクライブしているノードに転送する。一般的に言うと、Ｉ／Ｏスイッチ２５は、どのノードによってどのＩ／Ｏデータがパブリッシュされ、どのノードがどのパブリッシュされたＩ／Ｏデータをサブスクライブしているかに関するレコードを維持（および更新）し得る。一実施形態では、Ｉ／Ｏデータは、ＭＰＤＳＣプラットフォーム１０にわたって一意である一意の識別子、名前、もしくはタグによって、またはそれらに対するそれぞれの指示によって、レコード内で識別され得る。一意の識別子は、例えば、Ｉ／Ｏデータおよび／またはそのパブリッシュノードに含まれるプロセス関連ペイロードデータを識別し得る。一実施形態では、一意の識別子、名前、またはタグは、構成および／または試運転中に割り当てられる。Ｉ／Ｏスイッチ２５は、記憶されたレコードを利用して、着信するパブリッシュされたデータを、パブリッシュされたデータのサブスクライブ者にルーティングする。例えば、Ｉ／Ｏスイッチ２５は、様々なノード２８、３０ｘ、４０ｘによってパブリッシュされるＩ／Ｏデータをサブスクライブし得、パブリッシュされたＩ／Ｏデータを、そのサブスクリプションを介して受信すると、Ｉ／Ｏスイッチ２５は、それ自体が、記憶されたレコードに従って、選択されたサブスクライバノード２８、３０ｘ、４０ｘに、受信されたＩ／Ｏデータをパブリッシュし得る。典型的には、必須ではないが、Ｉ／Ｏスイッチ２５は、仮想通信ネットワーク４５の他のノードによってパブリッシュされるＩ／Ｏデータおよび／またはプロセス関連ペイロードデータを維持、記録、または記憶しない。
【００７７】
重要なことに、Ｉ／Ｏスイッチ２５は、受信されたプロセスＩ／Ｏデータを最小遅延で切り替えるか、または転送するように構成される。実際、プロトタイプでは、Ｉ／Ｏスイッチ２５は、負荷に依存して、５００マイクロ秒未満、２００マイクロ秒未満、および１００マイクロ秒未満などの、数百マイクロ秒で測定された時間間隔でＩ／Ｏスイッチ２５を通して、受信されたプロセスＩ／Ｏデータを転送することができた。
【００７８】
一般的に言うと、Ｉ／Ｏスイッチ２５は、ハードウェア、ファームウェア、および／またはソフトウェアを介して実装され得る。一例では、Ｉ／Ｏスイッチ２５は、本明細書に説明されるＩ／Ｏスイッチ２５機能のうちの少なくともいくつかを提供するために、専用のソフトウェアがインストールされる１つ以上の物理的なハードウェアデバイスを使用して実装され、つまり、Ｉ／Ｏスイッチ２５は、器具として実装され得る。別の例では、Ｉ／Ｏスイッチ２５は、本明細書に説明されるＩ／Ｏスイッチ２５機能のうちの少なくともいくつかを提供するために、サーバまたはコンピューティングデバイスのバンク上にインストールされ、それらによって実行され得るソフトウェア（例えば、プログラム、ルーチン、アプリケーションなど）として実装される。さらに別の例では、Ｉ／Ｏスイッチ２５は、例えば、仮想マシン、コンテナ（Ｄｏｃｋｅｒ、ＬＸＤなど）、または別のタイプの仮想化された実装として、仮想化を介して実装される。
【００７９】
Ｉ／Ｏスイッチ２５のＰｕｂ／Ｓｕｂ層３５は、概して、本開示内の他の箇所に説明されるＰｕｂ／Ｓｕｂ層３２ｘ、３８、４２ｘ、５５ｘと同様の構成および機能である。しかしながら、Ｉ／Ｏスイッチ２５のＰｕｂ／Ｓｕｂ層３５は、様々な識別されたプロセスＩ／Ｏデータに対するサブスクリプション要求を受理および維持するようにさらに構成される。上述のように、サブスクリプションは、例えば、１つ以上の有形の非一時的なメモリ内に、Ｉ／Ｏスイッチ２５に記録され、それによって維持される。さらに、Ｉ／Ｏスイッチ２５のＰｕｂ／Ｓｕｂ層３５は、パブリッシュされたプロセスＩ／Ｏデータを、他のＩ／Ｏスイッチを含み得るサブスクライブノードに転送するように構成される。
【００８０】
例示のために、図４は、図１のＭＰＤＳＣプラットフォーム１０に含まれ得る複数のＩ／Ｏスイッチ２０２、２０５、２０８、２１０の例示的な構成２００を図示する。一例では、各Ｉ／Ｏスイッチ２０２、２０５、２０８、２１０は、それぞれのＰｕｂ／Ｓｕｂ層を含む（それぞれのハッシュマークされた部分によって示されるように）、Ｉ／Ｏスイッチ２５のアーキテクチャと同様のそれぞれのアーキテクチャを有する。また、Ｉ／Ｏスイッチ２５と同様、各Ｉ／Ｏスイッチ２０２、２０５、２０８、２１０は、仮想通信ネットワーク２２５を介して、それぞれのＶＮおよび／またはＰＮセット２１２ａ〜２１２ｎ、２１５ａ〜２１５ｍ、２１８ａ〜２１８ｐ、および２２０ａ〜２２０ｑと関連付けられて相互接続され、それらの間で、それぞれのＩ／Ｏスイッチ２０２、２０５、２０８、２１０は、上記の様式などで、パブリッシュおよびサブスクライブを介してプロセスＩ／Ｏデータを転送する。構成２００は、４つのＩ／Ｏスイッチ２０２、２０５、２０８、２１０を含むが、構成２００に関して本明細書に議論される概念は、メッシュトポロジで相互接続されるよりも多いまたは少ない数のＩ／Ｏスイッチに容易に適用される。
【００８１】
図４では、各Ｉ／Ｏスイッチ２０２、２０５、２０８、２１０は、仮想通信ネットワーク２２５を介して、他のＩ／Ｏスイッチ２０２、２０５、２０８、２１０の各々にプロセスＩ／Ｏデータをさらに転送することができる。複数のＩ／Ｏスイッチ２０２、２０５、２０８、２１０を相互接続することによって、サービスされる仮想ノードおよび／または物理ノードの数は、より大きいシステム１０をサポートし、追加の配信帯域幅を提供するように拡大されることができる。構成２００では、各Ｉ／Ｏスイッチ２０２、２０５、２０８、２１０は、そのそれぞれのＶＮ／ＰＮセットに代わって、他のＩ／Ｏスイッチ２０２、２０５、２０８、２１０にデータをパブリッシュし得る。同様に、各Ｉ／Ｏスイッチ２０２、２０５、２０８、２１０は、それらのそれぞれのＶＮ／ＰＮセット２１２ａ〜２１２ｎ、２１５ａ〜２１５ｍ、２１８ａ−２１８ｐ、２２０ａ−２２０ｑに代わって、他のＩ／Ｏスイッチ２０２、２０５、２０８、２１０によって転送されるデータをサブスクライブし得る。
【００８２】
構成２００は、Ｉ／Ｏスイッチ２０２、２０５、２０８、２１０の各々を、他のＩ／Ｏスイッチ２０２、２０５、２０８、２１０の各々に直接リンクされているものとして例示する。つまり、仮想通信ネットワーク２２５は、完全に相互接続された、またはメッシュのトポロジを有する。したがって、この構成２００の実施態様では、パブリッシャノードからサブスクライバノードへの最大送信遅延は、特定のプロセスＩ／Ｏデータペイロードが受け得るホップの最大数が３であるため、制限される。構成２００の他の実施態様では、ホップの最大数は、異なり得る。例えば、ホップの最大数は、例えば、トラフィックを監視するために、時系列ネットワーキングなどの時系列能力、または他の好適な時系列能力が利用されるときなどに増加し得る。構成２００内のホップの最大数は、必要に応じて、構成および変更され得る。
【００８３】
当然ながら、他の相互接続されたトポロジ（例えば、ハブアンドスポーク、スター、リング、ツリー、ハイブリッドなど）は、仮想通信ネットワーク２２５のメッシュトポロジに加えて、またはその代わりとして可能であり得る。一般的に言うと、特定のパブリッシュノード、例えば、ノード２１５ａによってパブリッシュされたＩ／Ｏデータを処理するためのパブリッシュは、その対応するＩ／Ｏスイッチ、例えば、Ｉ／Ｏスイッチ２０５に対して行われ、管理される。しかしながら、サブスクリプションが要求される特定のデータについてのレコードをＩ／Ｏスイッチ２０５が有していない場合、Ｉ／Ｏスイッチ２０５は、サブスクリプション要求を他のＩ／Ｏスイッチ２０２、２０８、２１０に転送し得る。要求されたデータをパブリッシュするノードに対応する特定のＩ／Ｏスイッチ、例えば、パブリッシュノード２２０ｑに対応するＩ／Ｏスイッチ２１０は、要求されたデータおよびそのパブリッシュノード２２０ｑに対応するレコードを有することになり、要求ノード２１５ａに対応するＩ／Ｏスイッチ２０５に応答することになり、その際、Ｉ／Ｏスイッチ１０５は、要求されたデータについての対応するレコードを作成および記憶し得る。このようにして、Ｉ／Ｏスイッチ２１０、２０５を介したパブリッシュノード２２０ｑからサブスクライブノード２１５ａへの要求されたデータの横断ルートが確立され得る。
【００８４】
一実施形態では、構成２００は、複数のＭＰＤＳＣシステム１０にわたって実装され得る。例えば、Ｉ／Ｏスイッチ２０２は、第１のＭＰＤＳＣシステムに含まれ得、Ｉ／Ｏスイッチ２０５は、異なるＭＰＤＳＣシステムに含まれ得る。したがって、異なるＭＰＤＳＣシステムは、仮想通信ネットワーク２２５の１つ以上のリンクを介して、互いのプロセスＩ／Ｏデータをパブリッシュおよび／またはサブスクライブし得る。
【００８５】
リアルタイム仮想制御および関連動作
上述のように、仮想ノード３０ｘは、物理プラント環境１５内で動作可能である様々な物理構成要素の挙動を仮想化し得る。さらに、ＭＰＤＳＣプラットフォーム１０の機能に起因して、仮想プラント環境１２の仮想化された構成要素３０ｘは、物理プラント環境１５の物理構成要素と連動して動作して、ランタイム中に産業プロセスプラントのリアルタイム制御を実施し、それによって、原料から物理製品を生成する。例示のために図１、２、および３を同時に参照すると、プロセスコントローラ１１０は、アーキテクチャ５２ａを有する仮想ノード３０ａとして仮想化され得る。したがって、ランタイム中に物理プロセスコントローラ１１０がその対応する制御モジュールまたはルーチン１１８を実行する代わりに、仮想ノード１１０／３０ａは、そのＣＢＭ５８ａとして制御モジュールまたはルーチン１１８を含み、対応する制御モジュールまたはルーチン１１８をランタイム中に実行し、Ｉ／Ｏスイッチ２５を介して物理環境１５内に配設された様々なフィールドデバイスに／から信号を送受信することを含み得る。
【００８６】
例えば、産業プロセスプラント１００のランタイム中、仮想コントローラ１１０／３０ａは、物理Ｉ／Ｏデバイス１１５を介してフィールドデバイス１２９によって生成されたデータを受信し得る。この例では、物理Ｉ／Ｏデバイス１１５は、図１では、物理ノードＰＮｇによって表され、フィールドデバイス１２９は、図１では、物理ノードＰＮｈによって表され、物理ノード４０ｂは、Ｉ／Ｏハブデバイスである。フィールドデバイスＰＮｈによって生成されたデータペイロードは、Ｉ／ＯデバイスＰＮｇを介して、仮想通信ネットワーク４５のノードであるＩ／Ｏハブデバイス４０ｂに配信される。Ｉ／Ｏハブデバイス４０ｂは、Ｉ／Ｏスイッチ２５に、フィールドデバイスＰＮｈによって生成され、Ｉ／Ｏスイッチ２５がサブスクリプションを有するＩ／Ｏハブデバイス４０ｂによってパブリッシュされたデータペイロードをパブリッシュし得る。次に、Ｉ／Ｏスイッチ２５は、フィールドデバイスＰＮｈによって生成されたペイロードデータを仮想コントローラ１１０／３０ａにパブリッシュし得、その後、仮想コントローラ１１０／３０ａのＣＢＭ５８ａ（例えば、制御モジュール／ルーチン１１８）は、フィールドデバイスＰＮｈによって生成されたペイロードデータに関して動作し得る。ＣＢＭ５８ａは、仮想通信ネットワーク４５を介して別の仮想ノードまたは物理ノードに配信されることになる出力ペイロードデータを生成し得る。
【００８７】
別の例では、産業プロセスプラント１００のランタイム中、仮想コントローラ１１０／３０ａは、無線フィールドデバイス１４２ａによって生成されたデータを受信し得る。この例では、物理無線フィールドデバイス１４２ａは、図１では、物理ノードＰＮａによって表され、物理無線ゲートウェイ１６８は、ＰＮ４０ｃによって表される。無線ゲートウェイＰＮ４０ｃは、無線フィールドデバイスＰＮａによって生成されたペイロードデータを受信する。ＰＮ４０ｃが仮想通信ネットワーク４５のノードであるため、ＰＮ４０ｃは、Ｉ／Ｏスイッチ２５に、Ｉ／Ｏスイッチ２５がサブスクリプションを有する無線フィールドデバイスＰＮａによって生成されたペイロードデータをパブリッシュする。次に、Ｉ／Ｏスイッチ２５は、フィールドデバイスＰＮａによって生成されたペイロードデータを仮想ノード３０ｂにパブリッシュし得、仮想ノード３０ｂは、Ｉ／Ｏデバイス１１５などのＩ／Ｏデバイスの表現として構成される。仮想Ｉ／Ｏデバイス３０ｂは、フィールドデバイスＰＮａによって生成され、Ｉ／Ｏスイッチ２５によって転送されたペイロードデータをサブスクライブしている。したがって、仮想Ｉ／Ｏデバイス３０ｂは、そのサブスクリプションを介して無線フィールドデバイスＰＮａによって生成されたペイロードデータを取得し、フィールドデバイスＰＮａによって生成された、取得されたペイロードデータを、適切なサブスクライバに転送するためにＩ／Ｏスイッチ２５に新たにパブリッシュする。Ｉ／Ｏスイッチ２５は、次に、仮想Ｉ／Ｏデバイス３０ｂによってパブリッシュされたフィールドデバイスＰＮａの取得されたペイロードデータを、（この例では）仮想コントローラ３０ａを含む、そのそれぞれのサブスクライバにパブリッシュし得る。ペイロードデータに対する仮想コントローラ３０ａのサブスクリプションを介する仮想コントローラ３０ａでのペイロードデータの受信の際、仮想コントローラ３０ａのＣＢＭ５８ａ（例えば、制御モジュール／ルーチン１１８）は、無線フィールドデバイスＰＮａによって生成されたペイロードデータに関して動作し得る。ＣＢＭ５８ａは、仮想通信ネットワーク４５を介して別の仮想ノードまたは物理ノードに配信されることになる出力ペイロードデータを生成し得る。
【００８８】
産業プロセスプラントの物理構成要素の仮想化は、物理構成要素を使用して完全に実装される産業プロセスプラントよりも多くの利点を提供する。仮想化された構成要素は、産業プロセスプラントが、ハードウェア面積に対する最小限の変化、および低下した設置コストを伴って、サイズおよび構成要素の数を柔軟に拡大および／または縮小することを可能にする。仮想ノードが物理デバイス全体またはその一部分のみを表し得るため、制御は、例えば、必要とされる数の仮想ノードにわたって容易に拡縮され得る。加えて、ＭＰＤＳＣプラットフォーム１０は、例えば、Ｉ／Ｏの抽象化を介してＩ／Ｏの柔軟性を提供し、その結果、コントローラは、実際に構成およびダウンロードされるＩ／Ｏモジュールの割り当てに対する低い依存性を有する。つまり、少なくともＩ／Ｏスイッチ２５に起因して、物理Ｉ／Ｏデバイスとコントローラおよびフィールドデバイスとの間のＩ／Ｏ結合決定が排除され得る。さらに、仮想物理構成要素を使用することによって、仮想化された物理構成要素に対するソフトウェアアップグレードが容易に達成される。またさらに、ＭＰＤＳＣプラットフォーム１０を使用することによって、物理構成要素の挙動のシミュレーションおよびオンライン試験もまた、容易に達成され、現在既知の技術よりも改善される。
【００８９】
仮想化管理ノード
図５は、図１のＭＰＤＳＣシステム１０の構成、試運転、管理、および運営をサポートする例示的なアーキテクチャを例示するブロック図である。明確化の目的で、限定の目的ではなく、図５は、図１〜４を同時に参照して本明細書で議論される。図５に示されるように、仮想化管理ノード３００（本明細書では「ＶＭＮ３００」または「仮想ノード３００」と互換的に呼ばれる）は、Ｉ／Ｏスイッチ２５、様々な仮想ノード３０ｘ、仮想ＰＩＯサブシステム６０、パブリッシュ／サブスクライブ層３２ｘ、３５、３８、４２ｘなどの、ＭＰＤＳＣシステム１０の仮想化された構成要素を作成、構成、および管理する。ＶＭＮ３００は、仮想構成要素の作成、構成、および管理のうちの少なくともいくつかを自動的に実施する。追加的または代替的に、ＶＭＮ３００は、手動指示、例えば、ローカルまたは遠隔ユーザインターフェースであり得る、ＶＭＮ３００のユーザインターフェース３０２を介して受信される手動指示に基づいて、仮想構成要素の作成、構成、および管理のうちの少なくともいくつかを実施する。さらに、仮想化管理ノード３００は、仮想プロセス環境１２のシミュレーション活動を駆動および／または調整し、これは、以下により詳細に説明されるように、シミュレーション中にインラインユーザ入力を伴っておよび／または伴わずに実施され得る。
【００９０】
仮想構成要素の構成、運営、および管理
一実施形態では、仮想環境１２およびその構成要素の構成および／または試運転中、ＶＭＮ３００は、プラントのシステム構成データベースにアクセスし（例えば、ＶＭＮ３００は、データハイウェイ１０８を介してプラント１００の構成データベース１７２ｂにアクセスし）、取得された構成に基づいて、ＶＭＮ３００は、仮想ノードのタイプおよび数、仮想テンプレートおよび／もしくはサブシステム、Ｉ／Ｏスイッチ、ならびに／またはプラント構成を最良にサポートする（もしくはサポートするために所望される）他の仮想構成要素を決定する。ＶＭＮ３００は、様々なタイプおよび数の仮想ノード３０ｘを作成し、Ｉ／Ｏスイッチ２５および仮想ノード３０ｘを、仮想通信ネットワーク４５を介して、例えば、それぞれのパブリッシュ／サブスクライブ層３２ｘを介して、およびいくつかのＶＮ３０ｘについて、仮想ＰＩＯサブシステム６０を介して通信するように構成する。いくつかのプラント構成について、ＶＭＮ３００は、パブリッシュ／サブスクライブ層４２ｘのインスタンス（および任意選択的に、仮想ＰＩＯサブシステム６０のインスタンス）を作成し、物理プラント環境１５の様々な物理構成要素４０ｘに配布し得る。したがって、ＶＭＮ３００は、仮想通信ネットワーク４５の任意の数のノード２５、２８、３０ｘ、４０ｘを作成、構成、および運営し得、これらは、リアルタイム制御および／または動的シミュレーションを実施するように、物理プラントの物理構成要素と連携して動作する仮想構成要素を含み得る。
【００９１】
仮想通信ネットワーク４５およびそのノード２５、２８、３０ｘ、４０ｘの構成は、システム構成データベース１７２ｂ内に記憶され得る、および／または仮想環境構成データベース３０５内にローカルに記憶され得る。いくつかの実施態様では、仮想プラント環境１２の構成のマスタバージョンが、システム構成データベース１７２ｂ内に記憶され（物理プラント環境１５の構成と共に）、仮想プラント環境１２のマスタ構成のコピーが、仮想環境構成データベース３０５内にローカルに記憶される。いくつかの実施態様では、仮想プラント環境１２の構成のマスタバージョンは、仮想環境構成データベース３０５内に記憶され、仮想プラント環境１２のマスタ構成のコピーは、システム構成データベース１７２ｂ内に記憶される（物理プラント環境１５の構成と共に）。ＶＭＮ３００は、仮想環境構成データベース３０５内に記憶されたデータおよびシステム構成データベース１７２ｂ内に記憶された関連データの変更管理および同期を調整する。
【００９２】
プラント１００がプロセスプラント１００のランタイム中に動作プロセス制御を実施している間、ＶＭＮ３００は、Ｉ／Ｏスイッチ２５、仮想ノード３０ｘ、仮想通信ネットワーク４５および任意の関連ノード（物理ノード４０ｘ、２８など）を、例えば、リソース読み込み、リソース可用性、リソース帯域幅、障害発生、および仮想環境１２をサポートする物理コンピューティングプラットフォーム、例えば、仮想環境１２をサポートするハードウェアコンピューティングデバイスのプラットフォームによって提供されるハードウェアおよび／またはソフトウェアリソースの他の性能問題に関して監視し得る。検出および／または予測された条件に基づいて、ＶＭＮ３００は、例えば、負荷分散、障害回復、および他の性能目的のために、リソース割り当ての調整、待機仮想ノードのアクティブ化、仮想ノードの作成および／または削除などの、ランタイム動作中の軽減措置を自動的に実施し得る。一例として、ＶＭＮ３００は、性能ボトルネックを分析し、自動平準化動作を実施して、任意の検出されたボトルネックを軽減し得る。例えば、ＶＭＮ３００は、仮想通信ネットワーク４５上の仮想ネットワークトラフィック量に応答して、プロセスデータレベルで自動平準化を実施し得る、ならびに／またはＶＭＮ３００は、仮想環境１２が実装されるコンピューティングデバイス、物理データリンク、および／もしくは物理ネットワークにわたって、ＣＰＵおよび／もしくは物理ネットワーク利用が分散されるように、物理コンピューティングデバイスレベルで自動平準化を実施し得る。
【００９３】
運営上、ＶＭＮ３００は、様々な仮想ノード、仮想テンプレートおよびサブシステム、ならびに関連プロセスデータの保存、スナップショット、バックアップ、移行、復元などを実施し得、ＶＭＮ３００は、仮想環境１２自体の全体の保存、スナップショット、バックアップ、移行を実施し得る。一実施形態では、ＶＭＮ３００によって実施される各運営措置は、対象仮想ノードによってシミュレートされる論理の全体（例えば、対象仮想ノードの集合的なＣＢＭセット５８によって実施される論理の全体）に適用され得る。例えば、仮想コントローラのスナップショットを取得および保存するとき、ＶＭＮ３００は、仮想コントローラならびにその相互接続および動作状態の受信、それらで動作する、それらによって生成される、およびそれらを示すデータを保存するのみならず、仮想コントローラと連携して実行されるモジュールの関連データも、そのようなモジュールが他のノード上でホストされる、および／または他の物理構成要素をシミュレートする場合でも、スナップショットの一部として保存し得る。別の例では、仮想ＣＩＯＣのスナップショットを取得および保存するとき、ＶＭＮ３００は、仮想ＣＩＯＣの仮想マシンレベルに対応するデータを保存し得る、および／またはＶＭＮ３００は、仮想ＣＩＯＣによって観察されたプロセスシミュレーション値を保存し得る。
【００９４】
動的シミュレーション
上述のように、ＭＰＤＳＣシステム１０は、プロセスプラント１００全体および／またはその一部分の動的シミュレーションをサポートする。例えば、ＭＰＤＳＣシステム１０は、リアルタイムシミュレーションを提供し、リアルタイムシミュレーションは、対応する物理構成要素および／または物理動作プロセスの少なくとも一部のランタイムタイミング、値、および／または他の挙動を反映する。本明細書に利用される際、「シミュレーション」および「シミュレーション実行」という用語は、互換的に利用され、シミュレーションまたはシミュレーション実行は、有限である。つまり、各シミュレーションまたはシミュレーション実行は、それぞれの開始およびそれぞれの終了を有し、これらは、例えば、時間、パラメータ値、状態、ユーザコマンド、および／または他の基準に基づいて、必要に応じて定義され得る。
【００９５】
加えて、ＭＰＤＳＣシステム１０は、例えば、シミュレーション実行のペースの高速化または低速化、シミュレーションの一時停止、様々な値の挿入および／または変更、初期条件の変更などの、シミュレーションの操作を提供する。シミュレーションは、ＭＰＤＳＣシステム１０の仮想環境１２内で完全に実行され得る、および／またはシミュレーションは、１つ以上の物理構成要素と連携して１つ以上の仮想またはシミュレートされた構成要素を使用して実行され得る（例えば、仮想環境１２内の仮想ノードによってシミュレートされたコントローラの構成は、シミュレートされたコントローラ挙動を試験するために、物理環境１５内に配設された物理フィールドデバイスと通信し得る）。一般的に言うと、ＭＰＤＳＣシステム１０は、プラットフォームを提供し、これを介して、エンジニアおよびユーザは、ドラフト制御戦略およびドラフトオペレータ表示を試験および検査し、プロセス改善を調査し、オペレータ訓練を実施し、事例研究を実施するなどを行う。ＶＭＮ３００は、ＭＰＤＳＣシステム１０によってサポートされるシミュレーション活動を管理、調整、および駆動する。
【００９６】
特に、ＶＭＮ３００は、物理プラント１００の少なくとも一部分をシミュレートする仮想ノード２５、３０ｘおよび他の仮想構成要素２８、３２、３５、３８、４２ｘ、６０を作成、構成、および運営する。シミュレーション目的のみに利用される（ランタイム制御目的では利用されない）仮想ノード２５、３０ｘは、本明細書では「シミュレートされたノード」と互換的に呼ばれる。例えば、ＶＭＮ３００は、例えば、コントローラ１１０、ワークステーション１７０ａ、および／または他の物理デバイスならびにそれらの対応するネットワーク相互接続などの統合物理ハードウェア構成要素をシミュレートする（いくつかの実施態様では、ＭＡＣアドレスレベルまでシミュレーションする）、シミュレートされたノードを利用することによって、プラント構成データベース１７２ｂによって説明されるようにランタイム制御システム全体のミラーシミュレーションシステムを生成し得る。別の例では、ＶＭＳ３００は、１つ以上の個々の物理構成要素のそれぞれのシミュレーションを生成し得、それらの各々は、スタンドアロンモードで、または１つ以上の他のシミュレーとされた、仮想、および／または物理構成要素と連携して実行され得る。例えば、ＶＭＳ３００は、物理構成要素に適用されることになる、例えば、新しい制御構成、アップグレード、パッチなどを試験するために、物理環境１５内で現在動作している物理構成要素の仮想対を仮想環境１２内で生成し得る。別の例では、ＶＭＳ３００は、特定の物理構成要素のＭＡＣアドレスレベル挙動のシミュレーションを生成し得る。さらに別の例では、ＶＭＳ３００は、制御ループまたはオペレータ表示ビューなどの物理デバイス、構成要素、またはノードのグループのリアルタイム動作挙動をシミュレートする一体的な（例えば、単一の）シミュレートされたノードを生成し得る。
【００９７】
プロセス制御システム１００の仮想環境１２および物理環境１５内で利用されるデータ値のタイプの構成に関して、一実施形態では、システムプロセスデータ定義（システム構成アプリケーション１７２ａを介しておよび／またはＶＭＳ３００を介して構成され得る）は、プロセスプラント１００内で利用されるどのデータ値（および／またはそのタイプ）がシミュレートされることになるかを定義し、ＶＭＳ３００は、それぞれのデータタグ（例えば、識別子）を、シミュレートされることになるデータ値（および／またはそのタイプ）に割り当てる。例えば、ＶＭＳ３００は、シミュレートされることになる少なくともいくつかのデータ値および／もしくはデータタイプにデータタグを自動的に割り当て得る、ならびに／またはＶＭＳ３００は、シミュレートされることになる少なくともいくつかのデータ値および／またはデータタイプの手動で生成されたデータタグを、例えば、ユーザインターフェース３０２を介して受信し得る。シミュレートされたデータ値および／またはデータタイプの割り当てられたデータタグは、仮想環境構成データベース３０５内および／またはシステム構成データベース１７２ｂ内に記憶され得る。
【００９８】
加えて、ＶＭＮ３００は、物理プラント１００全体および／またはその一部分のシミュレーションを駆動および／または調整する。このため、仮想環境１２は、シミュレータＡＰＩ（アプリケーションプログラミングインターフェース）３１０または他の好適なアクセス機構を提供し、それを介して、ユーザインターフェース３０２、ＩＴ層アプリケーション２１ｘ、および／またはサードパーティもしくは外部アプリケーション２２ｘなどのアプリケーションが、シミュレーションの目的で仮想環境１２とインターフェースし得る。一実施形態では、仮想環境１２内のＶＭＮ３００または他のコンピューティングデバイスは、シミュレータＡＰＩ３１０を他のアプリケーションにホストおよび／または公開する。
【００９９】
図５に示されるように、シミュレータＡＰＩ３１０は、仮想環境１２およびそこに含まれるシミュレートされた構成要素に、およびそれらから、Ｉ／Ｏスイッチ２５を介して、シミュレートされたデータ値（本明細書では、「シミュレーションデータ値」、「シミュレートされた値」、および／または「シミュレーション値」とも互換的に呼ばれる）を通信する。一般的に言うと、シミュレートされたランタイムプロセスデータは、ノードのそれぞれのＰｕｂ／Ｓｕｂ層を介して、２８、３０ｘとシミュレータＡＰＩ３１０との間で配信される。例えば、シミュレートされたノード２８、３０ｘ、３１０は、Ｉ／Ｏスイッチ２５を介して１つ以上の他のシミュレートされたノード２８、３０ｘ、３１０にランタイムプロセスデータをパブリッシュするものであり得、シミュレートされたノード２８、３０ｘ、３１０は、１つ以上の他のシミュレートされたノード２８、３０ｘ、３１０によって生成され、かつＩ／Ｏスイッチ２５を介して受信される、リアルタイムプロセスデータをサブスクライブし得る。一方、一実施形態では、ランタイムプロセスデータではないシミュレートされたデータ値（例えば、構成可能であり、典型的には、物理環境１５でのダウンロード時間中に割り当てられるデータ値）は、変化ベースで、例えば、データのそれぞれの値が変化したときのみ、シミュレートされたノード２８、３０ｘ、３１０間で配信され得る。
【０１００】
シミュレータＡＰＩ３１０は、仮想環境１２内でシミュレートされた構成要素の名前、データタグ、識別子、データ定義、チャネルデータなどを用いて構成され（例えば、仮想構成データベース３０５内に記憶されたデータに基づいて）、シミュレータＡＰＩ３１０はまた、例えば、ＯＰＣ、イーサネット、ＩＰｖ６などの標準化されたプロトコルである１つ以上の産業用および／または汎用通信／データプロトコルを使用して通信するように構成される。したがって、シミュレータＡＰＩ３１０は、仮想環境１２、およびシミュレーションデータのコンシューマおよび／または提供側であり、かつ１つ以上の産業用および／または汎用通信／データプロトコルを利用する、他のアプリケーション３０２、２１ｘ、２２ｘとの間のデータ配信および伝送機構として機能する。例えば、サードパーティシミュレーションアプリケーションは、シミュレータＡＰＩ３１０を利用して、シミュレートされた構成要素による使用のためのテスト値を注入し、シミュレーション実行の初期条件を変更するなどを行い得る。
【０１０１】
追加的または代替的に、シミュレータＡＰＩ３１０は、ユーザインターフェース３０２を介して、および／または他のアプリケーション２１ｘ、２２ｘによって提供されるシミュレーションコマンドを取り扱う。例えば、シミュレータＡＰＩ３１０は、モジュール実行のペースを高速化および／もしくは低速化する（その少なくとも一部分が仮想環境１２内でシミュレートされる）、ならびに／またはＩ／Ｏ処理のペースを高速化および／もしくは低速化する、シミュレーションコマンドを受信し得、関連付けられたシミュレートされたノード３０ｘ、２８および／または仮想通信ネットワーク４５のタイミングおよび措置を適宜駆動し得る。別の例では、シミュレータＡＰＩ３１０は、シミュレーション中に様々なデータ値を注入および／または変更するためのシミュレーションコマンドを受信し得る。さらに、シミュレータＡＰＩ３１０は、例えば、スナップショットを保存する、保存されたスナップショットを検索する、保存されたデータから復元するなどの運営シミュレーションコマンドを受信し得、それに応じて対応する措置を実施し得る。例えば、シミュレータＡＰＩ３１０は、シミュレーションコマンドを受信し、それに応答して、プロセスプラント１００全体のシミュレーションを保存、検索、復元する（例えば、仮想環境構成データベース３０５に／から、および／またはシステム構成データベース１７２ｂに／から）を保存、検索、復元などすることができる。システム構成データベース１７２ｂ）と共に、プロセスプラント１００の１つ以上のノードまたは構成要素のシミュレーションを保存、検索、復元するなどを行い得る。
【０１０２】
一般的に言うと、シミュレーションＡＰＩ３１０は、ステートフルである。つまり、シミュレーションＡＰＩ３１０は、シミュレーション実行時にそれと関連付けられたシミュレーションおよび構成要素の様々な状態（例えば、仮想、物理、および／またはシミュレートされたデバイス、仮想、物理、および／またはシミュレートされたモジュール、他のタイプの仮想、物理、および／またはシミュレートされた構成要素、シミュレーションによって少なくとも部分的にシミュレートされているプロセス、シミュレーション全体の状態など）を認識し、様々な状態に基づいて受信されたコマンドに応答する。例えば、保存コマンドに応答して、シミュレーションＡＰＩ３１０は、関連構成要素の状態を示すデータと共にプロセスデータを保存し得る。別の例では、テスト目的のためにコントローラ内で実行される変更された制御モジュールをシミュレートするときに、シミュレーションＡＰＩ３１０は、ユーザが関連モジュールの状態を変化させて、変更された制御モジュールが関連モジュールの異なる状態にどのように応答するかを決定することを可能にし得る。
【０１０３】
図６は、産業プロセスプラントのプロセス制御システムのノードを制御する例示的な方法４００のフロー図である。方法４００の実施形態の少なくとも一部分は、図１の多目的動的シミュレーションおよびランタイム産業もしくはプロセス制御（ＭＰＤＳＣ）システムもしくはプラットフォーム１０ならびに／またはそれらの任意の１つ以上の構成要素のうちの１つ以上の部分によって、図２の仮想ノード５２ａ、５２ｂの実施形態の１つ以上の部分によって、図３の物理プラント環境１００の実施形態ならびに／またはそれらの構成要素のうちの１つ以上の部分によって、図４のＩ／Ｏスイッチの構成２００の実施形態の１つ以上の部分によって、かつ／あるいは図５の仮想化管理ノード３００の実施形態の１つ以上の部分によって、実施され得る。例示の容易さのために、限定の目的ではなく、方法４００は、図１〜５の部分を同時に参照して本明細書に説明される。さらに、方法４００は、実施形態では、本明細書に説明されているもの以外の、より多い、より少ない、および／または代替のステップを含み得る。
【０１０４】
図６に例示されるように、方法４００は、フィールドデバイスおよび仮想ノードを、フィールドデバイスと仮想ノードとの間に配設されたＩ／Ｏスイッチを介して通信可能に接続し、それにより、フィールドデバイス、Ｉ／Ｏスイッチ、および仮想ノードが、産業プロセスプラントのランタイム動作中に連携して動作して、例えば、産業プロセスを制御することを含む（ブロック４０２）。例えば、フィールドデバイスは、図３に示されるフィールドデバイス１２５〜１３２および１４０〜１４６のうちの１つ、図１の物理ノード４０ａ、４０ｂ、４０ｃ、もしくはＰＮａ〜ＰＮｋのうちの１つ、ならびに／または図４に示される物理ノード２１２ａ〜２１２ｎ、２１５ａ〜２１５ｎ、２１８ａ〜２１８ｎ、もしくは２２０ａ〜２２０ｎのうちの１つと同様であり得る。Ｉ／Ｏスイッチは、例えば、図１のＩ／Ｏスイッチ２５および／または図４のＩ／Ｏスイッチ２０２〜２１０のうちの１つの実施形態として実装され得る。仮想ノードは、例えば、図１に示される仮想ノード３０ａ、３０ｂ、３０ｃ〜３０ｐ、図２に示される仮想ノード５２ａ、５２ｂ、および／または図４に示される仮想ノード２１２ａ〜２１２ｎ、２１５ａ〜２１５ｎ、２１８ａ〜２１８ｎ、または２２０ａ〜２２０ｎのうちの１つと同様であり得る。
【０１０５】
いずれの場合も、方法４００のブロック４０２に関して、Ｉ／Ｏスイッチを介して仮想ノードに通信可能に接続されるフィールドデバイスは、産業プロセスプラントの物理環境内に配設され、産業プロセスプラントのランタイム動作中に物理機能を実施して、産業プロセスを制御して、製造、材料変換などのように、原材料または他のタイプの入力材料から物理製品を生成する。例えば、フィールドデバイスは、それ自体がバルブまたは他のタイプのデバイスであり得、バルブまたは他のタイプのデバイスなどの別のデバイスを作動させ得、温度を上昇または下降させ得、測定値を取得し得、状態を検知するなどを行い得る。
【０１０６】
図６に関して、Ｉ／Ｏスイッチは、フィールドデバイスによって生成され、かつパブリッシュされている、第１のデータのサブスクライバであり、Ｉ／Ｏスイッチは、フィールドデバイスによって生成された第１のデータを示す第２のデータのパブリッシャである。例えば、Ｉ／Ｏスイッチは、サブスクリプションを介して、例えば、フィールドデバイスがプラントのランタイム動作中に産業プロセスを制御するように動作している間、フィールドデバイスによって生成された第１のデータを受信し得、Ｉ／Ｏスイッチは、受信された第１のデータを第２のデータとしてパブリッシュし得る。概して、Ｉ／Ｏスイッチは、ｐｕｂ／ｓｕｂ層３２ａ〜３２ｐ、３５、３８、および図１および５に示される４２ａ〜４２ｃ、ならびに／または図２のｐｕｂ／ｓｕｂ層５５ａ、５５ｂなどの１つ以上のパブリッシュ／サブスクライブ層または機構を介してＩ／Ｏスイッチが通信可能に接続される様々なデバイスの様々なデータをパブリッシュおよびサブスクライブし得る。
【０１０７】
図６に関して追加的に、仮想ノードは、産業プロセスプラントの仮想環境内に配設され、フィールドデバイスに対応し、かつＩ／Ｏスイッチによってパブリッシュされた、第２のデータのサブスクライバである。例えば、仮想ノードは、それが通信可能に接続される様々なデバイスの様々なデータをサブスクライブし得、図１のｐｕｂ／ｓｕｂ層３２ａ〜３２ｐのうちの１つまたは図２のｐｕｂ／ｓｕｂ層５５ａ、５５ｂのうちの１つなどの、仮想ノードのパブリッシュ／サブスクライブ層または機構を介して、仮想ノードがサブスクライブしている（またはその指示を有する）、様々なデータを受信し得る。同様に、仮想ノードは、そのそれぞれのｐｕｂ／ｓｕｂ層を介して他のノードの消費のためのデータをパブリッシュし得る。
【０１０８】
いくつかの構成では、仮想ノードは、仮想コントローラ、仮想安全コントローラもしくは論理ソルバ、Ｉ／Ｏカードもしくはマーシャリングシステム、または、例えば、上記のような産業プラントの物理環境内で利用され得る物理ノードの仮想化されたインスタンスである他のタイプのノードなどの、仮想ランタイムノードであり得る。いくつかの実施態様では、単一の仮想ランタイムノードが、ノードグループを仮想化し得る。例えば、単一の仮想ランタイムノードは、物理Ｉ／Ｏマーシャリングキャビネットおよびそれに含まれる物理Ｉ／Ｏカードセットとして振る舞い得る。
【０１０９】
いくつかの構成では、仮想ノードは、プロセスプラントの物理環境の１つ以上の統合ハードウェア物理構成要素ならびに任意選択的にその挙動および／または動作をシミュレートする、シミュレートされたノードであり得、例えば、サブシステム、デバイス、デバイスの構成要素、ネットワーク接続および／または構成要素などであり得、必要に応じて、ＭＡＣアドレスレベルの粒度に至る。
【０１１０】
いずれの場合も、仮想ノード（仮想ノードが仮想ランタイムノードであるか、またはシミュレートされたノードであるかにかかわらず）は、それぞれの構成要素挙動モジュール（ＣＢＭ）を含み得、これは、仮想化されたノードの１つ以上のメモリ上に記憶される命令セットを含み、仮想化されたノードの１つ以上のプロセッサによって実行される。仮想化されたノード上に常駐し、そこで実行されるＣＢＭは、少なくともＩ／Ｏデータに関して動作することによって、上記のような様式で、仮想化されたノードの少なくともいくつかの挙動および／または動作を統制し得る。例えば、仮想化されたノードのＣＢＭは、制御モジュールまたはルーチン、安全論理モジュールまたはルーチン、実行可能オブジェクトなどとして実装され得る。一般的に言うと、仮想化されたノードのＣＢＭのインスタンスは、プロセスプラントの物理ノードによって利用されることができる。つまり、特定のＣＢＭの異なるインスタンスが仮想ノードおよび物理ノードにダウンロードまたは別様に提供され得、特定のＣＢＭのダウンロードされたインスタンスは、それらが仮想ノードで実行されているか、または物理ノードで実行されているかを認識していないか、または不可知であり得る。特に方法４００の仮想ノードに関して、仮想ノードは、そのＣＢＭによって生成されたデータをそのｐｕｂ／ｓｕｂ層を介してパブリッシュし、仮想ノードは、そのｐｕｂ／ｓｕｂ層を介してサブスクライブしたパブリッシュされたデータを受信し、受信されたデータをそのＣＢＭに提供し、その結果、ＣＢＭは、受信されたデータに関して動作し得る。
【０１１１】
図６に示されるように、産業プロセスプラントのランタイム動作中、方法４００は、仮想ノードによって、Ｉ／Ｏスイッチによってパブリッシュされたフィールドデバイスに対応する第２のデータを受信することを含む（ブロック４０５）。例えば、仮想ノードは、そのｐｕｂ／ｓｕｂ層を介して、Ｉ／Ｏスイッチによってパブリッシュされた第２のデータを受信し得、パブリッシュされた第２のデータは、フィールドデバイスによって生成され、Ｉ／ＯスイッチにサブスクライブされてＩ／Ｏスイッチによって受信される、第１のデータに基づく。
【０１１２】
ブロック４０８では、方法４００は、産業プロセスプラントのランタイム動作中、かつ仮想ノードの構成要素挙動モジュールを利用することによって、第２のデータに関して動作し、それによって、第２のデータに基づいて制御信号を生成することを含む。例えば、仮想ノードに常駐し、そこで実行されるＣＢＭは、受信された第２のデータに関して動作し得（例えば、受信された第２のデータを入力として利用し得る）、ＣＢＭの動作または実行に基づいて、対応する制御信号を生成し得る。仮想ノードのＣＢＭは、例えば、制御ルーチンもしくはモジュール、安全論理ルーチン、モジュール、もしくはソルバ、または別のタイプのオブジェクト、ルーチン、モジュール、もしくは実行可能ファイルであり得る。
【０１１３】
ブロック４１０では、方法４００は、産業プロセスプラントのランタイム動作中、制御信号の指示をプロセス制御システムの別のノード、例えば、受信側ノードに送信させ、それによって、別のまたは受信側ノードの挙動を変更する（ブロック４１０）。別のまたは受信側ノードは、別の仮想ノード（別の仮想ランタイムノード、またはシミュレートされたノードなど）であり得るか、または受信側ノードは、産業プロセスプラントの物理ノードであり得る。
【０１１４】
ブロック４１０の実施形態では、制御信号の指示を受信側ノードに送信させることが、仮想ノードによって、制御信号の指示を受信側ノードに直接送信することを含む。
【０１１５】
ブロック４１０の別の実施形態では、制御信号の指示を受信側ノードに送信させることが、仮想ノードによって、例えば、仮想ノードのｐｕｂ／ｓｕｂ層を介して、制御信号を示す第３のデータをパブリッシュすることを含む。この実施形態では、Ｉ／Ｏスイッチは、仮想ノードによってパブリッシュされた第３のデータへのサブスクライバであり得、Ｉ／Ｏスイッチは、第３のデータに関して動作して、受信された第３のデータを示す第４のデータを生成し、例えば、Ｉ／Ｏスイッチのｐｕｂ／ｓｕｂ層を介して、パブリッシュし得る。この実施形態の例示的な実施態様では、受信側ノードは、Ｉ／Ｏスイッチによってパブリッシュされた第４のデータのサブスクライバであり、したがって、受信側ノードは、そのｐｕｂ／ｓｕｂ層を介して、パブリッシュされた第４のデータを受信し得、第４のデータは、制御信号を示す。
【０１１６】
この実施形態の別の例示的な実施態様では、介在ノードは、Ｉ／Ｏスイッチと受信側ノードとの間に通信可能に配設され得る。この例示的な実施態様では、介在ノードは、Ｉ／Ｏスイッチによってパブリッシュされた第４のデータのサブスクライバであり、したがって、介在ノードは、そのｐｕｂ／ｓｕｂ層を介して、パブリッシュされた第４のデータを受信し得る。介在ノードは、受信された第４データを、受信側ノードにとって固有または別様に既知である通信形式に変換または翻訳し得、変換または翻訳された第４のデータを、１つ以上の好適な通信リンクおよび／またはネットワークを介して受信側ノードに送信および／またはパブリッシュし、それにより、受信側ノードは、その固有または既知の通信フォーマットで制御信号の指示を受信する。例えば、介在ノードは、図１に示されるノード４０ａ〜４０ｃまたは２８のうちの１つと同様であってもよく、または図４のＩ／Ｏスイッチ２０２〜２１０のうちの１つなどの別のＩ／Ｏスイッチであってもよい。例示的な構成では、介在ノードは、Ｉ／Ｏスイッチと、プロセスプラントの物理環境に配設されている複数の物理デバイスとの間に通信可能に配設されるＩ／Ｏハブであり得る。複数の物理デバイスは、例えば、ブロック４０２に関して上記に説明されたように、第１のデータを生成したフィールドデバイスを含んでもよく、または含まなくてもよい。この例示的な構成では、Ｉ／Ｏハブは、それが通信可能に接続されている複数の物理デバイスのいずれかによって生成されたデータのパブリッシャであり得、複数の物理デバイスのいずれかによって利用され、かつＭＰＤＳＣ１０を利用する別の仮想デバイス、Ｉ／Ｏスイッチ、またはその他のパブリッシュノードによってパブリッシュされるデータのサブスクライバであり得る。
【０１１７】
さらにブロック４１０に関して、受信側ノードが、サブスクリプションを介して、または介在ノードを介して、Ｉ／Ｏスイッチによって直接パブリッシュされた第４のデータを受信するか否かにかかわらず、受信側ノードによって受信された第４のデータの内容（上述のように、仮想ノードのＣＢＭによって生成された制御信号を示す）は、受信側ノードにその挙動を変更させ得る。上述のように、受信側ノードは、産業プロセスプラントの別の仮想ノード（仮想ランタイムノードまたはシミュレートされたノードであり得る）であり得るか、または受信側ノードは、産業プロセスプラントの物理ノードであり得る。したがって、受信側ノードによって受信される（Ｉ／Ｏスイッチを介して、または介在ノードを介して）第４のデータの内容は、受信側ノードのＣＢＭによって動作され得、それによって、受信側ノードの挙動および／または動作、例えば、ランタイム挙動および／またはランタイム動作の変化を引き起こす。例えば、受信された第４のデータの内容は、仮想ノードによって生成された制御信号を示し得、受信側ノードのＣＢＭは、制御信号に関して動作し、それに応じて、その挙動および／または動作を、例えば、産業プロセスプラントが産業プロセスを制御するためにランタイムで動作している間に、変更し得る。いくつかの場合では、受信側ノードの役割に依存して、プロセスプラント内の産業プロセスの制御の少なくとも一部分は、受信側ノードによって受信され、かつＩ／Ｏスイッチによってパブリッシュされた第４のデータに対応するデータの内容に基づいて変更され得る。
【０１１８】
方法４００の一実施形態（図６には図示せず）では、ブロック４０２に関して説明された仮想ノードは、仮想ランタイムノードであり、方法４００は、１つ以上のシミュレートされたノードをＩ／Ｏスイッチに通信可能に接続することを含み、１つ以上のシミュレートされたノードは、産業プロセスプラントの仮想環境内に配設された仮想ノードである。１つ以上のシミュレーションノードおよびＩ／Ｏスイッチの少なくとも一部分は、例えば、シミュレーションシステムに含まれ得、シミュレーションシステムは、産業プロセスプラントの１つ以上の仮想および／または物理構成要素および／またはノードのランタイム挙動および／またはランタイム動作をシミュレートする。実際、いくつかのシナリオでは、１つ以上のシミュレートされたノードは、例えば、産業プロセスプラントがプロセスを制御している間のランタイム中に１つ以上の実際の仮想ランタイムおよび／または物理ノードが動作している間、産業プロセスプラントの１つ以上の仮想ランタイムおよび／または物理ノードのランタイム動作と連携する、それぞれの仮想および／または物理構成要素および／またはノードのランタイム挙動をシミュレートし得る。
【０１１９】
ランタイム挙動のシミュレーションを提供するために、１つ以上のシミュレーションノードの各々は、１つ以上のプロセッサを介して、それぞれのシミュレーションノードの１つ以上のメモリ上に記憶される、それぞれのＣＢＭを実行し得る。上述のように、シミュレートされたノードのそれぞれのＣＢＭは、それらがシミュレートされたノード上、仮想ランタイムノード上、または物理ノード上で実行されているかどうかを不可知または認識せず、したがって、それぞれのＣＢＭのインスタンスは、プロセスプラントの物理環境内の様々なそれぞれの物理および／もしくは仮想ランタイムノード、構成要素、ならびに／またはデバイス内に配備可能である。一般的に言うと、シミュレートされたノードは、産業プロセスプラント内に配備可能である、および／または配設される任意の物理デバイスまたはその構成要素をシミュレートし、そのような任意の物理デバイスまたはその構成要素としては、限定されるものではないが、例えば、プロセスコントローラか、安全コントローラか、安全ロジックソルバか、Ｉ／Ｏノード、カード、もしくはデバイスか、無線デバイスか、イーサネットデバイスか、オペレータワークステーションか、ユーザインターフェースデバイスか、ツールか、ゲートウェイか、電子マーシャリングキャビネットか、ネットワーク接続か、ＭＡＣアドレスか、産業プロセスプラントの物理環境内に配備可能である、および／もしくは配設される別のタイプの物理デバイスもしくは構成要素か、モジュール、ルーチン、関数もしくは挙動か、ＭＡＣアドレスか、特定の物理デバイスもしくは構成要素のハードウェア副構成要素か。または産業プロセスプラントの物理環境内に配備可能である、および／または配設される特定の物理デバイスもしくは構成要素の別の部分が挙げられる。
【０１２０】
いくつかの実施形態では、方法４００は、システムまたはＭＰＤＳＣ１０（図６には図示せず）の１つ以上のシミュレートされたノードのうちの特定のシミュレートされたノードを含むシミュレーション実行を実行することを含む。特に、シミュレーション実行を実行することは、特定のシミュレートされたノードのそれぞれのＣＢＭを実行することを含む。特定のシミュレートされたノードのそれぞれの構成要素挙動モジュールが実行されて、それによって、データを生成し得、特定のシミュレートされたノードによって生成されたデータは、ＭＰＤＳＣ１０の別のノード、例えば、特定のシミュレートされたノードによって生成されたデータの受信ノードに通信され得る。例えば、特定のシミュレートされたノードによって生成されたデータは、特定のシミュレートされたノードから受信ノードに直接送信され得る。別の例では、特定のシミュレートされたノードによって生成されたデータは、特定のシミュレートされたノードのｐｕｂ／ｓｕｂ層を介してパブリッシュされ得、受信ノード、Ｉ／Ｏスイッチ、または受信ノードとＩ／Ｏスイッチとの間に通信可能に配設された介在ノードは、シミュレートされたノードによってパブリッシュされた、生成されたデータのサブスクライバであり得る。受信ノードは、上記のように、シミュレートされたノードによってパブリッシュされた、生成されたデータのサブスクライバを介して、生成されたデータの内容を受信し得る。受信ノードは、別の仮想ノード（例えば、別のシミュレートされたノード、または別の仮想ランタイムノード）であってもよく、または受信ノードは、物理ノードであってもよい。いくつかの実施態様では、シミュレートされたノードまたは受信ノードのうちの少なくとも１つは、産業プロセスプラントのランタイム動作中に他のランタイム仮想および／または物理ノードと連携して動作し得る。
【０１２１】
いくつかのシナリオでは、特定のシミュレーションノードを伴うシミュレーション実行を実行することに続いて、方法４００は、特定のシミュレーションノードのＣＢＭのそれぞれのインスタンスを、産業プロセスプラントの仮想ランタイムノードまたは物理ノードにダウンロードまたは別様に提供することを含み得る。例えば、シミュレーション実行は、特定のシミュレートされたノードでのＣＢＭの所望される挙動を試験するか、または別様に証明し得、シミュレートされた挙動が良好であると証明された、および／または承認された後、ＣＢＭのインスタンスは、ランタイムノードにダウンロードされ得る（仮想または物理にかかわらず）。したがって、ＭＰＤＳＣ１０を介して、シミュレートされた挙動は、容易に試験および証明され得（場合によっては、ランタイム条件下で）、承認されると、それぞれの仮想および／または物理ランタイムノードでの実行のために容易にダウンロードまたは提供され得る。
【０１２２】
ただし、全てのシミュレーション実行がリアルタイムに、またはランタイム条件下で実行される必要はない。このため、シミュレーションシステムは、シミュレーション管理ノードおよびシミュレータアクセス機構を提供し得、これらを介して、シミュレーション実行が、必要に応じて様々な条件下で運営され得る。例えば、シミュレーション管理ノードは、図５のＶＭＮ３００の実施形態を使用して実装されてもよく、シミュレータアクセス機構は、アプリケーションプログラミングインターフェース（ＡＰＩ）、関数、サービス、および／または図５のシミュレータＡＰＩ３１０などの、ユーザおよび／または他のアプリケーションにとってアクセス可能かつ公開される別のタイプの機構を使用することによって実装され得る。方法４００は、例えば、特定のシミュレートされたノードを含むシミュレーション実行の実行中に利用される１つ以上のシミュレートされた値を提供および／または受信するために、シミュレータアクセス機構を利用することを含み得る。追加的または代替的に、方法４００は、例えば、ユーザによって、および／または他のアプリケーション（例えば、産業プロセス制御システムおよび／もしくはプラントと関連付けられるか、もしくはそれらを提供する企業と関連付けられたＯＴ層アプリケーション、ならびに／またはサードパーティアプリケーション）によって提供されるような、１つ以上のシミュレーション実行および／または運営コマンドに関して動作するシミュレータアクセス機構を利用することを含み得る。例えば、方法４００は、シミュレータアクセス機構を利用して、上記のように、あるランタイムペースでシミュレーション実行を実行すること、シミュレーション実行を高速化して、ランタイムペースよりも速く実行すること、シミュレーション実行を低速化して、ランタイムペースよりも遅く実行すること、シミュレーション実行のシミュレートされた値を設定すること、シミュレーション実行の初期条件を設定すること、シミュレーション実行を一時停止すること、シミュレーション実行の中間条件を設定すること、シミュレーションの実行のペースを変更すること、シミュレーション実行と関連付けられたシミュレートされた値を変更すること、シミュレーション実行の少なくとも一部分と関連付けられたデータを保存もしくは記憶すること、保存もしく記憶されたシミュレーション実行の少なくとも一部分を検索すること、シミュレーション実行の構成を保存もしくは記憶すること、保存もしくは記憶されたシミュレーション実行の構成を検索すること、および／または同様のことを行うことを含む。
【０１２３】
一実施形態では、シミュレータアクセス機構は、シミュレーション実行と関連付けられた１つ以上の状態を維持し得る。１つ以上の状態は、シミュレーション実行の様々な１つ以上の部分、ならびに／またはそれと関連付けられた構成要素および／もしくはデバイスとそれぞれ関連付けられ得る。例えば、１つ以上の状態は、上記のように、仮想構成要素の状態、物理構成要素の状態、シミュレートされた構成要素の状態、仮想デバイスの状態、物理デバイスの状態、シミュレートされたデバイスの状態、仮想モジュールの状態、物理モジュールの状態、シミュレートされたモジュールの状態、シミュレーション実行によって少なくとも部分的にシミュレートされているプロセスの状態、シミュレーション実行の状態、および／またはシミュレーション実行と関連付けられた別のタイプの状態に対応し得る。
【０１２４】
したがって、以上のことから、動的シミュレーションおよびランタイム制御プラットフォーム１０のための新規の多目的プラットフォームは、既知のプロセス制御システムに対して多くの利益および利点を提供する。例えば、ＭＰＤＳＣプラットフォーム１０は、仮想構成要素を介してシミュレーションおよびランタイム制御の両方をサポートするため、変更（例えば、アップグレード、パッチなど）の試験が、シミュレートされた構成要素を介して仮想環境１２で実行され得、良好な検査の際、シミュレートされた構成要素は、プロセスプラント１００の仮想構成要素として容易にアクティブ化され得る（例えば、「読み込み、評価、実行」のバンプレスまたはウォームスイッチオーバなど）。したがって、ランタイム構成要素へのシミュレートされた構成要素のスイッチオーバは、より容易に達成され、アップグレード、パッチ、および計画された保守に起因するダウンタイムが短縮される。さらに、様々な構成要素の仮想化されたホットスペアを提供し、障害またはエラーシナリオ中に仮想化されたホットスペアをオンラインにするために利用されるリソース量もまた、大幅に低減される。
【０１２５】
さらに、ＭＰＤＳプラットフォーム１０によるランタイム仮想構成要素の提供は、プラント１００内のハードウェアとソフトウェアとの間の独立性を可能にする。例えば、プロセス制御システム１００のランタイム中に利用されるコントローラソフトウェアは、任意の物理コントローラハードウェアをアップグレードまたは変更することを必要とせずに、ランタイム仮想コントローラ内でアップグレードされ得る。同様に、ハードウェア／ソフトウェアの独立性に起因して、ＭＰＤＳプラットフォーム１０は、プロセスプラント１００のハードウェアがソフトウェアアップグレードとは無関係にアップグレードされることを可能にする。
【０１２６】
なお、ランタイム仮想構成要素の提供ならびにその運営および／または管理（例えば、ＭＰＤＳＣプラットフォーム１０のＶＭＳ３００を介した）はまた、異なる物理ハードウェア構成要素および必要とされるキャビネット、配線などを設置、試験、試運転、および検査に対する支払いを必要とせずに、追加の仮想構成要素が仮想環境１２内に容易に実装され得るため、容易かつ低コストであるシステム拡張性を可能にする。実際、追加の仮想構成要素がシステム１００をサポートするために必要とされるとき、仮想構成要素は、仮想構成要素１２が実装される物理コンピューティングデバイスおよび／またはハードウェアの処理および／またはメモリ制限まで、必要に応じて作成され得、その後、追加の物理コンピューティングデバイスおよび／またはハードウェアが、単純にそれに追加され得る。
【０１２７】
ＭＰＤＳプラットフォーム１０によって提供される仮想環境１２は、例えば、試験、ホットスペア、アップグレード、パッチ、計画された保守、および／または他の目的のために、様々な構成要素のデジタル対および／またはプロセスプラント１００全体の仮想シミュレーションの作成を可能にする。デジタル対（例えば、特定の構成要素およびプロセスプラント１００全体の）は、それらのそれぞれの特定の物理構成要素への更新を伴うロックステップで更新され得る。つまり、状態情報は、ＭＰＤＳＣプラットフォーム１０を介して、物理ノードから仮想ノードに渡され得る。実際、ＭＰＤＳＣプラットフォーム１０は、変更および／または異なるシナリオ（例えば、「ｗｈａｔ−ｉｆ」シナリオ）の強化されたオンライン試験を提供し、いくつかの状況では、プロセスプラント１００のランタイム仮想および／または物理構成要素と連携して提供する。共通ＭＰＤＳプラットフォーム１０（および、特に、ＭＰＤＳプラットフォーム１０の仮想環境１２）がシミュレーションおよびランタイム制御の両方の目的でアーキテクチャ化および利用されることに起因して、オフシミュレーションは、いかなる構成変更もなしで容易に達成される。
【０１２８】
なおさらに、ＭＰＤＳプラットフォーム１０が、特定のハードウェアと具体的に直接関連付けられることから離れてプロセスプラント１００のＩ／Ｏを抽象化するため、プラント１００内のＩ／Ｏ構成は、より柔軟であり、ランタイム中のみならず、アップグレード、保守、障害などの間でも、容易に変更および適応される。重要なことに、Ｉ／Ｏデバイスと他の構成要素（例えば、ＣＩＯＣおよびコントローラ）との間の通信接続は、物理Ｉ／Ｏデバイス上で利用可能である物理ポートによってもはや制限されない。Ｉ／Ｏが、ＭＰＤＳプラットフォーム１０内で抽象化され、仮想Ｉ／Ｏデバイスと他の構成要素との間の任意の数の通信接続が、仮想環境１２が実装される物理コンピューティングデバイスおよび／またはハードウェアの処理および／またはメモリ制限まで、論理的に可能であり、その後、追加の物理コンピューティングデバイスおよび／またはハードウェアが、単純にそれに追加され得る。同様に、ＭＰＤＳプラットフォーム１０内のＩ／Ｏの抽象化に起因して、制御モジュールおよび／または他のＣＢＭ５８は、物理ホストデバイスまたは構成要素を利用するときに必要であるＩ／Ｏ場所および／またはホストデバイスもしくは構成要素の読み込みを気にすることなく、任意の仮想ホストデバイスまたは構成要素に割り当てられ得る。つまり、上述のように、仮想構成要素（シミュレーションまたはランタイム制御目的で利用されるかどうかにかかわらず）は、物理構成要素から、または他の仮想構成要素からのＩ／Ｏを利用して動作し得る。したがって、ＭＰＤＳプラットフォーム１０は、冗長性、再試行、および現在知られている技術の特定の実装に現在結び付けられている他の機構を抽象化することができ（例えば、Ｉ／Ｏスイッチ２５を利用することによって）、その結果、抽象化は、例えば、特定の実装および／またはアプリケーションのための様々な抽象化の選択されたカスタム化および専用化を伴う、複数の異なるタイプのアプリケーション、シナリオ、および実装にわたって利用され得る。その結果、ＭＰＤＳプラットフォーム１０は、より多くの数およびタイプのＩ／Ｏシステム（現在知られている技術と比較して）を、一貫して容易に拡縮可能な様式でサポートすることができる。
【０１２９】
ソフトウェアに実装されるとき、本明細書に説明されるアプリケーション、サービス、仮想デバイス、仮想マシン、仮想実体などは、磁気ディスク、レーザディスク、固体メモリデバイス、分子メモリストレージデバイス、または他の記憶媒体上、コンピュータまたはプロセッサのＲＡＭまたはＲＯＭ内などの、任意の有形の非一時的コンピュータ可読メモリ内に記憶され得る。本明細書に開示される例示的なシステムは、他の構成要素の中でも、ハードウェア上で実行されるソフトウェアおよび／またはファームウェアを含むように開示されているが、そのようなシステムは、単に例示的であるに過ぎず、限定的であるとみなされるべきではないことに留意されたい。例えば、これらのハードウェア、ソフトウェア、およびファームウェア構成要素のうちのいずれかまたは全てが、ハードウェアにのみ、ソフトウェアにのみ、あるいはハードウェアおよびソフトウェアの任意の組み合わせで、埋め込まれ得ることが企図される。したがって、本明細書に記載される例示的なシステムは、１つ以上のコンピュータデバイスのプロセッサで実行されるソフトウェアで実装されるものとして記載されているが、提供される例がかかるシステムを実装する唯一の方法ではないことを当業者は容易に理解するであろう。
【０１３０】
したがって、本発明は具体的な例に関して記載されてきたが、これらの例は例解的であるに過ぎず、本発明の限定であることを意図せず、変更、追加、または削除が、本発明の趣旨および範囲から逸脱することなく、開示される実施形態に対して行われ得ることが当業者には明らかであろう。
【図１】
2020201949.tif 000003
【図２】
2020201949.tif 000004
【図３】
2020201949.tif 000005
【図４】
2020201949.tif 000006
【図５】
2020201949.tif 000007
【図６】
2020201949.tif 000008
【外国語明細書】
2020201949000001.pdf