JP2022192056A - 工業プロセスプラントのためのソフトウェア定義プロセス制御システムの視覚化 - Google Patents
工業プロセスプラントのためのソフトウェア定義プロセス制御システムの視覚化 Download PDFInfo
- Publication number
- JP2022192056A JP2022192056A JP2022097509A JP2022097509A JP2022192056A JP 2022192056 A JP2022192056 A JP 2022192056A JP 2022097509 A JP2022097509 A JP 2022097509A JP 2022097509 A JP2022097509 A JP 2022097509A JP 2022192056 A JP2022192056 A JP 2022192056A
- Authority
- JP
- Japan
- Prior art keywords
- container
- service
- containers
- process control
- services
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004886 process control Methods 0.000 title claims abstract description 182
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 110
- 238000012800 visualization Methods 0.000 title claims description 93
- 238000000034 method Methods 0.000 claims abstract description 408
- 230000008569 process Effects 0.000 claims abstract description 317
- 238000004891 communication Methods 0.000 claims description 85
- 238000003860 storage Methods 0.000 claims description 76
- 230000006870 function Effects 0.000 claims description 50
- 230000015654 memory Effects 0.000 claims description 42
- 230000036541 health Effects 0.000 claims description 27
- 230000008859 change Effects 0.000 claims description 19
- 238000005259 measurement Methods 0.000 claims description 15
- 230000003993 interaction Effects 0.000 claims description 11
- 238000009877 rendering Methods 0.000 claims 36
- 230000003862 health status Effects 0.000 claims 2
- 239000003086 colorant Substances 0.000 claims 1
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000006855 networking Effects 0.000 abstract description 27
- 230000004044 response Effects 0.000 abstract description 14
- 238000012986 modification Methods 0.000 abstract description 9
- 230000004048 modification Effects 0.000 abstract description 9
- 238000012217 deletion Methods 0.000 abstract 1
- 230000037430 deletion Effects 0.000 abstract 1
- 241000196324 Embryophyta Species 0.000 description 243
- 238000010586 diagram Methods 0.000 description 78
- 238000013475 authorization Methods 0.000 description 68
- 108091006146 Channels Proteins 0.000 description 48
- 238000012545 processing Methods 0.000 description 20
- 238000007726 management method Methods 0.000 description 18
- 230000001276 controlling effect Effects 0.000 description 16
- 238000012423 maintenance Methods 0.000 description 13
- 230000009471 action Effects 0.000 description 10
- 230000006399 behavior Effects 0.000 description 10
- 238000007689 inspection Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 9
- 238000013500 data storage Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 238000010200 validation analysis Methods 0.000 description 8
- 238000010923 batch production Methods 0.000 description 7
- 238000010924 continuous production Methods 0.000 description 6
- 238000011217 control strategy Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000008520 organization Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 5
- 239000012530 fluid Substances 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000003750 conditioning effect Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 239000006163 transport media Substances 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 231100001261 hazardous Toxicity 0.000 description 3
- 230000001105 regulatory effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000004873 anchoring Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000004508 fractional distillation Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000003362 replicative effect Effects 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000008093 supporting effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 101001137935 Aplysia californica Calcium-dependent protein kinase C Proteins 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 241001026509 Kata Species 0.000 description 1
- 238000001069 Raman spectroscopy Methods 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- RYYVLZVUVIJVGH-UHFFFAOYSA-N caffeine Chemical compound CN1C(=O)N(C)C(=O)C2=C1N=CN2C RYYVLZVUVIJVGH-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000002775 capsule Substances 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000368 destabilizing effect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- QWXYZCJEXYQNEI-OSZHWHEXSA-N intermediate I Chemical compound COC(=O)[C@@]1(C=O)[C@H]2CC=[N+](C\C2=C\C)CCc2c1[nH]c1ccccc21 QWXYZCJEXYQNEI-OSZHWHEXSA-N 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000002609 medium Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000004611 spectroscopical analysis Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41835—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by programme execution
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/4185—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/328—Computer systems status display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0879—Manual configuration through operator
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31088—Network communication between supervisor and cell, machine group
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32351—Visual, graphical animation of process
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Automation & Control Theory (AREA)
- Manufacturing & Machinery (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Testing And Monitoring For Control Systems (AREA)
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Abstract
【課題】ソフトウェアで定義された工業プロセスプラントのデータセンタである工業プロセス制御システムに関する。【解決手段】ソフトウェア定義プロセス制御システムは、ハードウェアおよびソフトウェアコンピューティングプラットフォームリソースから分離された論理抽象化として、コントローラおよび他のプロセス制御関連のビジネスロジックを実装する。SDCSのSDネットワーク層は、プロセス制御固有のオペレーティングシステムサポートサービスを利用して、ビジネスロジックの要件およびニーズ、プロセスプラントの稼働時間の間のSDCSハードウェアおよび/またはソフトウェア資産の動的に変化する状態に応答して、コンピューティングプラットフォームリソースの使用、ならびにフィールド環境内に配置されたデバイスおよび他のサービスを使用したアプリケーション層サービスの作成、削除、修正、およびネットワーキングを管理する。【選択図】図1
Description
関連出願の相互参照
本出願は、2021年6月16日に出願された「Software Defined Process Control System for Industrial Process Plants」と題された米国仮特許出願第63/211,535号の優先権および利益を主張するものであり、その開示全体が参照により本明細書に組み込まれる。
本出願は、2021年6月16日に出願された「Software Defined Process Control System for Industrial Process Plants」と題された米国仮特許出願第63/211,535号の優先権および利益を主張するものであり、その開示全体が参照により本明細書に組み込まれる。
本出願は、概して、工業プロセスプラントの工業プロセス制御システム、より詳細には、ソフトウェアで定義された工業プロセスプラントのデータセンタである工業プロセス制御システムに関する。
化学、石油、工業、または他のプロセスプラントにおいて物理的材料または製品を製造、精製、変換、生成、または生産するために使用されるような現在の分散工業プロセス制御システムは、典型的には、アナログバス、デジタルバス、もしくはアナログ/デジタル複合バスであり得る物理層を介して、または1つ以上の無線通信リンクもしくはネットワークを含み得る物理層を介して、1つ以上のフィールドデバイスに通信可能に結合された1つ以上のプロセスコントローラを含む。フィールドデバイスは、例えば、バルブ、バルブポジショナ、スイッチ、およびトランスミッタ(例えば、温度、圧力、水位および流量センサ)であってもよく、工業プロセスプラントのプロセス環境内(本明細書では、工業プロセスプラントの「フィールド環境」または「プラント環境」と交換可能に呼ばれる)に位置し、一般に、バルブの開閉、流量、温度、または圧力などのプロセスおよび/または環境パラメータの測定などの物理的プロセス制御機能を遂行し、プロセスプラントまたはシステム内で実行される1つ以上のプロセスを制御する。周知のFOUNDATION(登録商標)Fieldbusプロトコルに適合するフィールドデバイスなどのスマートフィールドデバイスも、制御計算、警告機能、およびコントローラ内で通常実装される他の制御機能を遂行し得る。プロセスコントローラは、同様に典型的にはプラント環境内に位置するが、プラントに関連付けられているバックエンドの保護された環境にも位置し得、フィールドデバイスによって行われたプロセス測定値を示す信号および/またはフィールドデバイスに関係する他の情報を受信し、例えば、様々な制御アルゴリズムを利用して、プロセス制御決定を行う様々な制御モジュールを作動させる制御ルーチンまたはアプリケーションを実行し、受信した情報に基づいてプロセス制御信号を生成し、HART(登録商標)フィールドデバイス、WirelessHART(登録商標)フィールドデバイス、およびFOUNDATION(登録商標)Fieldbusフィールドデバイスなどのフィールドデバイス内で遂行されている制御モジュールまたは制御ブロックと連携する。
他のタイプのフィールドデバイスは、例えば、特殊な化学および製薬プロセスプラントにおいて、例えば、品質管理および純度検証に使用され得る分光測定デバイスを含み得る。分光フィールドデバイスの例には、いくつか例を挙げると、NIR(近赤外線)、UV-VIS(紫外可視)、およびラマン分光計が含まれる。分光フィールドデバイスは、通常、データを収集するタイミング、収集したデータを送信するタイミングなどを分光デバイスに命令するコントローラまたはデバイスマネージャによって制御または管理され得る。
フィールドデバイスとコントローラとの間に配置されたI/Oデバイスは、それらの間の通信を可能にする。例えば、プロセスコントローラ内の制御モジュールは、制御信号を様々な異なる入力/出力(I/O)デバイスに送信し、次いで、これらの制御信号を専用通信ラインまたはリンク(通信物理層)を介して実際のフィールドデバイスに送信し、それによって、プロセスプラントまたはシステムのうちの少なくとも一部分の動作を制御し、例えば、プラントまたはシステム内で作動または実行する1つ以上の工業プロセス(例えば、物理プロセス)のうちの少なくとも一部分を制御する。別の例では、分光マネージャまたはコントローラが様々なI/Oデバイスに命令を送信し、次いで、I/Oデバイスが専用の通信ラインまたはリンクを介して、工業プロセスプラント内に配置された物理的な分光デバイスに命令を送信する。命令に応答して、分光デバイスは、収集されたデータを、I/Oデバイスを通る同様のルートを介して逆方向に、マネージャ/コントローラおよび/またはプロセス制御システム内の他の受信者デバイスに送信する。また、典型的にはプラント環境内に位置するI/Oデバイスは、概ね、コントローラと1つ以上のフィールドデバイスとの間に配置され、例えば、電気信号をデジタル値に変換し、かつその逆に変換することにより、それらの間の通信を可能にする。異なる専用通信プロトコルを使用するフィールドデバイスをサポートするために、異なるI/Oデバイスが提供される。より詳細には、コントローラと特定の通信プロトコルを使用するフィールドデバイスの各々との間に異なるI/Oデバイスが提供され、これにより、第1のI/Oデバイスを使用してHARTフィールドデバイスをサポートし、第2のI/Oデバイスを使用してFieldbusフィールドデバイスをサポートし、第3のI/Oデバイスを使用してProfibusフィールドデバイスなどをサポートする。フィールドデバイス、コントローラ、およびI/Oデバイスは、概して、「プロセス制御デバイス」と呼ばれ、概ね、プロセス制御システムまたはプラントのフィールド環境に位置し、配置され、または設置される。
またさらに、フィールドデバイスおよびそれらのそれぞれのコントローラからの情報は、通常、データハイウェイまたは通信ネットワークを介して、コントローラを通じて、オペレータワークステーション、パーソナルコンピュータもしくはコンピューティングデバイス、データヒストリアン、レポートジェネレータ、集中データベース、またはプラントのより過酷なおよび/または危険なフィールド環境から離れた制御室もしくは他の位置、例えば、プロセスプラントのバックエンド環境に典型的に置かれる他の集中管理コンピューティングデバイスなどの、1つ以上の他のハードウェアデバイスに利用可能にされる。これらのハードウェアデバイスの各々は、典型的には、プロセスプラントにわたって、またはプロセスプラントの一部分にわたって集中化される。これらのハードウェアデバイスは、例えば、プロセス制御ルーチンの設定を変更すること、コントローラまたはフィールドデバイス内の制御モジュールの動作を変更すること、プロセスの現在の状態を表示すること、フィールドデバイスおよびコントローラによって生成された警報を表示すること、要員を訓練するかまたはプロセス制御ソフトウェアを試験する目的でプロセスの動作をシミュレートすること、構成データベースを維持および更新することなど、プロセスを制御することおよび/またはプロセスプラントを動作させることに関する機能をオペレータが遂行することを可能にし得るアプリケーションを作動する。ハードウェアデバイスおよびプロセスコントローラによって利用されるデータハイウェイは、有線通信経路、無線通信経路、または有線通信経路および無線通信経路の組み合わせを含んでもよく、典型的には、パケットベースの通信プロトコルおよびEthernet(登録商標)またはIPプロトコルなどの非時間依存通信プロトコルを使用する。
一例として、Emerson Process Managementによって販売されている、DeltaV(商標)制御システムは、プロセスプラント内の多様な場所に位置する異なるデバイス内に記憶され、それらの異なるデバイスによって実行される複数のアプリケーションを含む。1つ以上のワークステーションまたはコンピューティングデバイス内に常駐する構成アプリケーションは、ユーザによる、プロセス制御モジュールの作成または変更、およびデータハイウェイを経由した、これらのプロセス制御モジュールの、専用分散コントローラへのダウンロードを可能にする。典型的には、これらの制御モジュールは、通信可能に相互接続された機能ブロックで構成され、機能ブロックは、オブジェクト指向プログラミングプロトコル内のオブジェクトであってもよく、オブジェクト指向プログラミングプロトコルは、制御スキームへの入力に基づき制御スキーム内の機能を遂行し、制御スキーム内の他の機能ブロックに出力を提供する。構成アプリケーションはまた、データをオペレータに対して表示するため、かつオペレータによるプロセス制御ルーチン内の設定点などの設定の変更を可能にするために閲覧アプリケーションが使用するオペレータインターフェースを、構成エンジニアが作成または変更することを可能にし得る。各専用コントローラ、および場合によっては、1つ以上のフィールドデバイスは、実際のプロセス制御機能を実装するために、それらに割り当てられてダウンロードされた制御モジュールを実行するそれぞれのコントローラアプリケーションを記憶および実行する。閲覧アプリケーションは、1つ以上のオペレータワークステーション(またはオペレータワークステーションおよびデータハイウェイと通信接続する1つ以上のリモートコンピューティングデバイス)上で実行され得、コントローラアプリケーションからデータハイウェイを経由してデータを受信し、ユーザインターフェースを使用してこのデータをプロセス制御システム設計者、オペレータ、またはユーザに表示して、オペレータのビュー、エンジニアのビュー、技師のビューなどのいくつかの異なるビューのうちのいずれかを提供し得る。データヒストリアンアプリケーションが、典型的には、データハイウェイにわたって提供されたデータの一部またはすべてを収集および記憶するデータヒストリアンデバイスに記憶され、それによって実行される一方で、構成データベースアプリケーションが、現在のプロセス制御ルーチン構成およびそれと関連付けられたデータを記憶するために、データハイウェイに取り付けられたなおさらに離れたコンピュータで作動され得る。代替的に、構成データベースは、構成アプリケーションと同じワークステーションに位置していてもよい。
分散工業プロセス制御システムが時間とともに進化するにつれて、様々なハードウェア、通信、およびネットワーク技術が開発され、追加された。その結果、現在のプロセス制御システムには、典型的には、いくつか例を挙げると、専用のオペレータコンソール、構成ステーション、専用コントローラ、およびI/Oカードなど、柔軟性のないハードウェア中心のデバイスが無数に含まれている。プロセス制御システム内のこの多数の異なるタイプのハードウェアデバイスは、複数のレベルの構成と、基盤となるシステムのユーザへの公開を必要とし、通常、初期のエンジニアリング作業のコストおよび変更管理を遂行するためのコストの増加につながる。さらに、プロセスプラントの設置および拡張は、専用のハードウェアに依存しているため、コストの超過およびサプライチェーンの遅延の影響を受けやすくなっている。
より一般的な意味ではあるが、情報技術(IT)セクタも同様の問題に悩まされている。ITセクタ内では、最近の傾向として、ハードウェアのインストールの柔軟性を可能にするために、ユーザ負担ビジネスロジックから離れて、物理的なハードウェア要件を含むインフラストラクチャの層を抽象化することが挙げられる。通常、ITシステムでは、IT管理者が、ターゲットのユーザ負担ビジネスロジックを実装するために必要と思われるハードウェア要件を設計、指示、またはその他の方法で規定し、IT管理者は、ビジネスロジックの変更が必要な場合にハードウェアプラットフォームの構成と利用率を調整する。
工業ソフトウェア定義プロセス制御システム(SDCS)は、工業プロセスプラントのプロセス制御システムのための新規なアーキテクチャを提供し、それは、大部分において、プロセス制御システムのソフトウェアとハードウェアとを切り離すものである。概して、プロセス制御システムの自動化のビジネスロジックは、ソフトウェアおよびハードウェアのコンピュータリソースに加えて論理的な抽象化として実装される。工業プロセス制御のためのこれらのリソースの管理は、ハイパーコンバージドコンピュータシステムインフラストラクチャ環境で実装でき、この環境では、ソフトウェア定義(SD)コンポーネントまたは要素は、本明細書に記載する技術の一部または全部を使用してソフトウェア定義プロセス制御システムによって管理および分散化される。有利には、ソフトウェア定義プロセス制御システムは、ソフトウェア定義プロセス制御システムの稼働時間の間に、プロセス制御システムおよび工業プロセスプラントの動的に発生する状態を考慮して(例えば、応答的および/または予測的に)、ソフトウェアおよびハードウェアリソースを動的かつ自動的に管理して、プロセス制御システムのビジネスロジックの動的な要求をサポートする。
ソフトウェア定義プロセス制御システム(SDCS)は、物理層によってサポートされるソフトウェア定義ネットワーク層、ソフトウェア定義アプリケーション層、およびソフトウェア定義ストレージ層を含み得る。物理層は、SDCSに含まれる場合か、または含まれない場合がある。概して、物理層は、SDCSが工業プロセスプラントのフィールド環境およびそこに配置された物理デバイスまたは物理コンポーネントに通信可能に接続されるハードウェアインターフェース(例えば、1つ以上のネットワークインターフェースまたはポート)を含む。例えば、ハードウェアインターフェースは、入力/出力(I/O)インターフェースを含み得る。物理層はまた、特定のインターフェースポートとの間でデータをルーティングするために、ソフトウェアおよび/またはハードウェアを介して実装され得るルーティングコンポーネントも含み得る。いくつかの実施形態では、SDCSは物理層を含み、またいくつかの実施形態では、SDCSは物理層を除外し、物理層を提供する別のコンピューティングデバイスのセットまたはコンピューティングプラットフォームに通信可能に接続される。
SDCSのソフトウェア定義ネットワーク層は、1つ以上のデータコンピューティングクラスタを含むコンピューティングプラットフォームを含み、これらのクラスタは、完全ではないにしても、少なくとも部分的にインターネットで動作する。各クラスタは、それぞれのネットワーキングリソースを介して少なくとも部分的に互いにネットワーク化された1つ以上のノードを含み得、各ノードは、プロセッサおよび/またはプロセッサコアリソースおよびメモリリソースのそれぞれのセットを含む。例えば、ノードは、コンピューティングデバイスまたはサーバ上に実装され得る。コンピューティングデバイスまたはサーバは、複数のプロセッサを含み得、プロセッサは複数のコアを含み得る。
SDネットワーク層では、ソフトウェア定義オペレーティングシステムは、SDCSの起動時および稼働時間の間に、ソフトウェア定義アプリケーション層のコンポーネントの作成、ならびにコンピューティングプラットフォームノードの利用可能のアプリケーション層コンポーネントの使用率または利用率(場合によっては動的に変化するハードウェアおよびソフトウェアリソース)(単独および集合の両方)を監視および管理する。例えば、SDオペレーティングシステムは、コンピューティングプラットフォームの特定のノードで実行する、および/またはコンピューティングプラットフォームのノードの特定のプロセッサリソース、処理コアリソース、および/またはメモリリソースを利用するようにアプリケーション層コンポーネントを割り当てる。概して、SDネットワーク層のSDオペレーティングシステムは、ソフトウェア定義アプリケーション層コンポーネントをサポートするためにノードのハードウェアおよびソフトウェアリソースを監視および管理することと協調して、プロセス制御システムビジネスロジック、タイミング、およびパフォーマンス要件に従って、SDアプリケーション層コンポーネントを様々なノード(および場合によっては、特定のノードの様々な処理および/またはメモリリソース)に、およびこれらのノード間で配分、割り当て、再配分、再割り当て、負荷分散などを行うサポートサービス(これらのうちのいくつかは、SDアプリケーション層コンポーネントによって消費される)を提供する。さらに、ソフトウェア定義ネットワーク層は、ソフトウェア定義アプリケーション層コンポーネントとそれらのそれぞれのエンドポイント(他のソフトウェア定義アプリケーション層コンポーネント、プロセスプラントフィールド環境に配置されたデバイス、ユーザインターフェースデバイス、外部システムなどであり得る)との間のデータのネットワーキングまたは配信を通信可能に結合し、管理する。
ソフトウェア定義アプリケーション層は、プロセス制御システムのビジネスロジックを含み、これは典型的には、コンテナ、仮想マシン、またはその他の好適なカプセル化された実行環境を介して実装される。例えば、プロセス制御システムビジネスロジックは、アプリケーション層サービスのセットとして実装され得、アプリケーション層サービスは、ビジネスロジックの特定のセットに対してそれぞれ構成され得、構成されたサービスの各インスタンスは、別個のカプセル化された実行環境で実行され得る。例えば、SDCSアプリケーション層サービスには、いくつか例を挙げると、プロセス制御コントローラ、ユーザインターフェース、診断、分析、I/Oネットワーク、およびヒストリアンが含まれ得る。SDアプリケーション層サービスは、制御ルーチン、タグ、デバイス識別子、デバイス信号識別子、パラメータ、値などで構成されて、サービスの構成されたインスタンスを形成し得、これらの各々は、それぞれのカプセル化された実行環境(例えば、構成されたコンテナ、仮想マシンなど)で実行され得る。構成されたカプセル化された実行環境は、SDネットワーク層によって割り当てられるかまたは配分され(場合によっては、工業プロセスプラント内で動的に発生する状態に基づいて再割り当てまたは再配分され)、コンピューティングプラットフォームのノードのそれぞれのソフトウェアおよび/またはハードウェアリソースで実行される。
ソフトウェア定義ストレージ層は、ソフトウェア定義アプリケーション層によって利用され得るプロセス制御システムデータストレージを含む。ソフトウェア定義アプリケーション層と同様に、ソフトウェア定義ストレージ層は、SDアプリケーション層のアプリケーションによって使用される論理ストレージエンティティまたは位置を提供し、論理ストレージエンティティは、SDネットワーク層によってコンピューティングプラットフォームのノードの様々なリソースに割り当てられ、および/または配分される(および場合によっては、再割り当ておよび/または再配分される)。さらに、SDネットワーク層は、必要に応じて、様々な論理ストレージエンティティの冗長性を提供し得る。
工業プロセス制御プラントを制御するための方法およびシステムは、SDCSアプリケーション層サービスを使用して、ソフトウェア定義コントローラ、ソフトウェア定義入力/出力リソース、ソフトウェア定義ストレージ、および/またはソフトウェア定義ネットワーキングを使用したプロセス制御を促進する。SDCSアプリケーション層は、1つ以上のサービスを実行する1つ以上のコンテナを含む。オーケストレータは、ハイパーコンバージドインフラストラクチャの一部として動作し、1つ以上のコンテナのインスタンス化を制御し、異なるハードウェアリソース間でコンテナを複製および/または移動(例えば、再インスタンス化)することによって、負荷分散およびフォールトトレランスを促進する。例えば、すべてのサービスが正常に動作していることを保証するために、ハードウェアリソース(例えば、プロセッサ、プロセッサコア、メモリデバイス、ネットワーク容量)がロードされると、それぞれのサービスを実行する個々のコンテナをハードウェアリソース間で移動され得る。別の例として、特定のコンテナの複数のコピー(すなわち、プロセスプラントの特定の部分にサービスを提供するサービスの複数のコピー)は、コンテナの単一のコピーが不安定になるかもしくは利用できなくなるか、またはハードウェアリソースに障害が発生した場合に、プロセスの連続制御を保証するために必要ないかなる時間も伴わずに(または例えば最小でミリ秒だけ)コンテナの別のコピーに制御を移行できるように、異なるハードウェアリソース上でインスタンス化され得る。このようにして実装され、オーケストレータによって制御されるサービスは、I/Oサーバサービス、コントローラサービス、ヒストリアン、サブシステム(例えば、バッチ制御、連続制御、イベント制御、アラームサブシステム、診断サブシステムなど)、ネットワークサービス(例えば、ソフトウェアファイアウォール)、およびSDCS内の任意の他のコンテナ化サービスを含み得る。同一のコンテナ間でハードウェアダイバーシティを実装できるハードウェアリソースは、データクラスタ、電源、サーバノード、プロセッサ、プロセッサコア、メモリデバイスなどを含み、必要に応じてまたは要求されると、ハードウェアリソースを動的に追加または削除することを可能にできる。
現在説明されているシステムの別の態様は、SDCS内で動作するネストされたコンピューティングコンテナを含む。コンピューティングノード上でインスタンス化されるコンテナの各々は、コンピューティングノードのオペレーティングシステム内で実行される分離された実行環境であるが、所与のコンテナは、別のコンテナ内でインスタンス化され得、および/または内部インスタンス化される1つ以上のコンテナを有し得る。そのため、例えば、プロセスプラント内の物理または論理階層を複製することが可能であり、それによって、SDCSのセットアップにおいて、プロセスプラント内の要素の物理および論理構成を複製する。例えば、プラントエリア、エリア内のユニット、およびユニット内のプロセスモジュールは、SDCSのネスト化コンテナに複製することができる。
さらに、本明細書に記載されるSDCSでは、コンテナは、プロセス制御環境の他の要素に固定され得る。コンテナをプロセス制御システムまたはプラントの別の要素に固定することによって、構成エンジニアまたはオペレータは、オーケストレータがある程度の自律性を享受しているにもかかわらず、特定のパラメータが満たされていることを保証し得る。例えば、コンテナは、負荷分散の目的でコンテナが「移動」されることがあっても(例えば、コンテナは、電源に結合されている計算リソース間で移動されることがあっても、特定の電源に結合されている計算リソース上に残ることがある)、フォールトトレランスの特定の態様が維持されることを保証するために、計算リソース、ストレージリソース、ネットワークリソース、および電源リソースなどに固定される場合がある。コンテナはまた、ネストに関係なく、他のコンテナまたはコンテナのグループに固定されてもよいか(一緒に移動/インスタンス化されるように)、またはプロセス制御プラント自体のハードウェアに固定されてもよい(例えば、これにより、特定のコントローラコンテナがプロセス制御ハードウェアの特定のユニットに関連付けられる)。
例示的な動作では、SDCSのI/Oサーバサービスは、同じプラントの同じ部分を制御するために同じ制御ルーチンを各々実装する複数のコンテナ化されたコントローラサービスとインターフェースする。I/Oサーバサービスは、コンテナ化されたコントローラサービスの各々に同じコントローラ入力を提供し得る(例えば、フィールドデバイスによって取得され、フィールドデバイスによってI/Oサーバサービスに送信された測定値を表すコントローラ出力)。コンテナ化された各コントローラサービスは、同じ制御ルーチンを実行して、コントローラ出力のセットを生成する。I/Oサーバサービスは、コントローラ出力の各セットを受信し、「アクティブな」コントローラ出力のセットを適切なフィールドデバイスに転送する。他のコントローラサービスからの出力のセットは、フィールドデバイスに送信されない場合がある。I/Oサーバサービスおよびオーケストレータサービスなどのシステム内の他のサービスは、制御システムのパフォーマンスおよびリソース利用率を継続的に評価し、パフォーマンスを最適化するために必要に応じてコントローラサービスを動的にアクティブ化および非アクティブ化し得る。必要に応じて、I/Oサーバサービスがコンテナ化され得る。さらに、同じコンテナ化されたI/Oサーバサービスの2つ以上のインスタンスが存在し得る。このような実装形態では、これらのインスタンスのうちの単一の1つが「アクティブである」と見なされ、フィールドデバイスとコンテナ化されたコントローラサービスとの間のI/Oトラフィックの完全に機能する仲介者として機能する。「非アクティブな」I/Oサーバサービスは、「アクティブな」I/Oサーバサービスが受信したのと同じI/Oトラフィックを受信し、I/Oトラフィックに同じ論理を実装し得る。ただし、必要に応じて、「非アクティブな」I/Oサーバサービスは、I/Oトラフィックを転送せず、または転送しても、ターゲットサービスまたはデバイスによって受信および処理されない(例えば、ネットワークスイッチは、トラフィックを受信して「非アクティブな」I/Oトラフィックであると判定し、したがってターゲットに転送しない可能性がある)。
コンテナ化されたコントローラサービスおよびコンテナ化されたI/Oサーバサービスは、プラントまたは他の場所の物理リソース全体に任意の所望の様式で分散され得る。さらに、必要に応じて、実装されたコンテナのうちのいずれか1つ以上は、それらが任意の所与の時間にたまたま実行されている任意の特定のコンピュータクラスタまたはノード/サーバに永久に固着または固定されない。コンテナは、コンピューティングおよびネットワーク負荷を平衡化し、コンピューティングまたはネットワーキングの非効率性を軽減するために(例えば、所与の物理リソースが計算上またはネットワークトラフィックによって過度に負担を受けるようになったとき)、必要に応じて、異なるコンピュータにおいて動的に(例えば、実行中に、またはそれとほぼリアルタイムに)インスタンス化、削除、および再インスタンス化され得る。さらに、所与のコンテナの合計インスタンスは、必要に応じて動的に増減でき、これらのインスタンスのうちのいずれか1つ(例えば、各々が同じコントローラサービスを実装している)は、必要に応じてアクティブ化または非アクティブ化され得る。コンテナ間のこの「ジャグリング」は、物理リソースの計算およびネットワーキングのワークロードが大きく変動する場合に役立ち得る。各コントローラサービスは、専用コンテナにコンテナ化され得、それによって、コンテナを実装するノードに存在するより広範なソフトウェア環境に関係なく、各コントローラサービスが実装される比較的分離された一貫性のある予測可能な環境を提供する。例えば、コンテナは、所与のコントローラサービスに必要なソフトウェア依存関係およびソフトウェアライブラリを含み得る。コンテナがない場合、コントローラサービスの一貫した環境を確保するために、コントローラサービスが実行される可能性のあるすべてのノードを適切に構成する必要がある場合がある。また、所与のノードが様々な異なるタイプのサービス(これらの各々は、異なる環境要件を有し得る)を実装することが可能である必要がある場合、ノードの適切な構成を保証することは複雑になる可能性がある。対照的に、説明されているコントローラサービスコンテナを使用すると、各コントローラサービスを任意の所与のノードで簡単にインスタンス化し、ノード/サーバ間またはコンピューティングクラスタ間で(例えば、I/Oサーバサービスによって)簡単に移動することが可能になる。
現在説明されているシステムの別の態様は、SDCS内のセキュリティサービスを含む。SDネットワーク層では、SDネットワークサービスは、論理プロセス制御システムによって利用される論理または仮想ネットワーキングを運営および管理することができ、これは、物理ノード全体でSDネットワークサービスによって実装され得る。SDネットワークサービスは、仮想ルータ、仮想ファイアウォール、仮想スイッチ、仮想インターフェース、仮想データダイオードなどのネットワークアプライアンスのインスタンス、およびパケット検査サービス、アクセス制御サービス、承認サービス、認証サービス、暗号化サービス、認証局サービス、鍵管理サービスなどのネットワークサービスのインスタンスをSDCSに展開し、管理し得る。
例えば、SDネットワークサービスは、SDCS内での役割ベースの承認のためのサービスを展開し得る。ユーザがSDCS内のサービス(例えば、制御サービス)にアクセスするための承認を要求するとき、承認サービスは、要求に基づいてユーザの承認レベルを判定し、ユーザが他のサービスにアクセスすることを承認されるかどうかを判定し得る。より詳細には、承認サービスは、制御サービスにアクセスするための最小閾値承認レベルを判定し、ユーザの承認レベルが最小閾値承認レベルを満たすかまたは超えるかを判定し得る。ユーザが承認されていない場合、認証サービスが制御サービスへのアクセスを防止し得る。
SDネットワークサービスはまた、認証局サービスも展開し得る。認証局サービスは、物理または論理資産を認証するために、物理または論理資産のデジタル証明書を生成し得る。証明書は、物理または論理資産がSDCSのサービスまたはノードと通信するたびに物理または論理資産のアイデンティティを検証する必要がないように、認証局サービスが物理または論理資産のアイデンティティを確認したことを示し得る。
SDCSはまた、SDCSの計算ノード上のコンテナを介して実行される発見サービスも含み得る。物理または論理資産がプロセスプラントのネットワークに参加すると、物理または論理資産はその存在をアナウンスする。次に、発見サービスは、プロセスプラント内の各物理または論理資産のアイデンティティ、能力、および/または位置の記録を生成および記憶し、この記録は、プロセスプラントの稼働時間の間に利用され、工業プロセスの少なくとも一部分を制御し得る。このようにして、発見サービスは、フィールドデバイスなどのプロセスプラント内の物理資産のコミッショニング、およびコンテナ、サービス、マイクロサービスなどの論理資産のコミッショニングを支援し得る。SDCSの物理または論理資産は、手動入力を伴わずに発見時に自動的にコミッショニングされ得る。
発見サービスはまた、プロセスプラント内の物理または論理資産の記録が破損または破壊された場合に、ネットワーク内の物理または論理資産の各々に対して、その存在をアナウンスする要求をブロードキャストすることによって、故障回復を遂行することもできる。このようにして、物理または論理資産の記録は、プロセスプラント内の物理または論理資産の各々に関する情報を手動で入力する必要なしに、自動的に回復され得る。
さらに、システムがせいぜい物理または論理資産によってアナウンスされる能力を識別するOPCなどの現行のプロセス制御データ交換標準(本明細書では「一次変数」とも呼ばれる)とは異なり、本明細書に記載される発見サービスは、物理または論理資産が発見されたときに発見サービスに発表されない物理または論理資産の追加の能力を自動的に推測するように構成される(本明細書では「コンテキスト変数」とも呼ばれる)。追加の能力は、物理もしくは論理資産によって提供される追加のパラメータもしくはサービス、または物理または論理資産と通信するように構成されたサービスを含み得る。次に、発見サービスは、物理または論理資産に関する情報を要求するSDCS内の別のノードまたはサービスに、物理または論理資産の能力の指示を提供し得る。このようにして、発見サービスは、以前のプロセス制御システムよりも、プロセスプラント内の物理または論理資産およびそれらのそれぞれの能力のより完全な記録を記憶し得る。したがって、SDCSのノードおよびサービスは、追加の能力を識別するために物理または論理資産を直接ポーリングする必要なしに、発見サービスからプロセスプラントの物理または論理資産の能力に関する詳細情報を取得し得る。
さらに、SDCSの稼働時間動作を視覚化する際にユーザを支援するために、視覚化サービスは、オーケストレータおよび構成データベースとインターフェースして、制御およびサブシステムコンテナなどの制御システムの様々な論理要素間の、互いのおよびシステム内の物理要素の両方との現在確立または動作中の相互関係を定義する構成データおよび現在の稼働時間動作データを取得する。視覚化サービスは、これらの関係(SDCSで現在構成され、動作しているもの)を示し、かつ表示された論理および/または物理要素のうちの1つ以上に関する主要なパフォーマンスまたは健全性パラメータも提供する任意の数の異なるユーザ表示を作成し得る。例えば、視覚化サービスは、制御コンテナおよびそのサブユニットなどの様々な論理要素が互いにネストされ、互いに固定される方式を階層ビューで示す、稼働時間動作階層を作成し得る。この階層はまた、様々な論理要素が制御システムの様々な物理要素に固定されている、単に実行されている、または割り当てられている方式も示し得る。階層表示はまた、ユーザが様々な論理要素を他の論理要素またはシステム内の物理要素に移動または動的に再割り当てすることも可能にし得る。またさらに、視覚化サービスは、制御システム内の物理ハードウェア(例えば、サーバ、ノード、計算クラスタ、プロセッサなど)、およびそれらの物理要素上で現在実行されている論理要素(例えば、制御コンテナ、サードパーティコンテナ、サブシステムコンテナなど)を示す表示を作成および提示し得る。表示はまた、表示内の物理および論理要素の様々なパフォーマンスおよび/または健全性測定値を示すパフォーマンスまたは健康指標も含み得る。他の場合では、視覚化サービスは、様々な論理要素、およびこれらの論理要素が互いにネストまたは固定されている方式、ならびに制御システムの現在の稼働時間の間に論理要素の各々を実行するために現在使用されている物理要素を示す表示を作成および提示し得る。これらの表示はまた、ユーザに、制御システムまたはその様々な部分の現在の動作および動作健全性を容易に見るかまたは視覚化することを可能にするように、そこに表示される異なる論理および物理要素の様々なパフォーマンス測定値を提供するかまたは示し得る。
図1は、例示的なソフトウェア定義制御システム(SDCS)100を含む例示的な物理的な工業プロセスプラント10のブロック図を示している。プロセスプラント10は、バックエンド環境15に通信可能に接続されたフィールド環境12(例えば、プロセスプラントフロア)を含む。プラント10のバックエンド環境15は、典型的には、フィールド環境12の過酷な状態および材料から遮蔽されており、例えば、フィールド環境12に近接する別個の部屋、建物、もしくは現場の位置、プラント現場から遠隔に位置する任意の数のデバイス、および/またはプラント現場からリモートに位置するデバイスもしくはシステム上でリモートに実行される任意の数のアプリケーションを含み得る。バックエンド環境15は、SDCS 100を含み、典型的には、SDCS 100に通信可能に接続された1つ以上の物理ワークステーションおよび/またはユーザインターフェース20a~20eも含む。例えば、1つ以上のオペレータおよび/または構成ワークステーション20aは、プラント10の現場において遮蔽された部屋に位置し、有線データまたは通信リンク22(例えば、Ethernet(登録商標)またはいくつかの他の好適な有線リンク)を介してSDCS 100と通信可能に接続され得、現場の人員によって利用される1つ以上のオペレータタブレット20bは、無線リンク25(例えば、Wi-Fi、WirelessHART、4G LTE、5G、もしくは6Gなどのセルラー通信システムリンク、またはいくつかの他のタイプの好適な無線リンク)、および有線リンク22を介してSDCS 100に通信的に接続され得る。プロセスプラント10に関連付けられている他のユーザインターフェース20c~20eは、プラント10の外部に配置され得、ラストマイルリンク30および/または無線リンク32を介して、および/または1つ以上のネットワークプライベートおよび/またはパブリックネットワーク35を介してSDCS 100に通信可能に接続され得る。例えば、ラップトップ20c、モバイルデバイス20d、および/または車両システム20eで実行されるラップトップ20c、モバイルデバイス20d、および/またはプロセスプラント関連アプリケーションは、それぞれの無線リンク32、1つ以上のパブリックおよび/またはプライベートデータまたは通信ネットワーク35、ならびにSDCS 100への直接またはラストマイルリンク30(これは典型的には、必ずしも有線リンクである必要がない)を介して、SDCS 100と通信可能に接続され得る。リモートユーザインターフェースおよびデバイス20c~20eは、例えば、プラントオペレータ、構成エンジニア、および/または工業プロセスプラント10およびそのコンポーネントに関連付けられている他の人員によって利用され得る。
図1に示すように、SDCS 100は、I/O(入力/出力)インターフェースシステムまたはゲートウェイ40を介して、フィールド環境12のコンポーネントに通信可能に接続する。概して、I/Oインターフェースシステム40のフィールドに面する部分は、物理ポートのセットまたは物理ハードウェアインターフェースを含み、それを介して様々なタイプのI/Oデータがフィールド環境に配置されたコンポーネントへ/から配信され、I/Oデータが配信されるプロセスプラント通信リンクまたはデータリンク42~58と接続し、および/またはサポートする。I/Oインターフェースシステム40は、リンク42~58を介して受信した物理I/Oを、フィールド環境12のコンポーネントからSDCS 100の受信者コンポーネント(図1には図示せず)に変換および/またはルーティングし、逆にI/Oインターフェースシステム40は、SDCS 100によって生成された通信を対応する物理I/Oに変換して、物理I/Oを、例えば対応するリンク42~58を介してフィールド環境12内に配置されているそれぞれの受信者コンポーネントにルーティングする。そのため、I/Oインターフェースシステム40は、本明細書では「I/Oゲートウェイ」40と交換可能に呼ばれる。図1に示される実施形態では、SDCS 100およびI/Oゲートウェイ40の少なくとも一部分は、ハードウェアおよびソフトウェアコンピューティングリソースの共通のセット、例えば、同じコンピューティングプラットフォームを使用して実装される。すなわち、図1に示される実施形態では、SDCS 100およびI/Oゲートウェイ40の少なくとも一部分(例えば、変換、ルーティング、スイッチングなどを遂行するI/Oゲートウェイ40の部分)は、少なくともいくつかのコンピューティングハードウェアおよびソフトウェアリソースを共有するが、I/Oゲートウェイ40は、データまたは通信リンク42~58への物理I/OポートまたはI/Oハードウェアインターフェースをさらに含む。しかしながら、他の実施形態では、SDCS 100およびI/Oゲートウェイ40は、例えば、図2に描かれるように、各々が別個のハードウェアおよびソフトウェアコンピューティングリソースのセットを利用する、別個の通信可能に接続されたコンピューティングプラットフォーム上に実装され得る。
ここでフィールド環境12に目を向けると、図1は、フィールド環境12に配置、設置、および相互接続されている様々な物理コンポーネントおよび/またはデバイス(例えば、プロセス制御デバイス、フィールドデバイス、ネットワーク要素など)を描いており、これらは、プラント10の稼働時間の間、例えば、集合的に通信し、物理的に動作して、原料または投入材料を所望の製品または出力材料に変換することによる工業プロセス(例えば、物理プロセス)を制御するために動作する。様々なフィールドデバイス60、62、70、80、90、および他のフィールドコンポーネント68、72、82は、異なるタイプのプロセスI/Oを利用することによって、I/Oゲートウェイ40を介してSDCS 100へ/からプロセスI/Oを通信し得る。
例えば、1つ以上の有線フィールドデバイス(「FD」)60は、フィールド環境12に配置され得、アナログ出力(AO)、アナログ入力(AI)、離散出力(DO)、離散入力(DI)などの標準(例えば、従来の)有線物理I/Oタイプを使用して通信し得る。有線フィールドデバイス60は、例えば、バルブ、アクチュエータ、ポンプ、センサなどを含み得、これらは、データ信号を生成し、制御信号を受信して、それによってプラント10におけるそれらのそれぞれの物理的動作を制御するとともに、ステータス、診断、および他の情報を提供する。有線フィールドデバイス60は、4~20mA、Fieldbus、Profibus、Modbus、HARTなどの任意の既知の工業自動化有線プロトコルを使用して、有線リンク42を介してI/Oゲートウェイ40と通信可能に接続され得る。そのため、I/Oゲートウェイ40は、リンク42を介して受信および送信される通信にサービスを提供するそれぞれのI/Oカードまたはデバイス(図示せず)を含み得る。追加的または代替的に、いくつかの構成では、1つ以上の有線フィールドデバイス60は、別個のそれぞれのI/Oカードまたはデバイス61に直接接続され得、別個のI/Oカードまたはデバイス61へ/からの通信は、Ethernet(登録商標)または他の好適な高帯域幅トランスポート媒体などのデータハイウェイ58を介してI/Oゲートウェイ40から/へ配信され得る。
フィールド環境12は、1つ以上の無線フィールドデバイス62を含み得、それらのうちのいくつかは、本質的に無線であり得、それらのうちのいくつかは、それぞれの無線アダプタに接続された有線フィールドデバイスであり得る。無線フィールドデバイスおよびアダプタ62は、それぞれの無線リンク65を介して、WirelessHARTなどの任意の既知の工業自動化無線プロトコル、またはWi-Fi、4G LTE、5G、6Gなどの汎用無線プロトコルを介して通信し得る。1つ以上の無線ゲートウェイ68は、無線リンク65を介して無線デバイス62から受信した無線信号を、1つ以上のリンク48を介してI/Oゲートウェイ40に配信される有線信号に変換し得、リンク48を介してI/Oゲートウェイ40から受信した信号を無線信号に変換し、無線信号を無線リンク65を介して適切な受信者デバイス62に送信し得る。したがって、リンク48は、無線I/Oタイプをサポートし得、I/Oゲートウェイ40は、リンク48を介して送受信される通信にサービスを提供するそれぞれの無線I/Oカードまたはデバイス(図示せず)を含み得る。実施形態(図1には図示せず)では、リンク48のうちの少なくともいくつかは、それぞれの無線I/Oカードまたはデバイスに直接接続され得、この無線I/Oカードまたはデバイスは今度は、データハイウェイを介して(例えば、有線デバイス60およびI/Oカード/デバイス61と同様の方式で)I/Oゲートウェイ40に通信可能に接続され得、ここで、データハイウェイはデータハイウェイ58に含まれ得るか、または異なるデータハイウェイであり得る。
プロセスプラント10は、それぞれの端子72、1つ以上のリモートあるいはマーシャリングI/Oキャビネットまたはシステム75、および1つ以上のリンク50を介してI/Oゲートウェイ40に通信可能に接続されるフィールドデバイス70のセットを含み得る。すなわち、フィールドデバイス70の各々は、標準または従来の有線I/Oタイプ(例えば、AO、DO、AI、DIなど)を使用して、対応する物理接続および端子72を介してリモートI/Oマーシャリングシステム75と通信し得る。リモートI/Oシステム75の1つ以上のプロセッサ78は、リモートI/Oシステム75のローカルスイッチとして機能し得、したがって、例えば、リンク50を介して、物理端子72(およびそれらのそれぞれの接続されたフィールドデバイス70)ならびにI/Oインターフェースシステム40へ/からの通信を切り替えるかまたはルーティングし得る。したがって、リンク50は、マーシャリングまたはリモートI/Oタイプをサポートし得、I/Oゲートウェイ40は、リンク50を介して配信される通信にサービスを提供するためのそれぞれのI/Oカードまたはデバイスを含み得る。実施形態(図1には図示せず)では、リンク50のうちの少なくともいくつかは、それぞれのリモートI/Oカードまたはデバイスに直接接続され得、このデバイスは今度は、I/Oゲートウェイ40に通信可能に接続され得、リモートI/Oカードまたはデバイスへ/からの通信は、データハイウェイを介して(例えば、有線デバイス60およびI/Oカード/デバイス61と同様の方式で)、I/Oゲートウェイ40から/へ配信され得、ここで、データハイウェイは、データハイウェイ58に含まれ得るか、または異なるデータハイウェイであり得る。
いくつかの実装形態では、プロセスプラント10は、APL(高度物理層)スイッチ82を介してI/Oゲートウェイ40に通信可能に接続する有線および/または無線フィールドデバイス80のセットを含む。概して、APLスイッチ82およびそのリンク85は、例えば、危険なフィールド環境12の管轄電力安全要件を満たす方式で、フィールドデバイス80に、かつ場合によっては無線ルータ88などの他のデバイスに電力を提供する。典型的には、APL互換リンク85は、Ethernet(登録商標)およびIPプロトコルなどの高帯域幅トランスポート媒体およびパケットプロトコル、または他の好適な高帯域幅トランスポート媒体およびパケットプロトコルを介して、フィールドデバイス80および無線ルータ88へ/からのデータトランスポートを提供する。フィールドデバイス80のうちのいくつかは、次世代またはAPL互換フィールドデバイスであり得、フィールドデバイス80のうちのいくつかは、それぞれのAPLアダプタを介してリンク85に接続される標準のフィールドデバイスであり得る。リンク85と同様に、APLスイッチ82とI/Oゲートウェイ40とを通信可能に接続するリンク55もまた、高帯域幅Ethernet(登録商標)およびIPプロトコルなどのAPL互換トランスポート媒体および/またはパケットプロトコルを利用し得、したがってリンク55はAPL I/Oタイプをサポートし得る。その結果、I/Oゲートウェイ40は、リンク55を介して配信される通信にサービスを提供するためのそれぞれのI/Oカードまたはデバイスを含み得る。
さらに、いくつかの構成では、APLスイッチ82、またはI/Oゲートウェイ40に通信可能に接続されている別のAPLスイッチ(図示せず)は、リモートI/Oキャビネットもしくはマーシャリングシステム75に含まれるリモートI/OバスなどのリモートI/Oバス、または別のリモートI/Oキャビネットもしくはマーシャリングシステム(図示せず)に含まれる別のリモートI/Oバスへの直接接続を提供し得る。これらの構成では、APLスイッチがリモートI/Oキャビネットまたはマーシャリングシステムに電力を提供し得る。
いくつかの構成では、プロセスプラント10は、標準または非APL Ethernet(登録商標)接続52を介してI/Oゲートウェイ40に通信可能に接続するフィールドデバイス90のセットを含み得る。例えば、フィールドデバイス90は、危険なフィールド環境12から遮蔽されているがフィールドデバイス90に電力を提供しない1つ以上の高帯域幅Ethernet(登録商標)リンク52を介して、HART-IPなどの工業制御IPプロトコルまたは他の好適な工業制御IPプロトコルを使用することによって、I/Oゲートウェイ40を介してSDCS 100と通信し得る。したがって、リンク52は、標準のEthernet(登録商標)またはパケットI/Oタイプをサポートし、I/Oゲートウェイ40は、リンク52を介して配信される通信にサービスを提供するためのそれぞれのI/Oカードまたはデバイスを含み得る。実施形態(図1には図示しない)では、リンク52のうちの少なくともいくつかは、それぞれのIP互換(標準Ethernet(登録商標))I/Oカードまたはデバイスに直接接続され得、このデバイスは今度は、データハイウェイを介して(例えば、有線デバイス60およびI/Oカード/デバイス61と同様の方式で)I/Oゲートウェイ40に通信可能に接続され得、このデータハイウェイは、データハイウェイ58に含まれ得るか、または異なるデータハイウェイであり得る。
もちろん、図1に示すフィールドデバイス60、62、70、80、90、およびフィールドコンポーネント68、72、82は単なる例示である。工業プロセスプラント10の他のタイプのフィールドデバイスおよびフィールドコンポーネントは、プロセスプラント10内で追加的または交互に利用され得、好適なリンク、プロトコル、およびプロセスI/Oタイプを利用することによって、I/Oゲートウェイ40を介してSDCS 100と通信し得る。
図2は、図1の工業プロセスプラントに含まれ得る、例示的なソフトウェア定義制御システム(SDCS)200のアーキテクチャのブロック図を描いている。例えば、アーキテクチャ200の少なくとも一部分は、図1のSDCS 100によって利用され得る。概して、後述するように、SDCS 200は、SDCS 200のビジネスロジックがSDCS 200の物理コンピューティングプラットフォームから抽象化された階層化アーキテクチャを利用する。説明を容易にするために、SDCS 200は、図1の工業プロセスプラント10の様々な部分を同時に参照して説明されているが、これは説明のみを目的としており、限定的なものではない。
図2は、I/OインターフェースシステムまたはI/Oゲートウェイ202を介してフィールド環境12に通信可能に接続されたSDCS 200を描いており、これは、図1のI/Oインターフェースシステム40とは異なり、SDCS 200によって利用されるものとは異なるハードウェアおよびソフトウェアコンピューティングリソースのセットを利用するものである。SDCS 200と、プロセスプラント10のフィールド環境12に配置されたデバイスまたはコンポーネントとの間で配信される通信のスイッチング、ルーティング、および変換などの、I/Oインターフェースシステム202によって提供される機能202aは、例えば、I/Oゲートウェイ202のハードウェアおよび/またはソフトウェアコンピューティングリソースを利用することによって遂行される。そのため、これらの機能202aは、本明細書では「ネットワークスイッチ」202aと分類的かつ集合的に呼ばれる。ネットワークスイッチ202aによって利用されるソフトウェアおよびハードウェアリソースは、I/Oゲートウェイ202の1つ以上のメモリおよびプロセッサ上に実装され得る。例えば、ネットワークスイッチ202aは、ネットワーワーキングされたコンピューティングデバイスのバンク、クラウドコンピューティングシステム、1つ以上のデータクラスタなどによって、1つ以上のサーバ上に実装され得る。しかしながら、図1のインターフェースシステム40と同様に、I/Oインターフェースシステム202は、様々なタイプのI/Oリンク42~58が物理I/OをSDCS 200からフィールド環境12のコンポーネントに、またはその逆に配信する物理ポートまたはインターフェース202bのセットを含む。I/Oインターフェースシステム202およびSDCS 200は、1つ以上のリンク205を介して通信可能に接続され得、これらは、典型的には、高帯域幅データまたは通信リンクである。
図2に示すように、SDCS 200のアーキテクチャは、アーキテクチャの上位層をサポートするハードウェアおよびソフトウェアリソースのコンピューティングプラットフォーム208を含む。したがって、コンピューティングプラットフォーム208は、物理プロセッサ、プロセッサコア、メモリ、およびネットワーキングインターフェースを含むので、本明細書では、SDCS 200の「物理層208」と交換可能に呼ばれる。コンピューティングプラットフォームまたはSDCS物理層208は、データセンタクラスタC1、C2、…、Cnのセットを含み、これらの各々は、それぞれの複数のノードを含み、各データセンタクラスタ内に含まれるノードは、完全ではないにしても、少なくとも部分的には相互接続され得る。各データセンタクラスタの各ノードは、1つ以上のそれぞれのプロセッサおよび/またはプロセッサコア、1つ以上のそれぞれのメモリ、ならびにノードをデータクラスタの1つ以上の他のノードに通信可能に接続する1つ以上のそれぞれの物理通信インターフェースなどのそれぞれのネットワーキングリソースを含む。例えば、ノードは、単一のサーバに実装されている場合もあれば、バンクまたはサーバのグループに実装されている場合もある。
さらに、各データセンタクラスタは、プラットフォーム208の他のデータセンタクラスタのうちの1つ以上と通信可能に接続またはネットワーキングされている。そのため、本開示はまた、SDCS 200のコンピューティングプラットフォーム208を、「データセンタクラスタ」、「コンピューティングプラットフォームノード」、または「ノード」208と交換可能に呼ぶ。図2では、SDCS 200のSDCSハイパーコンバージドインフラストラクチャ(HCI)オペレーティングシステム(OS)210(本明細書では「SD HCI OS」210と交換可能に呼ばれる)は、様々なノード208を割り当てる、指定する、または配分して、コンピューティング(例えば、ノードのそれぞれのプロセッサおよび/または処理コアを介して)またはデータストレージ(例えば、ノードのそれぞれのメモリを介して)など、SDCS 200をサポートするためのそれぞれの役割を遂行し得る。SDCS 200のコンピューティング活動を遂行するために割り当てられ、指定され、または配分されたノード208は、本明細書では、それぞれ「計算ノード」または「コンピューティングノード」と呼ばれる。同様に、SDCS 200のストレージ活動を実行するために割り当てられ、指定され、または配分されたノード208は、本明細書ではそれぞれ「ストレージノード」と呼ばれる。個々のノード208は、計算ノードのみ、記憶ノードのみ、または計算ノードと記憶ノードの両方として利用され得、各個々のノード208の役割は、例えば、SD HCI OS 210によって指示されるように、時間の経過とともに動的に変更され得る。有利には、コンピューティングプラットフォーム208はスケーラブルであり、ソフトウェア定義プロセス制御システム200をサポートするために、特に、SDCS 200の他の、より高い層の要件に従って、必要に応じて、個々のノード208および/または個々のクラスタCxに、容易に追加、削除、交換などが行われてもよい。
SDCSハイパーコンバージドインフラストラクチャ(HCI)オペレーティングシステム210は、コンピューティングプラットフォーム208で実行され、任意の好適な汎用HCIオペレーティングシステム(OS)、例えば、Microsoft Azure Stack、VMWare HCI、Nutanix AOS、Kubernetes Orchestration(Linux(登録商標)コンテナ(LXC/LXD)、Dockerコンテナ、Kataコンテナを含む)などに基づいて構築され得る。そのため、SDCS HCI OS 210は、汎用HCIオペレーティングシステムにいくらか類似した方式で、一連のコンピューティング、ストレージ、およびネットワーキングサポートサービスを提供する。しかしながら、汎用HCI OSとは対照的に、そして有利には、SDCS 200において、これらのSD HCI OSサポートサービスは、SDCS 200の論理的または抽象化されたプロセス制御システム、例えば、SDCS 200のアプリケーション層212のソフトウェアコンポーネントに動的に応答する。すなわち、アプリケーション層212の様々なアプリケーション層サービス、サブシステム、および他のソフトウェアコンポーネントのパフォーマンス、リソースニーズ、および構成が動的に変化すると(および/またはアプリケーション層212内のサービスによって、変化することが動的に予測されると)、SDCS HCIオペレーティングシステム210は、SDCS 200のハードウェアおよび/またはソフトウェアリソース208の使用量を自動的かつ応答的に調整および/または管理し、コンピューティング、ストレージ、およびネットワーキング、ならびに工業プロセス制御に関連する他の機能に対するSDCS 200のニーズおよび要件をサポートし得る。この目的のために、SD HCIオペレーティングシステム210は、例えば、ソフトウェア定義(SD)コンピューティング(または計算)サービス215、SDストレージサービス218、SDネットワークサービス220、SDを含む一連のサポートサービス、オーケストレータサービス222、および任意選択で、1つ以上の他のSDCS HCI OSサポートサービスおよび/または機能225を含み得る。そのため、実施形態では、SDCS HCIオペレーティングシステム210は、汎用HCIオペレーティングシステムプラットフォーム(例えば、Microsoft Azure Stack、VMWare HCIなど)を含み、このプラットフォームは、SDコンピューティングサービス215、SDストレージサービス218、SDネットワークサービス220、SDオーケストレータサービス222、および他のSDCS HCI OSサポートサービスおよび/または機能225を含むように特にカスタマイズされ、サポートサービス215~225のセットはソフトウェア定義制御システム200のSDCSアプリケーション層ソフトウェアコンポーネント212に対して自動的に応答し、特にサポートする。概して、SD HCI OS 210およびSD HCI OS 210が提供するSDサポートサービス212~225は、本明細書では、集合的かつ概して、SDCS 200の「ソフトウェア定義ネットワーク層」210と呼ばれる。
特に、SDCS HCI OS 210がSDCS HCI OSサポートサービス215~225を介して物理層208のノードのハードウェアおよびソフトウェアリソースの配分を管理するように、SDCS HCI OSサポートサービス215~225は、SDCS HCI OS 210とSDCS 200のアプリケーション層212のより高いレベルのサービス、サブシステム、および他のソフトウェアコンポーネントとの間のインターフェースサービスとして機能し得、かつ/またはアプリケーション層212のより高いレベルのサービス、サブシステム、および他のソフトウェアコンポーネントにフレームワークを提供し得る。そのため、SDCSアプリケーション層212のソフトウェアコンポーネントは、HCIアダプタ230(本明細書では「HCIアダプタ層」230とも呼ばれる)およびAPI 232の別のセットを介して、または直接(図2には図示せず)、アプリケーションプログラミングインターフェース(API)228のセットを介して、SD HCI OS 210(および場合によっては、特にそのSD固有のサポートサービス215、218、220、222、225のうちの1つ以上と)インターフェースし得る。HCIアダプタ層230は、SDCSアプリケーション層212が、SD HCI OS 210を形成するために、このようなSD固有のサービス215~225でカスタマイズされた汎用HCIオペレーティングシステム(例えば、Microsoft Azure Stack、VMWare HCIなど)の特殊性に不可知論的でありながら、サポートサービス215、218、220、222、225にアクセスすることを可能にする。したがって、HCIアダプタ230は、SDCSアプリケーション層212によって利用されるAPI 228を、SDCS 200のカスタマイズまたは適合された汎用HCオペレーティングシステム210に理解されるか、もしくは他の方法で既知であるか、または互換性があるAPI 232のセットに変換または変形する。
このように、ビジネスロジックアプリケーションがハードウェアおよびソフトウェアのコンピューティングプラットフォームから抽象化され、コンピューティングプラットフォームリソースの管理が人間のIT管理者によって大きく管理および設計される、一般的な層状のIT(情報技術)システムアーキテクチャとは異なり、SDCS 200のアーキテクチャは、より高いレベルの、ビジネスロジックサービス、サブシステム、およびアプリケーション層212の他のソフトウェアコンポーネントを、ハードウェアおよびソフトウェアコンピューティングプラットフォーム208から抽象化するだけでなく、例えば、API 228およびSDサポートサービス215、218、220、222、225を介して、かつ、いかなる人間の介入または指示をも必要とすることなく、上位レベルのSDサービス、サブシステム、および他のソフトウェアコンポーネント212が、動的に、自動的に、応答的に、コンピューティングプラットフォーム208のノードおよびクラスタのハードウェアおよびソフトウェアリソースの使用量を指示し、変更を引き起こすことも可能にする。特に、かつ有利には、コンピューティングプラットフォーム208のリソースの管理は、これらの上位のSDサービス、サブシステム、およびアプリケーション層212の他のソフトウェアコンポーネントの構成およびニーズの変化に動的に応答し、特に、工業プロセス制御システムの特定の要件、限界、および境界に対して応答する。
SDCS 200では、工業プロセス制御および他の関連するビジネスロジックは、SDCS 200のアプリケーション層212において、より高いレベルのSDサービス、サブシステム、および他のソフトウェアコンポーネント235、238、240、242、248によって遂行される。本明細書で読みやすくするために、本開示は、これらのより高いレベルのSDサービス、サブシステム、および他のソフトウェアコンポーネント235~248を、SDCS 200のソフトウェア定義の「アプリケーション層ソフトウェアコンポーネント」として分類的に参照する。集合的に、SDアプリケーション層コンポーネント235、238、240、242(および任意選択でサードパーティサービス248のうちの少なくともいくつか)のセットは、例えば、工業プロセスプラント10において実行される1つ以上の工業または物理プロセスを制御するための論理プロセス制御システム245(本明細書では交換可能に「仮想プロセス制御システム」245とも呼ばれる)を形成している。図2に示すように、SDアプリケーション層ソフトウェアコンポーネント212は、プロセス制御サービス235のセットおよびプロセス制御サブシステム238のセットを含み、任意選択で、他のSDCSビジネスロジックサービス240のセットを含み得る。図2では、I/Oサーバサービス242は、説明(限定ではない)の目的を明確にするために別個に描かれており、しかしながら、I/Oサーバサービス242は、SDCS 200のサブシステム238に含まれ得るか、または他のSDCSビジネスロジックサービス240のセットに含まれ得る。実際、SDCS 200の他の実施形態(図示せず)では、I/Oサーバサービス242の少なくともそれぞれの部分または全体が、HCIアダプタ230、SD HCIオペレーティングシステム210、および/またはネットワークスイッチ202aにおいてさえ実装され得る。さらに、SDCS 200のいくつかの実装形態では、サードパーティのビジネスロジックサービス248のセットもSDCSアプリケーション層212において実行され得、論理プロセス制御システム245の一部として動作する場合もしない場合もある。例えば、サードパーティサービス248は、SDCS 200のソフトウェア開発キット(図示せず)によって生成され得、これを介して、ユーザは、SDアプリケーション層212においてサードパーティサービス248を開発、生成、インストール、および管理し得る。I/Oサーバサービス242およびサードパーティサービス248のより詳細な説明は、本開示内の他の場所で提供される。
実施形態では、SDアプリケーション層ソフトウェアコンポーネント235~248のうちの少なくともいくつかは、マイクロサービスバス(図示せず)を介して通信可能に接続されるマイクロサービスとして展開され得、その結果、マイクロサービス235~248は、その他のマイクロサービス235~248へデータを転送し、そこからデータを受信し得る。マイクロサービス235~248およびそれらの間のデータの配信は、I/Oサーバサービス242によって、および/またはSD HCIオペレーティングシステム210およびそのSDサポートサービス215~225によってサポートおよび/または管理され得る。そのため、SDアプリケーション層ソフトウェアコンポーネント235~248は、サーバクラスハードウェア、および組み込みハードウェアなどの、SD HCIオペレーティングシステム210を実行することができる任意の好適なハードウェアプラットフォーム208上で実行され得る。したがって、マイクロサービス235~248は、コンピューティングプラットフォーム208から抽象化されたSDCS 200のビジネスロジックコンポーネントであり得る。
SDCS 200のアーキテクチャ内では、アプリケーション層ソフトウェアコンポーネント235~248は、インスタンス化されたソフトウェアコンポーネント(ISC)として、コンテナ、シックプロビジョニングされた仮想マシン環境、シンプロビジョニングされた仮想マシン環境、および/または他の好適なタイプのカプセル化された実行環境において実行され得る。例えば、ISCは、特定のアプリケーション層ソフトウェアコンポーネント235~248の構成されたコンテナまたはコンテナイメージを形成するために、特定のアプリケーション層ソフトウェアコンポーネント235~248のインスタンスで構成され得、特定のアプリケーション層ソフトウェアコンポーネント235~248のコンテナイメージは、特定のISCとして特定のノード208上で実行するためにインスタンス化され得る。別の例では、ISCは、特定のアプリケーション層ソフトウェアコンポーネント235~248の仮想マシンイメージを形成するために、仮想マシンのインスタンスとして(例えば、プロセス仮想マシンまたはアプリケーション仮想マシンの)実装された特定のアプリケーション層ソフトウェアコンポーネント235~248であり得、特定のアプリケーション層ソフトウェアコンポーネント235~248の仮想マシンイメージは、特定のISCとして、特定のノード208上の実行のためにインスタンス化され得る。いずれにせよ、コンテナベースであろうと仮想マシンベースであろうと、SDアプリケーション層ソフトウェアコンポーネント235~248のカプセル化された実行環境は、インスタンス化され実行されているソフトウェアコンポーネント235~248を、同じノード208上で実行されている他のサービスおよびアプリケーションから分離する。しかしながら、説明を容易にするために(そして限定目的ではなく)、SDアプリケーション層ソフトウェアコンポーネント235~248の実行環境は、本明細書では「コンテナ」と呼ばれるが、当業者は、コンテナに関して本明細書に記載された原理および技術が、所望により仮想マシンに容易に適用できることを理解するであろう。
SDCS 200では、アプリケーション層サービス235、240、248の各インスタンスは、それぞれのコンテナで実行され得、各サブシステム238は、それぞれのコンテナで提供され得るかまたは実行し得、I/Oサーバサービス242は、それぞれのコンテナで実行するなどして、それによって、それぞれの構成されたコンテナまたはコンテナイメージを形成し得る。例えば、コントローラサービス235は、1つ以上のプロセス制御モジュールサービス235、パラメータ、および工業プロセスプラント10の値、例えば、入力および出力のタグ、参照値などで構成され得、それによって、構成またはプログラムされたコントローラサービスを形成する。コンテナは、構成されたコントローラサービスのインスタンスで構成され、それによって、構成されたコントローラサービスのコンテナイメージを形成し得る。別の言い方をすれば、構成されたコンテナは、構成されたコントローラサービスのインスタンスを含み、構成されたコントローラサービスのインスタンスは、構成された制御モジュールコンテナ、タグ、参照値などを使用して、特定の、構成されたプロセス制御ロジックのセットを遂行するために実行可能である。構成されたコントローラサービス(または他の構成されたサービス)の複数のインスタンスは、本開示内の他の場所に記載されているように、SDCS 200によってインスタンス化および実行され得る。
コンテナイメージ(またはコンテナ内に構成されたコントローラサービスのインスタンス)は、それぞれのSDノードおよび/またはデータセンタクラスタ208上で実行するために、例えばSD計算サービス215を介して、配分され、固定され、または動的に割り当てられ得る。SD計算サービス215は、例えば、計算ノード208間で負荷分散するため、計算ノード208および/またはその物理コンポーネントのスケジュールされた保守のため、検出されたパフォーマンス問題に対応するため、論理プロセス制御システム245の拡張または縮小をサポートするため、コンピューティングプラットフォーム208の拡張または縮小をサポートするためなど、必要であればまたは必要なときに、計算ノード208に対するコンテナイメージおよびそれらのそれぞれの割り当てを動的に変更、更新、維持、および/または管理し得る。いくつかの実装形態では、アプリケーション層ソフトウェアコンポーネント235~248が実行されるコンテナ(例えば、構成されたコンテナまたはコンテナイメージ)は、SDCS 200の外部にある(例えば、SDCS 200とは分離されている)I/Oデバイス、例えば、I/Oインターフェースシステム202に含まれるデバイスに、割り当てられるかまたは固定され(または他の方法でこれらのデバイス上で実行され)得る。これらの実装形態では、SDCS 200は、他のデバイス/システム(本明細書では「マイクロコンテナ」と呼ばれる)上で実行されるそのような構成されたコンテナを発見し、ネットワークスケジューリングおよび論理プロセス制御システム245に対応する他の態様において発見されたマイクロコンテナを含む。
SDCS 200内で、いくつかの構成されたコンテナは、動的に変化する構成、パフォーマンス、および論理プロセス制御システム245のニーズに基づいて、SD計算サービス215によって、それぞれのSD計算ノード208に配分されるかまたは割り当てられ、異なるSD計算ノード208に動的に再割り当てされ得る。状況によっては、コンテナは、特定のプロセッサまたはSD計算ノード208の特定のプロセッサコアによって実行されるように割り当てられ(および再割り当てされ)得る。ただし、いくつかの構成されたコンテナは、(例えば、SD計算サービス215によって、構成によって、ユーザによってなど)それぞれのSD計算ノード208に固定され、動的に発生する状態に起因してSD計算サービス215によって動的に再割り当てされない場合がある。すなわち、固定された構成されたコンテナは、構成されたコンテナが計算ノード208から固定解除されるまで、例えば、論理プロセス制御システム245の動的な状態(構成されたコンテナが固定された計算ノード208のおそらく故障以外)に関係なく、構成されたコンテナが固定されたSDC計算ノード208上で実行され得る。別の言い方をすれば、ソフトウェア定義ネットワーク層210は、固定された構成されたコンテナによる利用を、それが固定されたハードウェアおよび/またはソフトウェアリソースのみに制限することができ、構成されたコンテナが固定解除されると、SDネットワーク層210は制限を除去する。コンテナは、必要に応じて、SDCS 200の他の物理または論理コンポーネントに追加的または代替的に固定され得る。例えば、コンテナは、別のコンテナ、特定のデータクラスタ、特定の処理リソース(例えば、SD計算ノード208の特定の物理プロセッサまたは特定の物理プロセッサコア)、物理ラック、または特定の電源によってサービスが提供される物理ラック部分(物理ラックが1つ以上のノードのハードウェアを物理的に収容する場合)などに固定され得る。
さらに、構成されたコンテナは、他の構成されたコンテナ内にネストされ得、これは、論理プロセス制御システム245を構成および編成するのに特に有用である。例えば、特定のプロセス制御サブシステム238が制御サービス235および/または他のSDCSサービス240の特定のセットを提供する場合、特定のセットの各提供されたサービス235、240の構成されたコンテナは、特定のプロセス制御システム238の構成されたコンテナにネストされ得る。構成されたコンテナの計算ノード208への配分/割り当て、構成されたコンテナの固定、およびネストは、本開示の他の場所でより詳細に説明される。
本明細書における説明の明確化および容易化のために、本明細書では、「コンテナ」という用語は、概して、構成されたコンテナまたはコンテナイメージであるインスタンス化されたソフトウェアコンポーネント(ISC)、例えば、それぞれのSDCSコントローラサービス、SDCSサブシステム、またはSDCS 200によって提供されるその他のサービスを含むように構成されたコンテナに言及するために利用される。したがって、意味論的に言えば、本開示内で、「コンテナ」は、コンピューティングノード208において実行するようにインスタンス化され、割り当てられ得、「コンテナ」は、特定のコンピューティングノードまたは他のコンテナに固定され得、「コンテナ」は、別の「コンテナ」内にネストされ得る。
いずれにせよ、コンピューティングプラットフォーム208のコンピューティングリソースについて説明したのと同様の様式で、コンテナは、例えば、SDストレージサービス218を介して、様々なSDCストレージノード208に、動的に配分および/もしくは割り当てされ、固定、ならびに/またはネストされ、それによって、論理プロセス制御システム245の様々なストレージニーズをサポートし得る。例えば、SDストレージサービス218は、1つ以上のノード208の様々な物理ハードウェアメモリリソースにわたって、論理プロセス制御システム245のコンテナによって利用される論理ストレージリソースを運営および管理し得る。例えば、構成されたコンテナおよびその動作に必要なメモリ(例えば、ランダムアクセスメモリまたは同様のもの)は、特定のSDストレージノード208もしくは特定のメモリデバイス、またはSDストレージノード208のスペースに記憶され得る。物理ハードウェアメモリリソース208のタイプの例には、いくつか例を挙げると、複数のハードドライブ(および/またはフラッシュドライブ)デバイスにわたるボリュームファイルシステムのプール、NRAM、MRAM、FRAM(登録商標)、PRAM、および/または他のタイプのNVRAM、NVMeメモリが含まれ得る(ただし、これらに限定されない)。さらに、必要に応じて、いくつかのコンテナは、それぞれのSDストレージノード208および/またはSDストレージノード208の特定のメモリデバイスまたはメモリエリアに固定され得る。SDストレージサービス218は、例えば、ディスクまたは他のタイプのエラーに起因する、スケジュールされた保守のため、コンピューティングプラットフォーム208における利用可能な物理メモリの追加/拡張に起因するなど、必要なときにおよび必要に応じて、SDCS 200の論理ストレージリソースをサポートするために、物理ハードウェアメモリまたはメモリ208を変更、更新、またはその他の方法で管理をし得る。
さらに同様に、SDネットワークサービス220は、ノード208にわたってSDネットワーキングサービス220によって実装され得る論理プロセス制御システム245によって利用される論理または仮想ネットワーキングを運営および管理し得る。例えば、SDネットワークサービス220は、仮想インターフェース、仮想スイッチ、仮想プライベートネットワーク、仮想ファイアウォールルールなど、論理または仮想プロセス制御システム245に含まれる論理ネットワーキング機能性をサポートし、さらに論理プロセス制御システム245の様々なコンテナまたはコンテナイメージ間の必要なネットワーキングをサポートするために、コンピューティングプラットフォーム208のネットワーキングおよびハードウェアリソースを運営および管理し得る。論理プロセス制御システム245が工業プロセスプラント10にサービスを提供するので、SDCS 200の論理および物理コンポーネントのタイミングおよび同期化、ならびにそれらの間のネットワーキングは決定的に重要であり、というのも、メッセージまたは通信の見落としおよび/または損失により、工業または物理プロセスが制御不能になり、これにより、ひいてはオーバーフロー、ガス漏れ、爆発、機器の損失、および状況によっては人命の損失などの破局的結果に至る可能性があるからである。幸いなことに、SDネットワークサービス220は、SDCS 200の重要なプロセスI/Oタイミングおよび同期に応答するので、通信(特に、制御サービス235へ/からの通信)は、タイムリーかつ決定論的な方式で確実に配信され得る。例えば、SDネットワークサービス220は、データセンタクラスタ208の1ミリ秒以内の時間同期をサポートして、プロセス制御サービス235、プロセス制御サブシステム238、I/Oサーバ242、およびSDCSアプリケーション層212の他のSDCSサービス240、248の間で必要な同期を保証し得る。
SD計算サービス215、SDストレージサービス218、およびSDネットワークサービス220に加えて、SD HCIオペレーティングシステム210は、API 228、232のセットを介してアクセス可能であり、論理プロセス制御システム245をサポートするためにアプリケーション層212によって利用またはアクセスされる他のOSサポートサービス225を提供し得る。例えば、他のSD HCI OSサービス225は、いくつか挙げると、サービスライフサイクル管理サービス、発見サービス、セキュリティサービス、暗号化器サービス、認証局サブシステムサービス、鍵管理サービス、認証サービス、時間同期サービス、サービス位置サービス、および/またはコンソールサポートサービス(すべて図2には図示せず)などを含み得る。これらの他のプロセス制御システムに関連するOSサポートサービス225のより詳細な説明は、本開示内の他の位置で提供される。SDCS 200のいくつかの実施形態では、サポートサービスのうちの1つ以上は、OSサポートサービス225としてソフトウェア定義ネットワーク層210において実行する代わりに、例えば、他のSDCSサービス240として、アプリケーション層212で実行することができる。
ここで、SDCS 200のアプリケーション層212に目を向けると、SDプロセス制御サービス235のセットは、論理プロセス制御システム245のプロセス制御ビジネスロジックを提供する。各異なる制御サービス235は、所望のパラメータ、値など、および任意選択で他の制御サービス235で構成され得、構成された制御サービス235の各インスタンスは、それぞれのコンテナ内で実行され得、また各コンテナは、それぞれのノードまたはクラスタで実行するように割り当て(または固定)され得る。そのため、各構成された制御サービス235は、機能的に構成され得、従来のハードウェア実装プロセスコントローラデバイス、プロセス制御モジュール、プロセス制御機能ブロックなどと同様の様式で遂行され得る論理またはソフトウェア定義の制御エンティティであり得る。しかしながら、従来の、ハードウェア実装プロセスコントローラデバイス、従来の制御モジュール、および従来の制御機能ブロックとは異なり、そして有利には、SDCS 200は、パフォーマンス、フォールトトレランス、および回復などの様々な目的のために、同じ構成された制御サービス235の複数のインスタンスを容易に複製し得る。例えば、コントローラサービス(独自のコンテナ内で実行される)は、制御モジュールサービス(その独自のコンテナ内で実行される)を実行するように構成され得、制御モジュールサービスは、制御機能ブロックサービスのセットを実行するように構成され得る(それらの各々がその独自のコンテナ内で実行され、それらの各々がそれぞれのパラメータ、値などで構成され得る)。そのため、構成された制御機能ブロックサービスのセットに対応するコンテナのセットは、制御モジュールサービスコンテナにネストされ得、制御モジュールサービスコンテナは、コントローラサービスコンテナにネストされ得る。構成された機能ブロックサービスのセットに対応するコンテナのセットは、例えば、パフォーマンス負荷分散の目的で、物理層プロセッサ208の異なるコア上で実行するように割り当てられ得る。負荷が変化すると、機能ブロックサービスコンテナのうちの1つ以上は、負荷を再平衡化する試みにおいて、異なるプロセッサコア、異なるプロセッサ、または異なるノードで実行するために移動させられ得る。しかしながら、移動させられた機能ブロックサービスコンテナは、引き続き制御モジュールサービスコンテナの下にネストされ、それに応じて実行されるであろう。
ソフトウェア定義制御サービス235に加えて、SDCSアプリケーション層212は、他のタイプのSDCSアプリケーション層サービス240、例えば、これらに限定されないが、オペレータディスプレイおよびインターフェース、診断、分析、安全ルーチン、報告、データの履歴化、サービスの構成、コンテナの構成、外部または他のシステムとの情報の通信などを含み得る。概して、従来のプロセス制御システムにおいて構成され、工業プロセスプラントの稼働時間の間に実行するために従来のプロセス制御システムの特定の物理デバイスにダウンロードされ、および/またはインスタンス化され得る任意のモジュールもしくはプロセス制御システム関連機能またはビジネスロジックは、それぞれのコンテナで実行されるそれぞれのサービス235、240としてSDCS 200に論理的に実装され得る。さらに、コンテナ化されたSD制御サービス235のいずれかが、例えば、SDネットワーク層210を介して、工業プロセスプラントのフィールド環境12に配置されたそれぞれの1つ以上のデバイス(例えば、プロセス制御フィールドデバイス60、62、70、80、90、ユーザインターフェースデバイスおよび/または他のフィールド環境デバイス)と、および/またはそれぞれの1つまたは複数のユーザインターフェース/ユーザインターフェースデバイス20a~20e、と通信可能に接続されて、コンテナ化されたSD制御サービス235のビジネスロジックによっておよび/または受信者デバイス(または受信者デバイス上で実行されるアプリケーションまたはサービス)によって要求されたときに、それらの間でI/Oデータおよび/または他のタイプのデータを転送し得る。状況によっては、異なるコンテナ化されたSD制御サービス235は、他のコンテナ化されたSD制御サービス235および/または他のSDCSサービス240と通信可能に接続されて(例えば、SDネットワーク層210、I/Oサーバサービス242、マイクロサービスバスなどを介して)、それらのそれぞれのビジネスロジックによって要求されたときに、それらの間でデータを転送し得る。
SDCS 200のアプリケーション層212にあるSDサブシステム238のセットは、論理プロセス制御システム245の仮想または論理プロセス制御関連サブシステムを提供する。各異なるSDサブシステム238は、それぞれのコンテナによって提供されるか、またはそれぞれのコンテナ内で実行され得る。場合によっては(図2には図示せず)、サブシステム238は、1つ以上のアプリケーション層サービスを提供するかまたは含むことができ、そのため、サブシステムによって提供されるサービス235、238のコンテナは、サブシステムコンテナにネストされ得る。例えば、ヒストリアンサブシステム238は、読み取りサービス、書き込みサービス、および検索サービスを含み得、それらのそれぞれのコンテナは、ヒストリアンサブシステムコンテナにネストされる。別の例では、バッチプロセス制御サブシステム238は、ユニット手順サービス、レシピサービス、およびバッチプロセス制御システムコンテナ内にネストされ得る規制記録生成サービスを含み得る。一般に、SDサブシステム238のセットは、SDCS制御サービス235および他のSDCSサービス240が容易かつ首尾一貫してグループ化および/または管理されることを可能にする。好ましい実施形態では、SDCS 200の各ノード208は、SDサブシステムのセット238の各サブシステムのそれぞれのインスタンスをホストし、これにより、例えば、サブシステムサービスが、各ノード208上で現在実行されている他のアプリケーション層サービス235、240、248に近接して容易に利用可能であるようにされる。したがって、サブシステム238のうちの1つ以上への変更は、各ノード208において(例えば、SD HCI OS 210の指示の下で)実行されるその対応するインスタンス間で調整され得る。そのため、SDサブシステム238のセットは、同じノード208上で実行される任意のSDサービス235、240、248に対して高度かつ近接して利用可能であるだけでなく、ノード障害、ノードコンポーネントの障害、またはノードにおける特定のサブシステムインスタンスの障害の場合、SDサブシステム238のセットによって提供される機能は、論理プロセス制御システム245のために容易に維持され得る。SDサブシステム238の例には、いくつか例を挙げると、連続プロセス制御、イベント駆動プロセス制御、バッチプロセス制御、状態ベース制御、ラダーロジック制御、ヒストリアン、エッジ接続、プロセスユーザ、アラーム、ライセンス、イベント、バージョン制御、プロセス構成、およびプロセスI/Oが含まれるが、これらに限定されない。
例えば、SDサブシステム238のセットは、連続プロセス制御サブシステムを含み得る。連続プロセス制御サブシステムは、連続生産および操作のために調整されたプロセス制御の実行を担う制御サービス235のセットを含み得る。例えば、連続プロセス制御サブシステムによって提供される制御サービス235は、I/O割り当てを伴う定期的な実行が可能なモジュラー制御(例えば、制御モジュールサービス)を実行し得る。連続プロセス制御サブシステム内で管理され得る制御システムエンティティ(論理および物理の両方)のビジネスロジックには、いくつか例を挙げると、コントローラ、I/O割り当て、制御モジュール、機能ブロック、ラダーロジック、および構造テキストベースの制御アルゴリズムが含まれ得る(ただしこれらに限定されない)。連続制御モジュールサービスは、モジュールチェーンの有無にかかわらず、周期的にスケジュールされ得る。例えば、連続制御モジュールサービスは、実行の連鎖を形成し得、その結果、連続制御モジュールサービスのユーザ定義のセットは、連鎖方式次々に実行され得る。連続制御モジュールサービス連鎖は、モジュールサービス連鎖内に含まれる制御論理のベストエフォート評価において、割り当てられた(周期的な)実行量で実行され得る。非連鎖式連続制御モジュールサービスは、同じ周期的実行量中に連鎖式連続制御モジュールサービスに関して並行して実行され得る。
別の例では、SDサブシステム238のセットは、状態ベースのプロセス制御サブシステムを含み得る。状態ベースのプロセス制御システムは、全体としてプロセス制御システム245の状態を追跡、割り当て、および導出することを担う状態ベースの制御サービス235のセットを含み得る。概して、プロセス制御システムの状態ベースの操作には、プラントインフラストラクチャ内のプロセスユニットのセット上でプロセス(またはその部分)の状態を自動的または半自動的に変更することを目的とした操作が含まれ得る。各状態操作は、例えば、プロセスユニットの現在の状態を導出し、現在の状態を判定し、現在のプロセス状態と既知のプロセス状態について記録された正規化との間の差異を分析し、プロセスを駆動してプロセス状態を達成する能力を有し得る。
例えば、状態ベースのプロセス制御サブシステムは、中間プロセスI/Oまたは制御変更を自動的に導出し、プロセス制御システム245の少なくとも一部分をある状態から別の状態に駆動し得る。SDCS 200の状態は、プロセス安全性およびプロセス収益性に対応する境界条件を尊重して、状態間の自動的に導出された移行とともに、保存および復元され得る。例示すると、例示的なシナリオでは、プロセスユニットAの状態を既知の状態Bから既知の状態B’に安全に駆動するために、プロセス命令のセットが生成され得(例えば、状態ベースのプロセス制御システムに含まれる1つ以上のアプリケーション層サービス235によって)、生成されたプロセス命令は、ボイラーユニットのバーナーが摂氏200度未満でなければならないというプロセスの安全性制限を尊重する。さらに、状態変化に影響を与える期間ごとの燃料利用量を最小化し、環境排出の報告に関連する金銭的費用を最小化することによって収益性を維持できるので、自動的に導き出されたプロセス命令は、突然の燃焼による環境排出を防止するために、および/またはバーナー自体の過剰作動状態を防止するために、バーナー出力の変化を毎秒1度に制限する収益性制約を尊重することもできる。
さらに、状態ベースのプロセス制御サブシステムは、プロセスプラント内の未知の状態を認識し、未知の状態を解決するアプリケーション層サービス235を提供し得る。概して、プロセスプラントの未知の状態は、プロセスプラントのI/Oおよびプロセスタグが、既知の状態から事前定義された量を超えて逸脱する状態にある場合に発生する可能性がある。追加的または代替的に、未知のプロセスプラント状態は、プロセスI/Oまたはプロセスデバイスが読めないまたは不確定なステータスまたは値を有するとき、例えば、センサが範囲外の状態を有するとき、またはセンサが全く通信していないときに発生する可能性がある。状態ベースのプロセス制御サブシステムによって提供されるアプリケーション層サービスは、プロセス制御システム245の様々な部分および/またはコンポーネントの最後の既知のプロセス状態を記録し、未知の状態と比較するために最後の既知の状態をユーザに提示し得る。それでも、状態ベースのプロセス制御サブシステムは、そこに含まれるプロセスデバイスが通信していないがまだ動作しているとき、すなわち、通信していないプロセスデバイスに関連するものを除く他のすべての制御およびI/Oタグ値が既知の状態に一致するとき、プロセスユニットの状態を推定するアプリケーション層サービス235を含み得る。この状況の例としては、通信しなくなったフィールドバルブがあってもよく、ただし、バルブの位置は、最後の既知のプロセスユニットの状態から変更されていない。状態ベースのプロセス制御サブシステムに含まれるアプリケーション層サービス235は、他のすべてのプロセスI/Oおよびセンサタグが所与の状態に対して有効なプロセス値を依然として報告しているので、フィールドバルブ位置は、以前に報告された既知の状態にあると推定されてもよいと判定してもよい。状態視覚化ツールは、例えば、システムを既知の記録された、証明可能な(例えば、推定されていない)状態にするための保守作業が開始されるように、ユーザに警告するために、推定状態と実際のプロセス値との間の不一致を示し得る。
さらに、状態ベースのプロセス制御サブシステムは、状態定義を作成および保存する際にユーザを自動的に支援するアプリケーション層サービス235を提供し得る。概して、プロセス状態は、一般的に状態移行図を参照することによって、ユーザによって定義され得る。ユーザが状態定義を作成するのを支援するために、状態ベースのプロセス制御サブシステムによって提供されるアプリケーション層サービス235は、実行中のプロセスまたはデジタルツインシステムの現在の値を取り、それらの値を、例えば、ユーザによって定義される特定の名前付き状態に対する状態範囲に処理することによって、自動的に状態定義を作成し得る。例えば、プラントプロセスがシャットダウンされる場合、状態ベースのプロセス制御サブシステムによって提供されるアプリケーション層サービス235は、現在読み取られているプロセスI/Oおよびデバイスタグ値に基づいて状態範囲を作成することによって、シャットダウン状態とラベル付けされた状態定義を作成し得る。発生する偏差(自律的に生成されるかまたは意図的に挿入されるかに関係なく)が記録され、状態範囲が作成されて、状態定義の一部としてそれらの偏差が捕捉され得る。例えば、データ収集期間中に振動または温度が10%である事に起因してレベル偏差が発生した場合、状態ベースのプロセス制御サブシステムによって提供される自動状態定義作成アプリケーション層サービス235は、所与のプロセス状態定義の検証範囲として定義するために、そのプロセス値について±10%の範囲を生成し得る。プロセス状態の定義は、現在のプロセス値を使用して作動中のプロセスから自動的に導出されてもよく、または包括的なプロセスヒストリアンによって示される所与の状態の特定の時間のセグメントに基づいて導出されてもよい。
別の例では、イベントベースのプロセス制御サブシステムは、1つ以上のイベントの発生に基づいて実行するようにトリガーされ得るアプリケーション層制御サービス235のセットを含み得る。例えば、イベントベースの制御モジュールサービスは、I/O条件が特定の値またはステータスに到達したときに実行され得る。制御モジュールのサービス実行チェーンは、イベントベースでもトリガーされ得る。さらに、様々な制御モジュールサービスおよび/または制御モジュールサービスチェーンは、イベントタイムアウトが発生したとき、例えば、制御ロジックが主にイベント駆動型であり、トリガーイベントが特定の期間内に発生しなかったときに実行するように構成され得る。これらの状況では、実施形態では、周期的なスケジューラは、イベントタイムアウトが発生した後に、制御モジュールサービスおよび/または制御モジュールサービスチェーンを実行し得る。SDCS 200内の他のイベントは、様々な制御モジュールサービスの実行をトリガーすることがあり、他のイベントには、診断イベントもしくは状態、プロセスのダウンロード変更、または他のSDCSイベントが含まれ得る。
さらに別の例では、バッチプロセス制御サブシステムは、(例えば、政府のトレーサビリティのために)バッチ制御および規制アイテムの追跡を遂行するアプリケーション層制御サービス235のセットを含み得る。バッチプロセス制御サブシステムによって提供されるアプリケーション層制御サービス235は、例えば、ユニット手順、レシピ、フェーズ、フェーズ遷移などを提供し得る。さらに、バッチプロセス制御サブシステムによって提供されるアプリケーション層制御サービス235は、生成されるバッチプロセス制御に関連する規制記録を管理し得る。
SDCSサブシステム238のセットは、ソフトウェア定義制御システム200内のプロセスI/Oおよびイベントの時系列データを記録するためのアプリケーション層サービス240のセットを提供するヒストリアンサブシステムを含み得る。例えば、ヒストリアンサブシステムによって提供される様々なアプリケーション層サービス240は、記録目的のためにプロセスI/Oおよび/またはイベントデータをサブスクライブし得る。ヒストリアンサブシステムによって提供される他のアプリケーション層サービス235は、ソースタイムスタンプサービス、時間圧縮サービス(例えば、一定値を一度記録し、それに応じて時間の範囲を更新し得る)、および従来の時系列データベース機能などを含み得る。記録された履歴データは複製され、SDCS 200内のすべてのノード208に利用可能にされ得る。さらに、実施形態では、履歴データは、ソースサブシステム(例えば、履歴データを生成したサービスまたはサブシステム)、本番資産、本番タグ、SDCSデータパス、および/または任意の他の所望のカテゴリによって分類され得る。
追加的または代替的に、SDCSサブシステム238のセットは、エッジ接続サブシステムを含み得、エッジ接続サブシステムは、アプリケーション層サービス240のそれぞれのセットを介して、プロセス制御データがプロセス制御システムの外部にある様々なサードパーティコンポーネントへと送信され、そこから受信されることを可能にするエッジプロトコルのセットを提供し得る。このようなエッジプロトコルの例には、いくつか例を挙げると、OPC-UAおよびMQTTが含まれる。エッジ接続サブシステムは、SDCS 200へのクラウド接続を提供する1つ以上のアプリケーション層サービス240を含み得、クラウドベースのアプリケーションは、プラントのステータスおよび資産の健全性に対する工業プロセスプラントの監視、ならびにその他のタイプの機能などの様々な機能をサポートし得る。エッジ接続サブシステムによって提供されるアプリケーション層サービス240のうちの少なくともいくつかは、使用されているエッジプロトコルに固有のデータモデルとして、SDCS 200および対応するプロセスI/Oデータの論理表現を生成し得る。このようなデータモデルにより、必要に応じて、選択したプロセスデータへの安全なサードパーティアクセスが可能になる。
いくつかの実施形態では、SDCSサブシステム238のセットは、診断サブシステムを含み、診断サブシステムは、様々な他のSDアプリケーション層サービス235、240、248から、他の様々なSDサブシステム238から、ノード208から、およびSDCS 200のSDネットワーク層コンポーネント210から、診断データを収集および提供するためのアプリケーション層サービス240のセットを提供し得る。
SDCSサブシステム238のセットは、プロセス制御システム245内のプロセスI/OのI/O接続および構成を管理するためのアプリケーション層サービス240のセットを提供するプロセスI/Oサブシステムを含み得る。前述したように、プロセスI/Oサブシステムは、実施形態では、I/Oサーバサービス242を提供し得る。
SDCSサブシステム238のセットは、ユーザがSDCS 200にログインするときにユーザ資格情報を検証および/または確認するためのアプリケーション層サービス240のセットを提供するプロセスユーザサブシステムを含み得る。さらに、プロセスユーザサブシステムのサービス240は、例えば、承認のために、他のサービス235、240、248にユーザ情報を提供し得る。必要に応じて、ユーザのデータをデータセンタクラスタ208内に複製し得る。
それでも、SDCSサブシステム238のセットは、SDCS 200内のアラームの定義、ステータス、および状態を維持するためのアプリケーション層サービス240のセットを提供するアラームサブシステムを含み得る。アラームには、例えば、プロセスアラーム、ハードウェアアラーム、保守アラーム、ユニットアラーム、ネットワーク層アラーム、I/Oアラーム、ハードウェア資産アラーム、ソフトウェア資産アラーム、および診断アラームなどが含まれ得る。
いくつかの実装形態では、SDCSサブシステム238のセットは、ユーザがSDCS 200のライセンスレベルに従って特権を有することを検証または保証するためのアプリケーション層サービス240のセットを提供するライセンスサブシステムを含み得る。ライセンスレベルは、すべてのSDCSサービス235、240、およびサブシステム238で利用可能にされ得、永久ライセンス、タイムサブスクリプションライセンス、消費ベースのライセンス、リモートライセンス(例えば、クラウドまたは専用ライセンスからのライセンスデータ)などの形態をとり得る。SDCS 200のライセンスが期限切れになるか無効になると、SDCS 200は人の健康に重大または危険なプロセスを作動する可能性があるため、ライセンスを実施するライセンスサブシステムによって提供されるアプリケーション層サービス240は特に重要である。このような状況では、ライセンス実施サービスは、ライセンス実施がユーザにとって危険な環境をもたらさないことを保証しながら、ライセンスされていない活動の発生を防止することができる。例えば、実施形態では、SDCS 200がライセンス解除されると、すべてのユーザ向けアプリケーション、オペレータグラフィックス、およびワークステーションは、システムがライセンス解除されたことを示す透かしまたは半透明のバナーテキストでオーバーレイされ得、制御サブシステムによって提供されるサービスを除くすべてのサービスは、それらに対するいかなる変更または修正も拒否し得る。そのため、いくつかのライセンスされた機能は、プロセスの実行が制御不能または危険にならないことを保証すると同時に、低下または非アクティブ化され得る。
ライセンスを管理するために、実施形態では、ライセンスサブシステムは、ライセンスベースの制限に関してプラント操作を制御することを許可される単一の一次管理者コンソールセッションまたはユーザセッションのみを提供するアプリケーション層サービス240を含み得、他のすべてのコンソールおよび/またはユーザセッションは、ユーザが開始したあらゆる変更に影響を与えることが防止され得る。そのため、ライセンスサブシステムは、管理者特権を有する1つのセッションのみが(例えば、一度に)ライセンスされていない状態で制御操作を実行できることを判定するメカニズムを提供するアプリケーション層サービス240を提供し得る。例えば、アクティブな管理者コンソールまたはセッションに障害が発生するか、または応答しなくなった場合、ライセンスサブシステムにより、後続のアクティブな管理者セッションがプラントの操作を制御することを可能にし得る。他のすべてのコンソールセッションおよびユーザセッションは、ライセンスが復元されるまで、プロセス制御システムに変更を加えることができないようにしてもよい。
さらに、実施形態では、ライセンスサブシステムは、例えば、実施および/または法的救済のために、ライセンスステータスおよび/または活動を製造業者システムにリモートで報告するように構成されたアプリケーション層サービス240を提供し得る。リモート報告が製造業者によって提供されない構成では、ライセンスサブシステムは、1つ以上のアプリケーション層サービス240を介して、将来の検索のためにすべてのライセンス関連イベントの記録ログを維持し得る。
SDCSサブシステム238のセットは、生成されたイベント(またはその通知)をSDCS 200のすべてのノード208に分散するためのアプリケーション層サービス240のセットを、それぞれのイベントソースにおけるそれぞれの発生時間を示す対応するタイムスタンプとともに提供する分散イベントサブシステムを含み得る。このようにして、一貫した記録保持がすべてのノード208にわたって提供され得る。
さらに、SDCS 200の各ノード208は、構成サブシステム238のインスタンスを含むことができ、構成サブシステム238は、構成サブシステム238によって提供される構成データベースに、SDCS 200によって実行される制御サービスの(例えば、すべての制御サービス235の)構成を記憶する。その結果、制御戦略が修正および保存されると(例えば、それぞれの更新された制御サービス235として)、構成サブシステムは、それぞれのアプリケーション層サービス240を介して、それに応じて構成データベース内の関連する構成を更新し得る。構成データベースのそれぞれのインスタンスが各ノード208に記憶されるので、SDCS 200は、SDCSのすべてのノードにわたって構成データベースのフォールトトレランスを提供する。そのため、データベースへの書き込み(例えば、構成サブシステムによって提供される構成データベース書き込みサービスによって実行される)は、SDCS全体のすべてのフォールトトレラントインスタンスにわたってアトミックであり得る。すなわち、データベース書き込みトランザクションは、ノード208のすべてにおける構成サブシステムのフォールトトレラントインスタンスのすべてが書き込み操作を受信および処理するまで完了しない。アトミックな書き込みは、アクセスされているアイテムまたは特定の構成に対して粒状であり得る。そのため、データベース内の1つのエンティティが書き込まれるとき、同期ロックメカニズムのスコープが書き込まれる各アイテムまたはオブジェクト(エントリ)に制限される場合があるので、データベース内の他のエンティティもマルチスレッド方式で(例えば、同じ時間または重複した時間で)書き込まれることもある。さらに、ロックおよびロック解除操作は、構成データベースのすべてのインスタンスでアトミックである可能性があり、そのため、構成データベースのすべてのインスタンスにおいてそのオブジェクトのすべてのコピーがロックされるまで、オブジェクトロックの取得は成功したとは見なされない。さらに、構成サブシステムは、構成データベースのバージョン制御を管理するために、1つ以上のアプリケーション層サービス240を提供し得る。例えば、バージョン制御サービスは、構成データベースへの変更、変更が発生したとき、および変更を調べたそれぞれの関係者を追跡し得る。
構成データベースからの読み取り(例えば、構成サブシステムによって提供される構成データベース読み取りサービスによって実行されるもの)は、構成データベースの単一のローカルインスタンスからのものであり得る。しかしながら、状況によっては、データベース読み取り要求は、例えば、大きな読み取り要求がセグメント化され、結果が複数のノード208から並列方式で提供されるように、複数のノード208に分散され得る。
前述したように、SDCS 200のI/Oサーバサービス242は、プロセスI/Oサブシステムまたは別のサブシステム238に含まれ得る。あるいは、I/Oサーバサービス242は、それ自体のスタンドアロンサブシステムにあるか、またはどのサブシステムにも関連付けられていないSDCSサービス240であり得る。いずれにせよ、I/Oサーバサービス242は、概して、論理プロセス制御システム245のエンドポイント間で、例えば、アプリケーション層サービス235、240、248(コントローラ、オペレータインターフェース、診断、分析、ヒストリアン、またはサードパーティサービスなど)のインスタンス化されたコンテナイメージへのフィールドデバイスから、アプリケーション層サービス235、240、248のインスタンス化されたコンテナイメージからフィールドデバイスへ、制御サービス235のインスタンス化されたコンテナイメージから別のタイプのSDCSサービス240の別のインスタンス化されたコンテナイメージ(例えば、オペレータインターフェース、診断、分析、ヒストリアン、サードパーティサービスなど)からなど、I/Oデータ(および、いくつかのシナリオでは、他のタイプのデータ)を転送することを担うサービスとして動作する。例えば、I/Oサーバサービス242は、それぞれのエンドポイントを通信可能に結合し、そこでデータを、要求/応答、発行/サブスクライブなどを含む任意の好適なデータ配信またはデータ転送パラダイムを使用して転送し得る。
そのため、I/Oサーバサービス242は、データ転送またはデータ配信の目的で、他のアプリケーション層ソフトウェアコンポーネント235、238、240、248によってアクセスされ得、I/Oサーバサービス242は、API 228を利用して、それによって、例えば、SD HCI OSサポートサービス215~225を介して、I/Oデータおよび/または他のタイプのデータ転送を引き起こし得る。状況によっては、I/Oサーバサービス242は、マイクロサービスバスを介してデータを転送させることができる。事実上、I/Oサーバサービス242は、論理またはAPIゲートウェイとして機能し、これにより、プロセスI/Oおよび/または他のタイプのデータがSDCS 200のコンテナ間でルーティングされ、またこれにより、プロセスI/Oが、SDCS 200のコンテナと、工業プロセスプラント10のフィールド環境12に展開されたデバイスとの間でルーティングされ得る。有利には、I/Oサーバサービス242は、本明細書の他の場所でより詳細に説明されるように、フォールトトレランスおよびプロセス制御サービスおよびサブシステムコンテナのサービス品質を自動的に管理して、工業プロセス出力を駆動し得る。
さらに、SDCS 200のアプリケーション層212において、従来のプロセス制御システムの少なくともいくつかの物理プロセス制御デバイスまたはコンポーネント(例えば、コントローラ、安全論理ソルバーまたはデバイス、データストレージデバイス、エッジゲートウェイなど)が、それぞれのコンテナで実行されるそれぞれのサービス235、240またはサブシステム238として論理プロセス制御システム245に論理的に実装され得る。プロセス制御デバイスまたはコンポーネントのそのような論理または仮想インスタンスは、必要に応じて、制御ルーチン、他のアプリケーション層ソフトウェアコンポーネント212、パラメータ、基準値、リスト、および/または他のデータで論理デバイスを構成することによって、それらの物理的な対応物と同様の方式で構成され得る。例えば、特定の論理エッジゲートウェイサービスは、許可リストで、および特定の論理データダイオードサービスへの接続で構成され得たり、コントローラサービスは、複数の制御モジュールなどで構成され得たりする。構成された論理または仮想プロセス制御デバイスまたはコンポーネント(例えば、プロセス制御デバイスまたはコンポーネントのコンテナインスタンス)は、例えば、それぞれのデバイスタグまたは識別を介して論理プロセス制御システム245内で識別され得、プロセス制御デバイスの構成された論理または仮想インスタンスによって受信および生成されるそれぞれの信号は、それぞれのデバイス信号タグまたは識別子によって論理プロセス制御システム245内で識別され得る。
またさらに、SDCS 200は、工業プロセスプラント10の物理および/または論理エリア、領域、およびコンポーネントを表す、かつ/または論理的に編成するために利用されるSDアプリケーション層212内のコンテナを提供する。例えば、ユニット、エリアなどは、それぞれのコンテナによって表され得、各ユニット、エリアなどの物理および/または論理コンポーネントに対応するコンテナは、それらのそれぞれの組織的コンテナ内にネストされるか、まつ/またはこれに固定され得る。例えば、工業プロセスプラント10の分別蒸留エリアコンテナは、脱プロパン塔ユニットコンテナおよび脱ブタン塔ユニットコンテナを含み得、すなわち、脱プロパン塔ユニットコンテナおよび脱ブタン塔ユニットコンテナは、分別蒸留エリアコンテナ内にネストされるか、またはこれに固定され得る。脱プロパン塔ユニットコンテナ内で、コントローラコンテナは、プロセスプラント10のフィールド環境12内の物理脱ブタン塔の出力ポートに配置された物理測定フィールドデバイスからの流量測定に基づいて動作するように構成される制御ルーチンコンテナで構成され得る。受信した流量測定に基づいて、構成された制御ルーチンコンテナ内で実行される制御ルーチンは、制御出力を生成し得、コントローラコンテナは、これを脱プロパン塔の出力ポートにサービスを提供するバルブのアクチュエータに提供し得、物理アクチュエータおよびバルブはまた、プラント10のフィールド環境12にも配置されている。そのため、SDCS 200内で、構成された制御ルーチンコンテナは、コントローラコンテナ内にネストされるかまたはこれに固定され得、コントローラコンテナは、脱プロパン塔ユニットコンテナ内にネストされるかまたはこれに固定され得る。制御ルーチンサービスコンテナは、フィールドデバイスから受信した流量測定値の信号タグと、およびアクチュエータに配信される制御出力信号の信号タグと、で構成され得、必要に応じて、コントローラサービスコンテナは、物理測定フィールドデバイスおよび物理アクチュエータのデバイスタグまたは識別情報でさらに構成され得る。例えば、制御サービス235の構成に関して、ユーザインターフェースサービスコンテナは、ユーザが所望のタグ、識別子、値、および制御ルーチンを含むようにコントローラサービスおよび制御ルーチンサービスを構成し得るプロセス制御構成サービスコンテナと通信するか、またはこれを介して実行され得る。
SDアプリケーション層212において、SDCS 200はまた、SDアプリケーション層212のサービスおよびサブシステム235~248に抽象化されたデータストレージ(およびそれらへのアクセス)を提供するソフトウェア定義ストレージエンティティまたはコンポーネント213も含む。例えば、ヒストリアンデータベース、構成データベース、ならびに他のタイプのプロセス制御システムデータベースおよびデータストレージエンティティ、ならびに実行中に様々なプロセス制御アプリケーションサービス235~248によって利用される一時ストレージは、SD定義ストレージエンティティ213によって提供され得る。SDストレージデータベース、エリア、デバイスなどは、仮想化または論理ストレージエンティティまたはコンポーネントであり得、これらは、SD HCIオペレーティングシステム210によって、コンピューティングプラットフォーム208のノードの様々なストレージリソースに割り当てられるかまたは配分され得る(そして、再割り当ておよび再配分され得る)。例えば、単一のSD定義論理データベースは、複数のノード208のハードウェアメモリリソース上に実装され得る。さらに、SD HCIオペレーティングシステム210のSDストレージサービス218は、SDストレージエンティティまたはコンポーネント213、および任意選択でSDアプリケーション層212の他のコンポーネントのパフォーマンス、リソース、および構成ニーズに基づいて、SDCSアプリケーション層212のSDストレージエンティティ213を、ノード208によって提供される様々なストレージリソースに割り当て/再配分し得る。
ここで、SDCS 200のソフトウェア定義ネットワーク層210に戻ると、図2は、説明を容易にする目的で、特定のSD HCI OSサービス、すなわち、SDオーケストレータサービス222を、他のSD HCI OSサービス215~220、225の描写とは別に描いている。概して、SDオーケストレータサービス222は、コンテナイメージ(例えば、アプリケーション層制御サービス235、サブシステム238、サードパーティサービス248、および他のSDCSサービス240)を、それぞれのハードウェアおよび/またはソフトウェア物理計算リソース208上で作動中のまたは実行中のコンテナプロセスにインスタンス化し、また、それぞれのハードウェアストレージおよび/またはソフトウェアストレージリソース208上に常駐する様々なSDデータストレージエンティティを割り当てる。例えば、SDオーケストレータ222は、様々なインスタンス化されたコンテナイメージをインスタンス化し、割り当てて、単一ノードのリソースであり得る、または2つ以上のノードのリソースであり得る、ハードウェアおよび/またはソフトウェア計算リソース208の様々な特定のセット上で実行され、かつ/またはこれらを利用し得る。さらに、SDオーケストレータ222は、例えば、常駐コンテナによるアクセスの容易さおよび速度、冗長性の目的、物理プラットフォーム全体のメモリ使用量の平衡化などのために、単一のノード、複数のノードなどの物理層ストレージリソース208上に常駐するように、様々なSDデータストレージエンティティまたはコンポーネント213を割り当て得る。そうすることで、SDオーケストレータサービス222は、作動コンテナプロセスを確立するだけでなく、例えば、SD HCI OS 210が提供するサービス品質(QoS)構成サービス252、フォールトトレランスサービス255、負荷分散サービス258、および任意選択で他のパフォーマンス関連サービス260を介して、SDCS 200の作動コンテナプロセスのフォールトトレランス、負荷分散、QoS、および/または他のパフォーマンス態様を管理する。そのため、SDオーケストレータサービス222は、他のSD HCI OSサービス215、218、220、225によって呼び出され、またはアクセスされ得、SDオーケストレータサービス222は、次に、パフォーマンス関連サービス252~260のうちの1つ以上を呼び出し、またはこれにアクセスし得る。概して、SDオーケストレータサービス222は、論理プロセス制御システム245のコンテナおよびSDデータストレージエンティティにリソースを配分し、これにより、コンテナが効率的かつ安全に動作できるように、例えば、少なくとも最善のパフォーマンスレベルで工業プロセスを制御できるようにする。
この目的のために、SD HCI OS 210のパフォーマンス関連サービス252~260は、稼働時間の間にパフォーマンスパラメータ、リソース使用量、および/または基準を監視し、発生するおよび/または発生が予測される任意の関連する状態を検出し、SDアプリケーション層ソフトウェアコンポーネント(例えば、コンテナ)212のコンピューティングプラットフォーム208のハードウェアおよび/またはソフトウェアリソースへの割り当てにおける任意の変更を、提供および/または実装し得る。したがって、工業プロセスプラント10の稼働時間の間に、様々な予想されるおよび/または予期しないハードウェアおよび/またはソフトウェアの状態が発生し、検出されると、SDオーケストレータサービス222は、様々なノード208のハードウェアおよび/またはソフトウェアリソースの配分をインスタンス化したコンテナイメージに対して応答的に調整して、パフォーマンスおよび動作の忠実度の目標または最善のレベルを維持する(または維持することを試みる)。SDオーケストレータ222がコンテナ212とノードリソース208との間の配分および/または割り当ての変更を引き起こす検出された状態には、例えば、ハードウェア故障または障害、ソフトウェア故障または障害、特定のノードの過負荷、様々なネットワーキングコンポーネントの帯域幅の増加または減少、ノードおよび/またはノードのクラスタの追加または削除、ハードウェアおよび/またはソフトウェアアップグレード、コンテナの固定および/または固定解除、診断、保守、および他のルーチンなど(稼働時間の使用に対してハードウェアおよび/またはソフトウェアリソースを一時的に利用できなくすることができるもの)などが含まれる場合がある。SDオーケストレータサービスによってとられる可能性のある応答および/または軽減管理アクションには、例えば、異なるソフトウェアおよび/またはハードウェアリソース(場合によっては、異なるノード上にある)を使用して実行するようにコンテナを再割り当てすること、ソフトウェアおよび/またはハードウェアリソースをアクティブ化および/または非アクティブ化すること、様々なコンテナの様々なソフトウェアおよび/またはハードウェアリソースへのアクセス優先度を変更することなど、様々なアクションが含まれ得る。SDオーケストレータサービス222のより詳細な説明は、本開示の他の場所で提供される。
したがって、また概して、SDCSアプリケーション層212(例えば、235、238、240)のサービス、サブシステム、および他のソフトウェアコンポーネントは、個々のコンテナレベルおよび集約レベル(例えば、サブシステムレベル、ユニットレベル、エリアレベル、および/または全体としてのプロセス制御システム245)で、論理プロセス制御システム245の処理、コンテナリゼーション、ネットワーキングおよびストレージニーズを判定、定義、または指定し得る。API 228を介して(および、いくつかの構成では、HCIアダプタ層230およびAPI 232も介して)、SD HCI OS 210、そのサポートサービス215、218、220、222、225、およびそのSDオーケストレータサービス222は、これらのニーズをサポートするために、ノード208のハードウェアおよびソフトウェアリソースを運営および管理する。例えば、いくつかの実施形態では、SDオーケストレータ222は、特定の制御コンテナ235または特定の他のSDCSサービスコンテナ240の異なるインスタンスを、例えば、フォールトトレランス、サービス品質、および/またはSDCS 200のパフォーマンス基準の他の目的で、異なるノード208上で実行させ得る。有利には、論理プロセス制御システム245のニーズは経時的に動的に変化するので、SD HCI OSサポートサービス215、218、220、222、225および/またはSDオーケストレータ222は、ノード208のハードウェアおよびソフトウェアリソースの使用量を、例えば、応答的におよび/または予測的な方式で修正、変更、および調整し得る。例えば、論理プロセス制御システム245が、追加のコンテナで実行される制御サービス235の追加のインスタンスを作成するとき、SD HCI OSサポートサービス215~225は、応答的に(APIS 228および任意選択でHCIアダプタ230およびAPI 232を介して)、新たに作成されたコンテナを対応するノード上で実行するように割り当てること、ノード間で既存のコンテナを再平衡化し得、追加のコンテナの論理メモリリソースニーズをサポートするために特定のハードウェアメモリリソースを割り当てること、ノード208によって利用されるルーティング表を調整して新たに作成されるコンテナの論理ルーティングニーズをサポートすることなどを行い得る。別の例では、特定のクラスタC2をサービスから外す必要がある場合(例えば、保守目的で、または雷撃により予期せずに)、SD HCI OSサポートサービス215~225は、論理プロセス制御システム245の現在のニーズおよび他のクラスタのハードウェアおよび/またはソフトウェアリソースの利用可能性に従って、クラスタC2での実行が現在割り当てられているコンテナを他のクラスタに先取りして再割り当てし得、SD HCIサポートサービス215~225は、それに応じてクラスタC2がサービスから外された場合でも当該コンテナの実行継続性を維持するように、クラスタ208によって利用されるルーティング表を調節し得る。そのため、SDCSネットワーク層210は、検出された状態、例えば、個々の論理および/もしくは物理コンポーネントまたはそのグループのパフォーマンスの改善、個々の論理および/または物理コンポーネントまたはそのグループのパフォーマンスの低下、故障発生、論理および/または物理コンポーネントの障害、構成の変更(例えば、ユーザコマンドによるか、またはSDCS 200のサービスによる自動再構成によるもの)に基づいて、コンピューティングプラットフォーム208のノードのハードウェアおよびソフトウェアリソースの異なるSDアプリケーション層ソフトウェアコンポーネント212への配分に対する変更を、自動的に、動的に、および応答的に判定し、開始し、そして遂行する。その結果、SDCS 200では、ユーザまたはシステム管理者は、SDCS 200またはその変更をサポートするために、ノード208のハードウェアおよびソフトウェアリソースの再分配を指示または支配する必要がない。実際、ほとんどの場合、ユーザまたはシステム管理者は、SDCS 200の状態およびコンポーネントの変更に応じてSDCS 200によって自動的に遂行されるノード208のハードウェアおよび/またはソフトウェアリソースの再分散に気付かない可能性がある。
図2は、SDCS 200をサポートするコンピューティングプラットフォーム208を示しているが、いくつかの構成では、コンピューティングプラットフォーム208は、複数のSDCSをサポートし得る。複数のSDCSは、コンピューティングプラットフォーム208のハードウェアおよび/もしくはソフトウェアリソースのセットを共有し得、またはコンピューティングプラットフォーム208のハードウェアおよび/もしくはソフトウェアリソースは、複数のSDCS間で分割され得る。ハードウェアおよび/またはソフトウェアリソースが複数のSDCS間で共有される実施形態では、SDC HCIオペレーティングシステム210は、複数のSDCSのアプリケーション層サービス間で共有リソースを管理し得る。
さらに、いくつかの実装形態では、SDCS 200は、様々なSDアプリケーションサービス235、240、248、SDアプリケーション層212全体、様々なSDサポートサービス215~225、252~260、および/またはSDネットワーク層210全体のデジタルツインを実装し得る。すなわち、ターゲットコンポーネント/層のデジタルツインは、コンピューティングプラットフォーム208上でアクティブなターゲットコンポーネント/層と協調して実行され得、それによって、工業プロセスプラントのフィールド環境から稼働時間データを受信し、それに応じて、アクティブターゲットコンポーネント/層と同じ論理、状態、タイミングなどで動作し得る。しかしながら、デジタルツインによって生成されたI/Oおよびその他のタイプのデータは、フィールド環境に配信されることが防止される。このようにして、アクティブなターゲット/コンポーネントに障害が発生した場合、フィールド化されたターゲット/コンポーネントのデジタルツインをアクティブ化するだけで、工業プロセスプラントの稼働時間動作をシームレスに維持することができる。
さらに、いくつかの実装形態では、SDCS 200は、様々なSDアプリケーションサービス235、240、248、SDアプリケーション層212全体への、様々なSDサポートサービス215~225、252-260への、および/またはSDネットワーク層210全体へのシミュレーションまたは変更を実装し得る。すなわち、ターゲットコンポーネント/層のシミュレーションは、コンピューティングプラットフォーム208上にあるアクティブなSDCSコンポーネント/層と協調して実行され得、それによって、工業プロセスプラントのフィールド環境から稼働時間データを受信し、それに応じて、例えば、アクティブなターゲットコンポーネント/層と同じ論理、状態、タイミングなど、またはシミュレートされたテスト論理、状態、タイミングなどで動作し得る。しかしながら、シミュレーションによって生成されるI/Oおよびその他のタイプのデータは、フィールド環境への配信が防止され、シミュレーションは、一時停止され、高速化され、減速され、テスト入力が供給され、また他の方法で管理されて、動作を観察し、シミュレーションコンポーネント/レイヤに修正を加え得る。したがって、SDCS 200のシミュレートされた部分が承認されると、そのためにSDCS 200の一部を一時停止するかまたはサービスから外したりする必要がなく、工業プロセスプラントの稼働時間の動作中に使用するためにシミュレートされた部分を単にアクティブ化し得る。
またさらに、SDCS 200に関連する物理層208は、物理データセンタクラスタC1~Cxを使用して実装されるものとして上述されているが、いくつかの実施形態では、物理層208の少なくとも一部分は、仮想化された物理層208として実装され得る。例えば、データセンタクラスタC1-Cx(またはそのサブセット)は、例えばクラウドコンピューティングシステムで実行される仮想マシンとして実装され得る。そのため、HCIアダプタ層230は、SDアプリケーション層、SDストレージ層、およびSDネットワーク層210を仮想化された物理層208とインターフェースさせ得る。
上記の説明から明らかであり、当業者によって理解されるべきであるように、本明細書に記載されるような工業プロセス制御システムは、非常に複雑なシステムである可能性があり、しばしばそうである。工業プロセス制御システムは、プロセスを制御するために調整された方式で動作する必要がある、数百、数千、または数万の離散的であるが相互接続されたフィールドデバイスを含み得る。膨大な数のデバイスによってもたらされる複雑さは、システムのコミッショニングおよび保守の複雑さによって倍加され、この複雑さには、デバイスのすべてを接続する有線および無線ネットワークの作成および維持、フィールドデバイスからの測定に基づいてフィールドデバイスを制御するように動作する制御モジュールの作成および維持、システムの設計許容値(ネットワーク遅延、同期メッセージングなど)が継続的に満たされることを保証するための十分なリソース(ネットワーク帯域、処理パワーなど)が利用可能であることなどが含まれる。
説明されているソフトウェア定義制御システムでのコンテナの実装は、工業プロセス制御環境を効率的に管理および操作するための様々な方法に役立つ。さらに後述するように、コンテナ化は、プロセスプラント内のデバイスの物理または論理編成、ならびにプロセスプラント内のデバイスを制御するプロセスおよびコンピューティングリソースの物理または論理編成を模倣できる制御リソースのより直感的な編成を促進する。コンテナの実装はまた、サービス品質パラメータの維持、および故障冗長性の作成と維持に関して、無数の可能性を促進する。
図3は、フォールトトレランスおよび負荷分散の原理を示すブロック図である。図3では、2つの計算ノード300および302が、SDCSにコンピューティング、メモリ、およびネットワーキングリソースを提供する。理解されるべきであるように、2つの計算ノード300および302の各々は、1つの計算ノードまたは複数の計算ノード(図示せず)を含み得、そして計算ノードの各々は、次に、1つ以上のプロセッサ(図示せず)を含み得、それらの各々が、1つ以上のプロセッサコア(図示せず)を有し得る。オーケストレータ222は、実施形態において、特定のシステムの要件に従って(例えば、特定のコンテナまたはプロセス制御プラントの要件に従って)、および/または負荷分散およびフォールトトレランス(例えば、プロセス制御プラントの特定の要件が指定されていない場合)の一般的な要件に従って、様々なコンテナのインスタンス化およびそれに配分されるリソースを管理する。
より詳細には、コンテナオーケストレータサービス(つまり、オーケストレータ222)は、利用可能な計算リソースで作動中のコンテナプロセスにコンテナイメージをインスタンス化することを担う。オーケストレータ222は、コンテナの各々が適切に確立されていることを保証し、またコンテナのフォールトトレランスおよび負荷分散の問題を管理することも担う。フォールトトレランスは、コンテナの複数のコピーが複数の入力、単一の出力メカニズムに対してインスタンス化される水平スケーリングアプローチを使用することによって作成される。いくつかの実施形態では、オーケストレータ222は、コンテナの複数の冗長なコピーの中から「アクティブな」コンテナを選択する。本明細書で使用される場合、「アクティブである」という用語は、選択されたコンテナの出力が別のコンテナへの入力を駆動し、フィールドデバイスなどを制御するといったように選択される複数の冗長コンテナのうちの1つを指す。例えば、分散アラームサブシステムコンテナの複数の冗長コピーがインスタンス化される場合、オーケストレータ222は、どの冗長コンテナがアクティブなコンテナであるかを選択し得る。別の例として、I/Oサーバコンテナの複数の冗長コピーがインスタンス化される場合、オーケストレータ222は、どのI/Oサーバコンテナがアクティブなコンテナであるかを選択し得る。その場合、冗長I/Oサーバコンテナの各々は、プロセスプラントのフィールドデバイスからプロセスデータを受信し得、1つ以上のコントローラコンテナから出力を受信し得るが、アクティブなI/Oサーバからの出力のみが、物理I/O層を介してプロセスプラント内のフィールドデバイスに送信され、コントローラコンテナの各々は、アクティブI/Oサーバコンテナからのプロセスデータのみを受信することになる。
状態情報を転送および確立するために、サービスコンテナのフォールトトレラントコピー間の通信が可能である(および場合によっては必要である)。オーケストレータ222は、フォールトトレラントア展開における特定のサービスコンテナのリストを維持することを担い、リストの順序は、引き継ぐために次に利用可能なコンテナを示している(アクティブなコンテナがリストの最上位にある)。このリストは、データセンタ内の状態が変化するにつれて継続的に更新される。アクティブなサービスコンテナがサービス停止になるというアクティブな通知に応じて、オーケストレータ222は、引き継ぐために次に利用可能なフォールトトレラントコピーについて迅速な決定を下すことができる。計画外のアクティブなコンテナがサービスを停止した場合(例えば、電源障害によるもの)、コンテナオーケストレータは、そのような「ハード」障害が発生したことを検出するためのタイムアウト遅延を有し得、次の利用可能なサービスコンテナをアクティブにするために移動し得る。複数のアクティブな状態が検出された場合、サービス出力の受信者は短期間で複数の出力を受信する。受信サービスは、オーケストレータ222に二重出力が受信されたことを通知し、これを受けてオーケストレータ222は、古いアクティブなコンテナを再構成し(または再構成が失敗した場合は破壊して再作成し)、非アクティブなコンテナとしてインスタンス化する。この間、受信コンテナは、重複する情報ソースが削除されるまで、デフォルトで最後の既知の良好な情報ソースになる。
ある場合には、オーケストレータ222がアクティブなコンテナを選択することを担うが、I/Oサーバコンテナの場合など、特定の状況では、コンテナ自体が、I/Oサーバコンテナに関して後述するように、様々なパラメータに基づいてアクティブなコンテナを選択し得る。
本明細書で使用される場合、「負荷分散」という句は、プロセッサコア、プロセッサ、計算ノード、および/またはサーバが所望のサービス品質の指標を満たすように、システム上で作動するプロセス(例えば、コンテナ)のためのコンピューティング、メモリ、および/または通信リソースの使用を指す。次に、負荷分散は、ある場合には、コンピューティング、メモリ、および/または通信リソースの使用を均等化し、ある場合には、最小のQoSパラメータが満たされることを保証すること(すなわち、特定の信号に対する最大ネットワーク遅延がプログラム値を超えないことを保証すること、特定のプロセスに対する最大処理遅延がプログラム値を超えないことを保証すること、特定の値に対する合計遅延がプログラム値を超えないことを保証すること、特定のプロセスに対して十分なメモリリソースが存在していることを保証することなど)を含む。
最大ネットワーク遅延、最大コンピューティング遅延などの負荷分散パラメータは、実施形態では、コンテナのうちの1つ以上のパラメータとして、および/またはコンテナ内で実行される特定のサービスのパラメータとして、および/またはコンテナ内で実行されているサービスにおいて受信されるかまたはそこから送信される特定の値のパラメータとしてプログラムされ得る。負荷分散パラメータはまた、グローバルパラメータを提供するため、または特定のコンテナまたはサービス内で設定されたパラメータに取って代わられる可能性のあるデフォルトパラメータを提供するために、システムレベルでも設定され得る。オーケストレータ222のQoS構成サービス252は、グローバル、デフォルト、コンテナ、および/またはサービスレベルでのQoSパラメータの構成を促進するためのインターフェースを提供し得る。QoS構成サービス252はまた、パラメータがオーケストレータ222によって実装および維持されることを確実にするために、様々なコンテナおよび/またはサービスにプログラムされたQoSパラメータも読み取り得る。
実施形態では、オーケストレータ222内で動作するフォールトトレランスサービス255は、SDCS内のフォールトトレランスを維持する。本明細書で使用される場合、「フォールトトレランス」という句は、異なるプロセッサコア、異なるプロセッサ、異なる計算ノード/サーバでインスタンス化されるかどうかにかかわらず、(例えば、複数のコンテナの作成によって)冗長プロセスおよび/またはサービスの作成を指し、オーケストレータ222が(すなわち、フォールトトレランスサービス255を介して)、電源の障害が特定のコンテナのすべての動作コピーに影響しないようにするために、1つ以上の冗長コンテナが別個の電源によって供給される計算リソース上にインスタンス化されることを保証する実施形態を含む。実施形態では、オーケストレータ222のアクティブなインスタンスがプロセッサ障害、電源障害などによって異常に終了した場合でも、フォールトトレランスが持続することを保証するために、オーケストレータ222自体を冗長コンポーネントとしてインスタンス化してもよい。
再び図3を参照すると、いくつかの論理機能が、2つのサーバ300および302にわたって実装されるように描かれている。論理機能は、第1のコントローラ(すなわち、関連するプロセスプラントの第1の部分の第1のセットの機器を制御するコントローラ)304、第2のコントローラ(すなわち、関連するプロセスプラントの第2の部分の第2の機器のセットを制御するコントローラ)306、I/Oサーバ308、およびヒストリアン310を含む。論理機能304~310の各々は、1つ以上の対応するコンテナ内で実行される関連サービスによって実装される。簡略化のため、ここでの説明では、コンテナ内で実行されるこれらのサービスを単に「コンテナ」と呼ぶが、図3における各「コンテナ」は関連するサービスを実行しており、このサービスは、他のコンテナ、サービス、および/またはプロセス制御フィールドデバイスに関して動作するように構成されていることが理解されるべきである。例えば、各コントローラコンテナは、関連する機器のセットを制御するようにプログラムされたコントローラサービスをその中で実行することを有する。いくつかの実施形態では、コントローラサービスは、1つ以上の制御モジュールサービスでプログラムされ得、各制御モジュールサービスは、1つ以上の制御機能ブロックサービスでプログラムされ得、ここで、制御モジュールサービスの各々および制御機能ブロックサービスの各々は、それぞれのコンテナ内で実行され得る。
図3は、論理コントローラ304が3つのコントローラコンテナ304A、304B、および304Cを含むことを描いている。コントローラコンテナ304A~304Cの各々は、他のコントローラコンテナ304A~304Cのうちの少なくとも1つとは異なるコンピューティングリソース(すなわち、プロセッサコア、プロセッサ、計算ノード、またはサーバ)上でインスタンス化される。すなわち、コントローラコンテナ304Aは、他のコントローラコンテナ304Bおよび304C(サーバ302上でインスタンス化される)とは異なるサーバ(サーバ300)上でインスタンス化され、コントローラコンテナ304Bは、コントローラコンテナ304A(サーバ300上でインスタンス化される)とは異なるサーバ(302)上で、およびコントローラコンテナ304Cとは異なるプロセッサまたはプロセッサコア上でインスタンス化され、コントローラコンテナ304Cは、コントローラコンテナ304A(サーバ300上でインスタンス化される)とは異なるサーバ(302)上で、およびコントローラコンテナ304Bとは異なるプロセッサまたはプロセッサコア上でインスタンス化される。図3はまた、サーバ300および302上で同様の方式でインスタンス化された3つのコントローラコンテナ306A、306B、および306C、サーバ300および302上でそれぞれインスタンス化された2つのI/Oサーバコンテナ308Aおよび308B、ならびにサーバ300および302上でそれぞれインスタンス化された2つのヒストリアンコンテナ310Aおよび310Bを描いている。
論理コントローラ304を参照すると、コントローラコンテナ304A~304Cを異なるコンピューティングハードウェア上でインスタンス化することによって、コントローラコンテナ304A~304Cのうちの1つだけが、所与の瞬間にアクティブになり得る(すなわち、制御される機器に制御出力を提供する)ことが明らかであるべきで、コントローラコンテナ304A~304Cのうちの任意の1つに故障が発生しても、論理コントローラ304によって制御される機器の制御を損失することにはつながらない。コントローラ304A~304Cのうちのアクティブな1つで故障が発生した場合、残りの2つのコントローラのうちの1つがアクティブなコントローラになる。3つのコントローラコンテナ304A~304Cはすべて同じ制御アルゴリズムを実装し、アクティブなコントローラによって受信されたすべてのデータを受信するので、コントローラコンテナ304A~304Cの各々によって提供される出力は同一であり、アクティブなコントローラに障害が発生した場合、コントローラ304A~304Cから新しいアクティブなコントローラが選択され得る。さらに、アクティブなコントローラの故障が、コントローラコンテナがインスタンス化されているサーバの電源障害によって引き起こされた場合、コントローラコンテナ304A~304Cのうちの少なくとも1つが異なる電源を使用するコンピューティングリソース上にインスタンス化されていれば、少なくとも1つの他のインスタンスが、アクティブなコントローラとして引き継ぐことが可能であり得る。
実施形態では、オーケストレータ222は、インスタンス化された様々なコンテナのQoSメトリックを監視し得る。例として、これらに限定されないが、QoSメトリックは、プロセッサ負荷、出力遅延、ネットワーク遅延、およびネットワーク帯域幅を含み得る。QoSメトリックが、コンテナのうちの1つ、もしくはコンテナで実行されているサービスが不安定になっていることを示している場合、またはQoSメトリックが、コンテナのうちの1つがコンテナまたはサービスに指定された要件内で遂行されていないことを示している場合、オーケストレータ222は、コンテナのさらなるインスタンスをインスタンス化し、不安定になっているコンテナインスタンスを終了し、その際、適切に機能しているコンテナをパフォーマンスの悪いコンテナに置き換えながら同じレベルの冗長性を維持し得る。新たにインスタンス化されたコンテナは、実施形態では、例えば、QoSメトリックが、コンテナがインスタンス化されたハードウェアの結果としてコンテナのパフォーマンスが低かったことを示すかどうかに応じて、パフォーマンスの悪いコンテナとは異なるハードウェア(異なるプロセッサ、異なるサーバなど)上でインスタンス化され得る。同時に、QoSメトリックが、あるハードウェアリソースが十分に利用されていない一方で、別のハードウェアリソースが十分に利用されていることを示す場合、負荷分散サービス258は、オーケストレータ222に、1つ以上のコンテナを、十分に利用されているリソースから十分に利用されていないリソースに移動させる(すなわち、十分に利用されていないリソース上に新しいコンテナを作成し、十分に利用されているリソース上のコンテナを終了させる)ようにし得る。
再び図3を参照すると、オーケストレータ222は、2つのサーバ300および302にわたって4つの論理機能304~310をインスタンス化した。前述したように、コントローラ#1コンテナ304Aの1つのインスタンスは第1のサーバ300上にあり、コントローラ#1コンテナ304Bおよび304Cの2つのインスタンスは第2のサーバ302上にある。同時に、オーケストレータ222は、3つのコントローラ#2コンテナのうちの2つ(306Aおよび306B)を第1のサーバ300上にインスタンス化し、コントローラ#2コンテナのうちの1つ(306C)のみを第2のサーバ302上にインスタンス化して、2つのサーバの負荷を「平衡化」した。2つのコンテナ308Aおよび308Bは、それぞれ、第1のサーバ300および第2のサーバ302上でI/Oサーバサービスを実行する。同様に、2つのコンテナ310Aおよび310Bは、それぞれ、第1のサーバ300および第2のサーバ302上でヒストリアンサービスを実行する。
図4Aは、負荷分散の概念を示している。図4Aでは、5つのコンテナ312、314、316、318、320が、3つの計算ノード322、324、326にわたってインスタンス化される。図4Aに示されるコンテナ312、314、316、318、320の各々は、異なるサービスを実行する。図4Aは冗長コンテナを描いていないが、そのような冗長性は、説明されている概念の図を単純化するために描かれていない場合でも、説明されている任意の実施形態に存在し得ることを理解されたい。図4Aは、第1の計算ノード322上でインスタンス化されたコントローラコンテナ312および連続制御サブシステムコンテナ314、第2の計算ノード324でインスタンス化された分散アラームサブシステムコンテナ316およびI/Oサーバコンテナ318、ならびに第3の計算ノード326でインスタンス化された安全計装システム(SIS)コントローラコンテナ320を描いている。
図4Aは、分散アラームサブシステムコンテナ316が、第2の計算ノード324が高負荷になった場合(例えば、I/Oサーバコンテナ318が第2の計算ノード324のリソースのかなりの部分を消費するような場合)に、第2の計算ノード324から第1の計算ノード322に「移動」され、これにより、例えば、I/Oサーバコンテナ318のQoSメトリックが維持されないように、分散アラームサブシステムコンテナ316のQoSメトリックが維持されないように、または第2の計算ノード324上の利用可能なリソースの最小量が維持されないようにすることを示している。そのような場合、オーケストレータ222は、コンテナ316の第2のインスタンス316’に十分なリソースを有する別の計算ノード(例えば、図4Aに描かれるような第1の計算ノード322上)でインスタンス化し得る。新たにインスタンス化された分散アラームサブシステム316’が安定すると、オーケストレータ222は、コンテナ316’をアクティブなコンテナにし、第2の計算ノード324上でインスタンス化された分散アラームサブシステムコンテナ316を終了し、第2の計算ノード324のリソースを解放し得る。
また、冗長コンテナの非アクティブインスタンスがサービスの出力を駆動していない可能性がある一方で(例えば、非アクティブなコントローラコンテナがプロセスを駆動していない可能性がある)、冗長コンテナの各々が受信するデータが同等であることを条件として、冗長コンテナは、それでもシステムの部分にデータを提供し得ることも理解されるべきである。例えば、アクティブなコントローラコンテナがプロセスプラントで動作するプロセス制御フィールドデバイスに制御信号を提供することによってプロセスを駆動している間、冗長コントローラコンテナのうちの1つ以上がSDCS内の他のサービス、例えば、ヒストリアンサービスにデータを提供している可能性がある。このようにして、システムのパフォーマンス負荷は、冗長コンテナのうちの複数のもの、特にそれらの冗長コンテナが複数のハードウェアリソースに分散されている場合に、分散されることがある。
SDCS100はまた、「優先」コンテナ(ここでは「高優先」コンテナとも呼ばれる)を含むように構成されてもよい。優先コンテナは、優先度の高いサービスを実行しているコンテナであり、SDCSの構成時に構成エンジニアによって指定されるか、特定のサービスのデフォルトで指定される場合がある。例として、安全性評価として分類されるコンテナサービス(SISコントローラなど)は、優先コンテナとして普遍的に指定され得る。負荷分散に関して、優先コンテナは、コンピューティングリソース(例えば、プロセッサリソース、ネットワーク帯域幅、メモリ、ストレージなど)を保証され得る。
そのため、オーケストレータ222は、負荷分散を遂行して、優先コンテナの保証されたリソースを維持し得る。さらに図4Aを参照すると、SISコントローラコンテナ320は、第3の計算ノード326(図において、コンテナが優先コンテナであることを示す太いコンテナ境界)上でインスタンス化されたものとして描かれている。実施形態では、優先コンテナは、保証されたリソースが利用可能であることを保証するために、デフォルトで、他の方法でアンロードされた計算ノード(図4Aに描かれる)上、他の方法でアンロードされたプロセッサコア上などで動作し得る。しかしながら、保証されたリソースが優先コンテナに提供される限り、優先コンテナが、そこにインスタンス化された他のコンテナ(優先または非優先)をも有さないサーバ、プロセッサ、または他のハードウェアコンポーネント上にあることは要件とされない。
保証されるリソースは、コンテナタイプ(例えば、階層コンテナ、コントローラコンテナ、I/Oサーバコンテナ)、サービスタイプ(例えば、I/Oサーバ、コントローラ、サブシステム、SISコントローラ)、または個々のコンテナ(例えば、プロセスプラントの特定のエリアを制御するコントローラ#1)によって指定され得る。優先コンテナが指定されるレベルに関係なく、優先コンテナの指定には、そのようなコンテナ用に予約されているリソースのタイプおよび量の指定が含まれ得る。例えば、限定されないが、優先コンテナは、特定のレベルのプロセッサパフォーマンス、最小量のシステムメモリ、最小量のネットワーク帯域幅、最小量のストレージメモリ、および/または最大の送信遅延のうちの1つ以上を保証され得る。
図4Bは、優先コンテナの概念を示し、また、オーケストレータ222の負荷分散サービス258の追加の能力を示している。具体的には、図4Bは、オーケストレータ222が、実施形態では、1つ以上の計算ノード、プロセッサ、および/またはプロセッサコアをクラスタに追加および/またはクラスタから削除し得ることを示している。図4Bは、コントローラコンテナ330、連続制御サブシステムコンテナ332、および分散アラームサブシステムコンテナ334の各々がインスタンス化された第1の計算ノード328を描いている。第2の計算ノード336は、その上で、優先性SISコンテナ338およびI/Oサーバコンテナ340をインスタンス化した。図4Bの図示のシステムでは、I/Oサーバコンテナ340は、優先コンテナ338に保証されたリソースを侵害する第2の計算ノード336のリソースを必要とし、オーケストレータ222の負荷分散サービス258に優先コンテナ338のためのリソースを解放するようにさせる。描かれた例では、オーケストレータ222は、新しい計算ノード(すなわち、第3の計算ノード)342をクラスタに追加することによってリソースを解放し、新しい計算ノード342上でI/Oサーバコンテナ340の複製コンテナ340’をインスタンス化する。新たにインスタンス化されたI/Oサーバコンテナ340’が安定すると、オーケストレータ222は、コンテナ340’をアクティブI/Oサーバコンテナにし、第2の計算ノード336上でインスタンス化されたI/Oサーバコンテナ340を終了させ、優先コンテナ338の保証されたリソースを満たすために、第2の計算ノード336上のリソースを解放し得る。
フォールトトレランスの例示的な実装形態が図5Aに描かれている。図5Aでは、第1および第2の計算ノード344および346は各々、その上に、コントローラコンテナ350A、350B、連続制御サブシステムコンテナ352A、352B、分散アラームサブシステムコンテナ354A、354B、およびI/Oサーバコンテナ356A、356Bの各々をインスタンス化した。第3のサーバ348はアイドル状態にある。図5Aは、コントローラコンテナ350Aが不安定になっているか、または突然終了することを示している(区別された輪郭によって示されている)。オーケストレータ222は、コンテナ350Aが不安定になっているかまたは終了していることを認識し、残りのコントローラコンテナ350Bがアクティブなコントローラコンテナであることを保証し、第3の計算ノード348上でコントローラコンテナ350Cのさらなる冗長コピーをインスタンス化して、冗長性を維持する。
同様のプロセスは、例えば、計算ノード全体が(例えば、電源障害によって)動作不能になった場合に発生する。図5Bは、そのような場合を示している。図5Bでは、第1および第2の計算ノード358および360は各々、その上に、コントローラコンテナ364A、364B、連続制御サブシステムコンテナ366A、366B、分散アラームサブシステムコンテナ368A、368B、およびI/Oサーバコンテナ370A、370Bの各々をインスタンス化した。第3のサーバ362はアイドル状態にある。図5Bは、第1の計算ノード358が利用できなくなるか、またはいずれにせよ、コンテナ364A、366A、368A、370Aのすべてが突然終了することを示している(区別された輪郭によって示されている)。オーケストレータ222は、第1の計算ノード358が利用できなくなったことを認識し、コンテナ364B、366B、368B、370Bをアクティブなコンテナとし、第3の計算ノード362上のコンテナ364C、366C、368C、370Cのさらなる冗長コピーをインスタンス化し、維持された冗長性を保証するように続行する。
実施形態では、オーケストレータ222は、データセンタ208(または、いずれにせよ、オーケストレータの権限222内のデータセンタ208の部分)上でインスタンス化されたすべてのインスタンス化されたサービスおよびコンテナを追跡するリスト、表、データベース、または他のデータ構造を維持するかまたはこれにアクセスする。データ構造内の情報は、例えば、オーケストレータ222において実行されるサービス(例えば、パフォーマンス関連サービス260)によって、サービス(例えば、HCIオペレーティングシステム210において実行されるソフトウェア定義サービスおよび機能225)によって、ソフトウェア定義計算サービス215によって、ソフトウェア定義ストレージサービス218によって、および/またはソフトウェア定義ネットワークサービス220によって入力され得る。図6は、表372において、オーケストレータ222がデータ構造において維持またはアクセスする情報のタイプを示している。一般に、データ構造は、データセンタでインスタンス化されたすべてのコンテナおよびサービスのリスト(列373)、各々がアクティブなコンテナまたはサービス(列374)であるかどうか、およびコンテナまたはサービスの各々に関連する様々な情報およびメトリック376を維持する。例示に過ぎないが、情報およびメトリック376は、複数の電源のうちのどの電源が、各コンテナまたはサービスがインスタンス化されているリソースに電力を供給しているかの指示377、複数のノードのうちのどのノード上でコンテナまたはサービスがインスタンス化されているかの指示378、ノードの負荷の指示379、複数のプロセッサのうちのどのプロセッサ上で、コンテナまたはサービスがインスタンス化されているかの指示380、プロセッサの負荷の指示381、複数のプロセッサコアのうちのどのプロセッサ上で、コンテナまたはサービスがインスタンス化されているかの指示382、およびプロセッサコアの負荷の指示383のうちのいずれか1つ以上を含み得る。
オーケストレータ222はまた、コンテナおよびサービスレベルよりも高いレベルで情報を追跡するデータ構造を維持するかまたはこれにアクセスすることもできる。例えば、オーケストレータ222は、各クラスタ、ノード、サーバ、プロセッサ、および/またはプロセッサコア上でおよび/または各クラスタ、ノード、サーバ、プロセッサ、および/またはプロセッサコアに対して利用可能な計算リソース、ストレージリソース、および/またはネットワークリソースの量に関する統計、様々な電源の安定性(例えば、電圧安定性、中断できない電源のステータスなど)、様々な物理ネットワーク接続の遅延に関する統計などにアクセスするかまたはこれを維持し得る。オーケストレータ222は、データ構造372および/またはデータ構造追跡のより高いレベルの情報を使用して、任意の所与の瞬間において、冗長コンテナの各セットのうちどれがアクティブであるか(例えば、表372の列374)、冗長コンテナの各セットのうちどれが最良であるかまたは次に利用可能なコンテナであるか(表372の列375)を判定し得る。このようにして、オーケストレータ222は、以前にアクティブだったコンテナが不安定になっている、パフォーマンスが低下した、または終了した場合に、新しいコンテナをすぐにアクティブにすることができる。
オーケストレータ222が新しいコンテナをインスタンス化するために、負荷分散の目的、フォールトトレランスの目的、または故障回復の目的で、オーケストレータ222(およびインスタンス化されるサービス)は、ソフトウェア定義のストレージサービス218に部分的に依存する。図7は、ソフトウェア定義ストレージサービス218をさらに詳細に描くブロック図であり、コンテキスト上、HCIオペレーティングシステム210およびSDCSアプリケーション層212の他のコンポーネントのいくつかを示している。上述したように、SDCSアプリケーション層212内のコンテナ内で実行されるアプリケーション(すなわち、マイクロサービス)は、HCIオペレーティングシステム210のソフトウェア定義ネットワーキング220の一部であるマイクロサービスバス384を介して通信する。マイクロサービスバス384は、インスタンス化されたコンテナ間およびインスタンス化されたコンテナ間の通信を促進することに加えて、コンテナとオーケストレータ222との間、コンテナとソフトウェア定義ストレージ218との間、およびオーケストレータ222とソフトウェア定義ストレージ218との間の通信を促進する。
ソフトウェア定義ストレージ218は、コールドプロセス構成データサービス386(「コールドPCDS」)、ウォームプロセス構成データサービス388(「ウォームPCDS」)、およびホットプロセス構成データサービス390(「ホットPCDS」)として大別される3つの構成データサービスを含む、様々なストレージリソースを含む。コールドPCDS 386は、例えば、ソフトウェア定義制御システム100の開始構成に関連するデータを記憶する。コールドPCDS 386に記憶されるデータは、例えば、SDCS 100の冗長性およびフォールトトレランス要件、どのアプリケーションサービス235をインスタンス化するか、どのサブシステム238をインスタンス化するか、どの他のSDCSサービスおよび/またはアプリケーション240をインスタンス化するか、どのサードパーティアプリケーション248をインスタンス化するかなどを含み得る。さらに、コールドPCDS 386は、コンテナサービスの各々起動構成を記憶し得る。例えば、コントローラコンテナの各インスタンスは、コントローラサービスを実装するが、コントローラサービスは、制御モジュールサービスまたは制御ループサービス、およびコントローラが制御すべきプロセスプラントまたはプロセスプラントの部分の制御を実装するために必要な他の情報でコントローラサービスをプログラムするための構成情報を必要とする。したがって、コールドPCDS 386のデータは、通常、ユーザ(例えば、構成エンジニア)またはメーカーによって設計され、各サービスに固有の操作命令のセットを提供する。各SDCSサービス(コンテナ)は、記憶されている構成データについてコールドPCDS 386をクエリすることになる。実施形態では、コールドPCDS 386内に記憶されたデータは、サービス専用のソフトウェア定義ディスクボリュームに保存される。
ウォームPCDS 388は、コンテナサービスが起動していて、サービスの以前のインスタンス化から、またはサービス障害からの回復時に動作状態を回復する必要がある場合に必要なデータを記憶する。したがって、ウォームPCDS 388に記憶されたデータは、各インスタンス化されたサービスの状態の状態情報、および各アクティブなインスタンス化されたサービスの状態の状態情報などを含み得る。例として、そのような状態情報は、構成が時間とともに作動中の数学的積分を遂行している場合の積分アキュムレータ値を含み得、この値は急速に変化し、したがって、コールドPCDS 386での記憶には不適切である。ウォームPCDS 376は、ウォーム再起動アプリケーションの場合、迅速に変化するパラメータストレージを処理する。結果として、実施形態では、ウォームPCDS 388は、マップされたボリュームへのライトバックキャッシュを使用して、迅速に変化するパラメータを捕捉する。
ただし、状況によっては、インスタンス化されたコンテナがサービスの正確な作動状態の情報を有している必要がある場合がある。これは、例えば、フェイルオーバーに利用可能である冗長コンテナがない状態でコンテナが予期せず終了する場合であり得る。サービスの正確な作動状態が必要とされるこのような場合、ホットPCDS 390がマイクロサービスに利用可能な従来のRAM設備の代わりとなるように、SDCSサービス(すなわち、コンテナ)の正確な作動状態を捕捉するホットPCDS 390にデータを記憶してもよい。ホットPCDS 390に記憶されたデータは、通常、非常に高速な不揮発性メモリボリューム、例えば、MRAMまたはNVMeドライブ技術に保存される。新たにインスタンス化された交換コンテナは、コールド、ウォーム、およびホットのプロセスデータを使用して構成で更新され、終了した先行コンテナからプロセス操作を引き継ぎ得る。
大規模な工業プロセスプラントでは、並列プロセスフローを利用するのが一般的である。つまり、製品を製造するために必要な機器を何倍にも増やして、同一の製品または製品の変化形を製造することがある。結果として、プロセスプラントはしばしば異なる物理階層と領域とに分割される。例えば、特定の機器グループがユニットを形成する場合があり、そのユニットをプロセスプラントの物理エリア内に複数回複製し、プロセスプラントの特定のエリア内に同様の機器グループを維持しながら、異なる製品の流れをユニットのそれぞれのものに通過させることができるようにすることがある。同様に、論理階層が存在し、物理階層と組み合わせて、機器のセットを区別することがある。例えば、バッチ制御の領域では、「プロセスセル」は、1つ以上のバッチを生成するための機器を含む、機器の論理的なグループ化として定義される。プロセスセルは、1つ以上のユニットを含み得、ユニットの各々は、ユニットを構成する1つ以上の機器モジュールを含む。機器モジュールの各々は、1つ以上の制御モジュール(例えば、フィールドデバイス)で構成され得る。
オーケストレータ222に関連して、プロセスプラント10内、特にSDCS 100内で様々な方法が実装され得る。方法は、第1のコンテナ内で実行されるサービスを含むように第1のコンテナを構成することと、複数のハードウェアリソースの利用可能なハードウェアリソース上で実行されるように構成された第1のコンテナを割り当てることと、を含み得る。そうすることで、第1のコンテナは、プロセスプラント10内で動作するプロセス制御フィールドデバイス60、70、80、90を制御するように構成され得る。第1のコンテナは、フィールドデバイスからデータを受信し、受信したデータから1つ以上の制御出力を判定し、1つ以上の制御出力を複数のフィールドデバイスに送信するコントローラサービスを実行するように構成され得る。あるいは、第1のコンテナは、I/Oサーバサービスを実行するように構成され得る。さらに他の実施形態では、第1のコンテナは、ヒストリアンサービス、分散アラームサブシステムサービス、または診断サブシステムサービスのいずれかを実行するように構成され得る。
利用可能なハードウェアリソース上で実行する最初のコンテナの割り当ては、特定の電源で実行する最初のコンテナの割り当てを含み得る。あるいは、利用可能なハードウェアリソースは、特定のデータクラスタ、特定のデータクラスタのセット、特定のサーバラック、または特定のサーバとして指定され得る。他の実施形態では、利用可能なハードウェアリソースは、特定のプロセッサ、特定のプロセッサコア、特定のメモリデバイス、または特定のメモリリソースとして指定され得る。
さらに、いくつかの実施形態では、この方法は、物理サーバ、データクラスタ、またはノードなどのハードウェアリソースを動的に追加または削除することを含み得る。
実施形態では、第1のコンテナが割り当てられる利用可能なハードウェアリソースは、利用可能なハードウェアリソースに関連するメトリックに従って選択される。構成された第1のコンテナを利用可能なハードウェアリソース上で実行するように割り当てることは、現在のハードウェアリソース、利用可能なハードウェアリソース、または現在および利用可能なハードウェアリソースのメトリック間の比較に関連するメトリックに従って、構成された第1のコンテナを現在のハードウェアリソース上で実行することから利用可能なハードウェアリソース上で実行することに移動することを含み得る。そのメトリックは、様々な実施形態において、例えば、処理帯域幅、ネットワーク帯域幅、メモリリソース、またはハードウェアリソースと別のコンポーネントとの間の通信遅延を含み得る。
方法はまた、1つ以上のコンテナの各々の中で実行されるサービスを含むように1つ以上の冗長コンテナを構成し、それぞれの利用可能なハードウェアリソース上で実行されるように1つ以上のコンテナのそれぞれを割り当てることも含み得る。第1のコンテナは、アクティブなコンテナの出力が出力を駆動するように(すなわち、フィールドデバイスに提供されるか、または入力を別のコンテナに駆動するように)、アクティブなコンテナとして割り当てられ得る。
方法は、冗長コンテナ(アクティブなコンテナを含む)のリストを維持し、どのコンテナがアクティブなコンテナであるかを示すために冗長コンテナのリストを更新することを含み得る。そのような実装形態では、それぞれの利用可能なハードウェアリソース上で実行されるように各冗長コンテナを割り当てることは、1つ以上の冗長コンテナの各々が、プロセッサ多様性、サーバ多様性、および/または電源の多様性を作成するなど、少なくとも1つの点においてフォールトトレランスを作成するように、それぞれの利用可能なハードウェアリソースを選択することを含み得る。
またさらなる実施形態では、方法は、第1のコンテナが優先コンテナであるという指示を受信することと、その結果、優先コンテナおよび/または利用可能なハードウェアリソースが指定されたパフォーマンス要件を満たすかまたは上回ることを保証するように、ハードウェアリソース上にリソース利用可能性の所定の閾値を維持することと、を含み得る。
図8は、例示的なプロセスプラント400の論理および物理階層の配置を示すブロック図である。プロセスプラント400は、2つのプロセスセル402Aおよび402Bを含み、それらの各々は、3つのユニット404を含む。プロセスセル402Aは、ユニットA1、A2、およびA3を含み、一方、プロセスセル402Bは、ユニットB1、B2、およびB3を含む。ユニットの各々は、1つ以上の機器モジュールを含み、そして機器モジュールは1つ以上の制御モジュールを含む。例として、プロセスセル402AのユニットA1は、2つの機器モジュール404Aおよび404Bを含む。機器モジュール404Aは、制御モジュール406Aおよび406Bを含み、一方、機器モジュール404Bは、制御モジュール408Aおよび408Bを含む。プロセスセル402AおよびA02B内の他のユニットは各々、1つ以上の機器モジュール(図示せず)を含み、そして、1つ以上の制御モジュール(図示せず)を含む。
同時に、物理階層または組織をプロセスプラント400内で使用され得る。例えば、プロセスセル402Aおよび402Bが同様の製品を処理している場合、ユニットA1およびB1、A2およびB2、ならびにA3およびB3は、各々、同じまたは異なる制御スキームに従って動作する同一の機器のセットを含み得る。その結果、プロセスプラントのオペレータは、プロセスプラントの「エリア」内で同様のユニットをグループ化することができる。例えば、プロセスプラント400では、ユニットA1およびB1はエリア1にあり、ユニットA1およびB2はエリア2にあり、ユニットA3およびB3はエリア3にある。
プロセスプラントに応じて、様々な論理および物理階層ならびに配置が可能であり、図8に示される例示的なプロセスプラント400は、ただ1つの可能な組織スキームを描いているにすぎないことが理解されるであろう。もちろん、大規模な工業プロセスは、任意の数のエリア、プロセスセル、ユニット、機器モジュール、および制御モジュールを含み得、その結果、制御スキーム内でのこれらのモジュールの論理的な編成が特に役立つことがある。
上述したように、SDCS 100は、各コンテナが、コンテナをホストするコンピューティングノードのオペレーティングシステム内で(すなわち、コンテナがインスタンス化されるコンピューティングノードのオペレーティングシステム内で)実行される分離された実行環境であるコンテナ化アーキテクチャを実装する。各コンテナは、構成されていない場合、本質的にサービスおよび他のアイテムをインスタンス化できる「サンドボックス」であるため、SDCS 100のコンテナは、プロセスプラント10内の論理および/または物理階層を表し得る。具体的には、SDCS 100内のコンテナは、プロセスプラントの論理および/または物理構成を正確な様式で表すためにネストされ得る。
図9は、プロセス制御システムにおけるネストされたコンテナの例示的な実装を示すブロック図である。データクラスタ上の(例えば、データクラスタ208上の)計算ノード410は、その上にプロセスエリア「プロセスエリア1」を表すコンテナ412をインスタンス化した。プロセスエリア1は、ユニット1およびユニット2の2つのユニットを含む。したがって、プロセスエリア1を表すコンテナ412は、その中に、ユニット1を表すコンテナ414およびユニット2を表すコンテナ416をインスタンス化した。このようにして、プロセスプラントの階層は、SDCS 100のコンピューティング要素の組織内で表され得る。図9に描かれる例では、コンテナ412内のコンテナ418で実行される単一の連続制御サブシステムサービスは、ユニット1およびユニット2の両方を担い、コンテナ412内のコンテナ420で実行される単一のヒストリアンサービスは、ユニット1およびユニット2の両方のデータを履歴化する。各ユニットに固有のコントローラサービス、I/Oサーバサービス、分散アラームサブシステムサービス、および診断サブシステムサービスは、それぞれ、コンテナ414内にネストされたコンテナ422、424、426、および428内、ならびにコンテナ416内にネストされたコンテナ430、432、434、および436内で実行される。
このようにして、プラントオペレータは、関連するプロセスプラントの論理および/または物理設計を表す方法でSDCS 100を構成することができる。このようにして、コンテナはまた、プロセスプラントの別個の、しかし同一の部分の制御を実装する目的で、および/または冗長性を作成する目的で、および/または負荷分散操作を促進する目的で、コンテナ構造の複製を促進にするようにも構成され得る。例えば、コンテナは、インスタンス化されるとき、特定のサブコンテナを含むように構成され得、特定のサブコンテナは、インスタンス化されるとき、制御されるべきプロセスプラントの特定の機器エリアに対してのみ構成される必要がある。再び図9を参照すると、コンテナ414および416は、インスタンス化されたときに、コンテナ414内のコンテナ422、424、426、および428がユニット1の機器と関連付けられ、コンテナ416内のコンテナ430、432、434、および436がユニット2の機器と関連付けられるように構成されればよい、同一のコンテナの異なるインスタンスであり得る。
ここで図10に目を向けると、個々のおよび/またはネストされたコンテナは、フォールトトレランスを促進するために複製され、および/または負荷分散を促進するために計算ノードまたは他のリソース間で移動され得る。図10は、図9のコンテナ412が、計算ノード410(コンテナ412)および第2の計算ノード440(コンテナ412’)上でインスタンス化される例を描いている。コンテナ412および412’は機能的に同一であるが、異なる計算ノード上でインスタンス化されることにより、コンテナのうちの一方(例えば、コンテナ412)をアクティブなコンテナに指定し、コンテナのうちの他方(例えば、コンテナ412’)を(点線を有するコンテナによって示すように)冗長として指定することができるようになる。そうすることで、アクティブなコンテナがサービスの低下(さらに後述される)を被る場合、またはアクティブなコンテナがインスタンス化される計算ノードが故障(例えば、予期しないサーバエラー、電源障害など)を被る場合、コンテナのうちの冗長なもの(例えば、コンテナ412’)は、アクティブなコンテナとして指定され得、プロセスプラントの関連部分は、継続的かつ確実に制御され得る。
もちろん、コンテナは、コンテナの任意のインスタンス化が、その中でネストされているコンテナのすべてを必ず含むように構成され得るが(例えば、ユニット1のコンテナのインスタンス化が、コンテナ422、424、426、および428のすべてを含むように)、各コンテナを個別にインスタンス化することもまた可能である。例えば、そのような実装形態は、図11に描かれており、ここで、2つの計算ノード410および440は、各々、描かれたプロセス制御システムの一部分を実行する。図11に描かれる例では、コンテナ412は、計算ノード410上でインスタンス化される。コンテナ412は、その中で、連続制御サブシステムサービスを実行するコンテナ418、およびヒストリアンサービスを実行するコンテナ420をインスタンス化した。ユニット1に関連付けられているコンテナ414は、コンテナ412内でインスタンス化され、コントローラサービス、I/Oサーバサービス、分散アラームサブシステムサービス、および診断サブシステムサービスをそれぞれ実行するコンテナ422、424、426、および428は、コンテナ414内でインスタンス化される。同時に、コンテナ412’は、計算ノード440上でインスタンス化される。コンテナ412’は、その中で、連続制御サブシステムサービスの冗長インスタンス(点線で示される)を実行するコンテナ418’、およびヒストリアンサービスの冗長インスタンス(点線で示されている)を実行するコンテナ420’をインスタンス化した。ユニット2に関連付けられているコンテナ416は、コンテナ412’内でインスタンス化され、コントローラサービス、I/Oサーバサービス、分散アラームサブシステムサービス、および診断サブシステムサービスをそれぞれ実行するコンテナ430、432、434、および436は、コンテナ416’内でインスタンス化される。このようにして、ユニット2に関連付けられているサービスを計算ノード440上で実装し、ユニット1に関連付けられているサービスを計算ノード410上で実装することにより、負荷分散を実現することができ、また、ヒストリアンと連続制御サブシステムサービスの冗長性を実現することができる。
図12は、コンテナネネストの別の例を描いている。図12では、冗長構成が、第1および第2の計算ノード442および444でそれぞれインスタンス化されている。2つの冗長構成の各々において、同じプロセスエリア1に対応するコンテナ446、446’がインスタンス化され、その中で、プロセスエリア1の同じユニット1に対応するコンテナ448、448’がインスタンス化される。コンテナ448、448’の各々は、ユニット1に対してサービスを提供するために動作可能なコンテナのセットを含み、コンテナのセットは、コントローラコンテナ450、450’、ヒストリアンコンテナ452、452’、連続制御サブシステムコンテナ454、454’、分散アラームサブシステムコンテナ456、456’、診断サブシステムコンテナ458、458’を含む。冗長I/Oサーバコンテナ460、460’は、第1の計算ノード442および第2の計算ノード444の各々においてインスタンス化される。I/Oサーバコンテナ460、460’によって実装されるI/Oサーバは、図12に描かれているもの以外の他のプロセスエリア、ユニット、およびコントローラに対してI/Oサービスを遂行し得、したがって、プロセスエリア1のコンテナ446、446’、またはユニット1のコンテナ448、448’の中として描かれていない。
I/Oサーバコンテナ460、460’によって実装されるI/Oサーバは、図12に描かれているもの以外のコンテナによって使用され得るが、図では、プロセスエリア1のコンテナ446、446’が、I/Oサーバ1に「固定」されているように描かれている。このように、図12は、SDCS 100の別の特徴、すなわち、固定された要素が同じハードウェア上で動作するか、またはそれらが固定されたハードウェア上で動作するように、SDCS 100内の要素を互いに固定することができることを示している。図12では、例えば、プロセスエリア1のコンテナ446、446’は、それぞれのI/Oサーバコンテナ460、460’に固定されているので、コンテナ446は、I/Oサーバコンテナ460と同じサーバ上でインスタンス化されることになり、コンテナ446’は、I/Oサーバコンテナ460’と同じサーバ上でインスタンス化されることになる。したがって、プロセスエリアコンテナ446が別のサーバに移動される場合、I/Oサーバコンテナ460は、同様に、プロセスエリアコンテナ446と同じサーバに移動されることになる。同じことが、コンテナ460’に固定されたコンテナ446’にも当てはまる。
コンテナは、プロセスプラント10内の様々なコンポーネントのいずれかに固定され得る。図12に関して説明されたように、実施形態では、コンテナは、処理ハードウェアの1つの部分から別の部分に移動された場合、コンテナが、ユニットとして移動し、ハードウェアの同じ部分上で実行されたままになるように、他のコンテナに固定され得る。これは、例えば、固定されたコンテナ間のネットワーク遅延を最小限のままであることを保証するのに役立ち得る。実施形態では、コンテナは、特定のデータクラスタ、データクラスタの特定の計算ノード、特定の計算ノードの特定のプロセッサ、特定のサーバラック、プロセッサの特定のプロセッサコアなどを含む特定の処理ハードウェアに固定され得る。いくつかの実施形態では、コンテナは、スマートフィールドデバイス上でインスタンス化され得、したがって、コンテナは、特定のフィールドデバイスに固定され得る。コンテナはまた、特定の非コンピューティング物理リソースにも固定され得る。例えば、コンテナは、特定の物理I/Oインターフェースに固定されてもよく、またはさらには、複数のコンピューティングリソースに電力を供給する特定の電源に固定されてもよい。後者の場合、これにより、電源に関するフォールトトレランスを維持しながら、2つの冗長コンテナの各々を、それぞれの電源から電力を供給されるコンピューティングリソース間で移動できるようになる。
図13および図14は、コンテナをコンポーネントに固定する様々な例を示している。図13では、計算ノード462は、コントローラコンテナ464、ヒストリアンコンテナ466、連続制御サブシステムコンテナ468、分散アラームサブシステムコンテナ470、診断サブシステムコンテナ472、およびI/Oサーバコンテナ474を含む複数のコンテナ464~474をその上にインスタンス化した。図13に描かれているように、I/Oサーバコンテナ474は、計算ノード462に固定されている。したがって、計算ノード462上でインスタンス化された他のコンテナは「移動」され得る(すなわち、計算ノード462上でインスタンス化されたインスタンスの終了前に他のハードウェア上でインスタンス化され得る)が、I/Oサーバコンテナ464は、何らかの状況(例えば、サーバの不安定性、異常終了など)がI/Oサーバコンテナ464を強制的に移動させない限り、計算ノード462上に留まる。同時に、連続制御サブシステムコンテナ468は、コントローラコンテナ464に固定される。コントローラコンテナ464および連続制御サブシステムコンテナ468は、例えば、コンテナ464、468間を通過するデータが、同じハードウェアリソース上でのそれらのインスタンス化のために最小遅延を維持することを保証するために、ペアとしてインスタンス化される。
コンテナが特定のハードウェアリソースに固定されている場合、その固定はコンテナのインスタンスに固有である可能性があり、つまり、コンテナの1つのインスタンスが第1のハードウェアリソースに固定され、コンテナの第2の冗長インスタンスが第2の別のハードウェアリソースに固定され得ることが明らかであり得る。このような場合、コンテナをハードウェアリソースに固定すると、冗長性とフォールトトレランスが促進され得る。ただし、コンテナが別のコンテナに固定されている場合、その固定は、ある場合には、コンテナペアのすべての冗長なインスタンス化に引き継がれる可能性がある。つまり、コントローラと連続制御サブシステムのペアは、ペアの各インスタンスがどのハードウェアリソースに固定されるかにかかわらず、一緒に固定されることがある。このようにして、あるコンテナを別のコンテナに固定することは、例えばネットワーク遅延および帯域幅管理に関連する目標を達成するために実装され得る。
一方、図14は、2つの電源476および478がそれぞれの計算ノードのセットに電力を供給する例を示している。第1の電源476は、3つの計算ノード479、480、481に電力を供給し、一方、第2の電源478は、3つの他の計算ノード482、483、484に電力を供給する。サーバ479~481および482~484の各セットは、集合的に、その上で同じコンテナのセットをインスタンス化しており、それによって、電源476、478のうちの一方が故障した場合、電源476、478の他方で冗長コンテナがアクティブのままであるよう、1:2のフォールトトレランスを提供している。集合的に、サーバ479~481は、SISコントローラコンテナ485、コントローラコンテナ486、連続制御サブシステムコンテナ487、分散アラームサブシステムコンテナ488、I/Oサーバコンテナ489、ヒストリアンコンテナ490、および診断サブシステムコンテナ491をその上にインスタンス化している。同様に、サーバ482~484は、SISコントローラコンテナ485’、コントローラコンテナ486’、連続制御サブシステムコンテナ487’、分散アラームサブシステムコンテナ488’、I/Oサーバコンテナ489’、ヒストリアンコンテナ490’、および診断サブシステムコンテナ491’をその上にインスタンス化している。事実上、サーバ479~481でインスタンス化されたコンテナ485~491の各々は、第1の電源476に固定され、SISコントローラコンテナ485は、特に第1の計算ノード479に固定され、ヒストリアンコンテナは、第3のサーバ481に固定され、コンテナ485~491のうちの残りは、概ね、第1の電源476に固定されている。同時に、サーバ482~484上でインスタンス化されたコンテナ485’~491’の各々は、第2の電源478に効果的に固定され、SISコントローラコンテナ485’は、特に第4の計算ノード482に固定され、ヒストリアンコンテナは、第6のサーバ484に固定され、コンテナ485’~491’のうちの残りは、概ね、第2の電源478に固定されている。SISコントローラコンテナ485、485’およびヒストリアンコンテナ490、490’を除いて、コンテナ485~491は、第1、第2、および第3のサーバ479~481の間で移動され得、コンテナ485’~491’は、フォールトトレランスを維持しながら、負荷分散のために第4、第5、および第6のサーバ482~484の間を移動され得る。
もちろん、上記の段落に示されているように、コンテナのネストおよび固定は、互いに組み合わせて使用することも、別々に使用することもできる。したがって、方法は、データクラスタの第1および第2のコンテナの第1のコンピューティングノード内でインスタンス化することを含み得、これらの各々は、第1のコンピューティングノードのオペレーティングシステム内のそれぞれの分離された実行環境である。第2のコンテナは第1のコンテナ内でインスタンス化され得るが、サービスは第2のコンテナ内でインスタンス化される。第1および第2のコンテナの各々は、実施形態では、プロセスプラントの階層構造の第1および第2のレベルにそれぞれ対応する。同時に、第1のコンテナはまた、その中で1つ以上のサービスを実行し得る。実施形態では、第1のコンテナ内で実行されるサービスは、I/Oサービスであり得る。
方法はまた、第1のコンピューティングノード上で、具体的には第1のコンテナ内でインスタンス化される第3のコンテナをインスタンス化することも含み得る。実施形態では、第2のコンテナ内で実行されるサービスは、工業プロセスプラントの第1の部分におけるプロセス制御フィールドデバイスのサブセットを制御するように構成された制御ルーチンを実行するコントローラサービスであり得、一方、第3のコンテナ内で実行されるサービスは、工業プロセスプラントの第2の部分におけるプロセス制御フィールドデバイスの異なるサブセットを制御するように構成された制御ルーチンを実行するコントローラサービスであり得る。いくつかの実施形態では、第2および第3のコンテナで実行されるサービスは、プロセス制御フィールドデバイスとそれぞれのコントローラサービスとの間でデータを通信するように構成されたそれぞれのI/Oサーバサービスを含み得る。実施形態では、方法は、データクラスタの1つ以上の異なるノード上で冗長なネストされたコンテナ構造をインスタンス化することを含み得る。
様々な実施形態では、方法は、工業プロセス制御システム10のデータクラスタにおいて、工業プロセスプラント、複数のコンテナにおける物理プロセスを制御するように動作する複数のプロセス制御フィールドデバイス60、70、80、90を制御するためのSDCS 100を実行することをインスタンス化することを含み得る。複数のインスタンス化されたコンテナの各々は、コンテナがインスタンス化される複数の計算ノードのうちの1つのオペレーティングシステム内で実行される分離された実行環境であり得る。複数のインスタンス化されたコンテナは、ソフトウェア定義制御システムにおける制御戦略の実行を促進するために連携し得る。方法はまた、複数のコンテナの第1のコンテナをソフトウェア定義制御システムのコンポーネントに固定することも含み得る。上述したように、いくつかの実施形態では、複数のコンテナのうちの1つ以上は、プロセスプラントの階層構造のレベルに対応し得る。
実施形態では、方法はまた、複数のインスタンス化されたコンテナのうちの少なくとも1つにおいてサービスを実行することも含み得る。サービスは、例えば、I/Oサーバサービス、コントローラサービス、ヒストリアンサービス、分散型アラームサブシステムサービス、診断サブシステムサービス、サードパーティサービス、またはセキュリティサービスを含み得る。さらに、第1のコンテナをSDCSのコンポーネントに固定することは、コンテナを別のコンテナに固定することを含み得、別のコンテナは、それ自体が第1のコンテナ内でインスタンス化され得るか、または別のコンテナ内で第1のコンテナがインスタンス化され得る。
コンテナが固定されているコンポーネントは、1つ以上のデータクラスタまたはデータクラスタの一部分に電力を供給する電源であってもよく、またはデータクラスタ、データクラスタの計算ノード、データクラスタ内のサーバラック、サーバ、特定のプロセッサ、もしくはプロセッサ内の特定のプロセッサコアのいずれかであってもよい。あるいは、コンポーネントは、I/Oサーバサービスが実行されているI/Oサーバコンテナ、プロセス制御フィールドデバイス、または物理I/Oインターフェースであってもよい。実施形態では、方法は、異なるノード、サーバ、電源、プロセッサ、またはプロセッサコアに固定された冗長コンテナ構造をインスタンス化することを含み得る。
図15は、図1に示されるプラント10のエリア501内のプロセスの一部分およびエリア502内のプロセスの一部分の制御を実装するためのコンテナ化されたサービスを含む、I/OサブシステムまたはI/Oネットワーク500のブロック図である。I/Oサブシステム500は、図1および図2に示されるI/Oゲートウェイ40およびSDCS 100/200の一部であり、および/またはそれらに接続され得る。
「I/Oネットワーク」という用語に関して、概して、1つ以上のコントローラまたはコントローラサービス(例えば、コンテナ化されたもの)、1つ以上のコントローラまたはコントローラサービスに通信可能に接続されたフィールドデバイス、およびコントローラまたはコントローラサービスとフィールドデバイスとの間の通信を促進する仲介ハードウェアまたはソフトウェアノード(例えば、I/Oサーバサービス、I/Oカードなど)によって形成されるネットワークは、「I/Oネットワーク」または「I/Oサブシステム」と呼ばれてもよい。
高いレベルでは、I/Oサブシステム500は、(i)エリア501のI/Oサーバサービス(時には「I/Oサービス」または単に「サービス」という)511a、およびエリア502の(ii)I/Oサービス511bを含む。以下の説明の大部分は、I/Oサービス511aの構成および動作に焦点を当てているが、I/Oサービス561aは、エリア502内のプロセス機器の制御を実装するために使用されるエンティティに関して同様の機能性を提供するために同様に構成されてもよいことが理解されるであろう。
I/Oサービス511aは、任意の好適なコンピューティングデバイスまたはノードで実装されるソフトウェアサービスである。サービス511aは、プラント10内の様々なルーチン、モジュール、サービス、コンテナ、デバイス、またはノードに対してI/Oサブシステム500に関連するI/O機能を(例えば、リンクまたはネットワーク上で)提供するプラットフォーム、アプリケーション、または一連のアプリケーションとして考えることができる。例えば、フィールドデバイス(またはフィールドデバイスに結合されたI/Oカード)は、(i)サービス511aから、フィールドデバイスを作動させるコマンドなどのコントローラ出力を受信すること、および/または(ii)フィールドデバイスによって生成または算出された測定されたプロセスパラメータまたはインデックスなどのフィールドデバイス出力をI/Oサービス511aに送信することによって、I/Oサービス511aと対話し得る。さらに、コントローラサービスは、(i)I/Oサービス511aコントローラ出力を提供する(例えば、コマンドを保持する)こと、および/または(ii)I/Oサービス511aから、コントローラ入力(例えば、測定されたプロセスパラメータを表すフィールドデバイス出力)を受信することによって、I/Oサービス511aと対話し得る。I/Oサービス511aとそれがサービスを提供するエンティティ(例えば、フィールドデバイス、コントローラサーバ)との間の通信は、I/Oサービス511aが発行者でありフィールドデバイスおよび/もしくはコントローラサービスが加入者であるというような、またはI/Oサービス511aが加入者でありフィールドデバイスおよび/もしくはコントローラサービスが発行者であるというような、任意の好適な通信モデルを使用して実装され得る。同様に、I/Oサービス511aが要求者であり、フィールドデバイスおよび/もしくはコントローラサービスが要求に応答する、または、I/Oサービス511aがフィールドデバイスおよび/もしくはコントローラサービスからの要求に応答する、プルモデルが使用され得る。必要に応じて、I/Oサービス511aがフィールドデバイス(例えば、発行者、加入者、要求者、応答者など)とコントローラサービスとは異なる通信の役割を遂行するハイブリッドモデルが使用され得る。
いずれにせよ、例示的な動作中に、I/Oサービス511aは、エリア501を制御するための同じ制御ルーチンをそれぞれ実装する複数のコンテナ化されたコントローラサービスから複数のコントローラ出力のセットを受信する。典型的な例では、サービス501は、コントローラ出力の単一の「アクティブな」セット(すなわち、コンテナ化されたコントローラサービスの特定のうちの1つからの出力)を関連するフィールドデバイスに渡し、領域501を制御する。さらに、他の「非アクティブな」コントローラ出力のセットは、関連するフィールドデバイスに転送されない。I/Oサーバサービス561aは、エリア502に関して同様に構成され、コントローラ出力の「アクティブな」セットおよび1つ以上の「非アクティブな」セットを含む、コントローラ出力の複数のセットを処理することができる。
高いレベルでは、I/Oサービス511aは、以下の間の仲介者として機能する:(i)プラント内で何らかの物理制御アクションを遂行するフィールドデバイス531のセット(例えば、ポンプ、バルブ、および他の作動デバイスを含む)、プラント内のプロセス変数を測定および送信する送信機として動作するフィールドデバイス532のセット(例えば、センサベースのフィールドデバイスを含む)、ならびに、潜在的に、「カスタム」アルゴリズムを遂行するマイクロコンテナのセット(分光器デバイス内のスペクトル処理に関連するスペクトル処理マイクロコンテナ、またはカメラが取り付けられたデバイスのためのイメージ処理マイクロサービスのようなもの)をカプセル化し、特定の用途(制御または保守用途であり得る)のための処理されたI/Oデータを生成および送信する、フィールドデバイス533のセット、ならびに(ii)同じ制御ルーチン#1(例えば、同じ構成された制御ルーチンサービス#1)のインスタンス525a~cを各々作動し、同じセットのフィールドデバイス531および532を制御し、それによってエリア501を制御する1つ以上のコンテナ化されたコントローラサービス521a~c。フィールドデバイス531は、プロセス変数データを処理または操作するためのカスタムアルゴリズムまたはカスタムマイクロコンテナを含むフィールドデバイス533とは異なる送信機(例えば、測定されたプロセスパラメータの)として機能するフィールドデバイス532とは異なる作動フィールドデバイスとして示されているが、単純化のために、記載されたフィールドデバイスは、制御要素(例えば、バルブステム)を作動させてプロセス変数を操作すること、測定または算出されたフィールドデバイスもしくはプロセス変数を測定および送信すること、収集されたプロセスデータまたは他の測定値を処理または操作して、処理または操作されたデータを送信すること、のいずれかまたはすべてが可能であり得ることが理解されるであろう。例えば、スマートバルブポジショナは、バルブを作動させるコマンドを受信し、測定した流量、検出したバルブ位置、バルブの健全性に関する健康指標を送信すること、バルブポジショナのカメラからの収集画像データを処理して、壊れたバルブを検出し、その処理または収集データを送信することを行うように構成され得る。
いくつかの実施形態では、I/Oサービス511aはコンテナ化されていない。しかしながら、必要に応じて、I/Oサービス511aは、I/Oサーバコンテナ(時には「I/Oコンテナ」)505aにコンテナ化される。様々な実施形態では、I/Oサブシステム500は、複数のI/Oコンテナ505a~cを含む。I/Oコンテナ505a~cの各々は、同じ入力を受信し(例えば、コントローラサービスおよびフィールドデバイスから)、同じ出力を生成し(例えば、フィールドデバイスおよびコントローラサービスに)、同じ論理を実装する(例えば、どのコンテナ化されたコントローラサービスをアクティブにする必要があるかを評価するため、コントローラサービス間の移行を処理するためなど)。したがって、複数のI/Oサーバコンテナ505a~cが実装される場合、I/Oサーバコンテナ505a~cのうちの単一の1つが「アクティブ」として指定され得る。例えば、実線および点線によって、図15は、I/Oコンテナ505aが「アクティブ」であり、I/Oサーバコンテナ505bおよび505cが「非アクティブ」であることを示している。このような例では、I/Oコンテナ505aはトラフィックをコントローラサービスとフィールドデバイスに転送するが、コンテナ505bと505cは転送しない。実施形態では、すべてのコンテナ(「非アクティブな」コンテナを含む)は同じI/Oデータを受信するが、「アクティブな」コンテナのみが、コントローラサービスおよびフィールドデバイスによって受信および処理されるI/Oデータを送信すると言うことができる。
ある場合には、非アクティブなI/Oコンテナはトラフィックを送信しない。他の例では、I/Oコンテナ505a~cの各々は、I/Oトラフィック(非アクティブなI/Oコンテナを含む)を送信するが、スイッチはトラフィックを傍受し、「アクティブな」I/Oサーバコンテナから送信された場合にのみトラフィックを宛先に転送する。場合によっては、「非アクティブな」I/Oサーバコンテナは、フィールドデバイスとコントローラサービス間の中間I/Oサーバとしてアクティブに機能していないにもかかわらず、他のコンテナにデータを送信することがある。例えば、「非アクティブな」I/Oサーバコンテナは、I/Oトラフィック(例えば、コントローラ入力、コントローラ出力など)をヒストリアンまたはヒストリアンコンテナ、ユーザワークステーションまたはワークステーションコンテナ、他のプラントまたは外部ネットワークなどに送信することにより、負荷分散操作に参加し得る。したがって、「非アクティブな」I/Oサーバは、「アクティブな」I/Oコンテナがそのような機能を遂行する際の処理能力またはネットワーキング容量を「浪費」することを軽減することができる。これは、I/Oコンテナ505a~cが2つ以上の物理マシンに分散している場合に特に有利である。各I/Oコンテナ505a~cは、図16および図17に示されるような1つ以上の物理サーバに実装され得る。
前述したように、コンテナ化されたコントローラサービス521a~cは各々、コンテナ515a~c内で同じ制御ルーチン#1のそれぞれのインスタンス525a~cを作動して、フィールドデバイス531および532の同じセットを制御し、それによってエリア501を制御する。いくつかの実施形態では、制御ルーチン#1は、例えば、1つ以上の構成された制御ルーチンサービスおよび/または1つ以上の構成された制御機能ブロックサービスとして実装され得る。コンテナ515a~cは、任意の好適なコンピュータデバイス、ノード、またはコンピューティングクラスタに実装され得る。ある場合には、コンテナのうちの1つ以上が、対応するコントローラサービスが制御するように構成されているフィールドデバイスの近くのプラント環境のコンピューティングデバイスに実装される。ある場合には、コンテナを実装するデバイスはラックに取り付けられ、物理的なプロセスコントローラに通常見られるものと同様のフォームファクタまたはハウジングを備えている場合がある。他の例では、コントローラサービスコンテナは、プラント内の別の位置、制御室、データセンタ、コンピューティングクラスタ、リモート現場などにあるサーバまたはコンピュータによって実装される。簡単に言えば、コンテナ化されたコントローラサービスは、それらが制御しているフィールドデバイスとの好適なネットワーク接続を確立でき(例えば、サービス511aなどのI/Oサーバサービスを介して)、コンテナ化されたコントローラサービスは、任意の好適な位置の任意の好適なハードウェア上に実装され得る。
前述したように、コンテナ化されたコントローラサービス521a~cの各々は、同じ制御ルーチン#1を実装する同じ概念コントローラを表している(各々が同じフィールドデバイスに関連付けられている同じタグからの読み取りおよび書き込みを行うように構成されている)。いつでも、3つのコンテナ化されたコントローラサービス521a~cのうちの2つは、「アクティブな」コンテナ化されたコントローラサービスに対する複製または冗長なコントローラサービスとして考えられ得る。概して、各「コントローラサービス」は、ハードウェアコントローラに見られるものと類似したソフトウェアプラットフォームまたはインフラストラクチャを表している。各コントローラサービスは、制御ルーチンを認識および実行するように構成され、制御ルーチンは、多くの場合、特殊化および予想されるデータ形式および構造を有している(例えば、制御機能ブロックサービスで構成された制御モジュールサービスによって定義される)。コントローラサービスは、物理デバイスで実行されているコンテナと最上位アプリケーション(例えば、制御ルーチン)との間の層と考えることができる。そのために、「コントローラサービス」は、コンテナおよびコンピューティングデバイスが制御ルーチンを適切に認識して実行することを可能にするために、コンピューティングデバイスのコンテナ内に実装されたオペレーティングシステムに類似していると考えることができる。ある場合には、コントローラサービスは、物理プロセスコントローラの特定のハードウェアモデルをエミュレートするエミュレータであるか、またはエミュレータを含み得る。
制御ルーチンまたは制御モジュールは、プロセッサによって実行可能であり、プロセスの少なくとも一部の制御を提供または遂行するための1つ以上の動作を遂行するための命令のセットである。概して、制御ルーチンまたは制御モジュールは、特定の制御戦略を実装するように構成されたソフトウェアとして理解され得、そのコンテナで実行される構成された制御モジュールサービスとしてSDCS 200内に実装され得る。制御ルーチンまたは制御モジュールは、様々な機能に関連する1つ以上の相互接続された制御機能ブロックを含み得る。これらの機能ブロックは、それへの入力に基づいて制御スキーム内で機能を遂行するオブジェクト指向プログラミングプロトコル内のオブジェクトであり得、制御スキーム内の他の機能ブロックに出力を提供し得る。実施形態では、制御機能ブロックは、そのコンテナ内で実行される構成された制御機能ブロックサービスとして、SDCS 200内に実装され得る。より一般的には、制御ルーチンは、1つ以上のコントローラ入力(例えば、温度、圧力、流量などの測定されたプロセス変数)に基づいて実行され、1つ以上のコントローラ出力(例えば、制御バブルなどのフィールドデバイスを操作するためのコマンド)を生成する論理を表している。コントローラ出力は、前述したバルブ位置などのプロセス入力の操作(このようなプロセス入力は「操作変数」と呼ばれることもある)を引き起こして、プロセス出力(これは、「制御変数」または単に「プロセス変数」と呼ばれることがある)を変更または駆動し得る。制御変数は、制御ルーチンが制御しようとする任意の好適な変数であり得る。前の例に留まると、制御バルブの位置を操作して入口バルブを開き、タンク内のレベルを上げることができる(ここではレベルが制御変数である)。多くの場合、制御変数は測定され、コントローラ入力として制御ルーチンに返される。制御ルーチンはまた、ユーザまたは制御ルーチン(例えば、同じ制御ルーチンまたは異なる制御ルーチン)によって提供され得る制御変数(すなわち、設定値)の所望の値を入力として受け入れることができる。図15は、制御ルーチンインスタンス525a~cまたは575a~cのいずれかの入力として設定値を明示的に示していないが、説明または示されている各制御ルーチンインスタンスが設定値を受信し得ることを理解されたい。
図15に留まると、典型的な動作の間、I/Oサービス511aは、I/Oチャネル542aを介してフィールドデバイス532からプロセス出力(時に「フィールドデバイス出力」という)もしくはプロセス出力のセットを受信し、またはI/Oチャネル542bを介してフィールドデバイス533から処理データのセットを受信する。プロセス出力は、任意の好適なプロセス変数であり得、検出または算出された値(例えば、タンクレベル変数LT004が20%満杯の値を有することを示す)を運ぶことができる。I/Oサービス511aは、プロセス出力を、I/Oチャネル543a~cを介してコントローラ入力として各制御ルーチンインスタンス525a~cに渡す。すなわち、I/Oチャネル543a~cの各々には、同じ変数または同じ値または値のセット(例えば、LT004=20%を示す)を保持する変数のセットが割り当てられる。
制御ルーチンサービスインスタンス525a~cは、コントローラ入力を受信し、コントローラ入力の値(例えば、LT004=20%)および制御ルーチンの論理(例えば、タンクが高いレベルまで満たされるべきことを示す)に基づいて、コントローラ出力(例えば、入口バルブを75%開放するためのコマンド)を生成する。コントローラサービス521a~cは、それぞれI/Oチャネル544a~cを介して、コントローラ出力をI/Oサービス511aに送信する。別の言い方をすれば、I/Oチャネル544aは、制御ルーチンインスタンス525aからの出力のセットを保持し、I/Oチャネル544bは、制御ルーチンインスタンス525bからのコントローラ出力のセットを保持し、I/Oチャネル544cは、制御ルーチンインスタンス525cからのコントローラ出力のセットを保持する。典型的な例では、コントローラ入力が通常同一であり、制御ルーチン#1のインスタンス525a~cが同一であるため、コントローラ出力のセットはしばしば同一である(例えば、各I/Oチャネル544a~cは、入口バルブを75%まで開くコマンドを保持し得る)。そうは言っても、制御ルーチンまたはネットワークトラフィックが何らかの方式で危険にさらされた場合、様々なセットが異なる可能性がある。したがって、I/Oサービス511aは、受信したセットに対して様々なエラーチェックを実装し得る。ある場合には、I/Oサービスは、コンセンサス分析または最良の「n」投票スキームを遂行してセットを選択し得る。例えば、サービス511aが受信した最初の2つのセットが異なる場合、サービス511aは、受信した2つのセットのうちのどちらがサービス511aが受信した3番目のセットと一致するかに基づいて、転送する2つのセットのうちの1つを選択し得る。
より具体的には、I/Oサービス511aは、受信したコントローラ出力のセットおよび/またはコントローラ出力の各セットに関連するメタデータを分析する。具体的には、各セットのQoSメトリックが分析され得、最良のQoSメトリックを有するセットは、I/Oサービス511aまたはいくつかの他のサービス(例えば、オーケストレータサービス)のいずれかによってコントローラ出力の「アクティブな」セットであると判定され得る。QoSメトリックは、遅延、精度、メッセージレートなど、コンテナ化されたコントローラサービスによって提供されるサービス品質を分析するための任意の望ましいメトリックであり得る。「最良」QoSメトリックに対応するルーチン、サービス、コンテナ、およびI/Oチャネルは、(明示的または暗黙的に)「アクティブ」として指定され得る。実施形態では、単一の制御ルーチンサービスインスタンス525a~c、単一のコントローラサービス521a~c、単一のコンテナ521a~c、および単一のI/Oチャネル44a~cは、所与の時間に「アクティブ」であると見なされ得る。残りの制御ルーチンサービスインスタンス525a~c、コントローラサービス521a~c、コンテナ521a~c、およびI/Oチャネル544a~cは、「非アクティブな」を指定されるかまたは見なされ得る。I/Oサービス511aは、「アクティブな」コンテナおよびコントローラサービスからのコントローラ出力のセットを、I/Oチャネル540を介してフィールドデバイス531に転送する。「非アクティブな」コンテナからのコントローラ出力のセットは、フィールドデバイスに転送されないが、他の目的(例えば、コンピュータおよび/またはネットワークリソースの使用を最適化すること)のために、他のコンテナおよび/またはサービス(例えば、データヒストリアン)に転送され得る。
図15に留まると、点線は、どのルーチン、サービス、コンテナ、およびチャネルが非アクティブであるかを示している。図示するように、コンテナ515c、コントローラサービス521c、ルーチンサービス525c、およびI/Oチャネル544cは「アクティブ」であり、ルーチンサービスインスタンス525cによって生成され、I/Oサービス511aに渡されるコントローラ出力がI/Oサービス511aによって、I/Oチャネル540を介してフィールドデバイス531に転送されることを意味している。対照的に、コンテナ515aおよびb、コントローラサービス521aおよびb、ルーチンサービス525aおよびb、ならびにI/Oチャネル544aおよびbは「非アクティブ」である。結果として、I/Oサーバサービス511aは、ルーチンサービス525aおよびbからのコントローラ出力をフィールドデバイス531に転送しない。
前述したように、I/Oサーバサービス561aは、I/Oサービス511aおよびエリア501に関して説明したのと同様の方式で、エリア502の制御を促進する。例えば、サービス561aは、(i)フィールドデバイス581および582および583のセットと、(ii)同じ制御ルーチン#2のインスタンス575aおよび575bをそれぞれ作動するコンテナ化コントローラサービス571aおよび571bとの間の中間ノードとして機能して、同じフィールドデバイス581および582および583のセットを制御して、それによってプラント10の部分502を制御する。I/Oサーバサービス561aは、コンテナ化されたコントローラサービスを評価し、1つの「アクティブ」サービスを選択し、アクティブサービスからのコントローラ出力を利用して、フィールドデバイスのセットを制御し得る(それによって、プロセスに制御を実装し得る)。
図15に図示されるコンテナは、任意の所望の様式で、プラント10または他の位置の物理リソース全体に分散され得ることが理解されるであろう。例えば、エリア501のコンテナ515および505は、エリア501の近くまたは内部のコンピュータに実装され得、エリア502のコンテナ555および565は、エリア502の近くまたはエリア502のコンピュータに実装され得る。しかしながら、コンテナ505および/または515のうちの一部または全部は、エリア502の近くまたはエリア内のコンピュータに実装され得、および/またはコンテナ555および/または565の一部またはすべては、必要に応じて、エリア501の近くまたはエリア501に実装され得る。または、前述のコンテナのうちのいずれか1つ以上が、プラント10の他のエリアのコンピュータ、またはプラント10からリモートにある現場から離れた位置(これは、プラント10における停電または他の障害の場合にシームレスな移行を確保するために特に有用であり得る)に実装され得る。さらに、前述のコンテナはいずれも、たまたま実行されているコンピュータクラスタまたはノード/サーバに恒久的に固着または固定されている必要はない。コンテナは、コンピューティングおよびネットワーク負荷を平衡化し、コンピューティングまたはネットワーキングの非効率性を軽減するために(例えば、所与の物理リソースが計算上またはネットワークトラフィックによって過度に負担を受けるようになったとき)、必要に応じて、異なるコンピュータにおいて動的に(例えば、実行中に、またはそれとほぼリアルタイムに)インスタンス化、削除、および再インスタンス化され得る。さらに、所与のコンテナの合計インスタンスは、必要に応じて動的に増減することができる。例えば、コントローラコンテナ565aおよび565bを実装する物理リソースに過度の負荷がかかっているように見える場合、コントローラ#2サービスの第3のコントローラコンテナが新しいコンピュータまたは物理リソースでインスタンス化され得る(必要に応じて、第3のコンテナがアクティブ化され得る)。その後、I/Oサーバサービス561aは、コントローラ#2サービスの3つのコンテナを引き続き監視し、任意の所与の時間に最高のパフォーマンスを発揮するコンテナを継続的にアクティブ化し得る。コンテナ間のこの「ジャグリング」は、物理リソースの計算およびネットワークワークロードが大きく変動する場合に役立ち得る。各コントローラサービスは、専用コンテナにコンテナ化され得、それによって、コンテナを実装するノードに存在するより広範なソフトウェア環境に関係なく、各コントローラサービスが実装される比較的分離された一貫性のある予測可能な環境を提供する。例えば、コンテナは、所与のコントローラサービスに必要なソフトウェア依存関係およびソフトウェアライブラリを含み得る。コンテナがない場合、コントローラサービスの一貫した環境を確保するために、コントローラサービスが実行される可能性のあるすべてのノードを適切に構成する必要がある場合がある。また、所与のノードが様々な異なるタイプのサービス(これらは、異なる環境要件を有し得る)を実装することが可能である必要がある場合、ノードの適切な構成を保証することは複雑になる可能性がある。対照的に、説明されているコントローラサービスコンテナを使用すると、各コントローラサービスを所与のノードで簡単にインスタンス化し、ノード/サーバ間またはコンピューティングクラスタ間で簡単に移動することが可能になる。
さらに、上記の説明は、任意の所与のノードでインスタンス化され、ノード/サーバまたはコンピューティングクラスタ間で移動され得るコントローラサービスコンテナに言及しているが、概念および技術は、制御モジュールサービスおよび/または制御機能ブロックサービスなどの他のタイプの制御サービス235に容易に適用され得ることに留意されたい。例えば、構成された制御機能ブロックサービスの複数のインスタンスが異なるプロセッサコア上でインスタンス化され、異なるプロセスコア間または異なるプロセッサ間で移動され得、アクティブなI/Oサーバが構成された制御機能ブロックの複数のインスタンスのうちの1つを選択し得、構成された制御機能ブロックサービスの選択したインスタンスの出力を、その上で動作するために構成された制御モジュールサービスの複数のインスタンスの各々に提供し得る。同様に、アクティブなI/Oサーバは、構成された制御モジュールサービスの複数のインスタンスのうちの1つを選択し得、構成された制御モジュールサービスの選択されたインスタンスの出力を構成されたコントローラサービスの各インスタンスに提供し得る。
いずれにせよ、図15を参照すると、各I/Oチャネル540~544cおよび570~574bは、特定の変数または変数のセットを運ぶように構成され得ることも理解されるであろう。例えば、フィールドデバイス531はバルブであり得、I/Oチャネル540は、常に制御バルブコマンド(例えば、所望のバルブ位置を表す)を保持するように構成され得る。ある場合には、1つ以上のI/Oチャネルは、特定の一次変数(例えば、所望のバルブ位置)および1つ以上の二次変数(例えば、バルブ健全性指数、検出されたバルブ位置、測定された流量、アクチュエータの測定ひずみなど)を運ぶように構成される。いずれにせよ、例えば、I/Oチャネル540をコントローラ出力540と呼ぶことができる。
図16は、複数のノードまたは物理リソース(例えば、コンピュータ、サーバ、ネットワーキング機器など)を含むコンピュータクラスタ601のブロック図であり、その上に、本明細書に記載される様々なコンテナ、マイクロコンテナ、サービス、および/またはルーチンのうちのいずれか1つ以上が、コンピュータリソース使用量およびパフォーマンスを最適化するために実装され、動的に割り当てられ、負荷分散され得る。具体的には、クラスタ601は、図15に示されるコンテナ515、505、555、および/または565のいずれか1つ以上を実装するように構成された物理サーバ602および604を含み得る。
サーバ602および604の各々は、例えば、プロセッサ、メモリ、および通信インターフェースを含む任意の好適なコンピューティングデバイスであり得、各々は、プラント10の内部または外部の任意の好適な位置に配置され得る。例えば、図17は、サーバ602(時には、システム/サーバ/デバイス700と呼ばれる)の例示的な実施形態700を描いている。図示するように、サーバ700は、プロセッサ702と、メモリ704と、通信インターフェース706と、を含む。サーバ700のコンポーネントは、任意の好適なハウジング(図示せず)に収容され得る。
単一のプロセッサ702を含むことが示されているが、様々な実施形態では、サーバ700は、複数のプロセッサ702を含み得る。この例では、プロセッサ702は、コンテナ505a、I/Oサーバサービス511a、および/またはI/O論理711(例えば、本明細書で説明されるI/Oサーバ動作または機能を遂行するための論理を含む)を実装し得る。プロセッサ702はまた、他のコンテナ715(例えば、図1、図2、図15、または図16に示される他のコンテナのいずれか)も実装し得る。必要に応じて、任意の数のコンテナ505および/または715をインスタンス化して、サーバ700において(例えば、負荷分散動作中の稼働時間の間に)実装してもよい。
メモリ704は、プロセッサ702によって実行され得るコンテナ505および715などのソフトウェアおよび/または機械可読命令を記憶し得る。メモリ704は、ソフトウェアおよび/または機械可読命令を記憶するための非一時的コンピュータ可読媒体(「CRM」)を含む揮発性および/または不揮発性メモリまたはディスクを含み得る。
サーバ700は、サーバ700が、例えば、別のデバイス、システム、ホストシステム、または任意の他のマシンと通信することを可能にするように構成された1つ以上の通信インターフェース706を含む。通信インターフェース706は、1つ以上のネットワークを介して他のシステムとの通信を可能にする(例えば、サーバ700がサーバ604と通信することを可能にする)ネットワークインターフェースを含み得る。通信インターフェース706は、任意の好適なプロトコルに従って動作するように構成された任意の好適なタイプの有線および/または無線ネットワークインターフェースを含み得る。インターフェースの例には、TCP/IPインターフェース、Wi-Fi(商標)トランシーバ(I19E 802.11ファミリーの標準に準拠)、Ethernet(登録商標)トランシーバ、セルラーネットワーク無線、衛星ネットワーク無線、同軸ケーブルモデム、無線HART無線、または任意の通信プロトコルもしくは標準を実装するその他の好適なインターフェースが含まれる。
図16に戻ると、ノードまたはサーバ602または604のいずれかは、図17に図示されるサーバ700と同様のコンポーネントを含み得る。図16に示すように、コンテナ505および515は、サーバ602および604全体に分散されている。コントローラサービス521は、概念的には単一の「コントローラ」と呼ばれ得ることに留意されたい。すなわち、誰かが「コントローラ#1」と呼ぶとき、それらは、コントローラサービス521を実装するコンテナ515のグループを指しており、そして、コントローラサービス521は、同じ機器のセットを制御するための同じ制御ルーチンサービス#1のインスタンス525を各々実行する。オーケストレータおよび/またはI/Oサーバサービス511aは、存在するコンテナ化コントローラサービス521の数を動的に変更してもよく、いつでもどのコンテナ化コントローラサービス521がアクティブであるかを動的に変更してもよく、どの物理サーバが任意の所与の時間にコンテナ化コントローラサービス521を実装するかを変更してもよいため、「コントローラ#1」への言及は必ずしも任意の固着された特定のデバイスまたはコンテナを指すとは限らない。おそらくより適切に言えば、「コンテナ1」を表す特定のデバイスおよび特定のコンテナは、I/Oサーバサービス511aによっておよびオーケストレータサービスによって行われる様々な負荷分散動作および決定に応じて、様々な時点で異なる可能性がある。いずれにせよ、図16に図示されるコンテナおよびサーバは、任意の所望の方式で、プラント10の物理リソースおよび位置に分散され得る。
フィールドデバイス631は、図15に示されるフィールドデバイス531および532を参照して説明したのと同じ方式で、コンテナ505および/または515のうちのいずれか1つ以上と通信し得、同様の方式で構成され得る。図6に示すように、フィールドデバイス631は、物理I/Oモジュールまたはカード614およびネットワークスイッチ612を介してクラスタ601と通信し得る。
I/Oモジュールまたはカード614は各々、任意の好適なI/Oカード(時には、「I/Oデバイス」または「I/Oモジュール」と呼ばれる)であり得る。I/Oカード614は、典型的には、プラント環境内に位置し、コントローラサービスと1つ以上のフィールドデバイスとの間の中間ノードとして機能し、それらの間での通信を可能にする。具体的には、フィールドデバイスの入力および出力は、典型的には、アナログ通信またはディスクリート通信のために構成される。フィールドデバイスと通信するために、コントローラまたはコントローラサービスは、しばしば、フィールドデバイスによって利用されるのと同じタイプの入力または出力のために構成されたI/Oカードを必要とする。つまり、アナログ制御信号(例えば、4~20maの信号)を受信するように構成されたフィールドデバイスの場合、対応するコントローラまたはコントローラサービスは、適切な制御信号を送信するためにアナログ出力(AO)I/Oカードを必要とする場合がある。また、アナログ信号を介して測定値またはその他の情報を送信するように構成されたフィールドデバイスの場合、コントローラまたはコントローラサービスは、送信された情報を受信するためにアナログ入力(AI)カードを必要とする場合がある。同様に、ディスクリート制御信号を受信するように構成されたフィールドデバイスの場合、コントローラまたはコントローラサービスは、適切な制御信号を送信するためにディスクリート出力(DO)I/Oカードを必要とする場合があり、ディスクリート信号で情報を送信するように構成されたフィールドデバイスの場合、コントローラまたはコントローラサービスはディスクリート入力(DI)I/Oカードを必要とする場合がある。一般に、各I/Oカードは、複数のフィールドデバイスの入力または出力に接続でき、特定の入力または出力への各通信リンクは「チャネル」と呼ばれる。例えば、120チャネルのDO I/Oカードを120個の個別のディスクリートフィールドデバイス入力に通信可能に接続して、コントローラが(DO I/Oカードを介して)ディスクリート制御出力信号を120個の個別のディスクリートフィールドデバイス入力に送信できるようにする。ある場合には、I/Oカード614のうちの任意の1つ以上は、再構成可能であり、任意のタイプのI/O(例えば、AI、AO、DO、DIなど)のために構成されたフィールドデバイスとの通信を可能にする。いくつかのフィールドデバイスは、I/Oカードを介した通信のために構成されていない。そのようなデバイスは、依然として、I/Oサブシステム500に示されるコントローラサービスに接続され得る。例えば、いくつかのフィールドデバイスは、Ethernet(登録商標)ポートおよびリンクを介してコントローラまたはコントローラサービスと通信する。いくつかのフィールドデバイスは、好適な無線プロトコルを介してコントローラまたはコントローラサービスと通信する。
いずれにせよ、I/Oカード614は、所与のプロセス制御プロトコル(例えば、HART)を介してフィールドデバイス631と通信し、他の任意の好適なプロトコル(例えば、TCP/IP)を介してクラスタ601と通信し得る。I/Oカード614は、ネットワークスイッチ612にメッセージをルーティングし、ネットワークスイッチ612からメッセージを受信する。ネットワークスイッチ612は、コンピュータクラスタ601とフィールドデバイス631との間でメッセージをルーティングまたは転送するように構成された任意の好適なネットワークスイッチであり得る。ある場合には、I/Oカード614のうちの1つ以上は、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カード(これは例えば、典型的または既知のレールバスカードまたはEmerson CHARM I/Oカードであり得る)との両方は、「非アクティブな」カードを「アクティブな」カードとして引き継ぎ、論理I/OサーバからI/Oデータの受信を開始するために、論理I/Oサーバに物理的に接続する必要があることである。マイクロコンテナの例としては、「ジェイル」と呼ばれる非常に軽量なコンテナ化技術があり、これは、オペレーティングシステムがマイクロサービスをサンドボックス環境に分離する、業界全体で知られている技術用語である。
ある場合には、ネットワークスイッチ612はコンテナ化され得る。コンテナは、スイッチ612によって依存される論理を含み得る。この論理は、フィールドデバイス、I/Oカード(またはI/Oカードコンテナ)、および/またはコントローラサービスのアドレスへのルートを含むルーティング表が含み得る。論理は、そのようなアドレスをスイッチのポートにマッピングする転送表を含み得る(例えば、アドレスに到達するためのルートを知っているかどうかに関係なく)。スイッチの論理をコンテナ化することによって、ネットワークスイッチ612は、任意の所望の好適なハードウェアでインスタンス化され得、(例えば、ネットワークスイッチ612の物理デバイスが交換された場合に)スイッチハードウェアを、任意の所望のスイッチ/ルーティング動作のために迅速に構成および再構成することができる。
実施形態では、任意の好適なコンテナ、マイクロコンテナ、またはI/Oをコンピュータクラスタ601に割り当てることができ、リソースの利用可能性に応じてサーバ602またはサーバ604のいずれかに動的に割り当て、インスタンス化することができる。この動的な負荷分散およびリソース割り当てにより、制御システムは、機能を損失することなく、処理負荷、リソースの可用性、ネットワークの制約などの変化に迅速に対応することができる。
明示的に示されていないが、I/Oサブシステム500は、フィールドデバイス(531、532、581、582)とI/Oサーバサービス511aおよび/または561aとの間の仲介者となる物理I/Oカードおよび/または1つ以上のネットワークスイッチ(例えば、図16に示すものと同様)を含み得ることに留意されたい。
実施形態では、物理または論理資産がシステムに接続されると、I/Oサーバサービス505は、これらの資産が発見サービスによって発見されるとすぐに、これらの資産を自動的に解決し、委託する。例えば、フィールドデバイスは、そのフィールドデバイスに一意のフィールドデバイス識別子を有し得、制御システムは、フィールドデバイスの一意のアイデンティティに基づいて、フィールドデバイスを1つ以上の変数タグ(例えば、フィールドデバイスが受信するように構成されたコマンドを表す、および/またはフィールドデバイスが送信するように構成されたパラメータを表す)にリンクするように構成され得る。この一意の識別子を使用して、フィールドデバイスを切断して制御システムに再接続してもよく、制御システムは、どのハードウェアがコントローラサービスをインスタンス化して実装したか、およびそのハードウェアが地理的にどこに位置しているかにかかわらず、フィールドデバイスとフィールドデバイスに依存するコントローラサービスとの間の通信を自動的にルーティングすることができる。同様に、各コンテナは、どの特定のハードウェアがコンテナをインスタンス化したかに関係なく、またそのハードウェアが地理的にどこにあるかに関係なく、適切なコンテナ/サービス間のルーティングを可能にする一意の識別子を有し得る。
図18は、図15~図17に示されるものなどのI/Oサーバサービスを実施するための方法800のフローチャートである。方法800は、全体的または部分的に、図1および図2に示されるSDCS 100/200および/またはI/Oゲートウェイ40によって、より具体的には、図15~図17に示されるI/Oサーバサービス511/61によって実施され得る。したがって、方法800は、1つ以上の命令またはルーチンとしてメモリに(例えば、図17に示されるメモリ704に)保存され得る。説明を容易にするために、図18の説明は、方法1800を実装するものとしてシステム15のサービス511aに言及している。
方法800は、フィールドデバイスまたはプロセス出力542aおよび542bのセットがI/Oサーバサービス511aによって受信されるとき、ステップ805で開始する。例えば、I/Oサーバサービス511aは、フィールドデバイス532から、変数FT002について毎分10ガロン(gpm)の測定された流量を受信し得る。
ステップ810において、I/Oサーバサービス511aは、I/Oチャネル542aおよび542bを介して受信されたプロセス出力の受信されたセットに各々対応する複数のコントローラ入力のセット(例えば、I/Oチャネル543を介して保持される)を生成し、これにより、コントローラ入力のセットの各々が、複数のコントローラ入力のセット内の他のすべてのセットと同じ値のセットを保持するようにする。最後の例を参照し続けると、コントローラ入力の各セットは、同じ値(例えば、10gpm)で同じFT002パラメータを保持し得る。例示すると、I/Oサーバサービス511aは、プロセス出力のセットからコントローラ入力の第1のセットを生成し得る(例えば、チャネル543aは、コントローラサービス521aの第1のコントローラ入力であり得、パラメータFT002を表し得、10gpmという値を運び得る)。同様に、I/Oサーバサービス511aは、プロセス出力のセットからコントローラ入力の第2のセットを生成し得る(例えば、チャネル543bは、コントローラサービス521bの第2のコントローラ入力を表し得、同様にパラメータFT002を表し得、同じ値10gpmを保持し得る)。
ステップ815において、I/Oサーバサービス511aは、コントローラ入力の各セット(例えば、セット543a~c)を、複数のコントローラサービス521a~cのうちの異なる1つに送信する。図15に示すように、各コントローラサービス521a~cは、同じコントローラルーチン#1の異なるインスタンス(インスタンス525a~cを含む)を実装する。制御ルーチンは各々、同じルーチンのインスタンスであるため、それらはすべて、同じコントローラ入力のセットの同じ値のセットに基づいて、フィールドデバイス531および532を介してプロセスプラント10の同じ部分501を制御するために、同じコントローラ出力のセット(例えば、同じコマンド変数のセット)を生成するように構成される。任意の数のコンテナ化されたコントローラサービスが存在する可能性があり、コントローラ入力のセット(各々が同じパラメータと値を保持する)が各々、コンテナ化されたコントローラサービスをf9dする可能性があることに留意されたい。
ステップ820において、I/Oサーバサービス511aは、複数のコントローラサービス521a~cのうちの異なる1つから、各セットがI/Oチャネル544a~cを介して複数のコントローラ出力のセットを受信する。
ステップ825において、I/Oサーバサービス511aは、I/Oチャネル544a~cおよび/またはセットに関連付けられているメタデータ(例えば、遅延情報)を介して受信されたコントローラ出力の複数のセットを分析する。具体的には、各セットのQoSメトリックを分析することができ、最良のQoSメトリックを有するセットを識別することができる。QoSメトリックは、遅延、精度など、コンテナ化されたコントローラサービスによって提供されるサービス品質を分析するための任意の所望のメトリックであり得る。
ステップ830において、I/Oサーバサービス511aは、分析に基づいてコントローラ出力のアクティブなセットを選択する。実施形態では、I/Oサーバサービス511aは、分析に基づいてコントローラ出力のアクティブセットをアクティブ化する。例えば、サービス511aは、各コンテナ515a~cに関連付けられているQoSメトリックに基づいて、セット544cをアクティブ化し得る。サービス511aは、例えば、遅延が最も短いコンテナまたはコントローラサービスを選択し得る。実施形態では、サービスは、ある種のコンセンサスが形成された後、所与のコンテナ、サーバ、またはチャネルをアクティブ化する。例えば、それは、第2のコンテナがコントローラ出力544a~cのセットに対して同じ値を提供する第1のコンテナ、サーバ、またはチャネルをアクティブ化し得る。例では、サービス511aは、「n」からの最良の投票スキームを使用して、コンテナ/コントローラサービス/チャネルをアクティブ化する。実施形態では、オーケストレータサービスなどの別のサービスが、サービス511aの代わりにステップ830を遂行する。
ある場合には、I/Oサーバサービス511aは、コントローラ出力544a~cのうちのいずれか1つ以上のステータスを確認し得る(例えば、アクティブなコンテナを選択する前または後)。例えば、サービス511aは、出力が最近更新され、古くなっていないことを検証し得る。これは、少なくとも部分的に、出力の少なくとも1つのセット544a~cを別のセット544a~cとクロスチェックすることによって行ってもよい。
ステップ835において、I/Oサーバサービス511aは、コントローラ出力のアクティブなセット(例えば、バルブを開くかまたは閉じるかのコマンドを含む)をフィールドデバイス531に送信して、工業プロセスのプロセス出力(例えば、操作されたバルブの状態に依存する流量)を駆動して、それによって、工業プロセスの特定の部分501を制御する。
I/Oサーバサービス511aは、コントローラ入力または出力をフィールドデバイスからコントローラサービスに(またはその逆に)中継する前に、任意の好適な方式でコントローラ入力またはコントローラ出力を保持する信号を調整し得る。I/Oサーバサービス511aは、アナログ調整技術および/またはデジタル信号調整技術を実装し得る。I/Oサーバサービス511aによって実装され得る例示的なアナログ信号調整技術は、フィルタリング、増幅、スケーリング、および線形化技術を含む。I/Oサーバサービス511aによって実装され得る例示的なデジタル調整技術は、単位変換、列挙、符号化、および信号へのステータス値の追加または編集を含む。特性化または線形化機能は、アナログまたはデジタル調整中にI/Oサーバサービス511aによって実装され得る。
図19は、図15~図17に示されるもののうちの1つなどの、コンテナ化されたコントローラサービス(または対応するI/Oチャネル)間を評価および移行するための方法900のフローチャートである。方法900は、全体的または部分的に、図1および図2に示されるSDCS 100/200および/またはI/Oゲートウェイ40によって、より具体的には、図15~図17に示されるI/Oサーバサービス511/61によって実施され得る。したがって、方法900は、1つ以上の命令またはルーチンとしてメモリに(例えば、図17に示されるメモリ704に)保存され得る。説明を容易にするために、図19の説明は、方法1900を実装するものとしてシステム15のサービス511aに言及している。
ステップ905において、I/Oサーバサービス511aは、複数のI/Oチャネル544a~cを介してプロセス制御トラフィックを受信する。
ステップ910において、I/Oサーバサービス511aは、アクティブである第1のI/Oチャネル(例えば、544c)を識別する。図5に示すように、サービス521cおよびI/Oチャネル544cはアクティブであり、サービス521a/bおよびI/Oチャネル544a/bは非アクティブである。実施形態では、I/Oサーバサービス511aは、アクティブサービス544cをアクティブ化する。
ステップ915において、I/Oサーバサービス511aは、アクティブI/Oチャネル544cからのプロセス制御トラフィックを使用して、1つ以上のフィールドデバイスを制御する。例えば、方法800の説明と一致して、サービス511aは、受信した制御トラフィック(例えば、コントローラ出力またはコマンドを含む)をI/Oチャネル540を介してフィールドデバイスに渡し得る。
ステップ920において、I/Oサーバサービス511aは、コントローラサービスからの各I/Oチャネル544a~cのQoSメトリックを評価する。すでに述べたように、QoSメトリックは、遅延、精度など、コンテナ化されたコントローラサービスによって提供されるサービス品質を分析するための任意の望ましいメトリックであり得る。
ステップ925において、I/Oサーバサービス511aは、最高または最良のQoSメトリックが非アクティブなチャネルに対応するかどうかを判定する。そうでない場合(すなわち、それが現在アクティブなI/Oチャネルまたはコントローラコンテナに対応する場合)、I/Oサーバサービス511aは、現在アクティブなI/Oチャネルを維持し(ステップ930)、ステップ910に戻る。あるいは、最高または最良のQoSメトリックがアクティブなチャネルに対応する場合、I/Oサーバサービス511aは、ステップ935において、最高または最良のQoSを有する非アクティブなチャネルをアクティブなI/Oチャネルとして指定し得る。次に、I/Oサーバサービス511aは、ステップ910に戻る。
一実施形態では、各コントローラサービスは、各制御ルーチンが制御ルーチンの実行プロセスでどこにあるかを追跡する。例えば、制御ルーチンをフェーズまたはステージに分割して、コントローラサービス間の移行のために制御ルーチンを同期させることが可能であり得る。実施形態では、コントローラサービスは、ロックステップまたは相対ロックステップで実行される。例えば、各コントローラサービスは、特定のステージまたはフェーズの実行後に停止し、他のコントローラサービス(またはコンテナサービスの閾値数)が同じ所与のステージの実行を終了するまで待機してから、制御ルーチンの次の状態またはフェーズを開始する場合がある。この「ロックステップ」の実行は、プロセスの安全性が懸念される状況で役立つ場合がある。
上述したように、図2を参照すると、SDネットワークサービス220は、ノード208にわたってSDネットワーキングサービス220によって実装され得る論理プロセス制御システム245によって利用される論理または仮想ネットワーキングを運営および管理し得る。SDネットワークサービス220は、仮想ルータ、仮想ファイアウォール、仮想スイッチ、仮想インターフェース、仮想データダイオードなどのネットワークアプライアンスのインスタンス、およびパケット検査サービス、アクセス制御サービス、承認サービス、認証サービス、暗号化サービス、認証局サービス、鍵管理サービスなどのネットワークサービスのインスタンスをSDCS 200に展開し、管理し得る。ネットワークサービスは、サービスまたはマイクロサービスとして実装され得る。
さらに、SDネットワークサービス220は、他のタイプのサービスを実行する他のコンテナ内に、セキュリティアプライアンス/サービスを実行するコンテナをネストし得る。例えば、SDネットワークサービス220は、制御機能に関連するセキュリティサービスを遂行するために、制御コンテナ内にセキュリティコンテナをネストし得る。SDネットワークサービス220はまた、セキュリティアプライアンス/サービスを実行する他のコンテナ内にセキュリティアプライアンス/サービスを実行するコンテナをネストし得る。例えば、SDネットワークサービス220は、ファイアウォールコンテナおよびスマートスイッチコンテナをルータコンテナ内にネストし得る。
さらに、SDネットワークサービス220は、SDCS 200内でセキュリティアプライアンス/サービスを実行するコンテナのN個の冗長インスタンスを展開し得る。例えば、SDネットワークサービス220は、入ってくるデータパケットを受信して出ていくデータパケットを送信するためのファイアウォールコンテナの第1のインスタンス、および入ってくるデータパケットを受信して出ていくデータパケットを送信するためのファイアウォールコンテナの第2のインスタンスを展開し得る。SDネットワークサービス220は、ファイアウォールコンテナの第1のインスタンスと第2のインスタンスとの両方を展開して、同じソース(例えば、制御サービス)からの入ってくるデータパケットを受信し得る。しかしながら、ファイアウォールコンテナの第1のインスタンスは、出ていくデータパケットをSDCS 200の外部のリモートシステムに送信し得るが、SDネットワークサービス220は、出ていくデータパケットをリモートシステムに送信するようにファイアウォールの第2のインスタンスを構成しない。代わりに、SDネットワークサービス220は、ファイアウォールの第2のインスタンスを構成して、出ていくデータパケットをSDCS 200内の監視システムに送信するか、また入ってくるデータパケットがどのように処理されたかの指示をSDCS 200内の監視システムに送信し得る。このようにして、SDネットワークサービス220は、ファイアウォール機能が適切に遂行されているかどうかを監視し得る。
図20は、ネットワークセキュリティに関連する例示的なコンテナ、サービス、および/またはサブシステムのブロック図を示している。図20に示すように、SDCSは、図2に図示されるようなSDネットワークサービス220と同様に、ネットワークサービス1002を実行するコンテナを含む。ネットワークサービス1002は、ルータコンテナ1004の第1のインスタンスおよびルータコンテナ1006の第2のインスタンスを展開および管理する。第1のルータコンテナ1004は、第1のセキュリティサービス1008を実行し、第2のルータコンテナ1006は、第2のセキュリティサービス1010を実行する。ネットワークサービス1002は、第1のルータコンテナ1004を展開して、第1のタンクコンテナ1014および第1の制御コンテナ1016を有する第1のユニットコンテナ1012に接続し得る。ネットワークサービス1002はまた、第1のルータコンテナ1004を展開して、第1のI/Oサーバコンテナ1018に接続し得る。このようにして、第1のルータコンテナ1004は、第1のユニットコンテナ1012と第1のI/Oサーバコンテナ1018との間の通信を促進し得る。第1のセキュリティサービス1008は、第1のユニットコンテナ1012と第1のI/Oサーバコンテナ1018との間の通信をルーティングするためのセキュリティルールの第1のセットを含み得る。
ネットワークサービス1002は、第2のルータコンテナ1006を展開して、第1のミキサーコンテナ1022と第2の制御コンテナ1024とを有する第2のユニットコンテナ1020に接続し得る。ネットワークサービス1002はまた、第2のルータコンテナ1006を展開して、第2のI/Oサーバコンテナ1026に接続し得る。このようにして、第2のルータコンテナ1006は、第1のユニットコンテナ1020と第2のI/Oサーバコンテナ1026との間の通信を促進し得る。第2のセキュリティサービス1010は、第2のユニットコンテナ1020と第2のI/Oサーバコンテナ1026との間の通信をルーティングするための第2のセキュリティルールのセットを含み得る。
SDCSはまた、認証局サービス1028を実行するコンテナも含み得る。さらに、SDCSは、プロセスプラント10の稼働時間の間に利用されて、フィールドデバイス、コントローラ、プロセス制御デバイス、I/Oデバイス、計算ノード、コンテナ、サービス(例えば、制御サービス)、マイクロサービスなどの工業プロセスのうちの少なくとも一部分を制御し得る、プロセスプラント10の物理または論理資産を含み得る。物理または論理資産は、SDCSで通信する際にその真正性を証明するために、公開鍵基盤(PKI)証明書などのデジタル証明書を認証局サービス1028に要求し得る。物理または論理資産が証明書を要求すると、認証局サービス1028は、物理または論理資産の識別情報を取得し、識別情報に基づいて物理または論理資産のアイデンティティを検証する。次に、認証局サービス1028は、物理または論理資産の暗号化公開鍵または他の識別子、認証局サービス1028の識別子、および認証局サービス1028によって証明書が生成されたことを証明するための認証局サービス1028のデジタル署名を含み得る物理または論理資産のための証明書を生成する。認証局サービス1028は、SDCS内の他のノードまたはサービスと通信するときに認証目的で証明書を使用できる物理または論理資産に証明書を提供する。いくつかの実装形態では、他のサービスは、証明書に含まれる物理または論理資産の暗号化公開鍵を使用して、物理または論理資産との通信を暗号化し得る。
また、いくつかの実装形態では、SDCS内のユーザは、認証局サービス1028(プラントオペレータ、構成エンジニア、および/または工業プロセスプラント10に関連する他の人員など)にデジタル証明書を要求し得る。ユーザがデジタル証明書を要求するとき、ユーザは、ユーザの名前、住所、電話番号、工業プロセスプラント10内の役割、ユーザ名およびパスワードなどの識別情報を提供し得る。認証局サービス1028は、例えば、ユーザから取得した識別情報を他のソースから取得したユーザの識別情報と比較することによって、ユーザのアイデンティティを検証し得る。認証局サービス1028がユーザを検証することができる場合、認証局サービス1028は、デジタル証明書を生成し、ユーザに提供する。このようにして、ユーザはSDCS内のノードまたはサービスにアクセスするためのデジタル証明書を提供し得、ログイン情報を入力する必要はない。いくつかの実装形態では、認証局サービス1028は、証明書にユーザの承認情報を含めてもよい。SDCSは、工業プロセスプラント10内でのユーザの役割に基づいて、ユーザに承認レベルを割り当て得る。次に、認証局サービス1028は、工業プロセスプラント10内の異なる承認レベルおよび/または役割のために異なるタイプの証明書を生成し得る。このようにして、ユーザがアクセスしようとするノードまたはサービスは、ユーザが提供する証明書のタイプに基づいて、工業プロセスプラント10内でのユーザの承認レベルおよび/または役割を判定し得る。次に、ノードまたはサービスは、工業プロセスプラント10内でのユーザの承認レベルおよび/または役割に基づいて、ユーザがノードまたはサービスにアクセスすることを承認されているかどうかを判定し得る。いくつかの実装形態では、ユーザは、ユーザの承認レベルおよび/または工業プロセスプラント10内の役割に基づいて、ノードまたはサービスに部分的にアクセスし得る。したがって、ノードまたはサービスは、ノードまたはサービスのいくつかの部分へのアクセスをユーザに提供し、ユーザがノードまたはサービスの他の部分にアクセスすることを防止し得る。
いくつかの実装形態では、ユーザは、デジタル証明書によって保護されている役割によって定義され得る。例えば、プロセスマネージャの役割は、デジタル証明書の第2のセットを有する第2の承認レベルに対応するオペレータの役割とは異なる、デジタル証明書の第1のセットを有する第1の許可レベルに対応し得る。
セキュリティサービス1008、1010は、図20の制御サービスとI/Oサービスとの間の通信を促進するルータコンテナ1004、1006に含まれているが、これは単なる一例の実装形態である。追加的または代替的に、セキュリティサービスは、制御サービス、I/Oサービスなどの他のタイプのサービスを実行するコンテナにネストし得る。図21は、図20のSDCSの追加または代替の実装のブロック図を示している。図21に示すように、第1および第2のルータコンテナ1004、1006内にそれぞれ第1のセキュリティサービス1008および第2セキュリティサービス1010を展開することに加えて、ネットワークサービス1002は、第1の制御コンテナ1116内で実行するコンテナ(セキュリティコンテナ)内に第3のセキュリティサービス1102を、第2の制御コンテナ1124内で実行するコンテナ(セキュリティコンテナ)内に第4のセキュリティサービス1104を展開している。第3のセキュリティコンテナ1102は、セキュリティルールのセットなどのセキュリティ条件を定義するコンテンツを有し得る。さらに、第4のセキュリティコンテナ1104はまた、第3のセキュリティコンテナ1102のコンテンツと同じまたは異なることがあるセキュリティルールのセットなどのセキュリティ条件を定義するコンテンツを有し得る。コンテンツはまた、制御履歴およびストレージなどの対応する制御コンテナの制御戦略も含み得る。
このようにして、第3のセキュリティサービス1102は、ルータコンテナに接続された他のサービスまたはノードに必ずしも適用されない第1の制御コンテナ1116に固有のセキュリティルールの第3のセットを含み得る。さらに、第3のセキュリティサービス1102は、通信ネットワークを介して送信される前に、第1の制御コンテナ1116によって生成されたデータを暗号化し得る。これにより、データがルータコンテナに到達する前に、セキュリティの追加層が提供され得る。セキュリティサービス1102および1104は、図21の制御コンテナにネストされているが、セキュリティサービスは、I/Oサーバコンテナ、オペレータワークステーションコンテナなどの任意の好適なコンテナにネストされ得る。
図22は、図20の第1のルータコンテナ1004の詳細なブロック図を示している。ルータコンテナは、ルータコンテナ内にネストされたセキュリティアプライアンスまたはサービスを含み得る。さらに、各セキュリティアプライアンスまたはサービスは、その中にネストされた追加のサービスを含み得る。ルータコンテナは、第1のセキュリティサービス1204を実行する第1のファイアウォールコンテナ1202と、第2のセキュリティサービス1208を実行する第1のデータダイオードコンテナ1206と、第3のセキュリティサービス1212を実行する第1のスマートスイッチコンテナ1210と、パケット検査サービス1214と、を含み得る。
第1のセキュリティサービス1204は、他の接続タイプまたはポートを防止しながら、所定のノードまたはサービスによってデータを送信/受信することを可能にする許可リストまたは受け入れリストなど、第1のファイアウォールコンテナ1202のためのセキュリティルールの第1のセットを含み得る。セキュリティルールの第1のセットは、承認されたトラフィックが第1のルータコンテナ1004から送信されることのみを許可し得る。例えば、第1のセキュリティサービス1204は、外部ソースからプロセスプラント10へのデータが制御コンテナに送信されるのを防止し得る。
第2のセキュリティサービス1208は、データトラフィックがSDCSからリモートシステムに出入りすることを可能にし得、データトラフィック(例えば、リモートシステムまたは他のシステムから送信または送信されるデータ)がSDCSに入るのを防止し得る。したがって、第2のセキュリティサービス1208は、例えば、仮想出力ポートにおいて(例えば、リモートシステムから)受信した(例えばリモートシステムからの)任意のメッセージをドロップまたはブロックすることによって、および/または仮想入力ポートに宛てられた(例えばリモートシステムからSDCS内のノードまたはサービスに宛てられた)任意のメッセージをドロップまたはブロックすることによって、ソフトウェアを介して、仮想入力ポートから仮想出力ポートへの一方向データフローのみをサポートする。第2のセキュリティサービス1208はまた、SDCSからリモートシステムに送信されるデータを暗号化することもできる。
第3のセキュリティサービス1208は、データパケットを受信することを目的としたノードまたはサービスのネットワークアドレスを判定し得、ネットワークアドレスを介してノードまたはサービスにデータパケットを送信し得る。例えば、制御コンテナがルータコンテナを介してI/Oサーバコンテナにデータを送信する場合、第3のセキュリティサービス1208は、I/Oサーバコンテナのネットワークアドレスを識別し、このネットワークアドレスを介してデータをI/Oサーバコンテナに送信する。第3のセキュリティサービス1208は、ルータコンテナに接続されたノードまたはサービスの各々にネットワークアドレスを割り当て、データパケットを受信することを目的としたノードまたはサービスに割り当てられたネットワークアドレスを判定し得る。
パケット検査サービス1214は、パケットがルータコンテナを流れるときにパケットの内容を検査することによって、ルータコンテナを流れるネットワークデータのパターンを識別し得る。次に、パケット検査サービス1214は、既知のトラフィックパターンを使用して、特定のサービスまたはノードが異常な動作を経験しているかどうかを判定し得る。次に、パケット検査サービス1214は、サービスまたはノードを疑わしいものとして識別し、アクションのためにそれらをユーザにフラグを立て得る。パケット検査サービス1214はまた、異常な動作の考えられる原因を判定するために診断アクションを遂行することもできる。図22のルータコンテナは、第1のファイアウォールコンテナ1202と、第1のデータダイオードコンテナ1206と、第1のスマートスイッチコンテナ1210と、パケット検査サービス1214と、を含むが、これは、例示を容易にするための単なる一例の実装形態である。ルータコンテナは、任意の好適なセキュリティアプライアンスおよび/またはサービスを含み得る。
いくつかの実装形態では、ネットワークサービスは、SDCS内で実行される各制御サービスとともにファイアウォールサービスを展開し得る。ファイアウォールサービスは、対応する制御サービスを実行するコンテナにネストされたコンテナ内で実行され得る。他の実装形態では、ファイアウォールサービスは、対応する制御サービスに割り当てられたスタンドアロンコンテナ内で実行され得る。図23に示すように、ネットワークサービスは、第1のファイアウォールコンテナ1302を展開して、第1の制御コンテナ1304との間のネットワークトラフィックを管理し、第2のファイアウォールコンテナ1308を展開して、第2の制御コンテナ1310との間のネットワークトラフィックを管理する。SDストレージサービス218によって管理され得る制御構成データベース1306は、第1の制御コンテナ1304に第1の制御構成を提供し得る。制御構成データベース1306はまた、割り当てられた第1の制御コンテナ1304の第1のファイアウォールコンテナ1302にカスタマイズされたファイアウォールルールの第1のセットも提供し得る。さらに、制御構成データベース1306は、第2の制御コンテナ1310に第2の制御構成を提供し得る。制御構成データベース1306は、割り当てられた第2の制御コンテナ1310のために第2のファイアウォールコンテナ1308にカスタマイズされたファイアウォールルールの第2のセットを提供し得る。他の実装形態では、制御構成サービスは、制御構成データベース1306と通信して、制御コンテナ1304、1310に制御構成を提供し、ファイアウォールコンテナ1302、1308にカスタマイズされたファイアウォールルールを提供する。
例えば、カスタマイズされたファイアウォールルールの第1のセットは、第1の制御コンテナ1304がデータを受信して第1のI/Oサーバに送信することを許可するが、第1の制御コンテナ1304が任意の他のノードまたはサービスにデータを受信または送信することは許可しない許可リストまたは受け入れリストを含み得る。別の例では、カスタマイズされたファイアウォールルールの第1のセットは、第1の制御コンテナ1304がSDCSの外部のリモートシステムの特定のネットワークアドレスにデータを送信および受信することを可能にする許可リストまたは受け入れリストを含み得る。さらに別の例では、カスタマイズされたファイアウォールルールの第1のセットは、第1の制御コンテナ1304からのデータにアクセスすることを許可されたサービスまたはノードの許可リストまたは受け入れリストを含み、許可リストまたは受け入れリストに含まれないサービスまたはノードが制御コンテナからデータにアクセスするのを防止し得る。カスタマイズされたファイアウォールルールは、ファイアウォールコンテナ1302、1308が、制御コンテナ1304、1310の構成に対する将来の変更に基づいて、制御構成サービスから異なるファイアウォールルールを受信する可能性があるという点で動的であり得る。
上述したように、本明細書に記載されるセキュリティサービスは、パケット検査サービス、アクセス制御サービス、承認サービス、認証サービス、暗号化サービス、認証局サービス、鍵管理サービスなどを含み得る。図24は、図21に図示される構成と同様の、制御コンテナ1402内にネストされたセキュリティコンテナ1404の詳細ブロック図を示している。セキュリティコンテナ1404は、暗号化サービス1406、認証サービス1408、および承認サービス1410を含み得る。このようにして、セキュリティコンテナ1404は、制御コンテナ1402によって送信されるデータを暗号化し得る。セキュリティコンテナ1404はまた、制御コンテナ1402にアクセスしようとする物理もしくは論理資産またはユーザを認証および/または承認することもできる。
例えば、物理もしくは論理資産またはユーザが制御コンテナ1402にアクセスしようとすると、認証サービス1408は、制御コンテナ1402にアクセスしようとしている物理もしくは論理資産またはユーザの真正性を検証し得る。例えば、認証サービス1408は、認証局によって発行されたデジタル証明書を物理もしくは論理資産またはユーザから取得して、物理もしくは論理資産またはユーザの真正性を検証することができる。デジタル証明書は、物理または論理資産の暗号化公開鍵またはその他の識別子、認証局サービスの識別子、および認証局サービスによって証明書が生成されたことを証明する認証局サービスのデジタル署名を含み得る。いくつかの実装形態では、認証サービス1408は、認証局サービスの識別子、および認証局サービスのデジタル署名を分析して、証明書が認証局サービスによって生成されたかどうかを判定する。他の実装形態では、認証サービス1408は、デジタル証明書をSDCS内の認証局サービスに送信して、証明書が認証局サービスによって生成されたかどうかを判定する。
認証サービス1408が物理もしくは論理資産またはユーザの真正性を検証することができる場合、承認サービス1410は、物理もしくは論理資産またはユーザの認証レベルを判定し得る。一方、認証サービス1408が物理もしくは論理資産またはユーザの真正性を検証できない場合、認証サービス1408は、制御コンテナ1402へのアクセスを拒否し得る。
いずれにせよ、認証サービス1410は、物理もしくは論理資産またはユーザの認証レベルに基づいて、物理もしくは論理資産またはユーザが制御コンテナ1402にアクセスすることを承認されているかどうかを判定する。物理もしくは論理資産またはユーザが、制御コンテナ1402にアクセスするための最小認証レベルを満たすかまたは超える認証レベルを有する場合、承認サービス1410は、物理もしくは論理資産またはユーザが制御コンテナ1402にアクセスすることを承認されていると判定する。そうでなければ、承認サービス1410は、制御コンテナ1402へのアクセスを拒否し得る。
いくつかの実装形態では、物理もしくは論理資産またはユーザの承認レベルが証明書に含まれる。異なるタイプの証明書は、工業プロセスプラント10内の異なる承認レベルおよび/または役割を示し得る。したがって、承認サービス1410は、証明書に基づいて、物理もしくは論理資産またはユーザの承認レベルを判定し得る。他の実装形態では、承認サービス1410は、論理ストレージリソースから物理もしくは論理資産またはユーザの事前に記憶された承認レベルを取得し、事前に記憶された承認レベルに基づいて、物理または論理資産の承認レベルを判定する。いくつかの実装形態では、物理もしくは論理資産またはユーザは、承認レベルに基づいて、制御コンテナ1402に部分的にアクセスし得る。したがって、制御コンテナ1402は、物理もしくは論理資産またはユーザに制御コンテナ1402のいくつかの部分へのアクセスを提供し、物理もしくは論理資産またはユーザが制御コンテナ1402の他の部分にアクセスすることを防止し得る。
いずれにせよ、物理もしくは論理資産またはユーザの認証および承認に応答して、暗号化サービス1406は、証明書に含まれる暗号化公開鍵を使用して、制御コンテナ1402から物理もしくは論理資産またはユーザへのデータを暗号化し得る。次に、物理もしくは論理資産またはユーザは、暗号化公開鍵とペアになっている暗号化秘密鍵を使用してデータを復号し得る。物理もしくは論理資産またはユーザが暗号化公開鍵とペアになっている暗号化秘密鍵を有していない場合、物理もしくは論理資産またはユーザはデータを復号化できず、これは別の形式の認証である。
アクセス制御サービスは、上述した承認または認証サービスのほか、許可リストまたは受け入れリスト、および/または、所定のノードまたはサービスによってデータが受信/送信されることを許可し、他のノードまたはサービスによるプロセス制御ネットワーク内のデータの受信または送信を防止する他のサービスを含み得る。鍵管理サービスは、プロセスプラント10内の各物理または論理資産に関連付けられている暗号化公開鍵の記録を記憶し、かつ/またはこれにアクセスし得る。他の実装形態では、鍵管理サービスは、さらに後述するように、検出されたアイテムデータストアから暗号化公開鍵の記録を検索する。次に、物理または論理資産を認証する必要がある場合、物理または論理資産はその暗号化公開鍵を認証サービスに提供する。認証サービスは、鍵管理サービスを呼び出して、検出されたアイテムデータストアから記録を検索し、物理または論理資産に提供された暗号化公開鍵が、検出されたアイテムデータストアに含まれる暗号化公開鍵と一致するかどうかを判定する。
鍵管理サービスはまた、プロセスプラント10内の物理または論理資産のための暗号化秘密鍵および/またはPSKを記憶し得る。さらに、鍵管理サービスは、物理または論理資産の証明書をプロセスプラント10に記憶し得る。鍵管理サービスは、ユーザまたは物理もしくは論理資産が、そのそれぞれの鍵または証明書にアクセスする前に自身を認証しなければならないように、鍵および証明書をパスワードで保護し、かつ/または暗号化し得る。
図22の例示的なルータコンテナでは、ルータコンテナは、SDCS内のノードまたはサービス間の通信、またはSDCS内のノードまたはサービスとSDCSの外部のリモートシステムとの間の通信を促進し得る。図25は、SDCS内のノードまたはサービスとSDCSの外部のリモートシステムとの間の通信を促進するための例示的なルータコンテナ1502のブロック図を示している。ルータコンテナ1502は、第1の暗号化サービス1506を実行するフィールドゲートウェイコンテナ1504と、第2の暗号化サービス1510を実行するデータダイオードコンテナ1508と、ファイアウォールサービス1514および認証サービス1516を実行するエッジゲートウェイコンテナ1512と、を含み得る。
フィールドゲートウェイコンテナ1504は、プロセスプラントのフィールド環境12内のノードまたはサービス、例えば、プロセス制御デバイス、フィールドデバイス、制御サービスなどと通信し得る。例えば、フィールドゲートウェイコンテナ1504は、プロセスプラントのフィールド環境12のノードまたはサービスからのトラフィックのみを許可するファイアウォールを備えたファイアウォールサービスルールを含み得る。フィールドゲートウェイコンテナ1504はまた、第1の暗号化サービス1506を実行して、プロセスプラントのフィールド環境12からのデータを暗号化し得る。次に、フィールドゲートウェイコンテナ1504は、データをデータダイオードコンテナ1508に送信し得る。
データダイオードコンテナ1508は、データトラフィックがフィールドゲートウェイコンテナ1504からリモートシステムに出ることを許可し、データトラフィック(例えば、これはリモートシステムまたは他のシステムから送信または送信される)がフィールドゲートウェイコンテナ1504に入るのを防止し得る。したがって、データダイオードコンテナ1508は、例えば、エッジゲートウェイコンテナ1512において(例えば、リモートシステムから)受信されたメッセージをドロップまたはブロックすることによって、および/またはフィールドゲートウェイコンテナ1504に宛てられた(例えば、リモートシステムからSDCS内のノードまたはサービスに宛てられた)メッセージをドロップまたはブロックすることによって、ソフトウェアを介して、フィールドゲートウェイコンテナ1504からエッジゲートウェイコンテナ1512への一方向データフローのみをサポートする。第2の暗号化サービス1510はまた、第1の暗号化サービス1506に加えて、またはその代わりに、フィールドゲートウェイコンテナ1504からのデータを暗号化し得る。次に、データダイオードコンテナ1508は、暗号化されたデータをエッジゲートウェイコンテナ1512に送信し得る。
いくつかの実装形態では、インスタンス化中に、データダイオードコンテナ1508は、データグラムトランスポート層セキュリティ(DTLS)または他のメッセージ指向のセキュリティプロトコルにおけるものなどの、暗号化接続を適切に確立するために、データダイオードコンテナ1508を介してプロセスプラント10へ/から出入りするデータを送信するエンティティ(例えば、フィールドゲートウェイコンテナ1504およびエッジゲートウェイコンテナ1512)間で一時的にハンドシェイク(例えば、証明書および事前共有鍵の交換)を許可し得る。DTLSハンドシェイクが完了すると、接続が確立され、その時点から、データダイオードコンテナ1508は、例えば、フィールドゲートウェイコンテナ1504からエッジゲートウェイコンテナ1512への、データダイオードコンテナ1508の残りの期間の間の一方向データフローのみをサポートする。データダイオードコンテナ1508の入力端および出力端のエンティティ間に接続の問題がある場合、データダイオードコンテナ1508は、DTLSハンドシェイクが再び行われることを可能にするために再起動する必要があり得る。
エッジゲートウェイコンテナ1512は、プロセスプラント10の外部のリモートシステムと通信し得る。エッジゲートウェイコンテナ1512は、所定のリモートシステムからのトラフィックのみを可能にするファイアウォールルールを備えたファイアウォールサービス1514を含み得る。エッジゲートウェイコンテナ1512はまた、認証サービスを実行して、エッジゲートウェイコンテナ1512と通信するリモートシステムを認証し得る。例えば、エッジゲートウェイコンテナ1512からリモートシステムに配信されるトラフィックは、SAS(共有アクセス署名)トークンを介して保護され得、これは、リモートシステム210において提供されるトークンサービスを通じて管理され得る。エッジゲートウェイコンテナ1512は、トークンサービスを認証し、SASトークンを要求し、これは、限られた期間、例えば、2分、5分、30分、1時間以内などにのみ有効であり得る。エッジゲートウェイコンテナ1512は、SASトークンを受信して使用し、コンテンツデータがエッジゲートウェイコンテナ1512からリモートシステムに送信されることを介して、リモートシステムへのAMQP(Advanced Message Queuing Protocol)接続を保護および認証する。追加的にまたは代替的に、エッジゲートウェイコンテナ1512とリモートシステム210との間を通過するデータを保護するための他のセキュリティメカニズム、例えば、X.509証明書、他のタイプのトークン、MQTT(MQ Telemetry Transport)またはXMPP(Extensible Messaging and Presence Protocol)などの他のIOTプロトコルが利用され得る。次に、エッジゲートウェイコンテナ1512は、データをリモートシステムに送信し得る。
上述したように、SDCSで通信するときに真正性を証明するために、物理もしくは論理資産またはユーザは、認証局サービスにデジタル証明書を要求し得る。図26は、図20に示すような認証局コンテナ1028と同様の認証局コンテナ1602の詳細なブロック図を示している。認証局コンテナ1602は、証明書生成サービス1604および証明書検証サービス1606を含み得る。
証明書生成サービス1604は、例えば、物理または論理資産からの要求を受信したときに、物理または論理資産のデジタル証明書を生成し得る。要求を受信すると、証明書生成サービス1604は、物理または論理資産の識別情報を取得し、識別情報に基づいて物理または論理資産のアイデンティティを検証する。例えば、要求は、物理または論理資産の名前、物理または論理資産のメーカーおよびモデル、物理または論理資産が所有する暗号化秘密鍵に関連付けられている暗号化公開鍵、または任意の他の好適な識別情報を含み得る。証明書生成サービス1604は、例えば、物理または論理資産から取得された識別情報を他のソースから取得された物理または論理資産の識別情報と比較することによって、物理または論理資産のアイデンティティを検証し得る。証明書生成サービス1604が物理または論理資産のアイデンティティを検証できない場合、証明書生成サービス1604は、物理または論理資産の証明書を生成しない。
他方、証明書生成サービス1604が物理または論理資産のアイデンティティを検証することができる場合、証明書生成サービス1604は、物理もしくは論理資産の暗号化公開鍵または他の識別子、暗号化公開鍵などの認証局サービス1602の識別子、および認証局サービス1602が、認証局サービス1602によって証明書が生成されたことを証明するためのデジタル署名を含み得る、物理または論理資産のための証明書を生成する。証明書生成サービス1604は、SDCS内の他のノードまたはサービスと通信するときに認証目的で証明書を使用できる物理または論理資産に証明書を提供する。いくつかの実装形態では、他のサービスは、証明書に含まれる物理または論理資産の暗号化公開鍵を使用して、物理または論理資産との通信を暗号化し得る。
また、いくつかの実装形態では、SDCS内のユーザは、証明書生成サービス1604(プラントオペレータ、構成エンジニア、および/または工業プロセスプラント10に関連する他の人員など)にデジタル証明書を要求し得る。ユーザがデジタル証明書を要求するとき、ユーザは、ユーザの名前、住所、電話番号、工業プロセスプラント10内の役割、ユーザ名およびパスワードなどの識別情報を提供し得る。証明書生成サービス1604は、例えば、ユーザから取得した識別情報を他のソースから取得したユーザの識別情報と比較することによって、ユーザのアイデンティティを検証し得る。
証明書生成サービス1604がユーザを検証することができない場合、証明書生成サービス1604は、ユーザの証明書を生成しない。一方、証明書生成サービス1604がユーザを検証することができる場合、証明書生成サービス1604は、デジタル証明書を生成し、ユーザに提供する。このようにして、ユーザはSDCS内のノードまたはサービスにアクセスするためのデジタル証明書を提供し得、ログイン情報を入力する必要はない。いくつかの実装形態では、証明書生成サービス1604は、証明書にユーザの承認情報を含めてもよい。SDCSは、工業プロセスプラント10内でのユーザの役割に基づいて、ユーザに承認レベルを割り当て得る。次に、証明書生成サービス1604は、工業プロセスプラント10内の異なる承認レベルおよび/または役割のために異なるタイプの証明書を生成し得る。このようにして、ユーザがアクセスしようとするノードまたはサービスは、ユーザが提供する証明書のタイプに基づいて、工業プロセスプラント10内でのユーザの承認レベルおよび/または役割を判定し得る。
物理もしくは論理資産またはユーザがSDCS内のノードまたはサービスにアクセスしようとすると、ノードまたはサービスは、物理もしくは論理資産またはユーザを認証するために証明書検証サービス1606に要求を提供し得る。より具体的には、物理もしくは論理資産またはユーザは、証明書を証明書検証サービス1606に転送することができるノードまたはサービスに証明書を提供し得る。いくつかの実装形態では、証明書検証サービス1606は、証明書に含まれる認証局サービスの識別子、および証明書に含まれる認証局サービスのデジタル署名を分析して、証明書が認証局サービスによって生成されたかどうかを判定する。例えば、証明書検証サービス1606は、証明書に含まれる認証局の暗号化公開鍵が認証局の暗号化公開鍵と一致するかどうかを判定し得る。さらに、証明書検証サービス1606は、証明書を生成するエンティティが暗号化公開鍵に関連付けられている暗号化秘密鍵を所有していることをデジタル署名が証明するかどうかを判定し得る。これらの両方が真である場合、証明書検証サービス1606は、証明書が認証局サービスによって生成されたと判定し得る。
次に、証明書検証サービス1606は、物理もしくは論理資産またはユーザが認証されたことをノードまたはサービスに示し得る。追加的または代替的に、証明書がユーザの承認レベルの指示を含む場合、証明書検証サービス1606は、ノードまたはサービスに承認レベルの指示を提供し得る。
図27は、制御コンテナおよびオペレータワークステーションコンテナ(例えば、仮想ワークステーション)などの、SDCSのノードまたはサービスに含まれ得る例示的な認証および承認サービスの例を示している。図27に図示すように、制御コンテナ1702は、第1の認証サービス1704を含み、オペレータワークステーションコンテナ1706は、第2の認証サービス1708および承認サービス1710を含む。
制御コンテナ1702は、物理または論理資産からアクセスの要求を受信し得、要求は証明書を含む。したがって、第1の認証サービス1704は、証明書を使用して物理または論理資産を認証し得る。いくつかの実装形態では、第1の認証サービス1704は、物理または論理資産を認証するために、図26に示される認証局サービス1602などの認証局サービスに証明書を提供し得る。いずれにせよ、物理または論理資産を認証する際に、第1の認証サービス1704は、制御コンテナ1702へのアクセスを提供し得る。そうでなければ、第1の認証サービス1704は、制御コンテナ1702へのアクセスを拒否し得る。
オペレータワークステーションコンテナ1706は、要求が証明書を含む場合、ユーザからのアクセス要求を受信し得る。したがって、第2の認証サービス1708は、証明書を使用してユーザを認証し得る。いくつかの実装形態では、第2の認証サービス1708は、ユーザを認証するために、図26に示すような認証局サービス1602などの認証局サービスに証明書を提供し得る。いずれにせよ、ユーザを認証すると、第1の認証サービス1704は、ユーザが認証されたという指示をオペレータワークステーションコンテナ1706に提供し得る。
次に、承認サービス1710は、ユーザの許可レベルに基づいて、ユーザがオペレータワークステーションコンテナ1706にアクセスすることを承認されているかどうかを判定する。ユーザが、オペレータワークステーションコンテナ1706にアクセスするための最小承認レベルを満たすかまたは超える承認レベルを有する場合、承認サービス1710は、ユーザがオペレータワークステーションコンテナ1706にアクセスすることを承認されていると判定する。そうでなければ、承認サービス1710は、オペレータワークステーションコンテナ1706へのアクセスを拒否し得る。
いくつかの実装形態では、ユーザの承認レベルが証明書に含まれる。工業プロセスプラント10内の異なる承認レベルおよび/または役割のための異なるタイプの証明書。したがって、承認サービス1710は、証明書に基づいてユーザの承認レベルを判定し得る。他の実装形態では、承認サービス1710は、論理ストレージリソースからユーザの事前に保存された承認レベルを取得し、事前に保存された承認レベルに基づいてユーザの承認レベルを判定する。いくつかの実装形態では、ユーザは、承認レベルに基づいて、オペレータワークステーションコンテナ1706に部分的にアクセスし得る。したがって、オペレータワークステーションコンテナ1706は、ユーザにオペレータワークステーションコンテナ1706のうちのいくつかの部分へのアクセスを提供し、ユーザがオペレータワークステーションコンテナ1706の他の部分にアクセスすることを防止し得る。
SDCSでのネットワーク通信の暗号化に加えて、SDCSは論理ストレージリソースを暗号化する。図28は、暗号化サービス1804および認証サービス1806を含む例示的なストレージサービス1802のブロック図を示している。
ストレージサービス1802が論理ストレージリソースをSDCSに記憶するとき、暗号化サービス1804は、論理ストレージリソースに含まれるデータを暗号化する。次に、物理もしくは論理資産またはユーザが論理ストレージリソースにアクセスしようとすると、認証サービス1806は、物理もしくは論理資産またはユーザを認証する。例えば、認証サービス1806は、認証局によって発行された物理もしくは論理資産またはユーザの証明書に基づいて、物理もしくは論理資産またはユーザを認証し得る。認証サービス1806が物理もしくは論理資産またはユーザを認証することができる場合、ストレージサービス1802は、論理ストレージリソースに含まれるデータを復号し、復号された論理ストレージリソースを物理もしくは論理資産またはユーザに提供し得る。そうでなければ、ストレージサービス1802は、物理もしくは論理資産またはユーザのデータを復号しない。
図29は、プロセスプラントのプロセス制御システムを保護する例示的な方法1900を表すフロー図を示している。方法は、ソフトウェア定義ネットワークサービス、セキュリティコンテナ、またはこれらの任意の好適な組み合わせによって実行され得る。
ブロック1902において、ソフトウェア定義ネットワークサービスは、SDCS内の計算ノード上のコンテナを介して実行するように構成されたセキュリティサービスを生成する。例えば、セキュリティサービスには、仮想ルータ、仮想ファイアウォール、仮想スイッチ、仮想インターフェース、仮想データダイオード、パケット検査サービス、アクセス制御サービス、承認サービス、認証サービス、暗号化サービス、認証局サービス、鍵管理サービス、またはセキュリティに関連する任意の他の好適なサービスが含まれ得る。
次に、ブロック1904において、ソフトウェア定義ネットワークサービスは、セキュリティコンテナのインスタンスをインスタンス化して、制御コンテナで動作する。セキュリティコンテナのインスタンスは、一次インスタンスであり得る。ソフトウェア定義ネットワークサービスはまた、例えば、セキュリティコンテナのN個の冗長インスタンスをインスタンス化して、制御コンテナへのアクセスまたは制御コンテナからのデータフローを実際に制御せずに、制御コンテナでの操作をシミュレートすることもできる。いくつかの実装形態では、ソフトウェア定義ネットワークサービスは、セキュリティコンテナを制御コンテナ内にネストする。追加または代替の実装形態では、ソフトウェア定義ネットワークサービスは、セキュリティコンテナを、制御コンテナが実行される計算ノードと同じ計算ノードに固定する。他の実装形態では、セキュリティコンテナは、制御コンテナに割り当てられたスタンドアロンコンテナである。
ブロック1906において、ソフトウェア定義ネットワークサービスは、制御コンテナに従ってセキュリティ条件をセキュリティコンテナに割り当てる。例えば、制御構成サービスは、制御構成ストレージリソースから制御構成を取得し、制御コンテナに制御構成を提供し得る。制御構成ストレージリソースはまた、制御コンテナ用にカスタマイズされたファイアウォールルールのセットも含み得る。ソフトウェア定義ネットワークサービスは、制御構成サービスから制御コンテナ用にカスタマイズされたファイアウォールルールのセットを取得し、セキュリティ条件としてカスタマイズされたファイアウォールルールのセットをセキュリティコンテナに割り当て得る。ソフトウェア定義ネットワークサービスはまた、制御コンテナに応じた他のセキュリティ条件、例えば、制御コンテナにアクセスしようとする物理もしくは論理資産またはユーザを認証すること、ユーザに最小閾値承認レベルを超えるまたは満たす承認レベルを要求すること、プロセスプラント10の外部のリモートシステムからのアクセスを防止すること、あるいはプロセスプラント10の外部のリモートシステムからの入ってくるデータを防止することも割り当て得る。
いくつかの実装形態では、ソフトウェア定義ネットワークサービスは、セキュリティコンテナに代替または追加のセキュリティ条件を割り当てて、セキュリティコンテナの内容を更新し得る。例えば、最初の時点で、ソフトウェア定義ネットワークサービスは、第1のセットのセキュリティルールをセキュリティコンテナに割り当て得る。その後、ソフトウェア定義ネットワークサービスは、制御コンテナの更新された制御構成を取得し得る。ソフトウェア定義ネットワークサービスはまた、制御構成の変更に起因して、制御コンテナの更新されたファイアウォールルールを取得し得、セキュリティ条件として更新されたファイアウォールルールをセキュリティコンテナに割り当て得る。
ブロック1908において、セキュリティコンテナは、セキュリティコンテナに割り当てられたセキュリティ条件に基づいて、制御コンテナへのアクセスおよび/または制御コンテナからのデータフローを制御する。例えば、セキュリティコンテナは、許可リストまたは受け入れリストに含まれていないノードまたはサービスが制御コンテナと通信することを防止し得る。
図30は、SDCSにおける役割ベースの承認のための例示的な方法2000を表すフロー図を示している。方法は、セキュリティコンテナまたは承認サービスによって実行され得る。
ブロック2002において、SDCS内の計算ノード上のコンテナを介して実行されるセキュリティサービスは、制御コンテナなどのSDCS内の別のサービスまたはノードにアクセスするための要求をユーザから取得する。いくつかの実装形態では、セキュリティサービスは、ユーザによって制御されるプロセスプラント10の物理または論理資産から要求を取得し得る。また、いくつかの実装形態では、要求は、ユーザの真正性を検証するための、およびユーザの承認情報を含めるための、ユーザによって提供される証明書を含み得る。
ブロック2004において、セキュリティサービスは、ユーザの承認レベルを判定する。例えば、ユーザの承認レベルが証明書に含まれ得る。異なるタイプの証明書は、工業プロセスプラント10内の異なる承認レベルおよび/または役割を示し得る。したがって、セキュリティサービスは、証明書に基づいてユーザの承認レベルを判定し得る。他の実装形態では、セキュリティサービスは、論理ストレージリソースからユーザの事前に記憶された承認レベルを取得し、事前に記憶された承認レベルに基づいて物理または論理資産の承認レベルを判定する。
ブロック2006において、セキュリティサービスは、承認レベルに基づいて、ユーザが他のサービスまたはノードへのアクセスを承認されているかどうかを判定する。例えば、ユーザがSDCS内の他のサービスまたはノードにアクセスするための最小承認レベル以上の承認レベルを有している場合、セキュリティサービスは、ユーザが他のサービスまたはノードへのアクセスを承認されていると判定する。したがって、セキュリティサービスは、制御コンテナなどの他のサービスまたはノードへのアクセスをユーザに提供する(ブロック2008)。そうしないと、セキュリティサービスが他のサービスまたはノードへのアクセスを拒否する可能性がある(ブロック2010)。
図31は、プロセスプラント10の物理または論理資産を認証するための認証局サービスによってデジタル証明書を生成するための例示的な方法2100を表すフロー図を示している。方法は、認証局サービスによって実行され得る。
ブロック2102において、認証局サービスは、プロセスプラント10の物理または論理資産から証明書の要求を取得する。認証局サービスは、要求を受信すると、物理または論理資産の識別情報を取得し、識別情報に基づいて物理または論理資産のアイデンティを検証する(ブロック2104)。例えば、要求は、物理または論理資産の名前、物理または論理資産のメーカーおよびモデル、物理または論理資産が所有する暗号化秘密鍵に関連付けられている暗号化公開鍵、または任意の他の好適な識別情報を含み得る。認証局サービスは、例えば、物理または論理資産から取得された識別情報を他のソースから取得された物理または論理資産の識別情報と比較することによって、物理または論理資産のアイデンティティを検証し得る。認証局サービスが物理または論理資産のアイデンティティを検証できない場合、認証局サービスは物理または論理資産の証明書を生成しない。
他方、認証局サービスが物理または論理資産のアイデンティティを検証することができる場合、認証局サービスは、物理もしくは論理資産の暗号公開化鍵または他の識別子、暗号化公開鍵などの証明機関サービスの識別子、および証明機関サービスが証明書が証明機関サービスによって生成されたことを証明するためのデジタル署名を含み得る、物理または論理資産のための証明書を生成する(ブロック2106)。認証局サービスは、SDCS内の他のノードまたはサービスと通信するときに認証目的で証明書を使用できる物理または論理資産に証明書を提供する(ブロック2108)。いくつかの実装形態では、他のサービスは、証明書に含まれる物理または論理資産の暗号化公開鍵を使用して、物理または論理資産との通信を暗号化し得る。
図32は、プロセスプラント10の物理または論理資産を認証するための例示的な方法2200を表すフロー図を示している。方法は、セキュリティサービス、認証サービス、またはこれらの好適な組み合わせによって実行され得る。
ブロック2202において、SDCS内の計算ノード上のコンテナを介して実行されるセキュリティサービスは、物理または論理資産からSDCS内の別のサービスまたはノードにアクセスするための要求を取得する。要求は、物理または論理資産の真正性を検証するために、物理または論理資産によって提供される証明書を含み得る。
ブロック2204において、SDCS内の計算ノード上のコンテナを介して実行される認証サービスは、証明書に基づいて物理または論理資産の真正性を検証する。例えば、認証サービスは、証明書に含まれる認証局サービスの識別子、および証明書に含まれる認証局サービスのデジタル署名を分析して、証明書が認証局サービスによって生成されたかどうかを判定する。他の実装形態では、認証サービスは認証局サービスに証明書を提供して、物理または論理資産の真正性を検証する。
認証サービスが物理もしくは論理資産またはユーザの真正性を検証できる場合(ブロック2208)、セキュリティサービスは他のサービスまたはノードへのアクセスを提供し得る。一方、認証サービスが物理または論理資産の真正性を検証できない場合、セキュリティサービスは他のサービスまたはノードへのアクセスを拒否し得る(ブロック2210)。
SDCSはまた、SDCSの計算ノード上のコンテナを介して実行される発見サービスも含み得る。発見サービスは、プロセスプラント10内の各物理または論理資産のアイデンティティ、能力、および/または位置の記録を記憶し、これらは、プロセスプラント10の稼働時間の間に利用されて工業プロセスのうちの少なくとも一部分、例えば、フィールドデバイス、コントローラ、プロセス制御デバイス、I/Oデバイス、計算ノード、コンテナ、サービス(例えば、制御サービス)、マイクロサービスなどを制御し得る。
いくつかの実装形態では、発見サービスは、発見されたアイテムデータストアに記録を記憶し得る。SDCSは、冗長性/フォールトトレランスのために、複数の計算ノードに記憶されている検出されたアイテムデータストアの複数のインスタンスを含み得る。他の実装形態では、アクセスの容易さと速度のために、検出されたアイテムデータストアのインスタンスがSDCS内の各計算ノードに記憶され得る。
また、いくつかの実装形態では、発見サービスは、物理または論理資産をコミッショニングするために、記録またはその少なくとも一部分をI/Oサーバサービスに提供し得る。例えば、物理または論理資産がプロセスプラント10のネットワーク22、25、30、32、35、42~58に参加すると、物理または論理資産はその存在をアナウンスする。アナウンスは、物理または論理資産の識別情報、物理または論理資産と通信するためのネットワークアドレスなどの物理または論理資産の位置情報などのパラメータを含み得る。発見サービスまたは任意の他の好適なサービスは、アナウンスを取得し、物理または論理資産の識別情報および位置情報をI/Oサーバサービスに送信して、識別情報および位置情報を使用して物理または論理資産を自動的にコミッショニングし得る。
図33は、発見に関連する例示的なコンテナ、サービス、および/またはサブシステムのブロック図を示している。図33に示すように、SDCSは、発見サービス2302を実行するコンテナを含む。図33に示される発見サービス2302は、コンテナ(発見コンテナ)内で実行されるが、他の実装形態では、発見サービス2302は、コンテナ化されない場合がある。また、いくつかの実装形態では、SDCSは、冗長性のために、複数のコンテナ内の発見サービス2302の複数のインスタンスを含み得る。いくつかの実装形態では、発見サービス2302は、SDネットワークサービス220によって展開されるか、または図2のSDネットワークサービス220内にネストされ得る。
SDCSはまた、プロセスプラント10において発見された各物理または論理資産の記録を記憶する論理ストレージリソースである発見されたアイテムデータストア2304を含む。物理または論理資産を発見すると、発見サービス2302は、物理または論理資産の記録を発見されたアイテムデータストア2304に記憶し得る。
プロセスプラント10内のネットワーク22、25、30、32、35、42~58(本明細書では「プロセスプラントネットワーク」とも呼ばれる)に新しい物理または論理資産が追加されると、新しい物理または論理資産は、その存在を、例えば、プロセスプラントネットワーク22、25、30、32、35、42~58に接続されたノードまたはサービスにそのネットワークアドレスをブロードキャストすることによってアナウンスし得る。他の実装形態では、新しい物理または論理資産は、その存在を、例えば、プロセスプラントネットワーク22、25、30、32、35、42~58に接続された特定のノードまたはサービスからのマルチキャストアナウンスに応答することによってアナウンスし得る。さらに他の実装形態では、新しい物理または論理資産は、そのネットワークアドレスを予約されたポイントツーポイントネットワークアドレスまたはマルチキャストアドレスにアナウンスし得る。新しい物理または論理資産は、そのネットワークアドレスを一度、周期的に、要求に応じて、または任意の好適な方式でアナウンスし得る。
プロセスプラント10内の物理資産は、プロセスプラント10の稼働時間の間に工業プロセスのうちの少なくとも一部分、例えば、フィールドデバイス、コントローラ、プロセス制御デバイス、I/Oデバイス、計算ノードなどを制御するように構成された物理ハードウェアデバイスであり得る。物理ハードウェアデバイスは、プロセッサおよび/またはプロセッサコアリソースおよびメモリリソースのそれぞれのセットを含み得る。プロセスプラント10内の論理資産は、コンテナ、制御サービス、マイクロサービスなどのサービスなど、プロセスプラント10の稼働時間の間に工業プロセスのうちの少なくとも一部分を制御するように構成されたソフトウェアであり得る。いくつかの実装形態では、論理資産は、物理資産内で実行され得る。
発見サービス2302は、アナウンスを取得し、アナウンスに含まれる物理または論理資産のパラメータに基づいて、物理または論理資産のアイデンティティを判定し得る。アナウンスは、各物理または論理資産を定義するYAMLファイルを含み得る。YAMLファイルは、例えば、SDCSが以前にコミッショニング/構成されている場合に、手動または自動で生成され得る。他の実装形態では、アナウンスは、JSONファイル、XMLファイル、または任意の他のデータシリアル化ファイルなどの異なるタイプのファイルを含み得る。
より具体的には、アナウンスは、物理または論理資産の資産タグ、物理または論理資産のメディアアクセス制御(MAC)アドレス、物理または論理資産のネットワークアドレス、物理または論理資産の暗号化鍵資産、物理または論理資産のシリアル番号、および/または物理または論理資産に関連付けられているサービスまたはサブシステムの名前を含み得る。パラメータのいくつかは、MACアドレスなどの物理または論理資産を一意に識別する場合があるが、シリアル番号などの他のパラメータは、同じメーカーおよびモデルを有する複数の資産に対応し得る。したがって、発見サービス2302は、アナウンスに含まれるパラメータの任意の好適な組み合わせに基づいて、物理または論理資産を識別し得る。例えば、2つの物理または論理資産は、部品番号である同じシリアル番号を有するバルブであり得る。2つのバルブは、2つのバルブのシリアル番号および暗号化鍵の組み合わせに基づいて識別され得る。
資産タグは、物理または論理資産に割り当てられた/構成された名前または番号であり得、SDCS内の特定の物理または論理資産を一意に識別し得、より一般的には資産タイプを識別し得る。例えば、物理資産が制御バルブである場合、資産タグは「制御バルブ」であり得、プロセスプラント10は、同じ資産タグを有する複数の制御バルブを含み得る。他の実装形態では、アセットタグは特定の制御バルブを一意に識別するために「制御バルブ-01」であり得、他の制御バルブは「制御バルブ-02」、「制御バルブ-03」などであり得る。別の例では、論理資産が制御サービスである場合、資産タグは「制御サービス」であり得、プロセスプラント10は、同じ資産タグを有する複数の制御サービスを含み得る。他の実装形態では、資産タグは、その特定の制御サービスを一意に識別するために「制御サービス01」であり得、他の制御サービスは、「制御サービス02」、「制御サービス03」などであり得る。
MACアドレスは、物理または論理資産で動作するネットワークカードのアドレスであり得る。MACアドレスは、物理資産を一意に識別し得る。しかしながら、論理資産の場合、同じ計算ノードで動作するサービスのMACアドレスは同じであり、サービスが別の計算ノードで動作する場合、MACアドレスは変化し得る。したがって、いくつかの実装形態では、論理資産を識別するためにMACアドレスが使用されない場合があり、または論理資産を識別するためにMACアドレスが他のパラメータと組み合わせて使用される場合がある。
ネットワークアドレスは、プロセスプラントネットワーク22、25、30、32、35、42~58内の物理または論理資産のIPアドレスまたはその他の識別子であり得る。シリアル番号は、部品番号など、物理資産のメーカーおよびモデルを示すメーカーが割り当てた番号であり得る。
いくつかの実装形態では、物理または論理資産には、暗号化秘密鍵および暗号化公開鍵を含む非対称鍵ペアが割り当てられ得る。非対称鍵ペアは、ユーザまたはメーカーによって割り当てられ得る。次に、物理または論理資産は、他のノードまたはサービスと共有せずに暗号化秘密鍵を記憶し得る。物理または論理資産は、例えば、発見サービス2302および暗号化公開鍵を共有し得、発見サービス2302は、暗号化公開鍵が特定の資産に対応することを示す記録を記憶し得る。
次に、物理または論理資産を認証する必要がある場合、物理または論理資産はその暗号化公開鍵を認証サービスに提供する。図34を参照して以下により詳細に示されるように、認証サービスは、発見サービス内にネストされ得る。他の実装形態では、認証サービスは、発見サービスと通信するSDCSの別のコンテナ内で提供され得る。認証サービスは、検出されたアイテムデータストア2304から記録を取得し、物理または論理資産に提供された暗号化公開鍵が、検出されたアイテムデータストア2304に含まれる暗号化公開鍵と一致するかどうかを判定する。物理または論理資産はまた、認証サービスにもデジタル署名を提供して、物理または論理資産が暗号化公開鍵に対応する暗号化秘密鍵を所有していることを証明する。認証サービスが、物理または論理資産に提供された暗号化公開鍵が検出されたアイテムデータストア2304に含まれる暗号化公開鍵と一致すると判定し、デジタル署名が、物理または論理資産が暗号化公開鍵に対応する暗号化秘密鍵を所有していることを証明すると判定した場合、認証サービスは、物理または論理資産を認証する。
他の実装形態では、物理または論理資産は、物理または論理資産が発見サービス2302と共有する事前共有鍵(PSK)を割り当てられ得る。発見サービス2302は、発見されたアイテムデータストア2304内の物理または論理資産に関連してPSKを記憶し得る。次に、物理または論理資産が他のノードまたはサービスと通信するときに、物理または論理資産がPSKを使用して通信を暗号化し得る。次に、発見サービス2302は、物理または論理資産に関連して記憶されたPSKを発見されたアイテムデータストア2304から検索し、通信を復号し、復号された通信を他のノードまたはサービスに転送し得る。このようにして、物理または論理資産と発見サービス2302との間でのみ共有されたPSKを使用して通信を暗号化したので、物理または論理資産が認証される。
物理または論理資産のアイデンティティを決定することに加えて、発見サービス2302は、SDCS内の物理または論理資産の位置を判定し得る。例えば、位置は、プロセスプラントネットワーク22、25、30、32、35、42~58内の物理または論理資産のためのIPアドレスまたは他の識別子などの、物理または論理資産のためのネットワークアドレスであり得る。ネットワークの位置に加えて、位置は、物理資産が位置しているプロセスプラント10の特定のセクション、または論理資産を記憶および/または実行する計算ノードの物理位置などの、物理または論理資産の物理位置も含み得る。発見サービス2302は、ネットワークアドレスまたは物理位置の説明などのアナウンスに含まれる情報に基づいて、物理または論理資産の位置を判定する。
さらに、発見サービス2302は、物理または論理資産によって提供されるプロセスパラメータ(例えば、バルブ開放パーセンテージ、タンク充填パーセンテージなど)、物理または論理資産によって提供されるサービス(例えば、認証、承認、制御、分析、記憶など)、および/または物理または論理資産と通信するように構成されたサービスなど、物理または論理資産の能力のセットを識別し得る。例えば、物理または論理資産には、アナウンスの物理または論理資産の能力のうちの少なくともいくつかが主要な変数として含まれ得る。発見サービス2302はまた、アナウンスに含まれない物理または論理資産の能力、すなわちコンテキスト変数も識別し得る。より具体的には、発見サービス2302は、あるタイプの物理または論理資産から能力のセットを推測するコンテキスト辞書サービスからコンテキスト変数を検索し得る。発見サービス2302は、物理または論理資産のアイデンティティをコンテキスト辞書サービスに提供し得、コンテキスト辞書サービスは、アイデンティティに基づいて物理または論理資産のタイプを判定し得る。次に、コンテキスト辞書サービスは、物理または論理資産のタイプから推測される能力のセットを発見サービス2302に提供する。コンテキスト辞書サービスは、図34~図36を参照して以下でより詳細に説明される。
いくつかの実装形態では、物理または論理資産を識別すると、発見サービス2302は、コミッショニングを行うためおよび/またはSDCSトポロジーに含めるために、新たに発見された物理または論理資産をプロセス制御構成サービスに通知する。次に、ユーザは、プロセス制御構成サービスでSDCSトポロジーに新しく検出された物理または論理資産を含めることを受け入れるかまたは拒否し得る。また、いくつかの実装形態では、新しく検出された物理または論理資産が、プロセス制御構成サービスによってSDCSトポロジーに自動的に含まれ得る。
いずれにせよ、発見サービス2302は、物理または論理資産のアイデンティティ、物理または論理資産の位置、および/または物理または論理資産の能力のセットを含む物理または論理資産の記録を発見されたアイテムデータストア2304に記憶する。このようにして、発見されたアイテムデータストア2304は、プロセスプラント10内の物理または論理資産の各々の記録を維持する。他の物理または論理資産は、特定のプロセスパラメータまたはサービスを要求し得、発見サービス2302は、要求される物理または論理資産に要求されたプロセスパラメータまたはサービスを提供する物理または論理資産を識別し得る。発見サービス2302はまた、要求された物理または論理資産が要求されたプロセスパラメータまたはサービスを取得できるように、要求されたプロセスパラメータまたはサービスを提供する物理または論理資産の位置情報を提供し得る。さらに、発見サービス2302は、物理または論理資産がフィールドデバイスである場合など、物理または論理資産をコミッショニングするために、物理または論理資産の記録をI/OサーバまたはI/Oデバイスに提供し得る。
発見されたアイテムデータストア2304が破損または破壊された場合、発見サービス2302は、プロセスプラントネットワーク22、25、30、32、35、42~58を介して、プロセスプラント10内の物理または論理資産の各々に対して、それらの存在をアナウンスする要求を自動的にブロードキャストし得る。次に、発見サービス2302は、手動入力なしに、およびプロセスプラント10の動作を中断する必要なしに、プロセスプラント10内の各物理または論理資産の各々の記録を迅速に回復し得る。
いくつかの実装形態では、物理または論理資産がそれらの存在をアナウンスするための発見サービス2302からの発見要求は、仲介者を有する物理または論理資産の間で転送され得る。例えば、図1のリモートI/O資産78は、リモートI/O資産78に通信可能に接続されたフィールドデバイス70の各々に発見要求を転送し得る。次に、フィールドデバイス70は、そのアナウンスを発見サービス2302に転送するリモートI/O資産78にそれらの存在をアナウンスすることによって、発見要求に応答し得る。
図34は、図33の発見サービス2302と同様に、発見サービスを実行するように構成された例示的な発見コンテナ2402の詳細なブロック図を示している。発見コンテナ2402は、認証サービス2406を実行し得る発見サービス2404と、コンテキスト2410を含み得るコンテキスト辞書コンテナ2408と、位置サービス2412と、を含む。
発見サービス2404は、プロセスプラントネットワーク22、25、30、32、35、42~58に参加する物理または論理資産のアナウンスを取得し得る。アナウンスは、物理または論理資産の資産タグ、物理または論理資産のMACアドレス、物理または論理資産のネットワークアドレス、物理または論理資産の暗号化鍵資産、物理または論理資産のシリアル番号、および/または物理または論理資産に関連付けられているサービスまたはサブシステムの名前を含み得る。発見サービス2404は、アナウンスに含まれるこれらのパラメータに基づいて、物理または論理資産のアイデンティティを判定し得る。
発見サービス2404はまた、SDCS内の物理または論理資産の位置を判定し得る。例えば、位置は、プロセスプラントネットワーク22、25、30、32、35、42~58内の物理または論理資産のためのIPアドレスまたは他の識別子などの、物理または論理資産のためのネットワークアドレスであり得る。ネットワークの位置に加えて、位置は、物理資産が位置しているプロセスプラント10の特定のセクション、または論理資産を記憶および/または実行する計算ノードの物理位置などの、物理または論理資産の物理位置も含み得る。発見サービス2404は、ネットワークアドレスまたは物理位置の説明などのアナウンスに含まれる情報に基づいて、物理または論理資産の位置を判定する。
さらに、発見サービス2404は、物理または論理資産によって提供されるプロセスパラメータ(例えば、バルブ開放パーセンテージ、タンク充填パーセンテージなど)、物理または論理資産によって提供されるサービス(例えば、認証、承認など)、および/または物理または論理資産と通信するように構成されたサービスなど、物理または論理資産の能力のセットを識別し得る。例えば、物理または論理資産には、アナウンスの物理または論理資産の能力のうちの少なくともいくつかが含まれ得る。発見サービス2404はまた、アナウンスに含まれていない物理または論理資産の能力を自動的に推測し得る。例えば、物理または論理資産がフィールドデバイスである場合、アナウンスには、流体の質量流量など、フィールドデバイスから取得可能な一次変数が含まれ得る。発見サービス2404はまた、流体の速度(speed)、速度(velocity)、および/または密度などの、フィールドデバイスのコンテキスト変数を自動的に推測し得る。例えば、物理または論理資産がレガシーデバイスである場合、レガシーデバイスは特定の能力をアナウンスするように構成されていない場合がある。したがって、レガシーデバイスは一次変数をアナウンスし、発見サービス2404は、アナウンスに含まれていない残りの能力またはコンテキスト変数を自動的に推測する。
別の例では、物理または論理資産がフィールドデバイスである場合、フィールドデバイスは、バルブ位置およびバルブ内の気圧など、イベント駆動型データ層(EDDL)の一次変数をアナウンスし得る。発見サービス2404は、バルブの健全性メトリック、バルブの行程メトリックなど、フィールドデバイスのコンテキスト変数を自動的に推測し得る。
より具体的には、発見サービス2404は、コンテキスト辞書コンテナ2408からこれらの能力を検索し得る。コンテキスト辞書コンテナ2408は、あるタイプの物理または論理資産から能力のセットを推測するコンテキスト2410を含む。物理または論理資産の各タイプについて、コンテキスト2410は、物理または論理資産によって提供されるプロセスパラメータの各々、物理または論理資産によって遂行される各サービスの各々、および情報を通信するために物理または論理資産を要求するSDCS内のサービスの各々のリストを含み得る。
発見サービス2404は、物理または論理資産のアイデンティティをコンテキスト辞書コンテナ2408に提供し得、コンテキスト辞書コンテナ2408は、アイデンティティに基づいて物理または論理資産のタイプを判定し得る。例えば、コンテキスト辞書コンテナ2408は、物理または論理資産のアイデンティティに基づいて物理または論理資産のタイプを判定するためのルールのセットを記憶し得る。より具体的には、コンテキスト辞書コンテナ2408は、資産タグ、シリアル番号、または物理もしくは論理資産に関連付けられているサービスまたはサブシステムの名前を分析して、物理または論理資産のタイプを判定し得る。例えば、物理または論理資産の資産タグが「制御バルブ-01」である場合、コンテキスト辞書コンテナ2408は、物理または論理資産のタイプが制御バルブであると判定し得る。コンテキスト辞書コンテナ2408は、物理もしくは論理資産タイプおよび資産タグ、シリアル番号、名前、または各物理もしくは論理資産タイプに対応するそれらの部分のリストを記憶し得る。
次に、コンテキスト辞書コンテナ2408は、コンテキスト2410を使用して、物理または論理資産のタイプから能力のセットを自動的に推測し、物理または論理資産のタイプから推測された能力のセットを発見サービス2404に提供する。次に、発見サービス2404は、物理または論理資産のアイデンティティ、物理または論理資産の位置、および/または物理または論理資産の能力のセットを含む、物理または論理資産の記録を発見されたアイテムデータストア内に記憶する。
物理または論理資産がSDCS内のノードまたはサービスへのアクセスを要求するとき、発見サービス2404内の認証サービス2406は、物理または論理資産を認証する。例えば、認証サービス2406は、発見されたアイテムデータストアに含まれる物理または論理資産の暗号化公開鍵を検索することによって、物理または論理資産を認証する。次に、認証サービス2406は、物理または論理資産について検索された暗号化公開鍵を、ノードまたはサービスへのアクセスの要求において物理または論理資産によって提供された暗号化公開鍵と比較して、一致があるかどうかを判定し得る。認証サービス2406はまた、ノードまたはサービスへのアクセスの要求において物理または論理資産によって提供されるデジタル署名を分析して、デジタル署名が、物理または論理資産が暗号化公開鍵に対応する暗号化秘密鍵を所有していることを証明するかどうかを判定し得る。これらの条件の両方が満たされる場合、認証サービス2406は、物理または論理資産を認証し得る。
別の例では、認証サービス2406は、発見されたアイテムデータストアから物理または論理資産のPSKを検索することによって、物理または論理資産を認証する。次に、認証サービス2406は、検索されたPSKを使用して、ノードまたはサービスへのアクセスの要求を復号しようと試み得る。認証サービス2406が要求を首尾よく復号する場合、認証サービス2406は、物理または論理資産を認証し得る。
認証サービス2406は、発見サービス2404内にネストされているように示されているが、これは、例示を容易にするための単なる一例の実装形態である。他の実装形態では、認証サービス2406は、発見サービス2404内にネストされていない。
位置サービス2412は、SDCS内のノードまたはサービスから、物理または論理資産の位置の要求を受信し得る。次に、位置サービス2412は、物理または論理資産の位置の発見されたアイテムデータストアから記録を取得し得る。例えば、位置は、プロセスプラントネットワーク22、25、30、32、35、42~58内の物理または論理資産のためのIPアドレスまたは他の識別子などの、物理または論理資産のためのネットワークアドレスであり得る。ネットワークの位置に加えて、位置は、物理資産が位置しているプロセスプラント10の特定のセクション、または論理資産を記憶および/または実行する計算ノードの物理位置などの、物理または論理資産の物理位置も含み得る。次に、位置サービス2412は、物理または論理資産の位置情報を、要求への応答として要求を提供したノードまたはサービスに提供する。
図35は、図34のコンテキスト辞書コンテナ2408と同様の例示的なコンテキスト辞書コンテナ2502の詳細なブロック図を示している。コンテキスト辞書コンテナ2408と同様に、コンテキスト辞書コンテナ2502は、コンテキスト辞書サービス2504およびコンテキスト2508を含む。コンテキスト辞書サービス2504は、資産能力識別サービス2506をさらに含む。
資産能力識別サービス2506は、物理または論理資産のアイデンティティに基づいて、物理または論理資産のタイプを判定し得る。例えば、資産能力識別サービス2506は、物理または論理資産のアイデンティティに基づいて物理または論理資産のタイプを判定するためのルールのセットを記憶し得る。より具体的には、資産能力識別サービス2506は、資産タグ、シリアル番号、または物理もしくは論理資産に関連付けられているサービスまたはサブシステムの名前を分析して、物理または論理資産のタイプを判定し得る。例えば、物理または論理資産の資産タグが「制御バルブ-01」である場合、資産能力識別サービス2506は、物理または論理資産のタイプが制御バルブであると判定し得る。資産能力識別サービス2506は、物理もしくは論理資産タイプおよび資産タグ、シリアル番号、名前、または各物理もしくは論理資産タイプに対応するそれらの部分のリストを記憶し得る。
追加的または代替的に、資産能力識別サービス2506は、アナウンスに含まれる物理または論理資産の一次変数を分析して、EDDLに含まれる一次変数などの物理または論理資産のタイプを判定し得る。例えば、物理または論理資産の主要な変数がバルブの位置である場合、資産能力識別サービス2506は、物理または論理資産がバルブであると判定し得る。別の例では、物理または論理資産の一次変数が制御サービスである場合、資産能力識別サービス2506は、物理または論理資産が制御コンテナであると判定し得る。いくつかの物理または論理資産は、バルブ位置機能力および制御サービス能力などの能力の組み合わせを含み得る。この場合、資産能力識別サービス2506は、能力の組み合わせに基づいて、物理または論理資産のタイプを判定し得る。
次に、資産能力識別サービス2506は、コンテキスト2508を使用して、物理または論理資産のタイプから能力を推測し得る。例えば、特定の物理または論理資産について、アナウンスは、物理または論理資産が、物理または論理資産の制御に関連するパラメータの第1のセットを提供できることを示し得る。コンテキスト2508は、物理または論理資産の保守に関連する追加のパラメータをさらに識別し得る。別の例では、コンテキスト2508は、保守パラメータにアクセスするためのメカニズムなど、追加のパラメータまたはサービスの各々にアクセスするためのメカニズムを含み得る。追加のパラメータまたはサービスにアクセスするためのメカニズムは、追加のパラメータまたはサービスを検索するために物理または論理資産に提供する要求のフォーマットおよび/またはコンテンツであり得る。別の例では、メカニズムは、追加のパラメータを検索するために、または物理または論理資産に追加のサービスを遂行させるために使用され得る追加のパラメータまたはサービスに対応する参照番号または識別子であり得る。
図36は、図35のコンテキスト2508と同様の例示的なコンテキスト2602の詳細なブロック図を示している。コンテキスト2602は、デバイスタイプをクラスコンテキストに関連付けるデータ表2604を含み得る。より具体的には、データ表2604は、デバイスタイプ、一次変数、およびコンテキスト変数を含み得る。例えば、デバイスタイプが熱電対の場合、一次変数は温度であり、コンテキスト変数は、熱電対のデバイス健全性メトリックおよび熱電対の変動性を示すデバイス許可値を含み得る。デバイスタイプがマスフローセンサの場合、主要な変数はマスフローであり得、コンテキスト変数は流体速度(fluid speed)、流体速度(fluid velocity)、および流体密度を含み得る。別の例では、デバイスタイプがバルブである場合、一次変数は、バルブ位置およびバルブ内の空気圧を含み得る。コンテキスト変数は、バルブ健全性メトリック、バルブ行程メトリック、全行程サイクル、連続スロットル、周期的スロットルなどのバルブの動作モード、ならびにデッドバンドおよびデッドタイムなどのバルブの状態を含み得る。さらに、コンテキスト変数は、バルブ監視サービスおよび/またはバルブからの一次変数またはコンテキスト変数を利用し得るサービスなど、バルブが遂行できるサービスを含み得る。
SDCSはまた、コンテキスト辞書サービス2504および/または発見サービス2404から物理または論理資産の一次およびコンテキスト変数を取得し、構成中にユーザに機能を推奨する推奨サービスも含み得る。例えば、ユーザがSDCSに対して新しいバルブを構成するとき、コンテキスト辞書サービス2504は、新しいバルブのコンテキスト変数から、リードバック値があることを検出し得る。ユーザが新しいバルブを構成すると、推奨サービスは、例えば、ユーザが構成をプロセス制御構成サービスにコミットしようとしたときに、利用可能であるが未使用のバルブ位置リードバック値があることをユーザに通知し得る。このようにして、ユーザが物理または論理資産の全能力を知らない場合、推奨サービスにより、ユーザは、SDCS内で構成またはコミッショニングされた資産の各々のマニュアルを読まなくても、物理または論理資産の能力を学ぶことができる。
図37は、プロセスプラント10においてサービスとして発見ソフトウェアを提供するための例示的な方法2700を表すフロー図を示している。方法は、発見サービスによって実行され得る。
ブロック2702において、発見サービスは、物理または論理資産の存在を示すアナウンスを取得する。プロセスプラントネットワーク22、25、30、32、35、42~58に、フィールドデバイス、プロセス制御デバイス、計算ノード、コンテナ、サービス、マイクロサービスなどの新しい物理または論理資産が追加されると、新しい物理または論理資産は、その存在を、例えば、プロセスプラントネットワーク22、25、30、32、35、42~58に接続されたノードまたはサービスにそのネットワークアドレスをブロードキャストすることによってアナウンスし得る。他の実装形態では、発見サービスは、プロセスプラントネットワーク22、25、30、32、35、42~58内の物理または論理資産の各々にそれらの存在をアナウンスするための要求をブロードキャストし得る。
アナウンスは、物理または論理資産の識別パラメータ、例えば、物理または論理資産の資産タグ、物理または論理資産のMACアドレス、物理または論理資産のネットワークアドレス、物理または論理資産の暗号化鍵資産、物理または論理資産のシリアル番号、および/または物理または論理資産に関連付けられているサービスまたはサブシステムの名前を含み得る。アナウンスはまた、物理もしくは論理資産のネットワークアドレス、または物理もしくはネットワーク位置情報を含む物理もしくは論理資産の任意の他の好適な位置情報も含み得る。さらに、アナウンスは、物理もしくは論理資産の能力、例えば、物理もしくは論理資産が提供するように構成されたプロセスパラメータ、物理もしくは論理資産が提供するように構成されたサービス、または物理もしくは論理資産と通信するように構成されたサービスを含み得る。
ブロック2704において、発見サービスは、アナウンスに含まれる識別パラメータに基づいて、物理または論理資産のアイデンティティを判定する。いくつかの実装形態では、発見サービスは、物理または論理資産(例えば、MACアドレス)を一意に識別する識別パラメータのうちの1つに基づいて、物理または論理資産のアイデンティティを判定する。他の実装形態では、発見サービスは、識別パラメータの組み合わせに基づいて、物理または論理資産のアイデンティティを判定する。例えば、シリアル番号は、同じメーカーおよびモデルを有する複数の資産に対応し得る。したがって、発見サービスは、物理または論理資産のシリアル番号と暗号化鍵との組み合わせに基づいて、物理または論理資産のアイデンティティを判定し得る。
次に、ブロック2706において、発見サービスは、物理または論理資産の記録を発見されたアイテムデータストアに記憶する。記録は、物理または論理資産のアイデンティティ、物理または論理資産の能力のセット、およびSDCS内の物理または論理資産の位置の指示を含み得る。物理または論理資産の能力のセットは、アナウンスに含まれる機能を含み得る。能力のセットは、アナウンスに含まれていない、発見サービスによって自動的に推測される機能も含み得る。
より具体的には、発見サービスは、コンテキスト辞書コンテナからこれらの能力を検索し得る。コンテキスト辞書コンテナは、物理または論理資産のタイプから能力のセットを推測するコンテキストを含み得る。物理または論理資産の各タイプについて、コンテキストは、物理または論理資産によって提供されるプロセスパラメータの各々、物理または論理資産によって遂行される各サービスの各々、および情報を通信するために物理または論理資産を要求するSDCS内のサービスの各々のリストを含み得る。
図38は、コンテキスト辞書を使用してプロセスプラントの物理または論理資産に関する情報を推測するための例示的な方法2800を表すフロー図を示している。方法は、発見サービスによって実行され得る。
ブロック2802において、発見サービスは、物理または論理資産の存在を示すアナウンスを取得する。プロセスプラントネットワーク22、25、30、32、35、42~58に、フィールドデバイス、プロセス制御デバイス、計算ノード、コンテナ、サービス、マイクロサービスなどの新しい物理または論理資産が追加されると、新しい物理または論理資産は、その存在を、例えば、プロセスプラントネットワーク22、25、30、32、35、42~58に接続されたノードまたはサービスにそのネットワークアドレスをブロードキャストすることによってアナウンスし得る。他の実装形態では、発見サービスは、プロセスプラントネットワーク22、25、30、32、35、42~58内の物理または論理資産の各々にそれらの存在をアナウンスするための要求をブロードキャストし得る。
アナウンスは、物理または論理資産の識別パラメータ、例えば、物理または論理資産の資産タグ、物理または論理資産のMACアドレス、物理または論理資産のネットワークアドレス、物理または論理資産の暗号化鍵資産、物理または論理資産のシリアル番号、および/または物理または論理資産に関連付けられているサービスまたはサブシステムの名前を含み得る。アナウンスはまた、物理もしくは論理資産のネットワークアドレス、または物理もしくはネットワーク位置情報を含む物理もしくは論理資産の任意の他の好適な位置情報も含み得る。さらに、アナウンスは、物理もしくは論理資産の能力、例えば、物理もしくは論理資産が提供するように構成されたプロセスパラメータ、物理もしくは論理資産が提供するように構成されたサービス、または物理もしくは論理資産と通信するように構成されたサービスを含み得る。
ブロック2804において、発見サービスは、アナウンスに物理または論理資産の能力として含まれていなかった、物理または論理資産に関連付けられている追加のパラメータまたはサービスを取得する。より具体的には、発見サービスは、コンテキスト辞書コンテナから追加のパラメータまたはサービスを検索し得る。
コンテキスト辞書コンテナは、物理または論理資産のタイプから能力のセットを推測するコンテキストを含み得る。物理または論理資産の各タイプについて、コンテキストは、物理または論理資産によって提供されるプロセスパラメータの各々、物理または論理資産によって遂行される各サービスの各々、および情報を通信するために物理または論理資産を要求するSDCS内のサービスの各々のリストを含み得る。
発見サービスは、物理または論理資産のアイデンティティをコンテキスト辞書コンテナに提供し得、コンテキスト辞書コンテナは、アイデンティティに基づいて物理または論理資産のタイプを判定し得る。例えば、コンテキスト辞書コンテナは、物理または論理資産のアイデンティティに基づいて物理または論理資産のタイプを判定するためのルールのセットを記憶し得る。より具体的には、コンテキスト辞書コンテナは、資産タグ、シリアル番号、または物理もしくは論理資産に関連付けられているサービスまたはサブシステムの名前を分析して、物理または論理資産のタイプを判定し得る。例えば、物理または論理資産の資産タグが「制御バルブ-01」である場合、コンテキスト辞書コンテナは、物理または論理資産のタイプが制御バルブであると判定し得る。コンテキスト辞書コンテナは、物理もしくは論理資産タイプおよび資産タグ、シリアル番号、名前、または各物理もしくは論理資産タイプに対応するそれらの部分のリストを記憶し得る。
次に、コンテキスト辞書コンテナは、コンテキストを使用して、物理または論理資産のタイプから能力のセットを自動的に推測し、物理または論理資産のタイプから推測された能力のセットを発見サービスに提供する。例えば、特定の物理または論理資産について、アナウンスは、物理または論理資産が、物理または論理資産の制御に関連するパラメータの第1のセットを提供できることを示し得る。コンテキストは、物理または論理資産の保守に関連する追加のパラメータをさらに識別し得る。別の例では、コンテキストは、保守パラメータにアクセスするためのメカニズムなど、追加のパラメータまたはサービスの各々にアクセスするためのメカニズムを含み得る。
次に、ブロック2806において、発見サービスは、物理または論理資産の記録を発見されたアイテムデータストアに記憶する。記録は、物理または論理資産のアイデンティティの表示、およびアナウンスに含まれていなかった物理または論理資産に関連付けられている追加のパラメータまたはサービスを含み得る。記録はまた、アナウンスに含まれる能力も含み得る。
図39は、プロセスプラント内の各タイプの物理または論理資産から能力のセットを推測し、発見された物理または論理資産の機能を判定するための例示的な方法2900を表すフロー図を示している。方法は、コンテキスト辞書サービスによって実行され得る。
ブロック2902において、コンテキスト辞書サービスは、プロセスプラント10の各タイプの物理または論理資産を記憶する。次に、物理または論理資産の各タイプについて、コンテキスト辞書サービスは、物理または論理資産のタイプの能力のセットを記憶する(ブロック2904)。能力のセットは、物理または論理資産のタイプから取得可能なパラメータ、および物理または論理資産によって遂行されるサービス、または物理もしくは論理資産と通信するサービスなどの物理もしくは論理資産のタイプに関連付けられているサービスを含み得る。コンテキスト辞書サービスは、コンテキストを使用して、物理または論理資産の各タイプに対応する能力を推測し得る。
次に、ブロック2906において、コンテキスト辞書サービスは、特定の物理または論理資産の能力に対する要求を取得する。要求は、物理または論理資産の識別情報、例えば、資産タグ、物理または論理資産のMACアドレス、物理または論理資産のネットワークアドレス、物理または論理資産の暗号化鍵資産、物理または論理資産のシリアル番号、および/または物理もしくは論理資産に関連付けられているサービスまたはサブシステムの名前を含み得る。要求は、発見サービスによって提供され得る。他のシナリオでは、要求は、特定の能力を有する特定の物理または論理資産を見つけようとするSDCS内のノードまたはサービスによって提供され得る。さらに他のシナリオでは、要求は、物理または論理資産によって提供されるプロセスパラメータまたはサービスへのアクセスに関心のあるSDCS内のノードまたはサービスによって提供され得る。
要求に応答して、コンテキスト辞書サービスは、物理または論理資産の識別情報に基づいて、物理または論理資産のタイプを判定する(ブロックG2908)。例えば、コンテキスト辞書サービスは、物理または論理資産のアイデンティティに基づいて物理または論理資産のタイプを決定するためのルールのセットを記憶し得る。より具体的には、コンテキスト辞書サービスは、資産タグ、シリアル番号、または物理もしくは論理資産に関連付けられているサービスまたはサブシステムの名前を分析して、物理または論理資産のタイプを判定し得る。コンテキスト辞書サービスは、物理もしくは論理資産タイプおよび資産タグ、シリアル番号、名前、または各物理もしくは論理資産タイプに対応するそれらの部分のリストを記憶し得る。
次に、ブロック2910において、コンテキスト辞書サービスは、コンテキストを使用して、物理または論理資産のタイプから能力のセットを推測し得る。次に、コンテキスト辞書サービスは、物理または論理資産のタイプに対応する能力のセットを含む要求への応答を提供し得る。
いくつかの実装形態では、コンテキスト辞書サービスは、発見サービスの第2のコンテナにネストされた第1のコンテナを介して実行される。他の実装形態では、コンテキスト辞書サービスおよび検出サービスは、ネストされたコンテナでは実行されない。
図40は、プロセスプラント10において発見されたアイテムの故障回復のための例示的な方法3000を表すフロー図を示している。方法は、発見サービスによって実行され得る。
ブロック3002において、発見されたアイテムデータストアで故障が検出された。例えば、検出されたアイテムデータストアが破損、破壊され、物理または論理資産の記録が欠落している可能性がある。さらに、検出されたアイテムデータストアは、例えば停電のためにリセットされた可能性がある。故障の検出に応答して、発見サービスは、それらの存在を、プロセスプラント10内の物理または論理資産にアナウンスするための要求をブロードキャストする(ブロック3004)。
要求に応答して、発見サービスは、プロセスプラント10(ブロック3006)内の物理または論理資産からアナウンスを受信する。各アナウンスは、物理もしくは論理資産の識別パラメータ、例えば、物理もしくは論理資産の資産タグ、物理もしくは論理資産のMACアドレス、物理もしくは論理資産のネットワークアドレス、物理もしくは論理資産の暗号化鍵資産、物理もしくは論理資産のシリアル番号、および/または物理もしくは論理資産に関連付けられているサービスまたはサブシステムの名前を含み得る。アナウンスはまた、物理もしくは論理資産のネットワークアドレス、または物理もしくはネットワーク位置情報を含む物理もしくは論理資産の任意の他の好適な位置情報も含み得る。さらに、アナウンスは、物理もしくは論理資産の能力、例えば、物理もしくは論理資産が提供するように構成されたプロセスパラメータ、物理もしくは論理資産が提供するように構成されたサービス、または物理もしくは論理資産と通信するように構成されたサービスを含み得る。
次に、ブロック3008において、発見サービスは、物理または論理資産の記録を発見されたアイテムデータストアに記憶する。各物理または論理資産について、回復された記録は、物理または論理資産のアイデンティティ、物理または論理資産の能力のセット、およびSDCS内の物理または論理資産の位置の指示を含み得る。物理または論理資産の機能のセットは、アナウンスに含まれる機能を含み得る。能力のセットは、アナウンスに含まれていない、発見サービスによって自動的に推測される機能も含み得る。このようにして、物理または論理資産の記録は、手動入力を必要とせずに自動的に受信される。
上述したように、発見サービスは、プロセスプラント10内の物理または論理資産のコミッショニングを支援することができ、その結果、SDCSは、手動入力なしで物理または論理資産を自動的にコミッショニングすることができる。SDCS、より具体的にはI/Oサーバサービスは、発見サービスが物理または論理資産を検出したことに応答して、物理または論理資産をコミッショニングする場合があるが、これは1つの例示的な実装形態にすぎない。他の実装形態では、他のサービスは、プロセス制御構成サービスなど、プロセスプラント10内の物理または論理資産を識別し得る。
図41は、SDCSを自動的にコミッショニングするための例示的な方法3100を表すフロー図を示している。方法は、発見サービス、プロセス制御構成サービス、I/Oサーバサービス、またはこれらの任意の好適な組み合わせによって実行され得る。
ブロック3102において、物理または論理資産の存在を示すアナウンスが取得される。プロセスプラントネットワーク22、25、30、32、35、42~58に、フィールドデバイス、プロセス制御デバイス、計算ノード、コンテナ、サービス、マイクロサービスなどの新しい物理または論理資産が追加されると、新しい物理または論理資産は、その存在を、例えば、プロセスプラントネットワーク22、25、30、32、35、42~58に接続されたノードまたはサービスにそのネットワークアドレスをブロードキャストすることによってアナウンスし得る。他の実装形態では、発見サービスは、プロセスプラントネットワーク22、25、30、32、35、42~58内の物理または論理資産の各々にそれらの存在をアナウンスするための要求をブロードキャストし得る。
アナウンスには、物理もしくは論理資産の識別パラメータ、例えば、物理もしくは論理資産の資産タグ、物理もしくは論理資産のMACアドレス、物理もしくは論理資産の暗号化鍵資産、物理もしくは論理資産のシリアル番号、および/または物理もしくは論理資産に関連付けられているサービスまたはサブシステムの名前を含み得る。アナウンスはまた、物理もしくは論理資産のネットワークアドレス、または物理もしくはネットワーク位置情報を含む物理もしくは論理資産の任意の他の好適な位置情報も含み得る。例えば、位置情報はまた、物理資産が位置しているプロセスプラント10の特定のセクション、または論理資産を記憶および/または実行する計算ノードの物理位置などの、物理または論理資産の物理位置も含み得る。
ブロック3104において、物理または論理資産の識別パラメータおよび位置パラメータは、図2のI/Oサーバサービス242などのI/Oサーバサービスに送信される。発見サービスまたはプロセス制御構成サービスは、アナウンスに含まれる物理もしくは論理資産の識別パラメータの各々を、I/Oサーバサービスに送信し得、または物理もしくは論理資産を一意に識別するために使用され得るアナウンスに含まれる識別パラメータのサブセットを送信し得る。さらに、発見サービスまたはプロセス制御構成サービスは、位置情報をI/Oサーバサービスに送信して、I/Oサーバサービスが物理または論理資産と通信できるようにし得る。
ブロック3106において、I/Oサーバサービスは、識別情報および位置情報に基づいて、物理または論理資産を自動的にコミッショニングし得る。コミッショニングは、物理もしくは論理資産のアイデンティティを検証または確認すること、プロセスプラント10内で物理もしくは論理資産を一意に識別するタグを生成すること、I/Oサーバサービスが物理もしくは論理資産内で通信していることを保証するためのテストを遂行ことなどのアクションまたは活動を含み得る。
I/Oサーバサービスは、物理または論理資産の識別パラメータに基づいて、物理または論理資産を一意に識別するためのタグを生成し得る。例えば、上述したように、物理または論理資産の識別パラメータは、「制御バルブ」などの資産タグを含み得、プロセスプラント10は、同じ資産タグを有する複数の制御バルブを含み得る。I/Oサーバサービスは、資産タグとバルブの暗号化公開鍵との組み合わせに基づいて、バルブのタグを生成し得る。例えば、バルブの暗号化公開鍵の最後の4文字が「xg4t」である場合、タグは「制御バルブ-xg4t」であり得る。
他の実装形態では、I/Oサーバサービスは、「制御バルブ」の後にプロセスプラント10内の別のバルブを識別するために使用されていない番号が続く文字列を含む制御バルブのタグを生成し得る。例えば、4つの制御バルブがある場合、タグは「制御バルブ-01」、「制御バルブ-02」、「制御バルブ-03」、および「制御バルブ-04」であり得る。I/Oサーバサービスは、物理または論理資産の識別パラメータを、タグが割り当てられた物理または論理資産の識別パラメータと比較することによって、物理または論理資産にまだ一意のタグが割り当てられていないと判定し得る。識別パラメータが一致しない場合、I/Oサーバサービスは、「制御バルブ-05」などの新しい一意のタグを物理または論理資産に割り当ててもよい。
別の例では、2つの物理または論理資産は、部品番号である同じシリアル番号を有するバルブであり得る。2つのバルブは、2つのバルブのシリアル番号および暗号化鍵の組み合わせに基づいて一意に識別され得る。したがって、I/Oサーバサービスは、各バルブのシリアル番号と暗号化鍵との組み合わせに基づいて、各バルブのタグを生成し得る。
次に、I/Oサーバサービスは、物理または論理資産と通信するための参照として使用され得るデータストア内の物理または論理資産の位置情報に関連してタグを記憶し得る。
物理または論理資産をテストするために、I/Oサーバサービスは、物理もしくは論理資産にデータを送信するか、または位置情報を使用して物理もしくは論理資産に情報を要求し得る。I/Oサーバサービスが物理または論理資産と正常に通信できる場合、I/Oサーバサービスは、物理または論理資産が正常にコミッショニングされたと判定し得る。いくつかの実装形態では、I/Oサーバサービスは、物理もしくは論理資産から特定のパラメータ(例えば、質量流量)を要求し、物理もしくは論理資産に関連付けられている特定のパラメータまたはサービスの信号タグを生成および記憶し得る。信号タグは、物理もしくは論理資産のタグと特定のパラメータまたはサービスの識別子との組み合わせを含み得る。他の実装形態では、I/Oサーバサービスは信号タグを記憶しない
物理もしくは論理資産のアイデンティティを検証または確認するために、I/Oサーバサービスは、例えば、識別パラメータから物理もしくは論理資産の暗号化公開鍵またはPSKを取得し得る。I/Oサーバサービスは、暗号化公開鍵またはPSKを使用して情報の要求を暗号化し得、I/Oサーバサービスが物理もしくは論理資産から要求への応答を受信した場合、I/Oサーバサービスは、物理もしくは論理資産が暗号化公開鍵またはPSKを使用して要求を復号できたと判定し得る。その結果、I/Oサーバサービスは物理または論理資産のアイデンティティを検証する。
上述したように、システムオーケストレータ222は、コンテナを含む様々な論理エンティティを、データセンタクラスタ208のうちの様々なもの、および最終的にはサーバなどの個々の計算装置(さらにはデータクラスタ208のサーバ内のプロセッサまたはプロセッサのコア)に対する配分を制御または管理し、制御システムの稼働時間の間にこの割り当てを遂行して、様々な物理デバイス(サーバなど)が障害を生じ、サービスから外れ、過負荷になり、作動が遅いといったときに、制御システムの動作を保証し得る。この動的な稼働時間配分は、制御モジュールまたは制御ルーチンなどの論理要素を実装する物理資産またはコンピューティングデバイスが、構成システムによって指定され、稼働時間の間に変更されることがなかった過去の制御システムアーキテクチャとは大きく異なる。そのため、この新しいシステムアーキテクチャでは、ユーザは、コントローラまたはコントローラに関連付けられているコンテナなどの特定の論理要素が、任意の特定の時間にどこで実行または実装されているかを知らない可能性があり、ましてや、その論理要素に関連付けられている健全性またはパフォーマンス統計(通信バンド幅またはメッセージレートなど)を知らないか、または簡単に判定することができない可能性がある。さらに、ユーザは、構成システムのみから、任意の所与の時間において、任意の特定の物理デバイスまたは物理ノード上でどの論理要素が現在動作しているかを知ることができないため、特定の論理要素が現在実行されている物理デバイスのパフォーマンスまたは健全性指標、例えば、遅延、効率、負荷などを取得することは容易でないだろう。
しかしながら、多くの場合、プロセス制御システムの現在の動作ステータスを見るおよび/もしくは診断するために、またはプロセス制御システム内の問題を診断するために、制御システムオペレータ、保守担当者などのユーザが、制御システムのうちの1つ以上の論理要素の現在の動作ステータスを見ることができることが重要である。さらに、ユーザは、特定の物理デバイスまたは物理ノード上で、そのデバイスまたはノードにおいてまたはそのデバイスまたはノード上でサービス、更新、または他の保守または修理活動を遂行するために、どの論理要素が現在遂行されているかを知る必要がある場合がある。さらに、上述したように、プロセス制御システムの論理要素、例えばコンテナが互いにネストされているか、または固定されている方式、および/またはこれらの論理要素が特定のハードウェアコンポーネントに固定されている方式を含む、プラント内の論理要素の現在の構成を容易に視覚化することが重要である場合がある。
本明細書に記載された新しいシステムアーキテクチャを使用する制御システムの現在の稼働時間動作を見る際にユーザを支援するために、図2のサービス240のうちの1つであり得る視覚化サービスが、制御システムの様々な論理および物理要素間の現在構成されかつ動作中の関係を理解し、論理および物理要素の1つ以上のパフォーマンス指標を見る際にユーザを支援するために(ユーザインターフェースを介して)、ユーザのための1つ以上のシステム構成および/またはランタイム視覚化を生成することが提供され得る。特に、視覚化(またはユーザインターフェース)サービス3202が図42に例示されており、視覚化サービス3202は、コンピュータプロセッサ上で実行され、オーケストレータ222ならびにオーケストレータサブシステム252、255、258、260のうちの1つ以上に対して問い合わせるか、または他の方法で通信し、任意の特定の時間に、それらの論理要素および/または物理デバイスに関連する種々の健全性および/またはパフォーマンス統計またはインデックスに加えて、どの論理要素がどの物理デバイス上でホストされているかまたは実行されているかを発見する。場合によっては、視覚化サービス3202は、さらに、構成データベース3203と通信して、論理および物理要素の構成情報を取得し、論理要素間(互いに)および論理要素と制御システムの物理要素と間の現在構成されている対話の様々な構成および稼働時間の詳細を識別する情報をユーザが閲覧できるようにし得る制御システムの(論理要素と物理要素との両方を含む)構成/稼働時間視覚化を作成し得る。場合によっては、この構成インターフェースは、ユーザが構成の詳細(論理および/または物理要素の固定およびネストなど)をオンザフライまたは稼働時間の間に変更することを可能にし得る。
図42は、視覚化サービスまたはユーティリティ3202(これはコンピュータプロセッサ上で実行される)が、図1のオーケストレータ222、ならびに必要に応じて構成データベース3203と通信して、様々な論理および物理要素の構成情報および稼働時間情報を発見する様子を描いている。視覚化サービス3202は、アクティブな視覚化のためにオーケストレータ222からの情報をサブスクライブし得、および/またはユーザインターフェース3204を介してユーザの視覚化を生成するときにオーケストレータ222(および構成データベース3203)に1つ以上のクエリを送信し得る。いずれにせよ、視覚化サービス3202は、ユーザインターフェースデバイス3204(これはラップトップ、無線デバイス、電話アプリケーション、ワークステーションなどの任意のタイプのユーザインターフェースであり得る)を介してユーザに対して制御システムに関する論理および物理情報の両方を表示するために実行され、プラント内の様々な論理要素、およびこれらの論理要素が現在割り当てられている物理要素の現在の稼働時間動作と同様に構成されたことがユーザに見えるように、制御システム情報を対話方式で表示し得る。特に、視覚化サービス3202は、制御システムのうちの1つ以上の論理および/または物理要素を表示する1つ以上の画面をユーザインターフェースデバイス3204を介してユーザに提示し得、ユーザに、現在実装されているように制御システムの様々な論理および/または物理要素のいずれかを選択し、ユーザが見たい構成および/または稼働時間情報についてのさらなる詳細を示すことを可能にし得る。次に、視覚化サービス3202は、オーケストレータ222から、選択した論理および/または物理要素の稼働時間情報を取得し、稼働時間情報は、例えば、論理要素(例えば、制御コンテナなどのコンテナ)が互いの中にネストされているかまたは固定されている方式、論理要素が様々な物理要素の中または上で実行されている方式、および/または現在動作中の論理および/または物理要素の動作健全性およびパフォーマンスを示す1つ以上のパフォーマンス指標を含む。視覚化サービス3202は、この情報を1つ以上の画面表示でユーザに提示し、場合によっては、ユーザが画面表示を介して対話し、他の情報を見て、論理要素のうちの1つ以上が他の論理要素に、または物理要素に割り当てられる方法に関して、制御システムの動作を動的に変更することを可能にし得る。
一例では、ユーティリティ3202は、オーケストレータ222から稼働時情報を取得することに加えて、構成データベース3203から構成階層などの構成情報を取得し得、構成階層(構成情報および稼働時間割り当て情報の両方を含む)をユーザに提示して、ユーザに、プラントまたは制御システム内で現在動作または実行している制御システムの様々な構成された要素を見ることを可能にし得る。図43は、ユーザに提供され得る例示的な構成/稼働時間階層3210を示している。この場合、階層3210は、馴染みのある構造の物理および論理要素の両方を含み、ユーザが階層3210をドリルダウンして、上位またはより高いレベルの論理および物理要素の情報のいずれかについて、現在構成されているシステムおよび現在稼働時間の間に動作しているシステムの詳細情報を見ることができるようにする。特に、図43の例では、階層3210は、論理要素(様々な制御、サブシステム、およびI/Oサービスに関連するコンテナを含む)と物理要素(例えば、データクラスタ、計算ノードなど)との両方を描いている。概して、上述したように、ソフトウェア定義制御システムは、構成されると、物理ノードをマイクロサービス(コンテナ)に分割し、これらのコンテナをコンピューティングノードのうちの1つ以上のクラスタ上で実行するが、それらのいくつかは稼働時間の間にオーケストレータ222により選択される。図43の階層3210は、階層3210が物理ネットワーク要素3220および制御ネットワーク要素3230を含むので、この構成を示している。物理ネットワーク要素3220は、展開されると、フィールドデバイス(バルブ、送信機など)、物理I/Oデバイス、ネットワークスイッチ、データセンタクラスタおよびそのコンポーネント、ユーザインターフェース、ヒストリアンなどのいずれかを含むソフトウェア定義制御システムに関連付けられている物理要素またはデバイスの物理相互接続を階層形式で詳述またはリスト化し得る。一例では、データセンタクラスタは各々、物理ノードの集まり(すなわち、サーバの集まり)を含むことができ、各サーバは、サーバのラック(これらはすべて同じクラスタの一部であってもなくてもよい)の特定のブレードに位置し得る。さらに、各サーバは1つ以上のプロセッサを有し得、各プロセッサは1つ以上のコアを有し得、これらの様々な要素のすべては、物理ネットワーク要素3220の下にまたはその一部として指定または図示され得る。さらに、必要に応じて、各ノードまたはノードのラックは、電源がラック全体、またはラック上の特定のノードのみを供給し、単一のラック内のノードが電源冗長を有し得るように、1つ以上の特定の電源と関連付けられ得る。いずれにせよ、これおよび他の物理構成情報は、物理ネットワーク要素3220の下の階層3210に示され得る。
またさらに、図43の例示的な表示3210では、制御ネットワーク要素3230は、ユーザインターフェース(ProPlusステーション)、I/Oネットワーク(タグ付き)、無線I/Oネットワーク、および1つ以上の計算クラスタ(図43に示す参照番号3235のラベルが付いた計算クラスタ1を使用)を含む、様々な異なる物理および論理コンポーネントを内部に含む。さらに、各計算クラスタは、それに関連付けられた、またはその下に複数のノード3236を有し得、これらのノード3236のうちの1つが図43に示されている。したがって、制御ネットワーク要素3230の上位レベルの要素は、概ね、物理要素である。しかしながら、前述したように、また階層3210に示されるように、各ノード3236は、例えば、異なる構成されたコントローラ(SDCSアーキテクチャにおける論理要素である)を指定するコントローラコンテナ3240、割り当てられたモジュール3242などの制御サブシステムコンテナ、割り当てられたI/Oコンテナ3244、サードパーティコンテナ3246、エリアコンテナ3247、ヒストリアンコンテナ3248など、それに割り当てられたまたはそれに関連付けられている様々な論理要素(例えば、コンテナ)を有し得る。図43のボックス3250は、階層3210に示されたコンテナの一部(全部ではない)を指し示している。図43の階層3210は、構成されたハードウェアコンポーネントと、コンテナを含む構成された論理要素との両方を示していることに留意されたい。さらに、そして重要なことに、図43の階層3210は、そこに示される様々なコンテナが、異なる階層層の下の他のコンテナおよび/または物理要素にネストまたは固定される方式を示している。例えば、ボイラー_1(3260)の割り当てられたモジュールは、コントローラ2コンテナ940に固定され(階層3210の複数の位置に参照番号3260で示されているように)、サードパーティコンテナの材料組成はコントローラ2に固定されている(参照番号3262で示されているように)。また理解されるように、別のコンテナの下の階層3210にリストされたコンテナは、階層3210のレンダリング時に上位レベルのコンテナ内にネストされている。このネストは、要素の固定の結果であるか、またはオーケストレータ222による要素の稼働時間の配置の結果であり得る。したがって、階層3210は、システムの構成された動作(コンテナが互いに対してまたは特定のハードウェア要素にどのように固定されているかという観点から)、およびシステムの稼働時間動作(どのようにコンテナが他のコンテナ内にネストされ、特定のハードウェアまたは物理コンポーネントにおいて実行されているかという観点から)を示すために使用され得る。さらに、階層3210は、特定の割り当て可能なコンテナが現在割り当てられているコントローラまたはモジュール、および/または特定のコンテナが現在割り当てられている物理要素を示すことによってなど、稼働時間動作中に割り当て可能な論理要素の観点から、制御システムの現在の動作構成を示すことができる。
さらに、階層3210は、階層3210内の要素の対話を介するなどして、様々なコンテナがユーザによって動的に割り当て可能であることを示し得る。例えば、図43の階層3210は、様々なレシピ3270が動的に割り当て可能なコンテナであることを示している。場合によっては、ユーザインターフェースアプリケーションは、階層3210内の要素を選択し、その要素を階層3210内新しい論理または物理エンティティの下または中にドラッグアンドドロップすることによって、ユーザがコンテナ(レシピまたは他の動的に割り当て可能なコンテナなど)を再割り当てすることを可能にし得る。もちろん、論理要素を別の論理要素または物理要素に動的に再割り当てすることを遂行する他の方法も使用され得る(例えば、ドロップダウンメニュー、新しいウィンドウなど)。
したがって、図43の階層3210に示されているように、エリア、ユニット、機器モジュール、およびモジュールなどの制御アイテムは、物理制御クラスタに関連付けられ得る。割り当てられると、制御アイテム、例えばユニットC-101は、制御戦略として一緒に留まる。この例では、ユニットC-101は固定されていないため、任意のコントローラノード(計算ノード)に配分され得る。一方、ユニットボイラー_1は、コントローラ2に固定されている。コントローラ2が割り当てられているハードウェアノードに障害が発生した場合、コントローラ2に固定されているすべてのものが(オーケストレータ222のアクションに基づいて)空きリソースのある別のサーバまたはノードに移行される。一方、動的に割り当て可能な制御アイテムは、空きリソースがある任意のコントローラに動的に配分され得る。
制御アイテムについて上述したものと同じアプローチが、履歴、アラームおよびイベント、バッチ、継続的なヒストリアン、ならびにその他のサブシステムコンテナにも使用される。サブシステムは別々のコンテナで実行され、コントローラ/計算ノードに固定され得、または動的に割り当てられ得る。したがって、上記の説明に従って、すべてのサブシステムはコンテナとして扱われる。さらなる配分として、制御戦略階層からの制御アイテムは、計算クラスタに割り当てられ、次に、計算ノードに固定されるかまたは動的に割り当てられ得る(例えば、階層3210においてドラッグアンドドロップ技術を使用することによって)。同様に、I/Oコンテナは、計算クラスタに割り当てられ、制御アイテムが動的に割り当てられるように動的に割り当てられ得る。さらに進むと、マイクロコンテナはI/Oデバイス上で実行され得る。
いずれにせよ、理解されるように、視覚化サービス3202は、階層3210が(1)物理要素と論理要素との間および論理要素と他の論理要素との間の永久的に構成された(変更不可のまたは固定された)関係、(2)物理要素と論理要素との間および論理要素と他の論理要素との間の一時的に構成された(ユーザ割り当て可能なまたは稼働時間の間に動的に割り当て可能な)関係、(3)物理要素と論理要素との間および論理要素と他の論理要素との間の稼働時間の間にオーケストレータ222によって現在割り当てられる稼働時間または現在の関係、を示すように階層3210作成し得る。したがって、階層3210は、コンテナと、それらのコンテナが現在実行されているノード、サーバ、プロセッサ、コア、ラック、電源などの様々なハードウェア要素との間の関係を示し、これらの関係が固定されているかどうかを示すために作成され得る。さらに、階層3210は、動的に割り当て可能なコンテナを示すために使用され得、さらには稼働時間の間に動的に割り当て可能なコンテナの再割り当てを遂行するためにユーザによって使用または操作され得る。この場合、視覚化サービス3202は、コンテナを別の論理および/または物理要素に再割り当てする命令を受信すると、オーケストレータ222に再割り当てを指示し、オーケストレータ222は、コンテナ(および再割り当てされたコンテナの中にネストされているかまたはこれに固定されている任意のコンテナ)の再割り当てを遂行することになる。さらに、階層3210は、互いに関して様々な論理および物理要素の稼働時間構成(オーケストレータ222によって遂行されるもの)を示すために作成され得る。
もちろん、視覚化サービス3202は、論理要素(例えば、コンテナ)と他の論理要素および/または物理要素との間の関係を他の方式で表示し得、制御システムまたはその様々なコンポーネントのいずれかの現在の動作の健全性またはパフォーマンスをユーザが理解することを可能にするように、主要パフォーマンスおよび診断指標も含み得る。例として、図42の視覚化サービス3202は、物理要素を、現在それに割り当てられているか、またはその上で実行されている論理要素(コンテナ)と組み合わせて図示することによって、物理要素のセット(例えば、特定の計算クラスタのすべてのノードなど、システムのノードまたはサーバ)の各々の現在の構成をユーザに示し得る。この場合、視覚化サービス3202はまた、例えば、図2のユーティリティ252、255、258、260のうちの1つ以上によって計算または判定された物理要素の健全性、診断および/またはパフォーマンス統計または測定値を取得および示すこともできる。図44は、3つのサーバまたはノード3320を内部に有するデータクラスタ3310を示すために、視覚化サービス3202によって作成され得る例示的なユーザインターフェースまたは表示3300を示している。表示3300はまた、ノード3320の各々のコンテナまたはコンテナタイプのセットも示しており、この場合、コンテナオーケストレータサービス3330、制御コンテナのセット3332、バッチエグゼクティブコンテナ3334、および各ノード3320内の連続ヒストリアンコンテナ3336を含む。図44には示されていないが、視覚化サービス3202は、ユーザがボックス3332~3336の各々にドリルダウンして、様々なコンテナ(例えば、制御コンテナおよびそれらの制御コンテナ内にネストされたまたはこれに固定された任意のコンテナ)およびサブシステムコンテナ3334および3336を見て、それぞれのサーバ3320の各々上で現在実行されている論理要素を視認することを可能にし得る。さらに、視覚化サービス3202は、例えば、現在のCPU負荷、ストレージ使用率、ネットワーク帯域幅、およびコア温度を含む、サーバの各々のパフォーマンス指標3340のセットを表示3300上に提示し得る。もちろん、これらは、サーバまたはノード3320の各々について取得および表示することができる診断またはパフォーマンス指標のほんの数例であり、他のパフォーマンスおよび診断情報は、ハードウェア要素(サーバまたはノード3320)のそれぞれについて同様にまたは代わりに提供することができる。さらに、視覚化サービス3202は、図44のクラスタ3310内の通信ネットワークのネットワークヘルス3342などの他のパフォーマンス指標を表示または提供することができ、サーバ3320のうちの1つでエグゼクティブバッチのサービスコンテナ健全性3344などの論理要素のパフォーマンス指標を示し得る。
この場合も、視覚化サービス3202は、ユーザが、要素3330、3332、3334、および3336のいずれか(または、ハードウェア要素3320のいずれかに関連付けられるものとして表示されるサードパーティコンテナなどの他のコンテナ)にドリルダウンして、それぞれのサーバまたはハードウェアノード上で実行されているそれらのコンテナ内の論理要素、およびサブ要素のいずれかに関する1つ以上のパフォーマンスまたは診断の指標を視認することを可能にし得る。視覚化サービス3202はまた、論理サブユニットに関連付けられている、または論理サブユニットを実装する特定のサーバプロセッサもしくはコアまたはブレードまたは電源など、論理要素のサブユニットの各々を実行する物理要素のサブユニットも示し得る。したがって、このツールは、コントローラおよびI/Oならびにそれらの関連するサービスコンテナの論理ビュー、ならびにサーバおよび物理リソース管理の物理ビューなど、複数の側面からシステム全体の大きな粒度の更新をユーザに提供し、任意の特定の時間におけるソフトウェア定義制御システムまたはその任意の一部のパフォーマンスに関する診断情報を提供することもできる。
別の場合において、視覚化サービス3202は、システムまたはシステムの一部のサブパートの論理要素またはコンテナの図を提供し、これらの論理要素が現在作動または実行している様々な物理要素を示し得る。図45は、論理要素(この場合はコントローラ1コンテナ)と、およびコントローラ1コンテナの様々な論理サブ要素が制御システムのパフォーマンス中の現在の時間にハードウェアに分散されている方式を示すために使用され得る例示的な表示3400を描いている。したがって、図45の例示的な表示3400では、論理コントローラ#1は、冗長性のために、コントローラコンテナ#1インスタンスのうちの第1のものが物理サーバ3430上で実行されており、コントローラコンテナ#1インスタンスのうちの第2および第3のものが異なる物理サーバ3432上で実行されている3つの冗長コントローラコンテナ(コントローラコンテナ#1)を含むように示されている。さらに、図45の図3400は、論理コントローラ#1(その中にネストされているかまたはそれに固定されている3つのサブコンテナを含む)が、リモートI/Oコンテナ3442に結び付けられた冗長I/OサーバまたはI/Oコンテナ3440のセットを使用して通信することを示している。図3400はまた、冗長コントローラ#1インスタンスのどれが現在アクティブなコントローラまたはコントローラインスタンスとして動作しているかを示している。必要に応じて、図45の表示3400は、冗長I/Oコンテナ3440を現在実装している特定のハードウェア要素、および/またはリモートI/Oコンテナ3442を現在実行しているハードウェアデバイスを示すことができる。さらに、視覚化サービス3202は、表示3400において、そこに示されている論理または物理要素のいずれかについて、パフォーマンス指標の所望のセットのいずれかを提供し得る。もちろん、図45は単なる例であり、図45の図3400は、論理要素の任意のセットと、これらの要素が現在作動している対応する物理ノードまたはハードウェアを示すように拡張することができる。さらに、主要パフォーマンスおよび診断指標を、任意の所望の方式でそこに描かれている論理要素(および必要に応じて物理要素)の各々について、図45の図3400に表示し得る。
図46は、プラントまたは制御システム内の様々な論理および物理資産の現在の動作構成および対話、ならびに表示された各要素に対する様々なパフォーマンスおよび/または診断指標を示すために、視覚化サービス3202によって提供または作成され得る別の視覚化または表示画面3500を示している。画面表示3500は、この例では、ソフトウェア定義制御システムコンテナ3502、バッチ実行コンテナ3504、および連続ヒストリアンコンテナ3506を含む、右側の論理要素のセットを示している。図またはインターフェース画面3500は、これらの論理要素がバス3510を介してI/Oサーバ3512に接続され、そして、I/Oサーバ3512がフィールドデバイス3514のセットに結合されていることを示している。さらに、図3500は、論理要素またはコンテナ3502、3504、および3506の各々について、様々な異なる性能指標3520(現在作動中の制御システムの要素のパフォーマンスを示す)を示しており、この例では、1秒当たりのメッセージ指標、ストレージ利用指標、ネットワーク帯域幅指標、およびエラーレート指標を含む。さらに、図3500は、パフォーマンス指標3520のリストに、関連する論理要素の各々に割り当てられた物理ノードなど、論理要素を実装するために使用される物理要素を含み得る。しかしながら、この物理割り当て指標は、サーバ、プロセッサ、コア、ブレード、電源などの他の物理ハードウェアを示し得る。図3500は、I/Oサーバコンテナ3512についても同様にパフォーマンスおよび診断指標を示しているが、もちろん、この論理要素またはそこに描かれた論理要素のいずれかについて異なるパフォーマンスおよび診断指標を提供し得る。さらに、図3500は、バス帯域幅、メッセージ診断、およびエラー状態の形でバス3510のパフォーマンスおよび診断指標3522を示し、さらに、コンテナ3502、3504、および3506がI/Oサーバコンテナ3512(これは実際のI/Oサーバであってもよい)と通信しているバス3510を構成する、またはバス3510として実装されている物理ネットワークアダプタを示している。もちろん、他のパフォーマンスおよび診断指標も取得および表示され得る。したがって、再び、図46の視覚化3500は、様々な論理要素(コンテナ)が接続され、これらの論理要素を実装する物理ハードウェアに実装される方式を示し、制御システムのこの部分を構成する論理および物理要素のうちの一方または両方について診断またはパフォーマンス指標を提供して、ソフトウェア定義制御システムの動作の視覚化においてユーザを支援する。
これらの例のそれぞれにおいて、ユーザインターフェースまたは視覚化サービス3202は、これらの物理および論理要素がコンテナオーケストレータおよびシステムを通るすべてのネットワークトラフィックを管理するソフトウェア定義ネットワーキングコントローラによって実装されているときに、物理および論理構成(および所望により様々な異なる診断サービスを介して取得された関連するパフォーマンスデータ)を図示または例示し得る。さらに、これらの図に示されている視覚化のいずれかまたはすべては、カラーマップを使用して特定の健全性レベルを示し、視覚化されているソフトウェア定義制御システム内で認識または検出された問題を軽減するためにユーザが実行する必要のあるアクションを推奨する推奨システムを提供する。もちろん、図43~図46は、制御システムの稼働時間の間の任意の特定の時間に様々な論理および物理要素が対話し、遂行している方式を表示するために使用され得るスクリーンのいくつかの例を示しているが、他の視覚化が代わりに使用され得ることは理解されるであろう。
その他の考慮事項
ソフトウェアに実装される場合、本明細書に記載されたアプリケーション、モジュールなどのいずれかは、磁気ディスク、レーザーディスク(登録商標)、固体状態メモリデバイス、分子メモリ記憶デバイス、または他の記憶媒体、コンピュータまたはプロセッサのRAMまたはROMなどの任意の有形の、非一時的コンピュータ読み取り可能メモリに記憶されてもよい。本明細書に開示された例示のシステムは、他のコンポーネントの中で、ハードウェア上で実行されるソフトウェアおよび/またはファームウェアを含むものとして開示されているが、そのようなシステムは単に例示的なものであり、限定的なものとみなされるべきではないことに留意されたい。例えば、これらのハードウェア、ソフトウェア、およびファームウェアコンポーネントのうちのいずれかまたはすべてが、ハードウェアにのみ、ソフトウェアにのみ、またはハードウェアおよびソフトウェアの任意の組み合わせに、具現化され得ることが企図される。したがって、本明細書に記載される例示的なシステムは、1つ以上のコンピュータデバイスのプロセッサで実行されるソフトウェアに実装されるものとして記載されているが、提供される例がかかるシステムを実装する唯一の方式ではないことを、当業者は容易に認識するであろう。
ソフトウェアに実装される場合、本明細書に記載されたアプリケーション、モジュールなどのいずれかは、磁気ディスク、レーザーディスク(登録商標)、固体状態メモリデバイス、分子メモリ記憶デバイス、または他の記憶媒体、コンピュータまたはプロセッサのRAMまたはROMなどの任意の有形の、非一時的コンピュータ読み取り可能メモリに記憶されてもよい。本明細書に開示された例示のシステムは、他のコンポーネントの中で、ハードウェア上で実行されるソフトウェアおよび/またはファームウェアを含むものとして開示されているが、そのようなシステムは単に例示的なものであり、限定的なものとみなされるべきではないことに留意されたい。例えば、これらのハードウェア、ソフトウェア、およびファームウェアコンポーネントのうちのいずれかまたはすべてが、ハードウェアにのみ、ソフトウェアにのみ、またはハードウェアおよびソフトウェアの任意の組み合わせに、具現化され得ることが企図される。したがって、本明細書に記載される例示的なシステムは、1つ以上のコンピュータデバイスのプロセッサで実行されるソフトウェアに実装されるものとして記載されているが、提供される例がかかるシステムを実装する唯一の方式ではないことを、当業者は容易に認識するであろう。
したがって、本発明は具体的な例に関して記載されてきたが、これらは例示であるに過ぎず、本発明の限定であることを意図せず、変更、追加、または削除が、本発明の趣旨および範囲から逸脱することなく、開示される実施形態に対して行われ得ることが当業者には明らかであろう。
任意の特定の実施形態の特定の特徴、構造、および/または特性は、任意の好適な様式で、および/または任意の好適な組み合わせで、選択された特徴を、対応する他の特徴の使用を伴うまたは伴わないで使用することを含む、1つおよび/または複数の他の実施形態と組み合わせてもよい。さらに、特定の用途、状況、および/または材料を本発明の本質的な範囲または趣旨に適合させるために多くの修正を行うことができる。本明細書に記載されたおよび/または図示された本発明の実施形態の他の変形および/または修正が、本明細書の教示に照らして可能であり、本発明の趣旨または範囲の一部とみなされるべきであることを理解されたい。本発明の特定の態様は、例示的な態様として本明細書に記載されている。
Claims (51)
- 複数のコンピューティングノードを有するデータクラスタ上に実装された制御システムを有する工業プロセスを制御および視覚化する際に使用するための方法であって、各コンピューティングノードが、オペレーティングシステムのインスタンスを実行するプロセッサ、メモリ、および前記データクラスタ内の1つ以上の他のコンピューティングノードに結合された通信リソースと、を含み、前記方法が、
前記データクラスタ上で複数のコンテナを実行することと、
前記複数のコンテナを、前記工業プロセスプラント内の物理プロセスを制御するように動作する複数のプロセス制御フィールドデバイスに通信可能に結合することと、
前記コンテナをインスタンス化し、かつ前記データクラスタ上のフォールトトレランスおよび負荷分散機能を管理するように、前記データクラスタ上でコンテナオーケストレータを実行することと、
前記データクラスタ上で視覚化ルーチンを実行して、前記複数のコンテナのうちの1つ以上から、または前記コンテナオーケストレータからリアルタイムデータを受信し、かつ前記受信されたデータのうちの少なくとも一部分に基づいてグラフィック描画を提示することであって、前記グラフィック描画が、前記プロセス制御システムの稼働時間の間に前記複数のコンテナを含む構成複数の論理要素に関連付けられている論理構成、および前記プロセス制御システム内の1つ以上の物理要素に関連付けられている物理構成を含むシステム構成を表す、提示することと、を含む、方法。 - 前記視覚化ルーチンを実行することが、前記グラフィック描画上で、前記論理構成または前記物理構成のうちの少なくとも一部分の1つ以上のパフォーマンス指示を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、コンテナのセットが互いに対してネストされている様式を視覚的に示す論理構成を表すグラフィック描画を提示することを含む、請求項2に記載の方法。
- 前記ネストされたコンテナのセットが、制御コンテナと、サブシステムコンテナ内にネストされたI/Oサーバコンテナと、を含む、請求項3に記載の方法。
- 前記視覚化ルーチンを実行することが、前記コンテナのセット内の前記コンテナが互いに対して静的または動的にネストされているかどうかを視覚的に示すために前記グラフィック描画を提示することを含む、請求項3に記載の方法。
- 前記視覚化ルーチンを実行することが、第1のコンテナが第2のコンテナに固定されている様式を視覚的に示す論理構成を表すグラフィック描画を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、第1の論理要素と第1の物理要素との間の対話を表すグラフィック描画を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、第1のコンテナが第1の物理要素に固定されている様式を視覚的に示すグラフィック描画を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、第1のコンテナが第1の物理要素と動的に関連付けられている様式を視覚的に示すグラフィック描画を提示することを含み、前記動的な関連付けが、前記プロセス制御システムの稼働時間の間に変更され得る、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、ユーザに、前記グラフィック描画に基づくユーザ入力を介して、前記第1のコンテナが前記プロセス制御システムの稼働時間の間に前記第1の物理要素に関連付けられている様式を動的に変更することを可能にすることを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、第1の論理要素と第2の論理要素との間の対話を表すグラフィック描画を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、第1のコンテナが第2のコンテナに固定されている様式を視覚的に示すグラフィック描画を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、第1のコンテナが第2のコンテナ内にネストされている様式を視覚的に示すグラフィック描画を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、前記第1の論理要素が前記第2の論理要素と動的に関連付けられている様式を視覚的に示すグラフィック描画を提示することを含み、前記動的な関連付けが、前記プロセス制御システムの稼働時間の間に変更され得る、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、ユーザに、前記グラフィック描画に基づくユーザ入力を介して、前記第1の論理要素が前記第2の論理要素に関連付けられている様式を動的に変更することを可能にすることを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、前記物理構成のうちの1つ以上の物理要素を表すグラフィック描画、および前記1つ以上の物理要素のうちの1つのパフォーマンスメトリックを示すパフォーマンス指示を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、前記コンテナオーケストレータに結合されたルーチンによって判定されるような前記物理要素の健全性またはパフォーマンス測定を示すパフォーマンス指示を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、メッセージングスピード、ストレージ利用率、ネットワーク帯域幅、エラー率、割り当てられた物理ノード、メッセージ診断、エラー状態、物理ネットワークアダプタ、CPU負荷、または温度のうちの1つ以上を示すパフォーマンス指示を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、1つ以上のコンピューティングノード上で実行される1つ以上のコンテナの識別を含むグラフィック描画を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、複数のコンピューティングノードの各々の健全性状態のグラフィック描画を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、前記プロセス制御システムの1つ以上の制御コンテナおよびI/Oサブシステムの論理ビューのグラフィック描画を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、プロセス制御フィールドデバイスのセットと、I/Oサブシステムのうちの少なくとも一部分と、1つ以上のコンテナとの間の対話のビューを含むグラフィック描画を提示することを含み、前記I/Oサブシステムの前記部分を介する前記プロセス制御フィールドデバイスおよび前記コンテナの各々の間のデータフローを描く、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、前記コンテナ、プロセス制御フィールドデバイス、または前記I/Oサブシステムの前記部分のうちの1つ以上の1つ以上のパフォーマンスまたは健全性測定を含むグラフィック描画を提示することを含む、請求項1に記載の方法。
- 前記視覚化ルーチンを実行することが、前記プロセス制御システムの1つ以上の物理要素と1つ以上の論理要素との間の関係を含む、前記プロセス制御システムの現在の動作を示す構成階層を含むグラフィック描画を提示することを含む、請求項1に記載の方法。
- 工業プロセス制御システムであって、
複数のコンピューティングノードを含むデータクラスタであって、各コンピューティングノードが、
オペレーティングシステムのインスタンスを実行するプロセッサと、
メモリと、
前記データクラスタ内の1つ以上の他のコンピューティングノードに結合された通信リソースと、を含むデータクラスタと、
前記データクラスタ上で実行される複数のコンテナであって、前記複数のコンテナが、工業プロセスプラント内の物理プロセスを制御するように動作する複数のプロセス制御フィールドデバイスと通信する、複数のコンテナと、
前記データクラスタ上の前記コンテナをインスタンス化および管理するように動作可能なコンテナオーケストレータと、
前記データクラスタ上で実行される視覚化ルーチンであって、前記視覚化ルーチンが、前記複数のコンテナのうちの1つ以上から、または前記コンテナオーケストレータからリアルタイムデータを受信し、かつ前記受信されたデータのうちの少なくとも一部分に基づいてグラフィック描画を提示するように動作可能であり、前記グラフィック描画が、前記プロセス制御システムの稼働時間の間に前記複数のコンテナを含む構成複数の論理要素に関連付けられている論理構成、および前記プロセス制御システム内の1つ以上の物理要素に関連付けられている物理構成を含むシステム稼働時間構成を表す、可視化ルーチンと、を含む、工業プロセス制御システム。 - 前記視覚化ルーチンが、前記複数のコンテナのセットが互いに対してネストされている様式を視覚的に示す論理構成を表すグラフィック描画を提示する、請求項25に記載の工業プロセス制御システム。
- 前記グラフィック描画が、前記複数のコンテナのセット内の前記コンテナが互いに対して静的または動的にネストされているかどうかを視覚的に示す、請求項26に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、前記論理構成の第1の論理要素と前記物理構成の第1の物理要素との間の対話を表すグラフィック描画を提示する、請求項25に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、第1のコンテナが前記物理要素のうちの1つに固定されている様式を視覚的に示すグラフィック描画を提示する、請求項28に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、第1のコンテナが第1の物理要素と動的に関連付けられている様式を視覚的に示すグラフィック描画を提示し、前記動的な関連付けが、前記プロセス制御システムの稼働時間の間に変更され得る、請求項28に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、ユーザに、ユーザ入力デバイスを介して、前記第1のコンテナが前記工業プロセス制御システムの稼働時間の間に前記第1の物理要素に関連付けられている様式を動的に変更することを可能にする、請求項30に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、前記1つ以上の物理要素のうちの1つのパフォーマンスメトリックを示すパフォーマンス指示を表すグラフィック描画を提示する、請求項25に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、前記コンテナオーケストレータに結合されたルーチンによって判定されるような物理要素の健全性またはパフォーマンス測定を示すパフォーマンス指示を提示する、請求項25に記載の工業プロセス制御システム。
- 前記物理要素が、コンピュータデバイスまたは通信接続である、請求項33に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、1つ以上の色を使用して健全性またはパフォーマンス測定を示すパフォーマンス指示を提示する、請求項33に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、メッセージングスピード、ストレージ利用率、ネットワーク帯域幅、エラー率、割り当てられた物理ノード、メッセージ診断、エラー状態、物理ネットワークアダプタ、CPU負荷、または温度のうちの1つ以上を示すパフォーマンス指示を提示する、請求項33に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、1つ以上のコンピューティングノード上で実行される1つ以上のコンテナのうちの識別を含むグラフィック描画を提示する、請求項25に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、1つ以上のコンピューティングノード内の1つ以上のプロセッサ上で実行される1つ以上のコンテナのうちの識別を含むグラフィック描画を提示する、請求項37に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、複数のコンピューティングノードの各々の健全性ステータスを含むグラフィック描画を提示する、請求項25に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、前記プロセス制御システムの1つ以上の制御コンテナおよびI/Oサブシステムの論理ビューのグラフィック描画を提示する、請求項25に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、1つ以上のサーバおよび物理リソース管理ルーチンのビューを含むグラフィック描画を提示する、請求項25に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、プロセス制御フィールドデバイスのセットと、I/Oサブシステムのうちの少なくとも一部分と、1つ以上のコンテナとの間の対話のビューを含むグラフィック描画を提示し、前記I/Oサブシステムの前記部分を介する前記プロセス制御フィールドデバイスおよび前記1つ以上のコンテナの各々の間のデータフローを描く、請求項25に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、前記コンテナ、プロセス制御フィールドデバイス、または前記I/Oサブシステムの前記部分のうちの1つ以上の1つ以上のパフォーマンスまたは健全性測定を含むグラフィック描画を提示する、請求項42に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、前記プロセス制御システムの1つ以上の物理要素と論理要素との間の関係を含む前記プロセス制御システムの現在の動作を示す構成階層を含むグラフィック描画を提示する、請求項25に記載の工業プロセス制御システム。
- 前記階層が、1つ以上の論理要素が他の論理要素にネストまたは固定されている様式を示す、請求項44に記載の工業プロセス制御システム。
- 前記階層が、1つ以上の論理要素が現在1つ以上の物理要素に固定されている様式を示す、請求項44に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、論理要素が1つ以上の物理要素に動的に固定されているかどうかを示すグラフィック描画を提示し、前記動的に固定された関係が、前記グラフィック描画を介してユーザが変更可能である、請求項44に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、論理要素のセットと、前記論理要素のうちの1つ以上が現在実行されている前記物理要素の指示との間の関係の描画を含むグラフィック描画を提示する、請求項25に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、前記論理要素のうちの1つ以上のパフォーマンス指示をさらに含むグラフィック描画を提示する、請求項48に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、物理要素のセットの描画および前記1つ以上の物理要素によって実装されている1つ以上の論理要素の指示を含むグラフィック描画を提示する、請求項25に記載の工業プロセス制御システム。
- 前記視覚化ルーチンが、前記物理要素のうちの1つ以上のパフォーマンス指示をさらに含むグラフィック描画を提示する、請求項50に記載の工業プロセス制御システム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163211535P | 2021-06-16 | 2021-06-16 | |
US63/211,535 | 2021-06-16 | ||
US17/838,798 | 2022-06-13 | ||
US17/838,798 US20220404810A1 (en) | 2021-06-16 | 2022-06-13 | Visualization of A software defined process control system for industrial process plants |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022192056A true JP2022192056A (ja) | 2022-12-28 |
Family
ID=82705223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022097509A Pending JP2022192056A (ja) | 2021-06-16 | 2022-06-16 | 工業プロセスプラントのためのソフトウェア定義プロセス制御システムの視覚化 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220404810A1 (ja) |
JP (1) | JP2022192056A (ja) |
CN (1) | CN115480538A (ja) |
DE (1) | DE102022115155A1 (ja) |
GB (1) | GB2609088A (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11768877B2 (en) * | 2019-09-20 | 2023-09-26 | Fisher-Rosemount Systems, Inc. | Smart search capabilities in a process control system |
US11768878B2 (en) * | 2019-09-20 | 2023-09-26 | Fisher-Rosemount Systems, Inc. | Search results display in a process control system |
US20230142107A1 (en) * | 2021-11-05 | 2023-05-11 | Dragos, Inc. | Data pipeline management in operational technology hardware and networks |
US20240118669A1 (en) * | 2022-10-10 | 2024-04-11 | Schneider Electric USA, Inc. | Management system for infrastructure of an industrial system |
CN116756388B (zh) * | 2023-08-23 | 2023-10-20 | 成都太阳高科技有限责任公司 | 一种电网资产数据普查系统及方法及装置及介质 |
CN117424829A (zh) * | 2023-10-31 | 2024-01-19 | 慧之安信息技术股份有限公司 | 一种基于微服务架构的modbus设备接入方法和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10547521B1 (en) * | 2017-03-29 | 2020-01-28 | Juniper Networks, Inc. | Network dashboard with multifaceted utilization visualizations |
US10739761B2 (en) * | 2017-11-16 | 2020-08-11 | Intel Corporation | Scalable edge compute in a distributed control environment |
US11106480B2 (en) * | 2019-01-25 | 2021-08-31 | Vmware, Inc. | Systems, methods, and apparatus to improve containerized application visibility |
-
2022
- 2022-06-13 US US17/838,798 patent/US20220404810A1/en active Pending
- 2022-06-16 CN CN202210694539.6A patent/CN115480538A/zh active Pending
- 2022-06-16 JP JP2022097509A patent/JP2022192056A/ja active Pending
- 2022-06-16 GB GB2208857.9A patent/GB2609088A/en active Pending
- 2022-06-17 DE DE102022115155.7A patent/DE102022115155A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
CN115480538A (zh) | 2022-12-16 |
US20220404810A1 (en) | 2022-12-22 |
GB2609088A (en) | 2023-01-25 |
DE102022115155A1 (de) | 2022-12-22 |
GB202208857D0 (en) | 2022-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12078977B2 (en) | Discovery service in a software defined control system | |
JP2022192060A (ja) | 工業プロセスプラントのためのソフトウェア定義プロセス制御システム | |
US20220404810A1 (en) | Visualization of A software defined process control system for industrial process plants | |
US20220404811A1 (en) | Systems and Methods for Dynamically Maintained Redundancy and Load Balancing in Software Defined Control Systems for Industrial Process Plants | |
US11960588B2 (en) | Security services in a software defined control system | |
JP2022192052A (ja) | 工業プロセスプラントのためのソフトウェア定義制御システム内で動的に維持される冗長性および負荷分散のためのシステムおよび方法 | |
JP2022192050A (ja) | コンテナ化されたコントローラサービスによるプロセス制御環境内の制御を促進するように構成されたi/oサーバサービス | |
US20220404812A1 (en) | Discovery Service in a Software Defined Control System | |
JP2022192048A (ja) | コンテナ化されたサービスと通信するi/oサーバサービスを含むソフトウェア定義制御システム | |
JP2022192041A (ja) | 工業プロセスプラントのためのソフトウェア定義制御システム内でモジュールを関連付けるためのシステムおよび方法 | |
JP2022192044A (ja) | ソフトウェア定義制御システム内の発見サービス | |
JP2022192051A (ja) | プロセス制御環境内でコンテナ化されたコントローラサービスからアクティブなコントローラ出力を選択および利用するためのi/oサーバサービス | |
US20220404790A1 (en) | Visualization of a software defined process control system for industrial process plants | |
JP2022192057A (ja) | 工業プロセスプラントのためのソフトウェア定義プロセス制御システムの視覚化 | |
JP2022192042A (ja) | 工業プロセスプラントのためのソフトウェア定義制御システム内でモジュールを関連付けるためのシステムおよび方法 | |
JP2022192058A (ja) | 工業プロセスプラントのためのソフトウェア定義プロセス制御システムの階層的編成のためのシステムおよび方法 | |
JP2022192047A (ja) | ソフトウェア定義制御システムにおけるセキュリティサービス | |
JP2022192049A (ja) | サービス品質メトリックを利用してi/oサーバサービスのi/oチャネル間の移行を促進すること | |
JP2022192053A (ja) | 工業プロセスプラントのためのソフトウェア定義制御システム内で動的に維持される冗長性および負荷分散のためのシステムおよび方法 | |
JP2022192059A (ja) | 工業プロセスプラントのためのソフトウェア定義プロセス制御システムおよび方法 |