JP2019050022A - 有形媒体 - Google Patents

有形媒体 Download PDF

Info

Publication number
JP2019050022A
JP2019050022A JP2018213594A JP2018213594A JP2019050022A JP 2019050022 A JP2019050022 A JP 2019050022A JP 2018213594 A JP2018213594 A JP 2018213594A JP 2018213594 A JP2018213594 A JP 2018213594A JP 2019050022 A JP2019050022 A JP 2019050022A
Authority
JP
Japan
Prior art keywords
state
transition
state machine
input
cells
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018213594A
Other languages
English (en)
Other versions
JP6820306B2 (ja
Inventor
ケイ. ロー ギャリー
Gary K Law
ケイ. ロー ギャリー
アール. シェリフ ゴッドフレイ
Godfrey R Sheriff
アール. シェリフ ゴッドフレイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fisher Rosemount Systems Inc
Original Assignee
Fisher Rosemount Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fisher Rosemount Systems Inc filed Critical Fisher Rosemount Systems Inc
Publication of JP2019050022A publication Critical patent/JP2019050022A/ja
Application granted granted Critical
Publication of JP6820306B2 publication Critical patent/JP6820306B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/402Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for positioning, e.g. centring a tool relative to a hole in the workpiece, additional detection means to correct position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41835Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by programme execution
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23289State logic control, finite state, tasks, machine, fsm
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40585Chemical, biological sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range

Abstract

【課題】ユーザには状態遷移と関連付けられたプロセスを手動で実行する必要性を軽減することができるようにする。
【解決手段】プロセスプラントにおける制御システム、安全システムなどは各々、環境をプログラミングする機能ブロック図に容易に統合され得る1つ以上の状態マシン機能ブロックを使用することができる。かかる状態マシン機能ブロックは、次の状態ならびに現在の状態から次の状態に遷移することに従って実行する1つ以上の遷移動作を状態マシン機能ブロックによって実装された状態マシンに識別させ得る、1つ以上の入力を含むことができる。遷移動作と関連付けられた構成データは、状態マシンの現在および次の状態ならびに入力のうちの少なくとも1つに基づいてデータベースから取り出されてもよい。状態マシン機能ブロックはまた、状態遷移に基づいて生成される1つ以上の出力を含むことができる。
【選択図】図1

Description

本開示は、一般的に、プロセスプラントで使用するための機能ブロックに関し、より詳細には、プロセスプラントと関連付けられた状態マシンを構成および実装することに関する。
化学、石油、または他のプロセスに使用されるものなどのプロセス制御システムは典型的に、アナログ、デジタル、または組み合わせられたアナログ/デジタルバスもしくは回線を介して少なくとも1つのホストまたはオペレータワークステーション、および1つ以上のフィールドデバイスに通信可能に連結された1つ以上のプロセスコントローラを含む。例えば、バルブ、バルブポジショナ、スイッチ、およびトランスミッタ(例えば、温度、圧力、および流量センサ)であり得るフィールドデバイスは、バルブの開閉およびプロセスパラメータの測定など、プロセスプラント内の機能を実行する。プロセスコントローラは、フィールドデバイスによって作成されるプロセスの測定値および/またはフィールドデバイスに関する他の情報を示す信号を受信し、この情報を使用して制御ルーチンを実装し、次いでプロセスの動作を制御するためにフィールドデバイスにバスまたは回線を介して送信される制御信号を生成する。フィールドデバイスおよびコントローラからの情報は典型的に、プロセスを構成すること、プロセスの現在の状態を視認すること、プロセスの動作を修正することなど、オペレータがプロセスに関して任意の所望の機能を実行することを可能にするオペレータワークステーションによって実行される1つ以上のアプリケーションに対して利用可能にされる。
加えて、多くのプロセスでは、有毒化学物質の流出、爆発など、プラントにおいて重大な危険をもたらすかまたはそれにつながり得る問題が生じるとき、プロセスプラント内の重要な安全関連の問題を検出し、バルブを自動的に閉鎖し、デバイスから電力を取り外し、プラント内のフローを切り替えるなどのために別個の安全システムが提供される。これらの安全システムは典型的に、ロジックソルバと呼ばれる標準的なプロセス制御コントローラとは別に1つ以上の別個のコントローラを有し、これらは、プロセスプラント内に導入された別個のバスまたは通信回線を介して安全フィールドデバイスに接続される。ロジックソルバは、安全フィールドデバイスを使用して、ある特定の安全スイッチまたは遮断バルブの位置、プロセスにおけるオーバーフローまたはアンダーフロー、重要な発電または制御デバイスの動作、障害検出デバイスの動作など、重要な事象と関連付けられたプロセス条件を検出し、それによってプロセスプラント内の「事象」を検出する。事象(典型的に「原因」と呼ばれる)が検出されると、安全コントローラは、何らかの行動(典型的に「結果」と呼ばれる)を取り、バルブの閉鎖、デバイスのオフ、プラントの区分から電力を取り外すなど、事象の有害な性質を制限する。一般的に、これらの行動または結果としては、安全デバイスをプロセスプラント内の重大なまたは危険な状態を防ぐように設計される動作の作動した、または「安全な」モードに切り替えることが挙げられる。
プロセス制御システムおよび安全システムなどのプロセスプラント内のシステムは典型的に、様々なプロセスおよび/またはシステム自体の状態を追跡し続けることができる。システムへの入力信号は、システムによって追跡された状態を変化させることができ、システムによって生成された出力信号は、システムへの入力信号に加えてシステムの現在の状態に依存することができる。米国特許第7,730,415号は、その全体があらゆる目的で参照により本明細書に組み込まれ、環境をプログラムする機能ブロック図に統合される状態マシン機能ブロックを使用するプロセスプラント内の制御システムを詳述する。具体的には、このような状態マシン機能ブロックは、状態マシン機能ブロックによって実装された状態マシンに状態を変化させるために使用される、1つ以上の入力を含む。さらに、状態マシン機能ブロックは、それが次の状態を示す状態遷移構成データに基づいて遷移するべきである次の状態を決定する。状態遷移構成データは、状態マシンの現在の状態および入力のうちの少なくとも1つに基づいてデータベースから取り出される。状態マシン機能ブロックはまた、状態マシンの状態に基づいて生成される1つ以上の出力を含む。状態マシン機能ブロックの入力は、例えば、プロセス制御システムまたは安全システムと関連付けられ、出力は、例えば、プロセス制御システムまたは安全システムにおけるフィールドデバイスの制御に使用されてもよい。
しかしながら、現在のプロセス制御システムは、現在の状態からの遷移または次の状態への遷移と関連付けられた様々な動作または機能を自動的に実行する能力を有しない。代わりに、現在のプロセス制御システムのユーザおよび管理者は、状態遷移中に動作または機能を手動で実行または実装しなければならない。したがって、現在のプロセス制御システムは、ある特定の安全対策、制御技術、および状態遷移と関連付けられた他の特徴を実行する能力が限定される。
本明細書に記載されるようなシステムおよび方法は、プロセス制御環境の状態間の遷移を管理することに関する。プロセス制御システムおよび方法は、アサートされた入力に基づいて状態マシンの様々な状態間の遷移を識別する遷移表を含む状態マシンを実装することができる。遷移表は、プロセス制御システムに対する1つ以上の遷移動作および現在の状態を次の状態に遷移することに関連して実行する方法をさらに指定することができる。実施形態によれば、遷移動作は、入遷移動作および/または出遷移動作の形態であってもよい。プロセス制御システムおよび方法は、現在の状態から遷移することに関連して出遷移動作を実行することができ、次の状態に落ち着く前に入遷移動作を実行することができる。いくつかの実施形態では、プロセス制御システムおよび方法は、別の機能ブロックへの遷移動作と関連付けられた構成データをその機能ブロックによる実行のために提供することができる。プロセス制御システムおよび方法は、現在の状態および遷移動作に対応する出力をさらに設定することができる。
いくつかの実施形態によれば、プロセス制御システムおよび方法は、グラフィカルユーザインターフェースによって表示可能なマトリクスを介して遷移表を管理することができる。マトリクスの様々なセルは、状態遷移に関連して実行される遷移動作とともにアサートされた入力と関連付けられた様々な状態遷移を識別する状態遷移データを示しことができる。マトリクスは、状態遷移およびそれと関連付けられた遷移動作を指定するようにコンピュータまたはそのユーザを介して完全に構成可能であり得る。したがって、機能ブロックは、適切なマトリクスにアクセスして、状態遷移を容易にし、関連する遷移動作を自動的に実行し、かつ適切な出力を設定することができる。
本明細書に記載されるようなプロセス制御システムおよび方法の実施形態は、従来のプロセス制御技術と比較してより効果的かつ効率的なプロセス制御技術につながり得る。例えば、遷移動作は、プロセス制御システムおよび方法が現在の状態から遷移することおよび次の状態に遷移することと関連付けられた動作を自動的に実行することを可能にし、それによってユーザには状態遷移と関連付けられたプロセスを手動で実行する必要性を軽減する。
本明細書に記載される方法、装置、およびシステムの特徴および利点は、以下の発明を実施するための形態および添付の図面を参照して最良に理解されるであろう。
例示的なプロセスプラントのブロック図である。 図1に概略的に示される例示的なワークステーションのブロック図である。 制御モジュールを描写するディスプレイの一例である。 状態マシン機能ブロックの表現の一例である。 状態マシン機能ブロックに対する状態構成データおよびそれと関連付けられた遷移動作データを入力するための例示的なマトリクスである。 状態構成データおよびそれと関連付けられた遷移動作データがマトリクスに表示される図5の例示的なマトリクスである。 遷移動作機能性を有する状態マシン機能ブロックの動作の例示的な方法のフロー図である。 遷移動作機能性を組み込む例示的な状態マシン機能ブロックのブロック図である。 遷移動作機能性を有する状態マシン機能ブロックの動作の別の例示的な方法のフロー図である。 状態マシン機能ブロックへのデータ入力を処理するための例示的なルーチンのフロー図である。 状態マシン機能ブロックへのイネーブル入力を処理するための例示的なルーチンのフロー図である。 状態を変化させ、状態マシン機能ブロックの遷移動作出力を含む出力を設定するための例示的なルーチンのフロー図である。 状態マシン機能ブロックに対する遷移動作を含む出力構成データを入力するための例示的なマトリクスである。 別の例示的な状態マシン機能ブロックのブロック図である。 状態マシン機能ブロックに対する状態構成データおよびそれと関連付けられた遷移動作データを入力するための例示的な状態遷移図である。
プロセスプラントの実施例
図1は、1つ以上のノード12、16、18、および20を含む例示的なプロセスプラント10のブロック図である。図1の例示的なプロセスプラント10では、ノード12および16の各々は、例えば、Foundation Fieldbusインターフェース、HARTインターフェースなどであり得る入力/出力(I/O)デバイス24を介して1つ以上のフィールドデバイス22および23に接続されたプロセスコントローラ12a、16aを含む。コントローラ12aおよび16aはまた、例えば、バス、イーサネットLANなどの有線のローカルエリアネットワーク(LAN)、無線LAN、広域ネットワーク(WAN)、イントラネットなどのうちの1つ以上を含み得るネットワーク30を介してノード18および20における1つ以上のホストまたはオペレータワークステーション18aおよび20aに連結される。コントローラノード12、16およびI/Oデバイス24ならびにそれと関連付けられたフィールドデバイス22、23は典型的に、時に厳しいプラント環境内の下に位置し、かつそれにわたって分布されるが、オペレータワークステーションノード18および20は通常、制御室またはコントローラの人員によって容易に評価可能な他のあまり厳しくない環境に位置する。
一般的に言えば、ノード18および20のワークステーション18aおよび20aは、プロセスプラント10を構成および監視し、ならびに/またはプロセスプラント10内のデバイス22、23、24およびコントローラ12a、16aを管理するために使用されるアプリケーションを記憶および実行するために使用されてもよい。さらに、データベース32は、ネットワーク30に接続され、ノード12、16、18、20、22、23、24、50、および70にダウンロードされ、および/またはそれらの中に記憶されるときにプロセスプラント10の現在の構成を記憶するデータヒストリアンおよび/または構成データベースとして動作することができる。
例としてEmerson Process Managementによって販売されるDeltaV(商標)コントローラであり得るコントローラ12aおよび16aの各々は、多くの異なる独立して実行される制御モジュールまたはブロックを使用して制御戦略を実装するコントローラアプリケーションを記憶および実行することができる。制御モジュールは各々、各機能ブロックが制御ルーチン全体の一部またはサブルーチンであり、プロセスプラント10内のプロセス制御ループを実装する他の機能ブロック(リンクと呼ばれる通信を介する)とともに動作する機能ブロックと一般に称されるもので構成されてもよい。周知であるように、機能ブロックは典型的に、プロセスプラント10内のいくつかの物理的機能を実行するために、入力機能(トランスミッタ、センサ、または他のプロセスパラメータ測定デバイスと関連付けられたものなど)、制御機能(PID、ファジー論理などの様々な制御を実行する制御ルーチンと関連付けられたものなど)またはいくつかのデバイス(バルブなど)の動作を制御する出力機能のうちの1つを実行する。当然のことながら、ハイブリッドおよび他のタイプの機能ブロックが存在し、利用され得る。FieldbusプロトコルおよびDeltaV(商標)システムプロトコルは、オブジェクト指向プログラミングプロトコルで設計および実装された制御モジュールおよび機能ブロックを使用することができるが、制御モジュールは、例えば、シーケンシャル機能ブロック、ラダー論理などを含む任意の所望の制御プログラミング方式を使用して設計される可能性があり、機能ブロックまたは任意の他の特定のプログラミング技術を使用して設計されることに限定されない。典型的には、プロセス制御ノード12および16内に記憶されるような制御モジュールの構成は、ワークステーション18aおよび20aによって実行されるアプリケーションにアクセス可能である構成データベース32内に記憶されてもよい。機能ブロックは、これらの機能ブロックが標準的な4〜20mAデバイスおよびHARTデバイスなどのいくつかのタイプのスマートフィールドデバイスに使用され、または標準的な4〜20mAデバイスおよびHARTデバイスなどのいくつかのタイプのスマートフィールドデバイスと関連付けられるときに典型的な場合である、例えば、コントローラ12a、16a内に記憶され、それらによって実行されてもよく、あるいは、Fieldbusデバイスを有する場合であり得るフィールドデバイス自体の中に記憶され、それらによって実装されてもよい。
図1に示されるシステムでは、コントローラ12aおよび16aに連結されたフィールドデバイス22および23は、標準的な4〜20mAデバイスであってもよく、あるいは、プロセッサおよびメモリを含むHART、Profibus、またはFoundation Fieldbusのフィールドデバイスなど、スマートフィールドデバイスであってもよい。Foundation Fieldbusのフィールドデバイスなど、これらのデバイスのうちのいくつか(図1に参照番号23で付される)は、コントローラ12aおよび16aに実装された制御戦略と関連付けられた機能ブロックなどのモジュールまたはサブモジュールを記憶および実行することができる。当然のことながら、フィールドデバイス22、23は、センサ、バルブ、トランスミッタ、ポジショナなど、任意のタイプのデバイスであってもよく、I/Oデバイス24は、任意の所望の通信またはHART、Foundation Fieldbus、Profibusなどのコントローラプロトコルに適合する任意のタイプのI/Oデバイスであってもよい。
コントローラ12aおよび16aは各々、メモリ内に記憶された1つ以上のプロセス制御ルーチンを実装または監視するプロセッサを含み、これらは、その中に記憶され、または別の方法でそれと関連付けられた制御ループを含むことができる。コントローラ12aおよび16aは、任意の所望の様式でプロセスを制御するためにフィールドデバイス22、23、ワークステーション18a、20a、およびデータベース32と通信する。コントローラ12aおよび16aは各々、任意の所望の様式で制御戦略または制御ルーチンを実装するように構成されてもよい。コントローラ12aおよび16aは、無線接続を介してフィールドデバイス22、23、ワークステーション18a、20a、およびデータベース32と通信することができることを理解されるべきである。
プロセスプラント10はまた、プロセス制御ノード12および16と統合された安全システム14(点線で示される)を含むことができる。安全システム14は一般的に、プロセスプラント10の安全であり得る動作を最大化するために、プロセス制御ノード12および16によって提供される制御を監視および無効化する安全装備システム(SIS)として動作することができる。
ノード12および16の各々は、1つ以上の安全システムロジックソルバ50を含むことができる。ロジックソルバ50の各々は、プロセッサおよびメモリを有するI/Oデバイスであり、メモリ内に記憶された安全論理モジュールを実行するように構成される。各ロジックソルバ50は、安全システムフィールドデバイス60および62に制御信号を提供し、および/または安全システムフィールドデバイス60および62からの信号を受信するように通信可能に連結される。加えて、ノード12および16の各々は、少なくとも1つのメッセージ伝達デバイス(MPD)70を含み、これは、リングまたはバス接続74(一部のみ図1に示される)を介して他のMPD70に通信可能に連結される。安全システムのロジックソルバ50、安全システムのフィールドデバイス60および62、MPD70、ならびにバス74は一般的に、図1の安全システム14を構成する。
図1のロジックソルバ50は、フィールドデバイス60および62を使用して安全システム14と関連付けられた制御機能性を提供するためにプロセッサ上で実行されるように適合された安全論理モジュールを記憶するプロセッサおよびメモリを含む任意の所望のタイプの安全システム制御デバイスであってもよい。当然のことながら、安全フィールドデバイス60および62は、上述されるものなど、任意の既知もしくは所望の通信プロトコルに適合するか、またはそれを使用する任意の所望のタイプのフィールドデバイスであってもよい。具体的には、フィールドデバイス60および62は、別個の専用の安全関連の制御システムによって従来制御されるタイプの安全関連のフィールドデバイスであってもよい。図1に示されるプロセスプラント10では、安全フィールドデバイス60は、HARTまたは4−20mAプロトコルなど、専用またはポイントツーポイント通信プロトコルを使用するように示されるが、安全フィールドデバイス62は、Fieldbusプロトコルなど、バス通信プロトコルを使用するように示される。安全フィールドデバイス60は、遮断バルブ、遮断スイッチなどのものなど、任意の所望の機能を実行することができる。
共通のバックプレーン(図示せず)は、コントローラ12aおよび16aをプロセス制御I/Oカード24、安全ロジックソルバ50、およびMPD70に通信可能に連結するためにノード12および16の各々で使用されてもよい。コントローラ12aおよび16aはまた、ネットワーク30に通信可能に連結される。コントローラ12aおよび16a、I/Oデバイス24、ロジックソルバ50、およびMPD70は、ネットワーク30を介してノード18および20と通信することができる。
当業者に理解されるように、ノード12、16におけるバックプレーン(図示せず)は、ロジックソルバ50がこれらのデバイスによって実装された安全機能を調整し、互いにデータを通信し、および/または他の統合された機能を実行するように互いに局所的に通信することを可能にする。同様に、ノード16におけるバックプレーン(図示せず)は、ロジックソルバ50がこれらのデバイスによって実装された安全機能を調整するため互いにローカルに通信し、互いにデータを通信し、および/または他の統合された機能を実行することを可能にする。一方、MPD70は、プロセスプラント10の異なるノードで調整された安全操作を提供するように互いにさらに通信するプラント10の大きく異なる位置で配設される安全システム14の部分を有効にするように動作する。具体的には、バス74とともにMPD70は、プロセスプラント10の異なるノード12および16と関連付けられたロジックソルバ50が割り当てられた優先度に従ってプロセスプラント10内の安全関連機能のカスケーディングを可能にするようにともに通信可能にカスケードされることを可能にする。MPD70およびバス74は、安全システムにネットワーク30の代替である通信リンクを提供する。
あるいは、プロセスプラント10内の異なる位置における2つ以上の安全関連機能は、プラント10の別個の区域またはノード内の個々の安全フィールドデバイスへの専用回線を動作させる必要なしに連動または相互接続されてもよい。換言すれば、MPD70および72ならびにバス74の使用は、プロセスプラント10にわたって本質的に分布されるが、異なる安全関連ハードウェアが必要に応じて互いに通信することを可能にするように通信可能に相互接続されたその異なる構成要素を有する安全システム14を安全技術者が設計および構成することを可能にする。この特徴はまた、さらなる安全ロジックソルバが必要とされるか、または新しいプロセス制御ノードがプロセスプラント10に追加されるときに、さらなる安全ロジックソルバが安全システム14に追加されることを可能にする安全システム14の拡張性を提供する。
図2は、例示的なワークステーション18a(ワークステーション20aが同じまたは類似のデバイスを備えることができる)のブロック図である。ワークステーション18aは、少なくとも1つのプロセッサ100と、揮発性メモリ104と、不揮発性メモリ108とを含むことができる。揮発性メモリ104は、例えば、ランダムアクセスメモリ(RAM)を含むことができる。いくつかの実施形態では、RAMは、停電が発生した場合にデータが失われないように1つ以上のバッテリによってバックアップされてもよい。不揮発性メモリ108としては、例えば、ハードディスク、読み取り専用メモリ(ROM)、コンパクトディスクROM(CD−ROM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、デジタル多用途ディスク(DVD)、フラッシュメモリなどのうちの1つ以上が挙げられ得る。ワークステーション18aはまた、ワークステーションI/Oデバイス112を含むことができる。プロセッサ100、揮発性メモリ104、不揮発性メモリ108、およびワークステーションI/Oデバイス112は、アドレス/データバス116を介して相互接続されてもよい。ワークステーション18aはまた、少なくとも1つの表示デバイス120と、少なくとも1つのユーザ入力デバイス124とを含むことができ、これらは、例えば、キーボード、キーパッド、マウス、トラックボール、タッチスクリーン、ライトペンなどのうちの1つ以上であってもよい。いくつかの実施形態では、揮発性メモリ104、不揮発性メモリ108、およびワークステーションI/Oデバイス112のうちの1つ以上は、アドレス/データバス116(図示せず)とは異なるバスを介してプロセッサ100に連結されてもよく、またはプロセッサ100に直接連結されてもよい。
表示デバイス120およびユーザ入力デバイス124は、ワークステーションI/Oデバイス112と連結される。加えて、ワークステーション18aは、ワークステーションI/Oデバイス112を介してネットワーク30に連結される。ワークステーションI/Oデバイス112は、1つのデバイスとして図2に示されるが、それは、いくつかのデバイスを含むことができる。加えて、いくつかの実施形態では、表示デバイス120およびユーザ入力デバイス124のうちの1つ以上は、アドレス/データバス116またはプロセッサ100に直接連結されてもよい。
ここで図1および2を参照すると、制御ノード12、16のうちの1つ以上と関連付けられたプロセス制御構成アプリケーションは、ワークステーション18aおよび20aのうちの1つ以上に記憶され、それらによって実行されてもよい。例えば、プロセス制御構成アプリケーションは、不揮発性メモリ108および/または揮発性メモリ104上に記憶され、プロセッサ100によって実行され得る。しかしながら、必要に応じて、このアプリケーションは、プロセスプラント10と関連付けられた他のコンピュータ内に記憶され、実行され得る。一般的に言えば、プロセス制御構成アプリケーションは、プログラマがコントローラ12a、16a、I/Oデバイス24、および/またはフィールドデバイス22、23によって実装されるように、制御ルーチン、制御モジュール、機能ブロック、プログラム、論理などを生成および構成することを可能にする。次に、これらの制御ルーチン、制御モジュール、機能ブロック、プログラム、論理などは、ネットワーク30を介してコントローラ12a、16a、I/Oデバイス24、および/またはフィールドデバイス22、23のうちの適切なものにダウンロードされてもよい。
同様に、安全システム14と関連付けられた安全システム構成アプリケーションは、ワークステーション18aおよび20aのうちの1つ以上の上に記憶され、それらによって実行されてもよい。例えば、安全システム構成アプリケーションは、不揮発性メモリ108および/または揮発性メモリ104上に記憶され、プロセッサ100によって実行され得る。しかしながら、必要に応じて、このアプリケーションは、プロセスプラント10と関連付けられた他のコンピュータ内に記憶され、実行され得る。一般的に言えば、安全システム構成アプリケーションは、プログラマがコントローラ12a、16a、ロジックソルバ50、および/またはデバイス60、62によって実装されるように、制御ルーチン、制御モジュール、機能ブロック、プログラム、論理などを生成および構成することを可能にする。次に、これらの制御ルーチン、制御モジュール、機能ブロック、プログラム、論理などは、ネットワーク30を介してコントローラ12a、16a、ロジックソルバ50、および/またはデバイス60、62のうちの適切なものにダウンロードされてもよい。
状態マシン機能ブロック
制御システムまたは安全システム構成アプリケーションは、機能ブロックのプログラミングパラダイムを使用して制御モジュールおよび/または制御ルーチンをプログラムすることを可能にすることができる。図3は、制御モジュール154を描写するディスプレイ150の一例を示す。ディスプレイ150は、構成アプリケーションと関連付けられたユーザインターフェースの一部であってもよく、ディスプレイ150は、例えば、ワークステーション18aの表示デバイス120を介して、プログラマに提示されてもよい。ディスプレイ150は、プロセスプラントの動作中の実装のために、ネットワーク30を介してコントローラ12a、16a、I/Oデバイス24、ロジックソルバ50、および/またはフィールドデバイス22、23、60、62のうちの適切なものに生成され、ダウンロードされ得る通信可能に相互接続された機能ブロックのセットを有する制御モジュール154を描写する。図3に示されるように、制御モジュール154は、状態マシン機能ブロック(SMFB)160と、複数のアナログ入力(AI)およびデジタル入力(DI)機能ブロックと、複数のアナログ出力(AO)およびデジタル出力(DO)機能ブロックと、他の機能ブロック(FB)とを含む。SMFB160は、例えば、DI機能ブロックまたは他のFBであり得る機能ブロック114と通信可能に相互接続された入力を有する。SMFB160はまた、例えば、DO機能ブロックまたは他のFBであり得る機能ブロック118に接続された出力を有する。制御モジュール154は、制御することができるか、または制御システム、安全システムなどの一部として、スイッチ、バルブなどのデバイスをともに制御する複数の制御モジュールのうちの1つであってもよい。当然のことながら、制御モジュール154は、SMFBを用いる制御モジュールの一例である。一般に、制御モジュールは、任意の所望の様式で任意の数のSMFBと通信可能に連結された任意のタイプの機能ブロックを含むように任意の所望の様式でプログラムされてもよく、任意の所望の機能を実行するため、任意の所望の、または有用な様式で構成されてもよい。例えば、Fieldbusネットワークで使用される場合、制御モジュールは、任意のFieldbusタイプの機能ブロックを含むことができる。
いくつかの実施形態では、SMFB160への入力の1つ以上は、機能ブロック以外から受信されてもよい。例えば、SMFB160への入力の1つ以上は、例としてオペレータインターフェースを介してオペレータからの入力を受信するように通信可能に連結されてもよい。例えば、ノード18または20などのノード上に実装されたオペレータインターフェースを使用するオペレータは、SMFB160に入力を提供することができる。
SMFBは、状態マシンを実装する機能ブロックであってもよい。いくつかの実施形態では、状態マシンは、複数の状態のうちの1つの中にあり得るエンティティ(例えば、プロセッサによって実装されたデバイス、ソフトウェアなど)を含むことができる。状態マシンは、状態マシンへの特定の入力が生じる場合に1つの状態からもう1つの状態に遷移することができる。SMFBは、状態マシンの現在の状態に基づいている出力を提供することができる。ほんの一例として、SMFBは、状態マシンの現在の状態を示す1つ以上の出力を提供することができる。より一般的に、状態マシンは、所定の時間におけるエンティティ(例えば、プロセッサによって実装されたデバイス、ソフトウェアなど)またはいくつかの他のエンティティ(例えば、プロセスプラント、プロセスプラントのサブパート、プロセスプラントの構成要素など)の状態を記憶するエンティティを含むことができ、状態マシンは、状態マシンへの入力に基づいて、状態を変化させ、および/または動作もしくは出力を生じさせ得る。
構成アプリケーションと関連付けられたユーザインターフェースを使用して、プログラマは、制御モジュール154などの制御モジュールを設計することができる。ほんの一例として、ユーザインターフェースは、例えば、複数の規格またはカスタマイズされた機能ブロックのステンシルを含むステンシルまたはパレットから所望の機能ブロックを選択する機構をプログラマに提供することができる。加えて、ユーザインターフェースは、プログラマが機能ブロックの描写を挿入または配置し得る回路図を提供することができる。プログラマは、例えば、マウス、トラックボール、キーボード、キーパッド、タッチスクリーンなどを使用して、ステンシルまたはパレットから機能ブロックを選択肢、次いで機能ブロックを回路図上に「ドラッグアンドドロップ」を選択することができる。加えて、プログラマは、例えば、マウス、トラックボール、キーボード、キーパッド、タッチスクリーンなどを使用して、例えば、1つの機能ブロックの出力ともう1つの機能ブロックの入力との間に線を引くことによって機能ブロックを通信可能に連結することができる。
構成されると、制御モジュール154は、例えば、コントローラ12a、14a、16a、I/Oデバイス24、ロジックソルバ50、およびデバイス22、23、60、62のうちの1つ以上によって実装されてもよい。
図4は、例えば、図3のディスプレイ150などのユーザインターフェースディスプレイ上に表示され得るSMFB200の表現の一例である。SMFB200の表現は、SMFB200が7つのデータ入力(IN_D1〜IN_D7)と、9つのデータ出力(TRANS_OUT、TRANS_IN、STATE、およびOUT_D1〜OUT_D6)とを含むことを示す。データ入力は一般的に、プロセスプラント内の条件を示し、オペレータコマンドを示すなどであってもよく、それは、SMFB200によって実装された状態マシンに状態を変化させることができる。データ出力は、SMFB200に対応する状態マシンの状態ならびに状態に基づいて実行される機能または動作に対応する構成項目のうちの1つ以上の指標を含むことができる。例えば、STATE出力は、状態マシンの状態(例えば、状態1、状態2、状態3など)の指標であってもよい。出力OUT_D1は、状態マシンが状態「状態1」であるかどうかの指標であってもよい。同様に、出力OUT_D2、OUT_D3、〜OUT_D6は、状態マシンが状態「状態2」、「状態3」、〜「状態6」でそれぞれあるかどうかの指標であってもよい。加えて、出力TRANS_OUTは、与えられた状態の一つから遷移する状態マシンに従って実行される構成項目を示すことができ、出力TRANS_INは、与えられた状態に遷移する状態マシンに従って実行される構成項目を示すことができる。いくつかの実施形態では、SMFB200は、複数のTRANS_OUT出力および複数のTRANS_IN出力を含むことができる。例えば、SMFB200は、状態の数に等しいいくつかのTRANS_OUT出力およびいくつかのTRANS_IN出力を含むことができる(すなわち、1つの状態につき1つのTRANS_OUT出力および1つのTRANS_IN出力)。SMFB200は、任意の数のTRANS_OUTおよびTRANS_IN出力を含み得ることを理解されるべきである。
SMFB200はまた、ENABLE入力、TRK_VAL入力、およびTRK_IN_D入力など、データ入力以外の他の入力を含むことができる。例えば、SMFB200は、別のSMFBからの入力を有することができる。さらに、SMFB200はまた、状態またはそれと関連付けられた構成項目を示す出力以外の他の出力を含むことができる。ENABLE、TRK_VAL、およびTRK_IN_D入力は、より詳細に後述される。7つのデータ入力および9つのデータ出力を有するSMFB200は図4に示されるが、他の実施形態は、任意の所望の数のデータ入力およびデータ出力を含むことができる。SMFB200のデータ入力の数およびデータ出力の数は、構成可能であってもよく、または構成不可であってもよい。一実施形態では、出力OUT_Dxの数は一般的に、SMFB200によって実装された状態マシンの可能な状態の数に対応し、可能な状態の数は構成可能であってもよい。しかしながら、出力OUT_D1、OUT_D2などの数は、状態マシンの可能な状態の数に対応する必要はない。例えば、出力OUT_D1、OUT_D2などの数より少ない状態がある場合、余分な出力は使用されないままであり得る。
構成プログラムと関連付けられたユーザインターフェースを使用して、プログラマは、SMFB200などの1つ以上の機能ブロックを構成することができる。SMFBを構成することに関して、プログラマは、いくつかの可能な状態、いかに入力が状態マシンを状態間で遷移させるか、および状態マシンが状態間で遷移する前、その間、またはその後に実行する任意の機能もしくは動作を指定することができる。プログラマがSMFB200を構成することを可能にするために、構成アプリケーションは、機能ブロックと関連付けられた構成ウィンドウ、スクリーンなど、ユーザインターフェース機構を表示デバイス120上に表示することができる。
図5は、図4のSMFB200など、SMFBを少なくとも一部構成するために使用され得るユーザインターフェース機構の一例である。ユーザインターフェース機構は、SMFBと関連付けられた構成ウィンドウ、スクリーンなどの一部として表示され得る表またはマトリクス300(以下、「マトリクス300」と称される)を含む。マトリクス300は、行および列で配列された複数のセル(302、303、304)を含む。したがって、列は、各グループが状態マシンの複数の可能な状態のうちの1つに対応することができる3つのグループに配列される。具体的には、各グループにおける中央の列は、従来の状態図に含まれるように、状態マシンの特定の状態に対応する。例えば、図5に示されるように、「1」とラベル付けされた状態は、「作動中」状態であり、「2」とラベル付けされた状態は、「リセット待ち」状態であり、以下同様である。実施形態によれば、各グループにおける左の列は、次の状態に遷移(「入遷移動作」)するときに実行する状態マシンに対する構成項目に対応し、各グループにおける右の列は、現在の状態から遷移(「出遷移動作」)するときに実行する状態マシンに対する構成項目に対応する。さらに、各行は、状態マシンへの入力(例えば、「初期」「リセット許容」など)に対応する。したがって、セル302の各々(各行および列のグループに対する反復)が入遷移動作を指定し、セル303の各々(各行および列のグループに対する反復)が入力/状態対を指定し、セル304の各々(各行および列のグループに対する反復)が出遷移動作を指定する。セル302、303、304のグループは、単一のセルにグループ化され得ることを理解されるべきである。さらに、セル302、303、304の各々は、特定の状態に対応するセルに対するサブセルであり得ることを理解されるべきである。例示的なマトリクス300は、7つの入力および状態の6つのグループに対する行を含むが、状態および出力の異なる数のグループを有する類似のマトリクスは、異なる数の入力および状態のグループを有するSMFBに使用されてもよい。状態の入力およびグループの数は構成可能であってもよい。他の例では、行は、状態マシンの複数の可能な状態(ならびに入遷移動作およびそれと関連付けられた出遷移動作)のうちの1つに対応してもよく、各列は、状態マシンへの入力に対応する。
動作中、状態マシンは、それが現在の状態であるときに状態マシン上にアサートされた入力に応じて現在の状態から次の状態に遷移することができる。例えば、マトリクス300は、状態マシンが「通常動作」状態(現在の状態)にあり、かつ「作動要求」入力がアサートされる場合に、状態マシンが「作動中」状態(次の状態)に遷移するべきであることを指定することができる。いくつかの場合では、ある特定の状態は、ある特定の入力に対して次の状態遷移を指定しない場合がある。
実施形態によれば、各グループにおける右の列によって指定された出遷移動作は、SMFBが現在の状態から外へ遷移することに従って実行する1つ以上の構成項目であってもよく、各グループにおける左の列によって指定された入遷移動作は、SMFBが次の状態への遷移に従って実行する1つ以上の構成項目であってもよい。いくつかの実施形態では、1つ以上の構成項目は、実行する動作を定義する構造化テキストまたは上位レベルのコンピュータ構築物(例えば、C、C++、JAVAなど)の形態の論理であり得る。1つ以上の構成項目は、任意のタイプのコードまたは実行可能な論理の形態であり得ることを理解されるべきである。1つ以上の構成項目は、現在の状態から次の状態への遷移でSMFBが実行する単一の「ワンショット」項目であり得、それによって、場合によっては、その1つ以上の構成項目は、次の状態が達成されると動作し続けない。SMFBは最初に、SMFBがどこに遷移しているかにかかわらず、出遷移動作を実行する(すなわち、現在の状態を離れることがSMFBに出遷移動作を実行させる)ことができ、SMFBは、SMFBがどこから遷移しているかにかかわらず、次の状態に安定する前に入遷移動作を実行する(すなわち、次の状態に入ることがSMFBに入遷移動作を実行させる)ことできる。いくつかの場合では、構成項目(すなわち、入遷移および出遷移動作)は、SMFBの外側の他の構成要素またはエンティティ(例えば、別の機能ブロック)に作用することができる。入遷移動作、出遷移動作、および状態変化と関連付けられた他の時間的な構成要素が想起されることを理解されるべきである。
図4を参照すると、マトリクス300の入力「1」〜「7」は、SMFB200の入力IN_D1〜IN_D7にそれぞれ対応する。同様に、マトリクス300の状態「1」〜「6」は、SMFB200の出力OUT_D1〜OUT_D6にそれぞれ対応する。加えて、この例では、プログラマは、各可能な状態および/または入力の各々をラベル付けすることができる場合がある。例えば、図5では、「状態1」は、「作動中」とラベル付けされ、入力1は、「初期」とラベル付けされる。入力および/または状態をラベル付けすることは、状態マシンの動作を理解することを容易にするのに役立つことができる。
プログラマは、構成情報をセル302、303、304に入力することによってSMFB200を構成することができる。具体的には、入力/状態対に対応する特定のセルの場合、プログラマは、SMFB200が遷移するべきである状態を示す特定のセルに構成データを入力することができる。さらに、入遷移動作に対応する特定のセルの場合、プログラマは、次の状態に遷移するときに実行するSMFB200に対する動作を示す特定のセルに構成データを入力することができる。その上さらに、出遷移動作に対応する特定のセルの場合、プログラマは、現在の状態から遷移するときに実行するためにSMFB200に対する動作を示す特定のセルに構成データを入力することができる。
SMFB200は、状態マシンが現在の状態から遷移した後に機能を実行するために対応する出遷移構成データに基づいてTRANS_OUT出力をアサートすることができる。いくつかの実施形態では、SMFB200は、状態マシンが現在の状態から遷移する前にTRANS_OUT出力をアサートすることができる。SMFB200は、状態マシンが現在の状態から遷移した後に(または別の方法で現在の状態から遷移する前に)、かつ状態マシンが次の状態に落ち着く前に、対応する入遷移構成データに基づいてTRANS_IN出力をアサートすることができる。いくつかの実施形態では、SMFB200は、状態マシンが次の状態に落ち着いた後にTRANS_IN出力をアサートすることができる。いくつかの場合では、SMFB200は、さらなるSMFBまたはプロセス制御デバイスへの入力として、出遷移動作または入遷移動作に対応する構成項目を提供することにより、SMFB200が現在の状態から遷移しているか、または次の状態に遷移しているかのいずれかである間に、さらなるSMFBまたはプロセス制御デバイスに機能を実行させることができる。したがって、第1のSMFBのTRANS_OUT出力の起動は、第2のSMFBを次の状態に遷移させることができる。第1のSMFBが蒸気ボイラを制御するプロセスプラントでは、停止状態から点火状態に遷移する第1のSMFBを示す第1のSMFBのTRANS_OUT出力は、第1のSMFBがボイラを点火する前に一時期、ボイラ排出ファンを制御する第2のSMFBをファン停止状態からファン運転状態に遷移させることができる。したがって、ボイラ内の爆発性ガスのあらゆる蓄積は、ボイラが点火される前に排出される。
図6は、セルのうちのいくつかに入力された構成データを有するマトリクス300の一例である。例えば、セル303Aは、状態マシンが「作動中」状態にあり、かつ「リセット許容」入力がアサートされるときに状態マシンが遷移するべき次の状態を示す構成データを含む。具体的には、セル303Aの構成データは、状態マシンが「リセット準備完了」状態に遷移するべきであることを示す。さらに、セル302Aは、SMFBが「リセット準備完了」状態に遷移するときに実行するべきである「動作A」に対応する構成データを含み、セル304Aは、SMFBが「作動中」状態から遷移するときに実行するべきである「動作B」に対応する構成データを含む。同様に、セル303Bは、状態マシンが「リセット」入力がアサートされるときに「開始待ち」状態に(「リセット準備完了」から)遷移するべきであることを示す構成データを含み、セル302Bは、状態マシンが「開始待ち」状態に遷移するときに実行するべきである「動作C」に対応する構成データを含み、セル304Bは、状態マシンが「リセット準備完了」状態から遷移するときに実行するべきである「動作D」に対応する構成データを含む。動作A、動作B、動作C、動作Dなどは、本明細書で考察されるように、SMFBまたは他の構成要素によって実行されたあらゆる機能または動作に対応することができることを理解されるべきである。
加えて、特定のセルまたはセルのグループは、出遷移動作のない入遷移動作を含み、または逆も同様である。例えば、セル303Cは、「作動要求」入力がアサートされるときに状態マシンが(「開始待ち」から)「作動中」状態に遷移するべきであることを示す構成データを含み、セル302Cは、状態マシンが「作動中」状態に遷移するときに実行するべきである「動作E」に対応する構成データを含む。しかしながら、セル303Cは、対応するTRANS_OUT構成項目を有しない。したがって、状態マシンが「開始待ち」状態にあり、かつ「作動要求」入力がアサートされる場合、SMFBは、「開始待ち」から「作動中」に遷移することに従って「動作E」を実行することができる。同様に、入力/状態対(セル303D内のものなど)」は、対応するTRANS_INまたはTRANS_OUT構成項目のいずれも有しなくてもよい。したがって、状態マシンは、対応するTRANS_INまたはTRANS_OUT構成項目のいずれかを実行せずに現在の状態から次の状態に遷移することができる。
いくつかの実施形態では、プログラマが構成データをセルに入力しない場合、その特定の状態および入力に対して状態遷移が生じるべきではないことを想定され得る。例えば、セル302E、303E、および304Eは、状態マシンが「作動中」状態にあり、かつ「開始回復」入力がアサートされるときに示す構成データを含まず、状態マシンは、「作動中」状態にとどまり、あらゆる動作を実行するべきではない。他の実施形態では、プログラマは、状態マシンがその特定の状態/入力の組み合わせに対する状態を変化させるべきではないことを示す構成データを入力することができる。
プログラマは、当業者に周知の技術を含む多様な技術のいずれかを使用して構成データをマトリクス300に入力することができる。例えば、構成データをセルに入力するために、プログラマは、マウス、トラックボール、タッチスクリーンなどを使用してセルを選択することができる。次に、ユーザは、例えば、キーボードまたは他の入力デバイスを介して構成データを直接セルに入力することができる。あるいは、プログラマは、セルを選択し、次いで「編集」「修正」など、プルダウンメニューから選択を選択するか、または「編集」ボタン、「修正」ボタンなどを選択することができる。次に、ユーザインターフェースは、プルダウンメニュー、ウィンドウ、表示スクリーンなどを介して状態のリストをプログラマに表示することができる。任意に、状態のリストは、セルが対応する状態または「遷移なし」選択を含むことができる。次に、プログラマは、例えば、キーボード、マウス、トラックボール、タッチスクリーンなどを使用して状態のうちの1つを選択することができる。セルが対応する状態または「遷移なし」選択をプログラマが選択する場合、構成データは、状態および入力の組み合わせに対して、遷移を生じるべきではないことを示すであろう。
マトリクス300などのマトリクスを含むユーザインターフェースを使用してSMFBを構成することは、例えば、シーケンシャル機能チャートまたはC++などのプログラミング言語を使用して比較されるように、状態マシンをより容易に実装させることができる。例えば、C++プログラムを使用して状態マシンを実装することは、最初に関連する遷移動作で状態遷移図を作成し、次いでその図を実装するプログラムを記述することを含むであろう。次に、プログラムは、プロセス制御システムに実装される前に場合によっては、テストされ、デバッグされる必要があるであろう。しかしながら、SMFBがマトリクス300などのマトリクスを使用して構成されると、プログラムの記述は必要とされない。どちらかと言えば、「プログラミング」は、状態およびそれと関連付けられた遷移動作でマトリクスに記入することを単純に含むであろう。加えて、ソフトウェアコードが記述される必要がないため、コードのデバッグおよびテストは必要とされない。どちらかと言えば、テストは、SMFBが正しい次の状態に進み、所望の遷移動作を実行することを検証するために状態、入遷移動作、出遷移動作、および入力の様々な組み合わせをテストすることを単純に含むことができる。いくつかの場合では、SMFBの機能は、マトリクス300を単純に調査することによって容易に理解され得る。したがって、構成されたSMFBの機能は、例えば、マトリクスの表現を印刷することによって容易に文書化され得る。
マトリクス300などのマトリクスに従って構成されたSMFBは、例えば、安全システムまたはプロセス制御システムに使用され得る。ほんの一例として、マトリクス300などのマトリクスに従って構成されたSMFBは、プロセスプラント内のバーナーを管理するための安全システムの一部として使用され得る。例えば、SMFBは、「点火」、「ガス遮断」、および「排気」などの状態を含み得る。バーナーを始動すると、SMFBは、最初に排気状態に進んで、バーナー内のガスを排気させ得る。次いで、SMFBは、点火状態に進んで、バーナーを発火させ得る。また、バーナーの炎が消えた場合、SMFBは、ガス遮断状態に進んで、バーナーへのガスを遮断し得る。次いで、SMFBは、排気状態に進み得る。加えて、SMFBは、安全システムを容易にする入遷移動作および出遷移動作を含むことができる。例えば、SMFBは、排気状態に遷移することと関連付けられた入遷移動作を含むことができ、それによって入遷移動作は、バーナーが排気されていることをオペレータに通知するオペレータ指標を起動する。加えて、SMFBは、排気状態から遷移することと関連付けられた出遷移動作を含むことができ、それによって出遷移動作は、バーナーが適切に排気されていることをオペレータに通知する。あるいは、第1のSMFB(例えば、ボイラ制御SMFB)のTRANS_OUTまたはTRANS_IN出力は、第1のSMFBが現在の状態から遷移し、および/または次の状態に遷移する間に、他のSMFBまたはプロセス制御デバイスに機能を実行させるために、別のSMFBへの入力(例えば、ボイラ換気システム制御SMFB)または別のプロセス制御デバイスとして提供されてもよい。
マトリクス300などのマトリクスに従って構成されたSMFBは、コントローラ12a、16a、I/Oデバイス24、ロジックソルバ50、およびデバイス22、23、60、62のうちの1つ以上によって実装され得る。いくつかの実施形態では、SMFBは、ソフトウェアに従って構成されたプロセッサによって、プログラマブル論理デバイス、例えば、ゲートアレイ、標準セル、フィールドプログラマブルゲートアレイ(FPGA)、PROM、EPROM、EEPROM、プログラマブルアレイ論理(PAL)、プログラマブル論理アレイ(PLA)などのうちの1つ以上を含むデバイスによって実装されてもよい。
SMFBと関連付けられた構成データ(例えば、マトリクス300などのマトリクスに入力されたデータ、および任意に他の構成データ)は、ハードディスク、RAM、ROM、CD−ROM、EPROM、EEPROM、DVD、フラッシュメモリなどのコンピュータ可読媒体、および/またはプロセッサと関連付けられたメモリ上に記憶されてもよい。
図7は、構成されたSMFBの動作の例示的な方法350のフロー図である。方法350は、例えば、定期的および/またはトリガイベントに応答して実装されてもよい。ブロック354では、SMFBは、そのデータ入力(複数可)を受信する。図4を参照すると、例えば、SMFBは、入力IN_D1〜IN_D7のいずれかを受信する。ブロック356では、SMFBは、現在の状態および/またはデータ入力(複数可)に基づいて適切な出遷移動作を実行する。具体的には、SMFBは、構成データベース内に記憶された関連する出遷移構成データを使用して出遷移動作を実行することができる。ブロック357では、SMFBは、次の状態に基づいて(現在の状態およびデータ入力(複数可)によって示されるように)適切な入遷移動作を実行する。具体的には、SMFBは、構成データベース内に記憶された関連する入遷移構成データを使用して入遷移動作を実行することができる。
ブロック358では、SMFBは、必要である場合、データ入力(複数可)、SMFBの現在の状態、および構成データベース内に記憶された構成データに基づいてその状態マシンの状態を変化させる。例えば、SMFBは、現在の状態を決定された次の状態とする。構成データベースのデータは、マトリクス300などのマトリクスを介して入力されたデータを含むことができる。状態は、同様に他の因子に基づいて変化させてもよい。例えば、より詳細に後述されるように、SMFBは、データ入力(複数可)のうちの1つ以上を無視するように構成されてもよい。したがって、状態を変化させることはまた、存在する場合、どのデータ入力(複数可)が無視されるかを示す構成データに基づいてもよい。別の例として、2つ以上のデータ入力は、状態変化が現在の状態から2つ以上の次の状態に生じるべきであることを示すことができる。したがって、SMFBは、データ入力を優先付けする優先データに基づいて、データ入力のうちの1つを選択して、SMFBがとり得る次の状態のうちのどれに遷移するべきか決定することができる。さらに別の例として、いくつかの実施形態では、SMFBに対するデータ入力(複数可)は、状態(例えば、良好(GOOD)状態または不良(BAD)状態)を含むことができる。したがって、状態を変化させることはまた、例えば、BAD状態を有する入力がいかに処理されるべきであるかを示す構成データに基づいてもよい。
次に、ブロック366では、SMFBは、状態マシンの現在の状態に基づいてそのデータ出力を設定することができる。例えば、SMFBは、STATE出力(ならびに適切なOUT_Dx)を状態マシンの現在の状態に設定することができる。さらに、SMFBは、現在の状態から遷移する状態マシンに従って実行される出遷移動作を示すTRANS_OUT出力を設定することができ、状態マシンが次の状態に遷移することに従って実行される入遷移動作を示すTRANS_IN出力を設定することができる。
再び図4を参照すると、SMFBは、「ENABLE」入力を任意に含むことができる。一実施形態では、ENABLE入力がデアサートされる場合、SMFBは、動作不能状態(例えば、状態0)に強制されてもよく、ENABLE入力がアサートされるまでその状態にとどまるべきである。ENABLE入力がアサートされると、SMFBは、SMFBが図5のマトリクス300などの構成マトリクスに入力された構成データに従って他の状態に遷移し得る後、初期の状態(例えば、状態1)に強制されてもよい。
SMFBは、1つの入力または状態マシンを所望の状態に強制する入力をさらに含むことができる。例えば、SMFB200は、TRK_IN_D入力と、TRK_VAL入力とを含む。TRK_IN_D入力がアサートされると、SMFBは、TRK_VAL入力によって指定された状態に強制されてもよい。例えば、TRK_VAL入力が「6」であり、TRK_IN_D入力がアサートされる場合、SMFBは、状態「6」に強制されてもよい。
SMFBは任意に、さらなる方法で構成されてもよい。例えば、SMFBは、存在する場合、入力IN_D1、IN_D2などのうちの1つ以上が無視されるべきであるか示す入力(または遷移)マスクを含むことができる。また、SMFBは、複数の状態を有し得る入力に応答するように構成されてもよい。例えば、SMFBへの入力のうちの1つまたはすべては、「良好」状態または「不良」状態を有することができ、SMFBは、入力の状態に応じて異なる応答をするように構成されてもよい。特定の一例では、SMFBは、「BAD」入力を無視し、それが「BAD」の場合であっても入力を使用し、または入力の最後の「GOOD」値を使用するように構成されてもよい。さらに、SMFBは、真であるとき、SMFBを「1」の状態に強制するリセットパラメータを含むことができる。
上述される様々な構成データおよび次の状態の構成データは、同じコンピュータ可読媒体または異なるコンピュータ可読媒体上に記憶され得る。
図8は、SMFB400の一例のブロック図である。SMFB400は、入力IN_D1、IN_D2などとSMFB400の現在の状態とに少なくとも一部基づいて次の状態を決定する論理404を含む。具体的には、論理404は、次の状態の構成データベース406内に記憶された次の状態の構成データにアクセスする。論理404はまた、SMFB400によって実行される入遷移動作および出遷移動作を決定する。入遷移動作は、出遷移構成データベース405からの入遷移構成データに少なくとも一部基づいてもよい。出遷移動作は、出遷移構成データベース407からの出遷移構成データに少なくとも一部基づいてもよい。本明細書で考察されるような実施形態によれば、入遷移構成データは、SMFBが次の状態に落ち着く前にSMFBが実行する機能を定義することができ出遷移構成データは、SMFBが現在の状態から遷移する前に(または別の方法で次の状態に遷移する前に)実行する機能を定義することができる。データベース405、406、407は、本明細書に記載されるようなコンピュータ可読媒体上に記憶されてもよい。次の状態、入遷移構成データ、および出遷移構成データは、図5のマトリクス300などのマトリクスに入力された構成データを含むことができる。様々な構成要素、論理、またはモジュールが入遷移構成データおよび/または出遷移構成データを実行し得ることを理解されるべきである。例えば、SMFB400は、入遷移構成データおよび/または出遷移構成データを実行することができる。さらなる例として、SMFB400は、別個の構成要素またはモジュールにコマンドを送信して、入遷移構成データおよび/または出遷移構成データを実行することができる。
いくつかの実施形態によれば、論理404の出力は、切り替え論理408に提供される。切り替え論理408は、TRK_IN_D入力に基づいて論理404の出力と入力TRK_VALとの間で選択する。例えば、TRK_IN_D入力がアサートされる場合、切り替え論理408は、TRK_VAL入力を選択することができる。そうでなければ、切り替え論理408は、論理404の出力を選択することができる。
切り替え論理408の出力は、切り替え論理412に提供され、これは、イネーブルおよびリセット論理416の出力に基づいて、切り替え論理408の出力と値0と値1との間で選択する。イネーブルおよびリセット論理416の出力は、状態が動作不能状態(状態0)または初期状態(状態1)に強制されるべきであるかを示す。イネーブルおよびリセット論理416は、ENABLE入力に基づいてこの出力を生成する。例えば、ENABLE入力がアサート停止される場合、イネーブルおよびリセット論理416の出力は、状態が0に強制されるべきであることを示すことができる。ENABLE入力がアサート停止からアサートに変化させる場合、イネーブルおよびリセット論理416の出力は、状態が1に強制されるべきであることを示すことができる。ENABLEがアサートされ、以前にアサートされた場合、イネーブルおよびリセット論理416の出力は、状態が0または1に強制されるべきではないことを示すことができる。
切り替え論理412の出力は、SMFB400の現在の状態であり、SMFB400の出力として提供されてもよい。切り替え論理412の出力はまた、SMFBの現在の状態に対応する適切な出力OUT_D1、OUT_D2、TRANS_IN、TRANS_OUTなどを設定する論理420に提供されてもよい。図8に描写されるように、論理420は任意に、任意の出力構成データベース458内に記憶された状態/出力構成データにアクセスすることができる。データベース458およびデータベース406は、同じコンピュータ可読媒体または異なるコンピュータ可読媒体上に記憶されてもよい。出力構成データは、本明細書で考察されるように図13のマトリクス700などのマトリクスに入力された構成データを含むことができる。
ブロック404、408、412、416、および420の各々は、1つ以上のハードウェア、ソフトウェア、およびファームウェアによって実装されてもよい。加えて、ブロックのうちのいくつかは、組み合わされ、並べ替えられ、修正され、または省略されてもよく、さらなるブロックが追加されてもよい。単に一例として、ブロック408および412は、単一ブロックに組み合わされ得る。
図9は、例示的なSMFB400の動作の方法450のフロー図である。図9の方法450は、例えば、定期的および/またはトリガイベントの際に実装されてもよい。ブロック454では、SMFB400のデータ入力が処理される。例えば、データ入力IN_D1、IN_D2などのいずれかがアサートされたか決定されてもよい。別の例として、データ入力のうちの1つ以上が「BAD」状態を有する場合、それは「BAD」入力(複数可)をいかに処理するべきか決定されてもよい。ブロック458では、SMFB400のENABLE入力が処理される。例えば、それは、ENABLE入力がアサートされるか、および/またはそれが以前に処理された後にそれが変化されたか決定されてもよい。
ブロック459では、SMFBは、現在の状態および/またはデータ入力に基づいて、例えば、構成データベース内に記憶された関連する出遷移構成データにアクセスすることによって、適切な出遷移動作を実行する。ブロック460では、SMFBは、次の状態および/またはデータ入力に基づいて、例えば、構成データベース内に記憶された関連する入遷移構成データにアクセスすることによって、適切な入遷移動作を実行する。例えば、SMFBは、プロセスプラント内の1つの設備を制御するように構成されてもよい。この1つの設備が遮断状態(すなわち、現在の状態)にあるとき、次の状態の構成データは、設備起動入力が作動させられ、1つの設備が動作状態(すなわち、次の状態)に遷移するときに実行されてもよい。遮断状態から実際に遷移する前に、SMFBは、1つの設備が起動しようとしていることを示す警報を作動させるために出遷移構成データを実行することができる。加えて、動作状態に落ち着く前に、SMFBは、警報を止めさせるために入遷移構成データを実行することができる。
さらなる例として、SMFBは、倉庫内の複数の暖房設備を制御するように構成されてもよい。プロセスプラントが加熱状態(すなわち、現在の状態)にあるとき、換気状態への遷移に対応する換気装置を開始するために入力がアサートされ得る。加熱状態からの遷移中、SMFBは、加熱源がより多くの熱を生成するのを防ぐために加熱炉または他の加熱源を自動的にロックすることができる。したがって、加熱炉は、換気状態への遷移後、動作することができない。さらに、換気状態に遷移する前、SMFBは、対応するマシンの排気に役立つために換気装置と関連付けられた一連の換気を自動的に作動させることができる。
ブロック462では、SMFB400の状態は、必要である場合、変化されてもよい。加えて、SMFB400の1つ以上のデータ出力は、必要である場合、変化または設定されてもよい。例えば、それは、SMFB400の状態が変化されるべきであることをデータ入力の変化が示すことを決定されてもよい。加えて、状態が変化される場合、それは、SMFB400のTRANS_INおよびTRANS_OUT出力などの1つ以上のデータ出力が変化されるべきであることであってもよい。
少なくとも一部、方法450を実装するために使用され得るいくつかの例示的なルーチンが記載される。例えば、図10は、SMFBへのデータ入力IN_D1、IN_D2などを処理するために使用され得る例示的なルーチン500のフロー図である。ブロック504では、変数zは、1に設定される。ブロック508では、データ入力IN_Dzの状態が「BAD」であるか決定される。状態が不良ではない場合、変数TRANSITIONSのビット数zは、データ入力IN_Dzの値に設定される。状態が不良である場合、データ入力がいかに処理されるべきであるかを決定されてもよい。一例では、SMFBは、BAD入力がとにかく使用されてもよく(ALWAYS_USE)、それが無視されてもよく(IGNORE_IF_BAD)、または最後に「GOOD」であった入力値が使用されてもよい(USE_LAST_GOOD)という3つの手法のうちの1つで「BAD」入力を処理することができる。したがって、ブロック516では、SMFBが最後の「GOOD」データ入力を使用するべきであるか決定されてもよい。SMFBが最後の「GOOD」値を使用するべきである場合、ブロック512は省略されてもよい。そうでなければ、SMFBがBAD入力値を無視するべきであるかブロック520で決定されてもよい。SMFBがBAD値を無視しない場合、ルーチンは、ブロック512に進むことができる。SMFBがBAD値を無視する場合、ルーチンは、ブロック524に進むことができる。ブロック524では、変数TRANSITIONSのビット数「z」は、0に設定される。
ブロック528では、変数zは増やされ、ブロック532では、変数zがSMFBのデータ入力の数より大きいか決定されてもよい。zがSMFBへのデータ入力の数より大きくない場合、ルーチンは、ブロック508に戻って、次のデータ入力を処理することができる。そうでなければ、ルーチンは終了することができる。
図11は、SMFBへのENABLE入力を処理するために使用され得る例示的なルーチン545のフロー図である。ブロック550では、変数LASTENABLEの値がENABLE入力の値と同じであるか決定されてもよい。LASTENABLE変数は一般的に、前回のENABLEの値(例えば、ルーチン545の前回動作中のENABLE変数の値)を示す。LASTENABLEおよびENABLEの値が同じである場合、ルーチン545は終了することができる。そうでなければ、ルーチンは、ENABLE入力がアサートされるか決定され得るブロック554に進むことができる。ENABLE入力がアサートされる場合、ブロック558では、変数リセットは、TRUEに設定されてもよい。
ブロック554では、ENABLE入力がアサートされないことを決定される場合、ブロック562では、STATE変数の現在の値に対応する出力OUT_D1、OUT_D2などはアサート停止にされる。次に、ブロック566では、STATE変数は、0に設定される。ブロック558および566の後、ルーチンは、変数LASTENABLEがENABLE入力の値に設定されるブロック570に進むことができる。ブロック570の後、ルーチンは終了することができる。
図12は、SMFBの次の状態を決定し、かつ必要である場合、適切な出力OUT_D1、OUT_D2、TRANS_IN、TRANS_OUTなどを設定するために使用され得る例示的なルーチン600のフロー図である。ブロック604では、ENABLE入力がアサートされるか決定されてもよい。それがアサートされない場合、ルーチンは終了することができる。ENABLE入力がアサートされる場合、ルーチンは、変数NEWSTATEが0に設定されるブロック608に進むことができる。次に、ブロック612では、入力TRK_IN_Dがアサートされるか決定されてもよい。それがアサートされる場合、ルーチンは、NEWSTATE変数が入力TRK_VALの値に設定されるブロック616に進むことができる。
TRK_IN_D入力がアサートされないことをブロック612で決定される場合、ルーチンは、ブロック620に進むことができる。ブロック620では、変数リセットがTRUEであるか決定されてもよい。それがTRUEである場合、ルーチンは、NEWSTATE変数が1に設定され得るブロック624に進むことができる。次に、ブロック626では、リセット変数は、FALSEに設定されてもよい。
変数リセットがTRUEではないブロック620で決定される場合、ルーチンは、ブロック632に進むことができる。ブロック632では、変数TEMPは、TRANSITION_MASK変数、TRANSITIONS変数、および変数STATEによって指示された配列STATECHANGEMASKの要素をビット単位「AND演算」することによって決定されてもよい。TRANSITION_MASK変数は、ある特定の入力IN_Dxが状態変化を生じさせるのを防ぐために使用され得る構成可能な変数であってもよい。例えば、入力IN_D3が状態マシンに状態を変化させるのを防ぐことをプログラマが望む場合、プログラマは、変数TRANSITION_MASKの第3のビットを0に設定することができる。入力D3が状態マシンに状態を変化させるのを可能にすることをプログラマが望む場合、プログラマは、変数TRANSITION_MASKの第3のビットを1に設定することができる。
STATECHANGEMASK配列の各要素は、入力IN_D1、IN_D2などが状態変化を引き起こす状態の対応する1つに対して示す変数であってもよい。具体的には、配列の各要素は、状態マシンの状態のうちの1つに対応することができる。例えば、STATECHANGEMASK[1]が状態1に対応することができ、STATECHANGEMASK[2]が状態2に対応することができ、以下同様である。加えて、各要素の各ビットは、入力IN_D1、IN_D2などのうちの1つに対応することができる。例えば、ビット1がIN_D1に対応することができ、ビット2がIN_D2に対応することができ、以下同様である。図6を参照すると、例えば、マトリクス300の場合、STATECHANGEMASK配列は、6つの要素を有し、要素STATECHANGEMASK[3]は、0×44であろう。
ブロック628の後、ルーチンは、変数TEMPが0であるか決定され得るブロック632に進むことができる。それが0ではない場合、ルーチンは、変数zが0ではない変数TEMPにおける第1のビット(すなわち、最下位ビットから開始する)の数に設定され得るブロック636に進むことができる。実際には、これは、IN_D1が最優先であり、IN_D2が次の最優先であり、IN_D3が次の最優先であり、以下同様であるようにそれらの順に基づいて入力の優先度を設定する。他の実施形態では、他の優先順位付け方式が使用され得る。例えば、プログラマは、入力への優先度を割り当てることを許可され得るか、または異なる優先順位が使用され得る(例えば、IN_D1が最下位優先度であり、IN_D2が次の最下位優先度であり、以下同様である)。優先度は、全体としてまたは各状態にSMFBに設定され得る。次に、ブロック640では、変数NEWSTATEは、行zおよび列STATEで状態遷移マトリクスの値に設定されてもよい。
ブロック616、626、および640の後、ルーチンは、ブロック644に進むことができる。ブロック632では、変数TEMPが0であることを決定される場合、ルーチンはまた、ブロック644に進むことができる。ブロック644では、変数NEWSTATEが0であるか決定されてもよい。それが0である場合、ルーチンは終了することができる。それが0ではない場合、ルーチンは、出遷移動作が実行され得るブロック645に進むことができる。次に、ブロック646では、入遷移動作は実行され得る。ブロック648では、STATE変数に対応する出力OUT_D1、OUT_D2、TRANS_IN、TRANS_OUTなどはアサート停止にされる。アサート停止にされる出力は、STATE変数に対応する必要がないことを理解されるべきである。ブロック652では、変数STATEは、変数NEWSTATEの値に設定される。ブロック656では、STATE変数に対応する出力OUT_D1、OUT_D2、TRANS_IN、TRANS_OUTなどはアサートされ、ルーチンは終了することができる。アサートされる出力は、STATE変数に対応する必要がないことを理解されるべきである。
図9の方法450および図10〜12のルーチンは例示にすぎず、他の例では、ブロックが修正されてもよく、新しいブロックが追加されてもよく、ブロックが並べ替えられてもよく、ブロックが省略されてもよく、および/またはブロックが組み合わされてもよいことを理解されるべきである。図10を参照すると、ほんの一例として、ブロック508、516、520、および524は、「BAD」状態を有する入力の特別な処理が必要とされず、または所望されない場合に省略されてもよい。
別の例として、ブロック636は、変数zが0ではないTEMPにおける最後のビットの数に設定されるように修正され得る。さらに別の例として、ブロック636は、いくつかの優先度データに基づいて0ではないTEMPにおけるビットのうちの1つに対応する数にzを設定するように修正され得る。
再び図4を参照すると、データ出力のすべては、SMFB200に対応する状態マシンの状態の指標である必要はない。例えば、一実施形態では、状態マシンの様々な状態に対応する出力OUT_D1、OUT_D2などに対する値は構成可能であってもよい。したがって、例えば、ある特定の状態の場合、複数の出力OUT_D1、OUT_D2などはアサートされてもよい。プログラマがSMFBを構成することを可能にするために、構成アプリケーションは、機能ブロックと関連付けられた構成ウィンドウ、スクリーンなど、ユーザインターフェース機構を表示デバイス120上に表示することができる。
図13は、図4のSMFB200などのSMFBを少なくとも一部構成するために使用され得るユーザインターフェース機構の一例である。ユーザインターフェース機構は、SMFBと関連付けられた構成ウィンドウ、スクリーンなどの一部として表示され得る表またはマトリクス700(以下、「マトリクス700」と称される)を含む。マトリクス700は、行および列で配列された複数のセル704を含む。各列は、状態マシン機能ブロックの複数の出力OUT_D1、OUT_D2など、TRANS_INおよびTRANS_OUTのうちの1つに対応し、各行は、状態マシンの可能な状態のうちの1つに対応する。したがって、各セル704は、状態および出力に対応する。他の例では、各列は、複数の出力のうちの1つに対応することができ、各列は、状態マシンの可能な状態のうちの1つに対応することができる。
マトリクス700の出力「1」〜「4」は、SMFBの出力OUT_D1〜OUT_D4にそれぞれ対応することができ、出力「5」および「6」は、出力TRANS_INおよびTRANS_OUTにそれぞれ対応することができる。同様に、マトリクス700の状態「1」〜「6」は、状態マシンの可能な状態に対応することができる。加えて、この例では、ユーザは、出力の各々をラベル付けすることができる場合がある。例えば、図13では、「出力1」は、「バルブ開放VLV−101」とラベル付けされる。出力をラベル付けすることは、状態マシンの動作を理解し、および/または状態マシンをプロセスプラントとインターフェース接続することを容易にするのに役立ち得る。
プログラマは、構成情報をセル704に入力することによってSMFBを構成することができる。具体的には、状態のうちの1つおよび出力のうちの1つに対応する特定のセル704の場合、プログラマは、状態マシンがその状態にあるときにその出力がアサートされるべきであることを示す構成データをセルに入力することができる。例示的なマトリクス700では、構成データは、セル704のうちのいくつかに入力された。例えば、セル704Aは、状態マシンが「作動中」状態にあるときに出力OUT_D3がアサートされるべきであることを示す構成データを含み、セル704Bは、状態マシンが「作動中」状態にあるときに出力TRANS_INがアサートされるべきであることを示す構成データを含み、セル704Cは、状態マシンが「回復済み」状態にあるときに出力TRANS_OUTがアサートされるべきであることを示す構成データを含む。
この特定の例では、プログラマがセル704に構成データを入力しない場合、特定の状態の場合、対応する出力はアサートされるべきではないことを想定され得る。例えば、セル704Dおよび704EはXを含まず、このことは、状態マシンが「作動中」状態にあるときに出力OUT_D1およびOUT_D2がアサートされるべきではないことを示す。他の実施形態では、プログラマは、状態マシンが特定の状態にある場合に特定の出力をアサートするべきではないことを示す構成データを入力することができる。同様に、特定の状態および出力の場合、出力がアサートされるか、またはアサートされないかは問題ではないことを示す可能性がある。
プログラマは、当業者に周知の技術を含む多様な技術のいずれかを使用してマトリクス700に構成データを入力することができる。例えば、構成データをセル704に入力するために、プログラマは、マウス、トラックボール、タッチスクリーンなどを使用してセル704を選択することができる。次に、ユーザは、例えば、キーボードを介して構成データを直接セル704に入力することができる。あるいは、プログラマは、セル704を選択し、次いで「編集」「修正」など、プルダウンメニューから選択を選択するか、または「編集」ボタン、「修正」ボタンなどを選択することができる。次に、ユーザインターフェースは、プルダウンメニュー、ウィンドウ、表示スクリーンなどを介して選択のリストをプログラマに表示することができる。例えば、選択のリストは、「出力をアサートする」選択、「出力をアサート停止にする」選択、および任意に「指定なし」選択を含むことができる。次に、プログラマは、例えば、キーボード、マウス、トラックボール、タッチスクリーンなどを使用して選択のうちの1つを選択することができる。プログラマが「出力をアサートする」選択を選択する場合、構成データは、対応する状態の場合、対応する出力がアサートされるべきであることを示すことができる。例えば、「X」がセル内に表示されてもよく、「1」がセル内に表示されてもよく、用語「TRUE」がセル内に表示されてもよく、用語「ASSERT」がセル内に表示されてもよく、以下同様である。プログラマが「出力をアサート停止にする」選択を選択する場合、構成データは、対応する状態の場合、対応する出力がアサートされるべきではないことを示すことができる。例えば、セルが空白のままにされてもよく、「0」がセル内に表示されてもよく、用語「FALSE」がセル内に表示されてもよく、用語「DEASSERT」がセル内に表示されてもよく、以下同様である。
例示的なマトリクス700は、6つの状態および6つの出力に対する行を含むが、異なる数の状態および出力を有する類似のマトリクスは、異なる数の状態および出力を有するSMFBに使用されてもよい。状態および出力の数は構成可能であってもよい。
再び図7を参照すると、以前に記載されたように、現在の状態が決定された後、SMFBのデータ出力は、現在の状態(ブロック366)に基づいて設定されてもよい。例えば、データ出力は、図13のマトリクス700などのマトリクスに入力された構成データに従って設定されてもよい。
図14は、適切な出力OUT_D1、OUT_D2などをアサートするために使用され得る例示的なルーチン850のフロー図である。ブロック854では、変数zが1に設定される。ブロック858では、出力OUT_Dzは、変数STATEによって指示された配列変数OUTPUTの要素のビット数zの値に設定される。OUTPUT配列の各要素は、状態の対応する1つに対して、出力OUT_D1、OUT_D2などの値を示す変数であってもよい。例えば、OUTPUT[1]が状態1に対応することができ、OUTPUT[2]が状態2に対応することができ、以下同様である。加えて、各要素の各ビットは、出力OUT_D1、OUT_D2などのうちの1つに対応することができる。例えば、ビット1がOUT_D1に対応することができ、ビット2がOUT_D2に対応することができ、以下同様である。図13を参照すると、例えば、マトリクス700に対して、OUTPUT配列は、6つの要素を有し、要素OUTPUT[1]は、0×06であってもよい。
ブロック862では、変数zは増やされ、ブロック866では、zの値が出力OUT_D1、OUT_D2などの数より大きいか決定され得る。zが出力OUT_D1、OUT_D2などの数以下の場合、ルーチンは、ブロック858に戻って進むことができる。そうでなければ、ルーチンは終了することができる。
SMFBに対する構成データは、上述されるものに加えて他のタイプのグラフィカルユーザインターフェースを介して入力されてもよい。例えば、構成データは、状態遷移図に類似するグラフィカルユーザインターフェースを介して入力されてもよい。図15は、図4に関して記載されるようにSMFB200などのSMFBを構成するために使用され得る例示的な状態遷移図900である。図900は、複数のグラフィカル要素904、908、912、916、920、924、928、および932を含む。要素904、908、および912は、状態マシンの状態1、2、および3をそれぞれ表す。要素916は、状態マシンが状態1にあるときに入力2がアサートされる場合にそれが状態2に遷移するべきであることを示す。要素920は、状態マシンが状態1にあるときに入力3がアサートされる場合にそれが状態3に遷移するべきであることを示す。要素924は、状態マシンが状態2にあるときに入力1がアサートされる場合にそれが状態1に遷移するべきであることを示し、要素928は、状態マシンが状態3にあるときに入力1がアサートされる場合にそれが状態1に遷移するべきであることを示す。同様に、要素932は、状態マシンが状態3にあるときに入力4がアサートされる場合にそれが状態2に遷移するべきであることを示す。
状態遷移図900は、状態1と関連付けられた入遷移要素902、903、および出遷移要素905と、状態2と関連付けられた入遷移要素906、907、および出遷移要素909と、状態3と関連付けられた入遷移要素911、および出遷移要素913、914とをさらに含む。具体的には、状態マシンが状態1にあり、入力3がアサートされる場合、状態マシンは、出遷移要素905を実行し、状態3に遷移し、状態3の入遷移要素911を実行するべきである。さらに、状態マシンが状態2にあり、入力1がアサートされる場合、状態マシンは、出遷移要素909を実行し、状態1に遷移し、入遷移要素902を実行するべきである。入遷移要素および/または出遷移要素は、状態のいずれかの間で共通であり得ることを理解されるべきである。例えば、入遷移要素902、903は同じであり得、それによって状態マシンは、状態マシンが状態2または状態3のいずれかから状態1に遷移することに応答して関連する入遷移動作を実行する。さらなる例として、出遷移要素913、914は同じであり得、それによって状態マシンは、状態マシンが状態1(アサートされる入力1に応答して)または状態2(アサートされる入力4に応答して)のいずれかに遷移することに応答して関連する出遷移動作を実行する。
一般的に、SMFBは、ソフトウェア、ファームウェア、もしくはハードウェア、またはソフトウェア、ファームウェア、および/もしくはハードウェアのいくつかの組み合わせによって実装されてもよい。例えば、SMFBは、コントローラ12a、16a、I/Oデバイス24、ロジックソルバ50、およびデバイス22、23、60、62のうちの1つ以上によって実装されてもよい。別の例として、SMFBは、ワークステーション18aおよび20aのうちの1つ以上によって実装されてもよい。例えば、SMFBは、プロセスプラントの動作をテストするか、またはオペレータのトレーニングを提供するシミュレーションの一部としてワークステーション18aおよび/またはワークステーション20aによって実装されてもよい。いくつかの実施形態では、SMFBは、ソフトウェアに従って構成されたプロセッサによって、プログラマブル論理デバイス、例えば、ゲートアレイ、標準セル、フィールドプログラマブルゲートアレイ(FPGA)、PROM、EPROM、EEPROM、プログラマブルアレイ論理(PAL)、プログラマブル論理アレイ(PLA)などのうちの1つ以上を含むデバイスによって実装されてもよい。
図8のブロック404、408、412、416、420、および458の各々は、ソフトウェア、ファームウェア、もしくはハードウェア、またはソフトウェア、ファームウェア、および/もしくはハードウェアのいくつかの組み合わせによって実装されてもよい。加えて、図10〜12および14のフロー図は、ルーチンとして記載されたが、これらのフロー図は、ソフトウェア、ハードウェア、ファームウェア、またはソフトウェア、ファームウェア、および/もしくはハードウェアの組み合わせによって実装され得る。
上述されるユーザインターフェースなどのユーザインターフェースの実施形態は、全体または一部において、例えば、ソフトウェアプログラムに従って構成されたプロセッサによって実装されてもよい。例えば、ワークステーション18aもしくは20aまたはいくつかの他のコンピュータは、全体または一部において、上述されるユーザインターフェースを実装することができる。ユーザインターフェースの実施形態を実装するためのソフトウェアプログラムは、ハードディスク、RAM、バッテリバックアップされたRAM、ROM、CD−ROM、PROM、EPROM、EEPROM、DVD、フラッシュメモリなどの有形媒体、またはプロセッサと関連付けられたRAMなどのメモリ上に記憶されたソフトウェアに具現化されてもよいが、当業者であれば、このプログラム全体または一部が代わりに、プロセッサ以外のデバイスによって実行され、ならびに/または周知の様式でファームウェアおよび/もしくは専用のハードウェアに具現化され得ることを容易に理解するであろう。
本発明は、様々な修正および代替的構築物の影響を受けやすいが、このある特定の例示的な実施形態は、図面に示され、本明細書に詳細に記載される。しかしながら、開示される特定の形態に本開示を限定することを意図していないが、それとは反対に、添付の特許請求の範囲によって定義されるような本開示の趣旨および範囲内に入るすべての修正、代替的構築物、および均等物を網羅するのを意図することを理解されるべきである。

Claims (10)

  1. 機械可読命令を記憶する有形媒体であって、
    状態マシンの状態マシン状態間の遷移を構成するための表示デバイスを介してグラフィカルユーザインターフェースを提供する第1のコードであって、前記グラフィカルユーザインターフェースは、第1の次元および第2の次元を有するマトリクスに配列された第1の複数のセルを示し、前記第1の複数のセルが、前記第1および第2の次元に対して前記第1の複数のセルの位置に基づいてこの入力/状態の対および遷移動作を定義するように、前記第1の次元に沿った位置は、それと関連付けられた状態マシン状態および遷移動作識別子を示し、前記第2の次元に沿った位置は、状態マシン入力に対応する、第1のコードと、
    前記グラフィカルユーザインターフェースを介して前記第1の複数のセルのうちの1つのセルと関連付けられた状態遷移データを受信する第2のコードであって、前記状態遷移データは、前記状態マシンが前記セルによって定義された前記入力/状態対に従って遷移する次の状態を識別する、第2のコードと、
    前記グラフィカルユーザインターフェースを介して遷移動作データを受信する第3のコードであって、前記遷移動作データは、前記状態遷移データに従って実行される少なくとも1つの遷移動作を識別する、第3のコードと、
    プロセスプラントにおける条件が前記セルと関連付けられた前記入力/状態対に対応するときに前記状態マシンが前記次の状態に遷移するように、前記状態遷移データおよび前記遷移動作データを、前記プロセスプラントにおける前記状態マシンを実装する機能ブロックと関連付けられたコンピュータ可読媒体上に記憶する、第4のコードと、を備える、有形媒体。
  2. 前記遷移動作データは、1)前記セルに対応する前記状態マシン状態から遷移するときに実行される出遷移動作、および2)前記次の状態に遷移するときに実行される入遷移動作のうちの少なくとも1つを識別する、請求項1に記載の有形媒体。
  3. 前記第1の複数のセルを前記表示デバイス上に表示する第5のコードと、
    前記セル内に、前記次の状態の指示、前記出遷移動作の指示、および前記入遷移動作の指示を表示する第6のコードと、をさらに備える、請求項2に記載の有形媒体。
  4. 前記第6のコードは、前記セル内に、
    前記セルの第1のサブセル内に、前記次の状態の前記指示を表示し、
    前記セルの第2のサブセル内に、前記出遷移動作の前記指示を表示し、
    前記セルの第3のサブセル内に、前記入遷移動作の前記指示を表示することによって、前記次の状態の前記指示、前記出遷移動作の前記指示、および前記入遷移動作の前記指示を表示する、請求項3に記載の有形媒体。
  5. 前記第5のコードは、少なくとも1つの行のセルの各々が前記状態マシン入力のうちの1つと関連付けられ、かつ複数の列のセルの各々が前記状態マシン状態のうちの1つおよび前記遷移動作識別子のうちの1つと関連付けられるように、前記第1の次元が前記少なくとも1つの行のセルを整列させ、かつ前記第2の次元が前記複数の列のセルを整列させる前記マトリクスを表示することでよって、前記第1の複数のセルを前記表示デバイス上に表示する、請求項3に記載の有形媒体。
  6. 前記第5のコードは、複数の行のセルの各々が前記状態マシン状態のうちの1つおよび前記遷移動作識別子のうちの1つと関連付けられ、少なくとも1つの列のセルの各々が前記状態マシン入力のうちの1つと関連付けられるように、前記第1の次元が前記少なくとも1つの列のセルを整列させ、かつ前記第2の次元が前記複数の行のセルを整列させる前記マトリクスを表示することによって、前記第1の複数のセルを前記表示デバイス上に表示する、請求項3に記載の有形媒体。
  7. 前記状態マシン入力の各々の特定の値は、論理1、論理0、論理真、または論理偽のうちの1つである、請求項1に記載の有形媒体。
  8. 前記グラフィカルユーザインターフェースは、前記機能ブロックと関連付けられた第2の複数のセルをさらに示し、前記第2の複数のセルの各々は、前記機能ブロックの複数の出力のうちのそれぞれ1つおよび前記状態マシン状態のうちのそれぞれ1つに対応し、前記有形媒体は、
    入力デバイスを介して前記第2の複数のセルのうちの1つのさらなるセルと関連付けられた出力構成データを受信する第5のコードあって、前記出力構成データは、前記状態マシンが前記さらなるセルに対応する前記状態マシン状態にあるときに前記さらなるセルに対応する出力値と、前記さらなるセルと関連付けられた少なくとも1つの出力遷移動作と、を示す、第5のコードをさらに備える、請求項1に記載の有形媒体。
  9. 前記状態マシン入力は、プロセス制御システム、プロセス制御システムのシミュレーション、安全システム、および安全システムのシミュレーションのうちの少なくとも1つと関連付けられる、請求項1に記載の有形媒体。
  10. 前記プロセスプラントまたはオペレータインターフェースと関連付けられたさらなる機能ブロックのうちの1つから前記状態マシン入力を受信する第5のコードをさらに備える、請求項1に記載の有形媒体。
