(57)【要約】      （修正有）【課題】集中型または分散型コントローラファームを使用するプロセス制御システム内の１つまたはいくつかのプロセスプラントの動作を制御するための技術により、プロセス制御システムの柔軟性を増加する。【解決手段】コントローラファームのコントローラのうちのいずれかが、１つまたはいくつかのプロセスプラントのフィールドデバイスのうちのいずれかに対応するモジュールを実行するために利用され得る。制御モジュールまたは他の動作は、１つのコントローラが、他のものが非アクティブである間にいくつかの動作を実行しないように、ロードを分散するコントローラの間で割り当てられ得る。加えて、コントローラファームは、プロセスプラントから離れた場所の温度制御室またはエリアに配置され得る。いくつかのシナリオにおいては、ロードバランシング技術は、コントローラの間でモジュールのロードを等しくまたは少なくとも同様に分散するために実行される。【選択図】図１Ａ
2019036313.tif 000002
【特許請求の範囲】
【請求項１】
プロセス制御システムであって、
前記プロセス制御システムでプロセスの少なくとも一部分を制御するために物理的機能を実行するように各々構成された複数のフィールドデバイスと、
前記複数のフィールドデバイスの各々に通信可能に連結されたコントローラファームの複数のコントローラと、を備え、前記複数のコントローラの各々が、前記物理的機能に対応する前記複数のフィールドデバイスに制御信号を伝達することによって前記プロセスの少なくとも一部分を制御するために、前記複数のフィールドデバイスに対応する制御モジュールを実行するように構成されており、前記複数のコントローラの各々が前記制御モジュールのうちの１つ以上を特定の時間間隔で実行するために選択される、プロセス制御システム。
【請求項２】
前記コントローラファームが、温度制御エリアに配置されている、請求項１に記載のプロセス制御システム。
【請求項３】
前記複数のフィールドデバイスが、第１の複数のフィールドデバイスであり、第２の複数のフィールドデバイスをさらに備え、
第１のコントローラは、前記第１の複数のフィールドデバイスに対応する第１の制御モジュールを実行するために選択され、第２のコントローラは、前記第２の複数のフィールドデバイスに対応する第２の制御モジュールを前記特定の時間間隔で実行するために選択される、請求項１に記載のプロセス制御システム。
【請求項４】
前記第１の複数のフィールドデバイス及び前記第２の複数のフィールドデバイスが同じプロセスプラント内に配置されている、請求項３に記載のプロセス制御システム。
【請求項５】
前記第１の複数のフィールドデバイス及び前記第２の複数のフィールドデバイスが異なるプロセスプラント内に配置されている、請求項３に記載のプロセス制御システム。
【請求項６】
別の時間間隔で、前記第１のコントローラが前記第１の制御モジュールを実行せず、前記第２のコントローラが前記第１の制御モジュール及び前記第２の制御モジュールを実行する、請求項３に記載のプロセス制御システム。
【請求項７】
前記第２のコントローラが前記第１の制御モジュールに対応する冗長モジュールを実行する、請求項３に記載のプロセス制御システム。
【請求項８】
前記コントローラファームの前記複数のコントローラの各々が、前記それぞれのフィールドデバイスに通信可能に連結された入力／出力（Ｉ／Ｏ）デバイスを介して各前記複数のフィールドデバイスと通信する、請求項１に記載のプロセス制御システム。
【請求項９】
前記選択されたコントローラが、前記プロセスに対応する構成データ、連続データ、及びイベントデータのうちの少なくとも１つを含む前記プロセスに対応するデータを取得及び記憶するようにさらに構成されている、請求項１に記載のプロセス制御システム。
【請求項１０】
特定の時間間隔で実行するために前記複数のコントローラの各々に前記１つ以上の制御モジュールを割り当てるように構成された、前記複数のコントローラに通信可能に連結されたコンピューティングデバイスをさらに備える、請求項１に記載のプロセス制御システム。
【請求項１１】
前記コンピューティングデバイスが前記複数のコントローラの各々からロード、帯域幅
、及び利用可能なメモリの指標を取得し、各コントローラの前記ロード、帯域幅、または利用可能なメモリのうちの少なくとも１つに従って前記複数のコントローラに制御モジュール、冗長モジュール、及びビッグデータモジュールを割り当てる、請求項１０に記載のプロセス制御システム。
【請求項１２】
前記コンピューティングデバイスが前記コントローラファーム内の前記複数のコントローラのうちの１つである、請求項１０に記載のプロセス制御システム。
【請求項１３】
前記コンピューティングデバイスが、前記複数のコントローラによって実行されるべき複数の制御モジュールを取得し、割り当てられた優先レベルに従って前記複数の制御モジュールを順位付けする、請求項１０に記載のプロセス制御システム。
【請求項１４】
前記コンピューティングデバイスが、前記複数の制御モジュールの各々の前記それぞれの順位の順番で、前記複数のコントローラに制御モジュールを割り当て、最高順位の制御モジュールが最初に割り当てられる、請求項１３に記載のプロセス制御システム。
【請求項１５】
コントローラファームを介してプロセス制御システム内の１つ以上のプロセスプラントの複数のフィールドデバイスを制御する方法であって、
コントローラファームの複数のコントローラによって、前記プロセス制御システムでプロセスの少なくとも一部分を制御するために、物理的機能を実行するように各々構成された複数のフィールドデバイスに制御信号を伝達することであって、前記複数のコントローラの各々が、前記プロセスの少なくとも一部分を制御するために、前記複数のフィールドデバイスに対応する制御モジュールを実行するように構成されている、伝達することと、
前記制御モジュールのうちの１つ以上を特定の時間間隔で実行するために前記複数のコントローラのうちの１つを選択することと、
前記選択されたコントローラによって、前記特定の時間間隔の間、前記１つ以上の制御モジュールに従って前記複数のフィールドデバイスに制御信号を伝達することと、を含む、方法。
【請求項１６】
前記コントローラファームが、温度制御エリアに配置されている、請求項１５に記載の方法。
【請求項１７】
前記複数のフィールドデバイスが、第１の複数のフィールドデバイスであり、
前記第１の複数のフィールドデバイスに対応する第１の制御モジュールを前記特定の時間間隔で実行するために第１のコントローラを選択することと、
前記第１のコントローラによって、前記特定の時間間隔の間、前記第１の制御モジュールに従って前記第１の複数のフィールドデバイスに制御信号を伝達することと、
前記第２の複数のフィールドデバイスに対応する前記第２の制御モジュールを前記特定の時間間隔で実行するために第２のコントローラを選択することと、
前記第２のコントローラによって、前記特定の時間間隔の間、前記第２の制御モジュールに従って前記第２の複数のフィールドデバイスに制御信号を伝達することと、をさらに含む、請求項１５に記載の方法。
【請求項１８】
前記第１の複数のフィールドデバイス及び前記第２の複数のフィールドデバイスが同じプロセスプラント内に配置されている、請求項１７に記載の方法。
【請求項１９】
前記第１の複数のフィールドデバイス及び前記第２の複数のフィールドデバイスが異なるプロセスプラント内に配置されている、請求項１７に記載の方法。
【請求項２０】
別の時間間隔で、前記第１のコントローラが前記第１の制御モジュールを実行せず、
前記第２のコントローラによって、前記別の時間間隔の間、前記第１の制御モジュールに従って前記第１の複数のフィールドデバイスに制御信号を伝達することをさらに含む、請求項１７に記載の方法。
【請求項２１】
前記第２のコントローラによって、前記第１の制御モジュールに対応する冗長モジュールを実行することをさらに含む、請求項１７に記載の方法。
【請求項２２】
前記選択されたコントローラによって、前記プロセスに対応する構成データ、連続データ、及びイベントデータのうちの少なくとも１つを含む前記プロセスに対応するデータを取得及び記憶することをさらに含む、請求項１５に記載の方法。
【請求項２３】
前記複数のコントローラに通信可能に連結されたコンピューティングデバイスが特定の時間間隔で制御モジュールを実行するためにコントローラを選択する、請求項１５に記載の方法。
【請求項２４】
前記コンピューティングデバイスによって、前記複数のコントローラの各々からロード、帯域幅、及び利用可能なメモリの指標を取得することと、
各コントローラの前記ロード、帯域幅、または利用可能なメモリのうちの少なくとも１つに従って前記複数のコントローラに制御モジュール、冗長モジュール、及びビッグデータモジュールを割り当てることと、をさらに含む、請求項２３に記載の方法。
【請求項２５】
前記コンピューティングデバイスが前記コントローラファーム内の前記複数のコントローラのうちの１つである、請求項２３に記載の方法。
【請求項２６】
プロセス制御システムにおける制御モジュールのロードをバランシングするための方法であって、
前記プロセス制御システム内で物理的機能を実行するように構成されたフィールドデバイスに提供される制御信号を介して、前記プロセス制御システムでプロセスの少なくとも一部分を制御する複数の制御モジュールを取得することと、
前記フィールドデバイスに通信可能に連結されたコントローラファームの複数のコントローラの各々から可用性メトリックを取得することと、
前記可用性メトリックに基づいて特定の時間間隔で前記それぞれの制御モジュールを実行するために前記複数のコントローラのうちの１つに前記複数の制御モジュールの各々を割り当てることと、を含む、方法。
【請求項２７】
前記複数のコントローラのうちの１つの前記可用性メトリックを取得することが、前記コントローラのロード、帯域幅、及び利用可能なメモリの指標に基づいて前記可用性メトリックを識別することを含む、請求項２６に記載の方法。
【請求項２８】
１つ以上の冗長モジュール及び１つ以上のビッグデータモジュールの各々を、前記可用性メトリックに基づいて前記特定の時間間隔で前記それぞれの冗長モジュールまたはビッグデータモジュールを実行するために、前記複数のコントローラのうちの１つに割り当てることをさらに含む、請求項２７に記載の方法。
【請求項２９】
前記制御モジュール、冗長モジュール、及びビッグデータモジュールの各々に優先レベルを割り当てることと、
前記割り当てられた優先レベルに従って前記制御モジュール、冗長モジュール、及びビッグデータモジュールを順位付けすることと、をさらに含む、請求項２８に記載の方法。
【請求項３０】
前記制御モジュール、冗長モジュール、及びビッグデータモジュールが、前記それぞれ
の順位の順番で、前記複数のコントローラに割り当てられ、最高順位の制御モジュール、冗長モジュール、またはビッグデータモジュールが最初に割り当てられる、請求項２９に記載の方法。
【請求項３１】
プロセス制御システムのコンピューティングデバイスであって、
１つ以上のプロセッサと、
前記１つ以上のプロセッサに連結され、内部に命令を記憶させた非一時的コンピュータ可読媒体であって、前記命令が、前記１つ以上のプロセッサによって実行されたとき、前記コンピューティングデバイスに、
前記プロセス制御システム内で物理的機能を実行するように構成されたフィールドデバイスに提供される制御信号を介して前記プロセス制御システムでプロセスの少なくとも一部分を制御する複数の制御モジュールを取得させ、
前記複数のフィールドデバイスに通信可能に連結されたコントローラファームの複数のコントローラの各々から可用性メトリックを取得させ、
前記可用性メトリックに基づいて特定の時間間隔で前記それぞれの制御モジュールを実行するために前記複数のコントローラのうちの１つに前記複数の制御モジュールの各々を割り当てさせる、非一時的コンピュータ可読媒体と、を備える、コンピューティングデバイス。
【請求項３２】
前記複数のコントローラのうちの１つに前記可用性メトリックを取得するために、前記命令が前記コンピューティングデバイスに前記コントローラのロード、帯域幅、及び利用可能なメモリの指標に基づいて前記可用性メトリックを識別させる、請求項３１に記載のコンピューティングデバイス。
【請求項３３】
前記命令がさらに、前記コンピューティングデバイスに、
１つ以上の冗長モジュール及び１つ以上のビッグデータモジュールの各々を、前記可用性メトリックに基づいて前記特定の時間間隔で前記それぞれの冗長モジュールまたはビッグデータモジュールを実行するために前記複数のコントローラのうちの１つに割り当てさせる、請求項３２に記載のコンピューティングデバイス。
【請求項３４】
前記命令がさらに、前記コンピューティングデバイスに、
前記制御モジュール、冗長モジュール、及びビッグデータモジュールの各々に優先レベルを割り当てさせ、
前記割り当てられた優先レベルに従って前記制御モジュール、冗長モジュール、及びビッグデータモジュールを順位付けさせる、請求項３３に記載のコンピューティングデバイス。
【請求項３５】
前記制御モジュール、冗長モジュール、及びビッグデータモジュールが、前記それぞれの順位の順番で、前記複数のコントローラに割り当てられ、最高順位の制御モジュール、冗長モジュール、またはビッグデータモジュールが最初に割り当てられる、請求項３４に記載のコンピューティングデバイス。
【請求項３６】
前記コンピューティングデバイスが前記コントローラファーム内の前記複数のコントローラのうちの１つである、請求項３１に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、広義には、プロセスプラント及びプロセス制御システムに関し、より具体的には、１つまたはいくつかのプロセスプラントにわたって分散されたいくつかのフィールドデバイスを制御する集中型または分散型コントローラファームに関する。
【背景技術】
【０００２】
物理的物質または生産物を製造、精製、変形、生成、または生産するための、化学、石油、工業、または他のプロセスプラントにおいて使用されるもの等の分散型プロセス制御システムは、典型的には、アナログバス、デジタルバス、またはアナログ／デジタル結合バスを介して、あるいは無線通信リンクまたはネットワークを介して、１つ以上のフィールドデバイスと通信可能に連結される、１つ以上のプロセスコントローラを含む。例えば、バルブ、バルブポジショナ、スイッチ、及び送信器（例えば、温度センサ、圧力センサ、レベルセンサ、及び流量センサ）である場合があるフィールドデバイスは、プロセス環境内に配置され、概して、バルブの開放または閉鎖、温度もしくは圧力といったプロセスパラメータ及び／または環境パラメータの測定等の物理的またはプロセス制御機能を実行して、プロセスプラントまたはシステム内で実行中の１つ以上のプロセスを制御する。周知のＦｉｅｌｄｂｕｓプロトコルに準拠するフィールドデバイス等の、スマートフィールドデバイスは、制御計算、アラーム機能、及びコントローラ内で一般に実装される他の制御機能もまた実行し得る。プロセスコントローラは、これもまた典型的にはプラント環境内に配置されるが、フィールドデバイスによって行われるプロセス測定を示す信号及び／またはフィールドデバイスに関する他の情報を受信し、例えば、プロセス制御判断を行い、受信した情報に基づき制御信号を生成し、ＨＡＲＴ（登録商標）、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）、及びＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓフィールドデバイス等の、フィールドデバイスで実行される制御モジュールまたはブロックと連携する、異なる制御モジュールを実行するコントローラアプリケーションを実行する。コントローラ内の制御モジュールは、通信ラインまたはリンクを経由して、フィールドデバイスに制御信号を送信し、それによって、プロセスプラントまたはシステムの少なくとも一部分の動作を制御し、プラントまたはシステム内部で稼働または実行している１つ以上の工業プロセスの少なくとも一部分を、例えば、制御する。例えば、コントローラ及びフィールドデバイスは、プロセスプラントまたはシステムによって制御されているプロセスの少なくとも一部分を制御する。Ｉ／Ｏデバイスは、これもまた典型的にはプラント環境内に配置され、典型的にはコントローラと１つ以上のフィールドデバイスとの間に配設され、それらの間の通信を、例えば、電気信号をデジタル値に変換することによって可能にし、逆の場合も同様である。
【０００３】
フィールドデバイス及びコントローラからの情報は、制御室もしくはより厳しいプラント環境からは離れた他の場所に典型的には配置される、オペレータワークステーション、パーソナルコンピュータもしくはコンピューティングデバイス、データヒストリアン、レポートジェネレータ、集中型データベース、または他の集中型管理コンピューティングデバイス等の、１つ以上の他のハードウェアデバイスに対して、通常、通信ネットワークを通じて利用可能にされる。これらのハードウェアデバイスの各々は、典型的には、プロセスプラントにわたって、またはプロセスプラントの一部分にわたって集中化される。これらのハードウェアデバイスは、例えば、オペレータが、プロセス制御ルーチンの設定の変更、コントローラもしくはフィールドデバイス内の制御モジュールの動作の修正、プロセスの現在の状態の閲覧、フィールドデバイス及びコントローラによって生成されたアラームの閲覧、従業員の訓練もしくはプロセス制御ソフトウェアの試験を目的としたプロセスの動作のシミュレーション、構成データベースの保守及び更新等の、プロセスの制御及び／またはプロセスプラントの動作に関する機能を行うことを可能にし得るアプリケーションを実行する。ハードウェアデバイス、コントローラ、及びフィールドデバイスによって利用される通信ネットワークは、有線通信パス、無線通信パス、または有線及び無線通信パスの組み合わせを含み得る。
【０００４】
例として、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔによって販売されている、ＤｅｌｔａＶ（商標）制御システムは、プロセスプラント内の多様な場所に配置された異なるデバイス内に記憶され、それら異なるデバイスによって実行される複数のアプリケーションを含む。１つ以上のワークステーションまたはコンピューティングデバイス内に備わる構成アプリケーションは、ユーザによる、プロセス制御モジュールの作成または変更、及び通信ネットワークを介した、これらのプロセス制御モジュールの、専用分散型コントローラへのダウンロードを可能にする。典型的には、これらの制御モジュールは、通信可能に相互接続された機能ブロックで構成され、これらの機能ブロックは、それに対する入力に基づいて制御スキーム内で機能を実施し、出力を制御スキーム内の他の機能ブロックに提供するオブジェクト指向プログラミングプロトコル内のオブジェクトである。また、構成アプリケーションは、データをオペレータに対して表示するため、かつプロセス制御ルーチン内の設定点等の設定のオペレータによる変更を可能にするために表示アプリケーションが使用するオペレータインターフェイスを、構成設計者が作成または変更することを可能にし得る。各専用コントローラ、及びいくつかの場合においては、１つ以上のフィールドデバイスは、実際のプロセス制御機能を実装するために、それらに割り当てられてダウンロードされた制御モジュールを実行するそれぞれのコントローラアプリケーションを記憶及び実行する。閲覧アプリケーションは、１つ以上のオペレータワークステーション（またはオペレータワークステーション及び通信ネットワークと通信可能に接続された１つ以上のリモートコンピューティングデバイス）上で実行され得、この閲覧アプリケーションは、コントローラアプリケーションから通信ネットワークを介してデータを受信し、ユーザインターフェースを使用してこのデータをプロセス制御システム設計者、オペレータ、またはユーザに表示して、オペレータのビュー、エンジニアのビュー、技術者のビュー等のいくつかの異なるビューのうちのいずれかを提供し得る。データヒストリアンアプリケーションが、典型的には、通信ネットワークにわたって提供されたデータの一部または全てを収集及び記憶するデータヒストリアンデバイスに記憶され、それによって実行される一方で、構成データベースアプリケーションは、現在のプロセス制御ルーチン構成及びそれに関連付けられたデータを記憶するために、通信ネットワークに接続されたさらに離れたコンピュータで実行され得る。あるいは、構成データベースは、構成アプリケーションと同じワークステーションに配置されてもよい。
【０００５】
現在既知のプロセス制御プラント及びプロセス制御システムのアーキテクチャは、限られたコントローラ及びデバイスのメモリ、通信帯域幅、ならびにコントローラ及びデバイスのプロセッサ能力によって強く影響される。例えば、現在既知のプロセス制御システムアーキテクチャにおいては、コントローラのダイナミック及びスタティック不揮発性メモリの使用は、通常、最小限にされるか、または少なくとも慎重に管理される。結果として、システム構成中（例えば、演繹的に）、ユーザは、典型的には、コントローラのどのデータをアーカイブまたは保存すべきか、それが保存される頻度、及び圧縮が使用されるか否かを選択する必要があり、コントローラは、それに応じて、この制限されたデータ規則のセットで構成されている。結果的に、トラブルシューティング及びプロセス分析において有用であり得るデータは、多くの場合、アーカイブされず、それが収集される場合、有用な情報は、データ圧縮によって失われている可能性がある。
【０００６】
加えて、現在既知のプロセス制御システムでコントローラのメモリ使用を最小限にするために、（コントローラの構成によって示されるように）アーカイブまたは保存されるべき選択されたデータは、適切なデータヒストリアンまたはデータサイロでの記憶のために
ワークステーションまたはコンピューティングデバイスに報告される。データを報告するために使用される現在の技術は、通信リソースを十分に利用せず、過剰なコントローラローディングを誘発する。加えて、ヒストリアンまたはサイロでの通信及びサンプリングの時間遅延によって、データ収集及びタイムスタンプは、実際のプロセスと、多くの場合、同期しない。
【０００７】
さらに、上で言及されたように、プロセス制御モジュールは、専用分散型コントローラによって実行され、各コントローラは、いくつかの近接して配置されたフィールドデバイスに通信可能に連結される。各コントローラは、近接して配置されたフィールドデバイスのための制御モジュールの実行に限定され、１つのコントローラは、プロセスプラントの異なる部分内で別のコントローラに通信可能に連結されたフィールドデバイスを制御できない。コントローラの分散型アーキテクチャは、他のコントローラが非アクティブまたは利用されていない一方で、いくつかの動作またはタスクを実行するためにいくつかのコントローラが必要とされ得るとき、プロセスプラントでの非効率性に繋がり得る。
【発明の概要】
【０００８】
１つまたはいくつかのプロセスプラント内のプロセス制御システムは、サーバファームと同様のいくつかのコントローラを有する集中型または分散型コントローラファームを含む。コントローラファームは、ブレードサーバまたはラックサーバを含み得、コントローラファームのコントローラの各々は、プロセスプラントの動作を制御するために１つのプロセスプラントまたはいくつかのプロセスプラントのフィールドデバイスの各々を制御するように構成されている。この方法では、コントローラは、プロセスプラントの特定の部分で互いに近接して配置された既定の数のフィールドデバイスの制御に限定されない。コントローラファーム内の単一のコントローラは、プロセスプラントのいくつかの部分で、または異なるプロセスプラントで、フィールドデバイスを同時に制御し得る。加えて、同じコントローラが、第１の時間間隔の間にフィールドデバイスの一組及び第２の時間間隔の間にプロセスプラントの別の部分のフィールドデバイスの別の組を制御し得る。コントローラファームのコントローラのうちのいずれかが、１つまたはいくつかのプロセスプラントのフィールドデバイスのうちのいずれかに対応する制御モジュールまたは他の動作を実行するために利用され得るように、これは、プロセス制御システムの増加した柔軟性を可能にする。制御モジュールまたは他の動作は、他のコントローラが非アクティブである一方で、１つのコントローラがいくつかの動作を行わないように、コントローラの間で割り当てられ得る。いくつかのシナリオにおいては、集中型または分散型コントローラファームは、プロセスプラントから離れた場所の温度制御室またはエリアに配置される。
【０００９】
コントローラファームは、また、制御モジュール及び他の動作をコントローラに割り当てる制御マネージャを含み得る。制御マネージャは、コントローラファーム内のコントローラのうちの１つに含まれるアプリケーションであり得るか、または、別のコンピューティングデバイス内に含まれ得る。例えば、制御マネージャは、構成アプリケーションを介して生成された制御モジュールを受信し、制御モジュールをコントローラファーム内のコントローラに割り当て得る。コントローラは、可用性に基づいて制御モジュールを割り当てられ得る。例えば、制御マネージャは、また、ロード、帯域幅、利用可能なメモリ等の指標をコントローラファームのコントローラの各々から受信し得て、制御モジュール及び他の動作をそれぞれの可用性の量に基づいてコントローラに割り当て得る。
【図面の簡単な説明】
【００１０】
【図１Ａ】プロセス制御システム内の１つ以上のプロセスプラントのフィールドデバイスに通信可能に連結された集中型または分散型コントローラファームを含むプロセス制御システムのブロック図を示す。
【図１Ｂ】図１Ａのプロセス制御システムと通信し得る集中型または分散型コントローラファームの例示的なアーキテクチャを例示する。
【図２】図１Ｂの集中型または分散型コントローラファームの例示的な制御マネージャコンピューティングデバイス及びいくつかのコントローラのブロック図を例示する。
【図３】プロセス制御システム内でコントローラのロードをバランシングするための例示的な方法を表すフロー図である。
【発明を実施するための形態】
【００１１】
図１Ａは、プロセスプラント１０で動作する例示的なプロセス制御システム１００のブロック図である。プロセス制御システム１００は、様々な他のデバイス間で直接的または間接的に接続性を提供するネットワークバックボーン１０５を含んでもよい。ネットワークバックボーン１０５に結合されたデバイスは、様々な実施形態において、アクセスポイント７２、他のプロセスプラントへのゲートウェイ７５（例えば、イントラネットもしくは企業広域ネットワークを介して）、外部システムへのゲートウェイ７８（例えば、インターネットへの）、ＵＩデバイス１１２、コントローラファーム１６０内のコントローラ１５０ａ〜ｎ、分散型コントローラ１１、入力／出力（Ｉ／Ｏ）カード２６及び２８、有線フィールドデバイス１５〜２２、無線ゲートウェイ３５、ならびに無線通信ネットワーク７０を含む。通信ネットワーク７０は、無線フィールドデバイス４０〜４６、無線アダプタ５２ａ及び５２ｂ、アクセスポイント５５ａ及び５５ｂ、ならびにルータ５８を含む無線デバイス４０〜５８を含んでもよい。無線アダプタ５２ａ及び５２ｂは、それぞれ非無線フィールドデバイス４８及び５０に接続されてもよい。分散型コントローラ１１は、プロセッサ３０、メモリ３２、及び１つ以上の制御ルーチン３８を含んでもよい。加えて、下により詳細に記載されるように、コントローラファーム１６０内のコントローラ１５０ａ〜ｎの各々は、１つ以上のプロセッサ、メモリ、及び１つ以上の制御ルーチンを含んでもよい。図１Ａは、ネットワークバックボーン１０５に接続されたデバイスのいくつかのうちのただ単一の１つを示しているが、デバイスの各々がネットワークバックボーン１０５上に複数のインスタンスを有することができ、実際に、プロセスプラント１０は、複数のネットワークバックボーン１０５を含んでもよいことが理解されるだろう。加えて、図１Ａが単一のプロセスプラント１０を示す一方で、プロセス制御システム１００は、コントローラファーム１６０内のコントローラ１５０ａ〜ｎによって制御されるフィールドデバイスを有するいくつかのプロセスプラント１０を含んでもよい。さらに、コントローラファーム１６０はプロセスプラント１０内に配置され得る一方で、コントローラファーム１６０は、また、コントローラ１５０ａ〜ｎの過熱を防ぐために、温度制御室またはエリア１５４に離れて配置され得る。他の実施形態では、コントローラファーム１６０は、分散型コントローラファーム１６０ａ〜ｃがコントローラ１５０ａ〜ｃ、１５０ｄ〜ｆ、及び１５０ｇ〜ｉのサブセットに分割されているいくつかの温度制御室またはエリア１５４ａ〜ｃに配置された分散型コントローラファーム１６０ａ〜１６０ｃである。例えば、温度制御室またはエリア１５４ａ〜ｃの各々は、異なるプロセスプラント１０と関連付けられ得る。別の実施例では、温度制御室またはエリア１５４ａ〜ｃは、異なる離れた場所（例えば、異なる市、州、国等）にある。
【００１２】
ＵＩデバイス１１２は、ネットワークバックボーン１０５を介してコントローラファーム１６０、分散型コントローラ１１、及び無線ゲートウェイ３５に通信可能に接続されてもよい。コントローラファーム１６０及び分散型コントローラ１１は、入力／出力（Ｉ／Ｏ）カード２６及び２８を介して有線フィールドデバイス１５〜２２に通信可能に接続されてもよく、ネットワークバックボーン１０５及び無線ゲートウェイ３５を介して無線フィールドデバイス４０〜４６に通信可能に接続されてもよい。分散型コントローラ１１は、フィールドデバイス１５〜２２及び４０〜４６のうちの少なくともいくつかを使用してバッチプロセスまたは連続プロセスを実装するように動作してもよい。分散型コントローラ１１は、例として、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔによって販売されているＤｅｌｔａＶ（商標）コントローラであってもよく、プロセス制御ネット
ワークバックボーン１０５に通信可能に接続されている。
【００１３】
コントローラファーム１６０は、また、コントローラ１５０ａ〜ｎのうちの少なくとも１つならびにフィールドデバイス１５〜２２及び４０〜４６のうちのいくつかを使用してバッチプロセスまたは連続プロセスを実装するように動作してもよい。いくつかの実施形態では、コントローラファーム１６０は、プロセス制御ネットワークバックボーン１０５に通信可能に接続されている。分散型コントローラ１１及びコントローラファーム１６０もまた、例えば、標準の４−２０ｍＡデバイス、Ｉ／Ｏカード２６、２８（もしくはＩ／Ｏカード２６、２８に電気的に接続されたエレクトロニックマーシャリングコンポーネント）、及び／またはＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓプロトコル、ＨＡＲＴ（登録商標）プロトコル、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）プロトコル等の任意のスマート通信プロトコルに関連付けられた任意の所望のハードウェア及びソフトウェアを使用して、フィールドデバイス１５〜２２及び４０〜４６に通信可能に接続されてもよい。図１Ａに例示される実施形態では、分散型コントローラ１１、フィールドデバイス１５〜２２、及びＩ／Ｏカード２６、２８は、有線デバイスであり、コントローラファーム１６０及びフィールドデバイス４０〜４６は、無線デバイスである。分散型コントローラ１１がフィールドデバイス１５〜２２及び４０〜４６の既定のセットに通信可能に接続され得る一方で、プロセス制御システム１００内の他のプロセスプラントのフィールドデバイスと同様に、コントローラファームのコントローラ１５０ａ〜ｎの各々がプロセスプラント１０のフィールドデバイス１５〜２２及び４０〜４６の各々に通信可能に接続される。
【００１４】
ＵＩデバイス１１２の動作中、ＵＩデバイス１１２は、いくつかの実施形態では、ＵＩデバイス１１２が入力インターフェースを介して入力を受け入れ、ディスプレイに出力を提供することを可能にする、ユーザインターフェース（「ＵＩ」）を実行してもよい。ＵＩデバイス１１２は、コントローラファーム１６０からデータ（例えば、プロセスパラメータ、ログデータ、センサデータ、及び／または捕捉及び記憶され得る任意の他のデータのようなプロセス関連データ）を受信してもよい。ＵＩデバイス１１２は、分散型コントローラ１１及び無線ゲートウェイ３５等のプロセス制御システム１００の他のノードから、バックボーン１０５を介して、ＵＩデータ（表示データ及びプロセスパラメータデータを含み得る）を受信してもよい。ＵＩデバイス１１２で受信されたＵＩデータに基づいて、ＵＩデバイス１１２は、プロセス制御システム１００に関連付けられたプロセスの態様を表す出力（すなわち、視覚的表現またはグラフィック）を提供し、ユーザがプロセスを監視することを可能にする。ユーザはまた、ＵＩデバイス１１２で入力を提供することによって、プロセスの制御に影響を及ぼしてもよい。例示のために、ＵＩデバイス１１２は、例えば、タンク充填プロセスを表すグラフィックを提供してもよい。そのようなシナリオでは、ユーザは、タンクレベルの測定値を読み取り、タンクを満たす必要があると判断してもよい。ユーザは、ＵＩデバイス１１２に表示された入口バルブグラフィックと対話し、入口バルブを開くようにコマンドを入力してもよい。
【００１５】
動作中、ユーザは、ＵＩデバイス１１２と対話して、フィールドデバイス１５〜２２及び４０〜４６のいずれか等、プロセス制御システム１００の１つ以上のデバイスを監視または制御してもよい。ユーザは、例えば、コントローラファーム１６０または分散型コントローラ１１に記憶された制御ルーチンに関連付けられたパラメータを修正または変更するために、ＵＩデバイス１１２と対話してもよい。分散型コントローラ１１のプロセッサ３０は、制御ループを含み得る１つ以上のプロセス制御ルーチン（メモリ３２に記憶されている）を実装または統括する。プロセッサ３０は、フィールドデバイス１５〜２２及び４０〜４６、ならびにバックボーン１０５に通信可能に接続された他のノードと通信してもよい。同様に、コントローラファーム１６０のコントローラ１５０ａ〜ｎ内のプロセッサは、制御ループを含み得る１つ以上のプロセス制御ルーチン（メモリに記憶されている
）を実装または統括するために選択され得る。選択されたプロセッサは、フィールドデバイス１５〜２２及び４０〜４６、ならびにバックボーン１０５に通信可能に接続された他のノードと通信してもよい。本明細書に記載される任意の制御ルーチンまたはモジュール（品質予測及び障害検出モジュールまたは機能ブロックを含む）は、そのように所望される場合は、その一部を異なるコントローラまたは他のデバイスによって実装または実行させてもよいことに留意されたい。同様に、プロセス制御システム１００内で実装されるべき本明細書に記載の制御ルーチンまたはモジュールは、ソフトウェア、ファームウェア、ハードウェア等を含む任意の形態を取ってもよい。制御ルーチンは、オブジェクト指向プログラミング、ラダーロジック、シーケンシャルファンクションチャート、ファンクションブロックダイアグラム、または任意の他のソフトウェアプログラミング言語もしくは設計パラダイムを使用したもの等、任意の所望のソフトウェアフォーマットにおいて実装されてもよい。具体的には、制御ルーチンは、ＵＩデバイス１１２を通してユーザによって実装されてもよい。制御ルーチンは、ランダムアクセスメモリ（ＲＡＭ）または読み出し専用メモリ（ＲＯＭ）等の任意の所望の種類のメモリに記憶されてもよい。同様に、制御ルーチンは、例えば、１つ以上のＥＰＲＯＭ、ＥＥＰＲＯＭ、特定用途向け集積回路（ＡＳＩＣ）、または任意の他のハードウェアまたはファームウェア要素にハードコードされてもよい。したがって、コントローラファーム１６０または分散型コントローラ１１は、任意の所望の方法で制御戦略または制御ルーチンを実装するように（ある実施形態ではＵＩデバイス１１２を使用するユーザによって）構成されてもよい。
【００１６】
ＵＩデバイス１１２のいくつかの実施形態では、ユーザはＵＩデバイス１１２と対話して、一般に機能ブロックと称されるものを使用してコントローラファーム１６０または分散型コントローラ１１で制御戦略を実装してもよく、各機能ブロックは、制御ルーチン全体のオブジェクトまたは他の部分（例えばサブルーチン）であり、プロセス制御システム１００内でプロセス制御ループを実装するために（リンクと呼ばれる通信を介して）他の機能ブロックと連携して動作する。制御ベースの機能ブロックは、典型的には、トランスミッタ、センサまたは他のプロセスパラメータ測定デバイスに関連付けられたもの等の入力機能、ＰＩＤ、ファジー論理等を行う制御ルーチンに関連付けられたもの等の制御機能、または、プロセス制御システム内の何らかの物理的機能を実行するためのバルブ等の一部のデバイスの動作を制御する出力機能のうちの１つを行う。無論、ハイブリッド及び他の種類の機能ブロックが存在する。機能ブロックは、ＵＩデバイス１１２で提供されるグラフィカル表現を有してもよく、ユーザが、機能ブロックの種類、機能ブロック間の接続、及びプロセス制御システムで実装された機能ブロックの各々に関連付けられた入力／出力を容易に修正することを可能にする。機能ブロックは、典型的には、これらの機能ブロックが標準の４〜２０ｍＡデバイス及びＨＡＲＴデバイス等のいくつかの種類のスマートフィールドデバイスに使用されるか、またはそれらに関連付けられる場合、コントローラファーム１６０または分散型コントローラ１１に記憶及び実行されてもよく、または、Ｆｉｅｌｄｂｕｓデバイスの場合であり得るように、フィールドデバイス自体に記憶及び実装されてもよい。コントローラファーム１６０または分散型コントローラ１１は、１つ以上の制御ループを実装し得る１つ以上の制御ルーチン３８を含んでもよい。各制御ループは、典型的には、制御モジュールと称され、機能ブロックのうちの１つ以上を実行することによって行われてもよい。
【００１７】
さらに図１Ａを参照すると、無線フィールドデバイス４０〜４６は、ＷｉｒｅｌｅｓｓＨＡＲＴプロトコル等の無線プロトコルを使用して無線ネットワーク７０で通信する。ある実施形態では、ＵＩデバイス１１２は、無線ネットワーク７０を使用して無線フィールドデバイス４０〜４６と通信できてもよい。このような無線フィールドデバイス４０〜４６は、プロセス制御システム１００の１つ以上の他のノードと直接通信してもよく、これらのノードは、（例えば、無線プロトコルを使用して）無線通信するようにも構成されている。無線で通信するように構成されていない１つ以上の他のノードと通信するために、
無線フィールドデバイス４０〜４６は、バックボーン１０５に接続された無線ゲートウェイ３５を利用してもよい。無論、フィールドデバイス１５〜２２及び４０〜４６は、将来開発される任意の標準規格またはプロトコルを含む任意の有線もしくは無線プロトコル等の任意の他の所望の標準規格（複数可）またはプロトコルに準拠してもよい。
【００１８】
無線ゲートウェイ３５は、無線通信ネットワーク７０の様々な無線デバイス４０〜５８へのアクセスを提供し得るプロバイダデバイスの一例である。具体的には、無線ゲートウェイ３５は、無線デバイス４０〜５８とプロセス制御システム１００の他のノード（図１Ａのコントローラファーム１６０及び分散型コントローラ１１を含む）との間の通信結合を提供する。無線ゲートウェイ３５は、場合によっては、共有層または有線及び無線プロトコルスタックの層にトンネリングしながら、有線及び無線プロトコルスタックの下位層（例えば、アドレス変換、ルーティング、パケットセグメンテーション、優先順位付け等）へのルーティング、バッファリング、ならびにタイミングサービスによって、通信結合を提供する。他の場合には、無線ゲートウェイ３５は、いかなるプロトコル層も共有しない有線プロトコルと無線プロトコルとの間でコマンドを翻訳してもよい。プロトコル及びコマンド変換に加えて、無線ゲートウェイ３５は、無線ネットワーク７０に実装された無線プロトコルに関連付けられたスケジューリングスキームのタイムスロット及びスーパーフレーム（等しい時間間隔の通信タイムスロットのセット）によって使用される同期されたクロッキングを提供し得る。さらに、無線ゲートウェイ３５は、リソースマネジメント、パフォーマンス調整、ネットワーク障害軽減、トラフィック監視、セキュリティ等のような無線ネットワーク７０のネットワークマネジメント及び管理機能を提供し得る。
【００１９】
有線フィールドデバイス１５〜２２と同様に、無線ネットワーク７０の無線フィールドデバイス４０〜４６は、プロセスプラント１０内の物理的制御機能、例えば、バルブの開閉、またはプロセスパラメータの測定を行ってもよい。しかしながら、無線フィールドデバイス４０〜４６は、ネットワーク７０の無線プロトコルを用いて通信するように構成されている。このように、無線ネットワーク７０の無線フィールドデバイス４０〜４６、無線ゲートウェイ、及び他の無線ノード５２〜５８は、無線通信パケットの生産者及び消費者である。
【００２０】
いくつかのシナリオにおいては、無線ネットワーク７０は、非無線デバイスを含んでもよい。例えば、図１Ａのフィールドデバイス４８は、レガシー４〜２０ｍＡデバイスであってもよく、フィールドデバイス５０は、従来の有線ＨＡＲＴデバイスであってもよい。ネットワーク７０内で通信するために、フィールドデバイス４８及び５０は、無線アダプタ（ＷＡ）５２ａまたは５２ｂを介して無線通信ネットワーク７０に接続されてもよい。これに加えて、無線アダプタ５２ａ、５２ｂは、Ｆｏｕｎｄａｔｉｏｎ（登録商標）Ｆｉｅｌｄｂｕｓ、ＰＲＯＦＩＢＵＳ、ＤｅｖｉｃｅＮｅｔ等の他の通信プロトコルをサポートしてもよい。さらに、無線ネットワーク７０は、無線ゲートウェイ３５と有線通信する別個の物理デバイスであり得る１つ以上のネットワークアクセスポイント５５ａ、５５ｂを含んでもよく、または、一体的なデバイスとして無線ゲートウェイ３５を備えていてもよい。無線ネットワーク７０はまた、１つの無線デバイスから無線通信ネットワーク３０内の別の無線デバイスにパケットを転送する１つ以上のルータ５８を含んでもよい。無線デバイス４０〜４６及び５２〜５８は、無線通信ネットワーク７０の無線リンク６０を介して、互いに、及び無線ゲートウェイ３５と通信してもよい。
【００２１】
したがって、図１Ａは、ネットワークルーティング機能及び管理をプロセス制御システムの様々なネットワークに提供する働きを主にするプロバイダデバイスのいくつかの実施例を含む。例えば、無線ゲートウェイ３５、アクセスポイント５５ａ、５５ｂ、及びルータ５８が無線通信ネットワーク７０で無線パケットを転送する機能を含む。無線ゲートウェイ３５は、無線ネットワーク７０と通信可能に接続している有線ネットワークに及び有
線ネットワークからトラフィックを転送するのと同様に、無線ネットワーク７０のためのトラフィックマネジメント及び管理機能を行う。無線ネットワーク７０は、ＷｉｒｅｌｅｓｓＨＡＲＴのようなプロセス制御メッセージ及び機能を特にサポートする無線プロセス制御プロトコルを利用し得る。
【００２２】
ある実施形態では、プロセス制御システム１００は、他の無線プロトコルを使用して通信するネットワークバックボーン１０５に接続された他のノードを含んでもよい。例えば、プロセス制御システム１００は、ＷｉＦｉもしくは他のＩＥＥＥ８０２．１１準拠の無線ローカルエリアネットワークプロトコル、ＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）等の移動通信プロトコル、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）または他のＩＴＵ−Ｒ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ  Ｒａｄｉｏｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｅｃｔｏｒ）互換プロトコル、近距離無線通信（ＮＦＣ）及びＢｌｕｅｔｏｏｔｈ等の短波長無線通信、または他の無線通信プロトコル等の他の無線プロトコルを利用する１つ以上の無線アクセスポイント７２を含んでもよい。典型的には、このような無線アクセスポイント７２は、ハンドヘルドまたは他のポータブルコンピューティングデバイスが、無線ネットワーク７０とは異なり、無線ネットワーク７０とは異なる無線プロトコルをサポートするそれぞれの無線ネットワーク越しに通信することを可能にする。いくつかの実施形態では、ＵＩデバイス１１２は、無線アクセスポイント７２を使用してプロセス制御システム１００内で通信する。
【００２３】
これに加えて、またはこれに代えて、プロバイダデバイスは、即時プロセス制御システム１００の外部にあるシステムへの１つ以上のゲートウェイ７５、７８を含んでもよい。そのような実施形態では、ＵＩデバイス１１２は、外部システムを制御、監視、または他の方法で上記外部システムと通信するために使用されてもよい。典型的には、そのようなシステムは、プロセス制御システム１００によって生成された情報、またはプロセス制御システム１００の運転が基づく情報の需要者または供給元である。例えば、プラントゲートウェイノード７５は、（それ自体のそれぞれのプロセス制御データネットワークバックボーン１０５を有する）即時プロセスプラント１０を、それ自体のそれぞれのネットワークバックボーンを有する別のプロセスプラントと通信可能に接続してもよい。一実施形態では、単一のネットワークバックボーン１０５は、複数のプロセスプラントまたはプロセス制御環境にサービスを提供してもよい。
【００２４】
別の実施例では、プラントゲートウェイノード７５は、即時プロセスプラントを、プロセス制御バックボーン１０５を含まないレガシーまたは先行技術のプロセスプラントに通信可能に接続してもよい。この実施例では、プラントゲートウェイノード７５は、プラント１０のプロセス制御ビッグデータバックボーン１０５によって利用されるプロトコルと、レガシーシステムによって利用される異なるプロトコル（例えば、イーサネット、Ｐｒｏｆｉｂｕｓ、Ｆｉｅｌｄｂｕｓ、ＤｅｖｉｃｅＮｅｔ等）との間で、メッセージを変換または翻訳してもよい。そのような実施例では、ＵＩデバイス１１２は、上記レガシーまたは先行技術のプロセスプラントのシステムまたはネットワークを制御、監視、または他の方法でそれらと通信するために使用されてもよい。
【００２５】
図１Ａは、限定された数のフィールドデバイス１５〜２２及び４０〜４６を有する単一の分散型コントローラ１１を例示しているが、これは例示的かつ非限定的な実施形態に過ぎない。任意の数の分散型コントローラ１１がプロセス制御システム１００のプロバイダデバイスに含まれてもよく、分散型コントローラ１１のいずれかが、任意の数の有線または無線フィールドデバイス１５〜２２、４０〜４６と通信して、プラント１０のプロセスを制御してもよい。さらに、プロセスプラント１０はまた、任意の数の無線ゲートウェイ３５、ルータ５８、アクセスポイント５５、無線プロセス制御通信ネットワーク７０、ア
クセスポイント７２、及び／またはゲートウェイ７５、７８を含んでもよい。図１Ａは特定の数のコントローラ１５０ａ〜ｎを有するコントローラファーム１６０を例示するが、任意の数のコントローラ１５０ａ〜ｎは、何十ものコントローラ、何百ものコントローラ、何千ものコントローラ等を含むコントローラファーム１６０に含まれてもよい。
【００２６】
本明細書で使用される場合、プロセスプラントの少なくとも一部分の動作を制御するために、「分散型」コントローラはプロセスプラント１０のフィールドデバイス１５〜２２、４０〜４６のサブセットに通信可能に接続され得る。分散型コントローラは、分散型コントローラによって制御されるそれぞれのフィールドデバイス１５〜２２、４０〜４６に近接して配置され得る（例えば、フィールドデバイス１５〜２２、４０〜４６のようにプロセスプラント１０の同じエリア内で）。
【００２７】
また、本明細書で使用される場合、「コントローラファーム」または「集中型または分散型コントローラファーム」は、プロセスプラント１０のフィールドデバイス１５〜２２、４０〜４６及び／またはプロセス制御システム１００内の他のプロセスプラントのフィールドデバイスの各々に各々通信可能に接続されるいくつかのコントローラを含み得る。集中型または分散型コントローラファームは、集中型または分散型コントローラファームによって制御されるそれぞれのフィールドデバイス１５〜２２、４０〜４６から離れて配置され得る（例えば、温度制御エリアまたはプロセスプラント１０から離れた場所のようなフィールドデバイス１５〜２２から離れたプロセスプラント１０の異なるエリア内で）。コントローラの各々は、プロセスプラント１０のフィールドデバイス１５〜２２、４０〜４６及び／またはプロセス制御システム１００内の他のプロセスプラントのフィールドデバイスの各々のために制御モジュールを実行するように構成され得る。例えば、コントローラの各々は、同じフィールドデバイスまたはフィールドデバイスのサブセットのために同じ制御モジュールを実行するように構成され得る。コントローラファーム内のコントローラのうちの１つが、特定の時間間隔でフィールドデバイス１５〜２２、４０〜４６のサブセットに制御信号を提供することによって制御モジュールを実行するために選択され得る。コントローラは、別の時間間隔でフィールドデバイス１５〜２２、４０〜４６の別のサブセットに制御信号を提供することによって別の制御モジュールを実行するために後で選択され得る。いくつかのシナリオにおいては、コントローラは集中型コントローラファームの中にあり、同じエリア（例えば、温度制御室）内に配置される。別のシナリオにおいては、コントローラは分散型コントローラファームの中にあり、いくつかのエリア（例えば、いくつかの温度制御室）に配置される。
【００２８】
プロセス制御システム１００は、分散型コントローラ及びコントローラファームの両方を含み得、分散型コントローラ及びコントローラファーム内のコントローラは、制御の異なる種類を提供する。例えば、コントローラファーム内のコントローラは監視制御を提供する一方で、分散型コントローラは制御モジュールを実行し得る（例えば、設定点の変更、分析を行うためのビッグデータモジュールの実行等）。別の実施例では、分散型コントローラは制御モジュールを実行し、制御に問題がある場合はアラートまたは他の信号をコントローラファームに提供する。その後、分散型コントローラに代わってコントローラファーム内のコントローラは制御モジュールを実行し得る。
【００２９】
ここで図１Ｂを参照すると、コントローラファーム１６０は、コントローラ１５０ａ〜ｎ及び制御マネージャ１５２を含むいくつかのブレード１５０ａ〜ｎ、１５２を各々有する１つまたはいくつかのブレードサーバを含み得る。ブレード１５０ａ〜ｎ、１５２の各々は、分散型コントローラ１１と同様の１つ以上のプロセッサ及びメモリを有する薄い電子回路基板であり得る。ブレード１５０ａ〜ｎ、１５２の各々内のプロセッサは、マルチコアプロセッサまたは別の種類のパラレルプロセッサのようなマルチコアハードウェアを含み得る。加えて、ブレード１５０ａ〜ｎ、１５２の各々内のメモリは、高密度メモリス
トレージ技術、例えば、ソリッドステートドライブメモリ、半導体メモリ、光メモリ、分子メモリ、生体メモリ、または任意の他の好適な高密度メモリ技術を含み得る。いくつかの実施形態では、メモリストレージはフラッシュメモリも含み得る。メモリステージ（及び、いくつかの場合では、フラッシュメモリ）は、それぞれのブレード１５０ａ〜ｎ、１５２に生成され、受信され、または他の方法で観測されるデータを一時的に記憶またはキャッシュするように構成され得る。
【００３０】
本明細書で「コントローラ」（例えば、コントローラ１、コントローラ２、…コントローラＮ）としても称されるブレード１５０ａ〜ｎは、プロセスプラント１０のフィールドデバイス１５〜２２、４０〜４６及び／またはプロセス制御システム１００内の他のプロセスプラントのフィールドデバイスの各々に通信可能に接続される。いくつかの実施形態では、ブレード１５０ａ〜ｎは、フィールドデバイス１５〜２２、４０〜４６の各々にエレクトロニックマーシャリングコンポーネント（例えば、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔによって提供されるＣＨＡＲａｃｔｅｒｉｚａｔｉｏｎ  ＭｏｄｕｌｅまたはＣＨＡＲＭ）を介して通信可能に接続される。エレクトロニックマーシャリングコンポーネントは、１つ以上のＣＨＡＲＭ  Ｉ／Ｏカード及び単独で構成可能なチャネル（ＣＨＡＲＭ）をサポートするＣＨＡＲＭキャリアのようなエレクトロニックマーシャリングブロックまたは装置に含まれ得る。いくつかの実施形態では、ブレード１５０ａ〜ｎは、ネットワークバックボーン１０５、無線ゲートウェイ３５、または任意の他の好適な通信ネットワークを介してＣＨＡＲＭ  Ｉ／Ｏカードと無線通信する。その後、ＣＨＡＲＭ  Ｉ／Ｏカードは、フィールドデバイス１５〜２２、４０〜４６に通信可能に（例えば、有線または無線の方法で）接続されるＣＨＡＲＭと通信する。
【００３１】
いずれのイベントにおいても、各コントローラ１５０ａ〜ｎは、プロセスの少なくとも一部分を制御するために、フィールドデバイス１５〜２２、４０〜４６のサブセットに対応する制御ルーチンまたはモジュールを含む。コントローラファーム１６０内のいくつかのコントローラ１５０ａ〜ｎが制御信号をフィールドデバイスの１５〜２２、４０〜４６の同じサブセットに提供し得る一方で、複数のコントローラ１５０ａ〜ｎは、制御信号を同じフィールドデバイスに及び／または同じ時間間隔内で同じパラメータのために提供しないことがある。例えば、第１のコントローラ１５０ａ及び第２のコントローラ１５０ｂは、同じ時間間隔内でバルブに開放または閉鎖するように命令する同じバルブに制御信号を提供しないことがある。いくつかの実施形態では、複数のコントローラ１５０ａ〜ｎが制御信号を同じフィールドデバイスに及び／または同じ時間間隔内で同じパラメータのために提供できないように、制御マネージャ１５２は制御モジュールをコントローラ１５０ａ〜ｎに割り当てる。これに加えて、またはこれに代えて、コントローラファーム１６０内の制御監視モジュールは、任意の２つの制御出力が同じフィールドデバイスに向かうか及び／または同じ時間間隔内で同じパラメータのためであるかを判定するために、コントローラ１５０ａ〜ｎからの制御出力を監視し得る。これが発生する場合、制御監視モジュールは、制御信号のうちのただ１つがフィールドデバイスに提供されることを確実にするために、制御信号をオーバーライドし得る。制御監視モジュールは、その時間間隔の間、フィールドデバイスに制御信号を提供することを停止するために、コントローラ１５０ａ〜ｎのうちの１つまたは制御マネージャ１５２にリクエストも提供し得る。しかしながら、複数のコントローラ１５０ａ〜ｎは、同じバルブからのバルブ開放パーセントのような、同じ時間間隔内の同じフィールドデバイスからの出力を受信し得る。
【００３２】
いくつかの実施形態では、コントローラ１５０ａ〜ｎによって実行される制御ルーチンまたはモジュールの各々のために、コントローラ１５０ａ〜ｎのうちの１つは冗長モジュールを含み得る。冗長モジュールは、制御モジュールを現在実行しているコントローラ１５０ａが失敗した場合に、冗長モジュールを実行するコントローラ１５０ｂが制御モジュールを引き継いで実行できるように、冗長モジュールを実行するコントローラ１５０ｂを
、制御モジュールを実行するコントローラ１５０ａと同期させ得る。制御モジュールを実行するコントローラ１５０ａと同期するために、冗長モジュールは、冗長モジュールを実行するコントローラ１５０ｂに、制御モジュールを実行するコントローラ１５０ａによって受信及び提供される同じ入力、出力、設定点等を受信させ得る。制御モジュールを実行するコントローラ１５０ａは、冗長モジュールを実行するコントローラまたはブレード１５０ｂと異なるコントローラまたはブレードであり得る。制御モジュールと同様に、冗長モジュールはソフトウェア、ファームウェア、ハードウェア等であり得る。冗長モジュールは、任意の所望のソフトウェアフォーマットで、例えばオブジェクト指向プログラミング、ラダーロジック、シーケンシャル機能チャート、機能ブロックダイアグラムを使用して、または任意の他のソフトウェアプログラミング言語または設計パラダイムを使用して実装され得る。
【００３３】
また、いくつかの実施形態では、各コントローラ１５０ａ〜ｎは、センサデータ、制御パラメータ、データに関連付けられたタイムスタンプ、またはプロセスプラントで利用可能な任意の他の種類のデータを含むプロセスプラント１０からのプロセス制御データを収集し記憶するために、フィールドデバイス１５〜２２、４０〜４６のサブセットに対応するビッグデータモジュールを含む。これは、構成、バッチレシピ、設定点、出力、レート、制御アクション、診断、アラーム、イベント、及び／またはそれに対する変更に対応するプロセスプラント１０でプロセスが制御される一方で、生成されたリアルタイムプロセスデータのような測定データ、構成データ、バッチデータ、イベントデータ、及び／または連続データを含み得る。
【００３４】
ビッグデータモジュールは、また、収集されたプロセス制御データを分析し得て、モジュールを開発及び／または使用し、データ傾向及び／または相関を認識し、プロセスプラント１０に影響し得るか、またはすぐに影響するだろう、実際のもしくは予測された問題または異常な状況及び／または準最適な状態をプラント従業員に警告等をする。いくつかの実施形態では、ビッグデータモジュールは、特定の問題または状態を有するデータまたは傾向の特定のセットと関連するようにプログラムされることは特になくてもこれらの機能を行い、代わりに、以前の状態（肯定的／所望される状態、または否定的／所望されない状態であり得る）の時間ちょうどまたはその近辺の前に、現在の傾向またはデータの一致が発生したことを認識する。傾向またはデータの一致の以前の発生を認識することで、ビッグデータモジュールは状態を予測し得る（「予知」）。ビッグデータモジュールは、また、プロセス変数、センサ測定値等がプロセスプラント１０の異常な状況の検出、予測、予防及び／または収集において最も重要である収集されたプロセス制御データから判定し得る。例えば、ビッグデータモジュールは、一連の以前のデータ点によって示される傾向が、予測される異常な状況、予測されるメンテナンスの懸念、予測される障害等を示すことを判定し得る。
【００３５】
制御モジュールと同様に、ビッグデータモジュールはソフトウェア、ファームウェア、ハードウェア等であり得る。ビッグデータモジュールは、任意の所望のソフトウェアフォーマットで、例えばオブジェクト指向プログラミング、ラダーロジック、シーケンシャル機能チャート、機能ブロックダイアグラムを使用して、または任意の他のソフトウェアプログラミング言語または設計パラダイムを使用して実装され得る。
【００３６】
コントローラ１５０ａ〜ｎに加えて、コントローラファーム１６０は、制御モジュール、冗長モジュール、ビッグデータモジュール、及び任意の他の好適な動作をコントローラ１５０ａ〜ｎに割り当てる制御マネージャ１５２を含む。いくつかの実施形態では、制御マネージャ１５２は、ハードウェアに実装され、ブレードサーバ内のブレードのうちの１つである。他の実施形態では、制御マネージャ１５２は、コントローラファーム１６０のブレード１５０ａ〜ｎ、１５２のいずれかで実装され得るソフトウェアアプリケーション
であり、コントローラ１５０ａは、制御モジュール、冗長モジュール、ビッグデータモジュール等に加えて制御マネージャアプリケーションを含み得る。しかしながら、この説明全体を通して、制御マネージャ１５２は本明細書でブレードサーバのブレードのようなコントローラファーム１６０内のハードウェアデバイスとして言及され得る。コントローラファーム１６０は、コントローラファーム１６０のいくつかのブレードサーバ内のコントローラの各々の制御を管理する単一のブレード上に実装された単一の制御マネージャ１５２を含み得る。他の実施形態では、制御マネージャ１５２はいくつかのブレードにわたって実装される。さらに他の実施形態では、コントローラファーム１６０は、ベイ１５０ａ〜ｎ、１５２として称されるいくつかの搭載スロットを各々有する１つまたはいくつかのラックサーバを含む。
【００３７】
他の実施形態では、コントローラファーム１６０は、クラウドコンピューティング環境のクラウドサーバ、フォグコンピューティング環境のフォグサーバを含み、フォグコンピューティング環境は、例えば、プロセス制御システム１００内のプロセスプラント（複数可）１０、またはそれらの任意の好適な組み合わせを運転する組織によってホストされる。例えば、クラウドコンピューティング環境はアメリカ合衆国全体またはさらに世界全体を通してプロセスプラント１０でプロセスを制御するコントローラを含み得る一方で、フォグコンピューティング環境は特定の市または街のプロセスプラント１０または特定の組織によって所有及び運転されるプロセスプラント１０でプロセスを制御するコントローラを含み得る。
【００３８】
いずれのイベントにおいても、制御マネージャ１５２は制御モジュール、冗長モジュール、ビッグデータモジュール等を１つまたはいくつかのＵＩデバイス１１２で生成される構成アプリケーションから取得し得る。いくつかの実施形態では、制御マネージャ１５２は、対応する制御モジュールの取得に際して冗長モジュールを自動的に生成する。ここで図２を参照すると、制御マネージャ１５２はコントローラファーム１６０のいくつかのコントローラ１５０ａ〜ｎと通信する。コントローラ１５０ａ〜ｎの各々及び制御マネージャ１５２は、物理的機械（例えば、ハードウェア）または仮想機械（例えば、ソフトウェア）であり得る。この方法では、コントローラファーム１６０のブレードは、いくつかのゲスト仮想機械またはコントローラをホストし得る。いずれのイベントにおいても、制御マネージャ１５２は、制御エグゼクティブ２００、ロードバランサ２０２、シャドウデータベース２０４、冗長マネージャ２０６、制御モジュール２０８、及びビッグデータモジュール（図示されない）を含む。コントローラ１〜Ｎ（参照番号１５０ａ〜ｎ）の各々は、マルチコアプロセッサまたは別の種類のパラレルプロセッサのようなプロセッサ２１０ａ〜ｎ及び高密度メモリであり得るメモリ２１２ａ〜ｎを含む。メモリ２１２ａ〜ｎの各々は、制御モジュール２１４ａ〜ｎ、ビッグデータモジュール２１６ａ〜ｎ、及び冗長モジュール２１８ａ〜ｎを含むそれぞれのコントローラ１５０ａ〜ｎに割り当てられる様々なルーチンを記憶し得る。
【００３９】
プロセスプラント１０内で動作を制御及び監視するためにルーチンを記憶及び実行することに加えて、コントローラ１５０ａ〜ｎは、制御マネージャ１５２に可用性の指標を提供し得る。いくつかの実施形態では、コントローラ１５０ａ〜ｎの各々は、コントローラ１５０ａ〜ｎでのロード、コントローラ１５０ａ〜ｎでのメモリの利用可能な量、及び特定の時間間隔でのコントローラ１５０ａ〜ｎからのデータ伝達の帯域幅に基づいて、特定の時間間隔の可用性メトリックを制御マネージャ１５２に提供する。他の実施形態では、コントローラ１５０ａ〜ｎの各々は、コントローラ１５０ａ〜ｎでのロード、コントローラ１５０ａ〜ｎでのメモリの利用可能な量、及び特定の時間間隔のコントローラ１５０ａ〜ｎからのデータ伝達の帯域幅の指標を提供する。その後、制御マネージャ１５２は、各コントローラ１５０ａ〜ｎの特定の時間間隔の可用性メトリックをこの情報に基づいて判定する。コントローラ１５０ａ〜ｎでのロードは、コントローラ１５０ａ〜ｎ（例えば、
シングルコア、デュアルコア、クアッドコア等）の処理能力と並んでコントローラ１５０ａ〜ｎによって行われる処理量を示し得る。
【００４０】
制御マネージャ１５２の制御エグゼクティブ２００は、制御モジュール２０８、冗長モジュール、ビッグデータモジュール等のような、コントローラファーム１６０のコントローラ１５０ａ〜ｎによって行われるべき動作を、１つまたはいくつかのＵＩデバイス１１２で、またはプロセス制御システム１００内の他のアプリケーションもしくはデバイスから生成された構成アプリケーションから受信し得る。いくつかの実施形態では、冗長マネージャ２０６は、制御マネージャ１５２から取得される各制御モジュール２０８のために冗長モジュールを生成する。冗長モジュールは、冗長モジュールを実行するコントローラ１５０ａ〜ｎに、制御モジュールに含まれる制御ループまたは関数を実行することなく制御モジュールを実行するコントローラ１５０ａ〜ｎによって受信及び提供される同じ入力、出力、設定点等を受信させ得る。いくつかの実施形態では、制御エグゼクティブ２００は、冗長マネージャが対応する冗長モジュールを生成するために、取得された制御モジュール２０８の各々を冗長マネージャ２０６に提供する。
【００４１】
また、いくつかの実施形態では、制御エグゼクティブ２００は、制御モジュール２０８、冗長モジュール、及びビッグデータモジュールの各々に優先レベルを割り当て、優先の順番でモジュールを順位付ける。優先レベルは、優先規則の既定のセットに基づいて自動的に割り当てられ得る（例えば、冗長モジュールは対応する制御モジュールと同じ優先レベルを有し、制御モジュールはビッグデータモジュールより高い優先レベルを有する等）。これに加えて、またはこれに代えて、ユーザはモジュールの各々に優先レベルを割り当て得る。例えば、構成エンジニアが構成アプリケーションを介して制御モジュールを生成する場合、構成エンジニアも制御モジュールに優先レベルを割り当て得る。
【００４２】
制御エグゼクティブ２００は、どのコントローラ１５０ａ〜ｎがどの制御モジュール２０８、冗長モジュール、及びビッグデータモジュールを特定の時間間隔の間に実行するべきかを判定するためにロードバランサ２０２と通信し得る。いくつかの実施形態では、ロードバランサ２０２は、コントローラファーム１６０のコントローラ１５０ａ〜ｎの各々の可用性メトリック、ならびにモジュールの各々のそれぞれの優先レベルを含み得る、特定の時間間隔（例えば、３０分、１時間、２日、１日等）内で実行されるべき制御モジュール、冗長モジュール、及びビッグデータモジュールのリストを受信する。その後、ロードバランサ２０２は、モジュールの各々を実行するために、コントローラファーム１６０のコントローラ１５０ａ〜ｎを割り当てる。いくつかのシナリオにおいては、コントローラ１５０ａ〜ｎのパラレル処理能力及びメモリ密度によって、単一のコントローラ１５０ａ〜ｎは、同じ時間間隔内でいくつかのモジュールを実行し得る。別の例示的なシナリオにおいては、冗長モジュールを実行するコントローラ１５０ａ〜ｎがコントローラでの障害の場合には制御モジュールを実行するコントローラ１５０ａ〜ｎを引き継ぐことができるように、ロードバランサ２０２は２つの異なるコントローラ１５０ａ〜ｎを識別して制御モジュール及び冗長モジュールを実行する。
【００４３】
いくつかの実施形態では、ロードバランサ２０２は、各モジュールが周期的に実行されるか、またはイベントの発生に基づく（イベント駆動型）かのどちらであるか、各モジュールの実行時間、もしくは任意の他の好適な特性のようなモジュールの各々の特性を識別する。その後、ロードバランサ２０２は、コントローラ１５０ａ〜ｎを識別し、コントローラ１５０ａ〜ｎの可用性メトリックならびにモジュールの優先レベル及び特性に基づいてモジュールを実行する。より具体的には、ロードバランサ２０２は、ロードバランシングアルゴリズムを使用し、モジュールを実行するコントローラ１５０ａ〜ｎを割り当てる。
【００４４】
例えば、ロードバランサ２０２は、それらのそれぞれの可用性メトリックに従ってコントローラ１５０ａ〜ｎの各々を順位付け得て、最高の可用性メトリックを有するコントローラ１５０ａ〜ｎは、可用性の最大の量を有し、最高として順位付けられる。ロードバランサ２０２も、優先レベル及び各モジュールの特性の組み合わせに基づいてモジュールの各々を順位付け得る。いくつかの実施形態では、周期モジュールはイベント駆動型モジュールより上に順位付けられ、その後、優先レベルに基づいて周期モジュールの各々は分類され、優先レベルに基づいてイベント駆動型モジュールの各々は分類される。高優先カテゴリの周期モジュールの各々は、中優先カテゴリの周期モジュールの各々より上に順位付けられ得る等である。同じ優先カテゴリの周期またはイベント駆動型モジュールは、さらに実行時間に基づいて順位付けられ得る。さらに具体的には、３つの優先カテゴリ（高、中、及び低）ならびに周期及びイベント駆動型モジュールがある場合、高優先周期モジュールがまず順位付けられ得て、実行時間によってこのカテゴリの各モジュールはさらに順位付けられ、その後、中優先周期モジュール、その後、低優先周期モジュール、その後、高優先イベント駆動型モジュール等が続く。
【００４５】
したがって、ロードバランサ２０２はコントローラ１５０ａ〜ｎを順位付け得て、モジュールを順位付け得る。コントローラ１５０ａ〜ｎは可用性メトリックによって上の例で順位付けられ、モジュールは優先レベル及びモジュール特性によって順位付けられる一方で、コントローラ１５０ａ〜ｎ及びモジュールは任意の好適な方法で順位付けられ得る。
【００４６】
その後、ロードバランサ２０２は、逆ラウンドロビンメカニズムを使用し得て、最高順位のモジュール（例えば、最長の実行時間を有する高優先周期モジュール）を最高順位のコントローラ１５０ａ〜ｎ（例えば、最高の可用性メトリックを有するコントローラ）にまず割り当てる。２番目に高い順位のモジュールは、２番目に高い順位のコントローラ１５０ａ〜ｎに割り当てられ得て、アルゴリズムはこの方法で、最低順位のコントローラ１５０ａ〜ｎがモジュールを割り当てられるまで、継続し得る。割り当てるモジュールがより多くある場合、ロードバランサ２０２はモジュールを逆の順番で割り当てるために継続する。例えば、ロードバランサ２０２は、また、次のモジュールを最低順位のコントローラ１５０ａ〜ｎに割り当て、その後、次のモジュールより下に順位付けられたモジュールを２番目に低い順位のコントローラ１５０ａ〜ｎに割り当て、最高順位のコントローラ１５０ａ〜ｎが２つのモジュールを割り当てられるまで増加する順番で継続する。その後、ロードバランサ２０２が順番をもう一度逆にし、低減する順番でモジュールを割り当て、モジュールの各々がコントローラ１５０ａ〜ｎに割り当てられるまで逆ラウンドロビン方法で継続する。
【００４７】
ロードバランサ２０２がコントローラ１５０ａ〜ｎ及びモジュールを順位付け、逆ラウンドロビンメカニズムを使用してコントローラ１５０ａ〜ｎにモジュールを割り当て得る一方で、ロードバランサ２０２は、任意の好適な方法でモジュールをコントローラ１５０ａ〜ｎに割り当て得て、コントローラファーム１６０のコントローラ１５０ａ〜ｎの間でモジュールを分散する。他の実施形態では、モジュールは、優先レベルまたは特性に関わらずコントローラ１５０ａ〜ｎの間で等しくまたは少なくとも同様に分散される。さらに他の実施形態では、ロードバランサ２０２は、コントローラ１５０ａで処理が容量に達するまで、モジュールを同じコントローラ１５０ａに割り当てる。その後、ロードバランサ２０２は、別のコントローラ１５０ｂで処理が容量に達するまで、モジュールを別のコントローラ１５０ｂに割り当て、ロードバランサ２０２はこの方法でモジュールを割り当て続け得る。
【００４８】
いずれのイベントにおいても、制御エグゼクティブ２００は、各コントローラ１５０ａ〜ｎが割り当てられたモジュールを実行し得るように、その後、対応するコントローラ１５０ａ〜ｎに割り当てられたモジュールを提供する。いくつかの実施形態では、制御エグ
ゼクティブ２００は割り当てを分析し、複数のコントローラ１５０ａ〜ｎが制御信号を同じフィールドデバイスに及び／または同じ時間間隔内で同じパラメータのために提供しないことを確実にするために、割り当てのうちのいくつかを調整し得る。
【００４９】
例示的なシナリオにおいては、第１の時間間隔の間、コントローラ１５０ａは、制御モジュール、ビッグデータモジュール、及び冗長モジュールを含むモジュールの第１のセットを割り当てられ得る。制御エグゼクティブ２００は、第１の時間間隔の間、制御モジュール２１４ａ、ビッグデータモジュール２１６ａ、及び冗長モジュール２１８ａをコントローラ１５０ａにダウンロードし得る。その後、第２の時間間隔の間、コントローラ１５０ａは、モジュールの第１のセットから異なるモジュールの第２のセットを割り当てられ得る。制御エグゼクティブ２００は、第２の時間間隔の間、制御モジュール２１４ａ、ビッグデータモジュール２１６ａ、及び冗長モジュール２１８ａをコントローラ１５０ａにダウンロードし得る。
【００５０】
別の例示的なシナリオにおいては、特定の時間間隔の間、制御マネージャ１５２は第１の制御モジュールを第１のコントローラ１５０ａに割り当て、第１の制御モジュールはフィールドデバイス１５〜２２、４０〜４６の第１のサブセットに対応する。制御マネージャ１５２は第２の制御モジュールを第２のコントローラ１５０ｂに割り当て、第２の制御モジュールはフィールドデバイス１５〜２２、４０〜４６の第２のサブセットに対応する。フィールドデバイス１５〜２２、４０〜４６の第１及び第２のサブセットは、同じプロセスプラント１０または異なるプロセスプラント１０の異なるエリアに配置され得る。第１のコントローラ１５０ａが、その後、第１の制御モジュールを実行し、第２のコントローラ１５０ｂが、同じ時間間隔内で、第２の制御モジュールを実行する。より遅い時間間隔の間、第１のコントローラ１５０ａが第１の制御モジュールをもはや割り当てられず、第２のコントローラ１５０ｂが第１及び第２の制御モジュールの両方を割り当てられる。例えば、第１のコントローラ１５０ａは、より遅い時間間隔の間、第１の制御モジュールを実行する処理リソースを有し得ない。その後、第２のコントローラ１５０ｂは、より遅い時間間隔の間、それぞれフィールドデバイス１５〜２２、４０〜４６の第１及び第２のサブセットのための第１及び第２の制御モジュールを実行する。
【００５１】
いくつかの実施形態では、いくつかの時間間隔の間、周期モジュールは同じコントローラ１５０ａ〜ｎに割り当てられたままであり、一方で、イベント駆動型モジュールは、特定の時間間隔でのコントローラ１５０ａ〜ｎの可用性メトリックに基づいて、各時間間隔の間、コントローラ１５０ａ〜ｎに再割り当てされる。他の実施形態では、制御モジュール２０８、ビッグデータモジュール、及び冗長モジュールの各々は、実行の前（例えば、モジュールが生成されるとき）に、コントローラ１５０ａ〜ｎの各々にダウンロードされ、それらのそれぞれのメモリ２１２ａ〜ｎで記憶される。制御エグゼクティブ２００は、特定のモジュールを実行するためにコントローラ１５０ａを選択するとき、制御マネージャ１５２は、特定のモジュールの指標を選択されたコントローラ１５０ａに提供し、選択されたコントローラ１５０ａは特定のモジュールをメモリ２１２ａから読み出し、特定のモジュールを実行する。
【００５２】
いくつかの実施形態では、制御マネージャ１５２は、制御モジュール２０８、冗長モジュール、及びビッグデータモジュールのために入力データを記憶するシャドウデータベース２０４を含む。モジュールが例えば構成アプリケーションを介して生成される場合、モジュールのための入力データはＵＩデバイス１１２から取得され得る。コントローラ１５０ａ〜ｎが制御モジュール２１４ａ〜ｎ及びビッグデータモジュール２１６ａ〜ｎを実行する場合、入力データは、また、コントローラ１５０ａ〜ｎから取得され得る。制御モジュール２１４ａ〜ｎ及びビッグデータモジュール２１６ａ〜ｎからの出力は、シャドウデータベース２０４でコントローラ１５０ａ〜ｎから受信され得て、後続の時間間隔の間に
実行される制御モジュール２０８、冗長モジュール、及びビッグデータモジュールのための入力データとして記憶される。
【００５３】
図３は、プロセス制御システム１００のコントローラの間でのロードバランシングのための例示的な方法３００を表すフロー図を示す。方法３００は、コントローラファーム１６０内の制御マネージャ１５２上またはコントローラファーム１６０内またはコントローラファーム１６０と通信している任意の他のコンピューティングデバイス、ブレードサーバ等の上で実行され得る。一部の実施形態において、方法は、非一時的コンピュータ可読メモリ上に記憶されている命令のセットに実装され得て、制御マネージャ１５２の１つ以上のプロセッサによって実行可能である。
【００５４】
ブロック３０２で、制御モジュール、冗長モジュール、及びビッグデータモジュールは取得される。例えば、モジュールは構成アプリケーションを介してＵＩデバイス１１２から取得され得る。いくつかの実施形態では、制御モジュールが取得され、冗長モジュールを実行するコントローラが、制御モジュールを実行するコントローラによって受信及び提供される同じ入力、出力、設定点等を受信するように、冗長モジュールは、各制御モジュールのために自動的に生成される。
【００５５】
その後、優先レベルが、制御モジュール、冗長モジュール、及びビッグデータモジュールの各々（ブロック３０４）に割り当てられる。優先レベルは、数値の優先レベル（例えば、１、２、３）であり得、カテゴリのセットからのカテゴリ（例えば、高、中、低）であり得、または任意の好適な優先の指標であり得る。いくつかの実施形態では、優先レベルは、例えばユーザによって割り当てられ、その際にモジュールは構成アプリケーションを介して作成される。他の実施形態では、優先レベルは、優先規則の既定のセットに基づいて自動的に割り当てられる（例えば、冗長モジュールは対応する制御モジュールと同じ優先レベルを有し、制御モジュールはビッグデータモジュールより高い優先レベルを有する等）。
【００５６】
その後、ブロック３０６で、制御モジュール、冗長モジュール、及びビッグデータモジュールの各々は順位付けられる。いくつかの実施形態では、モジュールは優先レベルの順番で順位付けられる。モジュールは、各モジュールが周期的に実行されるか、またはイベントの発生に基づく（イベント駆動型）かのどちらであるか、各モジュールの実行時間、もしくは任意の他の好適な特性のようなモジュールの特性に従ってさらに順位付けられ得る。例えば、周期モジュールは、イベント駆動型モジュールより上に順位付けられ得て、周期モジュールは優先レベルに従ってさらに順位付けられ得る。イベント駆動型モジュールも、優先レベルに従ってさらに順位付けられ得る。その後、最高の優先レベルを有する周期モジュールの各々が、実行時間に従って順位付けられ得て、最高の優先レベル及び最長の実行時間を有する周期モジュールは最高に順位付けられる。他の実施形態では、モジュールは、優先レベル及びモジュール特性の任意の好適な組み合わせを使用して、または任意の好適な方法で順位付けられ得る。
【００５７】
可用性の指標は、特定の時間間隔（ブロック３０８）の間のコントローラファーム１６０のコントローラ１５０ａ〜ｎの各々のために取得される。例えば、各コントローラ１５０ａ〜ｎは、コントローラ１５０ａ〜ｎでのロード、コントローラ１５０ａ〜ｎでのメモリの利用可能な量、及び特定の時間間隔でのコントローラ１５０ａ〜ｎからのデータ伝達の帯域幅に基づいて、特定の時間間隔の可用性メトリックを生成し得る。その後、コントローラ１５０ａ〜ｎは、それぞれの可用性メトリックを制御マネージャ１５２に提供し得る。別の実施例では、各コントローラ１５０ａ〜ｎは、コントローラ１５０ａ〜ｎでのロードの指標、コントローラ１５０ａ〜ｎでのメモリの利用可能な量、及び特定の時間間隔のコントローラ１５０ａ〜ｎからのデータ伝達の帯域幅を提供し得る。その後、制御マネ
ージャ１５２は、各コントローラ１５０ａ〜ｎの特定の時間間隔の可用性メトリックをこの情報に基づいて判定する。
【００５８】
いくつかの実施形態では、制御マネージャ１５２は、特定の時間間隔の可用性メトリックをこの情報に基づいて、コントローラ１５０ａ〜ｎの各々を順位付ける。例えば、最高の可用性メトリックを有し、それゆえ可用性の最大の量を有するコントローラ１５０ａ〜ｎは、最高として順位付けられる。その後、コントローラ１５０ａ〜ｎは、可用性の降順で順位付けられる。
【００５９】
ブロック３１０で、制御モジュール、冗長モジュール、及びビッグデータモジュールはコントローラ１５０ａ〜ｎに割り当てられる。コントローラファーム１６０内のコントローラ１５０ａ〜ｎの間のロードをバランシングするために、制御マネージャ１５２は、コントローラ１５０ａ〜ｎの各々にわたって制御モジュール、冗長モジュール、及びビッグデータモジュールを分散し得る。いくつかの実施形態では、制御マネージャ１５２は、ロードバランシングアルゴリズムを使用し、コントローラ１５０ａ〜ｎにモジュールを割り当てる。例えば、ロードバランシングアルゴリズムは逆ラウンドロビンメカニズムであり得て、制御マネージャ１５２は最高順位のモジュールを最高順位のコントローラ１５０ａ〜ｎに割り当て、その後、２番目に高い順位のモジュールを２番目に高い順位のコントローラ１５０ａ〜ｎに割り当て、各コントローラ１５０ａ〜ｎがモジュールを割り当てられるまで降順で継続する。その後、制御マネージャ１５２は、各コントローラ１５０ａ〜ｎが２つのモジュールを割り当てられるまで、残っている制御モジュールをコントローラ１５０ａ〜ｎに昇順で割り当てる。制御マネージャ１５２は、モジュールの各々が割り当てられるまで、コントローラ１５０ａ〜ｎがモジュールを割り当てられる順番を交代する。
【００６０】
別の実施例では、制御マネージャ１５２は最高順位のモジュールを最高順位のコントローラ１５０ａ〜ｎに割り当て、その後、２番目に高い順位のモジュールを２番目に高い順位のコントローラ１５０ａ〜ｎに割り当て、各コントローラ１５０ａ〜ｎがモジュールを割り当てられるまで降順で継続する。その後、制御マネージャ１５２は次の順位のモジュールを最高順位のコントローラ１５０ａ〜ｎに割り当て、もう一度コントローラ１５０ａ〜ｎの降順で継続し、モジュールの各々が割り当てられるまでこのプロセスを繰り返す。
【００６１】
さらに別の実施例では、制御マネージャ１５２は、コントローラ１５０ａ〜ｎがモジュールを割り当てられる順番をランダムに選択し、その後、ランダムに選択された順番に従ってモジュールをコントローラ１５０ａ〜ｎに割り当てる。別の実施例では、制御マネージャ１５２は、最高順位のコントローラ１５０ａ〜ｎが全容量に到達するまで、モジュールを最高順位のコントローラ１５０ａ〜ｎに降順で割り当てる。その後、制御マネージャ１５２は、２番目に高い順位のコントローラ１５０ａ〜ｎが全容量に到達するまで、次の順位のモジュールを２番目に高い順位のコントローラ１５０ａ〜ｎに降順で割り当て、モジュールの各々が割り当てられるまでこの方法で繰り返す。これらは、モジュールがコントローラ１５０ａ〜ｎに割り当てられ得るほんの数例であるが、モジュールは任意の好適な方法で割り当てられてもよい。
【００６２】
ブロック３１２では、割り当てられたモジュールは、特定の時間間隔の間、実行のためにそれぞれのコントローラ１５０ａ〜ｎにダウンロードされる。各コントローラ１５０ａ〜ｎは、制御信号を提供することによって、そうでなければ各割り当てられたモジュールに関連付けられたフィールドデバイス１５〜２２、４０〜４６と通信することによって、その割り当てられたモジュールを実行する
【００６３】
本開示に記載されている技術の実施形態は、任意の数の下記の態様を、単独でまたは組み合わせて含んでよい。
【００６４】
１．プロセス制御システムであって、プロセス制御システムでプロセスの少なくとも一部分を制御するために物理的機能を各々実行するように構成された複数のフィールドデバイスと、複数のフィールドデバイスの各々に通信可能に連結されたコントローラファームの複数のコントローラと、を備え、複数のコントローラの各々が、物理的機能に対応する複数のフィールドデバイスに制御信号を伝達することによってプロセスを制御するために、複数のフィールドデバイスに対応する同じ制御モジュールを実行するように構成されており、複数のコントローラのうちの１つが制御モジュールを特定の時間間隔で実行するために選択される、プロセス制御システム。
【００６５】
２．コントローラファームが、温度制御エリアに配置されている、態様１に従ったプロセス制御システム。
【００６６】
３．複数のフィールドデバイスが、第１の複数のフィールドデバイスであり、第２の複数のフィールドデバイスをさらに備え、複数のコントローラの各々は、第１の複数のフィールドデバイスに対応する第１の制御モジュール及び第２の複数のフィールドデバイスに対応する第２の制御モジュールを実行するために構成され、第１のコントローラは第１の制御モジュールを実行するために選択され、第２のコントローラは第２の制御モジュールを特定の時間間隔で実行するために選択される、態様１または２のいずれか１つに記載のプロセス制御システム。
【００６７】
４．第１の複数のフィールドデバイス及び第２の複数のフィールドデバイスが同じプロセスプラント内に配置されている、態様１〜３のいずれか１つに記載のプロセス制御システム。
【００６８】
５．第１の複数のフィールドデバイス及び第２の複数のフィールドデバイスが異なるプロセスプラント内に配置されている、態様１〜４のいずれか１つに記載のプロセス制御システム。
【００６９】
６．別の時間間隔で、第１のコントローラが第１の制御モジュールを実行せず、第２のコントローラが第１の制御モジュール及び第２の制御モジュールを実行する、態様１〜５のいずれか１つに記載のプロセス制御システム。
【００７０】
７．第２のコントローラが第１の制御モジュールに対応する冗長モジュールを実行する、態様１〜６のいずれか１つに記載のプロセス制御システム。
【００７１】
８．コントローラファームの複数のコントローラの各々が、それぞれのフィールドデバイスに通信可能に連結された入力／出力（Ｉ／Ｏ）デバイスを介して各複数のフィールドデバイスと通信する、態様１〜７のいずれか１つに記載のプロセス制御システム。
【００７２】
９．選択されたコントローラが、プロセスに対応する構成データ、連続データ、及びイベントデータのうち少なくとも１つを含むプロセスに対応するデータを取得及び記憶するようにさらに構成されている、態様１〜８のいずれか１つに記載のプロセス制御システム。
【００７３】
１０．特定の時間間隔で実行するために複数のコントローラの各々に制御モジュールを割り当てるように構成された、複数のコントローラに通信可能に連結されたコンピューティングデバイスをさらに備える、態様１〜９のいずれか１つに記載のプロセス制御システム。
【００７４】
１１．コンピューティングデバイスが複数のコントローラの各々からロード、帯域幅、及び利用可能なメモリの指標を取得し、各コントローラのロード、帯域幅、または利用可能なメモリのうちの少なくとも１つに従って複数のコントローラに制御モジュール、冗長モジュール、及びビッグデータモジュールを割り当てる、態様１〜１０のいずれか１つに記載のプロセス制御システム。
【００７５】
１２．コンピューティングデバイスがコントローラファーム内の複数のコントローラのうちの１つである、態様１〜１１のいずれか１つに記載のプロセス制御システム。
【００７６】
１３．コンピューティングデバイスが、複数のコントローラによって実行される複数の制御モジュールを取得し、割り当てられた優先レベルに従って複数の制御モジュールを順位付けする、態様１〜１２のいずれか１つに記載のプロセス制御システム。
【００７７】
１４．コンピューティングデバイスが、複数の制御モジュールの各々のそれぞれの順位の順番で、複数のコントローラに制御モジュールを割り当て、最高順位の制御モジュールが最初に割り当てられる、態様１〜１３のいずれか１つに記載のプロセス制御システム。
【００７８】
１５．コントローラファームを介してプロセス制御システム内の１つ以上のプロセスプラントで複数のフィールドデバイスを制御する方法であって、コントローラファームの複数のコントローラによって、プロセス制御システムでプロセスの少なくとも一部分を制御するために、物理的機能を実行するように各々構成された複数のフィールドデバイスに制御信号を伝達することであって、複数のコントローラの各々が、プロセスを制御するために、複数のフィールドデバイスに対応する同じ制御モジュールを実行するように構成されている、伝達することと、制御モジュールを特定の時間間隔で実行するために複数のコントローラのうちの１つを選択することと、選択されたコントローラによって、特定の時間間隔の間、制御モジュールに従って複数のフィールドデバイスに制御信号を選択されたコントローラによって伝達することと、を含む、方法。
【００７９】
１６．コントローラファームが、温度制御エリアに配置されている、態様１５に記載の方法。
【００８０】
１７．複数のフィールドデバイスが、第１の複数のフィールドデバイスであり、複数のコントローラの各々は、第１の複数のフィールドデバイスに対応する第１の制御モジュール及び第２の複数のフィールドデバイスに対応する第２の制御モジュールを実行するために構成され、第１の制御モジュールを特定の時間間隔で実行するために第１のコントローラを選択することと、第１のコントローラによって、特定の時間間隔の間、第１の制御モジュールに従って第１の複数のフィールドデバイスに制御信号を伝達することと、第２の制御モジュールを特定の時間間隔で実行するために第２のコントローラを選択することと、第２のコントローラによって、特定の時間間隔の間、第２の制御モジュールに従って第２の複数のフィールドデバイスに制御信号を伝達することと、をさらに含む、態様１５または態様１６のいずれか１つに記載の方法。
【００８１】
１８．第１の複数のフィールドデバイス及び第２の複数のフィールドデバイスが同じプロセスプラント内に配置されている、態様１５〜１７のいずれか１つに記載の方法。
【００８２】
１９．第１の複数のフィールドデバイス及び第２の複数のフィールドデバイスが異なるプロセスプラント内に配置されている、態様１５〜１８のいずれか１つに記載の方法。
【００８３】
２０．別の時間間隔で、第１のコントローラが第１の制御モジュールを実行せず、第２のコントローラによって、別の時間間隔の間、第１の制御モジュールに従って第１の複数
のフィールドデバイスに制御信号を伝達することをさらに含む、態様１５〜１９のいずれかに記載の方法。
【００８４】
２１．第２のコントローラによって、第１の制御モジュールに対応する冗長モジュールを実行することをさらに含む、態様１５〜２０のいずれかに記載の方法。
【００８５】
２２．選択されたコントローラによって、プロセスに対応する構成データ、連続データ、及びイベントデータのうちの少なくとも１つを含むプロセスに対応するデータを取得及び記憶することをさらに含む、態様１５〜２１のいずれかに記載の方法。
【００８６】
２３．複数のコントローラに通信可能に連結されたコンピューティングデバイスが特定の時間間隔で制御モジュールを実行するためにコントローラを選択する、態様１５〜２２のいずれかに記載の方法。
【００８７】
２４．コンピューティングデバイスによって、複数のコントローラの各々からロード、帯域幅、及び利用可能なメモリの指標を取得することと、各コントローラのロード、帯域幅、または利用可能なメモリのうちの少なくとも１つに従って複数のコントローラに制御モジュール、冗長モジュール、及びビッグデータモジュールを割り当てることと、をさらに含む、態様１５〜２３のいずれかに記載の方法。
【００８８】
２５．コンピューティングデバイスがコントローラファーム内の複数のコントローラのうちの１つである、態様１５〜２４のいずれかに記載の方法。
【００８９】
２６．プロセス制御システムにおいて制御モジュールのロードをバランシングするための方法であって、プロセス制御システム内で物理的機能を実行するように構成されたフィールドデバイスに提供される制御信号を介して、プロセス制御システムでプロセスを制御する複数の制御モジュールを取得することと、フィールドデバイスに通信可能に連結されたコントローラファームの複数のコントローラの各々から可用性メトリックを取得することと、可用性メトリックに基づいて特定の時間間隔でそれぞれの制御モジュールを実行するために複数のコントローラのうちの１つに複数の制御モジュールの各々を割り当てることと、を含む、方法。
【００９０】
２７．複数のコントローラのうちの１つに可用性メトリックを取得することは、コントローラのロード、帯域幅、及び利用可能なメモリの指標に基づいて可用性メトリックを識別することを含む、態様２６に記載の方法。
【００９１】
２８．可用性メトリックに基づいて特定の時間間隔でそれぞれの冗長モジュールまたはビッグデータモジュールを実行するために複数のコントローラのうちの１つに１つ以上の冗長モジュール及び１つ以上のビッグデータモジュールの各々を割り当てることと、をさらに含む、態様２６または態様２７のいずれか１つに記載の方法。
【００９２】
２９．冗長モジュール、及びビッグデータモジュールの各々に優先レベルを割り当てることと、割り当てられた優先レベルに従って制御モジュール、冗長モジュール、及びビッグデータモジュールを順位付けすることと、をさらに含む、態様２６〜２８のいずれかに記載の方法。
【００９３】
３０．制御モジュール、冗長モジュール、及びビッグデータモジュールが、それぞれの順位の順番で、複数のコントローラに割り当てられ、最高順位の制御モジュール、冗長モジュール、またはビッグデータモジュールが最初に割り当てられる、態様２６〜２９のいずれかに記載の方法。
【００９４】
３１．１つ以上のプロセッサと、１つ以上のプロセッサに連結されており、内部に命令を記憶させた非一時的コンピュータ可読媒体であって、命令が、１つ以上のプロセッサによって実行されたとき、コンピューティングデバイスに、プロセス制御システム内で物理的機能を実行するように構成されたフィールドデバイスに提供される制御信号を介してプロセス制御システムでプロセスを制御する複数の制御モジュールを取得させ、複数のフィールドデバイスに通信可能に連結されたコントローラファームの複数のコントローラの各々から可用性メトリックを取得させ、可用性メトリックに基づいて特定の時間間隔でそれぞれの制御モジュールを実行するために複数のコントローラのうちの１つに複数の制御モジュールの各々を割り当てさせる、非一時的コンピュータ可読媒体と、を備える、プロセス制御システムのコンピューティングデバイス。
【００９５】
３２．複数のコントローラのうちの１つに可用性メトリックを取得するために、命令がコンピューティングデバイスにコントローラのロード、帯域幅、及び利用可能なメモリの指標に基づいて可用性メトリックを識別させる、態様３１に記載のコンピューティングデバイス。
【００９６】
３３．命令がさらに、コンピューティングデバイスに、可用性メトリックに基づいて特定の時間間隔でそれぞれの冗長モジュールまたはビッグデータモジュールを実行するために複数のコントローラのうちの１つに１つ以上の冗長モジュール及び１つ以上のビッグデータモジュールの各々を割り当てさせる、態様３１または態様３２のいずれか１つに記載のコンピューティングデバイス。
【００９７】
３４．命令がさらに、コンピューティングデバイスに、制御モジュール、冗長モジュール、及びビッグデータモジュールの各々に優先レベルを割り当てさせ、割り当てられた優先レベルに従って制御モジュール、冗長モジュール、及びビッグデータモジュールを順位付けする、態様３１〜３３のいずれかに記載のコンピューティングデバイス。
【００９８】
３５．制御モジュール、冗長モジュール、及びビッグデータモジュールが、それぞれの順位の順番で、複数のコントローラに割り当てられ、最高順位の制御モジュール、冗長モジュール、またはビッグデータモジュールが最初に割り当てられる、態様３１〜３４のいずれかに記載のコンピューティングデバイス。
【００９９】
３６．コンピューティングデバイスがコントローラファーム内の複数のコントローラのうちの１つである、態様３１〜３５のいずれかに記載のコンピューティングデバイス。
【０１００】
加えて、本開示の先の態様は、単に例示的なものであり、本開示の範囲を限定することを意図しない。
【０１０１】
以下の追加の検討事項が、上記の考察に適用される。本明細書全体を通して、任意のデバイスまたはルーチンによって実行されるものとして記載された動作は、機械可読命令に従ってデータを操作または変換するプロセッサの動作またはプロセスを概して指す。機械可読命令は、プロセッサに通信可能に連結されたメモリデバイス上に記憶され、それから取得され得る。すなわち、本明細書に記載された方法は、コンピュータ可読媒体上に（例えば、メモリデバイス上に）記憶された機械実行可能命令のセットによって具現化され得る。命令は、対応するデバイス（例えば、オペレータワークステーション、コントローラ、制御マネージャ、ＵＩデバイス等）の１つ以上のプロセッサによって実行されたとき、プロセッサに方法を実行させる。命令、ルーチン、モジュール、プロセッサ、サービス、プログラム、及び／またはアプリケーションが、コンピュータ可読メモリ上またはコンピュータ可読媒体上に記憶または保存されるとして本明細書において言及される場合、「記
憶（ｓｔｏｒｅｄ）」及び「保存（ｓａｖｅｄ）」という語は、一時的信号を除外することが意図される。
【０１０２】
さらに、「オペレータ（ｏｐｅｒａｔｏｒ）」、「従業員（ｐｅｒｓｏｎｎｅｌ）」、「人物（ｐｅｒｓｏｎ）」、「ユーザ（ｕｓｅｒ）」、「技術者（ｔｅｃｈｎｉｃｉａｎ）」、「エンジニア（ｅｎｇｉｎｅｅｒ）」という用語、及び同様の他の用語が、本明細書で記載されたシステム、装置、及び方法を使用またはそれらと相互作用し得るプロセスプラント環境内の人物を記載するために使用されるが、これらの用語は、限定を意図するものではない。特定の用語が説明で使用される場合、用語は、一部において、プラント従業員が従事する従来の活動に起因して使用されるが、特定の活動に従事し得る従業員を限定することを意図しない。
【０１０３】
加えて、本明細書を通して、複数の事例は、単一の事例として記載された構成要素、動作、または構造を実装し得る。１つ以上の方法の個々の動作が別個の動作として例示及び記載されたが、個々の動作のうちの１つ以上が同時に実行されてもよく、例示された順序で動作が実行される必要はない。例示的な構成内で別個の構成要素として提示された構造及び機能は、組み合わされた構造または構成要素として実装されてもよい。同様に、単一構成要素として提示された構造及び機能は、別個の構成要素として実装されてもよい。これらの及び他の変形、修正、追加、及び改善は、本明細書の主題の範囲内にある。
【０１０４】
別途特に記載されない限り、「処理すること（ｐｒｏｃｅｓｓｉｎｇ）」、「コンピューティングすること（ｃｏｍｐｕｔｉｎｇ）」、「計算すること（ｃａｌｃｕｌａｔｉｎｇ）」、「判定すること（ｄｅｔｅｒｍｉｎｉｎｇ）」、「識別すること（ｉｄｅｎｔｉｆｙｉｎｇ）」、「提示すること（ｐｒｅｓｅｎｔｉｎｇ）」、「提示させること（ｃａｕｓｉｎｇ  ｔｏ  ｂｅ  ｐｒｅｓｅｎｔｅｄ）」、「表示させること（ｃａｕｓｉｎｇ
ｔｏ  ｂｅ  ｄｉｓｐｌａｙｅｄ）」、「表示すること（ｄｉｓｐｌａｙｉｎｇ）」等のような語を使用する本明細書の考察は、１つ以上のメモリ（例えば、揮発性メモリ、不揮発性メモリ、もしくはそれらの組み合わせ）、レジスタ、または情報を受信、記憶、送信、もしくは表示する他の機械構成要素内の物理（例えば、電気、磁気、生体、もしくは光）量として表されたデータを操作または変換する機械（例えば、コンピュータ）の動作またはプロセスを指し得る。
【０１０５】
ソフトウェアに実装される場合、本明細書に記載されるアプリケーション、サービス、及びエンジンはいずれも、コンピュータもしくはプロセッサのＲＡＭもしくはＲＯＭ等における磁気ディスク、レーザディスク、固体メモリデバイス、分子メモリストレージデバイス、または他の記憶媒体等の、任意の有形の非一時的コンピュータ可読メモリに記録され得る。本明細書に開示される例示的システムは、他の構成要素の中でも、ハードウェア上で実行されるソフトウェア及び／またはファームウェアを含むように開示されているが、そのようなシステムは単に例示的であるに過ぎず、限定的であるとみなされるべきではないことに留意されたい。例えば、これらのハードウェア、ソフトウェア、及びファームウェア構成要素のうちのいずれかまたは全てが、ハードウェアにのみ、ソフトウェアにのみ、あるいはハードウェア及びソフトウェアの任意の組み合わせで、埋め込まれ得ることが企図される。したがって、当業者は、提供された例がこのようなシステムを実装する唯一の方式ではないことを容易に理解するであろう。
【０１０６】
したがって、本発明は具体的な例に関して記載されてきたが、これらの例は例解的であるに過ぎず、本発明の限定であることを意図せず、変更、追加、または削除が、本発明の趣旨及び範囲から逸脱することなく、開示される実施形態に対して行われ得ることが当業者には明らかであろう。
【０１０７】
ある用語が、本特許において、「本明細書では…を意味するように定義される（Ａｓ  ｕｓｅｄ  ｈｅｒｅｉｎ，  ｔｈｅ  ｔｅｒｍ  ‘＿＿＿＿＿＿’  ｉｓ  ｈｅｒｅｂｙ
ｄｅｆｉｎｅｄ  ｔｏ  ｍｅａｎ  ．．．）」という文、または同様の文を使用して明確に定義されない限り、その用語の意味を、その平易または通常の意味を超えて明確にあるいは暗示的に限定することは意図されていないことが理解されるべきであり、かつそのような用語は、本特許の任意の項においてなされた任意の言明に基づいて（請求項の文言を除く）、範囲が限定されると解釈されるべきではない。本特許の最後で請求項内に記載された任意の用語が単一の意味と矛盾しない様式で本特許内において参照されるという点で、それは、読み手を混乱させないために単に明瞭化のためになされ、このような請求項の用語が、示唆またはその他の点で、その単一の意味に限定されることを意図するものではない。最後に、請求項要素が、任意の構造の詳説なしに、「手段（ｍｅａｎｓ）」という語及び機能を列記することによって定義されていない限り、いかなる請求項要素の範囲も、３５Ｕ．Ｓ．Ｃ．§１１２（ｆ）及び／または旧法３５Ｕ．Ｓ．Ｃ．§１１２第６段落の適用に基づいて解釈されることは意図されていない。
【０１０８】
さらに、上記の文章は多くの異なる実施形態の詳細な説明を明らかにしたが、本特許の範囲が本特許の最後に明らかにされる請求項の語によって定義されることが理解されるべきである。詳細な説明は、単に例示的なものとして解釈されるべきであり、全ての可能な実施形態を説明することは、不可能ではない場合でも非現実的であるので、全ての可能な実施形態を説明するものではない。多くの代替的実施形態が、現在の技術または本特許の出願日の後に開発された技術のいずれかを使用して実装され得るが、これらは、依然として請求項の範囲内に収まるであろう。
【図１Ａ】
2019036313.tif 000003
【図１Ｂ】
2019036313.tif 000004
【図２】
2019036313.tif 000005
【図３】
2019036313.tif 000006
【外国語明細書】
2019036313000001.pdf