IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ フィッシャー−ローズマウント システムズ,インコーポレイテッドの特許一覧

特許7483511プロセス制御システム内でリアルタイム制御を実行する仮想ノードの自動負荷分散および性能平準化
<>
  • 特許-プロセス制御システム内でリアルタイム制御を実行する仮想ノードの自動負荷分散および性能平準化 図1
  • 特許-プロセス制御システム内でリアルタイム制御を実行する仮想ノードの自動負荷分散および性能平準化 図2
  • 特許-プロセス制御システム内でリアルタイム制御を実行する仮想ノードの自動負荷分散および性能平準化 図3
  • 特許-プロセス制御システム内でリアルタイム制御を実行する仮想ノードの自動負荷分散および性能平準化 図4
  • 特許-プロセス制御システム内でリアルタイム制御を実行する仮想ノードの自動負荷分散および性能平準化 図5
  • 特許-プロセス制御システム内でリアルタイム制御を実行する仮想ノードの自動負荷分散および性能平準化 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-07
(45)【発行日】2024-05-15
(54)【発明の名称】プロセス制御システム内でリアルタイム制御を実行する仮想ノードの自動負荷分散および性能平準化
(51)【国際特許分類】
   G05B 23/02 20060101AFI20240508BHJP
【FI】
G05B23/02 Z
G05B23/02 G
【請求項の数】 42
【外国語出願】
(21)【出願番号】P 2020097855
(22)【出願日】2020-06-04
(65)【公開番号】P2020201953
(43)【公開日】2020-12-17
【審査請求日】2023-03-24
(31)【優先権主張番号】62/859,508
(32)【優先日】2019-06-10
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/874,216
(32)【優先日】2020-05-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】512132022
【氏名又は名称】フィッシャー-ローズマウント システムズ,インコーポレイテッド
(74)【代理人】
【識別番号】100096091
【弁理士】
【氏名又は名称】井上 誠一
(72)【発明者】
【氏名】マーク・ジェイ・ニクソン
(72)【発明者】
【氏名】アンソニー・ジュニア・アマロ
(72)【発明者】
【氏名】ノエル・ハワード・ベル
(72)【発明者】
【氏名】ジョン・エム・コールドウェル
(72)【発明者】
【氏名】ギャリー・ケイ・ロー
【審査官】田中 友章
(56)【参考文献】
【文献】特開2013-041596(JP,A)
【文献】特開2016-109806(JP,A)
【文献】国際公開第2018/092300(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
産業プロセスプラントのシステムであって、
前記産業プロセスプラントの仮想環境内に配設され仮想プラットフォームに実装された複数の仮想ノードを備え、前記複数の仮想ノードが、前記産業プロセスプラントのランタイム動作中に、I/Oスイッチにデータをパブリッシュし、前記I/Oスイッチによってパブリッシュされたデータをサブスクライブすることによって産業プロセスを制御するように動作し、前記I/Oスイッチが、前記産業プロセスプラントの物理的環境内に配設された複数の物理ノードに前記複数の仮想ノードを通信可能に接続し、前記複数の物理ノードが、少なくとも1つのフィールドデバイスを含み、前記複数の物理ノードが、前記産業プロセスプラントの前記ランタイム動作中に、前記I/Oスイッチを介して前記複数の仮想ノードにデータを送信すると共に前記複数の仮想ノードからデータを受信することによって前記産業プロセスを制御するように動作し、
前記複数の仮想ノードが、(i)前記産業プロセスを制御するために前記産業プロセスプラントの前記物理的環境内に配備可能である1つ以上の物理構成要素、または(ii)前記1つ以上の物理構成要素のうちの1つ以上の副構成要素、のうちの少なくとも1つを仮想化する、システムであり、
前記複数の仮想ノードの各仮想ノードが、それぞれ少なくとも1つの構成要素挙動モジュールを含み、前記それぞれ少なくとも1つの構成要素挙動モジュールが、それぞれ1つ以上のサブスクリプションを介して前記I/Oスイッチから受信された第1のデータの内容に関して動作して、第2のデータを生成し、別のプロセス制御構成要素への配信のために前記第2のデータを前記I/Oスイッチにパブリッシュし、それによって、前記産業プロセスのそれぞれ少なくとも一部分を制御し、
前記I/Oスイッチによってパブリッシュされた前記データに対する前記複数の仮想ノードの複数のサブスクリプションが、複数のI/O割り当ての第1の部分に対応し、
前記複数の仮想ノードによる、前記I/Oスイッチに対する前記データの複数のパブリケーションが、前記複数のI/O割り当ての第2の部分に対応する、システム
【請求項2】
前記仮想化プラットフォームは、1つ以上のプロセッサおよび1つ以上の有形メモリを有する1つ以上の相互接続されたコンピューティングデバイスを有し、前記1つ以上のプロセッサが、前記1つ以上の有形メモリ上に記憶されたコンピュータ実行可能命令を実行して、前記複数の仮想ノードを提供する、請求項1に記載のシステム。
【請求項3】
前記仮想化プラットフォームの負荷が、前記複数のI/O割り当てに基づいて、前記複数の仮想ノードにわたって分散される、請求項に記載のシステム。
【請求項4】
前記仮想化プラットフォームの前記負荷が、構成された境界条件にさらに基づいて分散される、請求項に記載のシステム。
【請求項5】
前記仮想化プラットフォームの前記負荷の前記分散が、異なる仮想ノードに対する前記複数のI/O割り当ての少なくとも一部分の再割り当てを含む、請求項請求項3または請求項4に記載のシステム。
【請求項6】
前記仮想化プラットフォームの前記負荷の前記分散が、前記仮想化プラットフォーム上に実装された前記複数のノードからの特定の仮想ノードの除去、または前記仮想化プラットフォーム上に実装される追加の仮想ノードの作成、のうちの1つを含む、請求項3~5のいずれか一項に記載のシステム。
【請求項7】
前記仮想化プラットフォームの前記負荷が、ソフトウェアリソース負荷またはハードウェアリソース負荷のうちの少なくとも1つを含む、請求項3~6のいずれか一項に記載のシステム。
【請求項8】
前記負荷が、メモリリソース負荷またはトラフィック負荷のうちの少なくとも1つを含む、請求項3~7のいずれか一項に記載のシステム。
【請求項9】
前記複数の仮想ノードに対応する性能レベルが、前記複数のI/O割り当てに基づいて前記仮想化プラットフォームで分散される、請求項2~8のいずれか一項に記載のシステム。
【請求項10】
前記複数の仮想ノードに対応する前記性能レベルが、構成された境界条件にさらに基づいて分散される、請求項に記載のシステム。
【請求項11】
前記複数の仮想ノードに対応する性能レベルの前記分散が、異なる仮想ノードに対する前記複数のI/O割り当ての少なくとも一部分の再割り当てを含む、請求項または10に記載のシステム。
【請求項12】
前記複数の仮想ノードに対応する性能レベルの分散が、前記仮想化プラットフォーム上に実装された前記複数のノードからの特定の仮想ノードの除去、または前記仮想化プラットフォーム上に実装された追加の仮想ノードの作成、のうちの1つを含む、請求項9~11のいずれか一項に記載のシステム。
【請求項13】
前記複数の仮想ノードに対応する性能レベルの前記分散が、前記複数の仮想ノードが実装される前記仮想化プラットフォームの前記1つ以上のプロセッサの利用の分散を含む、請求項9~12のいずれか一項に記載のシステム。
【請求項14】
前記複数の仮想ノードに対応する性能レベルの前記分散が、前記複数の仮想ノードが実装される前記仮想化プラットフォームの前記1つ以上の相互接続されたコンピューティングデバイスの利用の分散を含む、請求項9~13のいずれか一項に記載のシステム。
【請求項15】
前記複数の仮想ノードに対応する性能レベルの前記負荷が、前記複数の仮想ノードが実装される前記仮想化プラットフォームの前記1つ以上の相互接続されたコンピューティングデバイスを相互接続する、ネットワークまたは1つ以上のリンクのうちの少なくとも1つの利用の分散を含む、請求項9~14のいずれか一項に記載のシステム。
【請求項16】
前記仮想化プラットフォームの前記負荷の前記分散または前記複数の仮想ノードに対応する前記性能レベルの前記分散のうちの少なくとも1つが、いかなるインラインユーザ入力もなしで自動的に実施される、請求項3~15のいずれか一項に記載のシステム。
【請求項17】
仮想化管理ノードをさらに備え、前記仮想化管理ノードが、前記仮想環境内で、前記複数の前記仮想ノードに通信可能に接続され、前記仮想化プラットフォームの前記負荷の前記分散、または前記仮想化プラットフォームの1つ以上の検出および/または予測された条件に基づく前記複数の仮想ノードに対応する前記性能レベルの前記分散を自動的に実施する、請求項3~16のいずれか一項に記載のシステム。
【請求項18】
前記仮想化プラットフォームの前記1つ以上の検出および/または予測された条件が、第1の障害の検出された発生または第2の障害の予測された発生のうちの少なくとも1つを含む、請求項17に記載のシステム。
【請求項19】
前記仮想化プラットフォームの初期化または試運転のうちの少なくとも1つの際、前記仮想化管理ノードが、前記複数のI/O割り当てに基づいて前記複数の仮想ノードを作成し、前記複数のI/O割り当てが、前記産業プロセスプラントの1つ以上のシステム構成データベースに基づいて決定される、請求項17または18に記載のシステム。
【請求項20】
前記仮想化管理ノードが、前記仮想化プラットフォームの前記初期化または前記試運転のうちの前記少なくとも1つの際の前記1つ以上のシステム構成データベースに基づいて前記複数のI/O割り当てをさらに決定する、請求項19に記載のシステム。
【請求項21】
産業プロセスプラントにおける方法であって、
前記産業プロセスプラントのランタイム動作中、
プロセス制御システムの複数の仮想ノードが実装される仮想化プラットフォームで発生する1つ以上の条件を検出および/または予測することであって、前記1つ以上の条件は、前記複数の仮想ノードが、I/Oスイッチにデータをパブリッシュし、かつ前記I/Oスイッチによってパブリッシュされたデータをサブスクライブすることによって産業プロセスを制御するように動作している間に発生し、前記複数の仮想ノードが、前記産業プロセスプラントの仮想環境内に配設され、前記I/Oスイッチが、前記プロセス制御システム内に含まれ、前記プロセス制御システムの複数の物理ノードに前記複数の仮想ノードを通信可能に接続し、前記複数の物理ノードが、前記産業プロセスプラントの物理的環境内に配設され、少なくとも1つのフィールドデバイスを含み、前記複数の物理ノードが、前記産業プロセスプラントの前記ランタイム動作中、前記I/Oスイッチを介して前記複数の仮想ノードにデータを送信すると共に前記複数の仮想ノードからデータを受信することによって前記産業プロセスを制御するように動作する、検出および/または予測することと、
前記検出および/または予測された1つ以上の条件に基づいて、前記複数の仮想ノードに対応する負荷または性能レベルのうちの少なくとも1つを分散させることと、を含む、方法。
【請求項22】
前記複数の仮想ノードの各仮想ノードが、それぞれ少なくとも1つの構成要素挙動モジュールを含み、前記それぞれ少なくとも1つの構成要素挙動モジュールが、それぞれ1つ以上のサブスクリプションを介して前記I/Oスイッチから受信された第1のデータの内容に関して動作して、第2のデータを生成し、別のプロセス制御構成要素への配信のために前記第2のデータの内容を前記I/Oスイッチにパブリッシュし、それによって、前記産業プロセスのそれぞれ少なくとも一部分を制御する、請求項21に記載の方法。
【請求項23】
前記仮想化プラットフォームが、1つ以上のプロセッサおよび1つ以上の有形メモリを有する1つ以上の相互接続されたコンピューティングデバイスを備え、前記1つ以上のプロセッサが、前記1つ以上の有形メモリ上に記憶されたコンピュータ実行可能命令を実行して、前記複数の仮想ノードを提供し、
前記I/Oスイッチによってパブリッシュされた前記データに対する前記複数の仮想ノードの複数のサブスクリプションが、複数のI/O割り当ての第1の部分に対応し、
前記複数の仮想ノードによる、前記I/Oスイッチに対する前記データの複数のパブリケーションが、前記複数のI/O割り当ての第2の部分に対応する、請求項21または22に記載の方法。
【請求項24】
前記複数の仮想ノードに対応する前記負荷または前記性能レベルのうちの前記少なくとも1つを分散させることが、前記複数のI/O割り当てに基づく、請求項23に記載の方法。
【請求項25】
前記複数の仮想ノードに対応する前記負荷または前記性能レベルのうちの前記少なくとも1つを分散させることが、構成された境界条件にさらに基づく、請求項24に記載の方法。
【請求項26】
ユーザインターフェースを介して、前記構成された境界条件に対する変化を受信することと、
前記構成された境界条件に対する前記変化に基づいて、前記複数の仮想ノードに対応する前記負荷または前記性能レベルのうちの前記少なくとも1つを再分散させることと、をさらに含む、請求項25に記載の方法。
【請求項27】
前記複数の仮想ノードに対応する前記負荷または前記性能レベルのうちの前記少なくとも1つを分散させることが、前記複数のI/O割り当ての少なくとも一部分を異なる仮想ノードに再割り当てすることを含む、請求項23~26のいずれか一項に記載の方法。
【請求項28】
前記複数の仮想ノードに対応する前記負荷または前記性能レベルのうちの前記少なくとも1つを分散させることが、前記仮想化プラットフォーム上に実装された前記複数のノードから特定の仮想ノードを除去すること、または前記仮想化プラットフォーム上に実装される追加の仮想ノードを作成すること、のうちの1つを含む、請求項21~27のいずれか一項に記載の方法。
【請求項29】
前記複数の仮想ノードに対応する前記負荷または前記性能レベルのうちの前記少なくとも1つを分散させることが、前記仮想化プラットフォームの1つまたは構成要素のソフトウェアリソース負荷またはハードウェアリソース負荷のうちの少なくとも1つを調整することを含む、請求項21~28のいずれか一項に記載の方法。
【請求項30】
前記複数の仮想ノードに対応する前記負荷または前記性能レベルのうちの前記少なくとも1つを分散させることが、前記仮想化プラットフォームの1つ以上の構成要素のメモリリソース負荷またはトラフィック負荷のうちの少なくとも1つを調整することを含む、請求項21~29のいずれか一項に記載の方法。
【請求項31】
前記複数の仮想ノードに対応する前記負荷または前記性能レベルのうちの前記少なくとも1つを前記分散させることが、前記複数の仮想ノードが実装される前記仮想化プラットフォームの1つ以上のプロセッサの利用を調整することを含む、請求項21~30のいずれか一項に記載の方法。
【請求項32】
前記複数の仮想ノードに対応する前記負荷または前記性能レベルのうちの前記少なくとも1つを分散させることが、前記複数の仮想ノードが実装される前記仮想化プラットフォームの1つ以上の相互接続されたコンピューティングデバイスの利用を調整することを含む、請求項21~31のいずれか一項に記載の方法。
【請求項33】
前記複数の仮想ノードに対応する前記負荷または前記性能レベルのうちの前記少なくとも1つを分散させることが、前記仮想ノードが実装される前記仮想化プラットフォームの1つ以上の相互接続されたコンピューティングデバイスを相互接続する、ネットワークまたは1つ以上のリンクのうちの少なくとも1つの利用を調整することを含む、請求項21~32のいずれか一項に記載の方法。
【請求項34】
前記複数の仮想ノードに対応する前記負荷または前記性能レベルのうちの少なくとも1つを分散させることが、いかなるインラインユーザ入力もなしで自動的に実施される、請求項21~33のいずれか一項に記載の方法。
【請求項35】
前記プロセス制御システムが、前記仮想環境内で前記複数の前記仮想ノードに通信可能に接続される仮想化管理ノードをさらに含み、
前記1つ以上の条件を検出することが、前記仮想化管理ノードによって、前記1つ以上の条件のうちの少なくとも1つを検出することを含むか、
前記1つ以上の条件を予測することが、前記仮想化管理ノードによって、前記1つ以上の条件のうちの少なくとも1つを予測することを含むか、
前記複数の仮想ノードに対応する前記負荷を分散させることが、前記仮想化管理ノードによって、前記複数の仮想ノードに対応する前記負荷の少なくとも一部分を分散させることを含むか、または
前記複数の仮想ノードに対応する前記性能レベルを分散させることが、前記仮想化管理ノードによって、前記複数の仮想ノードに対応する前記性能レベルの少なくとも一部分を分散させることを含むか、のうちの少なくとも1つである、請求項21~34のいずれか一項に記載の方法。
【請求項36】
前記1つ以上の条件を検出することが、前記複数の仮想ノードのうちの1つ以上の仮想ノードによって、前記1つ以上の条件のうちの少なくとも1つを検出することを含むか、
前記1つ以上の条件を予測することが、前記複数の仮想ノードのうちの1つ以上の仮想ノードによって、前記1つ以上の条件のうちの少なくとも1つを予測することを含むか、
前記複数の仮想ノードに対応する前記負荷を分散させることが、前記複数の仮想ノードのうちの前記1つ以上の仮想ノードによって、前記複数の仮想ノードに対応する前記負荷の少なくとも一部分を分散させることを含むか、または
前記複数の仮想ノードに対応する前記性能レベルを分散させることが、前記複数の仮想ノードのうちの前記1つ以上の仮想ノードによって、前記複数の仮想ノードに対応する前記性能レベルの少なくとも一部分を分散させることを含むか、のうちの少なくとも1つである、請求項21~35のいずれか一項に記載の方法。
【請求項37】
前記仮想化プラットフォームで発生する前記1つ以上の条件を検出および/または予測することが、障害の発生を検出することを含む、請求項21~36のいずれか一項に記載の方法。
【請求項38】
前記仮想化プラットフォームで発生する前記1つ以上の条件を検出および/または予測することが、障害の発生を予測することを含む、請求項21~37のいずれか一項に記載の方法。
【請求項39】
前記仮想化プラットフォームで発生する前記1つ以上の条件を検出および/または予測することが、前記仮想化プラットフォームの性能の変化の発生を検出することを含む、請求項21~38のいずれか一項に記載の方法。
【請求項40】
前記仮想化プラットフォームで発生する前記1つ以上の条件を検出および/または予測することが、前記仮想化プラットフォームの性能の変化の発生を予測することを含む、請求項21~39のいずれか一項に記載の方法。
【請求項41】
前記仮想化プラットフォームの初期化または試運転のうちの少なくとも1つの際、
前記プロセス制御システムによって、前記複数のI/O割り当てに基づいて前記複数の仮想ノードを作成することと、
前記複数の仮想ノード間で前記複数のI/O割り当てを分散させることであって、前記複数のI/O割り当てが、前記産業プロセスプラントの1つ以上のシステム構成データベースに基づいて決定される、分散させることと、をさらに含む、請求項21~40のいずれか一項に記載の方法。
【請求項42】
請求項1~41のいずれか一項と請求項1~41のいずれか他の一項との組み合わせ。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、「Industrial Control System Architecture for Real-Time Simulation and Control」と題する2019年6月10日出願の米国仮特許出願第62/859,508号に対する優先権および出願日の利益を主張し、その開示全体が参照により本明細書に明示的に組み込まれる。
【0002】
本特許出願は、概して、産業およびプロセス制御システムに関し、より具体的には、仮想化された構成要素を使用してプロセス制御および/またはランタイムの実際のプロセス制御のシミュレーションを提供する産業制御システムに関する。
【背景技術】
【0003】
材料から物的生産物を生産する化学、石油、または他の産業プロセスプラントで使用されるものなどのプロセスまたは産業制御システムは、典型的には、アナログ、デジタルもしくは組み合わされたアナログ/デジタルバスを介して、または無線通信リンクもしくはネットワークを介して、1つ以上のフィールドデバイスに通信可能に連結される1つ以上のプロセスコントローラを含む。例えば、バルブ、バルブポジショナ、スイッチ、および送信機(例えば、温度、圧力、レベル、および流量センサ)であり得るフィールドデバイスは、プロセス環境内に位置し、概して、バルブの開閉、プロセスパラメータの測定などの物理またはプロセス制御機能を実施して、プロセスプラントまたはシステム内で実行している1つ以上のプロセスを制御する。周知のFOUNDATION(登録商標)フィールドバスプロトコルに適合するフィールドデバイスなどのスマートフィールドデバイスはまた、制御計算、警告機能、およびコントローラ内で一般に実装される他の制御機能も実施し得る。中央に位置し得るが、分散様式でプラント環境内にも位置し得るプロセスコントローラは、フィールドデバイスによって行われるプロセス測定を指示する信号および/またはフィールドデバイスに関する他の情報を受信し、例えば、プロセス制御判断を行い、受信した情報に基づき制御信号を発生させ、HART(登録商標)、WirelessHART(登録商標)、およびFOUNDATION(登録商標)フィールドバスフィールドデバイスなどの、フィールドデバイスで実施される制御モジュールまたはブロックと連携する、異なる制御モジュールを作動させるコントローラアプリケーションを実行する。コントローラ内の制御モジュールは、通信ラインまたはリンクを経由して、フィールドデバイスに制御信号を送信し、それによって、プロセスプラントまたはシステムの少なくとも一部分の動作を制御する。
【0004】
フィールドデバイスおよびコントローラからの情報は、制御室もしくはより厳しいプラント環境から離れた他の場所に典型的に配置される、オペレータワークステーション、パーソナルコンピュータもしくはコンピューティングデバイス、データヒストリアン、レポートジェネレータ、集中データベース、または他の集中管理コンピューティングデバイスなどの1つ以上の他のハードウェアデバイスに対して、通常、データハイウェイを通じてコントローラから利用可能にされる。これらのハードウェアデバイスの各々は、典型的には、プロセスプラントにわたって、またはプロセスプラントの一部分にわたって集中化される。これらのハードウェアデバイスは、例えば、エンジニアがプロセスの一部分を構成すること、またはオペレータが、プロセス制御ルーチンの設定の変更、コントローラもしくはフィールドデバイス内の制御モジュールの動作の変更、プロセスの現在の状態の視認、フィールドデバイスおよびコントローラによって発生した警報の視認、担当者の訓練もしくはプロセス制御ソフトウェアの試験を目的としたプロセスの動作のシミュレーション、構成データベースの維持および更新などの、プロセスの制御および/またはプロセスプラントの動作に関する機能を実施することを可能にし得るアプリケーションを実行する。ハードウェアデバイス、コントローラおよびフィールドデバイスによって利用されるデータハイウェイは、有線通信経路、無線通信経路、または有線もしくは無線通信経路の組み合わせを含み得る。
【0005】
例として、Emerson Process Managementによって販売されているDeltaV(商標)制御システムは、プロセスプラント内の多様な場所に位置付けられている異なるデバイス内に記憶され、それら異なるデバイスによって実行される複数のアプリケーションを含む。1つ以上のワークステーションまたはコンピューティングデバイス内に備わる構成アプリケーションは、ユーザによる、プロセス制御モジュールの作成または変更、およびデータハイウェイを経由した、これらのプロセス制御モジュールの、専用分散型コントローラへのダウンロードを可能にする。典型的には、これらの制御モジュールは、通信可能に相互接続された機能ブロックで構成され、これらの機能ブロックは、それに対する入力に基づき制御スキーム内で機能を実施し、出力を制御スキーム内の他の機能ブロックに提供するオブジェクト指向プログラミングプロトコル内のオブジェクトである。また、構成アプリケーションは、データをオペレータに対して表示するため、かつオペレータによるプロセス制御ルーチン内の設定点などの設定の変更を可能にするために視認アプリケーションが使用するオペレータインターフェースを、構成設計者が作成または変更することを可能にし得る。各専用コントローラ、およびいくつかの場合においては、1つ以上のフィールドデバイスは、実際のプロセス制御機能を実装するために、それらに割り当てられてダウンロードされた制御モジュールを作動させるそれぞれのコントローラアプリケーションを記憶および実行する。視認アプリケーションは、1つ以上のオペレータワークステーション(またはオペレータワークステーションおよびデータハイウェイと通信可能に接続された1つ以上のリモートコンピューティングデバイス)上で実行され得、この視認アプリケーションは、コントローラアプリケーションからデータハイウェイを経由してデータを受信し、ユーザインターフェースを使用してこのデータをプロセス制御システム設計者、オペレータ、またはユーザに表示して、オペレータのビュー、エンジニアのビュー、技師のビューなどのいくつかの異なるビューのうちのいずれかを提供し得る。データヒストリアンアプリケーションが、典型的には、データハイウェイにわたって提供されたデータの一部または全てを収集および記憶するデータヒストリアンデバイスに記憶され、それによって実行される一方で、構成データベースアプリケーションが、現在のプロセス制御ルーチン構成およびそれと関連付けられたデータを記憶するために、データハイウェイに取り付けられたなおさらに離れたコンピュータで作動され得る。代替的に、構成データベースは、構成アプリケーションと同じワークステーション内に位置し得る。
【0006】
現在知られているプロセス制御プラントおよびプロセス制御システムのアーキテクチャは、制限されたコントローラおよびデバイスのメモリ、通信帯域幅、ならびにコントローラおよびデバイスのプロセッサ能力の影響を強く受ける。例えば、現在知られているプロセス制御システムアーキテクチャでは、コントローラでの動的および静的不揮発性メモリの使用は、通常、最小限に抑えられるか、または少なくとも慎重に管理される。その結果、システム構成中(例えば、先験的)に、ユーザまたは構成エンジニアは、典型的には、コントローラ内のどのデータがアーカイブまたは保存されるべきか、それが保存されることになる頻度、および圧縮が使用されるか否か、を選択しなければならず、したがって、コントローラは、この制限されたデータ規則セットで構成される。そのため、トラブルシューティングおよびプロセス分析に有用であり得るデータはアーカイブされないことが多く、収集された場合、データ圧縮により有用な情報が失われた可能性がある。
【0007】
さらに、現在知られているプロセス制御システムでコントローラのメモリ使用量を最小限に抑えるために、(コントローラの構成によって指示されるときに)アーカイブまたは保存されるように選択されたデータが、適切なデータヒストリアンまたはデータサイロでのストレージ用にサイロワークステーションまたはコンピューティングデバイスにレポートされる。データをレポートするために使用される現在の技法は、通信リソースを十分に利用せず、過剰なコントローラの負荷を誘発する。さらに、ヒストリアンまたはサイロでの通信およびサンプリングの時間遅延により、データ収集およびタイムスタンプが実際のプロセスと同期していないことがよくある。
【0008】
同様に、バッチプロセス制御システムでは、コントローラのメモリ使用量を最小限に抑えるために、コントローラ構成のバッチレシピおよびスナップショットは、典型的には、集中管理コンピューティングデバイスまたは(例えば、データサイロもしくはヒストリアン)の場所に記憶されたままであり、必要な場合にのみコントローラに転送される。かかる戦略は、コントローラに、およびワークステーションまたは集中管理コンピューティングデバイスとコントローラとの間の通信に、著しいバースト負荷をもたらす。
【0009】
さらに、プロセス制御システムなどの産業制御システムの現在のアーキテクチャは、制御機能、入力/出力(I/O)機能、ユーザインターフェース機能などの様々な機能が、ハードウェア(例えば、ユーザワークステーションまたはインターフェースデバイス、プロセスコントローラ、安全システムコントローラ、専用I/Oデバイス、マーシャリングされたI/Oデバイス、フィールドデバイス、安全ロジックソルバなど)の特定の部分で実施され、それらに結び付けられており、常に特定のハードウェア内に記憶されたままである点で、主にハードウェア駆動である。例えば、現在のプロセス制御システムでは、コントローラとI/Oデバイス(例えば、個々のI/Oデバイス、またはマーシャリングされたI/Oデバイスのバンクのいずれか)との間の相互接続は、特定のハードウェアに基づいて構成され、その結果として、物理I/O関係が、堅固に結合され、最も一般的には、一対一の様式、例えば、I/Oデバイスがコントローラに、別のI/Oデバイスが別のコントローラに、などで結合される。このアーキテクチャ設計は、これらのシステムが迅速に変化または再構成することが困難であり、独自の制御ソフトウェアを実装するために使用される独自のハードウェアに堅固に結び付けられ、実装が高価であり得るデバイスベースによるデバイスに関するハードウェア冗長性を必要とし、かつ、例えば、物理プロセスコントローラ、I/Oデバイスの特定の特性および能力などの個々のデバイスのサイズ制限に起因して、特定の様式で構成されることを必要とする追加のハードウェアを追加せずに、容易に拡張可能ではないか、またはアップグレードされることができないため、制御システムの復元性、信頼性、可用性、応答性、および順応性を制限する。
【0010】
これらの問題に対処するいくつかの試みとしては、物理コントローラを仮想化することが挙げられるが、コントローラの仮想化は、オフライン開発および試験システムに制限されており、物理プラントおよび/または生産環境でのランタイムプロセス制御に、利用されていたとしても、それほど広く利用されていなかった。さらに、仮想化されたコントローラおよび物理コントローラの両方が、性能、帯域幅、スループットなどの物理I/Oデバイスの制限を受けるままである。
【発明の概要】
【0011】
産業プロセスプラントの産業またはプロセス制御システムが、既知の産業またはプロセス制御システムと比較して、より良好な復元性、応答性、および順応性を有することを可能にする、動的シミュレーションおよび/またはランタイム生産プロセス制御のための新規な多目的ハードウェア/ソフトウェアアーキテクチャまたはプラットフォーム。より具体的には、この新規なアーキテクチャまたはプラットフォームは、概ね、制御システムで使用されるハードウェアを、ハードウェアの挙動を統制するソフトウェアから連結解除し、システムをより容易に拡縮、再構成、および変化させると共に、全体的なシステムの信頼性、可用性、および性能を改善する。考察を容易にするために、新規な多目的動的シミュレーションおよびランタイム制御プラットフォームまたはアーキテクチャは、本明細書では、「MPDSC」、「MPDSCプラットフォーム」、「MPDSCシステム」、または「MPDSCアーキテクチャ」と互換的に呼ばれる。
【0012】
一般的に言うと、MPDSCは、物理プロセス環境に連結された仮想プロセス環境を含み、仮想および物理的環境の構成要素が、連携して、産業プロセスの動的シミュレーションおよび/またはランタイム(例えば、実際の、または運転可能な)生産プロセス制御を実施する。ランタイムプロセス制御について、MPDSCプラットフォームは、プラントのランタイム中にバッチおよび/または連続産業プロセスを監視および制御するように連携する、仮想構成要素、物理構成要素、ならびに/または仮想構成要素および物理構成要素の両方を含み得る、プロセス制御システム(PCS)をサポートする。いくつかの構成では、MPDSCプラットフォームはまた、ランタイム中にプラントの安全動作を維持し、プラントのフェイルセーフ動作を提供するように連携する仮想および物理構成要素の両方を有し得る、安全計装システム(SIS)もサポートする。ランタイム、運転可能なプロセス制御、および/または関連ランタイム機能を実施する仮想ノード(例えば、プロセスプラントの物理的環境内に配設された1つ以上の物理デバイスまたは構成要素と連携して)は、本明細書では「仮想ランタイムノード」と呼ばれる。
【0013】
MPDSCプラットフォームは、追加的または代替的に、制御および/または安全システムおよび/または構成要素の試験、確認、検証、および/または検査、オペレータの訓練、事例研究、進行中プロセスの改善などに利用され得る、シミュレーション環境または空間をサポートし得る。シミュレーションの目的について、MPDSCプラットフォームは、物理プロセス環境内に配備可能である1つ以上の物理デバイス、モジュール、または構成要素をシミュレートする仮想ノードを提供する。プロセスプラントの物理的環境内に配備可能である様々なデバイス、モジュール、および/または構成要素をシミュレートする仮想ノードは、本明細書では「シミュレートされたノード」と呼ばれる。
【0014】
MPDSCプラットフォームによって提供されるシミュレーションは、プロセスプラントまたはその一部分のシミュレーションがリアルタイムで実行され、それによって、ランタイム中に発生する(ことになる)タイミングおよび他の挙動を反映するため、および/またはシミュレーションが、様々な値、初期条件、中間条件などを使用するために、リアルタイム実行よりも速いまたは遅いペースで実行するように操作され得るため、「動的」である。シミュレーション空間は、例えば、様々なシミュレートされたシナリオの保存/復元能力、様々なシナリオの編集可能な初期条件および/または中間条件、様々なプロトコルを介したサードパーティシミュレータとの調整、オペレータ表示ビューの試験および検査、PCSの1つ以上の部分のリアルタイムシミュレーション、PCSの1つ以上の部分のシミュレーションの高速化および/または低速化、実際の(例えば、シミュレーションされていない)仮想および/または物理構成要素と連動して動作するシミュレーションされた構成要素を含むシミュレーション、変更管理およびプラント構成との同期などの、様々な特徴を提供する。MPDSCプラットフォームは、シミュレーションおよびランタイム動作の両方、シミュレーションとランタイム動作と間の様々な相互作用および共通部分(例えば、アップグレード、パッチ、「what-if」シナリオ、構成変化、ユーザ入力変化などの試験)を同時にサポートすることができる。さらに、MPDSCプラットフォームによると、システム冗長性、耐障害性、スイッチオーバ、計画された保守などが、シームレスかつ容易に達成されることができる。
【0015】
MPDSCアーキテクチャの主要な構成要素の1つは、本明細書では、「I/Oスイッチ」または「I/Oサーバ」と呼ばれ、これは、概して、特定のハードウェアと具体的かつ直接的に関連付けられることから離れてプロセスプラントのI/Oを抽象化すると共に、シミュレーションおよび/またはランタイムプロセス制御のためのI/Oに関連する他の機能を実施する。I/OスイッチまたはI/Oサーバは、ランタイム中、プロセスプラントの仮想および/または物理ノード間でI/Oデータを配信するノードである。各ノード(仮想または物理のいずれか)は、典型的には、MPDSCシステム内で一意の名前、タグ、または識別子によって識別されるプロセスプラントの構成要素である。例えば、ノードは、物理もしくは仮想コントローラ、フィールドデバイス、安全情報コントローラ、安全ロジックソルバ、I/Oカードもしくはデバイス(例えば、無線I/Oデバイス、イーサネットI/Oデバイス、マーシャリングされたI/Oキャビネットまたはその構成要素など)、オペレータワークステーション、別のタイプのユーザインターフェースデバイス、ツール(例えば、診断ツール、シミュレーションツールなど)、ゲートウェイ、データストレージデバイス、または他のタイプの構成要素であり得る。一般的に言うと、I/Oスイッチは、I/Oスイッチがソースノード(仮想または物理のいずれか)と宛先ノード(仮想または物理のいずれか)との間でI/Oデータ(本明細書では、互換的に「プロセスI/Oデータ」または「PIOデータ」としても呼ばれる)を配信または切り替える、仮想および/または物理ノード間のデータブローカとして動作する。ある意味では、プロセスI/Oデータを配信するために異なるソースおよび宛先ノードに物理I/Oカードを堅固におよび/または具体的に連結するのではなく、I/Oスイッチは、MPDSCシステムのノード間のプロセスI/Oデータの物理的配信機構を仮想化し、I/Oデータを配信する目的で利用されるハードウェア構成要素間の結合を緩める。さらに、I/Oスイッチは、ランタイムの実際の生産プロセス制御、および/または生産プロセス制御のリアルタイムシミュレーションをサポートするのに十分に迅速に(例えば、十分に小さい遅延で)I/Oデータを配信することができるように構成される。
【0016】
一般的に言うと、I/OスイッチまたはI/Oサーバによってサービス提供される仮想および物理ノード/構成要素は、仮想および物理ノードまたは構成要素の挙動を統制するそれぞれのモジュールを含む。そのようなモジュールは、本明細書では「構成要素挙動モジュール」または「CBM」と呼ばれ、その例としては、コントローラの制御モジュール、安全ロジックソルバの安全ロジック、および少なくとも一部でI/Oデータ上で動作することによって、モジュールが記憶および実行される構成要素の挙動および動作を統制する他のタイプのモジュールが挙げられる。MPDSCシステム内では、I/Oデータのプロセス関連ペイロードを動作させるCBMは、I/Oスイッチ、および構成要素挙動動作モジュールに/からI/Oデータを配信する際のその役割を不可知であるか、または認識していない。つまり、CBMは、CBMのホストノードへの/からのCBMのそれぞれのI/O配信機構が、物理I/Oカードであるか否か、またはI/Oスイッチであるか否かを認識していない。
【0017】
そのため、I/Oスイッチは、MPDSCシステムの構成要素挙動モジュールに対して透過的であるI/Oデータのスイッチングファブリック、ルータ、および/または配信機構とみなされ得る。このため、I/Oスイッチは、ノードのそれぞれのパブリッシャ/サブスクライバ層(本明細書では互換的に「Pub/Sub層」とも呼ばれる)およびI/Oペイロードまたはデータがノード間で転送される仮想通信ネットワークを介して、仮想および/または物理ノード間でI/Oデータを配信する。例えば、送信またはパブリッシュノードは、仮想通信ネットワークに、送信ノードの構成要素挙動モジュールによって生成されたデータをパブリッシュするそれぞれのPub/Sub層を含み得る。I/Oスイッチは、データの受信者またはデータのサブスクライバであるノードにパブリッシュされたデータを配信または切り替え得、各サブスクライバノードは、そのそれぞれの構成要素挙動モジュールによる消費のために、そのそれぞれのPub/Sub層を介してデータを回復し得る。したがって、I/Oスイッチは、MPDSCシステム内のノードの定義された関係に従って、パブリッシャノードとサブスクライバノードとの間で要求に応じてデータを仲介する。
【0018】
本明細書に利用される際、MPDSCプラットフォームまたはシステムの「物理的環境」は、物理的な有形構成要素(例えば、フィールドデバイス、タンク、バルブ、アクチュエータ、ヒータ、蒸発器、センサなど)が、ランタイム制御されたプロセスを介して、物理的材料を物的生産物に変換するために利用される、生産プラントまたは環境を指す。したがって、「物理的環境」は、本明細書では互換的に、産業プロセスプラントの「プラント環境」と呼ばれる。上で考察されたように、物理的環境またはプラント環境は、フィールドデバイス、センサ、送信機、スイッチ、ポジショナ、タンク、ヒータなどのMPDSCシステムの物理またはハードウェア構成要素が配設され、物的生産物を生産するために物理的材料に対して動作するフロントエンド部分を含む。したがって、物理的環境の「フロントエンド」部分は、本明細書では互換的に、プロセスプラントの物理的環境の「フィールド」または「現場」部分と呼ばれる。
【0019】
MPDSCシステムの物理的環境またはプラント環境はまた、オペレータワークステーション、パーソナルコンピュータもしくはコンピューティングデバイス、データヒストリアン、レポートジェネレータ、集中データベース、および/または他の集中(または少なくとも部分的に集中化された)管理コンピューティングデバイスなどの物理またはハードウェア構成要素がアプリケーションを実行して、例えば、プロセスプラントおよび/またはその構成要素の構成、プラントのランタイム動作の表示および監視、プラントのランタイム動作中の警告または警報への応答、プラントのランタイム動作中のパラメータの調整、レポートの生成、データの記憶および分析などを行う。MPDSCシステムの物理的環境のバックエンド部分は、現場、密閉された部屋、および/またはフィールド環境から離れたもしくは遠隔である場所などの、より厳しいフィールド環境から保護されている領域に位置し得る。
【0020】
MPDSCシステムの仮想環境は、この開示の後のセクションでより詳細に説明されるように、様々な物理プロセスプラント構成要素の仮想化をサポートするプラットフォームを提供するように具体的に構成および相互接続される物理またはハードウェアコンピューティングデバイスを使用して実装される。一般的に言うと、仮想化プラットフォームを提供およびサポートする物理コンピューティングデバイスは、プラントの現場に物理的に位置し得るか(例えば、フィールド環境の保護され、密閉された領域内)、現場から離れて物理的に位置し得るか、または現場および現場から離れた場所の様々な場所に物理的にかつ分散して位置し得る。仮想化プラットフォームを提供およびサポートする物理コンピューティングデバイスは、任意の数の物理データリンクおよび/または通信/データネットワークを介して相互接続され得る。一般的に言うと、物理コンピューティングデバイス、データリンク、および通信/データネットワークは、MPDSCシステムの様々な論理または仮想構成要素が存在するコンピューティングプラットフォームを形成し、様々な論理または仮想構成要素は、物理プロセス環境の構成要素と組み合わせてランタイムプロセス制御に、またはプロセスシミュレーション目的に利用され得る。
【0021】
MPDSCシステムの仮想環境に存在する論理または仮想構成要素は、MPDSCシステムの1つ以上の実際のまたは計画された物理部分のシミュレーションを提供するために動作し得る(例えば、必要に応じて、リアルタイムで、高速で、および/または低速で)。いくつかの実施態様では、MPDSCシステムの仮想環境内に存在する論理または仮想構成要素、およびMPDSCシステムの物理的環境内に存在する物理構成要素は、シミュレーションおよび/またはランタイムの実際の生産プロセス制御を提供するように協調して動作し得る。したがって、いくつかの実施形態では、MPDSCプラットフォームの物理および仮想環境は、1つ以上の通信リンクおよび/またはネットワークを介して通信可能に接続され、通信リンクおよび/またはネットワークは、任意の数の有線リンクおよび/またはネットワーク、無線リンクおよび/またはネットワーク、プライベートリンクおよび/またはネットワーク、パブリックリンクおよび/またはネットワークを含み得る。スタンドアロンの仮想リアルタイムシミュレーションの実施形態、ならびに産業制御システムの論理/仮想および物理構成要素とそれらの間の通信接続との間の協調の実施形態は、本開示の後のセクションでより詳細に説明される。
【0022】
さらに、MPDSCプラットフォームの仮想および物理的環境は、本明細書では「MPDSCシステム構成データベース」と呼ばれる、共通の(例えば、同じ)システム構成データベースを利用または共有する。したがって、MPDSCシステム構成データベースを介して、様々な仮想および物理構成要素が、仮想および物理的環境の両方にわたってMPDSCプラットフォーム内で一意に識別され得、シミュレーションとランタイム動作との間の共通部分(例えば、試験、スイッチオーバなど)がシームレスかつ容易に達成されることができる。
【0023】
一実施形態では、産業プロセスプラントのシステムは、産業プロセスプラントの仮想環境内に配設される複数の仮想ノードを含む。複数の仮想ノードは、産業プロセスプラントのランタイム動作中、I/Oスイッチにデータをパブリッシュし、I/Oスイッチによってパブリッシュされたデータをサブスクライブすることによって、産業プロセスを制御するように動作する。I/Oスイッチは、産業プロセスプラントの物理的環境に配置され、かつ少なくとも1つのフィールドデバイスを含む複数の物理ノードに複数の仮想ノードを通信可能に接続する。複数の物理ノードは、産業プロセスプラントのランタイム動作中、I/Oスイッチを介して複数の仮想ノードにデータを送信すると共に複数の仮想ノードからデータを受信することによって、産業プロセスを制御するように動作する。複数の仮想ノードは、例えば、各仮想ノード上に記憶されたそれぞれ1つ以上の構成要素挙動モジュールを利用することによって、(i)産業プロセスを制御するために産業プロセスプラントの物理的環境内に配備可能である1つ以上の物理構成要素、または(ii)1つ以上の物理構成要素の1つ以上の副構成要素、のうちの少なくとも1つを仮想化する。
【0024】
一実施形態では、産業プロセスプラントにおける方法は、産業プロセスプラントのランタイム動作中、プロセス制御システムの複数の仮想ノードが実装される仮想化プラットフォームで発生する1つ以上の条件を検出および/または予測することを含み、1つ以上の条件は、複数の仮想ノードが、I/Oスイッチにデータをパブリッシュし、かつI/Oスイッチによってパブリッシュされたデータをサブスクライブすることによって産業プロセスを制御するように動作している間に発生する。複数の仮想ノードは、産業プロセスプラントの仮想環境内に配設される。I/Oスイッチは、プロセス制御システム内に含まれ、プロセス制御システムの複数の物理ノードに複数の仮想ノードを通信可能に接続する。複数の物理ノードは、産業プロセスプラントの物理的環境内に配設され、少なくとも1つのフィールドデバイスを含む。さらに、複数の物理ノードは、産業プロセスプラントのランタイム動作中、I/Oスイッチを介して複数の仮想ノードにデータを送信すると共に複数の仮想ノードからデータを受信することによって、産業プロセスを制御するように動作する。方法は、産業プロセスプラントのランタイム動作中、検出および/または予測された1つ以上の条件に基づいて、複数の仮想ノードに対応する負荷または性能レベルのうちの少なくとも1つを分散させることを追加的に含む。
【図面の簡単な説明】
【0025】
図1】プロセスプラントの動的シミュレーションおよび/またはランタイム産業またはプロセス制御を提供する例示的な多目的動的シミュレーションおよびランタイム産業またはプロセス制御(MPDSC)システムのブロック図である。
図2図1のMPDSCシステム内に含まれ得る例示的な仮想ノードアーキテクチャの実施形態を例示するブロック図である。
図3図1のMPDSCシステムがサポートし得る物理プラント環境の例示的な構成である。
図4図1のMPDSCシステムで少なくとも部分的に実装され得る、複数のI/Oスイッチの例示的な構成を図示する。
図5図1のMPDSCシステムの少なくとも一部分が構成および運営され得る例示的な仮想化管理システムを例示するブロック図である。
図6】産業プロセスプラントのプロセス制御システム内でリアルタイム制御を実施している仮想ノードの負荷および/または性能レベルを分散する例示的な方法のフロー図である。
【発明を実施するための形態】
【0026】
図1は、産業またはプロセスプラントの動的シミュレーションおよび/またはランタイムプロセス制御を提供する例示的な多目的動的シミュレーションおよびランタイム産業またはプロセス制御(MPDSC)システムまたはプラットフォーム10のブロック図である。例示的なMPDSCプラットフォーム10は、産業プロセスプラントのプロセス制御の動的シミュレーションおよび/または仮想化されたデバイスを使用するリアルタイムプロセス制御をサポートする。例えば、仮想化されたデバイスは、プロセスプラントのランタイム中の物的生産目的のためにMPDSCプラットフォーム10によって利用され得る。図1に示されるように、MPDSCプラットフォーム10は、仮想プラント環境部分12および物理プラント環境部分15を含むが、MPDSCプラットフォーム10がリアルタイムシミュレーション目的のみに利用される実施形態では、物理プラント環境部分15は、省略され得る。一般的に言うと、仮想プラント環境部分12および物理プラント環境部分15は、産業プロセスプラントの1つ以上のオペレーション技術(OT)層18を集合的に形成し、これは、生成されたデータを、産業プロセスプラントと関連付けられた1つ以上の情報技術(IT)層20に、および/または、例えば、1つ以上のアプリケーション21a~21n、22a~22mによる企業および/または外部使用のために、IT層の外部にあるネットワークに提供し得る。例えば、アプリケーション21a~21mは、MPDSCプラットフォーム10を所有/動作させる企業によって提供され得、企業と関連付けられたIT層で実施され得、アプリケーション22a~22mは、インターネットまたは他のパブリックネットワークを介してアクセスされる遠隔ネットワークで実行する、それぞれのサードパーティによって提供されるモノのインターネット(IoT)および/または産業用モノのインターネット(IIoT)アプリケーションであり得る。
【0027】
企業のIT層20は、1つ以上のローカルおよび/または遠隔サーババンク、1つ以上のコンピューティングクラウドなどの任意の数のローカルおよび/または遠隔に配設されたコンピューティングデバイスに実装され得、任意の数のアプリケーションまたは企業のOT層18によって生成されたデータのコンシューマ21a~21nを含み得る。典型的には(必須ではないが)、図1に示されるように、OT層18は、1つ以上のパブリックおよび/またはプライベート通信ネットワーク24および1つ以上のエッジゲートウェイシステム28を介してIT層20に通信可能に連結され、エッジゲートウェイシステム28は、OT層18/MPDSCプラットフォーム10とIT層20との間のデータ配信のセキュリティおよび効率を提供する。さらに、1つ以上のエッジゲートウェイシステム28は、MPDSCプラットフォーム10と外部ネットワークおよび/または外部アプリケーション22との間のデータ配信のセキュリティおよび効率を提供し得る。
【0028】
図1では、MPDSCプラットフォーム10の仮想プラント環境12は、I/Oスイッチ(本明細書では「I/Oサーバ」として互換的に呼ばれる)25と通信可能に接続される1つ以上の仮想ノード(VN)30a、30b、30c~30pを含む。一般的に言うと、各仮想ノード30xは、物理プラント環境15内で動作可能であり得るそれぞれの物理構成要素の挙動をシミュレートまたは仮想化する仮想マシンである。別の言い方をすると、仮想プラント環境12内の各仮想ノード30xは、物理プラント環境15内のその物理的な対応する部分がデータを処理して挙動するのと同じ様式で、データを処理して挙動する。
【0029】
特に、各仮想ノード30xは、VN30xが、仮想プラント環境12内の他の仮想ノード30xと、および/または物理ノード40a、40b、40cおよびエッジゲートウェイシステム28(エッジゲートウェイ28は、特定タイプのPNとみなされ得る)などの物理プラント環境15内の1つ以上の物理ノード(PN)と通信することを可能するフレームワークおよび1つ以上のサブシステム32を含み、物理ノードの各々は、仮想ノード30xとの通信を可能にするフレームワークおよびそれぞれの1つ以上のサブシステム42xを含む。加えて、MPDSCプラットフォーム10は、任意の数の他の物理ノードまたは構成要素(例えば、PNa-PNk)を含み得る。
【0030】
仮想ノードは、様々なタイプの物理ノードを仮想化し得る。一般的に言うと、本明細書に利用される際、「物理ノード」は、ハードウェアを含み、他のデバイスまたは構成要素(仮想または物理)に/からデータを送信および/または受信する、MPDSCプラットフォーム10の物理デバイスまたは構成要素である。それぞれの仮想ノードによって表され得る物理ノードのタイプの例としては、限定されるものではないが、様々なタイプのプロセス制御コントローラと、様々なタイプのローカルおよび/または遠隔I/Oデバイスまたはカード(無線I/Oカード(WIOC)、イーサネットI/Oカード(EIOC)など)、ならびにI/O電子マーシャリングシステムの様々な構成要素(特性化モジュール(CHARM)、端子台、CHARM I/Oカード(CIOC)など)と、安全コントローラ、安全ロジックソルバ、SISリピータ、安全ネットワークブリッジ、安全ネットワークゲートウェイなどの様々なタイプの安全計装システム(SIS)ノードと、ローカルおよび/もしくは遠隔物理オペレータワークステーション、モバイルデバイス、ならびに/またはランタイム動作および/もしくはMPDSCプラットフォーム10に関連する他の目的のためのユーザインターフェースを提供する他のコンピューティングデバイスを含むユーザインターフェースデバイスと、制御構成ツール、データ統合および視認ツール、データ分析および分析構成ツール、表示ビュー構成ツール、診断ツール、資産管理ツール、アプリケーションステーションなどの、MPDSCプラットフォーム10に関連するツールを提供するローカルおよび/または遠隔物理コンピューティングデバイスと、無線ゲートウェイ、安全ゲートウェイ、ファイアウォール、エッジゲートウェイ、フィールドゲートウェイ、システム間ゲートウェイなどの、MPDSCプラットフォーム10内および/またはそれによって利用される様々なタイプのゲートウェイと、物理プラント環境15内で利用され得る他のタイプの物理ノードが挙げられる。
【0031】
いくつかの実施形態では、単一のVN30xは、物理ノード全体を表すか、または仮想化し得る。いくつかの実施形態では、単一のVN30xは、特定の物理ノードのうちの1つ以上の部分を表すか、または仮想化し得る。例えば、単一のVN30xは、特定のPNで実行または常駐する特定のモジュールまたはモジュールグループを表すか、または仮想化し得、そのようなモジュールは、ソフトウェアモジュールもしくは構成要素、ファームウェアモジュール構成要素、および/またはハードウェアモジュールもしくは構成要素を含み得る。例えば、第1のVNは、特定のPN上で実行するアプリケーション全体(物理プロセスコントローラ上で実行可能である制御モジュール全体など)を表すか、または仮想化し得、第2のVNは、特定のPN(特定の制御モジュールによって利用される特定の制御モデル、関数、またはルーチンなど)上で実行するアプリケーション全体のサブセットを表すか、または仮想化し得、第3のVNは、特定のPNと関連付けられたプロトコル特有のI/Oカードまたはデバイスの挙動を表すか、または仮想化し得、および/あるいは第4のVNは、特定のPNのハードウェア副構成要素(例えば、ポートもしくは他のインターフェース、バス、トランシーバ、チップ、ボードなど)、または特定のPNのファームウェアもしくはソフトウェア副構成要素(例えば、モジュール、ルーチン、関数もしくは挙動、MAC(メディアアクセス制御)アドレスもしくは他のタイプのアドレスなどの、特定のPNのネットワークアドレスなど)と同様の粒度のPN副構成要素を表すか、または仮想化し得る。
【0032】
物理プラント環境15内で利用され得、かつMPDSC10の仮想ノード30xによって表される、および/または仮想化され得る、物理I/Oカードのタイプの例としては、限定されるものではないが、
高密度、本質的に安全、かつ冗長な離散出力カードを含む、離散出力カードと、
高密度、本質的に安全、かつ冗長な離散入力カードを含む、離散入力カードと、
HART(登録商標)(Highway Addressable Remote Transducer)通信プロトコルをサポートするアナログ入力カード、HARTをサポートする冗長アナログ入力カード、HARTをサポートする高密度冗長アナログ入力カード、および高速アナログ入力カードを含む、アナログ入力カードと、
HART通信プロトコルをサポートするアナログ出力カード、HARTをサポートする冗長アナログ出力カード、HARTをサポートする高密度冗長アナログ出力カード、および高速アナログ出力カードを含む、アナログ出力カードと、
冗長、プログラム可能、かつ冗長なプログラマブルシリアルカードを含む、シリアルカードと、
フィールドバス通信プロトコルをサポートする離散アクチュエータおよび/またはセンサ用のインターフェースカード、RTD(抵抗温度検出器)カード、熱電対カード、ミリボルトカード、絶縁温度カード、多機能カード、一連のイベントカード、Profibus通信プロトコルをサポートする冗長フィールドバスサポートカード、冗長Profibusサポートカード、および他のタイプの物理カードと、が挙げられる。
【0033】
図1に例示されるように、VN30a、30b、30c~30pは、それぞれのパブリケーション/サブスクリプション層32a、32b、32c~32pおよび35を介して、互いに、およびI/Oスイッチ25と通信し、パブリケーション/サブスクリプション層は、本明細書では互換的に「Pub/Sub層」と呼ばれ、各VN30xおよびI/Oスイッチ25のそれぞれのハッシュマークされた部分32x、35によって図1に示されている。図1に例示されるような、物理ノードが含まれるMPDSCプラットフォーム10の実施形態では、物理プラント環境15内に配設されたPN28、40a、40b、40cの少なくともいくつかは、それぞれのPub/Sub層38、42a、42b、42cを含み得る。ある意味では、Pub/Sub層32x、35(および、いくつかの構成では、Pub/Sub層38、42x)は、様々な仮想ノード30xおよびI/Oスイッチ25(および、いくつかの構成では、物理ノード40x)が、抽象化されたI/Oデータを通信し得る、仮想通信ネットワーク45として機能する。例示的な実施態様では、各Pub/Sub層32x、35、38、42xは、仮想通信ネットワーク45へのそれぞれのインターフェースである。
【0034】
仮想通信ネットワーク45は、有線および/または無線ネットワークを含み得、イーサネット、光、IP、別のタイプの他のパケットネットワークなどの任意の好適な技術を使用して実装され得る、1つ以上の物理通信および/またはデータリンクおよび/またはネットワークによって実装され得る。データは、パブリケーションおよびサブスクリプションを介して、仮想通信ネットワーク45を介してのノード間で通信され、パブリケーションおよびサブスクリプションをサポートする任意のまたはより多くの好適な通信プロトコルは、データの配信のための仮想通信ネットワーク45内で利用され得る。例えば、プライベートパケットプロトコル、ならびに/またはパブリックもしくは標準化されたパケットプロトコル(IPv6、IoT、および/もしくはIIoTプロトコルなど)は、仮想通信ネットワーク45の様々なノード30x、28、40x間、および、任意選択的に、例えば、エッジゲートウェイシステム28によって、他のアプリケーション21x、22xに配信される、I/Oデータのパブリッシャおよびそれのサブスクライバに利用され得る。
【0035】
例えば、仮想通信ネットワーク45の各ノード(例えば、仮想ノード30x、I/Oスイッチ25、物理ノード28、40xなど)は、そのそれぞれのPub/Sub層を介して(例えば、Pub/Sub層32x、35、38、42xなどを介して)仮想通信ネットワーク45にI/Oデータをパブリッシュし得、仮想通信ネットワーク45の各ノード(例えば、仮想ノード30x、I/Oスイッチ25、物理ノード28、40xなど)は、そのそれぞれのPub/Sub層を介して(例えば、Pub/Sub層32x、35、38、42xなどを介して)仮想通信ネットワーク45にパブリッシュされるI/Oデータをサブスクライブおよび取得し得る。典型的には、様々なパブリッシュされたデータに対するサブスクリプションは、I/Oスイッチ25と他の各ノード30x、28、40xの各々との間に一対一の対応関係を有する。好ましい実施形態では、仮想通信ネットワーク45の各ノード30x、28、40xは、I/Oスイッチ25からのみサブスクリプションを受理し、他のノードから受理せず、各ノード30x、28、40xは、I/Oスイッチ25によってパブリッシュされるI/Oデータ(I/Oスイッチ25によってパブリッシュされたI/Oデータは、他のノードによって生成され、I/Oスイッチ25がサブスクライブした、転送されたデータであり得る)のみをサブスクライブし、他のノードによってパブリッシュされたI/Oデータをサブスクライブしない。したがって、この好ましい一対一の実施形態では、パブリケーション/サブスクリプション関係の無向グラフは、ノードが他の複数のノードによる複数のサブスクリプションを有することを可能にする実施形態と比較して制限され、それによって、ネットワーク複雑性を軽減し、ネットワーク診断および管理を単純化し、ネットワーク負荷/利用を減少させる。ネットワーク複雑性をさらに軽減し、ネットワーク診断および管理を単純化し、ネットワーク負荷/利用を減少させるために、追加的または代替的に、仮想通信ネットワーク45の各ノード30x、28、40xは、パブリケーションを介してI/Oスイッチ25に、I/Oスイッチ25によってMPDSCプラットフォーム10の他のノードに転送されることになるデータのみを送信し得る。当然ながら、いくつかの実施形態では、無向グラフの少なくとも一部分は、必要に応じて、一対多、多対一、および/または多対多の関係で実装され得る。
【0036】
一般的に言うと、MPDSCプラットフォーム10内では、プロセス関連ペイロードデータ(例えば、CBMおよび/またはプロセスプラントの物理構成要素によって生成されたもの)が抽象化され、I/Oデータとしてパブリッシュされ、要求に応じて仮想通信ネットワーク45のサブスクライバノードに配信され得る。つまり、I/Oデータは、プロセス関連データペイロードが新しいパブリッシュイベントを必要とするとパブリッシュノードが決定したときに、配信され得る(例えば、パブリケーションを介して)。例えば、パブリッシュノードは、センサ生成データ値が変化したときに、特定のタイプのセンサ生成データをI/Oデータとして仮想通信ネットワークに自動的にパブリッシュし得る。任意選択的に、パブリッシュノードは、センサ生成データ値が変化していないときでも、センサ生成データ値を周期的に(例えば、5秒毎、10秒毎、1分毎など)I/Oデータとしてパブリッシュし得、例えば、それによって、ロストメッセージおよび発生する可能性があり得る他の忠実度問題を軽減する。したがって、いくつかの実施形態では、明示的なサブスクリプション比率は、必要とされず、および/またはサブスクライバノードによって利用されない。その結果、各サブスクライバノードでの処理論理(例えば、構成要素挙動モジュール)の実行は、仮想通信ネットワーク45にサブスクライブされ、かつそれを介して受信される着信データによって駆動され、したがって、各ノードおよび仮想通信ネットワーク45によって利用されるリソースは、より効率的に利用され得る。
【0037】
例示的なシナリオの一例では、VN30aは、ランタイム中にI/Oデータとして、特定のプロセス関連ペイロードデータセット、例えば、「Data1」を生成し、そのPub/Sub層32aにパブリッシュし得る。I/Oスイッチまたはサーバ25は、Data1を含むI/Oデータに対するサブスクリプションを有し得、仮想通信ネットワーク45、そのそれぞれのPub/Sub層35、およびそのそれぞれのサブスクリプションを介して、プロセス関連ペイロードData1を取得し得る。次に、I/Oスイッチまたはサーバ25は、取得されたプロセス関連ペイロードData1を、仮想通信ネットワーク45にそのPub/Sub層35を介して、Data1を含むI/Oデータに対するサブスクリプションを有するそれらのノードによる受信のために、I/Oデータとしてパブリッシュし得る。例えば、VN30bは、Data1を含むI/Oデータに対するサブスクリプションを有し得、I/Oスイッチ25のPub/Sub層35を介したI/OデータとしてのData1のパブリケーションの際、VN30bは、仮想通信ネットワーク45、そのそれぞれのPub/Sub層32b、およびI/Oデータに対するそのサブスクリプションを介したプロセス関連ペイロードData1を取得し得る。続いて、VN30bは、取得されたプロセス関連ペイロードData1値に対して動作し得る。
【0038】
したがって、MPDSCプラットフォーム10は、I/Oスイッチ25を介した仮想および物理ノード間、ならびにパブリケーションおよびサブスクリプションを介して仮想通信ネットワーク45間の配信のために、産業プロセスプラントの様々な物理構成要素(例えば、離散出力、離散入力、アナログ出力、アナログ入力、シリアルI/O、レイルバス、HART、無線HART、フィールドバス、Profibus、イーサネット、高度物理層、および/または任意の他のタイプのI/O)に利用され、それらに由来する複数の異なるタイプのI/Oを抽象化する。仮想通信ネットワーク45の各ノードは、それがそのそれぞれのPub/Sub層、および、任意選択的に、他のサブシステムを介して送受信するI/Oデータのそれぞれの抽象化および抽象化解除(例えば、回復)を実施し得る。
【0039】
仮想ノード
I/O抽象化および抽象化解除を例示するために、図2は、仮想ノード30xの2つの例示的なアーキテクチャの実施形態52a、52bを例示する。一般的に言うと、仮想ノード30xは、物理プラント環境15内で利用され、動作し得る、物理ノードまたは物理構成要素をシミュレートおよび/または仮想化する。各VN52a、52bは、それぞれのPub/Sub層55a、55bを含み、それらを介して、VN52a、52bは、I/Oスイッチ25と通信する。加えて、各VN52a、52bは、本明細書では「構成要素ビジネス論理モジュール」58a、58bまたは「CBM」58a、58bと互換的に呼ばれる、それぞれの構成要素挙動モジュール58a、58bを含む。一般的に言うと、CBM58xは、その実行が、例えば、アプリケーションレベルで、そのそれぞれの仮想ノード30xの動作挙動を統制するモジュールである。例えば、仮想コントローラノードのCBM58xは、制御モジュールの特定のインスタンスであり得、制御モジュールの他のインスタンスは、物理プラント15のランタイム中の実行のために、物理プラント環境15内に配設された物理コントローラにダウンロードされ得る。別の例では、仮想CIOCノードのCBM58xは、遠隔I/Oモジュールの特定のインスタンスであり得、遠隔I/Oモジュールの他のインスタンスは、物理プラント環境15のランタイム中、その中に配設された物理CIOCで実行され得る。
【0040】
CBM58xが物理構成要素内で実行され得るため、CBMは、典型的には、アナログ入力/出力、フィールドバス、レイルバスなどの1つ以上の対応する固有I/Oタイプで固有に通じる。さらに、CBM58xは、典型的には、それらが、仮想プラント環境12の仮想ノード30x上、物理プラント環境15内に配設された物理ノード40x、または物理プラント環境15内に配設された別の物理構成要素上、例えば、ノードPNa~PNk上で実行されているかどうかに関する認識を有していない。したがって、CBM58xが仮想プラント環境12内で実行されているか、または物理プラント環境15内で実行されているかどうかに関係なく、CBM58xは、同じ様式で同じ処理ロジックおよびI/Oタイプを使用してデータを送受信する。
【0041】
仮想ノード52aの実施形態では、CBM58aによって送受信されるプロセス関連ペイロードデータは、仮想プロセスI/O(PIO)サブシステム60を介してVN52aへの/からの配信のために抽象化される。一般的に言うと、仮想PIOサブシステム60は、仮想ノード52aの固有の物理PIO配信をシミュレートする。つまり、仮想ノード52aのランタイム中、仮想PIOサブシステム60は、例えば、I/Oプロセス値およびイベントが物理ハードウェアに由来していた/それに配信されていたかのように、CBM58aに/から、その固有I/Oを使用して、I/Oプロセス値およびイベントを通信する。したがって、仮想PIOサブシステム60は、仮想ノード52aの特定のタイプに合わせて調整され得、仮想ノードタイプは、そのCBM58aによって統制される。例えば、VN52aがレイルバスI/Oを使用して他のデバイスと通信する物理コントローラを表す場合、仮想PIOサブシステム60は、レイルバスI/Oカードによって利用される形態で、制御ルーチンのCBM58aへの/からのI/Oデータを提供する。VN52aがCIOCを表す場合、仮想PIOサブシステム60は、CHARMによって利用される形態で、遠隔I/OのCBM58aへの/からのI/Oデータを提供する。
【0042】
さらに、仮想PIOサブシステム60は、仮想ノード52aに代わってデータパブリケーションおよびサブスクリプションを取り扱い得る。つまり、仮想PIOサブシステム60は、CBM58aによって生成されたデータをPub/Sub層55aにパブリッシュし得、仮想PIOサブシステム60は、Pub/Sub層55aを介して他のノードによって生成された(およびI/Oスイッチ25によって転送された)データをサブスクライブし得る。一実施形態では、データに対するサブスクリプションおよびそのパブリケーションは、MPDSCプラットフォーム10内で一意であるタグまたは他の識別子に基づき得る。タグまたは他の識別子は、例えば、MPDSCプラットフォーム10のデータ、ノード、デバイス、または構成要素を一意に識別し得る。一実施形態では、タグおよび/または識別子は、構成および/または試運転中に割り当てられ得る。
【0043】
したがって、仮想環境12内の各仮想ノード52aでは、仮想PIOサブシステム60は、オンボードCBM58aおよびその対応する物理I/Oを有する各物理ノードで物理的環境15内に維持される論理的分離(例えば、物理I/OカードまたはマーシャリングされたI/O構成を介した)と同様、CBM58aと対応する物理I/Oとの間の論理的分離を維持する(例えば、Pub/Sub層55a、仮想通信ネットワーク45、および他のPub/Sub層32、35、38、42を介して)。一般的に言うと、任意の仮想ノード30の仮想PIOサブシステム60は、仮想ノード30に含まれるI/Oサブスクライバ(CBM58a、別のモジュール、別のタイプのI/Oコンシューマなど)とその対応する物理I/Oとの間の論理的分離を維持する。
【0044】
図2に示される仮想ノード52bの実施形態では、仮想PIOサブシステム60は、省略されるか、または利用されない。典型的には、VNアーキテクチャ52bを利用する仮想ノードのタイプは、仮想通信ネットワーク45が実装される物理構成要素および技術とCBM58bが固有に通信することができるノードである。例えば、仮想通信ネットワーク45がイーサネット上のIPプロトコルを介して実装される場合、EIOCをシミュレートする仮想ノード52bは、イーサネット上のIPプロトコルを使用して通信するように固有に構成されるCBM58bを含む。その結果、EIOC仮想ノード52bは、仮想PIOサブシステム60を含まない場合があり(またはその動作をオフにするか、または無視し得る)、EIOC仮想ノード52bは、CBM58bおよびPub/Sub層55bのみを使用することによって、52bの仮想ノードへの/からのデータの配信を取り扱い得る。
【0045】
物理ノード
図3は、図1のMPDSCプラットフォーム10と連携して動作し得る例示的な物理プラント環境100のブロック図である。例えば、図1に例示されるMPDSCプラットフォーム10の物理的環境部分15は、物理プラント環境100の少なくとも一部分を含み得る。
【0046】
物理プラント100は、産業プロセスを制御し(または、いくつかの実施形態では、産業プロセスを制御するように仮想プラント環境12などの仮想プラント環境と連携して動作する)、産業プロセスは、プロセスの状態を特徴付ける1つ以上の「プロセス出力」(例えば、タンクレベル、流量、材料温度など)と、1つ以上の「プロセス入力」(例えば、様々な環境条件およびアクチュエータの状態、プロセス出力を変化させ得る操作)とを有するといえる。図3の物理プロセスプラント100は、フィールド環境102およびバックエンド環境105を含み、それらの各々は、プロセス制御バックボーンまたはデータハイウェイ108によって互いに通信可能に接続されており、1つ以上の有線および/または無線通信リンクおよび/またはネットワークを含み得、例えば、イーサネットプロトコル、IPプロトコル、または別のパケットプロトコルなどの任意の所望のまたは好適な通信プロトコルを使用して実装され得る。
【0047】
高レベルでは(および図3に示されるように)、フィールド環境102は、ランタイム中に産業プロセスを制御するために動作するように接地および相互接続される、物理構成要素(例えば、プロセス制御デバイス、ネットワーク、ネットワーク要素など)を含む。全般的に、これらの物理構成要素は、物理プロセスプラント100のフィールド環境102内に位置するか、配設されるか、または別様に含まれ、原材料が、その中に配設された物理構成要素を使用して受容および処理されて、それによって、1つ以上の物的生産物(例えば、紙、精製油、薬剤など)を生成する。対照的に、物理プロセスプラント100のバックエンド環境105は、フィールド環境102の過酷な条件および材料から遮蔽および/または保護されているコンピューティングデバイス、オペレータワークステーション、データベースまたはデータバンクなどの様々な物理構成要素を含む。いくつかの構成では、物理プロセスプラント100のバックエンド環境105内に含まれる様々なコンピューティングデバイス、データベース、ならびに他の構成要素および機器は、異なる物理的位置に物理的に位置し得、そのうちのいくつかは、物理プラント100に対してローカルであってよく、そのうちいくつかは、遠隔であってよい。
【0048】
図3に示されるように、フィールド環境102は、データハイウェイ108に通信可能に接続されている1つ以上のプロセスコントローラ110を含む。プロセスコントローラ110の各々は、コントローラ110とフィールドデバイスとの間の通信を容易にする1つ以上の中間ノード112、115(例えば、I/Oカード、I/Oデバイス、I/Oシステムなど)に接続され得る。一般的に言うと、プロセス制御産業では、「I/O」という用語は、いくつかの、関連するが、異なる文脈で使用される場合がある。この用語は、概して、フィールドデバイスをI/Oカードまたはコントローラに通信可能に連結する論理リンクまたは通信チャネル(例えば、「I/Oチャネル」)を指すが、I/Oチャネル(例えば、「I/Oデバイス」または「I/Oカード」)およびI/Oデバイスと関連付けられたコネクタまたは端子(例えば、「I/Oコネクタ」)を介してフィールドデバイスに信号を送信するか、またはそこから信号を受信するために利用される物理デバイスなどの、いくつかの他の概念を指すときに使用され得る。I/OデバイスおよびI/Oカード112、115は、スタンドアロンの個々の物理デバイスであり得、その各々は、図3に例示されるように、それぞれのコントローラおよび1つ以上のそれぞれのフィールドデバイスに接続される。いくつかの構成(図3には図示せず)では、I/Oデバイス、カード、コネクタ、および端子台、モジュールプロセッサなどの他のI/O関連構成要素は、その全容が参照により本明細書に明示的に組み込まれる米国特許第7,684,875号、同第8,332,567号、同第8,762,618号、同第8,977,851号、同第9,083,548号、同第9,411,769号、同第9,495,313号、および同第9,946,240号に説明されるなどの、様々なタイプの複数のコントローラと複数のフィールドデバイスとの間のフレキシブルI/O配信を可能にする、I/O電子マーシャリングシステム内に含まれる。したがって、考察の明確化のために、本明細書に利用される際、「I/Oデバイス」という用語は、概して、物理I/Oデバイス、カード、電子マーシャリングシステム、およびその構成要素を指し、それらを介して、I/Oチャネルが実装されて、それによってフィールドデバイスおよびコントローラを通信可能に連結する。
【0049】
また、プロセス制御産業では、「I/O」という用語は、概して、I/Oチャネル上で送信される信号(例えば、「I/O信号」)、信号によって表される変数もしくはコマンド(例えば、「I/Oパラメータ」)、または信号によって運ばれる変数もしくはコマンドの値(例えば、「I/Oパラメータ値」または「I/Oデータペイロード」)を指すために使用され得る。したがって、考察の明確化のために、本明細書に利用される際、I/O信号、I/Oパラメータ、およびI/Oパラメータ値は、本明細書では集合的かつ概略的に、「I/Oデータ」または「プロセスI/Oデータ」と呼ばれる。
【0050】
本明細書で「I/O」という用語が修飾語なしで参照されている限り、文脈は、これらの概念のうちのどの概念が考察されているかを明確にするべきである。さらに、「I/Oチャネル」は、特定のタイプの「通信チャネル」または「チャネル」を表すことを理解されたい。つまり、文脈が別途示唆しない限り、本説明で「チャネル」という用語または「通信チャネル」という用語を「I/O」という修飾語なしで参照することは、いくつかの実施態様では、I/Oチャネルであり得る通信リンクを指す場合があるが、いくつかの実施態様では、I/Oチャネル以外の通信リンクを指す場合もある。
【0051】
いずれの場合も、図3に戻ると、物理プロセスプラント100の各プロセスコントローラ110は、コントローラ110のメモリ内に記憶され得る、1つ以上の制御ルーチン(例えば、1つ以上の構成要素挙動モジュール)によって定義される制御戦略を実装する。コントローラのプロセッサが制御ルーチンのうちの1つ以上を実行すると、コントローラは、有線または無線プロセス制御通信リンクまたはネットワークを介して、プラント100内のプロセスの動作を制御するための他のフィールドデバイスへの制御信号(すなわち、「制御出力」)をフィールドデバイスに送信する。コントローラは、(i)「制御入力」と呼ばれ得る1つ以上の受信された信号(例えば、フィールドデバイスによって取得された測定値を表す1つ以上の受信された信号)、および(ii)1つ以上のソフトウェア要素(例えば、機能ブロック)によって定義され得る、1つ以上の制御ルーチンの論理に基づいて制御信号を生成し得る。典型的には、コントローラは、プロセス入力(「操作される変数」と呼ばれ得る)を操作して、フィードバック(すなわち、制御される変数の測定値)およびプロセス出力の所望される値(すなわち、設定点)に基づいて、特定のプロセス出力(「制御される変数」または単に「プロセス変数」と呼ばれ得る)を変化させる。
【0052】
概して、少なくとも1つのフィールドデバイスが物理機能(例えば、バルブの開閉、温度の上昇または下降、測定値の取得、条件の検知など)を実施して、プロセスプラント100に実装されるプロセスの動作を制御する。フィールドデバイスのうちのいくつかのタイプは、I/Oデバイスを使用してコントローラと通信する。プロセスコントローラ、フィールドデバイスおよびI/Oデバイスは、有線または無線であってもよく、任意の数および組み合わせの有線および無線のプロセスコントローラ、フィールドデバイスおよびI/Oデバイスが、プロセスプラント環境またはプラットフォーム100内に含まれ得る。
【0053】
プラント100のフロントエンド環境102
例えば、図3は、入力/出力(I/O)デバイス112および115を介して有線フィールドデバイス125~132と通信可能に接続され、無線ゲートウェイ168およびデータハイウェイ108を介して、無線フィールドデバイス140~146と通信可能に接続される、プロセスコントローラ110を例示する。いくつかの構成(図示せず)では、コントローラ110は、1つ以上の通信プロトコル、例えばWi-Fiまたは他のIEEE802.11準拠の無線ローカルエリアネットワークプロトコル、モバイル通信プロトコル(例えば、WiMAX、LTE、または他のITU-R互換プロトコル)、Bluetooth(登録商標)、HART(登録商標)、WirelessHART(登録商標)、Profibus、FOUNDATION(登録商標)Fieldbusなどをサポートする任意の数の他の有線または無線通信リンクを使用することによってなど、バックボーン108以外の1つ以上の通信ネットワークを使用して、無線ゲートウェイ168に通信可能に接続され得る。
【0054】
例として、Emerson Process Managementによって販売されているDeltaV(商標)コントローラであり得るコントローラ110は、フィールドデバイス125~132および140~146のうちの少なくともいくつかを使用して、バッチ産業プロセスまたは連続産業プロセスを実装するように動作し得る。一実施形態では、プロセス制御データハイウェイ108に通信可能に接続されることに加えて、コントローラ110はまた、例えば、標準4-20mAデバイス、I/Oカード112、115、および/またはFOUNDATION(登録商標)フィールドバスプロトコル、HART(登録商標)プロトコル、WirelessHART(登録商標)プロトコルなどの任意のスマート通信プロトコルと関連付けられた、任意の所望されるハードウェアおよびソフトウェアを使用して、フィールドデバイス125~132および140~146のうちの少なくともいくつかと通信可能に接続される。図3では、コントローラ110、フィールドデバイス125~132、およびI/Oデバイス112、115は、有線デバイスであり、フィールドデバイス140~146は、無線フィールドデバイスである。当然ながら、有線フィールドデバイス125~132および無線フィールドデバイス140~146は、任意の他の所望の規格(複数可)またはプロトコル、例えば今後開発される任意の規格またはプロトコルを含む任意の有線または無線プロトコルに適合することができる。
【0055】
図3のプロセスコントローラ110は、1つ以上のプロセス制御ルーチン118(例えば、コントローラ110のメモリ122内に記憶されている)を実装または監督するプロセッサ120を含む。プロセッサ120は、フィールドデバイス125~132および140~146、ならびにコントローラ110と通信可能に接続されている他のノードと通信するように構成される。本明細書に記載される任意の制御ルーチンまたはモジュールは、そのように所望される場合は、その一部を異なるコントローラまたは他のデバイスによって実装または実行させてもよいことに留意されたい。同様に、プロセス制御プラント100内に実装されることになる本明細書に説明される制御ルーチンまたはモジュール118は、ソフトウェア、ファームウェア、ハードウェアなどを含む任意の形態をとり得る。制御ルーチンは、オブジェクト指向プログラミング、ラダー論理、シーケンシャル機能チャート、機能ブロックダイアグラムを使用するか、または任意の他のソフトウェアプログラミング言語もしくは設計パラダイムを使用するなどの、任意の所望されるソフトウェア形式で実装され得る。制御ルーチン118は、ランダムアクセスメモリ(RAM)または読み取り専用メモリ(ROM)などの任意の所望のタイプのメモリ122に記憶され得る。同様に、制御ルーチン118は、例えば、1つ以上のEPROM、EEPROM、特定用途向け集積回路(ASIC)、または任意の他のハードウェアまたはファームウェア要素にハードコードされ得る。したがって、コントローラ110は、任意の所望の様式で制御ストラテジまたは制御ルーチンを実装するように構成することができる。
【0056】
コントローラ110は、一般に機能ブロックと呼ばれるものを使用して制御戦略を実装し、各機能ブロックは、全体的な制御ルーチンのオブジェクトまたは他の部分(例えば、サブルーチン)であり、他の機能ブロックと連携して(リンクと呼ばれる通信を介して)動作して、MPDSCプラットフォーム10内にプロセス制御ループを実装する。制御ベースの機能ブロックは、典型的には、(i)送信機、センサ、もしくは他のプロセスパラメータ測定デバイスと関連付けられるものなどの入力機能(「入力ブロック」と呼ばれることもある)、(ii)PID、ファジー論理などを実施する制御ルーチンと関連付けられるものなどの制御機能(「制御ブロック」と呼ばれることもある)、または(iii)バルブなどのいくつかのデバイスの動作を制御して、プロセス制御プラント100内でいくつかの物理機能を実施する出力機能(「出力ブロック」と呼ばれることもある)、のうちの1つを実施する。当然のことながら、ハイブリッドおよび他のタイプの機能ブロックが存在する。
【0057】
機能ブロックはコントローラ110内に記憶され、それによって実行されてもよく、これは典型的には、これらの機能ブロックが標準4-20mAデバイスおよびHART(登録商標)デバイスなどのいくつかのタイプのスマートフィールドデバイス用に使用されるかもしくはそれと関連するときに成り立ち、または機能ブロックは、フィールドデバイスそのものの内部に記憶され、それによって実装されてもよく、これはFOUNDATION(登録商標)Fieldbusデバイスの場合に成り立ち得る。制御ルーチン118のうちの1つ以上は、機能ブロックのうちの1つ以上を実行することによって行われる1つ以上の制御ループを実装し得る。ある意味では、制御ルーチン118は、コントローラ110の構成要素挙動モジュールとみなされ得る。
【0058】
有線フィールドデバイス125~132は、センサ、バルブ、送信機、送信機、ポジショナなどの任意のタイプのデバイスであり得、一方、I/Oカード112および115は、任意の所望される通信またはコントローラプロトコルに適合する任意のタイプのプロセス制御I/Oデバイスであり得る。例えば、I/Oデバイス112、115は、I/O電子マーシャリングシステムに含まれ得る。図3では、フィールドデバイス125~128は、アナログラインまたは組み合わされたアナログおよびデジタルラインを介してI/Oカード112に通信する、標準4-20mAデバイスまたはHART(登録商標)デバイスであり、一方、フィールドデバイス129~132は、FOUNDATION(登録商標)フィールドバス通信プロトコルを使用してデジタルバスを介してI/Oデバイス115に通信する、FOUNDATION(登録商標)フィールドバスフィールドデバイスなどのスマートデバイスである。ただし、いくつかの実施形態では、有線フィールドデバイス125、126および128~131のうちの少なくともいくつか、ならびに/またはI/Oデバイス112、115のうちの少なくともいくつかは、追加的または代替的に、プロセス制御データハイウェイ108を使用して、および/または他の好適な制御システムプロトコル(例えば、Profibus、DeviceNet、Foundation Fieldbus、ControlNet、Modbus、HARTなど)を使用することによって、コントローラ110と通信する。いくつかの構成(図3には図示せず)では、フィールドデバイス125~132のうちの少なくともいくつかは、個々のI/Oデバイス112、115を介する代わりに、電子I/Oマーシャリングシステムを介してコントローラ110と通信し得る。
【0059】
図3では、無線フィールドデバイス140~146は、WirelessHART(登録商標)プロトコルなどの無線プロトコルを使用して、無線プロセス制御通信ネットワーク165を介して通信する。そのような無線フィールドデバイス140~146は、(例えば、無線プロトコルまたは別の無線プロトコルを使用して)無線通信するようにも構成される無線ネットワーク165の1つ以上の他のデバイスまたはノードと直接通信し得る。無線通信するように構成されていない1つ以上の他のノードと通信するために、無線フィールドデバイス140~146は、プロセス制御データハイウェイ108に、または別のプロセス制御通信ネットワークに接続された無線ゲートウェイ168を利用し得る。無線ゲートウェイ168は、無線通信ネットワーク165の様々な無線デバイス140~158へのアクセスを提供する。具体的には、無線ゲートウェイ168は、無線デバイス140~158、有線デバイス125~132、および/または物理プロセス制御プラント100の他のノードもしくはデバイスの間の通信連結を提供する。例えば、無線ゲートウェイ168は、プロセス制御データハイウェイ108を使用することによって、および/または物理プロセスプラント100の1つ以上の他の通信ネットワークを使用することによって、通信可能な連結を提供し得る。
【0060】
有線フィールドデバイス125~132と同様に、無線ネットワーク165の無線フィールドデバイス140~146は、物理プロセスプラント100内で、物理制御機能、例えば、バルブの開閉、またはプロセスパラメータの測定値の取得を実施する。しかしながら、無線フィールドデバイス140~146は、ネットワーク165の無線プロトコルを使用して通信するように構成されている。このように、無線フィールドデバイス140~146、無線ゲートウェイ168、および無線ネットワーク165の他の無線ノード152~158は、無線通信パケットの生産者でありコンシューマである。
【0061】
プロセスプラント100のいくつかの構成では、無線ネットワーク165は、非無線デバイスを含む。例えば、図3では、図3のフィールドデバイス148は、レガシ4-20mAデバイスであり、フィールドデバイス150は、有線HART(登録商標)デバイスである。ネットワーク165内で通信するために、フィールドデバイス148および150は、無線アダプタ152a、152bを介して無線通信ネットワーク165に接続される。無線アダプタ152a、152bは、WirelessHARTなどの無線プロトコルをサポートし、かつFoundation(登録商標)Fieldbus、PROFIBUS、DeviceNetなどの1つ以上の他の通信プロトコルもサポートし得る。加えて、いくつかの構成では、無線ネットワーク165は、無線ゲートウェイ168と有線通信する独立した物理デバイスであり得るか、または一体型デバイスとして無線ゲートウェイ168内に提供され得る、1つ以上のネットワークアクセスポイント155a、155bを含む。また、無線ネットワーク165はまた、無線通信ネットワーク165内の1つの無線デバイスから別の無線デバイスにパケットを転送するための1つ以上のルータ58を含み得る。図3では、無線デバイス140~146および152~158は、無線通信ネットワーク165の無線リンク160を経由して、および/またはプロセス制御データハイウェイ108を介して、互いに、および無線ゲートウェイ168と通信する。
【0062】
プラント100のバックエンド環境105
記載されるように、バックエンド環境105は、典型的にフィールド環境102の過酷な条件および材料から遮蔽および/または保護されている、コンピューティングデバイス、オペレータワークステーション、データベースまたはデータバンクなどの様々な構成要素を含み得る。例えば、バックエンド環境105は、(i)1つ以上のオペレータワークステーション170aおよび他のローカルもしくは遠隔ユーザインターフェースデバイス170b、(ii)1つ以上の構成アプリケーション172aおよび構成データベース172b、(iii)例えば、ツール、診断、資産管理システム、シミュレータ、および/もしくは他のタイプのアプリケーションを含み得る、1つ以上の他のタイプのアプリケーション175aおよび/もしくはデータベース175b、(iv)様々な無線プロトコルを使用してプラント100と関連付けられた他のデバイス(例えば、ユーザインターフェースデバイス170bもしくは他のデバイス)と通信する1つ以上の他の無線アクセスポイント178、(v)他のプラントへの1つ以上のプラントゲートウェイシステム180、(vi)物理プロセス制御プラットフォーム100の直接のOT層の外部にあるシステム185(例えば、クラウドコンピューティングおよび/もしくは他の好適なプラットフォーム上に実装され得る、企業のITネットワーク/システム、および/もしくは外部データネットワーク/システム)への1つ以上のエッジゲートウェイシステム182、ならびに/または(vii)プロセスプラント100をサポートするためにハードウェアおよびソフトウェアを介して専用に構成される他の物理構成要素、のうちのいずれか1つ以上を含み得、これらの各々は、データハイウェイ108に通信可能に接続され得る。
【0063】
オペレータワークステーションおよびユーザインターフェースデバイス170a、170b
オペレータワークステーション170aおよび他のユーザインターフェースデバイス172bは、物理プロセスプラント100のランタイム動作を視認および監視するために、ならびに任意の診断、補正、保守、および/または必要とされ得る他の措置をとるために、オペレータによって利用され得る。オペレータワークステーション172aのうちの少なくともいくつかは、プラント100内またはその近くの様々な防護された領域内に位置し得、いくつかの状況では、オペレータワークステーション172bのうちの少なくともいくつかは、遠隔に位置するが、それにもかかわらずプラント10と通信可能な接続状態にあり得る。オペレータワークステーション172a、172bは、有線または無線コンピューティングデバイスであり得る。
【0064】
構成アプリケーション172aおよび構成データベース172b
構成アプリケーション172aおよび構成データベース172bは、制御モジュール/ルーチン、ユーザインターフェース、データ監視/分析などの、プラント100の特定の態様を構成するために利用され得る。例えば、構成アプリケーション172aの様々なインスタンスは、ユーザが、プロセス制御モジュールを作成または変更し、データハイウェイ108を介してこれらのモジュールをコントローラ110にダウンロードして、オペレータインターフェースを作成または変更することを可能にし、オペレータインターフェースを介して、オペレータは、データを視認し、プロセス制御ルーチン内のデータ設定を変更して、フィールド環境102内の様々な物理構成要素にダウンロードされ得るデータ監視/分析ルーチンおよび機能などを作成または変更することができる。構成データベース172bは、作成された(例えば、構成された)モジュール、オペレータインターフェース、データ監視/分析などを記憶する。概して、構成アプリケーション172aおよび構成データベース172bは、集中化され、一体的な論理外観を有するが、構成アプリケーション172aの複数のインスタンスは、物理プロセス制御プラットフォーム100内で同時に実行され得、構成データベース172bは、複数の物理データストレージデバイスにわたって実装され得る。したがって、構成アプリケーション172a、構成データベース172b、およびそれらに対するユーザインターフェース(図示せず)は、様々なタイプのモジュール、例えば、制御モジュール、ディスプレイまたはオペレータインターフェースモジュール、および/または分析モジュールのための構成または開発システム172を含む。典型的には、必須ではないが、構成システム172用のユーザインターフェースは、プラント100が生産モードで動作しているか否かにかかわらず、構成システム172用のユーザインターフェースが構成および開発エンジニアによって利用されるが、それに対して、オペレータワークステーション/ユーザインターフェースデバイス170が、物理プロセスプラント100のランタイム動作中にオペレータによって利用されるため、オペレータワークステーション/ユーザインターフェースデバイス170とは異なる。
【0065】
MPDSCプラットフォーム100の物理構成の試運転に関して、構成データベース172bは、プロセスプラントフロアまたはフィールド環境102上に実装されることが計画または所望される種々の物理デバイスまたは構成要素およびそれらの相互接続を特に識別および/またはアドレス指定する、データおよび他の情報を記憶し得る。この試運転データのいくつかは、その中のデバイスおよびループの試運転に使用するために、フィールド環境102内の構成要素に提供され得、このデータのうちのいくつかは、例えば、物理プロセスプラント100のライブ動作中にフィールド環境102と連携して動作することになる、制御モジュール、ペレータインターフェースモジュール、および/または分析モジュールの設計、開発および準備のためにバックエンド環境105で利用され得る。一例では、承認された制御モジュールは、構成データベース172bからプロセスコントローラ110にダウンロードされ、それにより、ライブ動作中に実行されると、プロセスコントローラ110は、その常駐制御モジュールに従って動作して、そのループ内の他の構成要素に/から(および、場合によっては、他のプロセスコントローラに/から)様々な信号を送受信し、それによって、物理プロセスプラント100内のプロセスの少なくとも一部分を制御する。
【0066】
構成データベース172bは、フィールド環境102内の構成要素のいくつかの論理識別子を記憶し得、コントローラ110および他のデバイスが、論理識別子によって、構成要素および構成要素と関連付けられた信号を参照することを可能にする。例えば、所与のフィールドデバイスについて、構成データベース172bは、論理識別子を特定のハードウェアアドレスまたはI/Oチャネルにマッピングまたは結合する情報を記憶し得る。ハードウェアアドレスは、特定のコントローラ、特定のコントローラに接続された特定のI/Oデバイス、および/または特定のI/Oデバイスをフィールドデバイスに接続するI/Oチャネル用の特定のアドレスを識別し得る。いくつかの場合では、このマッピングまたは結合は、コントローラ110、ユーザインターフェースデバイス170b、オペレータワークステーション170a、または任意の他の所望されるデバイス(例えば、論理識別子を解決することを必要とする任意のデバイス)に記憶され得る。論理識別子がハードウェアアドレスまたはI/Oチャネルに結合された後、識別子は、「割り当てられた」とみなされる。場合によっては、プラント100は、「割り当てられていない」論理識別子を含み、これらは、ソフトウェア要素(例えば、制御ルーチンおよび/または機能ブロック)が参照するが、結合を有していない識別子である。つまり、論理識別子は、プラント100および構成データベース172bが、タグに結合されていないハードウェアアドレスまたはI/Oチャネルを有していないときに「割り当てられていない」とみなされる。したがって、割り当てられていない論理識別子が制御ルーチンによって参照されると、プラント100内の信号によって運ばれる値が読み出されないことになり、コマンドがプラント100内のフィールドデバイスを介して送信されないことになる。
【0067】
そのような論理識別子の例としては、各々が、特定の計器、コントローラ、バルブ、または他の物理フィールドデバイスを表す、デバイスタグ(DT)と、各々が、特定のデバイスによって受信または生成され、フィールドデバイスによって利用される特定のパラメータに典型的に対応する、特定の信号を表す、デバイス信号タグ(DST)とが挙げられる。いくつかのデバイスについて、デバイス信号タグは、デバイスのデバイスタグと、そのデバイスによって受信または生成された特定の信号の識別子、例えば、制御モジュールによって参照される特定のパラメータの識別子との組み合わせを含む。いくつかのデバイス、典型的には、レガシまたはダムデバイスについて、デバイスタグは、物理デバイスおよびデバイスによって生成された信号の両方を表す。一般的に言うと、デバイスの論理識別子は、デバイスを一意に識別するために、フィールド環境102およびバックエンド環境105の両方で物理プロセスプラント100によって使用される。DTおよびDSTは、「システムタグ」または「システム識別子」と呼ばれ得る。
【0068】
いくつかの場合では、スマートフィールドデバイス129~132はまた、スマートフィールドデバイス129~132に一意の論理識別子も記憶し得る。これらの論理識別子は、フィールドデバイス129~132を識別するためにプラント100によって利用されるシステムタグとは別個であり得、「ソース識別子」または「ソースタグ」と呼ばれ得る。ソースタグは、実装に依存して、構成データベース172bに記憶されてもよく、または記憶されなくてもよい。
【0069】
構成データベース172bは、仮想プラント環境12に実装されることが計画または所望される様々な仮想デバイスまたは構成要素(例えば、様々な仮想ノード30)を具体的に識別および/またはアドレス指定するデータおよび他の情報を記憶し得る。物理デバイスおよび構成要素と同様、構成データベース172は、仮想環境12の構成要素のそれぞれの論理識別子を記憶し、それによって、他のデバイスおよび/または構成要素(物理または仮想にかかわらず)が仮想構成要素を参照することを可能にし得る。例えば、物理ノード40xと同様、様々な仮想ノード30xは、それらのそれぞれのデバイスタグ(DT)、デバイス信号タグ(DST)、ソースタグ、および/または他のタイプの一意の識別子を介して、MPDSCプラットフォーム10内で(例えば、仮想環境12および物理環境15の両方にわたって)一意に識別され得る。この開示のさらなるセクションは、仮想デバイスおよび構成要素の構成および識別をより詳細に考察する。
【0070】
他のアプリケーション175aおよびデータベース175b
他のアプリケーション175aおよびデータベース175bは、診断アプリケーション/データベース、データヒストリアンアプリケーション/データベース、システムレベル健全性監視アプリケーション/データベース、ローカルおよび/または遠隔ユーザインターフェースなどの、プロセスプラント100に固有であるアプリケーションのインスタンスを含み得る。一般的に言うと、他のアプリケーション175aおよびデータベース175bは、プロセスプラント100のOT層18上で実行される1つ以上のアプリケーションおよびそれらの関連付けらえたデータベースを含み得る。追加的または代替的に、他のアプリケーション175aおよびデータベース175bは、在庫管理アプリケーション、人事管理アプリケーション、サプライチェーン管理アプリケーション、他のタイプの企業関連アプリケーション、気象/環境アプリケーションなどの、プロセスプラント100と関連付けられたIT層20で実行される1つ以上のアプリケーションと、それらの関連データベースとを含み得る。例えば、他のアプリケーション175aおよびデータベース175bは、アプリケーション21a~21nおよびそれらの関連データベースを含み得る。さらに追加的または代替的に、他のアプリケーション175aおよびデータベース175bは、シミュレーションアプリケーション、分析アプリケーション、IoTアプリケーション、IIoTアプリケーションなどの、プロセスプラント100および/またはその企業の外部にある、および/またはそれらから遠隔で実行される、1つ以上のアプリケーションと、それらの関連データベースとを含み得る。例えば、他のアプリケーション175aおよびデータベース175bは、アプリケーション22a~22mおよびそれらの関連データベースを含み得る。他のアプリケーション175aおよびデータベース175bは、サードパーティアプリケーションを含み得る、および/またはプロセスプラント100と関連付けられた企業によって提供されるアプリケーションを含み得る。他のアプリケーション175aおよびデータベース175bのうちの少なくともいくつかは、エッジゲートウェイシステム28ならびに/またはいくつかの他のタイプのセキュリティおよび/もしくはファイアウォールシステムを介してアクセスされ得る。
【0071】
無線アクセスポイント178
1つ以上の他の無線アクセスポイント178は、バックエンド環境105内(および、場合によっては、フィールド環境102内)のデバイスが、Wi-Fiもしくは他のIEEE802.11準拠の無線ローカルエリアネットワークプロトコルなどの無線プロトコルか、WiMAX(Worldwide Interoperability for Microwave Access)、LTE(Long Term Evolution)もしくは他のITU-R(国際電気通信連合無線通信部門(International Telecommunication Union Radio Communication Sector)互換性プロトコルなどのモバイル通信プロトコルか、近距離無線通信(NFC)およびBluetoothなどの短波無線通信か、または他の無線通信プロトコルを使用して、他のデバイスと通信することを可能にする。典型的には、そのような無線アクセスポイント178は、ハンドヘルドまたは他のポータブルコンピューティングデバイス(例えば、ユーザインターフェースデバイス170b)が、無線ネットワーク165とは異なり、無線ネットワーク165とは異なる無線プロトコルをサポートする、それぞれの無線プロセス制御通信ネットワークを介して通信することを可能にする。例えば、無線またはポータブルユーザインターフェースデバイス170bは、物理プロセスプラント100内のオペレータによって利用される、モバイルワークステーションまたは診断試験機器(例えば、オペレータワークステーション170aのうちの1つのインスタンス)であり得る。いくつかのシナリオでは、携帯用コンピューティングデバイスに加えて、1つ以上のプロセス制御デバイス(例えば、コントローラ110、フィールドデバイス125~132、または無線デバイス168、140~158)もまた、アクセスポイント174によってサポートされる無線プロトコルを使用して通信する。
【0072】
ゲートウェイシステム180、182
ゲートウェイノードまたはシステム180および182は、直接の物理プロセス制御プラント100の外部にあるシステムとインターフェースし得る。典型的には、そのようなシステムは、物理プロセスプラント100によって生成または動作される情報のコンシューマまたは供給側である。例えば、プロセス制御プラント100は、直接の物理プロセスプラント100を別のプロセスプラントと通信可能に接続するためのプラントゲートウェイノード180を含み得る。追加的または代替的に、プロセス制御プラント100は、直接の物理プロセスプラント100を、研究所システム(例えば、研究所情報管理システムまたはLIMS)、オペレータラウンドデータベース、データ統合および視認システム、データ分析システム、材料ハンドリングシステム、資産管理システム、保守管理システム、製品在庫制御システム、生産スケジューリングシステム、気象データシステム、出荷およびハンドリングシステム、包装システム、インターネット、IOTアプリケーション、IIOTアプリケーション、または他の外部システムなどの、外部のパブリックまたはプライベートシステムと通信可能に接続するためのエッジゲートウェイノードまたはシステム182を含み得る。
【0073】
一般的に言うと、エッジゲートウェイシステム182は、通信が、プロセスプラント100と他のネットワーク185との間で安全に配信されることを可能にする。例示的なアーキテクチャでは、エッジゲートウェイシステム182は、内部またはプラント向きエンジン(「フィールドゲートウェイ」と呼ばれ得る)および外部または外向きエンジン(「エッジゲートウェイ」と呼ばれ得る)を含み、プラント向きエンジンおよび外部向きエンジンは、プラントデータのコンシューマである外部ネットワークおよび/またはアプリケーション(例えば、IT層、ならにび/または外部ネットワークおよび/もしくはシステム)にプロセスプラントデータ(例えば、OT層によって生成されたデータ)を安全に配信するように連携する。多くの実施形態のうちの1つでは、プラント向きエンジンは、プロセスプラント100の様々な構成要素によって生成されたデータを収集し、収集されたデータを、例えば、第1のパブリケーションセットを介して、1つ以上の安全な通信リンクを介して外部向きエンジンに安全に送信する。外部向きエンジンは、プラント向きエンジンによって生成された様々なパブリケーションをサブスクライブしており、そこから、収集されたプラントデータを取得する。次に、外部向きエンジンは、取得されたプラントデータを、ネットワーク185内の1つ以上の外部クライアントアプリケーション(例えば、アプリケーション21a~21n、22a~22m)に、例えば、第2のパブリケーションセットを介して安全に送信する。プラント向きエンジンおよび/または外部向きエンジンでのパブリケーションおよびサブスクリプションは、それぞれ、必要に応じて構成され得る。ただし、典型的には、プラント向きエンジンと外部向きエンジンとの間で利用されるパブリケーション/サブスクリプション、暗号化、および/または他の安全なデータ配信機構は、外部向きエンジンと外部アプリケーションとの間で利用されるパブリケーション/サブスクリプション、暗号化、および/または他の安全なデータ配信機構とは異なる。いくつかの実施形態では、追加の安全性のために、エッジゲートウェイシステム182は、データが外部ネットワーク185からプロセスプラント100に流れることを防止するために、プラント向きエンジンと外部向きエンジンとの間に配設された一方向データダイオードを含む。エッジゲートウェイシステムの例は、米国特許公開第2018/0115516号、同第2018/0115528号、同第2018/0115517号、および同第2018/0113442号に見出され得、これらの開示全体は、参照により本明細書に組み込まれる。当然ながら、他のエッジゲートウェイシステムが、追加的または代替的にプロセスプラント100によって利用され得る。
【0074】
図3は、例示的なプロセスプラント100内に含まれる、有限数のフィールドデバイス125~132および140~146を含む単一のプロセスコントローラ110、無線ゲートウェイ168、無線アダプタ152、アクセスポイント155、ルータ158、ならびに無線プロセス制御通信ネットワーク165のみを例示しているが、これは、例示的かつ非限定的な実施形態に過ぎない点に留意されたい。任意の数のコントローラ110が、プロセス制御プラントまたはプラットフォーム100内に含まれ得、コントローラ110のいずれかが、任意の数の有線または無線デバイスおよびネットワーク125~132、140~146、168、152、155、158および165と通信して、プラント100内のプロセスを制御してもよい。
【0075】
ここで、物理ノードに関して図1および図3を一緒に参照すると、図1に示される各物理ノード40a~40cおよびPNa~PNkは、図3のプロセス制御プラント100に関して考察された物理構成要素またはデバイスのそれぞれ1つであり得る。例えば、PN40bは、それぞれのPub/Sub層42bを有し、かつI/OカードPNgを介してフィールドデバイスPNhに通信可能に接続される、プロセスコントローラであり得る。別の例では、PN40cは、6つの異なるフィールドデバイスPNa~PNfが通信可能に接続されるCIOC(それぞれのPub/Sub層42cを有する)であり得るか、またはPN40cは、Pub/Sub層を有していない様々な他の物理構成要素PNa~PNfが通信接続される、無線アクセスポイント178もしくはEIOC(それぞれのPub/Sub層40cを有する)であり得る。さらに別の例では、PN40aは、そのPub/Sub層42aを介して、Pub/Subを有していない複数の他のPN、例えば、PNi~PNkに代わってプロセスI/Oデータを配信するI/OマーシャリングデバイスまたはI/Oハブデバイスであり得る。I/Oマーシャリングまたはハブデバイス40aは、スタンドアロンデバイスであり得るか、またはコントローラ110、I/Oデバイス112、115(例えば、CIOC、ECOC、WIOCなど)、アクセスポイント178、ゲートウェイ180、182内など、物理プラント環境15内に配設された別の物理構成要素内に含まれ得る。さらに、いくつかの実施態様では、エッジゲートウェイシステム28およびそのPub/Sub層38は、例えば、図3に関して考察されたような様式で、物理プラント環境15の様々な物理構成要素(例えば、PN40a~40cおよびPNa~PNk)に通信可能に接続される(図1には図示せず)物理ノードであり得る。
【0076】
I/Oスイッチ
上述のように、図1に示されるI/Oスイッチ25は、仮想通信ネットワーク45のノード間でI/Oデータを処理するためのデータブローカ、スイッチングファブリック、またはルータとして機能する。つまり、I/Oスイッチ25は、パブリッシュノードに代わって、パブリッシュノードによって生成されたI/Oデータを、そのデータをサブスクライブしているノードに転送する。一般的に言うと、I/Oスイッチ25は、どのノードによってどのI/Oデータがパブリッシュされ、どのノードがどのパブリッシュされたI/Oデータをサブスクライブしているかに関するレコードを維持(および更新)し得る。一実施形態では、I/Oデータは、MPDSCプラットフォーム10にわたって一意である一意の識別子、名前、もしくはタグによって、またはそれらに対するそれぞれの指示によって、レコード内で識別され得る。一意の識別子は、例えば、I/Oデータおよび/またはそのパブリッシュノードに含まれるプロセス関連ペイロードデータを識別し得る。一実施形態では、一意の識別子、名前、またはタグは、構成および/または試運転中に割り当てられる。I/Oスイッチ25は、記憶されたレコードを利用して、着信するパブリッシュされたデータを、パブリッシュされたデータのサブスクライブ者にルーティングする。例えば、I/Oスイッチ25は、様々なノード28、30x、40xによってパブリッシュされるI/Oデータをサブスクライブし得、パブリッシュされたI/Oデータを、そのサブスクリプションを介して受信すると、I/Oスイッチ25は、それ自体が、記憶されたレコードに従って、選択されたサブスクライバノード28、30x、40xに、受信されたI/Oデータをパブリッシュし得る。典型的には、必須ではないが、I/Oスイッチ25は、仮想通信ネットワーク45の他のノードによってパブリッシュされるI/Oデータおよび/またはプロセス関連ペイロードデータを維持、記録、または記憶しない。
【0077】
重要なことに、I/Oスイッチ25は、受信されたプロセスI/Oデータを最小遅延で切り替えるか、または転送するように構成される。実際、プロトタイプでは、I/Oスイッチ25は、負荷に依存して、500マイクロ秒未満、200マイクロ秒未満、および100マイクロ秒未満などの、数百マイクロ秒で測定された時間間隔でI/Oスイッチ25を通して、受信されたプロセスI/Oデータを転送することができた。
【0078】
一般的に言うと、I/Oスイッチ25は、ハードウェア、ファームウェア、および/またはソフトウェアを介して実装され得る。一例では、I/Oスイッチ25は、本明細書に説明されるI/Oスイッチ25機能のうちの少なくともいくつかを提供するために、専用のソフトウェアがインストールされる1つ以上の物理的なハードウェアデバイスを使用して実装され、つまり、I/Oスイッチ25は、器具として実装され得る。別の例では、I/Oスイッチ25は、本明細書に説明されるI/Oスイッチ25機能のうちの少なくともいくつかを提供するために、サーバまたはコンピューティングデバイスのバンク上にインストールされ、それらによって実行され得るソフトウェア(例えば、プログラム、ルーチン、アプリケーションなど)として実装される。さらに別の例では、I/Oスイッチ25は、例えば、仮想マシン、コンテナ(Docker、LXDなど)、または別のタイプの仮想化された実装として、仮想化を介して実装される。
【0079】
I/Oスイッチ25のPub/Sub層35は、概して、本開示内の他の箇所に説明されるPub/Sub層32x、38、42x、55xと同様の構成および機能である。しかしながら、I/Oスイッチ25のPub/Sub層35は、様々な識別されたプロセスI/Oデータに対するサブスクリプション要求を受理および維持するようにさらに構成される。上で考察されたように、サブスクリプションは、例えば、1つ以上の有形の非一時的なメモリ内に、I/Oスイッチ25に記録され、それによって維持される。さらに、I/Oスイッチ25のPub/Sub層35は、パブリッシュされたプロセスI/Oデータを、他のI/Oスイッチを含み得るサブスクライブノードに転送するように構成される。
【0080】
例示のために、図4は、図1のMPDSCプラットフォーム10に含まれ得る複数のI/Oスイッチ202、205、208、210の例示的な構成200を図示する。一例では、各I/Oスイッチ202、205、208、210は、それぞれのPub/Sub層を含む(それぞれのハッシュマークされた部分によって示されるように)、I/Oスイッチ25のアーキテクチャと同様のそれぞれのアーキテクチャを有する。また、I/Oスイッチ25と同様、各I/Oスイッチ202、205、208、210は、仮想通信ネットワーク225を介して、それぞれのVNおよび/またはPNセット212a~212n、215a~215m、218a~218p、および220a~220qと関連付けられて相互接続され、それらの間で、それぞれのI/Oスイッチ202、205、208、210は、上記の様式などで、パブリッシュおよびサブスクライブを介してプロセスI/Oデータを転送する。構成200は、4つのI/Oスイッチ202、205、208、210を含むが、構成200に関して本明細書に考察される概念は、メッシュトポロジで相互接続されるよりも多いまたは少ない数のI/Oスイッチに容易に適用される。
【0081】
図4では、各I/Oスイッチ202、205、208、210は、仮想通信ネットワーク225を介して、他のI/Oスイッチ202、205、208、210の各々にプロセスI/Oデータをさらに転送することができる。複数のI/Oスイッチ202、205、208、210を相互接続することによって、サービスされる仮想ノードおよび/または物理ノードの数は、より大きいシステム10をサポートし、追加の配信帯域幅を提供するように拡大されることができる。構成200では、各I/Oスイッチ202、205、208、210は、そのそれぞれのVN/PNセットに代わって、他のI/Oスイッチ202、205、208、210にデータをパブリッシュし得る。同様に、各I/Oスイッチ202、205、208、210は、それらのそれぞれのVN/PNセット212a~212n、215a~215m、218a-218p、220a-220qに代わって、他のI/Oスイッチ202、205、208、210によって転送されるデータをサブスクライブし得る。
【0082】
構成200は、I/Oスイッチ202、205、208、210の各々を、他のI/Oスイッチ202、205、208、210の各々に直接リンクされているものとして例示する。つまり、仮想通信ネットワーク225は、完全に相互接続された、またはメッシュのトポロジを有する。したがって、この構成200の実施態様では、パブリッシャノードからサブスクライバノードへの最大送信遅延は、特定のプロセスI/Oデータペイロードが受け得るホップの最大数が3であるため、制限される。構成200の他の実施態様では、ホップの最大数は、異なり得る。例えば、ホップの最大数は、例えば、トラフィックを監視するために、時系列ネットワーキングなどの時系列能力、または他の好適な時系列能力が利用されるときなどに増加し得る。構成200内のホップの最大数は、必要に応じて、構成および変更され得る。
【0083】
当然ながら、他の相互接続されたトポロジ(例えば、ハブアンドスポーク、スター、リング、ツリー、ハイブリッドなど)は、仮想通信ネットワーク225のメッシュトポロジに加えて、またはその代わりとして可能であり得る。一般的に言うと、特定のパブリッシュノード、例えば、ノード215aによってパブリッシュされたI/Oデータを処理するためのパブリッシュは、その対応するI/Oスイッチ、例えば、I/Oスイッチ205に対して行われ、管理される。しかしながら、サブスクリプションが要求される特定のデータについてのレコードをI/Oスイッチ205が有していない場合、I/Oスイッチ205は、サブスクリプション要求を他のI/Oスイッチ202、208、210に転送し得る。要求されたデータをパブリッシュするノードに対応する特定のI/Oスイッチ、例えば、パブリッシュノード220qに対応するI/Oスイッチ210は、要求されたデータおよびそのパブリッシュノード220qに対応するレコードを有することになり、要求ノード215aに対応するI/Oスイッチ205に応答することになり、その際、I/Oスイッチ105は、要求されたデータについての対応するレコードを作成および記憶し得る。このようにして、I/Oスイッチ210、205を介したパブリッシュノード220qからサブスクライブノード215aへの要求されたデータの横断ルートが確立され得る。
【0084】
一実施形態では、構成200は、複数のMPDSCシステム10にわたって実装され得る。例えば、I/Oスイッチ202は、第1のMPDSCシステムに含まれ得、I/Oスイッチ205は、異なるMPDSCシステムに含まれ得る。したがって、異なるMPDSCシステムは、仮想通信ネットワーク225の1つ以上のリンクを介して、互いのプロセスI/Oデータをパブリッシュおよび/またはサブスクライブし得る。
【0085】
リアルタイム仮想制御および関連動作
上述のように、仮想ノード30xは、物理プラント環境15内で動作可能である様々な物理構成要素の挙動を仮想化し得る。さらに、MPDSCプラットフォーム10の機能に起因して、仮想プラント環境12の仮想化された構成要素30xは、物理プラント環境15の物理構成要素と連動して動作して、ランタイム中に産業プロセスプラントのリアルタイム制御を実施し、それによって、原料から物的生産物を生成する。例示のために図1、2、および3を同時に参照すると、プロセスコントローラ110は、アーキテクチャ52aを有する仮想ノード30aとして仮想化され得る。したがって、ランタイム中に物理プロセスコントローラ110がその対応する制御モジュールまたはルーチン118を実行する代わりに、仮想ノード110/30aは、そのCBM58aとして制御モジュールまたはルーチン118を含み、対応する制御モジュールまたはルーチン118をランタイム中に実行し、I/Oスイッチ25を介して物理環境15内に配設された様々なフィールドデバイスに/から信号を送受信することを含み得る。
【0086】
例えば、産業プロセスプラント100のランタイム中、仮想コントローラ110/30aは、物理I/Oデバイス115を介してフィールドデバイス129によって生成されたデータを受信し得る。この例では、物理I/Oデバイス115は、図1では、物理ノードPNgによって表され、フィールドデバイス129は、図1では、物理ノードPNhによって表され、物理ノード40bは、I/Oハブデバイスである。フィールドデバイスPNhによって生成されたデータペイロードは、I/OデバイスPNgを介して、仮想通信ネットワーク45のノードであるI/Oハブデバイス40bに配信される。I/Oハブデバイス40bは、I/Oスイッチ25に、フィールドデバイスPNhによって生成され、I/Oスイッチ25がサブスクリプションを有するI/Oハブデバイス40bによってパブリッシュされたデータペイロードをパブリッシュし得る。次に、I/Oスイッチ25は、フィールドデバイスPNhによって生成されたペイロードデータを仮想コントローラ110/30aにパブリッシュし得、その後、仮想コントローラ110/30aのCBM58a(例えば、制御モジュール/ルーチン118)は、フィールドデバイスPNhによって生成されたペイロードデータに関して動作し得る。CBM58aは、仮想通信ネットワーク45を介して別の仮想ノードまたは物理ノードに配信されることになる出力ペイロードデータを生成し得る。
【0087】
別の例では、産業プロセスプラント100のランタイム中、仮想コントローラ110/30aは、無線フィールドデバイス142aによって生成されたデータを受信し得る。この例では、物理無線フィールドデバイス142aは、図1では、物理ノードPNaによって表され、物理無線ゲートウェイ168は、PN40cによって表される。無線ゲートウェイPN40cは、無線フィールドデバイスPNaによって生成されたペイロードデータを受信する。PN40cが仮想通信ネットワーク45のノードであるため、PN40cは、I/Oスイッチ25に、I/Oスイッチ25がサブスクリプションを有する無線フィールドデバイスPNaによって生成されたペイロードデータをパブリッシュする。次に、I/Oスイッチ25は、フィールドデバイスPNaによって生成されたペイロードデータを仮想ノード30bにパブリッシュし得、仮想ノード30bは、I/Oデバイス115などのI/Oデバイスの表現として構成される。仮想I/Oデバイス30bは、フィールドデバイスPNaによって生成され、I/Oスイッチ25によって転送されたペイロードデータをサブスクライブしている。したがって、仮想I/Oデバイス30bは、そのサブスクリプションを介して無線フィールドデバイスPNaによって生成されたペイロードデータを取得し、フィールドデバイスPNaによって生成された、取得されたペイロードデータを、適切なサブスクライバに転送するためにI/Oスイッチ25に新たにパブリッシュする。I/Oスイッチ25は、次に、仮想I/Oデバイス30bによってパブリッシュされたフィールドデバイスPNaの取得されたペイロードデータを、(この例では)仮想コントローラ30aを含む、そのそれぞれのサブスクライバにパブリッシュし得る。ペイロードデータに対する仮想コントローラ30aのサブスクリプションを介する仮想コントローラ30aでのペイロードデータの受信の際、仮想コントローラ30aのCBM58a(例えば、制御モジュール/ルーチン118)は、無線フィールドデバイスPNaによって生成されたペイロードデータに関して動作し得る。CBM58aは、仮想通信ネットワーク45を介して別の仮想ノードまたは物理ノードに配信されることになる出力ペイロードデータを生成し得る。
【0088】
産業プロセスプラントの物理構成要素の仮想化は、物理構成要素を使用して完全に実装される産業プロセスプラントよりも多くの利点を提供する。仮想化された構成要素は、産業プロセスプラントが、ハードウェア面積に対する最小限の変化、および低下した設置コストを伴って、サイズおよび構成要素の数を柔軟に拡大および/または縮小することを可能にする。仮想ノードが物理デバイス全体またはその一部分のみを表し得るため、制御は、例えば、必要とされる数の仮想ノードにわたって容易に拡縮され得る。加えて、MPDSCプラットフォーム10は、例えば、I/Oの抽象化を介してI/Oの柔軟性を提供し、その結果、コントローラは、実際に構成およびダウンロードされるI/Oモジュールの割り当てに対する低い依存性を有する。つまり、少なくともI/Oスイッチ25に起因して、物理I/Oデバイスとコントローラおよびフィールドデバイスとの間のI/O結合決定が排除され得る。さらに、仮想物理構成要素を使用することによって、仮想化された物理構成要素に対するソフトウェアアップグレードが容易に達成される。またさらに、MPDSCプラットフォーム10を使用することによって、物理構成要素の挙動のシミュレーションおよびオンライン試験もまた、容易に達成され、現在既知の技術よりも改善される。
【0089】
仮想化管理ノード
図5は、図1のMPDSCシステム10の構成、試運転、管理、および運営をサポートする例示的なアーキテクチャを例示するブロック図である。明確化の目的で、限定の目的ではなく、図5は、図1~4を同時に参照して本明細書で考察される。図5に示されるように、仮想化管理ノード300(本明細書では「VMN300」または「仮想ノード300」と互換的に呼ばれる)は、I/Oスイッチ25、様々な仮想ノード30x、仮想PIOサブシステム60、パブリッシュ/サブスクライブ層32x、35、38、42xなどの、MPDSCシステム10の仮想化された構成要素を作成、構成、および管理する。VMN300は、仮想構成要素の作成、構成、および管理のうちの少なくともいくつかを自動的に実施する。追加的または代替的に、VMN300は、手動指示、例えば、ローカルまたは遠隔ユーザインターフェースであり得る、VMN300のユーザインターフェース302を介して受信される手動指示に基づいて、仮想構成要素の作成、構成、および管理のうちの少なくともいくつかを実施する。さらに、仮想化管理ノード300は、仮想プロセス環境12のシミュレーション活動を駆動および/または調整し、これは、以下により詳細に説明されるように、シミュレーション中にインラインユーザ入力を伴っておよび/または伴わずに実施され得る。
【0090】
仮想構成要素の構成、運営、および管理
一実施形態では、仮想環境12およびその構成要素の構成および/または試運転中、VMN300は、プラントのシステム構成データベースにアクセスし(例えば、VMN300は、データハイウェイ108を介してプラント100の構成データベース172bにアクセスし)、取得された構成に基づいて、VMN300は、仮想ノードのタイプおよび数、仮想テンプレートおよび/もしくはサブシステム、I/Oスイッチ、ならびに/またはプラント構成を最良にサポートする(もしくはサポートするために所望される)他の仮想構成要素を決定する。VMN300は、様々なタイプおよび数の仮想ノード30xを作成し、I/Oスイッチ25および仮想ノード30xを、仮想通信ネットワーク45を介して、例えば、それぞれのパブリッシュ/サブスクライブ層32xを介して、およびいくつかのVN30xについて、仮想PIOサブシステム60を介して通信するように構成する。いくつかのプラント構成について、VMN300は、パブリッシュ/サブスクライブ層42xのインスタンス(および任意選択的に、仮想PIOサブシステム60のインスタンス)を作成し、物理プラント環境15の様々な物理構成要素40xに配布し得る。したがって、VMN300は、仮想通信ネットワーク45の任意の数のノード25、28、30x、40xを作成、構成、および運営し得、これらは、リアルタイム制御および/または動的シミュレーションを実施するように、物理プラントの物理構成要素と連携して動作する仮想構成要素を含み得る。
【0091】
仮想通信ネットワーク45およびそのノード25、28、30x、40xの構成は、システム構成データベース172b内に記憶され得る、および/または仮想環境構成データベース305内にローカルに記憶され得る。いくつかの実施態様では、仮想プラント環境12の構成のマスタバージョンが、システム構成データベース172b内に記憶され(物理プラント環境15の構成と共に)、仮想プラント環境12のマスタ構成のコピーが、仮想環境構成データベース305内にローカルに記憶される。いくつかの実施態様では、仮想プラント環境12の構成のマスタバージョンは、仮想環境構成データベース305内に記憶され、仮想プラント環境12のマスタ構成のコピーは、システム構成データベース172b内に記憶される(物理プラント環境15の構成と共に)。VMN300は、仮想環境構成データベース305内に記憶されたデータおよびシステム構成データベース172b内に記憶された関連データの変更管理および同期を調整する。
【0092】
プラント100がプロセスプラント100のランタイム中に動作プロセス制御を実施している間、VMN300は、I/Oスイッチ25、仮想ノード30x、仮想通信ネットワーク45および任意の関連ノード(物理ノード40x、28など)を、例えば、リソース読み込み、リソース可用性、リソース帯域幅、障害発生、および仮想環境12をサポートする物理コンピューティングプラットフォーム、例えば、仮想環境12をサポートするハードウェアコンピューティングデバイスのプラットフォームによって提供されるハードウェアおよび/またはソフトウェアリソースの他の性能問題に関して監視し得る。検出および/または予測された条件に基づいて、VMN300は、例えば、負荷分散、障害回復、および他の性能目的のために、リソース割り当ての調整、待機仮想ノードのアクティブ化、仮想ノードの作成および/または削除などの、ランタイム動作中の軽減措置を自動的に実施し得る。一例として、VMN300は、性能ボトルネックを分析し、自動平準化動作を実施して、任意の検出されたボトルネックを軽減し得る。例えば、VMN300は、仮想通信ネットワーク45上の仮想ネットワークトラフィック量に応答して、プロセスデータレベルで自動平準化を実施し得る、ならびに/またはVMN300は、仮想環境12が実装されるコンピューティングデバイス、物理データリンク、および/もしくは物理ネットワークにわたって、CPUおよび/もしくは物理ネットワーク利用が分散されるように、物理コンピューティングデバイスレベルで自動平準化を実施し得る。
【0093】
運営上、VMN300は、様々な仮想ノード、仮想テンプレートおよびサブシステム、ならびに関連プロセスデータの保存、スナップショット、バックアップ、移行、復元などを実施し得、VMN300は、仮想環境12自体の全体の保存、スナップショット、バックアップ、移行を実施し得る。一実施形態では、VMN300によって実施される各運営措置は、対象仮想ノードによってシミュレートされる論理の全体(例えば、対象仮想ノードの集合的なCBMセット58によって実施される論理の全体)に適用され得る。例えば、仮想コントローラのスナップショットを取得および保存するとき、VMN300は、仮想コントローラならびにその相互接続および動作状態の受信、それらで動作する、それらによって生成される、およびそれらを示すデータを保存するのみならず、仮想コントローラと連携して実行されるモジュールの関連データも、そのようなモジュールが他のノード上でホストされる、および/または他の物理構成要素をシミュレートする場合でも、スナップショットの一部として保存し得る。別の例では、仮想CIOCのスナップショットを取得および保存するとき、VMN300は、仮想CIOCの仮想マシンレベルに対応するデータを保存し得る、および/またはVMN300は、仮想CIOCによって観察されたプロセスシミュレーション値を保存し得る。
【0094】
動的シミュレーション
上述のように、MPDSCシステム10は、プロセスプラント100全体および/またはその一部分の動的シミュレーションをサポートする。例えば、MPDSCシステム10は、リアルタイムシミュレーションを提供し、リアルタイムシミュレーションは、対応する物理構成要素および/または物理動作プロセスの少なくとも一部のランタイムタイミング、値、および/または他の挙動を反映する。本明細書に利用される際、「シミュレーション」および「シミュレーション実行」という用語は、互換的に利用され、シミュレーションまたはシミュレーション実行は、有限である。つまり、各シミュレーションまたはシミュレーション実行は、それぞれの開始およびそれぞれの終了を有し、これらは、例えば、時間、パラメータ値、状態、ユーザコマンド、および/または他の基準に基づいて、必要に応じて定義され得る。
【0095】
加えて、MPDSCシステム10は、例えば、シミュレーション実行のペースの高速化または低速化、シミュレーションの一時停止、様々な値の挿入および/または変更、初期条件の変更などの、シミュレーションの操作を提供する。シミュレーションは、MPDSCシステム10の仮想環境12内で完全に実行され得る、および/またはシミュレーションは、1つ以上の物理構成要素と連携して1つ以上の仮想またはシミュレートされた構成要素を使用して実行され得る(例えば、仮想環境12内の仮想ノードによってシミュレートされたコントローラの構成は、シミュレートされたコントローラ挙動を試験するために、物理環境15内に配設された物理フィールドデバイスと通信し得る)。一般的に言うと、MPDSCシステム10は、プラットフォームを提供し、これを介して、エンジニアおよびユーザは、ドラフト制御戦略およびドラフトオペレータ表示を試験および検査し、プロセス改善を調査し、オペレータ訓練を実施し、事例研究を実施するなどを行う。VMN300は、MPDSCシステム10によってサポートされるシミュレーション活動を管理、調整、および駆動する。
【0096】
特に、VMN300は、物理プラント100の少なくとも一部分をシミュレートする仮想ノード25、30xおよび他の仮想構成要素28、32、35、38、42x、60を作成、構成、および運営する。シミュレーション目的のみに利用される(ランタイム制御目的では利用されない)仮想ノード25、30xは、本明細書では「シミュレートされたノード」と互換的に呼ばれる。例えば、VMN300は、例えば、コントローラ110、ワークステーション170a、および/または他の物理デバイスならびにそれらの対応するネットワーク相互接続などの統合物理ハードウェア構成要素をシミュレートする(いくつかの実施態様では、MACアドレスレベルまでシミュレーションする)、シミュレートされたノードを利用することによって、プラント構成データベース172bによって説明されるようにランタイム制御システム全体のミラーシミュレーションシステムを生成し得る。別の例では、VMS300は、1つ以上の個々の物理構成要素のそれぞれのシミュレーションを生成し得、それらの各々は、スタンドアロンモードで、または1つ以上の他のシミュレーとされた、仮想、および/または物理構成要素と連携して実行され得る。例えば、VMS300は、物理構成要素に適用されることになる、例えば、新しい制御構成、アップグレード、パッチなどを試験するために、物理環境15内で現在動作している物理構成要素の仮想対を仮想環境12内で生成し得る。別の例では、VMS300は、特定の物理構成要素のMACアドレスレベル挙動のシミュレーションを生成し得る。さらに別の例では、VMS300は、制御ループまたはオペレータ表示ビューなどの物理デバイス、構成要素、またはノードのグループのリアルタイム動作挙動をシミュレートする一体的な(例えば、単一の)シミュレートされたノードを生成し得る。
【0097】
プロセス制御システム100の仮想環境12および物理環境15内で利用されるデータ値のタイプの構成に関して、一実施形態では、システムプロセスデータ定義(システム構成アプリケーション172aを介しておよび/またはVMS300を介して構成され得る)は、プロセスプラント100内で利用されるどのデータ値(および/またはそのタイプ)がシミュレートされることになるかを定義し、VMS300は、それぞれのデータタグ(例えば、識別子)を、シミュレートされることになるデータ値(および/またはそのタイプ)に割り当てる。例えば、VMS300は、シミュレートされることになる少なくともいくつかのデータ値および/もしくはデータタイプにデータタグを自動的に割り当て得る、ならびに/またはVMS300は、シミュレートされることになる少なくともいくつかのデータ値および/またはデータタイプの手動で生成されたデータタグを、例えば、ユーザインターフェース302を介して受信し得る。シミュレートされたデータ値および/またはデータタイプの割り当てられたデータタグは、仮想環境構成データベース305内および/またはシステム構成データベース172b内に記憶され得る。
【0098】
加えて、VMN300は、物理プラント100全体および/またはその一部分のシミュレーションを駆動および/または調整する。このため、仮想環境12は、シミュレータAPI(アプリケーションプログラミングインターフェース)310または他の好適なアクセス機構を提供し、それを介して、ユーザインターフェース302、IT層アプリケーション21x、および/またはサードパーティもしくは外部アプリケーション22xなどのアプリケーションが、シミュレーションの目的で仮想環境12とインターフェースし得る。一実施形態では、仮想環境12内のVMN300または他のコンピューティングデバイスは、シミュレータAPI310を他のアプリケーションにホストおよび/または公開する。
【0099】
図5に示されるように、シミュレータAPI310は、仮想環境12およびそこに含まれるシミュレートされた構成要素に、およびそれらから、I/Oスイッチ25を介して、シミュレートされたデータ値(本明細書では、「シミュレーションデータ値」、「シミュレートされた値」、および/または「シミュレーション値」とも互換的に呼ばれる)を通信する。一般的に言うと、シミュレートされたランタイムプロセスデータは、ノードのそれぞれのPub/Sub層を介して、28、30xとシミュレータAPI310との間で配信される。例えば、シミュレートされたノード28、30x、310は、I/Oスイッチ25を介して1つ以上の他のシミュレートされたノード28、30x、310にランタイムプロセスデータをパブリッシュするものであり得、シミュレートされたノード28、30x、310は、1つ以上の他のシミュレートされたノード28、30x、310によって生成され、かつI/Oスイッチ25を介して受信される、リアルタイムプロセスデータをサブスクライブし得る。一方、一実施形態では、ランタイムプロセスデータではないシミュレートされたデータ値(例えば、構成可能であり、典型的には、物理環境15でのダウンロード時間中に割り当てられるデータ値)は、変化ベースで、例えば、データのそれぞれの値が変化したときのみ、シミュレートされたノード28、30x、310間で配信され得る。
【0100】
シミュレータAPI310は、仮想環境12内でシミュレートされた構成要素の名前、データタグ、識別子、データ定義、チャネルデータなどを用いて構成され(例えば、仮想構成データベース305内に記憶されたデータに基づいて)、シミュレータAPI310はまた、例えば、OPC、イーサネット、IPv6などの標準化されたプロトコルである1つ以上の産業用および/または汎用通信/データプロトコルを使用して通信するように構成される。したがって、シミュレータAPI310は、仮想環境12、およびシミュレーションデータのコンシューマおよび/または提供側であり、かつ1つ以上の産業用および/または汎用通信/データプロトコルを利用する、他のアプリケーション302、21x、22xとの間のデータ配信および伝送機構として機能する。例えば、サードパーティシミュレーションアプリケーションは、シミュレータAPI310を利用して、シミュレートされた構成要素による使用のためのテスト値を注入し、シミュレーション実行の初期条件を変更するなどを行い得る。
【0101】
追加的または代替的に、シミュレータAPI310は、ユーザインターフェース302を介して、および/または他のアプリケーション21x、22xによって提供されるシミュレーションコマンドを取り扱う。例えば、シミュレータAPI310は、モジュール実行のペースを高速化および/もしくは低速化する(その少なくとも一部分が仮想環境12内でシミュレートされる)、ならびに/またはI/O処理のペースを高速化および/もしくは低速化する、シミュレーションコマンドを受信し得、関連付けられたシミュレートされたノード30x、28および/または仮想通信ネットワーク45のタイミングおよび措置を適宜駆動し得る。別の例では、シミュレータAPI310は、シミュレーション中に様々なデータ値を注入および/または変更するためのシミュレーションコマンドを受信し得る。さらに、シミュレータAPI310は、例えば、スナップショットを保存する、保存されたスナップショットを検索する、保存されたデータから復元するなどの運営シミュレーションコマンドを受信し得、それに応じて対応する措置を実施し得る。例えば、シミュレータAPI310は、シミュレーションコマンドを受信し、それに応答して、プロセスプラント100全体のシミュレーションを保存、検索、復元する(例えば、仮想環境構成データベース305に/から、および/またはシステム構成データベース172bに/から)を保存、検索、復元などすることができる。システム構成データベース172b)と共に、プロセスプラント100の1つ以上のノードまたは構成要素のシミュレーションを保存、検索、復元するなどを行い得る。
【0102】
一般的に言うと、シミュレーションAPI310は、ステートフルである。つまり、シミュレーションAPI310は、シミュレーション実行時にそれと関連付けられたシミュレーションおよび構成要素の様々な状態(例えば、仮想、物理、および/またはシミュレートされたデバイス、仮想、物理、および/またはシミュレートされたモジュール、他のタイプの仮想、物理、および/またはシミュレートされた構成要素、シミュレーションによって少なくとも部分的にシミュレートされているプロセス、シミュレーション全体の状態など)を認識し、様々な状態に基づいて受信されたコマンドに応答する。例えば、保存コマンドに応答して、シミュレーションAPI310は、関連構成要素の状態を示すデータと共にプロセスデータを保存し得る。別の例では、テスト目的のためにコントローラ内で実行される変更された制御モジュールをシミュレートするときに、シミュレーションAPI310は、ユーザが関連モジュールの状態を変化させて、変更された制御モジュールが関連モジュールの異なる状態にどのように応答するかを決定することを可能にし得る。
【0103】
図6は、産業プロセスプラントのプロセス制御システム内でリアルタイム制御を実施している複数の仮想ノードの負荷および/または性能レベルを分散する例示的な方法のフロー図である。方法400の実施形態の少なくとも一部分は、図1の多目的動的シミュレーションおよびランタイム産業もしくはプロセス制御(MPDSC)システムもしくはプラットフォーム10の1つ以上の部分によって、ならびに/またはその任意の1つ以上の構成要素によって実施され得る。実施形態では、方法400は、図2の仮想ノード52a、52bの実施形態の1つ以上の部分、図3の物理プラント環境100の実施形態および/もしくはそれらの構成要素のうちの1つ以上の部分、図4のI/Oスイッチの構成200の実施形態の1つ以上の部分、ならびに/または図5の仮想化管理ノード300の実施形態の1つ以上の部分と連携して実施され得る。例えば、方法400の少なくとも一部分は、図5のVMN300によって実施され得る。例示の容易さのために、限定の目的ではなく、方法400は、図1~5の部分を同時に参照して本明細書に説明される。さらに、方法400は、実施形態では、本明細書に説明されているもの以外の、より多い、より少ない、および/または代替のステップを含み得る。
【0104】
図6に例示されるように、方法400は、産業プロセスプラントのランタイム動作中、プロセス制御システムの複数の仮想ノードが実装される仮想化プラットフォームで発生する1つ以上の条件を検出および/または予測することを含み、1つ以上の条件は、複数の仮想ノードが、産業プロセスを制御するように動作している間、例えば、I/Oスイッチにデータをパブリッシュし、かつI/Oスイッチによってパブリッシュされたデータをサブスクライブすることによってリアルタイム制御を実施している間に発生する。仮想化プラットフォームは、図1のMPDSC10と同様であり得るか、または仮想化プラットフォームは、リアルタイム制御を実施する仮想ノードが実装される異なるプラットフォームであり得る。例示的な実施形態では、仮想化プラットフォーム上に実装された仮想ノードは、図1の仮想ランタイムノード30a~30pおよび/または図2の52a、52bと同様であり、I/Oスイッチは、図1のI/Oスイッチ25、または図4に例示されるI/Oスイッチの構成200などのI/Oスイッチのグループと同様である。
【0105】
複数の仮想ノードは、産業プロセスプラントの仮想環境内に配設され得、例えば、それらのそれぞれのパブリッシュ/サブスクライブ層を介してデータ(例えば、リアルタイム制御中に他のノードおよび/またはデバイスによって利用されるI/Oデータ)をパブリッシュし得る。追加的に、複数の仮想ノードは、例えば、仮想ノードがそれらのそれぞれのパブリッシュ/サブスクライブ層を介してそれぞれサブスクライブしているパブリッシュされたデータ(例えば、リアルタイム制御中に複数の仮想ノードによって利用されるI/Oデータ)を取得し得る。同様に、I/Oスイッチは、そのパブリッシュ/サブスクライブ層を介してデータ(例えば、リアルタイム制御中に利用され、複数の仮想ノードのうちの1つ以上によってサブスクライブされるI/Oデータ)をパブリッシュし得、I/Oスイッチは、複数の仮想ノードによってパブリッシュされており、かつI/Oスイッチが、例えば、他のノード/デバイスに転送または伝達するために、そのパブリッシュ/サブスクライブ層を介してサブスクライブしている、データ(例えば、リアルタイム制御中に利用されるI/Oデータ)を取得し得る。
【0106】
I/Oスイッチは、産業プロセスプラントのプロセス制御システム内に含まれ、産業プロセスプラントの物理環境内に配設された複数の物理ノードに複数の仮想ノードを通信可能に接続する。複数の物理ノードは、少なくとも1つのフィールドデバイスを含み、いくつかの構成では、物理機能を実施して産業プロセスのリアルタイム制御を有効化する複数のフィールドデバイスを含み得る。複数の物理ノードは、産業プロセスプラントのランタイム動作中、それらのそれぞれの物理機能を実施することによって、およびI/Oスイッチを介して複数の仮想ノードにデータを送信すると共に複数の仮想ノードからデータを受信することによって、産業プロセスを制御するように動作し、データは、物理ノードのそれぞれの物理機能を示すか、またはそれらに関連する。例えば、複数の物理ノードは、図1の物理ノード40a~40cおよびPNa~PNkと同様であり得る。複数の物理ノードは、例えば、層42a~42cなどのそれぞれのパブリッシュ/サブスクライブ層を介してI/Oスイッチと通信し得る。したがって、産業プロセスの少なくとも一部分を制御するように動作するプロセス制御システムのプロセス制御ループは、それぞれのパブリッシュ/サブスクライブ層を介して互いにデータを通信する(いくつかの場合では、他のタイプのデータ)、少なくとも1つの仮想ノード、I/Oスイッチ、および少なくとも1つの物理ノードを含み得る。
【0107】
一実施形態では、仮想化プラットフォームは、1つ以上のプロセッサおよび1つ以上の有形メモリを含む1つ以上の相互接続されたコンピューティングデバイスを備える。1つ以上の有形メモリは、特定のコンピュータ実行可能命令を記憶し、命令は、1つ以上のプロセッサによって実行されると、1つ以上の相互接続されたコンピューティングデバイスに、複数の仮想ノード、および、いくつかの実施態様では、複数の仮想ノードを相互接続する1つ以上のネットワークまたはリンクを提供させる。仮想化プラットフォームは、サーバのバンク、クラウドコンピューティングネットワーク、分散型コンピューティングシステム、または他の好適な構成として実装され得る。
【0108】
一般的に言うと、複数の仮想ノードの各仮想ノードは、各仮想ノード上に常駐するそれぞれ1つ以上の構成要素挙動モジュール(CBM)を利用することによって、産業プロセスの少なくとも一部分を制御するように動作する。各構成要素挙動モジュールは、それぞれの入力データ(例えば、常駐仮想ノードが対応するサブスクリプションおよびそのそれぞれのパブリッシュ/サブスクライブ層を介して受信した可能性があるデータ)に関して動作して、制御信号などの出力データを生成する。各仮想ノードは、生成された出力データをI/Oスイッチにパブリッシュし得る(例えば、そのそれぞれのパブリッシュ/サブスクライブ層を介して)。I/Oスイッチは、対応するサブスクリプションを介してパブリッシュされた出力データを取得し、例えば、サブスクライバおよび/または産業プロセスを制御する際にサブスクライバに関連するデバイスによる使用のために、出力データの内容をそれに対する1つ以上のサブスクライバ(例えば、別の仮想ノード、物理ノードなど)にパブリッシュし得る。各CBMは、例えば、上記のような様式で、産業プロセスプラントの物理環境内に配備可能である1つ以上の物理構成要素を仮想化し得る、および/または1つ以上の物理構成要素の1つ以上の副構成要素を仮想化し得る。
【0109】
したがって、I/Oスイッチによってパブリッシュされる様々なデータおよび/またはデータタイプ(例えば、リアルタイム制御を有効化するために利用されるI/Oデータ、および任意選択的に他のデータ)に対する複数の仮想ノードのそれぞれのサブスクリプション、複数の仮想ノードによってそれぞれパブリッシュされる様々なデータおよび/またはデータタイプに対するI/Oスイッチのサブスクリプション、I/Oスイッチによる様々なデータおよび/またはデータタイプのパブリケーション、ならびに複数の仮想ノードによってそれぞれパブリッシュされる様々なデータおよび/またはデータタイプのパブリケーションは、I/O割り当てに基づき得る。本明細書で上で考察されたように、I/O割り当ては、論理識別子またはタグと、I/Oデータ、I/Oデータタイプ、送信ノード、および/または受信ノードとの間の関連付けを示す。論理識別子またはタグは、I/Oスイッチ内で一意であり、一部の構成では、仮想化プラットフォーム内で一意である。I/Oデータ、I/Oデータタイプ、送信ノード、および/または受信ノードに対する論理識別子/タグのそれぞれの関連付けは、構成データベース172bなどの、産業プロセスプラントのシステム構成データベース内に記憶された情報に基づいて決定され得る(例えば、構成および/または試運転中に)。ただし、I/Oスイッチによって利用される論理識別子/タグと、システム構成データベース内で利用される論理識別子/タグとの間に一対一の対応が存在する必要はない。例えば、論理識別子/タグの構文が異なってもよく(例えば、性能目的のために)、論理識別子/タグがI/Oスイッチによって利用されるオブジェクトが抽象化されてもよく、I/Oスイッチによって利用される論理識別子/タグがグループ化、カテゴリ、ならびに/または関連するデータおよび/もしくはノードのセットを参照してもよい、などである。一般的に言うと、各サブスクリプションは、I/Oスイッチにとって既知の複数のI/O割り当てのそれぞれのサブセットに対応し、各パブリケーションは、I/Oスイッチにとって既知の複数のI/O割り当てのそれぞれのサブセットに対応する。
【0110】
ここで、ブロック402に戻ると、仮想化プラットフォームで発生する1つ以上の条件を検出および/または予測することは、ハードウェア、ソフトウェア、ネットワーク、ならびに/またはリンクリソースおよび/もしくは構成要素の読み込みなど、ハードウェア、ソフトウェア、ネットワーク、ならびに/またはリンクリソースおよび/もしくは構成要素の可用性、ハードウェア、ソフトウェア、ネットワーク、ならびに/またはリンクリソースおよび/もしくは構成要素の帯域幅、かつ/あるいは仮想化プラットフォーム自体、ならびに/または仮想化プラットフォームが含む物理および/もしくは論理コンピューティングプラットフォームのいずれかの他のタイプの性能問題などの、仮想化プラットフォームの少なくとも一部分の性能問題を検出および/または予測することを含み得る。仮想化プラットフォームで発生する1つ以上の条件を検出および/または予測することは、発生した障害を検出すること、かつ/あるいは障害が、仮想化プラットフォーム自体ならびに/または仮想化プラットフォームが含む物理および/もしくは論理プラットフォームの構成要素のいずれかで発生すると予測することを含み得る。仮想化プラットフォームで発生する1つ以上の条件を検出および/または予測することは、仮想化プラットフォームのいくつかの性能態様または測定値の変化を検出すること、かつ/あるいは仮想化プラットフォームのいくつかの性能態様または測定値の変化が、仮想化プラットフォーム自体ならびに/または仮想化プラットフォームが含む物理および/もしくは論理コンピューティングプラットフォームの構成要素のいずれかで発生すると予測することを含み得る。一般的に言うと、1つ以上の条件を検出および/または予測すること(ブロック402)は、仮想化プラットフォームの動作性能に影響を与えるおよび/または影響を与えることになる任意の条件を検出および/または予測することを含み得る。
【0111】
ブロック405では、方法400は、検出および/または予測された1つ以上の条件に基づいて、複数の仮想ノードに対応する負荷または性能レベルのうちの少なくとも1つを分散させることを含む。複数の仮想ノードに対応する負荷または性能レベルのうちの少なくとも1つを分散させること(ブロック405)は、複数の仮想ノードに関連する調整を実施することを含み得る。例えば、負荷または性能レベルのうちの少なくとも1つを分散させることは、I/Oスイッチにとって既知の複数のI/O割り当て、および/またはどのI/O割り当てがどの仮想ノードによって取り扱われているかに対する変化に基づき得る。例えば、ブロック405では、複数のI/O割り当てのうちの少なくとも一部分が異なるノードに再割り当てされ、それによって、検出および/または予測される条件の影響を軽減し得る。追加的または代替的に、複数の仮想ノードに対応する負荷または性能レベルのうちの少なくとも1つを分散させること(ブロック405)は、複数の仮想ノードを変更し、それによって、検出および/または予測される条件の影響を軽減することを含み得る。例えば、1つ以上の仮想ノードが、複数の仮想ノードから削除され得る、1つ以上の追加の仮想ノードが、作成されて複数の仮想ノードに追加され得る、異なる仮想ノードが、プラットフォームのコンピューティングデバイスの別のサブセットによってサポートされているプラットフォームのコンピューティングデバイスの第1のサブセットによってサポートされることから移動され得る、などである。
【0112】
複数の仮想ノードに対応する負荷および/または性能レベルを分散させること(ブロック405)は、複数の仮想ノードが実装される仮想化プラットフォーム、および/または仮想化プラットフォームの様々な構成要素の使用に関連する調整を含み得る。例えば、負荷および/または性能レベルを分散させること(ブロック405)は、仮想化プラットフォームに関するそれぞれの性能態様または測定値の最大、最小、および/または目標閾値と関連付けられる1つ以上の境界条件、例えば、各サーバまたは個々のプロセッサのプロセッサ容量がX%を超えない、目標最小ネットワーク可用性がY%未満に低下しないなどに基づき得る。境界条件は、例えば、仮想化プラットフォームの構成および/または試運転中に事前決定され得る。様々な境界条件は、例えば、ユーザインターフェースを介して受信されたユーザ入力に応答して手動で、および/または検出された条件に基づいて自動的に、産業プロセスプラントのランタイム動作中に変更されるか、または変化し得る。したがって、複数の仮想ノードに対応する負荷および/または性能レベルは、変化した境界条件に基づいて再分散され得る。
【0113】
いくつかの実施形態では、複数の仮想ノードに対応する負荷または性能レベルのうちの少なくとも1つを分散させること(ブロック405)は、仮想化プラットフォームおよび/またはその構成要素に対応する1つ以上のタイプの負荷(またはその目標)を調整することを含む。例えば、仮想化プラットフォーム全体、ならびに/または仮想化プラットフォームが含むプロセッサ、有形メモリ、コンピューティングデバイス、ネットワークおよび/もしくはリンクのうちのいずれか1つ以上に対応する、ソフトウェアリソース負荷、ハードウェアリソース負荷、メモリリソース負荷、および/またはトラフィック負荷は、異なるレベルおよび/または目標レベルに調製され得る。
【0114】
いくつかの実施形態では、複数の仮想ノードに対応する負荷または性能レベルのうちの少なくとも1つを分散させること(ブロック405)は、仮想化プラットフォームおよび/またはその構成要素に対応する1つ以上のタイプの性能測定値(またはその目標)に関連する調整を含む。例えば、仮想化プラットフォーム内に含まれる1つ以上のプロセッサ、コンピューティングデバイス、ネットワーク、および/またはリンクの利用は、異なる利用レベルおよび/または目標利用レベルに調整され得る。
【0115】
方法400に関して、一実施形態では、1つ以上の条件を検出および/もしくは予測すること(ブロック402)、ならびに/または検出および/または予測された条件に基づいて負荷または性能レベルのうちの少なくとも1つを分散させること(ブロック405)は、いかなるインラインユーザ入力もなしで実施される。つまり、プロセス制御システムは、任意の関連するユーザ入力によってトリガされずに、および/またはそれを受信せずに、ランタイム動作中に方法400を自動的に実行し得る。一実施形態では、仮想化管理ノード(VMN300など)は、方法400の1つ以上の部分を実行し得る。追加的にまたは代替的に、複数の仮想ノードのうちの1つ以上の仮想ノード、I/Oスイッチ、および/または仮想化プラットフォームのいくつかの他の構成要素が、方法400の1つ以上の部分を実行してもよい。
【0116】
したがって、以上のことから、動的シミュレーションおよびランタイム制御プラットフォーム10のための新規の多目的プラットフォームは、既知のプロセス制御システムに対して多くの利益および利点を提供する。例えば、MPDSCプラットフォーム10は、仮想構成要素を介してシミュレーションおよびランタイム制御の両方をサポートするため、変更(例えば、アップグレード、パッチなど)の試験が、シミュレートされた構成要素を介して仮想環境12で実行され得、良好な検査の際、シミュレートされた構成要素は、プロセスプラント100の仮想構成要素として容易にアクティブ化され得る(例えば、「読み込み、評価、実行」のバンプレスまたはウォームスイッチオーバなど)。したがって、ランタイム構成要素へのシミュレートされた構成要素のスイッチオーバは、より容易に達成され、アップグレード、パッチ、および計画された保守に起因するダウンタイムが短縮される。さらに、様々な構成要素の仮想化されたホットスペアを提供し、障害またはエラーシナリオ中に仮想化されたホットスペアをオンラインにするために利用されるリソース量もまた、大幅に低減される。
【0117】
さらに、MPDSプラットフォーム10によるランタイム仮想構成要素の提供は、プラント100内のハードウェアとソフトウェアとの間の独立性を可能にする。例えば、プロセス制御システム100のランタイム中に利用されるコントローラソフトウェアは、任意の物理コントローラハードウェアをアップグレードまたは変更することを必要とせずに、ランタイム仮想コントローラ内でアップグレードされ得る。同様に、ハードウェア/ソフトウェアの独立性に起因して、MPDSプラットフォーム10は、プロセスプラント100のハードウェアがソフトウェアアップグレードとは無関係にアップグレードされることを可能にする。
【0118】
なお、ランタイム仮想構成要素の提供ならびにその運営および/または管理(例えば、MPDSCプラットフォーム10のVMS300を介した)はまた、異なる物理ハードウェア構成要素および必要とされるキャビネット、配線などを設置、試験、試運転、および検査に対する支払いを必要とせずに、追加の仮想構成要素が仮想環境12内に容易に実装され得るため、容易かつ低コストであるシステム拡張性を可能にする。実際、追加の仮想構成要素がシステム100をサポートするために必要とされるとき、仮想構成要素は、仮想構成要素12が実装される物理コンピューティングデバイスおよび/またはハードウェアの処理および/またはメモリ制限まで、必要に応じて作成され得、その後、追加の物理コンピューティングデバイスおよび/またはハードウェアが、単純にそれに追加され得る。
【0119】
MPDSプラットフォーム10によって提供される仮想環境12は、例えば、試験、ホットスペア、アップグレード、パッチ、計画された保守、および/または他の目的のために、様々な構成要素のデジタル対および/またはプロセスプラント100全体の仮想シミュレーションの作成を可能にする。デジタル対(例えば、特定の構成要素およびプロセスプラント100全体の)は、それらのそれぞれの特定の物理構成要素への更新を伴うロックステップで更新され得る。つまり、状態情報は、MPDSCプラットフォーム10を介して、物理ノードから仮想ノードに渡され得る。実際、MPDSCプラットフォーム10は、変更および/または異なるシナリオ(例えば、「what-if」シナリオ)の強化されたオンライン試験を提供し、いくつかの状況では、プロセスプラント100のランタイム仮想および/または物理構成要素と連携して提供する。共通MPDSプラットフォーム10(および、特に、MPDSプラットフォーム10の仮想環境12)がシミュレーションおよびランタイム制御の両方の目的でアーキテクチャ化および利用されることに起因して、オフシミュレーションは、いかなる構成変更もなしで容易に達成される。
【0120】
なおさらに、MPDSプラットフォーム10が、特定のハードウェアと具体的に直接関連付けられることから離れてプロセスプラント100のI/Oを抽象化するため、プラント100内のI/O構成は、より柔軟であり、ランタイム中のみならず、アップグレード、保守、障害などの間でも、容易に変更および適応される。重要なことに、I/Oデバイスと他の構成要素(例えば、CIOCおよびコントローラ)との間の通信接続は、物理I/Oデバイス上で利用可能である物理ポートによってもはや制限されない。I/Oが、MPDSプラットフォーム10内で抽象化され、仮想I/Oデバイスと他の構成要素との間の任意の数の通信接続が、仮想環境12が実装される物理コンピューティングデバイスおよび/またはハードウェアの処理および/またはメモリ制限まで、論理的に可能であり、その後、追加の物理コンピューティングデバイスおよび/またはハードウェアが、単純にそれに追加され得る。同様に、MPDSプラットフォーム10内のI/Oの抽象化に起因して、制御モジュールおよび/または他のCBM58は、物理ホストデバイスまたは構成要素を利用するときに必要であるI/O場所および/またはホストデバイスもしくは構成要素の読み込みを気にすることなく、任意の仮想ホストデバイスまたは構成要素に割り当てられ得る。つまり、上で考察されたように、仮想構成要素(シミュレーションまたはランタイム制御目的で利用されるかどうかにかかわらず)は、物理構成要素から、または他の仮想構成要素からのI/Oを利用して動作し得る。したがって、MPDSプラットフォーム10は、冗長性、再試行、および現在知られている技術の特定の実装に現在結び付けられている他の機構を抽象化することができ(例えば、I/Oスイッチ25を利用することによって)、その結果、抽象化は、例えば、特定の実装および/またはアプリケーションのための様々な抽象化の選択されたカスタム化および専用化を伴う、複数の異なるタイプのアプリケーション、シナリオ、および実装にわたって利用され得る。その結果、MPDSプラットフォーム10は、より多くの数およびタイプのI/Oシステム(現在知られている技術と比較して)を、一貫して容易に拡縮可能な様式でサポートすることができる。
【0121】
ソフトウェアに実装されるとき、本明細書に説明されるアプリケーション、サービス、仮想デバイス、仮想マシン、仮想実体などは、磁気ディスク、レーザディスク、固体メモリデバイス、分子メモリストレージデバイス、または他のストレージ媒体上、コンピュータまたはプロセッサのRAMまたはROM内などの、任意の有形の非一時的コンピュータ可読メモリ内に記憶され得る。本明細書に開示される例示的なシステムは、他の構成要素の中でも、ハードウェア上で実行されるソフトウェアおよび/またはファームウェアを含むように開示されているが、そのようなシステムは、単に例示的であるに過ぎず、限定的であるとみなされるべきではないことに留意されたい。例えば、これらのハードウェア、ソフトウェア、およびファームウェア構成要素のうちのいずれかまたは全てが、ハードウェアにのみ、ソフトウェアにのみ、あるいはハードウェアおよびソフトウェアの任意の組み合わせで、埋め込まれ得ることが企図される。したがって、本明細書に記載される例示的なシステムは、1つ以上のコンピュータデバイスのプロセッサで実行されるソフトウェアで実装されるものとして記載されているが、提供される例がかかるシステムを実装する唯一の方法ではないことを当業者は容易に理解するであろう。
【0122】
したがって、本発明は具体的な例に関して記載されてきたが、これらの例は例解的であるに過ぎず、本発明の限定であることを意図せず、変更、追加、または削除が、本発明の趣旨および範囲から逸脱することなく、開示される実施形態に対して行われ得ることが当業者には明らかであろう。
図1
図2
図3
図4
図5
図6