JP2018213594A 2013-07-09 2018-11-14 有形媒体 Active JP6820306B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/937,805 US9086688B2 (en) 2013-07-09 2013-07-09 State machine function block with user-definable actions on a transition between states
US13/937,805 2013-07-09

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014141387A Division JP6437224B2 (ja) 2013-07-09 2014-07-09 状態間の遷移に対するユーザ定義可能な動作を有する状態マシン機能ブロック

Publications (2)

Publication Number Publication Date
JP2019050022A true JP2019050022A (ja) 2019-03-28
JP6820306B2 JP6820306B2 (ja) 2021-01-27

Family

ID=51410648

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014141387A Active JP6437224B2 (ja) 2013-07-09 2014-07-09 状態間の遷移に対するユーザ定義可能な動作を有する状態マシン機能ブロック
JP2018213594A Active JP6820306B2 (ja) 2013-07-09 2018-11-14 有形媒体

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014141387A Active JP6437224B2 (ja) 2013-07-09 2014-07-09 状態間の遷移に対するユーザ定義可能な動作を有する状態マシン機能ブロック

Country Status (5)

Country Link
US (2) US9086688B2 (ja)
JP (2) JP6437224B2 (ja)
CN (1) CN104298189B (ja)
DE (1) DE102014109569A1 (ja)
GB (2) GB2581273B (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11237705B2 (en) * 2013-03-15 2022-02-01 Bmc Software, Inc. Configurable user interface interactions using a state machine combined with event orchestration
US9599970B2 (en) 2013-03-27 2017-03-21 The United States Of America As Represented By The Secretary Of The Navy Safety critical control system that includes control logic or machine readable instructions that selectively locks or enables the control system based on one or more machine implemented state machines that includes states associated with detection or matching of one or more predetermined signals on distinct conduction paths between elements of the control system and related methods
US9086688B2 (en) * 2013-07-09 2015-07-21 Fisher-Rosemount Systems, Inc. State machine function block with user-definable actions on a transition between states
WO2016185558A1 (ja) * 2015-05-19 2016-11-24 三菱電機株式会社 プログラマブルロジックコントローラ、エンジニアリングツール及びエンジニアリングツールプログラム
US20170004226A1 (en) * 2015-07-05 2017-01-05 Sas Institute Inc. Stress testing by avoiding simulations
CN105138332A (zh) * 2015-08-26 2015-12-09 上海联影医疗科技有限公司 状态机的实现方法和装置
CN106547274B (zh) * 2015-09-16 2019-11-15 中国航空工业第六一八研究所 一种基于场景矩阵的状态机测试方法
US10438144B2 (en) 2015-10-05 2019-10-08 Fisher-Rosemount Systems, Inc. Method and apparatus for negating effects of continuous introduction of risk factors in determining the health of a process control system
CN108139725B (zh) 2015-10-09 2022-02-25 费希尔-罗斯蒙特系统公司 用于验证因果矩阵的安全逻辑的系统和方法
WO2017126480A1 (ja) * 2016-01-18 2017-07-27 日本電気株式会社 手順生成システム、手順生成方法および手順生成プログラムを格納した記憶媒体
JP6477553B2 (ja) 2016-03-14 2019-03-06 オムロン株式会社 プログラム開発支援装置、プログラム開発支援プログラムおよびプログラム開発支援方法
US10671038B2 (en) * 2016-07-15 2020-06-02 Fisher-Rosemount Systems, Inc. Architecture-independent process control
US11467569B2 (en) * 2016-10-14 2022-10-11 Mitsubishi Electric Corporation Simulation device
US20180124183A1 (en) * 2016-11-03 2018-05-03 Futurewei Technologies, Inc. Method and Apparatus for Stateful Control of Forwarding Elements
WO2018086677A1 (en) * 2016-11-09 2018-05-17 Abb Schweiz Ag A method for determining possible transitions of system states
CN108572611B (zh) * 2017-03-13 2021-01-22 欧姆龙株式会社 信息处理装置、信息处理方法及计算机可读取记录媒体
US10447078B2 (en) 2017-10-02 2019-10-15 Fisher-Rosemount Systems, Inc. Smart function block for integration of PLCS into a control system and methods for the same
CN109858721B (zh) * 2017-11-30 2023-01-06 中广核(北京)仿真技术有限公司 一种控制计算策略生成方法以及系统
EP3647889A1 (de) * 2018-10-31 2020-05-06 Siemens Aktiengesellschaft Fehlersichere sequenzkontrolle von prozessen
DE102018220287A1 (de) * 2018-11-26 2020-05-28 Lenze Automation Gmbh Verfahren zum Betreiben eines Systems und System
EP3671442A1 (en) * 2018-12-17 2020-06-24 Physik Instrumente (PI) GmbH & Co. Kg System and method for switching operating states of physical devices
AT522186B1 (de) * 2019-05-20 2020-09-15 Dipl Ing Dipl Ing Fh Markus Gruber Computerimplementiertes Verfahren zur rechnergestützten Erzeugung eines ausführbaren Steuerungsprogramms zur Steuerung und/oder Regelung eines technischen Prozesses
US10824443B1 (en) 2019-09-19 2020-11-03 Hewlett Packard Enterprise Development Lp State machine communication
US11513490B2 (en) * 2020-03-24 2022-11-29 Honeywell International Inc. I/O mesh architecture for a safety instrumented system
US11762742B2 (en) 2020-03-31 2023-09-19 Honeywell International Inc. Process control system with different hardware architecture controller backup
US11874938B2 (en) 2020-11-03 2024-01-16 Honeywell International Inc. Admittance mechanism
EP4002236A1 (en) * 2020-11-11 2022-05-25 ABB Schweiz AG Reverse engineering a module for a modular industrial plant
CN113189968B (zh) * 2021-05-08 2022-08-26 哈尔滨工业大学 互联工业过程的分布式故障诊断方法

Family Cites Families (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4067256A (en) 1976-10-07 1978-01-10 General Electric Company Fastener anchor formed in thermoplastic sheet
US4607256A (en) * 1983-10-07 1986-08-19 Honeywell, Inc. Plant management system
JP2526709B2 (ja) * 1990-05-08 1996-08-21 三菱電機株式会社 プログラマブルコントロ―ラおよびプログラマブルコントロ―ラのsfcプログラム実行方法
JPH0589069A (ja) * 1991-09-30 1993-04-09 Toshiba Corp 分散形制御システム
US5265212A (en) * 1992-04-01 1993-11-23 Digital Equipment Corporation Sharing of bus access among multiple state machines with minimal wait time and prioritization of like cycle types
JP2994926B2 (ja) * 1993-10-29 1999-12-27 松下電器産業株式会社 有限状態機械作成方法とパターン照合機械作成方法とこれらを変形する方法および駆動方法
US5530643A (en) 1993-08-24 1996-06-25 Allen-Bradley Company, Inc. Method of programming industrial controllers with highly distributed processing
US5576946A (en) * 1993-09-30 1996-11-19 Fluid Air, Inc. Icon based process design and control system
JPH08129483A (ja) * 1994-10-31 1996-05-21 Matsushita Electric Ind Co Ltd イベント駆動型プロセス制御装置
JP3505018B2 (ja) * 1994-11-22 2004-03-08 株式会社ルネサステクノロジ 半導体集積回路
JPH09148852A (ja) 1995-11-24 1997-06-06 Matsushita Electric Ind Co Ltd 送信出力可変装置
US5764883A (en) * 1996-03-28 1998-06-09 Hewlett-Packard Co. System and method for checking for dynamic resource misuse in a computer program
US5838563A (en) 1996-04-12 1998-11-17 Fisher-Rosemont Systems, Inc. System for configuring a process control environment
US5768119A (en) 1996-04-12 1998-06-16 Fisher-Rosemount Systems, Inc. Process control system including alarm priority adjustment
US5828851A (en) * 1996-04-12 1998-10-27 Fisher-Rosemount Systems, Inc. Process control system using standard protocol control of standard devices and nonstandard devices
JP3550460B2 (ja) * 1996-04-25 2004-08-04 株式会社日立製作所 サーバレスプラント監視・制御装置
US5903886A (en) * 1996-04-30 1999-05-11 Smartlynx, Inc. Hierarchical adaptive state machine for emulating and augmenting software
US5995963A (en) * 1996-06-27 1999-11-30 Fujitsu Limited Apparatus and method of multi-string matching based on sparse state transition list
US5909369A (en) * 1996-07-24 1999-06-01 Network Machines, Inc. Coordinating the states of a distributed finite state machine
US5845063A (en) 1996-09-11 1998-12-01 Elsag International N.V. Signal status propagation in a distributed control system
US6029181A (en) * 1996-09-26 2000-02-22 Honeywell, Inc. System and method for translating visual display object files from non-component object model (COM) objects to COM objects
US5818736A (en) * 1996-10-01 1998-10-06 Honeywell Inc. System and method for simulating signal flow through a logic block pattern of a real time process control system
US5970430A (en) * 1996-10-04 1999-10-19 Fisher Controls International, Inc. Local device and process diagnostics in a process control network having distributed control functions
JPH1124907A (ja) * 1997-06-27 1999-01-29 Toshiba Corp ソフトウエア開発支援方法およびソフトウエア開発支援装置
US6219628B1 (en) 1997-08-18 2001-04-17 National Instruments Corporation System and method for configuring an instrument to perform measurement functions utilizing conversion of graphical programs into hardware implementations
US6317638B1 (en) * 1997-08-22 2001-11-13 Honeywell Inc. Multi-layer state machine for a hybrid real-time control system and method of operation thereof
US6182024B1 (en) * 1997-10-14 2001-01-30 International Business Machines Corporation Modeling behaviors of objects associated with finite state machines and expressing a sequence without introducing an intermediate state with the arc language
US6526566B1 (en) 1997-11-14 2003-02-25 National Instruments Corporation Graphical programming system and method including nodes for programmatically accessing data sources and targets
US6239800B1 (en) * 1997-12-15 2001-05-29 International Business Machines Corporation Method and apparatus for leading a user through a software installation procedure via interaction with displayed graphs
JP3651742B2 (ja) * 1998-01-21 2005-05-25 株式会社東芝 プラント監視システム
US6097988A (en) * 1998-02-10 2000-08-01 Advanced Micro Devices, Inc. Logic system and method employing multiple configurable logic blocks and capable of implementing a state machine using a minimum amount of configurable logic
US7152027B2 (en) * 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
US6448982B1 (en) 1998-04-23 2002-09-10 Siemens Energy & Automation, Inc. System for graphically generating logic for a cause and effects matrix
US6161051A (en) * 1998-05-08 2000-12-12 Rockwell Technologies, Llc System, method and article of manufacture for utilizing external models for enterprise wide control
US6157864A (en) 1998-05-08 2000-12-05 Rockwell Technologies, Llc System, method and article of manufacture for displaying an animated, realtime updated control sequence chart
US6263255B1 (en) * 1998-05-18 2001-07-17 Advanced Micro Devices, Inc. Advanced process control for semiconductor manufacturing
US6691183B1 (en) * 1998-05-20 2004-02-10 Invensys Systems, Inc. Second transfer logic causing a first transfer logic to check a data ready bit prior to each of multibit transfer of a continous transfer operation
US6289252B1 (en) * 1998-08-31 2001-09-11 Fisher-Rosemount Systems, Inc. Distributed batch processing system and methods
US6505341B1 (en) * 1998-11-10 2003-01-07 Scientronix, Inc. System and method for programming a logic control unit
US6442512B1 (en) 1998-10-26 2002-08-27 Invensys Systems, Inc. Interactive process modeling system
WO2000033235A1 (en) * 1998-11-30 2000-06-08 Siebel Systems, Inc. State models for monitoring processes
US6369836B1 (en) 1998-12-23 2002-04-09 Triconex Cause effect diagram program
US6774786B1 (en) 2000-11-07 2004-08-10 Fisher-Rosemount Systems, Inc. Integrated alarm display in a process control network
US7206646B2 (en) * 1999-02-22 2007-04-17 Fisher-Rosemount Systems, Inc. Method and apparatus for performing a function in a plant using process performance monitoring with process equipment monitoring and control
US6718533B1 (en) * 1999-02-26 2004-04-06 Real-Time Innovations, Inc. Method for building a real-time control system with mode and logical rate
US6385496B1 (en) * 1999-03-12 2002-05-07 Fisher-Rosemount Systems, Inc. Indirect referencing in process control routines
US6903728B1 (en) * 1999-03-19 2005-06-07 Avaya Technology Corp. State-based control of a terminal user interface containing soft-labeled keys
AU5025600A (en) 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
US6901560B1 (en) * 1999-07-01 2005-05-31 Honeywell Inc. Process variable generalized graphical device display and methods regarding same
US6577323B1 (en) * 1999-07-01 2003-06-10 Honeywell Inc. Multivariable process trend display and methods regarding same
US6834370B1 (en) * 1999-07-08 2004-12-21 Osi Software, Inc. Method for creating master recipes
US6993456B2 (en) * 1999-09-30 2006-01-31 Rockwell Automation Technologies, Inc. Mechanical-electrical template based method and apparatus
US6556950B1 (en) * 1999-09-30 2003-04-29 Rockwell Automation Technologies, Inc. Diagnostic method and apparatus for use with enterprise control
US6445963B1 (en) * 1999-10-04 2002-09-03 Fisher Rosemount Systems, Inc. Integrated advanced control blocks in process control systems
US7636915B1 (en) * 1999-12-02 2009-12-22 Invensys Systems, Inc. Multi-level multi-variable control process program execution scheme for distributed process control systems
US6489971B1 (en) 1999-12-07 2002-12-03 International Business Machines Corporation Graphical programming environment for deterministic finite state automata
US6917845B2 (en) 2000-03-10 2005-07-12 Smiths Detection-Pasadena, Inc. Method for monitoring environmental condition using a mathematical model
US7613599B2 (en) * 2000-06-02 2009-11-03 Synopsys, Inc. Method and system for virtual prototyping
NZ508052A (en) * 2000-11-09 2003-06-30 Derek Ward Programmable controller
US6742136B2 (en) * 2000-12-05 2004-05-25 Fisher-Rosemount Systems Inc. Redundant devices in a process control system
US6742165B2 (en) * 2001-03-28 2004-05-25 Mips Technologies, Inc. System, method and computer program product for web-based integrated circuit design
US7010052B2 (en) * 2001-04-16 2006-03-07 The Ohio University Apparatus and method of CTCM encoding and decoding for a digital communication system
US6931288B1 (en) 2001-04-16 2005-08-16 Rockwell Automation Technologies, Inc. User interface and system for creating function block diagrams
US6668203B1 (en) * 2001-04-26 2003-12-23 Sandia Corporation State machine analysis of sensor data from dynamic processes
US6735596B2 (en) 2001-06-07 2004-05-11 Guy Charles Corynen Computer method and user interface for decision analysis and for global system optimization
EP2432190A3 (en) 2001-06-27 2014-02-19 SKKY Incorporated Improved media delivery platform
US6747247B2 (en) * 2001-09-19 2004-06-08 Illinois Tool Works Inc. Welding-type power supply with a state-based controller
US6993706B2 (en) 2002-01-15 2006-01-31 International Business Machines Corporation Method, apparatus, and program for a state machine framework
US6941301B2 (en) 2002-01-18 2005-09-06 Pavilion Technologies, Inc. Pre-processing input data with outlier values for a support vector machine
ATE328308T1 (de) 2002-04-23 2006-06-15 Tokyo Electron Ltd Verfahren und vorrichtung zur vereinfachten systemkonfiguration
DE10229676B4 (de) * 2002-06-27 2013-05-29 Robert Bosch Gmbh Verfahren zur Steuerung des Ablaufs eines multitaskingfähigen Computerprogramms
US7050863B2 (en) 2002-09-11 2006-05-23 Fisher-Rosemount Systems, Inc. Integrated model predictive control and optimization within a process control system
EP1413937A1 (en) * 2002-10-21 2004-04-28 ABB Schweiz AG Finite state machine display for operator guidance
GB0226805D0 (en) * 2002-11-16 2002-12-24 Koninkl Philips Electronics Nv State machine modelling
US7159083B2 (en) * 2002-12-13 2007-01-02 Texas Instruments Incorporated Programmable transition state machine
US6915235B2 (en) * 2003-03-13 2005-07-05 Csi Technology, Inc. Generation of data indicative of machine operational condition
US6898468B2 (en) * 2003-03-28 2005-05-24 Fisher-Rosemount Systems, Inc. Function block implementation of a cause and effect matrix for use in a process safety system
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7269468B2 (en) * 2003-09-05 2007-09-11 Fisher-Rosemount Systems, Inc. State machine function block with a user modifiable output configuration database
US7730415B2 (en) * 2003-09-05 2010-06-01 Fisher-Rosemount Systems, Inc. State machine function block with a user modifiable state transition configuration database
US7487076B2 (en) * 2003-10-31 2009-02-03 The Mathworks, Inc. Simplified data signal support for diagramming environment languages
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US7660701B2 (en) * 2004-06-12 2010-02-09 Fisher-Rosemount Systems, Inc. System and method for detecting an abnormal situation associated with a process gain of a control loop
JP4535130B2 (ja) * 2004-12-09 2010-09-01 三菱電機株式会社 文字列照合装置および文字列照合プログラム
US8495593B2 (en) * 2005-09-09 2013-07-23 International Business Machines Corporation Method and system for state machine translation
US7500209B2 (en) * 2005-09-28 2009-03-03 The Mathworks, Inc. Stage evaluation of a state machine
US8527888B2 (en) * 2006-04-11 2013-09-03 Invensys Systems, Inc. Method and supporting configuration user interfaces for streamlining installing replacement field devices
US20080016452A1 (en) * 2005-12-02 2008-01-17 Pincus Michael E Interactive graphic operator interface panel for switchgear systems
JP4528728B2 (ja) * 2006-01-31 2010-08-18 株式会社東芝 デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム
DE102006021767A1 (de) * 2006-05-10 2007-11-15 Siemens Ag Bediengerät zum Informationsaustausch mit einem Feldgerät in einem Automatisierungssystem
US8145358B2 (en) * 2006-07-25 2012-03-27 Fisher-Rosemount Systems, Inc. Method and system for detecting abnormal operation of a level regulatory control loop
US7668608B2 (en) * 2006-09-01 2010-02-23 Fisher-Rosemount Systems, Inc. Graphical programming language object editing and reporting tool
JP5024294B2 (ja) * 2006-11-01 2012-09-12 日本電気株式会社 状態遷移表の情報記憶検索方法と装置およびプログラム
US7716610B2 (en) * 2007-01-05 2010-05-11 International Business Machines Corporation Distributable and serializable finite state machine
US8656350B2 (en) * 2007-02-06 2014-02-18 Software Ag Event-based process configuration
US8387002B2 (en) * 2007-04-20 2013-02-26 National Instruments Corporation Statechart development environment with embedded graphical data flow code editor
JP5014899B2 (ja) * 2007-07-02 2012-08-29 ルネサスエレクトロニクス株式会社 再構成可能デバイス
US7944234B2 (en) * 2008-03-19 2011-05-17 Micron Technology, Inc. Programmable on-chip logic analyzer apparatus, systems, and methods
US8307342B2 (en) * 2008-05-14 2012-11-06 Honeywell International Inc. Method, apparatus, and system for automatic test generation from statecharts
EP2172883A1 (en) * 2008-09-30 2010-04-07 Siemens Aktiengesellschaft Method for managing and controlling manufacturing processes planned by an Enterprise Resource Planning and produced by a plant floor
EP2169489B1 (en) * 2008-09-30 2012-08-01 Siemens Aktiengesellschaft Method for implementing production processes
DE102008043094A1 (de) * 2008-10-22 2010-04-29 Endress + Hauser Process Solutions Ag Verfahren zur dynamischen Anpassung eines Diagnosesystems
US8583412B2 (en) * 2008-11-06 2013-11-12 Honeywell International Inc. Systems and methods for providing a simulation environment having a simulation user interface
US8903520B2 (en) * 2009-04-14 2014-12-02 General Electric Company Method for executing sequential function charts as function blocks in a control system
US9021235B2 (en) * 2009-08-25 2015-04-28 Nec Corporation Data processing device
US9494931B2 (en) * 2009-09-23 2016-11-15 Fisher-Rosemount Systems, Inc. Dynamic hyperlinks for process control systems
US8578059B2 (en) * 2010-02-01 2013-11-05 Invensys Systems, Inc. Deploying a configuration for multiple field devices
US8706263B2 (en) * 2010-06-08 2014-04-22 Rockwell Automation Technologies, Inc. Synchronization of execution of sequential function charts using transition groups
US9059604B2 (en) * 2011-06-27 2015-06-16 Sunpower Corporation Methods and apparatus for controlling operation of photovoltaic power plants
JP6033891B2 (ja) * 2012-02-15 2016-11-30 ザ マスワークス, インクThe Mathworks, Inc. 状態図の生成
WO2013123376A1 (en) * 2012-02-15 2013-08-22 The Mathworks, Inc. Unified state transition table describing a state machine model
US9020873B1 (en) * 2012-05-24 2015-04-28 The Travelers Indemnity Company Decision engine using a finite state machine for conducting randomized experiments
US9507888B1 (en) * 2012-06-06 2016-11-29 The Mathworks, Inc. Active state visualization for finite state machine models
US9389596B2 (en) * 2013-02-20 2016-07-12 General Electric Company Systems and methods for field device feedback
US20140280528A1 (en) * 2013-03-12 2014-09-18 Rockwell Automation Technologies, Inc. State machine configurator
US9079039B2 (en) * 2013-07-02 2015-07-14 Medtronic, Inc. State machine framework for programming closed-loop algorithms that control the delivery of therapy to a patient by an implantable medical device
US9086688B2 (en) * 2013-07-09 2015-07-21 Fisher-Rosemount Systems, Inc. State machine function block with user-definable actions on a transition between states

Also Published As

Publication number Publication date
US20150018977A1 (en) 2015-01-15
GB202004282D0 (en) 2020-05-06
CN104298189A (zh) 2015-01-21
DE102014109569A1 (de) 2015-01-15
CN104298189B (zh) 2019-09-27
GB2517581A (en) 2015-02-25
GB2517581B (en) 2020-08-26
US9086688B2 (en) 2015-07-21
US10274926B2 (en) 2019-04-30
JP2015018553A (ja) 2015-01-29
GB2581273B (en) 2020-12-30
GB201411958D0 (en) 2014-08-20
US20150277425A1 (en) 2015-10-01
GB2581273A (en) 2020-08-12
JP6437224B2 (ja) 2018-12-12
JP6820306B2 (ja) 2021-01-27

Similar Documents

Publication Publication Date Title
JP6820306B2 (ja) 有形媒体
US8600524B2 (en) State machine function block with a user modifiable state transition configuration database
US7269468B2 (en) State machine function block with a user modifiable output configuration database
JP4769427B2 (ja) ブール論理機能ブロック
JP4578839B2 (ja) プロセス安全システムで使用するための原因結果マトリックスの機能ブロック実装
US11886159B2 (en) System and method for creating a set of monitor and effect blocks from a cause and effect matrix
US6141628A (en) Programmable logic controller software with embedded class logic and alarm/shutdown functionality
CN107615191B (zh) 调试装置及调试方法
KR102076754B1 (ko) 제어로직 진단 시스템 및 그의 진단 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190924

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190925

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20191224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200923

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210104

R150 Certificate of patent or registration of utility model

Ref document number: 6820306

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250