(57)【要約】【課題】プロセス工場において制御冗長性をアップグレードおよび提供するための方法と機器を提供する。【解決手段】例示的な開示されるプロセス制御システムの制御装置のためのソフトウェアをアップグレードするための方法には、ソフトウェアの置換構成部分をインスタンス化することと、既存の構成部分から置換構成部分に状態データをコピーすることと、置換構成部分の第１の状態が既存の構成部分の第２の状態と一致する場合に置換構成部分を能動モードに変更することとが含まれる。【選択図】図５
2018116733.tif 000002
【特許請求の範囲】
【請求項１】
プロセス工場の制御システムに対して制御冗長性を提供するための方法であって、
制御ソフトウェアサブシステムの第１のインスタンスと、前記制御ソフトウェアサブシステムの第２のインスタンスとに、制御入力を提供し、前記第１のインスタンスおよび前記第２のインスタンスが前記制御入力を実質的に並行して処理することと、
前記第１のインスタンスの出力又は前記第２のインスタンスの出力のいずれかを前記プロセス工場のフィールド装置に提供することと、を含む方法。
【請求項２】
前記第１のインスタンスおよび前記第２のインスタンスが異なる制御装置を介して実行されることを特徴とする請求項１に記載の方法。
【請求項３】
前記制御装置が、プロセス工場コントローラ、プロセス工場コントローラのプロセッサ、プロセス工場コントローラの中央処理装置、且つ又はプロセス工場コントローラのプロセッサコアの少なくとも一つであることを特徴とする請求項２に記載の方法。
【請求項４】
前記異なる制御装置が各々少なくとも一つの制御アプリケーション用の能動コントローラであることを特徴とする請求項２に記載の方法。
【請求項５】
前記異なる制御装置の各々の処理負荷に基づいて、前記異なる制御装置の中のどの制御装置が前記第１のインスタンスおよび前記第２のインスタンスを実行するかを選択することを特徴とする請求項２に記載の方法。
【請求項６】
前記異なる制御装置の中のどの制御装置が前記第１のインスタンスおよび前記第２のインスタンスを実行するかを一定の時間後に変更させることを特徴とする請求項２に記載の方法。
【請求項７】
前記第１のインスタンスおよび前記第２のインスタンスが同じ制御装置上で実行されることを特徴とする請求項１に記載の方法。
【請求項８】
前記制御ソフトウェアサブシステムが、前記制御システムのための制御アプリケーションの一部であることを特徴とする請求項１に記載の方法。
【請求項９】
前記第１のインスタンスがマスターであり、前記第１のインスタンスの出力及び前記第２のインスタンスの中のどの出力が前記フィールド装置に提供されるかを判断することを特徴とする請求項１に記載の方法。
【請求項１０】
前記制御ソフトウェアサブシステムの第３のインスタンスに制御入力を提供することと、
前記第１のインスタンス、前記第２のインスタンス、および前記第３のインスタンスの出力を収集することと、
前記第１のインスタンスの出力〜前記第３のインスタンスの出力の中のどの出力が前記フィールド装置に提供されるかを判断するために投票を行うことと、
をさらに含む請求項１に記載の方法。
【請求項１１】
前記制御ソフトウェアサブシステムの第３のインスタンスに制御入力を提供することと、
前記第１のインスタンス、前記第２のインスタンス、および前記第３のインスタンスの出力を交換することと、をさらに含み、
前記第１のインスタンス〜前記第３のインスタンスの中のどのインスタンスが前記フィールド装置にその出力を提供することかを判断するために前記第１のインスタンス、前記第２のインスタンス、および前記第３のインスタンスが投票を行うことを特徴とする、請求項１に記載の方法。
【請求項１２】
プロセス制御システムの制御装置のソフトウェアの構成部分を置換すると共に第１の現存構成部分とアップグレードモジュールとを備える置換装置であって、
前記第１の現存構成部分は、前記ソフトウェアの第２の現存構成部分が障害を起こした、障害を起こしている、及びエラー状態となっていることの少なくとも１つである時を判断し、
前記アップグレードモジュールは、
前記第２の現存構成部分が前記障害を起こした、前記障害を起こしている、及び前記エラー状態となっていることの少なくとも１つである時を前記第１の現存構成部分が判断した場合、前記ソフトウェアのアクティブな１次構成部分の外部データの交換に影響を及ぼさずに、前記ソフトウェアの置換構成部分をインスタンス化し、
前記置換構成部分の第１の状態が前記第１の現存構成部分及び前記第２の現存構成部分の中の１つの第２の状態に一致する時、前記置換構成部分をアクティブモードに変化させ、
前記第１の現存構成部分及び前記第２の現存構成部分の各々は、同じソフトウェアをインスタンス化する、
置換装置。
【請求項１３】
前記第１の現存構成部分及び前記第２の現存構成部分は、同じ出力を処理するように同時に動作する、請求項１２に記載の置換装置。
【請求項１４】
前記第２の現存構成部分が前記障害を起こした、前記障害を起こしている、及び前記エラー状態となっていることの少なくとも１つである時よりも前に、前記第１の現存構成部分及び前記第２の現存構成部分の中のどれがマスター構成部分であるべきかを判断する冗長制御装置を更に備える請求項１２に記載の置換装置。
【請求項１５】
前記第１の現存構成部分の出力及び前記置換構成部分の出力の中のどれがフィールド装置に送信されるべきかを判断する冗長制御装置を更に備える請求項１２に記載の置換装置。
【請求項１６】
前記第１の現存構成部分は、
前記第１の現存構成部分の出力と前記第２の現存構成部分の出力とを比較し、前記第１の現存構成部分の前記出力が前記第２の現存構成部分の前記出力と一致しない時に、前記第２の現存構成部分が前記障害を起こした、前記障害を起こしている、及び前記エラー状態となっていることの少なくとも１つであると判断することにより、
前記第２の現存構成部分が前記障害を起こした、前記障害を起こしている、及び前記エラー状態となっていることの少なくとも１つである時を判断する、
請求項１２に記載の置換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してプロセス工場に関し、より具体的にはプロセス工場において制御冗長性をアップグレードおよび提供するための方法と機器に関する。
【背景技術】
【０００２】
化学薬品の処理工程や、石油精製工程、又はその他のプロセス、システム、且つ又はプロセス工場において使用されるような分散形プロセス制御システムは通常、種々様々なアナログ、デジタル又はアナログ・デジタル混在バスのいかなるものを介して、一つ又は複数のフィールド装置に通信可能に連結される一つ又は複数のプロセス制御素子を含んでいる。このようなシステム且つ又はプロセスにおいて、例えば、バルブ、バルブポジショナ、スイッチ且つ又はトランスミッタ（例えば、温度、圧力、レベルおよび流量のセンサ）を含むフィールド装置は、プロセス環境内に設けられており、プロセス・パラメータの測定やバルブの開閉などのプロセス制御、警報機能且つ又は管理機能を行う。プロセスコントローラもまた工場環境内に設けられうるものであり、フィールド装置により生成されたプロセス計測、且つ又はフィールド装置に関するその他の情報を示す信号を受信する。例えば受信された信号に基づいて、プロセスコントローラは、アラームの始動、プロセス制御に関する決定、制御信号の生成且つ又は、ＨＡＲＴやフィールドバス（Ｆｉｅｌｄｂｕｓ）フィールド装置などのフィールド装置により実行されるその他の制御モジュール且つ又は機能ブロックとの協調を行うために、任意数の且つ又はいかなるタイプ（複数可）の制御モジュール、ソフトウェア・モジュール、ソフトウェアサブシステム、ルーチン且つ又はソフトウェアスレッドを実現すべく、コントローラのアプリケーションを実行する。コントローラ（複数可）内の制御モジュールは、プロセス工場の動作を制御するフィールド装置に、通信線を通じて制御信号を送信する。
【０００３】
フィールド装置且つ又はコントローラからの情報は、通常、データハイウェイ又は通信ネットワークを通じて、一つ又は複数のその他のハードウェアデバイスから（例えば、オペレーターワークステーション、パーソナルコンピュータ、データヒストリアン、報告書作成ルーチン、集中化データベースなど）にとって利用可能なものとされる。一般に、このような装置は制御室に設置されたり、且つ又は比較的厳しい工場環境から離れたその他の場所に設置されたりする。例えば、作動状態の変更、プロセス制御ルーチン（複数可）の設定変更、プロセスコントローラ且つ又はフィールド装置内の制御モジュールの動作の修正変更、工程（複数可）の現状表示、フィールド装置且つ又はコントローラにより生成された警報アラームの表示、人員をトレーニング且つ又はプロセス制御ソフトウェアをテストする目的で行う工程（複数可）の動作のシミュレーション、構成用データベースの維持管理且つ又は更新などをはじめとするプロセス工場内の工程（複数可）に関する様々な機能のいずれかをオペレータが実行できるようにするアプリケーションは、これらのハードウェア装置により実行される。
【０００４】
一例として、エマソン・プロセスマネジメント社（Ｅｍｅｒｓｏｎ Ｐｒｏｃｅｓｓ Ｍａｎａｇｅｍｅｎｔ）の法人であるフィッシャー‐ローズマウント・システムズ社（Ｆｉｓｈｅｒ―Ｒｏｓｅｍｏｕｎｔ Ｓｙｓｔｅｍｓ， Ｉｎｃ．）により販売されるＤｅｌｔａＶ（登録商標）制御システムは、可能性としてプロセス工場内の様々な異なる位置に設置されうる異なる装置内に格納された且つ又は異なる装置により実行される複数のアプリケーションをサポートしている。一つ又は複数のオペレーターワークステーション内に存在する且つ又は一つ又は複数のオペレーターワークステーションにより実行される構成用アプリケーションは、ユーザが、データハイウェイ且つ又は通信ネットワークを介し、専 
用分散コントローラに対してプロセス制御モジュールをダウンロードしたり、作成したり、且つ又は変更したりできるようにする。一般に、これらの制御アプリケーションは、通信可能に連結された且つ又は相互に接続される制御モジュール、ソフトウェアモジュール、ソフトウェアサブシステム、ルーチン、ソフトウェアスレッドで構成されている、且つ又は、受信された入力に基づいて制御機構内の機能（例えば、プロセス制御且つ又はアラーム生成）を実行するところの且つ又は制御機構内のその他のブロックに出力を提供するところの機能ブロックで構成されている。また、構成用アプリケーションを利用することによって、例えばオペレータ用のデータを表示するために表示用アプリケーションにより使用されるオペレータ・インタフェースを作成且つ又は変更することがシステム構成エンジニア且つ又はオペレータにとって可能になりうる、且つ又は、プロセス制御ルーチン内の設定点且つ又は作動状態などの設定を変更することがオペレータにとって可能になりうる。専用コントローラ（また、場合によってはフィールド装置）はそれぞれ、実際のプロセス制御機能性を実施するために割り当てられた制御モジュールを実行する制御アプリケーションを格納する、且つ又は実行する。
【発明の開示】
【課題を解決するための手段】
【０００５】
プロセス工場において制御冗長性をアップグレードおよび提供するための方法と機器が開示される。プロセス制御システムの制御装置用ソフトウェアをアップグレードするための本開示による例示的な方法には、ソフトウェアの置換構成部分をインスタンス化することと、既存の構成部分から置換構成部分に状態データをコピーすることと、そして、置換構成部分の第１の状態が既存の構成部分の第２の状態と一致する場合に置換構成部分を能動モードに変更することとが含まれる。
【０００６】
プロセス工場の制御システムに対して制御冗長性を提供するための本開示による別の例示的な方法において、該方法には、制御ソフトウェアサブシステムの第１のインスタンスおよび制御ソフトウェアサブシステムの第２のインスタンスに制御入力を提供し、第１および第２のインスタンスが制御入力を実質的に並行して処理することと、第１のインスタンスの出力又は第２のインスタンスの出力のいずれかをプロセス工場のフィールド装置に提供することと、が含まれる。
【図面の簡単な説明】
【０００７】
【図１】本発明の教示に従って構成された例示的なプロセス制御システムの概略図である。
【図２】図１の例示的なコントローラのいずれか又は全てを実施する例示的な方法を示す図である。
【図３】図１のプロセス制御システムのための例示的な冗長制御方式を示す図である。
【図４】図１のプロセス制御システムのための例示的な冗長制御方式を示す図である。
【図５】例示的な冗長コントローラ且つ又は、さらに概して言うと図１且つ又は図２の例示的なコントローラのいずれか又は全てを実施するために実行しうる例示的なプロセスを示すフローチャートである。
【図６】図２の例示的な制御構成部分のいずれか又は全てをアップグレードするために図２の例示的なにアップグレードモジュールを実施するために実行しうる例示的なプロセスを示すフローチャートである。
【図７Ａ】図２の例示的な制御構成部分のいずれか又は全てをアップグレードするために行いうる例示的なプロセスを示す図である。
【図７Ｂ】図２の例示的な制御構成部分のいずれか又は全てをアップグレードするために行いうる例示的なプロセスを示す図である。
【図７Ｃ】図２の例示的な制御構成部分のいずれか又は全てをアップグレードするために行いうる例示的なプロセスを示す図である。
【図７Ｄ】図２の例示的な制御構成部分のいずれか又は全てをアップグレードするために行いうる例示的なプロセスを示す図である。
【図８Ａ】制御構成部分の二つのバージョンを操作する例示的な制御システムを示す図である。
【図８Ｂ】制御構成部分の二つのバージョンを操作する例示的な制御システムを示す図である。
【図９】図５と図６且つ又は図７Ａ〜図７Ｄの例示的なプロセスを行なうべく、さらに概して言うと図１且つ又は図２の例示的なコントローラのいずれか又は全てを実施するべく使用且つ又はプログラしうる例示的なプロセッサープラットフォームの概略図である。
【発明を実施するための形態】
【０００８】
近代のプロセス制御システムは、３６５日２４時間体制で実施されるプロセス工場の稼動に向けて備えられている。継続的に稼動するプロセス工場の制御においては、制御装置のファームウェアをアップグレードする効率的な且つ又は融通性を持つ機構の必要性が生じる。かかる制御装置のアップグレードには、制御装置の動作不能時間最小限にすること、且つ又は工場の稼動に途切れが生じるのを大幅に無くすことが必要とされる。従来から、不稼働期間を短縮するために冗長制御装置を使用して制御装置のアップグレードが行われてきた。従来の手順では、バックアップ制御装置全体をアップグレードして、バックアップ装置が能動装置により構成されるようにし、さらにバックアップ装置への切り換えを行ってから、新規バックアップ装置（すなわち前回の能動装置）をアップグレードする。
【０００９】
一般に、制御装置アップグレード中にプロセス工場が中断することなく稼動できるように、冗長制御装置の必要性を少なくする且つ又は無くすべくここに記載される機器、方法および製造品を使用しうる。特に、制御装置且つ又は制御アルゴリズム（例えば、ソフトウェア・モジュール且つ又はソフトウェアサブシステム）の機能は、個々の構成部分に隔離されている、分割されている且つ又は個別になっており、それによって、各構成部分をその他の構成部分から個々独立してアップグレードすることが可能になる。個別の構成部分を使用することにより、機能ごと、構成部分ごとに制御装置をアップグレードできる、且つ又はその他の能動構成部分、制御装置且つ又はプロセス制御システムの諸部分に影響せずに特定の構成部分内の問題を解決するために制御装置をアップグレードできる。特定の構成部分をアップグレードするために、アップグレードされるべき構成部分を現在実行している制御装置内に、置換構成部分がインスタンス化される。実行時且つ又は状態データを同じ構成部分の別のバージョンに転送することができるように制御構成部分を実施すれば、アップグレード中の不稼働期間は無くなる。このようなインテリジェンスは、それがそれの置換構成部分に対して重要データを転送する間に既存の構成部分が実行し続けることを可能にする。いったん、新規の構成部分の状態が更新されると、置換構成部分が、元来の構成部分と同じ状態情報をもって動作を引き継ぐ。特定の構成部分だけをアップグレードするようにすれば、冗長制御装置全体の必要性は大幅に削減される。また、プロセッサ制御装置は、同じ構成部分の複数のバージョンを実行しうる。
【００１０】
いくつかの実施例では、制御装置が、ユーザから更新済み構成部分のファームウェアを受け取るためのマスター・アップグレードモジュールを含む、且つ又は実施する。アップグレードモジュールは、置換構成部分のインスタンスを作成し、置換構成部分およびそれにより置き換えられることになっている構成部分との間でのデータ更新を開始することによって、新規構成部分をインストールする。更新が完了した後、置換構成部分は能動モードに設定され、古い構成部分を終了しても良い状態になる。
【００１１】
ソフトウェア障害やハードウェアの故障、且つ又はソフトウェアの更新中に稼動が継続された、などの事象から素早く回復することが大切である。従来から、プロセス制御システムによって、専用の冗長制御装置の使用を通じて連続制御動作を提供しようという試みがなされてきた。制御装置の冗長複製は、能動的に稼動する制御装置の現状を模倣するように構成される。能動的に稼動する装置が（一つ又は複数の理由で）もはやそれの作業を完了できない場合には、バックアップ制御装置が引き継ぎ、装置に割り当てられた全作業を実行する。但し、稼動中の能動装置からの工程データ且つ又は状態情報とバックアップ装置が絶えず同期化することが要求されるので、シームレスな且つ又は段差の無い円滑なフェイルオーバ（障害迂回）を確実に行うのは困難である。このやり方では、多くの場合、能動装置をバックアップ装置によって引き継ぐことができない期間が生じる。
【００１２】
一般に、プロセス制御システム内に冗長性を分散できるようにし、それによって専用の冗長制御装置の必要性を補うべく、ここに記載される例示的な機器、方法および製造品を使用しうる。分散式アプローチを用いることによって、冗長動作が、その他の能動制御装置の且つ又は能動制御装置自体に含まれる自由に利用できるリソースを使用して実施される。本質的に、制御構成部分は全て能動（稼動）状態であると見なされ、よって、現在の工程データおよび状態情報を有するものである。
【００１３】
いくつかの実施例では、同じタイプの複数の制御構成部分は、各制御構成部分が能動制御構成部分の動作・処置を行いながら相互並行して実行する。全構成部分からの出力は、どの制御構成部分からのどの出力がフィールド装置（複数可）に通信されることになるかを決定するために投票アルゴリズムを使用するゲートウェイに向けられる。他の実施例では、制御構成部分が互いに出力を交換して、どの出力がフィールド装置（複数可）に通信されるべきかを集団的に決定する。
【００１４】
ここに記載されるように、同じタイプの複数の制御構成部分は同じ制御装置、プロセッサ且つ又はコントローラで実行且つ又は遂行できる、且つ又は、二つ以上の制御装置、プロセッサ且つ又はコントローラの全体にわたって実施することができる。制御装置、プロセッサ且つ又はコントローラへの制御構成部分の割当ては、利用可能な制御装置、プロセッサ且つ又はコントローラの処理負荷且つ又は数に基づいて動的に決定することができる。なおまた、利用可能な制御装置、プロセッサ且つ又はコントローラの処理機構の負荷（複数可）且つ又は数が変化するに伴って、割当ても変化しうる。
【００１５】
ここに記載されるように、制御装置ではなく制御構成部分に基づいたプロセス工場の制御冗長の実施は、ハードウェアに係る間接コストを削減し、付加的な冗長経路を提供し、より高速に故障回復を実現し、且つ又は、プロセス制御を利用できない時間（期間）を短縮させる。
【００１６】
プロセス制御システム内で冗長性を分散できるようにして専用冗長制御装置の必要性を補うための、且つ又は冗長制御装置の必要性を削減する且つ又は無くして制御装置のアップグレード中にプロセス工場の稼動が中断されないようにするための方法と機器が開示されているが、冗長性を実施するために且つ又は、プロセス工場の安全計装システムなどその他のシステムに対するアップグレードを行うために例示的な方法と機器を使用しうることは、通常の技術を有する当業者ならば容易に理解できるはずである。
【００１７】
図１は例示的なプロセス制御システム１０５の概略図である。図１の例示的なプロセス制御システム１０５は一つ又は複数のプロセス制御プラットフォーム（図中、うち一つが１１０の参照番号で示される）と、一つ又は複数のオペレータステーション（図中、うち一つが１１５の参照番号で示される）および一つ又は複数のワークステーション（図中、うち二つが１２０および１２１の参照番号で示される）を含んでいる。例示的なプロセス制御プラットフォーム１１０、例示的なオペレータステーション１１５およびワークステーション１２０および１２１は、一般にエリア制御ネットワーク（ＡＣＮ）と指称されるローカルエリアネットワーク（ＬＡＮ）１２５且つ又はバスを介して通信可能に連結される。
【００１８】
図１の例示的なワークステーション１２０および１２１は、一つ又は複数の情報技術アプリケーション、ユーザ対話型アプリケーション、且つ又は通信アプリケーションを行うアプリケーションステーションとして構成しうる。例えば、アプリケーションステーション１２０が主としてプロセス制御に関連するアプリケーションを行うように構成しうる一方、アプリケーションステーション１２１は主としていかなる所望の通信媒体（例えば、ワイヤレス、配線接続式、など）およびプロトコル（例えば、ＨＴＴＰ、ＳＯＡＰ、など）を使用してその他の装置又はシステムとプロセス制御システム１０５が通信することを可能にする通信アプリケーションを行うように構成しうる。オペレータステーション１１５およびワークステーション１２０および１２１は、一つ又は複数のワークステーション又はその他いかなる適切なコンピュータ・システム又は処理システムを使用して実施しうる。例えば、シングルプロセッサのパソコン、シングルロセッサの又はマルチプロセッサのワークステーションなどを使用して、オペレータステーション１１５且つ又はワークステーション１２０および１２１を実施することも可能である。
【００１９】
図１の例示的なＬＡＮ１２５は、いかなる所望の通信媒体とプロトコルを使用して実施しうる。例えば、例示的なＬＡＮ１２５は、配線接続式の且つ又はワイヤレスのイーサネット（登録商標）通信方式によって構成しうる。但し、その他いかなる適切な通信媒体且つ又はプロトコルを使用できることは、通常の技術を有する当業者であれば容易に理解できるはずである。さらに、図１ではＬＡＮ１２５が一つだけ設けられているが、二つ以上のＬＡＮ且つ又はその他複数台の代替的な通信系ハードウェアを使用して、図１の例示的なシステム間に冗長通信路を提供するようにしても良い
図１の例示的な制御プラットフォーム１１０は、デジタルデータバス１３５および入・出力（Ｉ／Ｏ）装置１４０を介して、複数のスマート・フィールド装置１３０、１３１および１３２に連結される。スマート・フィールド装置１３０〜１３２はフィールドバス適合バルブ、アクチュエータ、センサなどでありえ、その場合スマート・フィールド装置１３０〜１３２は周知のフィールドバス・プロトコルを使用して、デジタルデータバス１３５を介して通信する。もちろんその他のタイプのスマート・フィールド装置や通信プロトコルを代わりに使用しても良い。例えば、スマート・フィールド装置１３０〜１３２は、周知のプロフィバスおよびＨＡＲＴ通信プロトコルによりデータバス１３５を介して通信するプロフィバス（Ｐｒｏｆｉｂｕｓ）且つ又はＨＡＲＴ対応の装置でありうる。付加的なＩ／Ｏ装置（Ｉ／Ｏ装置１４０と同一の且つ又はそれに類似する）を制御プラットフォーム１１０に連結し、（フィールドバス装置、ＨＡＲＴ装置などでありうる）スマート・フィールド装置の追加グループが制御プラットフォーム１１０と通信することを可能にしうる。
【００２０】
例示的なスマート・フィールド装置１３０〜１３２に加えて、一つ又は複数の非スマート・フィールド装置１４５および１４６を制御プラットフォーム１１０に通信可能に連結しうる。図１の例示的な非スマート・フィールド装置１４５および１４６は、例えばめいめいの配線接続式リンクを介して制御プラットフォーム１１０と通信する従来の４〜２０ミリアンペア（ｍＡ）又は０〜１０ボルトの直流電圧（VDC）装置でありうる。
【００２１】
図１の例示的な制御プラットフォーム１１０は、例えば、エマソン・プロセスマネジメント社法人であるフィッシャー−ローズマウント・システムズ株式会社により販売されるＤｅｌｔａＶ（登録商標）コントローラでありうる。但し、その他のコントローラを代わりに使用することも可能である。さらに、図１では制御プラットフォーム１１０が一つだけ備えられた状態で示されているが、いかなる所望のタイプの（且つ又はいかなる所望のタイプの組合せの）制御プラットフォーム且つ又はコントローラを追加してＬＡＮ１２５に連結することも可能である。いかなる場合も、制御プラットフォーム１１０は、プロセス制御システム１０５（オペレータステーション１１５を使用してシステムエンジニア且つ又はその他のシステム‐オペレータにより生成され、制御プラットフォーム１１０にダウンロード且つ又はインスタンス化されたもの）に関連する一つ又は複数のプロセス制御ルーチンを行いうる。
【００２２】
一つ又は複数の制御アルゴリズムを実行するために、図１の例示的な制御プラットフォーム１１０には一つ又は複数のコントローラ（すなわち制御装置）（図中、うち三つが１５０、１５１および１５２の参照番号で示される）が含まれる。図２の例示的なコントローラ１５０〜１５２には、一つ又は複数のオペレーティングシステム、制御アルゴリズム、制御構成部分且つ又はソフトウェアサブシステムを実行するための一つ又は複数のプロセッサ（すなわち制御装置）が含まれている。ここで使用される「制御装置」という用語は、コントローラ（例えば、例示的なコントローラ１５０〜１５２のいかなるもの）、且つ又はコントローラのプロセッサ、中央処理装置（ＣＰＵ）且つ又はプロセッサコアを指す。以下、説明を簡単にする目的で、制御構成部分の冗長且つ又はアップグレード作業を容易にするためにコントローラを使用した事例を開示する。但し、ここに記載される方法と機器は、いかなるタイプの制御装置（例えば、コントローラのプロセッサ、ＣＰＵ且つ又はプロセッサコア）にも基づきうる、且つ又は適用されうる。より詳しく後述されるように、例示的なコントローラ１５０〜１５２は、冗長明示制御コントローラ且つ又はバックアップ明示制御コントローラを必要とせずに制御構成部分の冗長且つ又はアップグレード作業を容易に行える。例示的なコントローラ１５０〜１５２により行なわれる制御アルゴリズムは個々の構成部分（例えば、ソフトウェア・モジュール且つ又はソフトウェアサブシステム）に隔離されている、分割されている且つ又は個別になっており、各構成部分をその他の構成部分から個々独立してアップグレードできる。以下、図１の例示的なコントローラ１５０〜１５２のいずれか又は全てを実施する例示的な方法を、図２を参照して説明する。
【００２３】
図１の例示的なコントローラ１５０〜１５２は、コントローラ１５０〜１５２により行われる各制御構成部分をその他の制御構成部分から個々独立してアップグレードできるようにするマスター・アップグレードモジュールを含む且つ又は実施する。特定の構成部分をアップグレードするべく、アップグレードされるべき構成部分を現在実行しているコントローラ１５０〜１５２の内で置換構成部分がインスタンス化される。同じ構成部分のその他のバージョンに実行時且つ又は状態データを転送できるように制御構成部分を実施することによりアップグレード中の不稼働期間が無くなる。このようなインテリジェンスは、それがその置換構成部分に必要不可欠な重要データを転送中に既存の構成部分が実行を継続することを可能にする。いったん、新規の構成部分の状態が更新されると、置換構成部分が、元来の構成部分と同じ状態情報をもって動作を引き継ぐ。図８Ａおよび図８Ｂに関連して後述されるように、コントローラ１５０〜１５２はそれに加えて、又はその代わりとして、同じ構成部分の複数のバージョンを実行しうる。
【００２４】
同じ制御構成部分の複製を複数、同じ且つ又は異なるコントローラ１５０〜１５２により実行して、図１の例示的なプロセス制御システム１０５に対する制御冗長機能を行える。制御構成部分の複製は、同じコントローラ１５０〜１５２により、異なるコントローラ１５０〜１５２、且つ又は、異なる制御プラットフォーム１１０により実行できる。図３に関連して後述されるように、同じ制御構成部分の複製は各々、フィールド装置１３０〜１３２、１４５且つ又は１４６から同じ入力を受け取り、そして同じソフトウェアサブシステムを実行する。その後、制御構成部分の複製の出力を使用して（例えば、比較して）、フィールド装置（複数可）１３０〜１３２、１４５且つ又は１４６に対してどの出力が伝達されるのかを判断することができる。フィールド装置（複数可）１３０〜１３２、１４５且つ又は１４６に対してどの出力が伝達されるのかを判断するために、例えば、Ｉ／Ｏゲートウェイ（例えば、例示的なＩ／Ｏゲートウェイ１５５且つ又は１５６のうちの一つ）によって過半数得票による決定を行うことができる。それに加えて、又はその代わりとして、制御構成部分の複製は、互いに出力を交換して、フィールド装置（複数可）１３０〜１３２、１４５且つ又は１４６に対してどの出力が伝達されるのかを集団的に判断することができる。
【００２５】
フィールド装置１３０〜１３２に、１４５且つ又は１４６に、且つ又はＩ／Ｏ装置１４０に、例示的なコントローラ１５０〜１５２を通信可能に連結するために、図１の例示的な制御プラットフォーム１１０は、一つ又は複数のＩ／Ｏモジュール且つ又はゲートウェイ（図中、うち二つが１５５および１５６の参照番号で示される）を含んでいる。図１の例示的なＩ／Ｏゲートウェイ１５５および１５６は、コントローラ１５０〜１５２およびフィールド装置１３０〜１３２、１４５且つ又は１４６、且つ又はＩ／Ｏ装置１４０間のデータを経路指定して送るように構成可能である。例示的なコントローラ１５０〜１５２および例示的なＩ／Ｏゲートウェイ１５５および１５６は、制御プラットフォーム１１０内において、いかなるタイプのバックプレーン１６０を介して通信可能に連結される。図１に示される如く、例示的な制御プラットフォーム１１０は、ラック且つ又は棚状のものとして実施され、この場合、例示的なコントローラ１５０〜１５２およびＩ／Ｏゲートウェイ１５５および１５６は、棚状のもの且つ又はラックにプラグを差し込んで接続されるとバックプレーン１６０に通信可能に連結されるようになるカード且つ又はモジュールである。それに加えて、又はその代わりとして、コントローラ１５０〜１５２およびＩ／Ｏゲートウェイ１５５および１５６は別々に実施され、ＬＡＮ１２５を介して通信可能に連結される。
【００２６】
プロセス工場において制御冗長性をアップグレードおよび提供するためのより詳しく後述される方法と機器を都合に合わせて採用した例示的なプロセス制御システム１０５が図１には示されているが、希望する場合は、図１に示される実施例よりも複雑な（又は図１に示される例ほど複雑でない）その他のプロセス工場且つ又はプロセス制御システムにおいてもここに記載されるプロセス工場において制御冗長性をアップグレードおよび提供するための方法と機器を都合に合わせて採用しうることは、通常の技術を有する当業者ならば容易に理解できるはずである。
【００２７】
図２は、図１の例示的なコントローラ１５０〜１５２のいずれか又は全てを実施する例示的な方法を示す。図１のコントローラ１５０〜１５２のいずれか又は全てが図２の装置として表されているかもしれないが、説明を簡単にするために、ここでは図２の装置をコントローラ１５０とする。図２の例示的なコントローラ１５０は、少なくとも一つの汎用プログラム可能プロセッサ２０５を含む。図２の例示的なプロセッサ２０５は、プロセッサ２０５のメインメモリ２１０（例えば、ランダム・アクセス・メモリー（ＲＡＭ）且つ又は読み出し専用メモリー（ＲＯＭ）の中）にあるコード化指令を実行する。プロセッサ２０５は、プロセッサコア、プロセッサ且つ又はマイクロコントローラなど、いかなるタイプの処理装置でありうる。プロセッサ２０５は、その他数あるなかでも特に実時間オペレーティングシステム（ＲＴＯＳ）２１５、アップグレードモジュール２２０、冗長コントローラ２２５且つ又は一つ又は複数の制御構成部分２３０を実行しうる。ＲＴＯＳ２１５の例としては、ＱＮＸソフトウェア・システムズ株式会社からのＱＮＸＴＭＲＴＯＳが挙げられる。図２の例示的なメインメモリ２１０は、プロセッサ２０５によって且つ又はそれの中で実施しうる、且つ又は、プロセッサ２０５に電気的に連結された一つ又は複数のメモリ且つ又は記憶装置でありうる。
【００２８】
図７Ａ〜図７Ｄに関連して後述されるように、図２の例示的なアップグレードモジュール２２０は例示的な制御構成部分２３０の一つ又は複数のアップグレードを制御する。図８Ａ〜図８Ｂに関連して後述されるように、例示的なアップグレードモジュール２２０は、それに加えて、又はその代わりとして、制御アルゴリズム且つ又は制御構成部分（例えば、ソフトウェアサブシステム）の異なるバージョンの同時且つ又は並列実行を制御することができる。
【００２９】
図３〜図５に関連して後述されるように、図２の例示的な冗長コントローラ２２５は、一式の制御構成部分の複製からの出力のうちどれがフィールド装置１３０〜１３２、１４５且つ又は１４６に通信されるかを制御且つ又は選択する。それに加えて、又はその代わりとして、冗長コントローラ２２５は、どの制御構成部分の複製が特定の制御構成部分のためのマスターかを判断する。図２の例示的な冗長コントローラ２２５が制御構成部分２３０とは別に示されているが、制御構成部分の各々は、冗長コントローラを含みうる、且つ又は実施しうる。
【００３０】
図２の例示的な制御構成部分２３０は、制御アルゴリズムの全て又は一部分（例えば、ソフトウェアサブシステム）を実施且つ又は遂行する。例示的な制御構成部分２３０は、一つ又は複数のフィールド装置１３０〜１３２、１４５且つ又は１４６、且つ又は別の制御構成部分２３０から入力を受け取り、一つ又は複数の出力を生成するべく（例えば、計算するべく）該入力を処理する。（例えば、制御アルゴリズムの一つ又は複数の付加手順を行うために、）別の制御構成部分２３０に、且つ又は一つ又は複数のフィールド装置１３０〜１３２、１４５且つ又は１４６に向けて、当該出力を配送しうる。
【００３１】
制御アルゴリズム且つ又は制御構成部分（例えば、ソフトウェアサブシステム）の画像イメージ２４０を格納するために、図２の例示的なコントローラ１５０には、不揮発性記憶部２３５が含まれている。図２の例示的な不揮発性記憶部２３５は、一つ又は複数の制御構成部分の画像イメージ２４０を格納する。プロセッサ２０５により現在実行されている制御構成部分の画像イメージ２４０の格納に加えて、例示的な記憶部２３５は、プロセッサ２０５により実行されうるその他の制御構成部分の画像イメージ２４０を格納することができる。図２の例示的な記憶部２３５が特定のコントローラ１５０と関連するものとして図に示されているが、記憶部２３５は、一式のコントローラ（例えば、図１の例示的なコントローラ１５０〜１５２）の全体にわたって収納されうる。記憶部２３５は、いかなる数且つ又はいかなるタイプ（複数可）のメモリ（複数可）且つ又は記憶装置（複数可）のにより実施しうる。
【００３２】
バックプレーン（例えば、図１の例示的なバックプレーン１６０）と通信するために、図２の例示的なコントローラ１５０にはバックプレーン・インターフェース２４５が含まれている。図２の例示的なバックプレーン・インターフェース２４５は、コントローラ１５０が挿入されるところの制御プラットフォーム（例えば、例示的な制御プラットフォーム１１０）のバックプレーンに、例示的なプロセッサ２０５を電気的に且つ又は通信可能に連結する。
【００３３】
図１の例示的なコントローラ１５０〜１５２のいずれか又は全てを実施する例示的な方法が図２に示されているが、図２に示されるデータ構造、要素、プロセスおよび装置を、いかなる他の方法により、組み合わせうる、分割しうる、再配置しうる、省略しうる、取り除きうる、且つ又は実施しうる。さらに、図２の例示的なＲＴＯＳ２１５、例示的なアップグレードモジュール２２０、冗長コントローラ２２５、例示的な制御構成部分２３０且つ又は、さらに概して言うと例示的なコントローラ１５０は、ハードウェア、ソフトウェア、ファームウェア且つ又は、ハードウェア、ソフトウェア且つ又はファームウェアのいかなる組合せにより実施しうる。なおさらに、例示的なコントローラ１５０は、図２に示されるものの代わりに、又はそれに加えて、付加的な要素、プロセス且つ又は装置を含みうる、且つ又は、図示されるデータ構造、要素、プロセスおよび装置のいずれか又は全ての二つ以上を含みうる。
【００３４】
図３および図４は、図１の例示的なプロセス制御システム１０５のための例示的な冗長性制御方式を示す。図３に示される実施例において、一つ又は複数のフィールド装置（例えば、例示的な装置１３０〜１３２、図１の１４５の且つ又は１４６）からの、且つ又は制御アルゴリズム且つ又は制御構成部分からの入力（複数可）３０５は、特定の制御構成部分の二つ以上の複製（図中、うち三つが３１０、３１１および３１２の参照番号で示される）に提供される。図３の例示的な制御構成部分３１０〜３１２は、制御アルゴリズムの全て又は一部分（例えば、制御アルゴリズムのソフトウェアサブシステム）を実施する。一つ又は複数のコントローラ（例えば、図１の例示的なコントローラ１５０〜１５２の一つ又は複数）によって、例示的な制御構成部分３１０〜３１２を実施且つ又は遂行しうる。例えば、制御構成部分３１０〜３１２の全てを単一のコントローラにより遂行する、制御構成部分３１０〜３１２の各々を異なるコントローラにより遂行する、などにしても良い。制御構成部分３１０〜３１２のコントローラへの割当ては、静的且つ又動的に行いうる。動的に割当てが行われる場合、例えば、利用可能なコントローラの数に基づいて、且つ又は利用可能なコントローラの現在の且つ又は履歴に基づく処理負荷に基づいて、割当てを調節しうる。なおまた、特定の制御構成部分の重複する複製の数も、例えば、制御構成部分の相対的重要度、利用可能なコントローラの数、且つ又は利用可能なコントローラの現在の且つ又は履歴に基づく処理負荷によって、静的且つ又動的なものになりうる。異なる制御構成部分（例えば、ソフトウェアサブシステム）の重複する複製の、異なるコントローラへの例示的な割当てを、図４に関連して後述する。
【００３５】
図３の例示的な制御構成部分３１０〜３１２は、同じソフトウェアサブシステムを実行且つ又は遂行する。制御構成部分３１０〜３１２が全て正常に（例えば、いかなるエラー（複数可）も無く）作動している場合、制御構成部分３１０〜３１２の全ての出力３１５は同一である。制御構成部分３１０〜３１２の特定の一つが障害を起こした、障害を起こしている、エラー状態になっている、などの場合、該特定の一つの出力（複数可）３１５は、他の制御構成部分３１０〜３１２の出力３１５とは異なりうる。出力（複数可）３１５の相違且つ又は欠如を検出することにより、制御構成部分３１０〜３１２のうちどれに障害が生じたのか、障害が生じているのか、且つ又はエラーが発生しているのかを識別することが可能になる。
【００３６】
図３に示される実施例において、障害を起こした・障害が生じている・且つ又はエラーが発生している制御構成部分３１０〜３１２を検出し、且つ制御構成部分３１０〜３１２のうちどれの出力（複数可）３１５がフィールド装置に且つ又は、同じ且つ又は異なる制御アルゴリズムの別の制御構成部分に通信されるべきかを選択するように、マスター３２０を構成しうる。図３の例示的なマスター３２０は、障害を起こした・障害が生じている・且つ又はエラーが発生している制御構成部分３１０〜３１２を検出するため、且つ又は、どの出力（複数可）３１５がフィールド装置に通信されるべきかを選択するために過半数得票による決定を行なう機能専用に設けられた中央処理装置、コントローラ且つ又はソフトウェアサブシステムでありうる。それに加えて、又はその代わりとして、制御構成部分３１０〜３１２から例示的なマスター３２０を動的に選択しうる。即ち、制御構成部分３１０〜３１２の各々には、当該の制御構成部分のためのマスター３２０として機能するべき論理が含まれている。このような実施例において、制御構成部分３１０〜３１２の各々が、障害を起こした・障害が生じている・且つ又はエラーが発生している制御構成部分３１０〜３１２を検出するため、且つ又は、どの出力（複数可）３１５がフィールド装置に通信されるべきかを選択するために過半数得票による決定を行うことを可能にすべく、例示的な制御構成部分３１０〜３１２は、互いに出力（複数可）３１５を交換する。マスター制御構成部分３１０〜３１２が障害を起こした、障害が生じている、且つ又はエラーが発生していることが、現時点においてマスター３２０として機能していない制御構成部分３１０〜３１２によって検出されると、その制御構成部分３１０〜３１２はマスター３２０としての機能を引き継ぎ、障害を起こした・障害が生じている・且つ又はエラーが発生している制御構成部分３１０〜３１２についてシステム‐オペレータに（例えば、オペレータステーション１１５を介して）通知することができる。どの制御構成部分３１０〜３１２がマスター３２０として引き継ぐかは、ラウンドロビン選択アルゴリズムなどのマスター仲裁スキームを使用して決定しうる。
【００３７】
図４は、複数の制御構成部分（例えば、ソフトウェアサブシステム）の重複する複製を異なるコントローラに割り当てる際の実施例を示す。図４に示される実施例では、ソフトウェアサブシステムＬの第１の複製４０５が制御装置（例えば、コントローラ）４１０に割り当てられ、ソフトウェアサブシステムＬの第２の複製４１５もまたコントローラ４１０に割り当てられ、そして、ソフトウェアサブシステムＬの第３の複製４２０は、第２の制御装置（例えば、第２のコントローラ）４２５に割り当てられる。さらに、ソフトウェアサブシステムＺの第１の複製４３０がコントローラ４１０に割り当てられ、同第２の複製４３５が第３の制御装置（例えば、第３のコントローラ４０）に割り当てられる。同様に、ソフトウェアサブシステムＢの第１の複製４４５はコントローラ４２５に割り当てられ、そして第２の複製４５０はコントローラ４４０に割り当てられる。
【００３８】
図４に示される実施例では、特定のソフトウェアサブシステムの各複製は、特定のそのソフトウェアサブシステムのためのマスター（例えば、一次的）なものであるか、又は二次的なものであるかのいずれかである。マスターか二次的かの指定は、静的且つ又は動的に行いうる、且つ又はソフトウェアサブシステム自体の複製によって、且つ又は中央冗長制御プロセスによって決定しうる。図示されるように、所与のコントローラは、ある一つのソフトウェアサブシステムにとっては一次的なものでありうる間、別のソフトウェアサブシステムにとっては二次的なものでありうる。なおまた、各ソフトウェアサブシステムの重複する複製の数は異なりうる。
【００３９】
図５は、図２の例示的な冗長コントローラ２２５且つ又は、さらに概して言うとここに記載される例示的なコントローラ１５０〜１５２のいずれか又は全てによって実行されうる例示的なプロセスを示すフローチャートである。図６は、図２の例示的な制御構成部分のいずれか又は全てをアップグレードするべく図２の例示的なアップグレードモジュール２２０を実施するために実行されうる例示的なプロセスを示すフローチャートである。図５且つ又は図６の例示的なプロセスは、プロセッサ、コントローラ且つ又はその他いかなる適切な処理装置により実行しうる。例えば、図５且つ又は図６の例示的なプロセスは、プロセッサ（例えば、図９を参照して後述される例示的なプロセッサ９０５）に関連するフラッシュメモリ、ＲＯＭ且つ又はランダム・アクセス・メモリーＲＡＭなどの有形機械アクセス可能又は判読可能媒体に格納されたコード化指令によって具現化しうる。あるいは、特定用途向け集積回路（ＡＳＩＣ）（複数可）、プログラム可能論理回路（ＰＬＤ）（複数可）、フィールド・プログラム可能論理回路（ＦＰＬＤ）（複数可）、離散論理、ハードウェア、ファームウェアなどのいかなる組合せの使用することによっても、図５且つ又は図６の例示的な動作のいくつか又は全てを実施しうる。また、図５且つ又は図６に描かれる動作は、マニュアル操作によっても、又は前述のいかなる技法のいかなる組合せ（例えばファームウェア、ソフトウェア、離散論理且つ又はハードウェアのいかなる組合せ）としても実施しうる。さらに、図５且つ又は図６の例示的なプロセスは図５且つ又は図６のフローチャートに関連して説明されているが、その他の多くの方法を採用して図５且つ又は図６の例示的なプロセスを実施しうることは、通常の技術を有する当業者ならば容易に理解できるはずである。例えば、諸ブロックの実行命令は変更されうるものであり、且つ又は、記載されるブロックのいくつかは、変更、削除、再分割、又は混合されうるものである。加えて、図５且つ又は図６の例示的な動作のいかなるもの又は全ては、例えば、別の処理スレッド、プロセッサ、装置、離散論理、回路などにより並行させて行いうること、且つ又は順次に行いうることも、通常の技術を有する当業者ならば理解できるはずである。
【００４０】
図５の例示的なプロセスは、制御構成部分（例えば図２の例示的な制御構成部分２３０のいずれか一つ）の複製が別の制御構成部分且つ又はフィールド装置から入力を受け取った時に始まる。制御構成部分の複製は、一つ又は複数の出力（例えば図３の例示的な出力３１５）を形成するために（例えば、計算するために）、受信した入力を処理する（ブロック５０５）。冗長コントローラ（例えば、例示的な冗長コントローラ２２５）は、制御構成部分のその他の複製により計算された出力（複数可）を収集且つ又は受信し（ブロック５１０）、該収集された出力を、制御構成部分の該複製により計算されたものと比較する（ブロック５１５）。
【００４１】
制御構成部分の複製が制御構成部分にとってのマスター（例えば一次的なもの）である場合（ブロック５２０）、且つ、マスターの出力が制御構成部分のその他の複製からの出力の過半数と一致する場合（ブロック５２５）、制御構成部分は、（同じ且つ又は異なる制御アルゴリズムの）別の制御構成部分、且つ又はフィールド装置にその出力を送信する（ブロック５３０）。その後制御が図５の例示的なプロセスを出て終了する。
【００４２】
ブロック５２５に戻り、マスターの出力が制御構成部分のその他の複製からの出力の過半数と一致しない場合（ブロック５２５）、現在のマスターは、マスターとしてのそれの役割を譲る（ブロック５３５）。その後制御が図５の例示的なプロセスを出て終了する。
【００４３】
ブロック５２０に戻り、制御構成部分の複製が、現時点において制御構成部分のマスターでない場合（ブロック５２０）、冗長コントローラは、現在のマスターが正しく作動しているかどうかを判断する（ブロック５４０）。例えば、マスターの出力（複数可）が、その他の制御構成部分複製の出力（複数可）の過半数と一致する場合、冗長コントローラは、当該の現行マスターが正しく作動していると判断する。それに加えて、又はその代わりとして、現行マスターと冗長コントローラは、現行マスター且つ又は冗長コントローラが他の装置が機能している且つ又は反応しているかどうか判断することを可能にする（非周期的且つ又は周期的な）いわゆる「ハートビート（心拍）」信号を交換しうる。例えば、冗長コントローラがマスターからハートビート信号を受信すると、冗長コントローラは現行マスターが正しく作動していると判断する。現行マスターが正しく作動している場合（ブロック５４０）、制御が図５の例示的なプロセスから出て終了する。現行マスターが正しく作動していない場合には（ブロック５４０）、冗長コントローラ複製が、制御構成部分に対しマスターでの変更を開始する（ブロック５４５）。その後制御が図５の例示的なプロセスを出て終了する。
【００４４】
ユーザが特定の制御構成部分をアップグレードしたいとの旨を示した時点で、図６の例示的なプロセスが始まる。アップグレードモジュール（例えば図２の例示的なアップグレードモジュール２２０）は、ユーザから二値画像を受け取り（ブロック６０５）、その二値画像を（例えば例示的な記憶部２３５に）格納する（ブロック６１０）。アップグレードモジュールは、「更新係属中」モードにおいて新規の制御構成部分のインスタンスを開始する（ブロック６１５）。いくつかの実施例では、ＲＴＯＳの隔離されたプロセスとして新規の制御構成部分をインスタンス化する。
【００４５】
アップグレードモジュールは、古い構成部分から新規の構成部分への状態データの転送を開始する（ブロック６２０）。いくつかの実施例では、携帯型オペレーティング・システム・インターフェース（ＰＯＳＩＸ）関数呼出しなど、ＲＴＯＳのプロセス間通信能力を使用して状態データがコピーされる。状態データの転送が完了すると（ブロック６２５）、アップグレードモジュールは、元来の制御構成部分を終了させ（ブロック６３０）、そして新規の制御構成部分のモードを「アクティブ（能動）」に変更する（ブロック６３５）。その後制御が図６の例示的なプロセスを出て終了する。
【００４６】
いくつかの実施例では、古い構成部分を終了前に、新規構成部分をテストしうる。このような事例においては、新規構成部分が正しく作動しない場合に、新規構成部分を終了させて、古い構成部分をアクティブな（能動的な）構成部分のままにしておくことも許される。その他の実施例では、新規構成部分に欠点且つ又は不具合があることが後になって分かるかもしれず、その際、アップグレードモジュールは、新規構成部分が修正されて再度利用可能となるまで元来の構成部分に戻りうる。
【００４７】
図７Ａ、図７Ｂ、図７Ｃおよび図７Ｄは、制御構成部分（例えば、例示的な制御構成部分２３０のいずれか又は全て）をアップグレードするべくアップグレードモジュール（例えば、図２の例示的なアップグレードモジュール２２０）によって遂行しうる例示的なプロセスを示す。図７Ａは、制御構成部分７１５および制御構成部分７２０を利用する二つのプロセス制御アプリケーション７０５と７１０の初期状態を示す。図７Ａ−７Ｄに示される実施例では、制御構成部分７１５が新規のバージョンにアップグレードされるようになっている。
【００４８】
図７Ｂに示される如く、アップグレードモジュールは制御構成部分７１５のより新しいバージョンのインスタンス７２５を、隔離されたプロセスとして開始する。図７Ｃに示される実施例では、元来の制御構成部分７１５が、新規の制御構成部分７２５に状態データ且つ又は情報７３０をコピーする。新規の制御構成部分７２５の状態が元来の制御構成部分７１５の状態と一致する場合、図７Ｄに示されるように、アップグレードモジュールが、新規の制御構成部分７２５のモードを「アクティブ（能動）」に変更し、元来の制御構成部分７１５を終了させる。
【００４９】
図８Ａおよび図８Ｂは、制御構成部分の二つのバージョンを操作する例示的な制御システムを示す。図８Ａは、制御構成部分８１５および制御構成部分８２０を利用する二つのプロセス制御アプリケーション８０５と８１０の初期状態を示す。図８Ａおよび図８Ｂに示される実施例では、制御構成部分８１５が、制御アプリケーション８１０用の新しいバージョンにアップグレードされるようになっている。図８Ｂに示される如く、アップグレードモジュールは、制御構成部分８１５のより新しいバージョンのインスタンス８２５を開始し、プロセス制御アプリケーション８１０の用の入力を、新規の制御構成部分８２５に経路指定して送り始める。この間、プロセス制御アプリケーション８０５用の入力は継続して元来の制御構成部分８１５に受け渡される。元来の制御構成部分８１５と新規の制御構成部分８２５の両方は、同じ制御構成部分８２０を使用し続ける。
【００５０】
特定の制御構成部分の二つのバージョンを同時実行することにより、既存の制御構成部分において新規の機能特性を追加する際に、且つ又はそれにおいて不具合を修正する際に、プロセス制御システムにさらなる柔軟性・融通性を与えることが可能になる。例えば、品質がまだ完全にテストされていないかもしれない所謂「ホットフィックス」を含む新規の制御構成部分を導入し、変化を要する制御アルゴリズムによってだけ利用されるようにできる。新規の制御構成部分を必要としないその他の制御アルゴリズムは、新規の制御構成部分が正式に解除（公開）されるまで元来の制御構成部分を使用し続けることができる。それに加えて、又はその代わりとして、制御構成部分の二つのバージョンを使用すれば、新規の制御構成部分を正式に解除される前にテストすることができる、且つ又は後方互換性を伴わない変更を、その他の影響される制御構成部分が全て更新される前に導入できる。
【００５１】
図９は、ここに記載される例示的な制御プラットフォーム１１０、コントローラ１５０〜１５２、且つ又は例示的なプロセッサ２０５のいずれか又は全てを実施するために使用且つ又はプログラムされうる例示的なプロセッサープラットフォーム９００の概略図である。例えば、一つ又は複数の凡用プロセッサ、プロセッサコア、マイクロコントローラなどによりプロセッサープラットフォーム９００を実施することができる。
【００５２】
図９の実施例のプロセッサープラットフォーム９００は、汎用プログラム可能プロセッサ９０５を少なくとも一つ含んでいる。プロセッサ９０５は、プロセッサ９０５のメインメモリに（例えば、ＲＡＭ９１５且つ又はＲＯＭ９２０内に）あるコード化指令９１０且つ又は９１２を実行する。プロセッサ９０５は、プロセッサコア、プロセッサ且つ又は、マイクロコントローラなど、いかなるタイプの処理装置でありうる。プロセッサ９０５は、ここに記載される例示的な制御プラットフォーム１１０、コントローラ１５０〜１５２、且つ又は例示的なプロセッサ２０５を実施するために、その他数あるなかでも特に図５と図６且つ又は図７Ａ〜図７Ｄの例示的なプロセスを実行しうる。プロセッサ９０５は、バス９２５を介して（ＲＯＭ９２０且つ又はＲＡＭ９１５を含む）メインメモリと通信状態にある。ＲＡＭ９１５は、ＤＲＡＭ、ＳＤＲＡＭ且つ又はその他いかなるタイプのＲＡＭ装置により実施されうる。また、ＲＯＭは、フラッシュメモリ且つ又はその他所望のタイプの記憶装置により実施されうる。メモリ９１５および９２０へのアクセスはメモリーコントローラ（図示せず）により制御しえる。ＲＡＭ９１５は、例えば図２の例示的なメインメモリ２１０を格納且つ又実施するために使用しうる。
【００５３】
プロセッサープラットフォーム９００はインターフェース回路９３０も含んでいる。インターフェース回路９３０は、ＵＳＢインターフェース、ブルートゥース・インターフェース、外部メモリインターフェース、シリアルポート、汎用入・出力など、いかなるタイプのインターフェース規格により実施しうる。一つ又は複数の入力装置９３５および一つ又は複数の出力装置９４０が、インターフェース回路９３０に接続される。入力装置９３５且つ又は出力装置９４０は、例えば、図２の例示的なバックプレーン・インターフェース２４５を実施するために使用しうる。
【００５４】
特定の例示的な方法、機器および製造品をここに記載したが、本特許の適用範囲はそれに限定されるものではない。また、かかる実施例は、本発明の説明に役立つ非限定的な具体例として記載されているに過ぎず、本特許はむしろ、字義的にもしくは均等論に基づいて添付の特許請求の範囲内に公正に含まれる方法、機器および製造品の全てを網羅するものである。
【図１】
2018116733.tif 000003
【図２】
2018116733.tif 000004
【図３】
2018116733.tif 000005
【図４】
2018116733.tif 000006
【図５】
2018116733.tif 000007
【図６】
2018116733.tif 000008
【図７Ａ】
2018116733.tif 000009
【図７Ｂ】
2018116733.tif 000010
【図７Ｃ】
2018116733.tif 000011
【図７Ｄ】
2018116733.tif 000012
【図８Ａ】
2018116733.tif 000013
【図８Ｂ】
2018116733.tif 000014
【図９】
2018116733.tif 000015
【手続補正書】
【提出日】平成30年6月4日(2018.6.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセス工場の制御システムに対して制御冗長性を提供するための方法であって、
制御ソフトウェアサブシステムの第１のインスタンスと、前記制御ソフトウェアサブシステムの第２のインスタンスとに、制御入力を提供し、前記第１のインスタンスおよび前記第２のインスタンスが前記制御入力を実質的に並行して処理することと、
前記第１のインスタンスの出力又は前記第２のインスタンスの出力のいずれかを前記プロセス工場のフィールド装置に提供することと、
前記制御ソフトウェアサブシステムの第３のインスタンスに制御入力を提供することと、
前記第１のインスタンス、前記第２のインスタンス、および前記第３のインスタンスの出力を交換することであって、前記第１のインスタンス、前記第２のインスタンス、および前記第３のインスタンスの中のどのインスタンスが前記プロセス工場のフィールド装置にその出力を提供するかを判断するために前記第１のインスタンス、前記第２のインスタンス、および前記第３のインスタンスが投票を行い、第１の構成部分、第２の構成部分、および第３の構成部分の各々は、前記第１の構成部分、前記第２の構成部分、および前記第３の構成部分のためのマスターとして機能するための論理を含み、前記第１の構成部分、前記第２の構成部分、および前記第３の構成部分のうちのいずれか一つが前記マスターとして機能し、前記マスターとして機能しない前記第１の構成部分、前記第２の構成部分、および前記第３の構成部分のうちの一つによって、前記マスターとして機能する前記第１の構成部分、前記第２の構成部分、および前記第３の構成部分のうちの一つが障害を起こしたと検出された場合、前記マスターとして機能しない前記第１の構成部分、前記第２の構成部分、および前記第３の構成部分のうちの前記一つが前記マスターとして引き継ぐことを特徴とする前記出力を交換することと、
を含む、方法。
【請求項２】
前記第１のインスタンスおよび前記第２のインスタンスが異なる制御装置を介して実行される、請求項１に記載の方法。
【請求項３】
前記制御装置が、プロセス工場コントローラ、プロセス工場コントローラのプロセッサ、プロセス工場コントローラの中央処理装置、及び／又はプロセス工場コントローラのプロセッサコアの少なくとも一つである、請求項２に記載の方法。
【請求項４】
前記異なる制御装置が各々少なくとも一つの制御アプリケーション用の能動コントローラである、請求項２に記載の方法。
【請求項５】
前記異なる制御装置の各々の処理負荷に基づいて、前記異なる制御装置の中のどの制御装置が前記第１のインスタンスおよび前記第２のインスタンスを実行するかを選択することをさらに含む、請求項２に記載の方法。
【請求項６】
前記異なる制御装置の中のどの制御装置が前記第１のインスタンスおよび前記第２のインスタンスを実行するかを一定の時間後に変更させることをさらに含む、請求項２に記載の方法。
【請求項７】
前記第１のインスタンスおよび前記第２のインスタンスが同じ制御装置上で実行される、請求項１に記載の方法。
【請求項８】
前記制御ソフトウェアサブシステムが、前記プロセス工場の制御システムのための制御アプリケーションの一部である、請求項１に記載の方法。
【請求項９】
前記制御ソフトウェアサブシステムの前記第３のインスタンスに制御入力を提供することと、
前記第１のインスタンス、前記第２のインスタンス、および前記第３のインスタンスの出力を収集することと、
前記第１のインスタンスの出力から前記第３のインスタンスの出力の中のどの出力が前記プロセス工場のフィールド装置に提供されるかを判断するために投票を行うことと、
をさらに含む、請求項１に記載の方法。
【請求項１０】
プロセス制御システムの制御装置の制御ソフトウェアサブシステムの構成部分を置換すると共に第１の現存構成部分とアップグレードモジュールとを備える装置であって、
前記第１の現存構成部分は、機能している制御装置の前記制御ソフトウェアサブシステムの第２の現存構成部分が障害を起こした、障害を起こしている、およびエラー状態となっていることの少なくとも一つである時を判断し、前記第１の現存構成部分および前記第２の現存構成部分の各々は、同じ制御ソフトウェアサブシステムをインスタンス化し、
前記アップグレードモジュールは、
前記機能している制御装置の前記制御ソフトウェアサブシステムの前記第２の現存構成部分が前記障害を起こした、前記障害を起こしている、および前記エラー状態となっていることの少なくとも一つである時、前記機能している制御装置の前記制御ソフトウェアサブシステムのアクティブな１次構成部分の外部データの交換に影響を及ぼさずに、前記機能している制御装置の前記制御ソフトウェアサブシステムの第３の構成部分をインスタンス化し、
前記機能している制御装置の前記第３の構成部分の第１の状態が前記第１の現存構成部分または前記第２の現存構成部分の中の一つの第２の状態に一致する時、前記第３の構成部分をアクティブモードに変化させ、前記第１の現存構成部分、前記第２の現存構成部分、および前記第３の構成部分の各々は、前記第１の現存構成部分、前記第２の現存構成部分、および前記第３の構成部分のためのマスターとして機能するための論理を含み、前記第１の現存構成部分、前記第２の現存構成部分、および前記第３の構成部分のうちのいずれか一つが前記マスターとして機能し、前記マスターとして機能しない前記第１の現存構成部分、前記第２の現存構成部分、および前記第３の構成部分のうちの一つによって、前記マスターとして機能する前記第１の現存構成部分、前記第２の現存構成部分、および前記第３の構成部分のうちの一つが障害を起こしたと検出された場合、前記マスターとして機能しない前記第１の現存構成部分、前記第２の現存構成部分、および前記第３の構成部分のうちの前記一つが前記マスターとして引き継ぐ、
装置。
【請求項１１】
前記第１の現存構成部分および前記第２の現存構成部分は、同じ出力を処理するように同時に動作する、請求項１０に記載の装置。
【請求項１２】
前記第２の現存構成部分が前記障害を起こした、前記障害を起こしている、および前記エラー状態となっていることの少なくとも一つである時よりも前に、前記第１の現存構成部分および前記第２の現存構成部分の中のどれがマスター構成部分であるべきかを判断する冗長制御装置をさらに含む、請求項１０に記載の装置。
【請求項１３】
前記第１の現存構成部分の出力および前記第３の構成部分の出力の中のどれがフィールド装置に送信されるべきかを判断する冗長制御装置をさらに含む、請求項１０に記載の装置。
【請求項１４】
前記第１の現存構成部分は、
前記第１の現存構成部分の出力と前記第２の現存構成部分の出力とを比較し、前記第１の現存構成部分の前記出力が前記第２の現存構成部分の前記出力と一致しない時に、前記第２の現存構成部分が前記障害を起こした、前記障害を起こしている、および前記エラー状態となっていることの少なくとも一つであると判断することにより、
前記第２の現存構成部分が前記障害を起こした、前記障害を起こしている、および前記エラー状態となっていることの少なくとも一つである時を判断する、
請求項１０に記載の装置。
【請求項１５】
前記第３の構成部分をインスタンス化することは、他の制御装置を利用しないで行われる、請求項１０に記載の装置。
【請求項１６】
前記機能している制御装置は、前記制御ソフトウェアサブシステムの前記第３の構成部分が、前記機能している制御装置の中でインスタンス化される時に、前記アクティブな１次構成部分と通信するフィールド装置とデータを交換し続ける、請求項１０に記載の装置。