(57)【要約】【課題】ユーザには状態遷移と関連付けられたプロセスを手動で実行する必要性を軽減することができるようにする。【解決手段】プロセスプラントにおける制御システム、安全システムなどは各々、環境をプログラミングする機能ブロック図に容易に統合され得る１つ以上の状態マシン機能ブロックを使用することができる。かかる状態マシン機能ブロックは、次の状態ならびに現在の状態から次の状態に遷移することに従って実行する１つ以上の遷移動作を状態マシン機能ブロックによって実装された状態マシンに識別させ得る、１つ以上の入力を含むことができる。遷移動作と関連付けられた構成データは、状態マシンの現在および次の状態ならびに入力のうちの少なくとも１つに基づいてデータベースから取り出されてもよい。状態マシン機能ブロックはまた、状態遷移に基づいて生成される１つ以上の出力を含むことができる。【選択図】図１
2019050022.tif 000002
【特許請求の範囲】
【請求項１】
機械可読命令を記憶する有形媒体であって、
状態マシンの状態マシン状態間の遷移を構成するための表示デバイスを介してグラフィカルユーザインターフェースを提供する第１のコードであって、前記グラフィカルユーザインターフェースは、第１の次元および第２の次元を有するマトリクスに配列された第１の複数のセルを示し、前記第１の複数のセルが、前記第１および第２の次元に対して前記第１の複数のセルの位置に基づいてこの入力／状態の対および遷移動作を定義するように、前記第１の次元に沿った位置は、それと関連付けられた状態マシン状態および遷移動作識別子を示し、前記第２の次元に沿った位置は、状態マシン入力に対応する、第１のコードと、
前記グラフィカルユーザインターフェースを介して前記第１の複数のセルのうちの１つのセルと関連付けられた状態遷移データを受信する第２のコードであって、前記状態遷移データは、前記状態マシンが前記セルによって定義された前記入力／状態対に従って遷移する次の状態を識別する、第２のコードと、
前記グラフィカルユーザインターフェースを介して遷移動作データを受信する第３のコードであって、前記遷移動作データは、前記状態遷移データに従って実行される少なくとも１つの遷移動作を識別する、第３のコードと、
プロセスプラントにおける条件が前記セルと関連付けられた前記入力／状態対に対応するときに前記状態マシンが前記次の状態に遷移するように、前記状態遷移データおよび前記遷移動作データを、前記プロセスプラントにおける前記状態マシンを実装する機能ブロックと関連付けられたコンピュータ可読媒体上に記憶する、第４のコードと、を備える、有形媒体。
【請求項２】
前記遷移動作データは、１）前記セルに対応する前記状態マシン状態から遷移するときに実行される出遷移動作、および２）前記次の状態に遷移するときに実行される入遷移動作のうちの少なくとも１つを識別する、請求項１に記載の有形媒体。
【請求項３】
前記第１の複数のセルを前記表示デバイス上に表示する第５のコードと、
前記セル内に、前記次の状態の指示、前記出遷移動作の指示、および前記入遷移動作の指示を表示する第６のコードと、をさらに備える、請求項２に記載の有形媒体。
【請求項４】
前記第６のコードは、前記セル内に、
前記セルの第１のサブセル内に、前記次の状態の前記指示を表示し、
前記セルの第２のサブセル内に、前記出遷移動作の前記指示を表示し、
前記セルの第３のサブセル内に、前記入遷移動作の前記指示を表示することによって、前記次の状態の前記指示、前記出遷移動作の前記指示、および前記入遷移動作の前記指示を表示する、請求項３に記載の有形媒体。
【請求項５】
前記第５のコードは、少なくとも１つの行のセルの各々が前記状態マシン入力のうちの１つと関連付けられ、かつ複数の列のセルの各々が前記状態マシン状態のうちの１つおよび前記遷移動作識別子のうちの１つと関連付けられるように、前記第１の次元が前記少なくとも１つの行のセルを整列させ、かつ前記第２の次元が前記複数の列のセルを整列させる前記マトリクスを表示することでよって、前記第１の複数のセルを前記表示デバイス上に表示する、請求項３に記載の有形媒体。
【請求項６】
前記第５のコードは、複数の行のセルの各々が前記状態マシン状態のうちの１つおよび前記遷移動作識別子のうちの１つと関連付けられ、少なくとも１つの列のセルの各々が前記状態マシン入力のうちの１つと関連付けられるように、前記第１の次元が前記少なくとも１つの列のセルを整列させ、かつ前記第２の次元が前記複数の行のセルを整列させる前記マトリクスを表示することによって、前記第１の複数のセルを前記表示デバイス上に表示する、請求項３に記載の有形媒体。
【請求項７】
前記状態マシン入力の各々の特定の値は、論理１、論理０、論理真、または論理偽のうちの１つである、請求項１に記載の有形媒体。
【請求項８】
前記グラフィカルユーザインターフェースは、前記機能ブロックと関連付けられた第２の複数のセルをさらに示し、前記第２の複数のセルの各々は、前記機能ブロックの複数の出力のうちのそれぞれ１つおよび前記状態マシン状態のうちのそれぞれ１つに対応し、前記有形媒体は、
入力デバイスを介して前記第２の複数のセルのうちの１つのさらなるセルと関連付けられた出力構成データを受信する第５のコードあって、前記出力構成データは、前記状態マシンが前記さらなるセルに対応する前記状態マシン状態にあるときに前記さらなるセルに対応する出力値と、前記さらなるセルと関連付けられた少なくとも１つの出力遷移動作と、を示す、第５のコードをさらに備える、請求項１に記載の有形媒体。
【請求項９】
前記状態マシン入力は、プロセス制御システム、プロセス制御システムのシミュレーション、安全システム、および安全システムのシミュレーションのうちの少なくとも１つと関連付けられる、請求項１に記載の有形媒体。
【請求項１０】
前記プロセスプラントまたはオペレータインターフェースと関連付けられたさらなる機能ブロックのうちの１つから前記状態マシン入力を受信する第５のコードをさらに備える、請求項１に記載の有形媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に、プロセスプラントで使用するための機能ブロックに関し、より詳細には、プロセスプラントと関連付けられた状態マシンを構成および実装することに関する。
【背景技術】
【０００２】
化学、石油、または他のプロセスに使用されるものなどのプロセス制御システムは典型的に、アナログ、デジタル、または組み合わせられたアナログ／デジタルバスもしくは回線を介して少なくとも１つのホストまたはオペレータワークステーション、および１つ以上のフィールドデバイスに通信可能に連結された１つ以上のプロセスコントローラを含む。例えば、バルブ、バルブポジショナ、スイッチ、およびトランスミッタ（例えば、温度、圧力、および流量センサ）であり得るフィールドデバイスは、バルブの開閉およびプロセスパラメータの測定など、プロセスプラント内の機能を実行する。プロセスコントローラは、フィールドデバイスによって作成されるプロセスの測定値および／またはフィールドデバイスに関する他の情報を示す信号を受信し、この情報を使用して制御ルーチンを実装し、次いでプロセスの動作を制御するためにフィールドデバイスにバスまたは回線を介して送信される制御信号を生成する。フィールドデバイスおよびコントローラからの情報は典型的に、プロセスを構成すること、プロセスの現在の状態を視認すること、プロセスの動作を修正することなど、オペレータがプロセスに関して任意の所望の機能を実行することを可能にするオペレータワークステーションによって実行される１つ以上のアプリケーションに対して利用可能にされる。
【０００３】
加えて、多くのプロセスでは、有毒化学物質の流出、爆発など、プラントにおいて重大な危険をもたらすかまたはそれにつながり得る問題が生じるとき、プロセスプラント内の重要な安全関連の問題を検出し、バルブを自動的に閉鎖し、デバイスから電力を取り外し、プラント内のフローを切り替えるなどのために別個の安全システムが提供される。これらの安全システムは典型的に、ロジックソルバと呼ばれる標準的なプロセス制御コントローラとは別に１つ以上の別個のコントローラを有し、これらは、プロセスプラント内に導入された別個のバスまたは通信回線を介して安全フィールドデバイスに接続される。ロジックソルバは、安全フィールドデバイスを使用して、ある特定の安全スイッチまたは遮断バルブの位置、プロセスにおけるオーバーフローまたはアンダーフロー、重要な発電または制御デバイスの動作、障害検出デバイスの動作など、重要な事象と関連付けられたプロセス条件を検出し、それによってプロセスプラント内の「事象」を検出する。事象（典型的に「原因」と呼ばれる）が検出されると、安全コントローラは、何らかの行動（典型的に「結果」と呼ばれる）を取り、バルブの閉鎖、デバイスのオフ、プラントの区分から電力を取り外すなど、事象の有害な性質を制限する。一般的に、これらの行動または結果としては、安全デバイスをプロセスプラント内の重大なまたは危険な状態を防ぐように設計される動作の作動した、または「安全な」モードに切り替えることが挙げられる。
【０００４】
プロセス制御システムおよび安全システムなどのプロセスプラント内のシステムは典型的に、様々なプロセスおよび／またはシステム自体の状態を追跡し続けることができる。システムへの入力信号は、システムによって追跡された状態を変化させることができ、システムによって生成された出力信号は、システムへの入力信号に加えてシステムの現在の状態に依存することができる。米国特許第７，７３０，４１５号は、その全体があらゆる目的で参照により本明細書に組み込まれ、環境をプログラムする機能ブロック図に統合される状態マシン機能ブロックを使用するプロセスプラント内の制御システムを詳述する。具体的には、このような状態マシン機能ブロックは、状態マシン機能ブロックによって実装された状態マシンに状態を変化させるために使用される、１つ以上の入力を含む。さらに、状態マシン機能ブロックは、それが次の状態を示す状態遷移構成データに基づいて遷移するべきである次の状態を決定する。状態遷移構成データは、状態マシンの現在の状態および入力のうちの少なくとも１つに基づいてデータベースから取り出される。状態マシン機能ブロックはまた、状態マシンの状態に基づいて生成される１つ以上の出力を含む。状態マシン機能ブロックの入力は、例えば、プロセス制御システムまたは安全システムと関連付けられ、出力は、例えば、プロセス制御システムまたは安全システムにおけるフィールドデバイスの制御に使用されてもよい。
【０００５】
しかしながら、現在のプロセス制御システムは、現在の状態からの遷移または次の状態への遷移と関連付けられた様々な動作または機能を自動的に実行する能力を有しない。代わりに、現在のプロセス制御システムのユーザおよび管理者は、状態遷移中に動作または機能を手動で実行または実装しなければならない。したがって、現在のプロセス制御システムは、ある特定の安全対策、制御技術、および状態遷移と関連付けられた他の特徴を実行する能力が限定される。
【発明の概要】
【０００６】
本明細書に記載されるようなシステムおよび方法は、プロセス制御環境の状態間の遷移を管理することに関する。プロセス制御システムおよび方法は、アサートされた入力に基づいて状態マシンの様々な状態間の遷移を識別する遷移表を含む状態マシンを実装することができる。遷移表は、プロセス制御システムに対する１つ以上の遷移動作および現在の状態を次の状態に遷移することに関連して実行する方法をさらに指定することができる。実施形態によれば、遷移動作は、入遷移動作および／または出遷移動作の形態であってもよい。プロセス制御システムおよび方法は、現在の状態から遷移することに関連して出遷移動作を実行することができ、次の状態に落ち着く前に入遷移動作を実行することができる。いくつかの実施形態では、プロセス制御システムおよび方法は、別の機能ブロックへの遷移動作と関連付けられた構成データをその機能ブロックによる実行のために提供することができる。プロセス制御システムおよび方法は、現在の状態および遷移動作に対応する出力をさらに設定することができる。
【０００７】
いくつかの実施形態によれば、プロセス制御システムおよび方法は、グラフィカルユーザインターフェースによって表示可能なマトリクスを介して遷移表を管理することができる。マトリクスの様々なセルは、状態遷移に関連して実行される遷移動作とともにアサートされた入力と関連付けられた様々な状態遷移を識別する状態遷移データを示しことができる。マトリクスは、状態遷移およびそれと関連付けられた遷移動作を指定するようにコンピュータまたはそのユーザを介して完全に構成可能であり得る。したがって、機能ブロックは、適切なマトリクスにアクセスして、状態遷移を容易にし、関連する遷移動作を自動的に実行し、かつ適切な出力を設定することができる。
【０００８】
本明細書に記載されるようなプロセス制御システムおよび方法の実施形態は、従来のプロセス制御技術と比較してより効果的かつ効率的なプロセス制御技術につながり得る。例えば、遷移動作は、プロセス制御システムおよび方法が現在の状態から遷移することおよび次の状態に遷移することと関連付けられた動作を自動的に実行することを可能にし、それによってユーザには状態遷移と関連付けられたプロセスを手動で実行する必要性を軽減する。
【図面の簡単な説明】
【０００９】
本明細書に記載される方法、装置、およびシステムの特徴および利点は、以下の発明を実施するための形態および添付の図面を参照して最良に理解されるであろう。
【００１０】
【図１】例示的なプロセスプラントのブロック図である。
【図２】図１に概略的に示される例示的なワークステーションのブロック図である。
【図３】制御モジュールを描写するディスプレイの一例である。
【図４】状態マシン機能ブロックの表現の一例である。
【図５】状態マシン機能ブロックに対する状態構成データおよびそれと関連付けられた遷移動作データを入力するための例示的なマトリクスである。
【図６】状態構成データおよびそれと関連付けられた遷移動作データがマトリクスに表示される図５の例示的なマトリクスである。
【図７】遷移動作機能性を有する状態マシン機能ブロックの動作の例示的な方法のフロー図である。
【図８】遷移動作機能性を組み込む例示的な状態マシン機能ブロックのブロック図である。
【図９】遷移動作機能性を有する状態マシン機能ブロックの動作の別の例示的な方法のフロー図である。
【図１０】状態マシン機能ブロックへのデータ入力を処理するための例示的なルーチンのフロー図である。
【図１１】状態マシン機能ブロックへのイネーブル入力を処理するための例示的なルーチンのフロー図である。
【図１２】状態を変化させ、状態マシン機能ブロックの遷移動作出力を含む出力を設定するための例示的なルーチンのフロー図である。
【図１３】状態マシン機能ブロックに対する遷移動作を含む出力構成データを入力するための例示的なマトリクスである。
【図１４】別の例示的な状態マシン機能ブロックのブロック図である。
【図１５】状態マシン機能ブロックに対する状態構成データおよびそれと関連付けられた遷移動作データを入力するための例示的な状態遷移図である。
【発明を実施するための形態】
【００１１】
プロセスプラントの実施例
【００１２】
図１は、１つ以上のノード１２、１６、１８、および２０を含む例示的なプロセスプラント１０のブロック図である。図１の例示的なプロセスプラント１０では、ノード１２および１６の各々は、例えば、Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓインターフェース、ＨＡＲＴインターフェースなどであり得る入力／出力（Ｉ／Ｏ）デバイス２４を介して１つ以上のフィールドデバイス２２および２３に接続されたプロセスコントローラ１２ａ、１６ａを含む。コントローラ１２ａおよび１６ａはまた、例えば、バス、イーサネットＬＡＮなどの有線のローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ、広域ネットワーク（ＷＡＮ）、イントラネットなどのうちの１つ以上を含み得るネットワーク３０を介してノード１８および２０における１つ以上のホストまたはオペレータワークステーション１８ａおよび２０ａに連結される。コントローラノード１２、１６およびＩ／Ｏデバイス２４ならびにそれと関連付けられたフィールドデバイス２２、２３は典型的に、時に厳しいプラント環境内の下に位置し、かつそれにわたって分布されるが、オペレータワークステーションノード１８および２０は通常、制御室またはコントローラの人員によって容易に評価可能な他のあまり厳しくない環境に位置する。
【００１３】
一般的に言えば、ノード１８および２０のワークステーション１８ａおよび２０ａは、プロセスプラント１０を構成および監視し、ならびに／またはプロセスプラント１０内のデバイス２２、２３、２４およびコントローラ１２ａ、１６ａを管理するために使用されるアプリケーションを記憶および実行するために使用されてもよい。さらに、データベース３２は、ネットワーク３０に接続され、ノード１２、１６、１８、２０、２２、２３、２４、５０、および７０にダウンロードされ、および／またはそれらの中に記憶されるときにプロセスプラント１０の現在の構成を記憶するデータヒストリアンおよび／または構成データベースとして動作することができる。
【００１４】
例としてＥｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔによって販売されるＤｅｌｔａＶ（商標）コントローラであり得るコントローラ１２ａおよび１６ａの各々は、多くの異なる独立して実行される制御モジュールまたはブロックを使用して制御戦略を実装するコントローラアプリケーションを記憶および実行することができる。制御モジュールは各々、各機能ブロックが制御ルーチン全体の一部またはサブルーチンであり、プロセスプラント１０内のプロセス制御ループを実装する他の機能ブロック（リンクと呼ばれる通信を介する）とともに動作する機能ブロックと一般に称されるもので構成されてもよい。周知であるように、機能ブロックは典型的に、プロセスプラント１０内のいくつかの物理的機能を実行するために、入力機能（トランスミッタ、センサ、または他のプロセスパラメータ測定デバイスと関連付けられたものなど）、制御機能（ＰＩＤ、ファジー論理などの様々な制御を実行する制御ルーチンと関連付けられたものなど）またはいくつかのデバイス（バルブなど）の動作を制御する出力機能のうちの１つを実行する。当然のことながら、ハイブリッドおよび他のタイプの機能ブロックが存在し、利用され得る。ＦｉｅｌｄｂｕｓプロトコルおよびＤｅｌｔａＶ（商標）システムプロトコルは、オブジェクト指向プログラミングプロトコルで設計および実装された制御モジュールおよび機能ブロックを使用することができるが、制御モジュールは、例えば、シーケンシャル機能ブロック、ラダー論理などを含む任意の所望の制御プログラミング方式を使用して設計される可能性があり、機能ブロックまたは任意の他の特定のプログラミング技術を使用して設計されることに限定されない。典型的には、プロセス制御ノード１２および１６内に記憶されるような制御モジュールの構成は、ワークステーション１８ａおよび２０ａによって実行されるアプリケーションにアクセス可能である構成データベース３２内に記憶されてもよい。機能ブロックは、これらの機能ブロックが標準的な４〜２０ｍＡデバイスおよびＨＡＲＴデバイスなどのいくつかのタイプのスマートフィールドデバイスに使用され、または標準的な４〜２０ｍＡデバイスおよびＨＡＲＴデバイスなどのいくつかのタイプのスマートフィールドデバイスと関連付けられるときに典型的な場合である、例えば、コントローラ１２ａ、１６ａ内に記憶され、それらによって実行されてもよく、あるいは、Ｆｉｅｌｄｂｕｓデバイスを有する場合であり得るフィールドデバイス自体の中に記憶され、それらによって実装されてもよい。
【００１５】
図１に示されるシステムでは、コントローラ１２ａおよび１６ａに連結されたフィールドデバイス２２および２３は、標準的な４〜２０ｍＡデバイスであってもよく、あるいは、プロセッサおよびメモリを含むＨＡＲＴ、Ｐｒｏｆｉｂｕｓ、またはＦｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓのフィールドデバイスなど、スマートフィールドデバイスであってもよい。Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓのフィールドデバイスなど、これらのデバイスのうちのいくつか（図１に参照番号２３で付される）は、コントローラ１２ａおよび１６ａに実装された制御戦略と関連付けられた機能ブロックなどのモジュールまたはサブモジュールを記憶および実行することができる。当然のことながら、フィールドデバイス２２、２３は、センサ、バルブ、トランスミッタ、ポジショナなど、任意のタイプのデバイスであってもよく、Ｉ／Ｏデバイス２４は、任意の所望の通信またはＨＡＲＴ、Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓ、Ｐｒｏｆｉｂｕｓなどのコントローラプロトコルに適合する任意のタイプのＩ／Ｏデバイスであってもよい。
【００１６】
コントローラ１２ａおよび１６ａは各々、メモリ内に記憶された１つ以上のプロセス制御ルーチンを実装または監視するプロセッサを含み、これらは、その中に記憶され、または別の方法でそれと関連付けられた制御ループを含むことができる。コントローラ１２ａおよび１６ａは、任意の所望の様式でプロセスを制御するためにフィールドデバイス２２、２３、ワークステーション１８ａ、２０ａ、およびデータベース３２と通信する。コントローラ１２ａおよび１６ａは各々、任意の所望の様式で制御戦略または制御ルーチンを実装するように構成されてもよい。コントローラ１２ａおよび１６ａは、無線接続を介してフィールドデバイス２２、２３、ワークステーション１８ａ、２０ａ、およびデータベース３２と通信することができることを理解されるべきである。
【００１７】
プロセスプラント１０はまた、プロセス制御ノード１２および１６と統合された安全システム１４（点線で示される）を含むことができる。安全システム１４は一般的に、プロセスプラント１０の安全であり得る動作を最大化するために、プロセス制御ノード１２および１６によって提供される制御を監視および無効化する安全装備システム（ＳＩＳ）として動作することができる。
【００１８】
ノード１２および１６の各々は、１つ以上の安全システムロジックソルバ５０を含むことができる。ロジックソルバ５０の各々は、プロセッサおよびメモリを有するＩ／Ｏデバイスであり、メモリ内に記憶された安全論理モジュールを実行するように構成される。各ロジックソルバ５０は、安全システムフィールドデバイス６０および６２に制御信号を提供し、および／または安全システムフィールドデバイス６０および６２からの信号を受信するように通信可能に連結される。加えて、ノード１２および１６の各々は、少なくとも１つのメッセージ伝達デバイス（ＭＰＤ）７０を含み、これは、リングまたはバス接続７４（一部のみ図１に示される）を介して他のＭＰＤ７０に通信可能に連結される。安全システムのロジックソルバ５０、安全システムのフィールドデバイス６０および６２、ＭＰＤ７０、ならびにバス７４は一般的に、図１の安全システム１４を構成する。
【００１９】
図１のロジックソルバ５０は、フィールドデバイス６０および６２を使用して安全システム１４と関連付けられた制御機能性を提供するためにプロセッサ上で実行されるように適合された安全論理モジュールを記憶するプロセッサおよびメモリを含む任意の所望のタイプの安全システム制御デバイスであってもよい。当然のことながら、安全フィールドデバイス６０および６２は、上述されるものなど、任意の既知もしくは所望の通信プロトコルに適合するか、またはそれを使用する任意の所望のタイプのフィールドデバイスであってもよい。具体的には、フィールドデバイス６０および６２は、別個の専用の安全関連の制御システムによって従来制御されるタイプの安全関連のフィールドデバイスであってもよい。図１に示されるプロセスプラント１０では、安全フィールドデバイス６０は、ＨＡＲＴまたは４−２０ｍＡプロトコルなど、専用またはポイントツーポイント通信プロトコルを使用するように示されるが、安全フィールドデバイス６２は、Ｆｉｅｌｄｂｕｓプロトコルなど、バス通信プロトコルを使用するように示される。安全フィールドデバイス６０は、遮断バルブ、遮断スイッチなどのものなど、任意の所望の機能を実行することができる。
【００２０】
共通のバックプレーン（図示せず）は、コントローラ１２ａおよび１６ａをプロセス制御Ｉ／Ｏカード２４、安全ロジックソルバ５０、およびＭＰＤ７０に通信可能に連結するためにノード１２および１６の各々で使用されてもよい。コントローラ１２ａおよび１６ａはまた、ネットワーク３０に通信可能に連結される。コントローラ１２ａおよび１６ａ、Ｉ／Ｏデバイス２４、ロジックソルバ５０、およびＭＰＤ７０は、ネットワーク３０を介してノード１８および２０と通信することができる。
【００２１】
当業者に理解されるように、ノード１２、１６におけるバックプレーン（図示せず）は、ロジックソルバ５０がこれらのデバイスによって実装された安全機能を調整し、互いにデータを通信し、および／または他の統合された機能を実行するように互いに局所的に通信することを可能にする。同様に、ノード１６におけるバックプレーン（図示せず）は、ロジックソルバ５０がこれらのデバイスによって実装された安全機能を調整するため互いにローカルに通信し、互いにデータを通信し、および／または他の統合された機能を実行することを可能にする。一方、ＭＰＤ７０は、プロセスプラント１０の異なるノードで調整された安全操作を提供するように互いにさらに通信するプラント１０の大きく異なる位置で配設される安全システム１４の部分を有効にするように動作する。具体的には、バス７４とともにＭＰＤ７０は、プロセスプラント１０の異なるノード１２および１６と関連付けられたロジックソルバ５０が割り当てられた優先度に従ってプロセスプラント１０内の安全関連機能のカスケーディングを可能にするようにともに通信可能にカスケードされることを可能にする。ＭＰＤ７０およびバス７４は、安全システムにネットワーク３０の代替である通信リンクを提供する。
【００２２】
あるいは、プロセスプラント１０内の異なる位置における２つ以上の安全関連機能は、プラント１０の別個の区域またはノード内の個々の安全フィールドデバイスへの専用回線を動作させる必要なしに連動または相互接続されてもよい。換言すれば、ＭＰＤ７０および７２ならびにバス７４の使用は、プロセスプラント１０にわたって本質的に分布されるが、異なる安全関連ハードウェアが必要に応じて互いに通信することを可能にするように通信可能に相互接続されたその異なる構成要素を有する安全システム１４を安全技術者が設計および構成することを可能にする。この特徴はまた、さらなる安全ロジックソルバが必要とされるか、または新しいプロセス制御ノードがプロセスプラント１０に追加されるときに、さらなる安全ロジックソルバが安全システム１４に追加されることを可能にする安全システム１４の拡張性を提供する。
【００２３】
図２は、例示的なワークステーション１８ａ（ワークステーション２０ａが同じまたは類似のデバイスを備えることができる）のブロック図である。ワークステーション１８ａは、少なくとも１つのプロセッサ１００と、揮発性メモリ１０４と、不揮発性メモリ１０８とを含むことができる。揮発性メモリ１０４は、例えば、ランダムアクセスメモリ（ＲＡＭ）を含むことができる。いくつかの実施形態では、ＲＡＭは、停電が発生した場合にデータが失われないように１つ以上のバッテリによってバックアップされてもよい。不揮発性メモリ１０８としては、例えば、ハードディスク、読み取り専用メモリ（ＲＯＭ）、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、フラッシュメモリなどのうちの１つ以上が挙げられ得る。ワークステーション１８ａはまた、ワークステーションＩ／Ｏデバイス１１２を含むことができる。プロセッサ１００、揮発性メモリ１０４、不揮発性メモリ１０８、およびワークステーションＩ／Ｏデバイス１１２は、アドレス／データバス１１６を介して相互接続されてもよい。ワークステーション１８ａはまた、少なくとも１つの表示デバイス１２０と、少なくとも１つのユーザ入力デバイス１２４とを含むことができ、これらは、例えば、キーボード、キーパッド、マウス、トラックボール、タッチスクリーン、ライトペンなどのうちの１つ以上であってもよい。いくつかの実施形態では、揮発性メモリ１０４、不揮発性メモリ１０８、およびワークステーションＩ／Ｏデバイス１１２のうちの１つ以上は、アドレス／データバス１１６（図示せず）とは異なるバスを介してプロセッサ１００に連結されてもよく、またはプロセッサ１００に直接連結されてもよい。
【００２４】
表示デバイス１２０およびユーザ入力デバイス１２４は、ワークステーションＩ／Ｏデバイス１１２と連結される。加えて、ワークステーション１８ａは、ワークステーションＩ／Ｏデバイス１１２を介してネットワーク３０に連結される。ワークステーションＩ／Ｏデバイス１１２は、１つのデバイスとして図２に示されるが、それは、いくつかのデバイスを含むことができる。加えて、いくつかの実施形態では、表示デバイス１２０およびユーザ入力デバイス１２４のうちの１つ以上は、アドレス／データバス１１６またはプロセッサ１００に直接連結されてもよい。
【００２５】
ここで図１および２を参照すると、制御ノード１２、１６のうちの１つ以上と関連付けられたプロセス制御構成アプリケーションは、ワークステーション１８ａおよび２０ａのうちの１つ以上に記憶され、それらによって実行されてもよい。例えば、プロセス制御構成アプリケーションは、不揮発性メモリ１０８および／または揮発性メモリ１０４上に記憶され、プロセッサ１００によって実行され得る。しかしながら、必要に応じて、このアプリケーションは、プロセスプラント１０と関連付けられた他のコンピュータ内に記憶され、実行され得る。一般的に言えば、プロセス制御構成アプリケーションは、プログラマがコントローラ１２ａ、１６ａ、Ｉ／Ｏデバイス２４、および／またはフィールドデバイス２２、２３によって実装されるように、制御ルーチン、制御モジュール、機能ブロック、プログラム、論理などを生成および構成することを可能にする。次に、これらの制御ルーチン、制御モジュール、機能ブロック、プログラム、論理などは、ネットワーク３０を介してコントローラ１２ａ、１６ａ、Ｉ／Ｏデバイス２４、および／またはフィールドデバイス２２、２３のうちの適切なものにダウンロードされてもよい。
【００２６】
同様に、安全システム１４と関連付けられた安全システム構成アプリケーションは、ワークステーション１８ａおよび２０ａのうちの１つ以上の上に記憶され、それらによって実行されてもよい。例えば、安全システム構成アプリケーションは、不揮発性メモリ１０８および／または揮発性メモリ１０４上に記憶され、プロセッサ１００によって実行され得る。しかしながら、必要に応じて、このアプリケーションは、プロセスプラント１０と関連付けられた他のコンピュータ内に記憶され、実行され得る。一般的に言えば、安全システム構成アプリケーションは、プログラマがコントローラ１２ａ、１６ａ、ロジックソルバ５０、および／またはデバイス６０、６２によって実装されるように、制御ルーチン、制御モジュール、機能ブロック、プログラム、論理などを生成および構成することを可能にする。次に、これらの制御ルーチン、制御モジュール、機能ブロック、プログラム、論理などは、ネットワーク３０を介してコントローラ１２ａ、１６ａ、ロジックソルバ５０、および／またはデバイス６０、６２のうちの適切なものにダウンロードされてもよい。
【００２７】
状態マシン機能ブロック
【００２８】
制御システムまたは安全システム構成アプリケーションは、機能ブロックのプログラミングパラダイムを使用して制御モジュールおよび／または制御ルーチンをプログラムすることを可能にすることができる。図３は、制御モジュール１５４を描写するディスプレイ１５０の一例を示す。ディスプレイ１５０は、構成アプリケーションと関連付けられたユーザインターフェースの一部であってもよく、ディスプレイ１５０は、例えば、ワークステーション１８ａの表示デバイス１２０を介して、プログラマに提示されてもよい。ディスプレイ１５０は、プロセスプラントの動作中の実装のために、ネットワーク３０を介してコントローラ１２ａ、１６ａ、Ｉ／Ｏデバイス２４、ロジックソルバ５０、および／またはフィールドデバイス２２、２３、６０、６２のうちの適切なものに生成され、ダウンロードされ得る通信可能に相互接続された機能ブロックのセットを有する制御モジュール１５４を描写する。図３に示されるように、制御モジュール１５４は、状態マシン機能ブロック（ＳＭＦＢ）１６０と、複数のアナログ入力（ＡＩ）およびデジタル入力（ＤＩ）機能ブロックと、複数のアナログ出力（ＡＯ）およびデジタル出力（ＤＯ）機能ブロックと、他の機能ブロック（ＦＢ）とを含む。ＳＭＦＢ１６０は、例えば、ＤＩ機能ブロックまたは他のＦＢであり得る機能ブロック１１４と通信可能に相互接続された入力を有する。ＳＭＦＢ１６０はまた、例えば、ＤＯ機能ブロックまたは他のＦＢであり得る機能ブロック１１８に接続された出力を有する。制御モジュール１５４は、制御することができるか、または制御システム、安全システムなどの一部として、スイッチ、バルブなどのデバイスをともに制御する複数の制御モジュールのうちの１つであってもよい。当然のことながら、制御モジュール１５４は、ＳＭＦＢを用いる制御モジュールの一例である。一般に、制御モジュールは、任意の所望の様式で任意の数のＳＭＦＢと通信可能に連結された任意のタイプの機能ブロックを含むように任意の所望の様式でプログラムされてもよく、任意の所望の機能を実行するため、任意の所望の、または有用な様式で構成されてもよい。例えば、Ｆｉｅｌｄｂｕｓネットワークで使用される場合、制御モジュールは、任意のＦｉｅｌｄｂｕｓタイプの機能ブロックを含むことができる。
【００２９】
いくつかの実施形態では、ＳＭＦＢ１６０への入力の１つ以上は、機能ブロック以外から受信されてもよい。例えば、ＳＭＦＢ１６０への入力の１つ以上は、例としてオペレータインターフェースを介してオペレータからの入力を受信するように通信可能に連結されてもよい。例えば、ノード１８または２０などのノード上に実装されたオペレータインターフェースを使用するオペレータは、ＳＭＦＢ１６０に入力を提供することができる。
【００３０】
ＳＭＦＢは、状態マシンを実装する機能ブロックであってもよい。いくつかの実施形態では、状態マシンは、複数の状態のうちの１つの中にあり得るエンティティ（例えば、プロセッサによって実装されたデバイス、ソフトウェアなど）を含むことができる。状態マシンは、状態マシンへの特定の入力が生じる場合に１つの状態からもう１つの状態に遷移することができる。ＳＭＦＢは、状態マシンの現在の状態に基づいている出力を提供することができる。ほんの一例として、ＳＭＦＢは、状態マシンの現在の状態を示す１つ以上の出力を提供することができる。より一般的に、状態マシンは、所定の時間におけるエンティティ（例えば、プロセッサによって実装されたデバイス、ソフトウェアなど）またはいくつかの他のエンティティ（例えば、プロセスプラント、プロセスプラントのサブパート、プロセスプラントの構成要素など）の状態を記憶するエンティティを含むことができ、状態マシンは、状態マシンへの入力に基づいて、状態を変化させ、および／または動作もしくは出力を生じさせ得る。
【００３１】
構成アプリケーションと関連付けられたユーザインターフェースを使用して、プログラマは、制御モジュール１５４などの制御モジュールを設計することができる。ほんの一例として、ユーザインターフェースは、例えば、複数の規格またはカスタマイズされた機能ブロックのステンシルを含むステンシルまたはパレットから所望の機能ブロックを選択する機構をプログラマに提供することができる。加えて、ユーザインターフェースは、プログラマが機能ブロックの描写を挿入または配置し得る回路図を提供することができる。プログラマは、例えば、マウス、トラックボール、キーボード、キーパッド、タッチスクリーンなどを使用して、ステンシルまたはパレットから機能ブロックを選択肢、次いで機能ブロックを回路図上に「ドラッグアンドドロップ」を選択することができる。加えて、プログラマは、例えば、マウス、トラックボール、キーボード、キーパッド、タッチスクリーンなどを使用して、例えば、１つの機能ブロックの出力ともう１つの機能ブロックの入力との間に線を引くことによって機能ブロックを通信可能に連結することができる。
【００３２】
構成されると、制御モジュール１５４は、例えば、コントローラ１２ａ、１４ａ、１６ａ、Ｉ／Ｏデバイス２４、ロジックソルバ５０、およびデバイス２２、２３、６０、６２のうちの１つ以上によって実装されてもよい。
【００３３】
図４は、例えば、図３のディスプレイ１５０などのユーザインターフェースディスプレイ上に表示され得るＳＭＦＢ２００の表現の一例である。ＳＭＦＢ２００の表現は、ＳＭＦＢ２００が７つのデータ入力（ＩＮ＿Ｄ１〜ＩＮ＿Ｄ７）と、９つのデータ出力（ＴＲＡＮＳ＿ＯＵＴ、ＴＲＡＮＳ＿ＩＮ、ＳＴＡＴＥ、およびＯＵＴ＿Ｄ１〜ＯＵＴ＿Ｄ６）とを含むことを示す。データ入力は一般的に、プロセスプラント内の条件を示し、オペレータコマンドを示すなどであってもよく、それは、ＳＭＦＢ２００によって実装された状態マシンに状態を変化させることができる。データ出力は、ＳＭＦＢ２００に対応する状態マシンの状態ならびに状態に基づいて実行される機能または動作に対応する構成項目のうちの１つ以上の指標を含むことができる。例えば、ＳＴＡＴＥ出力は、状態マシンの状態（例えば、状態１、状態２、状態３など）の指標であってもよい。出力ＯＵＴ＿Ｄ１は、状態マシンが状態「状態１」であるかどうかの指標であってもよい。同様に、出力ＯＵＴ＿Ｄ２、ＯＵＴ＿Ｄ３、〜ＯＵＴ＿Ｄ６は、状態マシンが状態「状態２」、「状態３」、〜「状態６」でそれぞれあるかどうかの指標であってもよい。加えて、出力ＴＲＡＮＳ＿ＯＵＴは、与えられた状態の一つから遷移する状態マシンに従って実行される構成項目を示すことができ、出力ＴＲＡＮＳ＿ＩＮは、与えられた状態に遷移する状態マシンに従って実行される構成項目を示すことができる。いくつかの実施形態では、ＳＭＦＢ２００は、複数のＴＲＡＮＳ＿ＯＵＴ出力および複数のＴＲＡＮＳ＿ＩＮ出力を含むことができる。例えば、ＳＭＦＢ２００は、状態の数に等しいいくつかのＴＲＡＮＳ＿ＯＵＴ出力およびいくつかのＴＲＡＮＳ＿ＩＮ出力を含むことができる（すなわち、１つの状態につき１つのＴＲＡＮＳ＿ＯＵＴ出力および１つのＴＲＡＮＳ＿ＩＮ出力）。ＳＭＦＢ２００は、任意の数のＴＲＡＮＳ＿ＯＵＴおよびＴＲＡＮＳ＿ＩＮ出力を含み得ることを理解されるべきである。
【００３４】
ＳＭＦＢ２００はまた、ＥＮＡＢＬＥ入力、ＴＲＫ＿ＶＡＬ入力、およびＴＲＫ＿ＩＮ＿Ｄ入力など、データ入力以外の他の入力を含むことができる。例えば、ＳＭＦＢ２００は、別のＳＭＦＢからの入力を有することができる。さらに、ＳＭＦＢ２００はまた、状態またはそれと関連付けられた構成項目を示す出力以外の他の出力を含むことができる。ＥＮＡＢＬＥ、ＴＲＫ＿ＶＡＬ、およびＴＲＫ＿ＩＮ＿Ｄ入力は、より詳細に後述される。７つのデータ入力および９つのデータ出力を有するＳＭＦＢ２００は図４に示されるが、他の実施形態は、任意の所望の数のデータ入力およびデータ出力を含むことができる。ＳＭＦＢ２００のデータ入力の数およびデータ出力の数は、構成可能であってもよく、または構成不可であってもよい。一実施形態では、出力ＯＵＴ＿Ｄｘの数は一般的に、ＳＭＦＢ２００によって実装された状態マシンの可能な状態の数に対応し、可能な状態の数は構成可能であってもよい。しかしながら、出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２などの数は、状態マシンの可能な状態の数に対応する必要はない。例えば、出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２などの数より少ない状態がある場合、余分な出力は使用されないままであり得る。
【００３５】
構成プログラムと関連付けられたユーザインターフェースを使用して、プログラマは、ＳＭＦＢ２００などの１つ以上の機能ブロックを構成することができる。ＳＭＦＢを構成することに関して、プログラマは、いくつかの可能な状態、いかに入力が状態マシンを状態間で遷移させるか、および状態マシンが状態間で遷移する前、その間、またはその後に実行する任意の機能もしくは動作を指定することができる。プログラマがＳＭＦＢ２００を構成することを可能にするために、構成アプリケーションは、機能ブロックと関連付けられた構成ウィンドウ、スクリーンなど、ユーザインターフェース機構を表示デバイス１２０上に表示することができる。
【００３６】
図５は、図４のＳＭＦＢ２００など、ＳＭＦＢを少なくとも一部構成するために使用され得るユーザインターフェース機構の一例である。ユーザインターフェース機構は、ＳＭＦＢと関連付けられた構成ウィンドウ、スクリーンなどの一部として表示され得る表またはマトリクス３００（以下、「マトリクス３００」と称される）を含む。マトリクス３００は、行および列で配列された複数のセル（３０２、３０３、３０４）を含む。したがって、列は、各グループが状態マシンの複数の可能な状態のうちの１つに対応することができる３つのグループに配列される。具体的には、各グループにおける中央の列は、従来の状態図に含まれるように、状態マシンの特定の状態に対応する。例えば、図５に示されるように、「１」とラベル付けされた状態は、「作動中」状態であり、「２」とラベル付けされた状態は、「リセット待ち」状態であり、以下同様である。実施形態によれば、各グループにおける左の列は、次の状態に遷移（「入遷移動作」）するときに実行する状態マシンに対する構成項目に対応し、各グループにおける右の列は、現在の状態から遷移（「出遷移動作」）するときに実行する状態マシンに対する構成項目に対応する。さらに、各行は、状態マシンへの入力（例えば、「初期」「リセット許容」など）に対応する。したがって、セル３０２の各々（各行および列のグループに対する反復）が入遷移動作を指定し、セル３０３の各々（各行および列のグループに対する反復）が入力／状態対を指定し、セル３０４の各々（各行および列のグループに対する反復）が出遷移動作を指定する。セル３０２、３０３、３０４のグループは、単一のセルにグループ化され得ることを理解されるべきである。さらに、セル３０２、３０３、３０４の各々は、特定の状態に対応するセルに対するサブセルであり得ることを理解されるべきである。例示的なマトリクス３００は、７つの入力および状態の６つのグループに対する行を含むが、状態および出力の異なる数のグループを有する類似のマトリクスは、異なる数の入力および状態のグループを有するＳＭＦＢに使用されてもよい。状態の入力およびグループの数は構成可能であってもよい。他の例では、行は、状態マシンの複数の可能な状態（ならびに入遷移動作およびそれと関連付けられた出遷移動作）のうちの１つに対応してもよく、各列は、状態マシンへの入力に対応する。
【００３７】
動作中、状態マシンは、それが現在の状態であるときに状態マシン上にアサートされた入力に応じて現在の状態から次の状態に遷移することができる。例えば、マトリクス３００は、状態マシンが「通常動作」状態（現在の状態）にあり、かつ「作動要求」入力がアサートされる場合に、状態マシンが「作動中」状態（次の状態）に遷移するべきであることを指定することができる。いくつかの場合では、ある特定の状態は、ある特定の入力に対して次の状態遷移を指定しない場合がある。
【００３８】
実施形態によれば、各グループにおける右の列によって指定された出遷移動作は、ＳＭＦＢが現在の状態から外へ遷移することに従って実行する１つ以上の構成項目であってもよく、各グループにおける左の列によって指定された入遷移動作は、ＳＭＦＢが次の状態への遷移に従って実行する１つ以上の構成項目であってもよい。いくつかの実施形態では、１つ以上の構成項目は、実行する動作を定義する構造化テキストまたは上位レベルのコンピュータ構築物（例えば、Ｃ、Ｃ＋＋、ＪＡＶＡなど）の形態の論理であり得る。１つ以上の構成項目は、任意のタイプのコードまたは実行可能な論理の形態であり得ることを理解されるべきである。１つ以上の構成項目は、現在の状態から次の状態への遷移でＳＭＦＢが実行する単一の「ワンショット」項目であり得、それによって、場合によっては、その１つ以上の構成項目は、次の状態が達成されると動作し続けない。ＳＭＦＢは最初に、ＳＭＦＢがどこに遷移しているかにかかわらず、出遷移動作を実行する（すなわち、現在の状態を離れることがＳＭＦＢに出遷移動作を実行させる）ことができ、ＳＭＦＢは、ＳＭＦＢがどこから遷移しているかにかかわらず、次の状態に安定する前に入遷移動作を実行する（すなわち、次の状態に入ることがＳＭＦＢに入遷移動作を実行させる）ことできる。いくつかの場合では、構成項目（すなわち、入遷移および出遷移動作）は、ＳＭＦＢの外側の他の構成要素またはエンティティ（例えば、別の機能ブロック）に作用することができる。入遷移動作、出遷移動作、および状態変化と関連付けられた他の時間的な構成要素が想起されることを理解されるべきである。
【００３９】
図４を参照すると、マトリクス３００の入力「１」〜「７」は、ＳＭＦＢ２００の入力ＩＮ＿Ｄ１〜ＩＮ＿Ｄ７にそれぞれ対応する。同様に、マトリクス３００の状態「１」〜「６」は、ＳＭＦＢ２００の出力ＯＵＴ＿Ｄ１〜ＯＵＴ＿Ｄ６にそれぞれ対応する。加えて、この例では、プログラマは、各可能な状態および／または入力の各々をラベル付けすることができる場合がある。例えば、図５では、「状態１」は、「作動中」とラベル付けされ、入力１は、「初期」とラベル付けされる。入力および／または状態をラベル付けすることは、状態マシンの動作を理解することを容易にするのに役立つことができる。
【００４０】
プログラマは、構成情報をセル３０２、３０３、３０４に入力することによってＳＭＦＢ２００を構成することができる。具体的には、入力／状態対に対応する特定のセルの場合、プログラマは、ＳＭＦＢ２００が遷移するべきである状態を示す特定のセルに構成データを入力することができる。さらに、入遷移動作に対応する特定のセルの場合、プログラマは、次の状態に遷移するときに実行するＳＭＦＢ２００に対する動作を示す特定のセルに構成データを入力することができる。その上さらに、出遷移動作に対応する特定のセルの場合、プログラマは、現在の状態から遷移するときに実行するためにＳＭＦＢ２００に対する動作を示す特定のセルに構成データを入力することができる。
【００４１】
ＳＭＦＢ２００は、状態マシンが現在の状態から遷移した後に機能を実行するために対応する出遷移構成データに基づいてＴＲＡＮＳ＿ＯＵＴ出力をアサートすることができる。いくつかの実施形態では、ＳＭＦＢ２００は、状態マシンが現在の状態から遷移する前にＴＲＡＮＳ＿ＯＵＴ出力をアサートすることができる。ＳＭＦＢ２００は、状態マシンが現在の状態から遷移した後に（または別の方法で現在の状態から遷移する前に）、かつ状態マシンが次の状態に落ち着く前に、対応する入遷移構成データに基づいてＴＲＡＮＳ＿ＩＮ出力をアサートすることができる。いくつかの実施形態では、ＳＭＦＢ２００は、状態マシンが次の状態に落ち着いた後にＴＲＡＮＳ＿ＩＮ出力をアサートすることができる。いくつかの場合では、ＳＭＦＢ２００は、さらなるＳＭＦＢまたはプロセス制御デバイスへの入力として、出遷移動作または入遷移動作に対応する構成項目を提供することにより、ＳＭＦＢ２００が現在の状態から遷移しているか、または次の状態に遷移しているかのいずれかである間に、さらなるＳＭＦＢまたはプロセス制御デバイスに機能を実行させることができる。したがって、第１のＳＭＦＢのＴＲＡＮＳ＿ＯＵＴ出力の起動は、第２のＳＭＦＢを次の状態に遷移させることができる。第１のＳＭＦＢが蒸気ボイラを制御するプロセスプラントでは、停止状態から点火状態に遷移する第１のＳＭＦＢを示す第１のＳＭＦＢのＴＲＡＮＳ＿ＯＵＴ出力は、第１のＳＭＦＢがボイラを点火する前に一時期、ボイラ排出ファンを制御する第２のＳＭＦＢをファン停止状態からファン運転状態に遷移させることができる。したがって、ボイラ内の爆発性ガスのあらゆる蓄積は、ボイラが点火される前に排出される。
【００４２】
図６は、セルのうちのいくつかに入力された構成データを有するマトリクス３００の一例である。例えば、セル３０３Ａは、状態マシンが「作動中」状態にあり、かつ「リセット許容」入力がアサートされるときに状態マシンが遷移するべき次の状態を示す構成データを含む。具体的には、セル３０３Ａの構成データは、状態マシンが「リセット準備完了」状態に遷移するべきであることを示す。さらに、セル３０２Ａは、ＳＭＦＢが「リセット準備完了」状態に遷移するときに実行するべきである「動作Ａ」に対応する構成データを含み、セル３０４Ａは、ＳＭＦＢが「作動中」状態から遷移するときに実行するべきである「動作Ｂ」に対応する構成データを含む。同様に、セル３０３Ｂは、状態マシンが「リセット」入力がアサートされるときに「開始待ち」状態に（「リセット準備完了」から）遷移するべきであることを示す構成データを含み、セル３０２Ｂは、状態マシンが「開始待ち」状態に遷移するときに実行するべきである「動作Ｃ」に対応する構成データを含み、セル３０４Ｂは、状態マシンが「リセット準備完了」状態から遷移するときに実行するべきである「動作Ｄ」に対応する構成データを含む。動作Ａ、動作Ｂ、動作Ｃ、動作Ｄなどは、本明細書で考察されるように、ＳＭＦＢまたは他の構成要素によって実行されたあらゆる機能または動作に対応することができることを理解されるべきである。
【００４３】
加えて、特定のセルまたはセルのグループは、出遷移動作のない入遷移動作を含み、または逆も同様である。例えば、セル３０３Ｃは、「作動要求」入力がアサートされるときに状態マシンが（「開始待ち」から）「作動中」状態に遷移するべきであることを示す構成データを含み、セル３０２Ｃは、状態マシンが「作動中」状態に遷移するときに実行するべきである「動作Ｅ」に対応する構成データを含む。しかしながら、セル３０３Ｃは、対応するＴＲＡＮＳ＿ＯＵＴ構成項目を有しない。したがって、状態マシンが「開始待ち」状態にあり、かつ「作動要求」入力がアサートされる場合、ＳＭＦＢは、「開始待ち」から「作動中」に遷移することに従って「動作Ｅ」を実行することができる。同様に、入力／状態対（セル３０３Ｄ内のものなど）」は、対応するＴＲＡＮＳ＿ＩＮまたはＴＲＡＮＳ＿ＯＵＴ構成項目のいずれも有しなくてもよい。したがって、状態マシンは、対応するＴＲＡＮＳ＿ＩＮまたはＴＲＡＮＳ＿ＯＵＴ構成項目のいずれかを実行せずに現在の状態から次の状態に遷移することができる。
【００４４】
いくつかの実施形態では、プログラマが構成データをセルに入力しない場合、その特定の状態および入力に対して状態遷移が生じるべきではないことを想定され得る。例えば、セル３０２Ｅ、３０３Ｅ、および３０４Ｅは、状態マシンが「作動中」状態にあり、かつ「開始回復」入力がアサートされるときに示す構成データを含まず、状態マシンは、「作動中」状態にとどまり、あらゆる動作を実行するべきではない。他の実施形態では、プログラマは、状態マシンがその特定の状態／入力の組み合わせに対する状態を変化させるべきではないことを示す構成データを入力することができる。
【００４５】
プログラマは、当業者に周知の技術を含む多様な技術のいずれかを使用して構成データをマトリクス３００に入力することができる。例えば、構成データをセルに入力するために、プログラマは、マウス、トラックボール、タッチスクリーンなどを使用してセルを選択することができる。次に、ユーザは、例えば、キーボードまたは他の入力デバイスを介して構成データを直接セルに入力することができる。あるいは、プログラマは、セルを選択し、次いで「編集」「修正」など、プルダウンメニューから選択を選択するか、または「編集」ボタン、「修正」ボタンなどを選択することができる。次に、ユーザインターフェースは、プルダウンメニュー、ウィンドウ、表示スクリーンなどを介して状態のリストをプログラマに表示することができる。任意に、状態のリストは、セルが対応する状態または「遷移なし」選択を含むことができる。次に、プログラマは、例えば、キーボード、マウス、トラックボール、タッチスクリーンなどを使用して状態のうちの１つを選択することができる。セルが対応する状態または「遷移なし」選択をプログラマが選択する場合、構成データは、状態および入力の組み合わせに対して、遷移を生じるべきではないことを示すであろう。
【００４６】
マトリクス３００などのマトリクスを含むユーザインターフェースを使用してＳＭＦＢを構成することは、例えば、シーケンシャル機能チャートまたはＣ＋＋などのプログラミング言語を使用して比較されるように、状態マシンをより容易に実装させることができる。例えば、Ｃ＋＋プログラムを使用して状態マシンを実装することは、最初に関連する遷移動作で状態遷移図を作成し、次いでその図を実装するプログラムを記述することを含むであろう。次に、プログラムは、プロセス制御システムに実装される前に場合によっては、テストされ、デバッグされる必要があるであろう。しかしながら、ＳＭＦＢがマトリクス３００などのマトリクスを使用して構成されると、プログラムの記述は必要とされない。どちらかと言えば、「プログラミング」は、状態およびそれと関連付けられた遷移動作でマトリクスに記入することを単純に含むであろう。加えて、ソフトウェアコードが記述される必要がないため、コードのデバッグおよびテストは必要とされない。どちらかと言えば、テストは、ＳＭＦＢが正しい次の状態に進み、所望の遷移動作を実行することを検証するために状態、入遷移動作、出遷移動作、および入力の様々な組み合わせをテストすることを単純に含むことができる。いくつかの場合では、ＳＭＦＢの機能は、マトリクス３００を単純に調査することによって容易に理解され得る。したがって、構成されたＳＭＦＢの機能は、例えば、マトリクスの表現を印刷することによって容易に文書化され得る。
【００４７】
マトリクス３００などのマトリクスに従って構成されたＳＭＦＢは、例えば、安全システムまたはプロセス制御システムに使用され得る。ほんの一例として、マトリクス３００などのマトリクスに従って構成されたＳＭＦＢは、プロセスプラント内のバーナーを管理するための安全システムの一部として使用され得る。例えば、ＳＭＦＢは、「点火」、「ガス遮断」、および「排気」などの状態を含み得る。バーナーを始動すると、ＳＭＦＢは、最初に排気状態に進んで、バーナー内のガスを排気させ得る。次いで、ＳＭＦＢは、点火状態に進んで、バーナーを発火させ得る。また、バーナーの炎が消えた場合、ＳＭＦＢは、ガス遮断状態に進んで、バーナーへのガスを遮断し得る。次いで、ＳＭＦＢは、排気状態に進み得る。加えて、ＳＭＦＢは、安全システムを容易にする入遷移動作および出遷移動作を含むことができる。例えば、ＳＭＦＢは、排気状態に遷移することと関連付けられた入遷移動作を含むことができ、それによって入遷移動作は、バーナーが排気されていることをオペレータに通知するオペレータ指標を起動する。加えて、ＳＭＦＢは、排気状態から遷移することと関連付けられた出遷移動作を含むことができ、それによって出遷移動作は、バーナーが適切に排気されていることをオペレータに通知する。あるいは、第１のＳＭＦＢ（例えば、ボイラ制御ＳＭＦＢ）のＴＲＡＮＳ＿ＯＵＴまたはＴＲＡＮＳ＿ＩＮ出力は、第１のＳＭＦＢが現在の状態から遷移し、および／または次の状態に遷移する間に、他のＳＭＦＢまたはプロセス制御デバイスに機能を実行させるために、別のＳＭＦＢへの入力（例えば、ボイラ換気システム制御ＳＭＦＢ）または別のプロセス制御デバイスとして提供されてもよい。
【００４８】
マトリクス３００などのマトリクスに従って構成されたＳＭＦＢは、コントローラ１２ａ、１６ａ、Ｉ／Ｏデバイス２４、ロジックソルバ５０、およびデバイス２２、２３、６０、６２のうちの１つ以上によって実装され得る。いくつかの実施形態では、ＳＭＦＢは、ソフトウェアに従って構成されたプロセッサによって、プログラマブル論理デバイス、例えば、ゲートアレイ、標準セル、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、プログラマブルアレイ論理（ＰＡＬ）、プログラマブル論理アレイ（ＰＬＡ）などのうちの１つ以上を含むデバイスによって実装されてもよい。
【００４９】
ＳＭＦＢと関連付けられた構成データ（例えば、マトリクス３００などのマトリクスに入力されたデータ、および任意に他の構成データ）は、ハードディスク、ＲＡＭ、ＲＯＭ、ＣＤ−ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＶＤ、フラッシュメモリなどのコンピュータ可読媒体、および／またはプロセッサと関連付けられたメモリ上に記憶されてもよい。
【００５０】
図７は、構成されたＳＭＦＢの動作の例示的な方法３５０のフロー図である。方法３５０は、例えば、定期的および／またはトリガイベントに応答して実装されてもよい。ブロック３５４では、ＳＭＦＢは、そのデータ入力（複数可）を受信する。図４を参照すると、例えば、ＳＭＦＢは、入力ＩＮ＿Ｄ１〜ＩＮ＿Ｄ７のいずれかを受信する。ブロック３５６では、ＳＭＦＢは、現在の状態および／またはデータ入力（複数可）に基づいて適切な出遷移動作を実行する。具体的には、ＳＭＦＢは、構成データベース内に記憶された関連する出遷移構成データを使用して出遷移動作を実行することができる。ブロック３５７では、ＳＭＦＢは、次の状態に基づいて（現在の状態およびデータ入力（複数可）によって示されるように）適切な入遷移動作を実行する。具体的には、ＳＭＦＢは、構成データベース内に記憶された関連する入遷移構成データを使用して入遷移動作を実行することができる。
【００５１】
ブロック３５８では、ＳＭＦＢは、必要である場合、データ入力（複数可）、ＳＭＦＢの現在の状態、および構成データベース内に記憶された構成データに基づいてその状態マシンの状態を変化させる。例えば、ＳＭＦＢは、現在の状態を決定された次の状態とする。構成データベースのデータは、マトリクス３００などのマトリクスを介して入力されたデータを含むことができる。状態は、同様に他の因子に基づいて変化させてもよい。例えば、より詳細に後述されるように、ＳＭＦＢは、データ入力（複数可）のうちの１つ以上を無視するように構成されてもよい。したがって、状態を変化させることはまた、存在する場合、どのデータ入力（複数可）が無視されるかを示す構成データに基づいてもよい。別の例として、２つ以上のデータ入力は、状態変化が現在の状態から２つ以上の次の状態に生じるべきであることを示すことができる。したがって、ＳＭＦＢは、データ入力を優先付けする優先データに基づいて、データ入力のうちの１つを選択して、ＳＭＦＢがとり得る次の状態のうちのどれに遷移するべきか決定することができる。さらに別の例として、いくつかの実施形態では、ＳＭＦＢに対するデータ入力（複数可）は、状態（例えば、良好（ＧＯＯＤ）状態または不良（ＢＡＤ）状態）を含むことができる。したがって、状態を変化させることはまた、例えば、ＢＡＤ状態を有する入力がいかに処理されるべきであるかを示す構成データに基づいてもよい。
【００５２】
次に、ブロック３６６では、ＳＭＦＢは、状態マシンの現在の状態に基づいてそのデータ出力を設定することができる。例えば、ＳＭＦＢは、ＳＴＡＴＥ出力（ならびに適切なＯＵＴ＿Ｄｘ）を状態マシンの現在の状態に設定することができる。さらに、ＳＭＦＢは、現在の状態から遷移する状態マシンに従って実行される出遷移動作を示すＴＲＡＮＳ＿ＯＵＴ出力を設定することができ、状態マシンが次の状態に遷移することに従って実行される入遷移動作を示すＴＲＡＮＳ＿ＩＮ出力を設定することができる。
【００５３】
再び図４を参照すると、ＳＭＦＢは、「ＥＮＡＢＬＥ」入力を任意に含むことができる。一実施形態では、ＥＮＡＢＬＥ入力がデアサートされる場合、ＳＭＦＢは、動作不能状態（例えば、状態０）に強制されてもよく、ＥＮＡＢＬＥ入力がアサートされるまでその状態にとどまるべきである。ＥＮＡＢＬＥ入力がアサートされると、ＳＭＦＢは、ＳＭＦＢが図５のマトリクス３００などの構成マトリクスに入力された構成データに従って他の状態に遷移し得る後、初期の状態（例えば、状態１）に強制されてもよい。
【００５４】
ＳＭＦＢは、１つの入力または状態マシンを所望の状態に強制する入力をさらに含むことができる。例えば、ＳＭＦＢ２００は、ＴＲＫ＿ＩＮ＿Ｄ入力と、ＴＲＫ＿ＶＡＬ入力とを含む。ＴＲＫ＿ＩＮ＿Ｄ入力がアサートされると、ＳＭＦＢは、ＴＲＫ＿ＶＡＬ入力によって指定された状態に強制されてもよい。例えば、ＴＲＫ＿ＶＡＬ入力が「６」であり、ＴＲＫ＿ＩＮ＿Ｄ入力がアサートされる場合、ＳＭＦＢは、状態「６」に強制されてもよい。
【００５５】
ＳＭＦＢは任意に、さらなる方法で構成されてもよい。例えば、ＳＭＦＢは、存在する場合、入力ＩＮ＿Ｄ１、ＩＮ＿Ｄ２などのうちの１つ以上が無視されるべきであるか示す入力（または遷移）マスクを含むことができる。また、ＳＭＦＢは、複数の状態を有し得る入力に応答するように構成されてもよい。例えば、ＳＭＦＢへの入力のうちの１つまたはすべては、「良好」状態または「不良」状態を有することができ、ＳＭＦＢは、入力の状態に応じて異なる応答をするように構成されてもよい。特定の一例では、ＳＭＦＢは、「ＢＡＤ」入力を無視し、それが「ＢＡＤ」の場合であっても入力を使用し、または入力の最後の「ＧＯＯＤ」値を使用するように構成されてもよい。さらに、ＳＭＦＢは、真であるとき、ＳＭＦＢを「１」の状態に強制するリセットパラメータを含むことができる。
【００５６】
上述される様々な構成データおよび次の状態の構成データは、同じコンピュータ可読媒体または異なるコンピュータ可読媒体上に記憶され得る。
【００５７】
図８は、ＳＭＦＢ４００の一例のブロック図である。ＳＭＦＢ４００は、入力ＩＮ＿Ｄ１、ＩＮ＿Ｄ２などとＳＭＦＢ４００の現在の状態とに少なくとも一部基づいて次の状態を決定する論理４０４を含む。具体的には、論理４０４は、次の状態の構成データベース４０６内に記憶された次の状態の構成データにアクセスする。論理４０４はまた、ＳＭＦＢ４００によって実行される入遷移動作および出遷移動作を決定する。入遷移動作は、出遷移構成データベース４０５からの入遷移構成データに少なくとも一部基づいてもよい。出遷移動作は、出遷移構成データベース４０７からの出遷移構成データに少なくとも一部基づいてもよい。本明細書で考察されるような実施形態によれば、入遷移構成データは、ＳＭＦＢが次の状態に落ち着く前にＳＭＦＢが実行する機能を定義することができ出遷移構成データは、ＳＭＦＢが現在の状態から遷移する前に（または別の方法で次の状態に遷移する前に）実行する機能を定義することができる。データベース４０５、４０６、４０７は、本明細書に記載されるようなコンピュータ可読媒体上に記憶されてもよい。次の状態、入遷移構成データ、および出遷移構成データは、図５のマトリクス３００などのマトリクスに入力された構成データを含むことができる。様々な構成要素、論理、またはモジュールが入遷移構成データおよび／または出遷移構成データを実行し得ることを理解されるべきである。例えば、ＳＭＦＢ４００は、入遷移構成データおよび／または出遷移構成データを実行することができる。さらなる例として、ＳＭＦＢ４００は、別個の構成要素またはモジュールにコマンドを送信して、入遷移構成データおよび／または出遷移構成データを実行することができる。
【００５８】
いくつかの実施形態によれば、論理４０４の出力は、切り替え論理４０８に提供される。切り替え論理４０８は、ＴＲＫ＿ＩＮ＿Ｄ入力に基づいて論理４０４の出力と入力ＴＲＫ＿ＶＡＬとの間で選択する。例えば、ＴＲＫ＿ＩＮ＿Ｄ入力がアサートされる場合、切り替え論理４０８は、ＴＲＫ＿ＶＡＬ入力を選択することができる。そうでなければ、切り替え論理４０８は、論理４０４の出力を選択することができる。
【００５９】
切り替え論理４０８の出力は、切り替え論理４１２に提供され、これは、イネーブルおよびリセット論理４１６の出力に基づいて、切り替え論理４０８の出力と値０と値１との間で選択する。イネーブルおよびリセット論理４１６の出力は、状態が動作不能状態（状態０）または初期状態（状態１）に強制されるべきであるかを示す。イネーブルおよびリセット論理４１６は、ＥＮＡＢＬＥ入力に基づいてこの出力を生成する。例えば、ＥＮＡＢＬＥ入力がアサート停止される場合、イネーブルおよびリセット論理４１６の出力は、状態が０に強制されるべきであることを示すことができる。ＥＮＡＢＬＥ入力がアサート停止からアサートに変化させる場合、イネーブルおよびリセット論理４１６の出力は、状態が１に強制されるべきであることを示すことができる。ＥＮＡＢＬＥがアサートされ、以前にアサートされた場合、イネーブルおよびリセット論理４１６の出力は、状態が０または１に強制されるべきではないことを示すことができる。
【００６０】
切り替え論理４１２の出力は、ＳＭＦＢ４００の現在の状態であり、ＳＭＦＢ４００の出力として提供されてもよい。切り替え論理４１２の出力はまた、ＳＭＦＢの現在の状態に対応する適切な出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２、ＴＲＡＮＳ＿ＩＮ、ＴＲＡＮＳ＿ＯＵＴなどを設定する論理４２０に提供されてもよい。図８に描写されるように、論理４２０は任意に、任意の出力構成データベース４５８内に記憶された状態／出力構成データにアクセスすることができる。データベース４５８およびデータベース４０６は、同じコンピュータ可読媒体または異なるコンピュータ可読媒体上に記憶されてもよい。出力構成データは、本明細書で考察されるように図１３のマトリクス７００などのマトリクスに入力された構成データを含むことができる。
【００６１】
ブロック４０４、４０８、４１２、４１６、および４２０の各々は、１つ以上のハードウェア、ソフトウェア、およびファームウェアによって実装されてもよい。加えて、ブロックのうちのいくつかは、組み合わされ、並べ替えられ、修正され、または省略されてもよく、さらなるブロックが追加されてもよい。単に一例として、ブロック４０８および４１２は、単一ブロックに組み合わされ得る。
【００６２】
図９は、例示的なＳＭＦＢ４００の動作の方法４５０のフロー図である。図９の方法４５０は、例えば、定期的および／またはトリガイベントの際に実装されてもよい。ブロック４５４では、ＳＭＦＢ４００のデータ入力が処理される。例えば、データ入力ＩＮ＿Ｄ１、ＩＮ＿Ｄ２などのいずれかがアサートされたか決定されてもよい。別の例として、データ入力のうちの１つ以上が「ＢＡＤ」状態を有する場合、それは「ＢＡＤ」入力（複数可）をいかに処理するべきか決定されてもよい。ブロック４５８では、ＳＭＦＢ４００のＥＮＡＢＬＥ入力が処理される。例えば、それは、ＥＮＡＢＬＥ入力がアサートされるか、および／またはそれが以前に処理された後にそれが変化されたか決定されてもよい。
【００６３】
ブロック４５９では、ＳＭＦＢは、現在の状態および／またはデータ入力に基づいて、例えば、構成データベース内に記憶された関連する出遷移構成データにアクセスすることによって、適切な出遷移動作を実行する。ブロック４６０では、ＳＭＦＢは、次の状態および／またはデータ入力に基づいて、例えば、構成データベース内に記憶された関連する入遷移構成データにアクセスすることによって、適切な入遷移動作を実行する。例えば、ＳＭＦＢは、プロセスプラント内の１つの設備を制御するように構成されてもよい。この１つの設備が遮断状態（すなわち、現在の状態）にあるとき、次の状態の構成データは、設備起動入力が作動させられ、１つの設備が動作状態（すなわち、次の状態）に遷移するときに実行されてもよい。遮断状態から実際に遷移する前に、ＳＭＦＢは、１つの設備が起動しようとしていることを示す警報を作動させるために出遷移構成データを実行することができる。加えて、動作状態に落ち着く前に、ＳＭＦＢは、警報を止めさせるために入遷移構成データを実行することができる。
【００６４】
さらなる例として、ＳＭＦＢは、倉庫内の複数の暖房設備を制御するように構成されてもよい。プロセスプラントが加熱状態（すなわち、現在の状態）にあるとき、換気状態への遷移に対応する換気装置を開始するために入力がアサートされ得る。加熱状態からの遷移中、ＳＭＦＢは、加熱源がより多くの熱を生成するのを防ぐために加熱炉または他の加熱源を自動的にロックすることができる。したがって、加熱炉は、換気状態への遷移後、動作することができない。さらに、換気状態に遷移する前、ＳＭＦＢは、対応するマシンの排気に役立つために換気装置と関連付けられた一連の換気を自動的に作動させることができる。
【００６５】
ブロック４６２では、ＳＭＦＢ４００の状態は、必要である場合、変化されてもよい。加えて、ＳＭＦＢ４００の１つ以上のデータ出力は、必要である場合、変化または設定されてもよい。例えば、それは、ＳＭＦＢ４００の状態が変化されるべきであることをデータ入力の変化が示すことを決定されてもよい。加えて、状態が変化される場合、それは、ＳＭＦＢ４００のＴＲＡＮＳ＿ＩＮおよびＴＲＡＮＳ＿ＯＵＴ出力などの１つ以上のデータ出力が変化されるべきであることであってもよい。
【００６６】
少なくとも一部、方法４５０を実装するために使用され得るいくつかの例示的なルーチンが記載される。例えば、図１０は、ＳＭＦＢへのデータ入力ＩＮ＿Ｄ１、ＩＮ＿Ｄ２などを処理するために使用され得る例示的なルーチン５００のフロー図である。ブロック５０４では、変数ｚは、１に設定される。ブロック５０８では、データ入力ＩＮ＿Ｄｚの状態が「ＢＡＤ」であるか決定される。状態が不良ではない場合、変数ＴＲＡＮＳＩＴＩＯＮＳのビット数ｚは、データ入力ＩＮ＿Ｄｚの値に設定される。状態が不良である場合、データ入力がいかに処理されるべきであるかを決定されてもよい。一例では、ＳＭＦＢは、ＢＡＤ入力がとにかく使用されてもよく（ＡＬＷＡＹＳ＿ＵＳＥ）、それが無視されてもよく（ＩＧＮＯＲＥ＿ＩＦ＿ＢＡＤ）、または最後に「ＧＯＯＤ」であった入力値が使用されてもよい（ＵＳＥ＿ＬＡＳＴ＿ＧＯＯＤ）という３つの手法のうちの１つで「ＢＡＤ」入力を処理することができる。したがって、ブロック５１６では、ＳＭＦＢが最後の「ＧＯＯＤ」データ入力を使用するべきであるか決定されてもよい。ＳＭＦＢが最後の「ＧＯＯＤ」値を使用するべきである場合、ブロック５１２は省略されてもよい。そうでなければ、ＳＭＦＢがＢＡＤ入力値を無視するべきであるかブロック５２０で決定されてもよい。ＳＭＦＢがＢＡＤ値を無視しない場合、ルーチンは、ブロック５１２に進むことができる。ＳＭＦＢがＢＡＤ値を無視する場合、ルーチンは、ブロック５２４に進むことができる。ブロック５２４では、変数ＴＲＡＮＳＩＴＩＯＮＳのビット数「ｚ」は、０に設定される。
【００６７】
ブロック５２８では、変数ｚは増やされ、ブロック５３２では、変数ｚがＳＭＦＢのデータ入力の数より大きいか決定されてもよい。ｚがＳＭＦＢへのデータ入力の数より大きくない場合、ルーチンは、ブロック５０８に戻って、次のデータ入力を処理することができる。そうでなければ、ルーチンは終了することができる。
【００６８】
図１１は、ＳＭＦＢへのＥＮＡＢＬＥ入力を処理するために使用され得る例示的なルーチン５４５のフロー図である。ブロック５５０では、変数ＬＡＳＴＥＮＡＢＬＥの値がＥＮＡＢＬＥ入力の値と同じであるか決定されてもよい。ＬＡＳＴＥＮＡＢＬＥ変数は一般的に、前回のＥＮＡＢＬＥの値（例えば、ルーチン５４５の前回動作中のＥＮＡＢＬＥ変数の値）を示す。ＬＡＳＴＥＮＡＢＬＥおよびＥＮＡＢＬＥの値が同じである場合、ルーチン５４５は終了することができる。そうでなければ、ルーチンは、ＥＮＡＢＬＥ入力がアサートされるか決定され得るブロック５５４に進むことができる。ＥＮＡＢＬＥ入力がアサートされる場合、ブロック５５８では、変数リセットは、ＴＲＵＥに設定されてもよい。
【００６９】
ブロック５５４では、ＥＮＡＢＬＥ入力がアサートされないことを決定される場合、ブロック５６２では、ＳＴＡＴＥ変数の現在の値に対応する出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２などはアサート停止にされる。次に、ブロック５６６では、ＳＴＡＴＥ変数は、０に設定される。ブロック５５８および５６６の後、ルーチンは、変数ＬＡＳＴＥＮＡＢＬＥがＥＮＡＢＬＥ入力の値に設定されるブロック５７０に進むことができる。ブロック５７０の後、ルーチンは終了することができる。
【００７０】
図１２は、ＳＭＦＢの次の状態を決定し、かつ必要である場合、適切な出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２、ＴＲＡＮＳ＿ＩＮ、ＴＲＡＮＳ＿ＯＵＴなどを設定するために使用され得る例示的なルーチン６００のフロー図である。ブロック６０４では、ＥＮＡＢＬＥ入力がアサートされるか決定されてもよい。それがアサートされない場合、ルーチンは終了することができる。ＥＮＡＢＬＥ入力がアサートされる場合、ルーチンは、変数ＮＥＷＳＴＡＴＥが０に設定されるブロック６０８に進むことができる。次に、ブロック６１２では、入力ＴＲＫ＿ＩＮ＿Ｄがアサートされるか決定されてもよい。それがアサートされる場合、ルーチンは、ＮＥＷＳＴＡＴＥ変数が入力ＴＲＫ＿ＶＡＬの値に設定されるブロック６１６に進むことができる。
【００７１】
ＴＲＫ＿ＩＮ＿Ｄ入力がアサートされないことをブロック６１２で決定される場合、ルーチンは、ブロック６２０に進むことができる。ブロック６２０では、変数リセットがＴＲＵＥであるか決定されてもよい。それがＴＲＵＥである場合、ルーチンは、ＮＥＷＳＴＡＴＥ変数が１に設定され得るブロック６２４に進むことができる。次に、ブロック６２６では、リセット変数は、ＦＡＬＳＥに設定されてもよい。
【００７２】
変数リセットがＴＲＵＥではないブロック６２０で決定される場合、ルーチンは、ブロック６３２に進むことができる。ブロック６３２では、変数ＴＥＭＰは、ＴＲＡＮＳＩＴＩＯＮ＿ＭＡＳＫ変数、ＴＲＡＮＳＩＴＩＯＮＳ変数、および変数ＳＴＡＴＥによって指示された配列ＳＴＡＴＥＣＨＡＮＧＥＭＡＳＫの要素をビット単位「ＡＮＤ演算」することによって決定されてもよい。ＴＲＡＮＳＩＴＩＯＮ＿ＭＡＳＫ変数は、ある特定の入力ＩＮ＿Ｄｘが状態変化を生じさせるのを防ぐために使用され得る構成可能な変数であってもよい。例えば、入力ＩＮ＿Ｄ３が状態マシンに状態を変化させるのを防ぐことをプログラマが望む場合、プログラマは、変数ＴＲＡＮＳＩＴＩＯＮ＿ＭＡＳＫの第３のビットを０に設定することができる。入力Ｄ３が状態マシンに状態を変化させるのを可能にすることをプログラマが望む場合、プログラマは、変数ＴＲＡＮＳＩＴＩＯＮ＿ＭＡＳＫの第３のビットを１に設定することができる。
【００７３】
ＳＴＡＴＥＣＨＡＮＧＥＭＡＳＫ配列の各要素は、入力ＩＮ＿Ｄ１、ＩＮ＿Ｄ２などが状態変化を引き起こす状態の対応する１つに対して示す変数であってもよい。具体的には、配列の各要素は、状態マシンの状態のうちの１つに対応することができる。例えば、ＳＴＡＴＥＣＨＡＮＧＥＭＡＳＫ［１］が状態１に対応することができ、ＳＴＡＴＥＣＨＡＮＧＥＭＡＳＫ［２］が状態２に対応することができ、以下同様である。加えて、各要素の各ビットは、入力ＩＮ＿Ｄ１、ＩＮ＿Ｄ２などのうちの１つに対応することができる。例えば、ビット１がＩＮ＿Ｄ１に対応することができ、ビット２がＩＮ＿Ｄ２に対応することができ、以下同様である。図６を参照すると、例えば、マトリクス３００の場合、ＳＴＡＴＥＣＨＡＮＧＥＭＡＳＫ配列は、６つの要素を有し、要素ＳＴＡＴＥＣＨＡＮＧＥＭＡＳＫ［３］は、０×４４であろう。
【００７４】
ブロック６２８の後、ルーチンは、変数ＴＥＭＰが０であるか決定され得るブロック６３２に進むことができる。それが０ではない場合、ルーチンは、変数ｚが０ではない変数ＴＥＭＰにおける第１のビット（すなわち、最下位ビットから開始する）の数に設定され得るブロック６３６に進むことができる。実際には、これは、ＩＮ＿Ｄ１が最優先であり、ＩＮ＿Ｄ２が次の最優先であり、ＩＮ＿Ｄ３が次の最優先であり、以下同様であるようにそれらの順に基づいて入力の優先度を設定する。他の実施形態では、他の優先順位付け方式が使用され得る。例えば、プログラマは、入力への優先度を割り当てることを許可され得るか、または異なる優先順位が使用され得る（例えば、ＩＮ＿Ｄ１が最下位優先度であり、ＩＮ＿Ｄ２が次の最下位優先度であり、以下同様である）。優先度は、全体としてまたは各状態にＳＭＦＢに設定され得る。次に、ブロック６４０では、変数ＮＥＷＳＴＡＴＥは、行ｚおよび列ＳＴＡＴＥで状態遷移マトリクスの値に設定されてもよい。
【００７５】
ブロック６１６、６２６、および６４０の後、ルーチンは、ブロック６４４に進むことができる。ブロック６３２では、変数ＴＥＭＰが０であることを決定される場合、ルーチンはまた、ブロック６４４に進むことができる。ブロック６４４では、変数ＮＥＷＳＴＡＴＥが０であるか決定されてもよい。それが０である場合、ルーチンは終了することができる。それが０ではない場合、ルーチンは、出遷移動作が実行され得るブロック６４５に進むことができる。次に、ブロック６４６では、入遷移動作は実行され得る。ブロック６４８では、ＳＴＡＴＥ変数に対応する出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２、ＴＲＡＮＳ＿ＩＮ、ＴＲＡＮＳ＿ＯＵＴなどはアサート停止にされる。アサート停止にされる出力は、ＳＴＡＴＥ変数に対応する必要がないことを理解されるべきである。ブロック６５２では、変数ＳＴＡＴＥは、変数ＮＥＷＳＴＡＴＥの値に設定される。ブロック６５６では、ＳＴＡＴＥ変数に対応する出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２、ＴＲＡＮＳ＿ＩＮ、ＴＲＡＮＳ＿ＯＵＴなどはアサートされ、ルーチンは終了することができる。アサートされる出力は、ＳＴＡＴＥ変数に対応する必要がないことを理解されるべきである。
【００７６】
図９の方法４５０および図１０〜１２のルーチンは例示にすぎず、他の例では、ブロックが修正されてもよく、新しいブロックが追加されてもよく、ブロックが並べ替えられてもよく、ブロックが省略されてもよく、および／またはブロックが組み合わされてもよいことを理解されるべきである。図１０を参照すると、ほんの一例として、ブロック５０８、５１６、５２０、および５２４は、「ＢＡＤ」状態を有する入力の特別な処理が必要とされず、または所望されない場合に省略されてもよい。
【００７７】
別の例として、ブロック６３６は、変数ｚが０ではないＴＥＭＰにおける最後のビットの数に設定されるように修正され得る。さらに別の例として、ブロック６３６は、いくつかの優先度データに基づいて０ではないＴＥＭＰにおけるビットのうちの１つに対応する数にｚを設定するように修正され得る。
【００７８】
再び図４を参照すると、データ出力のすべては、ＳＭＦＢ２００に対応する状態マシンの状態の指標である必要はない。例えば、一実施形態では、状態マシンの様々な状態に対応する出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２などに対する値は構成可能であってもよい。したがって、例えば、ある特定の状態の場合、複数の出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２などはアサートされてもよい。プログラマがＳＭＦＢを構成することを可能にするために、構成アプリケーションは、機能ブロックと関連付けられた構成ウィンドウ、スクリーンなど、ユーザインターフェース機構を表示デバイス１２０上に表示することができる。
【００７９】
図１３は、図４のＳＭＦＢ２００などのＳＭＦＢを少なくとも一部構成するために使用され得るユーザインターフェース機構の一例である。ユーザインターフェース機構は、ＳＭＦＢと関連付けられた構成ウィンドウ、スクリーンなどの一部として表示され得る表またはマトリクス７００（以下、「マトリクス７００」と称される）を含む。マトリクス７００は、行および列で配列された複数のセル７０４を含む。各列は、状態マシン機能ブロックの複数の出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２など、ＴＲＡＮＳ＿ＩＮおよびＴＲＡＮＳ＿ＯＵＴのうちの１つに対応し、各行は、状態マシンの可能な状態のうちの１つに対応する。したがって、各セル７０４は、状態および出力に対応する。他の例では、各列は、複数の出力のうちの１つに対応することができ、各列は、状態マシンの可能な状態のうちの１つに対応することができる。
【００８０】
マトリクス７００の出力「１」〜「４」は、ＳＭＦＢの出力ＯＵＴ＿Ｄ１〜ＯＵＴ＿Ｄ４にそれぞれ対応することができ、出力「５」および「６」は、出力ＴＲＡＮＳ＿ＩＮおよびＴＲＡＮＳ＿ＯＵＴにそれぞれ対応することができる。同様に、マトリクス７００の状態「１」〜「６」は、状態マシンの可能な状態に対応することができる。加えて、この例では、ユーザは、出力の各々をラベル付けすることができる場合がある。例えば、図１３では、「出力１」は、「バルブ開放ＶＬＶ−１０１」とラベル付けされる。出力をラベル付けすることは、状態マシンの動作を理解し、および／または状態マシンをプロセスプラントとインターフェース接続することを容易にするのに役立ち得る。
【００８１】
プログラマは、構成情報をセル７０４に入力することによってＳＭＦＢを構成することができる。具体的には、状態のうちの１つおよび出力のうちの１つに対応する特定のセル７０４の場合、プログラマは、状態マシンがその状態にあるときにその出力がアサートされるべきであることを示す構成データをセルに入力することができる。例示的なマトリクス７００では、構成データは、セル７０４のうちのいくつかに入力された。例えば、セル７０４Ａは、状態マシンが「作動中」状態にあるときに出力ＯＵＴ＿Ｄ３がアサートされるべきであることを示す構成データを含み、セル７０４Ｂは、状態マシンが「作動中」状態にあるときに出力ＴＲＡＮＳ＿ＩＮがアサートされるべきであることを示す構成データを含み、セル７０４Ｃは、状態マシンが「回復済み」状態にあるときに出力ＴＲＡＮＳ＿ＯＵＴがアサートされるべきであることを示す構成データを含む。
【００８２】
この特定の例では、プログラマがセル７０４に構成データを入力しない場合、特定の状態の場合、対応する出力はアサートされるべきではないことを想定され得る。例えば、セル７０４Ｄおよび７０４ＥはＸを含まず、このことは、状態マシンが「作動中」状態にあるときに出力ＯＵＴ＿Ｄ１およびＯＵＴ＿Ｄ２がアサートされるべきではないことを示す。他の実施形態では、プログラマは、状態マシンが特定の状態にある場合に特定の出力をアサートするべきではないことを示す構成データを入力することができる。同様に、特定の状態および出力の場合、出力がアサートされるか、またはアサートされないかは問題ではないことを示す可能性がある。
【００８３】
プログラマは、当業者に周知の技術を含む多様な技術のいずれかを使用してマトリクス７００に構成データを入力することができる。例えば、構成データをセル７０４に入力するために、プログラマは、マウス、トラックボール、タッチスクリーンなどを使用してセル７０４を選択することができる。次に、ユーザは、例えば、キーボードを介して構成データを直接セル７０４に入力することができる。あるいは、プログラマは、セル７０４を選択し、次いで「編集」「修正」など、プルダウンメニューから選択を選択するか、または「編集」ボタン、「修正」ボタンなどを選択することができる。次に、ユーザインターフェースは、プルダウンメニュー、ウィンドウ、表示スクリーンなどを介して選択のリストをプログラマに表示することができる。例えば、選択のリストは、「出力をアサートする」選択、「出力をアサート停止にする」選択、および任意に「指定なし」選択を含むことができる。次に、プログラマは、例えば、キーボード、マウス、トラックボール、タッチスクリーンなどを使用して選択のうちの１つを選択することができる。プログラマが「出力をアサートする」選択を選択する場合、構成データは、対応する状態の場合、対応する出力がアサートされるべきであることを示すことができる。例えば、「Ｘ」がセル内に表示されてもよく、「１」がセル内に表示されてもよく、用語「ＴＲＵＥ」がセル内に表示されてもよく、用語「ＡＳＳＥＲＴ」がセル内に表示されてもよく、以下同様である。プログラマが「出力をアサート停止にする」選択を選択する場合、構成データは、対応する状態の場合、対応する出力がアサートされるべきではないことを示すことができる。例えば、セルが空白のままにされてもよく、「０」がセル内に表示されてもよく、用語「ＦＡＬＳＥ」がセル内に表示されてもよく、用語「ＤＥＡＳＳＥＲＴ」がセル内に表示されてもよく、以下同様である。
【００８４】
例示的なマトリクス７００は、６つの状態および６つの出力に対する行を含むが、異なる数の状態および出力を有する類似のマトリクスは、異なる数の状態および出力を有するＳＭＦＢに使用されてもよい。状態および出力の数は構成可能であってもよい。
【００８５】
再び図７を参照すると、以前に記載されたように、現在の状態が決定された後、ＳＭＦＢのデータ出力は、現在の状態（ブロック３６６）に基づいて設定されてもよい。例えば、データ出力は、図１３のマトリクス７００などのマトリクスに入力された構成データに従って設定されてもよい。
【００８６】
図１４は、適切な出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２などをアサートするために使用され得る例示的なルーチン８５０のフロー図である。ブロック８５４では、変数ｚが１に設定される。ブロック８５８では、出力ＯＵＴ＿Ｄｚは、変数ＳＴＡＴＥによって指示された配列変数ＯＵＴＰＵＴの要素のビット数ｚの値に設定される。ＯＵＴＰＵＴ配列の各要素は、状態の対応する１つに対して、出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２などの値を示す変数であってもよい。例えば、ＯＵＴＰＵＴ［１］が状態１に対応することができ、ＯＵＴＰＵＴ［２］が状態２に対応することができ、以下同様である。加えて、各要素の各ビットは、出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２などのうちの１つに対応することができる。例えば、ビット１がＯＵＴ＿Ｄ１に対応することができ、ビット２がＯＵＴ＿Ｄ２に対応することができ、以下同様である。図１３を参照すると、例えば、マトリクス７００に対して、ＯＵＴＰＵＴ配列は、６つの要素を有し、要素ＯＵＴＰＵＴ［１］は、０×０６であってもよい。
【００８７】
ブロック８６２では、変数ｚは増やされ、ブロック８６６では、ｚの値が出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２などの数より大きいか決定され得る。ｚが出力ＯＵＴ＿Ｄ１、ＯＵＴ＿Ｄ２などの数以下の場合、ルーチンは、ブロック８５８に戻って進むことができる。そうでなければ、ルーチンは終了することができる。
【００８８】
ＳＭＦＢに対する構成データは、上述されるものに加えて他のタイプのグラフィカルユーザインターフェースを介して入力されてもよい。例えば、構成データは、状態遷移図に類似するグラフィカルユーザインターフェースを介して入力されてもよい。図１５は、図４に関して記載されるようにＳＭＦＢ２００などのＳＭＦＢを構成するために使用され得る例示的な状態遷移図９００である。図９００は、複数のグラフィカル要素９０４、９０８、９１２、９１６、９２０、９２４、９２８、および９３２を含む。要素９０４、９０８、および９１２は、状態マシンの状態１、２、および３をそれぞれ表す。要素９１６は、状態マシンが状態１にあるときに入力２がアサートされる場合にそれが状態２に遷移するべきであることを示す。要素９２０は、状態マシンが状態１にあるときに入力３がアサートされる場合にそれが状態３に遷移するべきであることを示す。要素９２４は、状態マシンが状態２にあるときに入力１がアサートされる場合にそれが状態１に遷移するべきであることを示し、要素９２８は、状態マシンが状態３にあるときに入力１がアサートされる場合にそれが状態１に遷移するべきであることを示す。同様に、要素９３２は、状態マシンが状態３にあるときに入力４がアサートされる場合にそれが状態２に遷移するべきであることを示す。
【００８９】
状態遷移図９００は、状態１と関連付けられた入遷移要素９０２、９０３、および出遷移要素９０５と、状態２と関連付けられた入遷移要素９０６、９０７、および出遷移要素９０９と、状態３と関連付けられた入遷移要素９１１、および出遷移要素９１３、９１４とをさらに含む。具体的には、状態マシンが状態１にあり、入力３がアサートされる場合、状態マシンは、出遷移要素９０５を実行し、状態３に遷移し、状態３の入遷移要素９１１を実行するべきである。さらに、状態マシンが状態２にあり、入力１がアサートされる場合、状態マシンは、出遷移要素９０９を実行し、状態１に遷移し、入遷移要素９０２を実行するべきである。入遷移要素および／または出遷移要素は、状態のいずれかの間で共通であり得ることを理解されるべきである。例えば、入遷移要素９０２、９０３は同じであり得、それによって状態マシンは、状態マシンが状態２または状態３のいずれかから状態１に遷移することに応答して関連する入遷移動作を実行する。さらなる例として、出遷移要素９１３、９１４は同じであり得、それによって状態マシンは、状態マシンが状態１（アサートされる入力１に応答して）または状態２（アサートされる入力４に応答して）のいずれかに遷移することに応答して関連する出遷移動作を実行する。
【００９０】
一般的に、ＳＭＦＢは、ソフトウェア、ファームウェア、もしくはハードウェア、またはソフトウェア、ファームウェア、および／もしくはハードウェアのいくつかの組み合わせによって実装されてもよい。例えば、ＳＭＦＢは、コントローラ１２ａ、１６ａ、Ｉ／Ｏデバイス２４、ロジックソルバ５０、およびデバイス２２、２３、６０、６２のうちの１つ以上によって実装されてもよい。別の例として、ＳＭＦＢは、ワークステーション１８ａおよび２０ａのうちの１つ以上によって実装されてもよい。例えば、ＳＭＦＢは、プロセスプラントの動作をテストするか、またはオペレータのトレーニングを提供するシミュレーションの一部としてワークステーション１８ａおよび／またはワークステーション２０ａによって実装されてもよい。いくつかの実施形態では、ＳＭＦＢは、ソフトウェアに従って構成されたプロセッサによって、プログラマブル論理デバイス、例えば、ゲートアレイ、標準セル、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、プログラマブルアレイ論理（ＰＡＬ）、プログラマブル論理アレイ（ＰＬＡ）などのうちの１つ以上を含むデバイスによって実装されてもよい。
【００９１】
図８のブロック４０４、４０８、４１２、４１６、４２０、および４５８の各々は、ソフトウェア、ファームウェア、もしくはハードウェア、またはソフトウェア、ファームウェア、および／もしくはハードウェアのいくつかの組み合わせによって実装されてもよい。加えて、図１０〜１２および１４のフロー図は、ルーチンとして記載されたが、これらのフロー図は、ソフトウェア、ハードウェア、ファームウェア、またはソフトウェア、ファームウェア、および／もしくはハードウェアの組み合わせによって実装され得る。
【００９２】
上述されるユーザインターフェースなどのユーザインターフェースの実施形態は、全体または一部において、例えば、ソフトウェアプログラムに従って構成されたプロセッサによって実装されてもよい。例えば、ワークステーション１８ａもしくは２０ａまたはいくつかの他のコンピュータは、全体または一部において、上述されるユーザインターフェースを実装することができる。ユーザインターフェースの実施形態を実装するためのソフトウェアプログラムは、ハードディスク、ＲＡＭ、バッテリバックアップされたＲＡＭ、ＲＯＭ、ＣＤ−ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＶＤ、フラッシュメモリなどの有形媒体、またはプロセッサと関連付けられたＲＡＭなどのメモリ上に記憶されたソフトウェアに具現化されてもよいが、当業者であれば、このプログラム全体または一部が代わりに、プロセッサ以外のデバイスによって実行され、ならびに／または周知の様式でファームウェアおよび／もしくは専用のハードウェアに具現化され得ることを容易に理解するであろう。
【００９３】
本発明は、様々な修正および代替的構築物の影響を受けやすいが、このある特定の例示的な実施形態は、図面に示され、本明細書に詳細に記載される。しかしながら、開示される特定の形態に本開示を限定することを意図していないが、それとは反対に、添付の特許請求の範囲によって定義されるような本開示の趣旨および範囲内に入るすべての修正、代替的構築物、および均等物を網羅するのを意図することを理解されるべきである。
【図１】
2019050022.tif 000003
【図２】
2019050022.tif 000004
【図３】
2019050022.tif 000005
【図４】
2019050022.tif 000006
【図５】
2019050022.tif 000007
【図６】
2019050022.tif 000008
【図７】
2019050022.tif 000009
【図８】
2019050022.tif 000010
【図９】
2019050022.tif 000011
【図１０】
2019050022.tif 000012
【図１１】
2019050022.tif 000013
【図１２】
2019050022.tif 000014
【図１３】
2019050022.tif 000015
【図１４】
2019050022.tif 000016
【図１５】
2019050022.tif 000017
【手続補正書】
【提出日】平成30年11月30日(2018.11.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセスプラントと関連付けられ、遷移表および現在の状態を有する状態マシンを実装する状態マシン機能ブロック（ＳＭＦＢ）を操作する方法であって、
前記ＳＭＦＢによって、前記プロセスプラントに関連付けられた第１の機能ブロックから、前記状態マシンに対する入力を受信することであって、前記入力は、前記プロセスプラントにおける条件を示すことを特徴とする前記受信することと、
前記現在の状態および前記入力に基づいて、次の状態および少なくとも１つの遷移動作を前記遷移表から識別することと、
前記プロセスプラントの第１のフィールドデバイスおよび前記プロセスプラントのワークステーションの少なくとも１つに、少なくとも１つの遷移動作で示される少なくとも１つの機能を実行させるために、前記ＳＭＦＢによって、前記少なくとも１つの遷移動作を開始することと、
前記少なくとも１つの遷移動作を開始すると、前記状態マシンの前記現在の状態を前記次の状態に設定することと、
前記状態マシンの前記現在の状態を設定すると、前記プロセスプラントの第２のフィールドデバイスを制御するのに使用するために機能ブロック出力を第２の機能ブロックに前記ＳＭＦＢによって提供することであって、前記機能ブロック出力は、前記状態マシンの前記現在の状態に基づいていることを特徴とする前記提供することと、を含む、方法。
【請求項２】
前記少なくとも１つの遷移動作は、出遷移動作および入遷移動作を指定し、前記少なくとも１つの遷移動作を開始することは、
前記状態マシン機能ブロック（ＳＭＦＢ）によって、前記出遷移動作を開始することと、
前記ＳＭＦＢによって、前記入遷移動作を開始することと、を含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの遷移動作を開始することは、さらなる機能ブロック出力を第３の機能ブロックに提供することを含み、
前記さらなる機能ブロック出力は、前記少なくとも１つの遷移動作を示し、
前記第３の機能ブロックは、前記少なくとも１つの遷移動作を開始して、前記プロセスプラントの前記第１のフィールドデバイスおよび前記プロセスプラントの前記ワークステーションの少なくとも１つに、少なくとも１つの遷移動作に示される前記少なくとも１つの機能を実行させるように構成される、
請求項１または請求項２に記載の方法。
【請求項４】
前記少なくとも１つの遷移動作を開始することは、
データベースから前記少なくとも１つの遷移動作と関連付けられた少なくとも１つの遷移構成項目を取り出すことと、
前記少なくとも１つの遷移構成項目を実行することと、を含む、請求項１〜請求項３の
何れか１項に記載の方法。
【請求項５】
前記現在の状態を前記次の状態に設定することに応答して、前記現在の状態と関連付けられた少なくとも１つの出力を設定することをさらに含む、請求項１〜請求項４の何れか１項に記載の方法。
【請求項６】
プロセスプラントのプロセスコントロールシステムで使用し、一組のフィールドデバイスに通信可能に連結され、遷移表および現在の状態を有する状態マシンを実装するための状態マシンコントローラユニットであって、
状態マシン機能ブロック（ＳＭＦＢ）を実行するコントローラを備え、
前記コントローラは、
前記プロセスプラントに関連する第１の機能ブロックから、前記プロセスプラント内の条件を示す入力を受信し、
前記現在の状態および前記入力に基づいて前記遷移表から、次の状態および少なくとも１つの遷移動作を識別し、
前記プロセスプラントの第１フィールドデバイスおよび前記プロセスプラントのワークステーションのうちの少なくとも１つに前記少なくとも１つの遷移動作で示される少なくとも１つの機能を実行させる前記少なくとも１つの遷移動作を開始し、
前記少なくとも１つの遷移動作を開始すると、前記状態マシンの前記現在の状態を前記次の状態に設定し、
前記状態マシンの前記現在の状態を設定すると、前記プロセスプラントの第２のフィールドデバイスを制御するのに使用するための出力を第２の機能ブロックに提供し、
前記出力は、前記状態マシンの前記現在の状態に基づいている、
状態マシンコントローラユニット。
【請求項７】
前記少なくとも１つの遷移動作は、出遷移動作および入遷移動作を指定し、
前記状態マシン機能ブロック（ＳＭＦＢ）は、前記出遷移動作を開始しかつ前記入遷移動作を開始することによって、前記少なくとも１つの遷移動作を開始する、
請求項６に記載の状態マシンコントローラユニット。
【請求項８】
前記状態マシン機能ブロック（ＳＭＦＢ）は、前記入遷移動作を開始する前に前記出遷移動作を開始する、請求項７に記載の状態マシンコントローラユニット。
【請求項９】
前記状態マシン機能ブロック（ＳＭＦＢ）は、前記状態マシンの前記現在の状態を前記次の状態に設定する前に前記入遷移動作を開始する、請求項７又は請求項８の何れか１項に記載の状態マシンコントローラユニット。
【請求項１０】
前記状態マシン機能ブロック（ＳＭＦＢ）は、前記状態マシンの前記現在の状態を前記次の状態に設定する前に前記出遷移動作を開始する、請求項７から請求項９の何れか１項に記載の状態マシンコントローラユニット。