(58)【調査した分野】(Int.Cl.,DB名)
演算処理能力を有するスマートタイプフィールドデバイス(6)及び演算処理能力を有しない非スマートタイプフィールドデバイス(12)を含む、多数の異なるフィールドデバイスタイプの複数のフィールドデバイスを制御するためのプロセス制御システム(100)であって、
前記プロセス制御システムは: フィールドデバイスに接続される複数の配置されたコントローラ(110)と;
複数の配置されたコントローラのいくつかに対して選択的にインストールすることができ、当該コントローラのいくつかの上で動作することができる複数の制御ソフトウエアであって、前記スマートタイプ及び前記非スマートタイプのフィールドデバイスを組み合わせて制御するための複数の制御ソフトウエアと
を備えることを特徴とするプロセス制御システム。
前記ファンクションブロックは、スマートタイプのフィールドデバイスと非スマートタイプのフィールドデバイスを選択的に制御するために、複数の配置されたコントローラのいくつかの上で動作することができる制御モジュール(440)として、選択的に定義可能、作成可能、修正可能、及びインストール可能であることを特徴とする請求項3に記載のプロセス制御システム。
【発明を実施するための形態】
【0054】
新規であると考えられている本発明の特徴は、添付した請求項に明確に述べられている。しかしながら、発明自体は、その構造(プロセス制御システム)に関して、以下の説明および添付図面を参照することによりもっともよく理解できる。
【0055】
図1Aを参照すると、制御システムが図示されている。一般的には、システム1は、ローカルエリアネットワークカードを介してローカルエリアネットワーク(「LAN」)3に接続されているパーソナルコンピュータ2のようなメイン処理装置を含む。どのローカルエリアネットワークプロトコルも使用してよいが、ローカルエリアネットワーク3との通信を可能とするため、多くのアプリケーションでは所有権を主張できない(non-proprietary)イーサネットプロトコルが有益である。ローカルエリアネットワーク3は、プロセス制御システム内で関係している制御パラメータ、制御データ、およびその他の関連情報を搬送する専用である。そのようなものとして、LAN3は、エリア制御ネットワークつまりACN3と呼ばれてよい。ACN3は、ACN3の専用の性質に影響を及ぼさないでハブまたはゲートウェイを介して情報およびデータを共用するために他のLANに接続されてよい。
【0056】
標準イーサネットプロトコルに従って、複数の物理デバイスが、多様な「ノード」でACN3に接続されてよい。ACN3に接続されている各物理デバイスは、ノードで接続されており、各ノードは、ACN3を実現するために使用されているLANプロトコルに従って別個にアドレス指定可能である。
【0057】
冗長システムを確立するためには、単一イーサネットまたはLANシステムの故障の結果、システム全体の故障が生じないように、2つまたは3つ以上のイーサネットシステムからACN3を構築することが望ましいことがある。このような「冗長イーサネット」が使用されているとき、1つのイーサネットLANの故障は検出され、代わりのイーサネットLANが、ACN3の所望の機能性を提供するためにマッピングすることができる。
【0058】
メインパーソナルコンピュータ(「PC」)2は、ACN3上でノードを形成する。PC2は、例えば、MicrosoftのWindow NTシステムなどの標準オペレーティングシステムを実行している標準パーソナルコンピュータであってよい。メインPC2は、ユーザ入力コマンドに応えて、ACN3を介して、メインPC2内で選択、確立されている制御ルーチンにより定義されている
コントロールストラテジーを実現する要素4と5として特定されている1つまたは複数のローカル制御装置に提供され、多様な制御ルーチンを生成するように構成される。メインPC2は、ローカル制御装置4または5を介してよりむしろ、A
CN3全体での伝達を介して、ポンプ、弁、モータ等のフィールドデバイス上で直接制御ルーチンを実現するように構成されてもよい。
【0059】
ローカル制御装置4と5は、PC2からACN3を通して制御ルーチンおよびその他の構成データを受け取る。それから、ローカル制御装置は、PC2により提供されているルーチンにより確立されている制御システムを実現するために、フィールド内で物理ステップを実際に実現し、実行する、(ポンプ、モータ、調整器弁などの)多様なフィールドデバイス6から15に対する多様な種類の信号を生成する。
【0060】
2つの型のフィールドデバイスが、FieldBus、Profitbus等などの特定の制御プロトコルに反応するデバイス6から10を含むローカル制御装置4と5に接続されてよい。当業者が理解するように、それらに従って
特定プロトコル命令が(フィールドバスフィールドデバイスなどの)プロトコルフレンドリなデバイスに提供され、フィールドデバイス内に位置している制御装置に、プロトコル機能に対応するある
特定の機能を実現させる、(フィールドバスなどの)標準制御プロトコルがある。したがって、フィールドデバイス6から11は、プロトコルに特有な(例えばFieldBus)制御コマンドを、ローカル制御装置4と5、またはパーソナルコンピュータ2のどちらかから受け取り、フィールドデバイスに
特定の機能を実現する。
【0061】
ここでもまたローカル制御装置4と5に接続されているのは、それらは局所的な処理力を含まず、直接制御信号に応えることができるため、非プロトコルと呼ばれている非プロトコルフィールドデバイス12から15である。したがって、フィールドデバイス12から15は、FieldBus制御プロトコルなどの
特定制御プロトコルにより定義されるだろう機能を実現することができない。
【0062】
非プロトコルフィールドデバイス12から15を、プロトコルフレンドリ(例えば、FieldBusに特有な)デバイス6から11として動作できるようにするために、機能性が供給される。さらに、この同じ機能性により、ローカルフィールドデバイス6から11、ローカル制御装置4と5、およびパーソナルコンピュータ2の間で、プロトコルに特有な制御ルーチンの実装を分散できるようになる。
【0063】
プロトコルに特有な制御ルーチンの配置は、
図1Bに詳細に示されている。
図1Bは、
図1Aに図示されているシステム、特にパーソナルコンピュータ2、イーサネット3、ローカル制御装置4、スマートフィールドデバイス6、およびダムデバイス12の一部分をさらに詳細に参照している。
【0064】
パーソナルコンピュータ2は、FieldBusプロトコルなどの標準制御プロトコルの標準機能ルーチンを実現するためのプログラムソフト
ウエアルーチンを含む。したがって、パーソナルコンピュータ2は、FieldBusコマンドを受け取り、フィールドバス機能を備えているローカルフィールドデバイスが実現できるだろう機能ルーチンのすべてを実現するようにプログラミングされる。FieldBusブロック機能性を実現するためにパーソナルコンピュータ2をプログラミングする能力およびステップは、技術で通常の技能を持つ人にとっては明らかであろう。
【0065】
イーサネット3によりパーソナルコンピュータ2に接続されているのは、ローカル制御装置4である。ローカル制御装置4は、中央演算処理装置を構成し、適切な実用可能な(operational)機能を実現するために制御信号を提供するランダムアクセスメモリに接続されている中央演算処理装置を含む。読取り専用メモリは、ランダムアクセスメモリに接続されている。読取り専用メモリは、FieldBusのような標準制御プロトコルの機能ルーチンのすべてを実現するように中央演算処理装置を構成することができる制御ルーチンを含
むようにプログラミングされる。パーソナルコンピュータ2は、読取り専用メモリ内のプログラマルーチンの1つ、2つ以上、あるいはすべてを、FieldBusルーチンなどの標準制御プロトコルルーチンの1つ、2つ以上、またはすべてを実現するようにCPUを構成するために、ランダムアクセスメモリに転送させる、ローカル制御装置4にイーサネット3を通して信号を送信する。
【0066】
スマートフィールドデバイス6は、一定の制御機能を実現する中央演算処理装置を含む。デバイスが、例えばFieldBusデバイスである場合には、フィールドデバイス6に結び付いている中央演算処理装置は、FieldBus機能性要件のすべてを実現できる。
【0067】
ローカル制御装置4には、FieldBusに特有な制御を実現する能力があるため、制御装置4は、非プロトコルデバイス12がFieldBusデバイスとして動作し、操作されるように動作する。例えば、制御ルーチンがパーソナルコンピュータ2内で、またはローカル制御装置4のCPUで実行している場合、その制御ルーチンは、FieldBusコマンドを実現し、FieldBusデバイス6とフィールドバスデバイスとして動作している非プロトコルデバイス12に提供することができる。フィールドデバイス6はFieldBusデバイスであるため、デバイス6は、これらのコマンドを受け取り、それによりそれらのコマンドによって命令される制御機能性を実現する。しかしながら、非プロトコルデバイス12は、ローカル制御装置4の中央演算処理装置とともに動作し、フィールドデバイスと組み合わされているローカル制御装置がFieldBusコマンドを実現し、操作するように、FieldBus要件を実現する。
【0068】
非FieldBusデバイス12が、FieldBusデバイスとして行動(act)し、動作できるようにすることに加えて、説明された態様は、
図1Aに図示されているシステム1全体でのFieldBus制御ルーチンの分散を可能にする。例えば、制御ルーチンが、当初、フィールドデバイス6に複数のFieldBus制御ルーチンを実現するように要求する範囲まで、システム1は、FieldBus制御ルーチンの一部がローカル制御装置5により実現されており、それ以外のFieldBusルーチンがローカル制御装置4に記憶されているFieldBusルーチンの使用により実現されるように、制御をローカル制御装置4とローカル制御装置5の間で分けることを可能にする。FieldBusルーチン実装の分割は、さらに精密でさらに高速な制御、およびシステムの総体的な処理力のさらに効率的な活用を可能にすることがある。さらに、パーソナルコンピュータ2に、FieldBus制御ルーチンを実現する能力があるという事実、FieldBusルーチンは、ローカル制御装置4とパーソナルコンピュータ2の間でさらに分散される。このようにして、システムは、パーソナルコンピュータ2が、ある特定の制御アルゴリズムに対してFieldBusルーチンの1つまたはすべてを実現できるようにする。
【0069】
さらに、システムは、FieldBusルーチンが、ローカル制御装置4で記憶されているFieldBusルーチンで使用することにより、非FieldBusデバイス12で実現されるのと同じように、パーソナルコンピュータ2に記憶されているFieldBus制御ルーチンを使用することにより、イーサネット3に直接接続されている非FieldBusデバイスに対するFieldBus制御の実装を可能にする。
【0070】
プロセス制御環境100は
図1Cに図示され、デジタル制御システム、プロセス制御装置等を実現するための制御環境を図解する。プロセス制御環境100は、多様なワークステーションと複数の制御装置/マルチプレクサ110の間でデータおよび制御信号を転送、受信するために、ローカルエリアネットワーク(「LAN」)108によって電気的に相互接続されている、オペレータワークステーション102、実験室ワークステーション104、およびエンジニアリングワークステーション106を含む。ワークステーション102、104、106は、LAN108により、ワークステーションと複数のプロセス112の間で電気的に接続して機能する(interface)複数の制御装置/マルチプレクサ110に接続されていると図示されている。複数の多様な実施態様においては、LAN1
08は、制御装置/マルチプレクサ110に直接的に接続されている単一のワークステーションを含むか、あるいは代わりに、プロセス制御環境100の目的および要件に応じて、複数のワークステーション、例えば3つのワークステーション102、104、106および多くの制御装置/マルチプレクサ110を含む。単一プロセス制御装置/マルチプレクサ110が複数のプロセス112を制御するか、あるいは代わりに単一プロセスの一部を制御する実施態様もある。
【0071】
プロセス制御環境100においては、プロセス
コントロールストラテジーは、例えば、エンジニアリングワークステーション106でソフト
ウエア制御ソリューションを作成し、実行のために、LAN108を介してソリューションをオペレータワークステーション102、実験室ワークステーション104、および制御装置/マルチプレクサ110に転送することにより
展開される。オペレータワークステーション102および実験室ワークステーション104供給インタフェースは、制御装置/マルチプレクサ110内で実現されている制御/監視
ストラテジーに表示し、プロセス112を表示し、設計されているソリューションの要件に従って、属性値を変更するために、制御装置/マルチプレクサ110の1つまたは複数に通信する。プロセス112は、スマートフィールドデバイスまたは従来の(非スマート)フィールドデバイスであってよい、1つまたは複数のフィールドデバイスから形成されている。プロセス112は、2つのフィールドバスデバイス132、HART(ハイウェイアドレス指定可能リモート変換器(highway addressable remote transducer))デバイス134、および従来のフィールドデバイス136として実例として描かれている。
【0072】
加えて、オペレータワークステーション102および実験室ワークステーション104は、制御されているプロセス112のステータスおよび状態に関してオペレータに視覚フィードバックおよび音声フィードバックを通信する。エンジニアリングワークステーション106は、中央演算処理装置(CPU)116とディスプレイ、およびキーボード、ライトペン等の入/出力装置またはユーザインタフェースデバイス118を含む。CPU116は、典型的には専用メモリ117を含む。専用メモリ117は、
図1Cに図示されているプロセス制御環境100の制御動作および機能を実現するためにCPU116上で実行する、デジタル制御システムプログラム(図示されていない)を含む。プロセス制御環境100内でのオペレータワークステーション102、実験室ワークステーション104、および他のワークステーション(図示されていない)は、ユーザとCPUの間での対話を可能とするために、ディスプレイ(図示されていない)およびユーザインタフェースデバイス(図示されていない)に電気的に接続されている少なくとも1つの中央演算処理装置(図示されていない)を含む。1つの実施態様においては、プロセス制御環境100は、68360プロセッサにより動かされている一次イーサネットポートと二次イーサネットポート(それぞれSCSIとSCC3)のある68040とのコンパニオン(companion)モードで実行している、Motorola 68040プロセッサおよびMotorola 68360通信プロセッサを使用して実現されているワークステーションを含む。
【0073】
プロセス制御環境100は、組み合わされて制御テンプレートシステム120を形成している、テンプレートジェネレータ124および制御テンプレートライブラリ123も含む。制御テンプレートは、プロセス、およびある特定のプロセス制御
関数、制御属性、変数、および特定の
関数に対する出力、および必要に応じて、エンジニアビューとオペレータビューなどの
関数のグラフィックビューに使用されている
手法(methodology)を制御するために使用される属性関数のグルーピングとして定義される。
【0074】
制御テンプレートシステム120は、テンプレートジェネレータ124と通信する制御テンプレートライブラリ123を含む。制御テンプレートライブラリ123は、プロセス制御プログラムで使用するための、事前に定義されたまたは既存の制御テンプレート
関数
のセットを表すデータを記憶する。制御テンプレート
関数とは、一般的にシステムデザイナーからユーザへとシステムに付属するテンプレートである。テンプレートジェネレータ124とは、有利に、ユーザが、制御テンプレート
関数を作成したり、既存の制御テンプレート
関数を修正できるようにするインタフェースのことである。作成され、修正されたテンプレート
関数は、制御テンプレートライブラリ123内に選択式で記憶される。
【0075】
テンプレートジェネレータ124は、属性方法言語ジェネレータ126、およびグラフィックジェネレータ128を含む。属性方法言語ジェネレータ126は、ユーザが特定の制御テンプレートのために新しい、または修正済みの
関数を実行する方法またはプログラムを選択できるようにするために表示画面を提供することだけではなく、ユーザが、新しい制御テンプレート
関数の作成、またはある特定の既存の制御テンプレート
関数の修正に関連している複数の属性
関数を定義できるようにする表示画面を供給する。グラフィックジェネレータ128は、特定の制御テンプレートに対応しているグラフィックビューを設計する能力をユーザに与える。ユーザは、属性方法言語ジェネレータ126およびグラフィックジェネレータ128によって記憶されているデータを活用し、制御テンプレートに対し属性方法およびグラフィックビューを完全に定義する。作成済みの制御テンプレート
関数を表すデータは、通常、制御テンプレートライブラリ123に記憶され、それ以降、プロセス制御ソリューションを設計するためにエンジニアが選択および使用する場合に利用できる。
【0076】
プロセス制御環境100は、オブジェクト指向フレームワークを使用して実現される。オブジェクト指向フレームワークは、クラス階層、オブジェクト状態、およびオブジェクト動作などのオブジェクト指向概念を使用する。以下に簡略に説明されているこれらの概念は、技術においてよく知られている。さらに、オブジェクト指向フレームワークは、技術でよく知られている、C++プログラミング言語などのオブジェクト指向プログラミング言語を使用して作成されるか、あるいは好まれている実施態様での場合のように、Cなどの非オブジェクト言語を使用し、その言語でオブジェクト指向フレームワークを実現して作成されてよい。
【0077】
オブジェクト指向フレームワークのビルディングブロックは、オブジェクトである。オブジェクトは状態および動作により定義される。オブジェクトの状態は、オブジェクトのフィールドにより述べられる。オブジェクトの動作は、オブジェクトの方法により述べられる。各オブジェクトは、オブジェクトにテンプレートを提供するクラスの実体(以下では、インスタンスという)である。クラスは、ゼロまたはそれ以上のフィールド、およびゼロまたはそれ以上の方法を定義する。
【0078】
フィールドとは、オブジェクトの状態の一部を定義している情報を含むデータ構造である。同じクラスのインスタンスであるオブジェクトは、同じフィールドを持つ。ただし、オブジェクトのフィールド内に記憶されている特定の情報は、オブジェクトごとに変わることがある。各フィールドには、整数値などの直接的である、あるいは別のオブジェクトに対する参照などの間接的である情報が記憶できる。
【0079】
方法とは、コンピュータシステムソフト
ウエアによりCPU116内で実行できるコンピュータ命令の集合体である。ソフト
ウエアが、方法が定義されているオブジェクトが方法を達成するように要求すると、方法の命令は実行され、つまり方法は達成される。方法は、方法を含むクラスのメンバーである任意のオブジェクトにより達成できる。その方法を達成しているその特定のオブジェクトは、応答者、つまり応答しているオブジェクトである。方法を達成する時に、応答者は1つまたは複数の引数、つまり入力データを消費し、ゼロまたは1つの結果、つまり出力データとして戻されるオブジェクトを作成する。ある特定のオブジェクトに対する方法が、そのオブジェクトの動作を定義する。
【0080】
オブジェクト指向フレームワークのクラスは、クラス階層で編成される。クラス階層においては、クラスは、そのクラスのスーパークラスにより定義されるフィールドと方法を継承する。さらに、クラスによって定義されているフィールドおよび方法は、そのクラスのサブクラスによって継承される。すなわち、サブクラスのインスタンスは、スーパークラスによって定義されているフィールドを含み、スーパークラスによって定義されている方法を達成することができる。したがって、オブジェクトの方法が呼び出されると、アクセスされる方法は、オブジェクトがそのメンバーであるクラスで、あるいはオブジェクトがメンバーであるクラスのスーパークラスの任意の1つで定義されることがある。オブジェクトの方法が呼び出されると、プロセス制御環境100は、オブジェクトのクラス、および必要な場合にはオブジェクトのあらゆるスーパークラスを調べることによって、実行する方法を選択する。
【0081】
サブクラスは、サブクラスの動作を改善または変更するために、スーパークラスから継承される方法定義を無効にしたり、取って代わることがある。ただし、サブクラスは、方法のシグナチャに取って代わることができない。方法のシグナチャは、方法の識別子、引数の数と型、結果が戻されるかどうか、および戻される場合には結果の種類を含む。サブクラスは、方法の性能という点で、実行されるコンピュータ命令を定義し直すことにより継承されている方法定義に取って代わることがある。
【0082】
インスタンスを持つことができるクラスは、具象クラスである。インスタンスを持つことができないクラスは、抽象クラスである。抽象クラスは、抽象クラスのサブクラスによって継承されるフィールドおよび方法を定義してよい。ただし、抽象クラスのサブクラスは、他の抽象クラスであることがある。ただし、究極的には、クラス階層内で
は、サブクラスは具象クラスである。
【0083】
以下に説明される混合(mix-in)クラスを除いては、開示されている好まれる実施態様に定義されているすべてのクラスは、クラスのサブクラス、オブジェクトである。したがって、ここに説明されており、混合クラスではない各クラスは、クラスオブジェクトの方法およびフィールドを継承する。
【0084】
プロセス制御環境100は、
図2に図示されている、構成モデル、つまり構成実装210の、および実行時モデル、つまり実行時実装220の中に存在する。構成実装210においては、プロセス制御環境100内の構成要素デバイス、オブジェクト、相互接続、および相互関係が定義される。実行時実装220においては、多様な構成要素デバイス、オブジェクト、相互接続、および相互関係の動作が実行される。構成実装210および実行時実装220は、ダウンロードすることにより相互接続される。ダウンロードされた言語は、ユーザによって供給されている定義に従ってシステムオブジェクトを作成し、供給されている定義からインスタンスを作成する。具体的には、各デバイスに関係する完全に構成されているデバイステーブルが、起動時に、およびデバイステーブルが変更されると、すべてのワークステーションにダウンロードされる。制御装置/マルチプレクサ110の場合、ダウンロードされたデバイステーブルは、制御装置/マルチプレクサ110が、
特定の制御装置/マルチプレクサ110内で構成され、使用されている遠隔モジュールデータに基づいて通信を始動しなければならないデバイスのためのデータだけを含んでいる。他の構成データがダウンロードされるときに、デバイステーブルが制御装置/マルチプレクサ110にダウンロードされる。定義をダウンロードすることに加えて、ダウンロード言語は、インスタンスおよびインスタンス値もアップロードする。構成実装210は、インストール手順を使用して実行時実装220内で実行するために起動される。また、ネットワーク通信パラメータは、構成データがダウンロードされるとき、および値が変更されるときに各デバイスにダウンロードされる。
【0085】
プロセス制御環境100は、複数のサブシステムを含んでおり、サブシステムの内のいくつかは構成実装と実行時実装の両方を備えている。例えば、プロセスグラフィックサブシステム230は、ユーザ定義ビューおよびオペレータ接続(interfacing)をプロセス制御環境100のアーキテクチャに供給する。プロセスグラフィックサブシステム230は、構成実装210の一部であるプロセスグラフィックエディタ232、および実行時実装220の部分であるプロセスグラフィックビューア234を有している。プロセスグラフィックエディタ232は、ダウンロードされた言語での相互サブシステムインタフェース236によりプロセスグラフィックビューア234に接続されている。プロセス制御環境100は、制御モジュールおよび装置モジュールを構成し、定義及びモジュールエディタ242の中にインストールし、実行時制御装置244の中で制御モジュールおよび装置モジュールを実行する制御サブシステム240も含む。定義及びモジュールエディタ242は、構成実装210内で動作し、実行時制御装置244は実行時実装220内で動作し、連続順序制御
関数を供給する。定義及びモジュールエディタ242は、ダウンロードされた言語で相互サブシステムインタフェース246によって実行時制御装置244に接続される。複数のサブシステムが、サブシステムインタフェース250によって相互接続される。
【0086】
構成実装210および実行時実装220は、マスタデータベース260に接続し(interface)、共通のデータ構造をサポートする。多様なローカル(非マスタ)データベース262は、マスタデータベースにインターフェイスし、例えば、ユーザによって命令されるように、構成データをマスタデータベース260からローカルデータベース262に転送する。マスターデータベース260の一部は、永続データベース270である。永続データベース270とは、データベースの作成者が存在しなくなってもデータベースが存在し続けるように時間の限界を超え(transcends)、データベースが、それが作成されたアドレス空間とは異なるアドレス空間へ削除可能であるように空間の限界を超える(transcends)オブジェクトのことである。構成実装210の全体は、永続データベース270に記憶される。
【0087】
マスタデータベース260およびローカルデータベース262は、構成、統計、および診断の文書が文書化目的で利用できるようにアクセス可能である。
【0088】
実行時インタフェース220は、永続データベース270およびローカルデータベース262にインターフェイスし、構成実装210により形成されているデータ構造にアクセスする。特に、実行時実装220は、選択されている装置モジュール、ディスプレイ等をローカルデータベース262および永続データベース270からフェッチする。実行時実装220は、それ以外のサブシステムにインターフェイスし、定義をインストールし、それにより定義がまだ存在していないときにインスタンスを作成するために使用されるオブジェクトをインストールし、実行時インスタンスを具体化し、多様なソースからの情報を宛先オブジェクトに転送する。
【0089】
デバイステーブルは、デバイスにとってローカルであり、組み合わせて構成実装210を定義する構成データベースの要素である。デバイステーブルには、プロセス制御環境100内のデバイスに関する情報が包含されている。デバイステーブル内の情報アイテムは、デバイスID、デバイス名、デバイス型、PCNネットワーク番号、ACNセグメント番号、シンプレックス/冗長通信フラグ、制御装置MACアドレス、コメントフィールド、一次インターネットプロトコル(IP)アドレス、一次サブネットマスク、二次IPアドレス、および二次サブネットマスクを含む。
【0090】
図3を参照すると、ブロック図が、プロセス制御環境100の構成モデルと実行時モデ
ルの両方とともに使用するためのユーザインタフェース300を示している。ユーザインタフェース300の一部は、デバイスをベースにした構成アプローチを特徴とするWindows NTTMオペレーティングシステムで定義されているインターフェイスプログラムであるExplorerTM 310である。ユーザインタフェース300の別の一部は、制御ベースの構成アプローチを使用してインターフェイスするためのモジュール定義エディタ320である。
【0091】
ExplorerTM 310は、構成を選択、構築および操作するためにユーザにより操作される。さらに、ExplorerTM 310は、ネットワーク内の多様なツールおよびプロセッサを横切ってナビゲーションするための初期状態を供給する。ユーザは、ExplorerTM 310を制御し、ライブラリ、領域、プロセス制御装置、およびに時動作にアクセスする。
図3は、プロセス制御環境100内で動作しているタスクによりアクセスされてよい多様なツールの間の関係、およびライブラリ、領域、プロセス制御環境および機密保護などのプロセス制御環境100の構成要素間の関係を示している。例えば、ユーザが「タグ表示」機能を領域内から選択すると、「タグリストビルダー(builder)」が表示され、制御フラグおよびI/Oフラグのリストを示す。タグリストビルダーから、ユーザは「タグ追加」機能を使用して、リストにモジュールを追加し、それにより「モジュールエディタ」を呼び出すことができる。
【0092】
図4を参照すると、概略ブロック図が、構成モデル400のシステムオブジェクト間の階層構造関係を示している。構成モデル400は、制御、I/O、プロセスグラフィックス、プロセス装置、警報、履歴およびイベントを含む多くの構成態様を含む。構成モデル400は、デバイス説明およびネットワークトポロジーレイアウトも含む。
【0093】
構成モデル階層400は、システムオブジェクトの関係およびロケーションを視覚化し、多様なシステムオブジェクト間の保守情報を通信またはナビゲーションするためにある特定のユーザによって使用されるために定義される。例えば、1つの構成モデル階層400、具体的には物理プラント階層は、物理的なプラント関係およびロケーションを視覚化し、物理的なプラント内の多様な計器および装置間で保守情報を通信またはナビゲーションするために、保守エンジニアおよび技術者によって使用されるために定義される。物理プラント階層を形成する構成モデル階層400の実施態様は、SP88物理装置規格階層のサブセットをサポートし、構成モデルサイト410、1つまたは複数の物理プラント領域420、装置モジュール430、および制御モジュール440を含む。
【0094】
構成モデル階層400は、構成モデル階層400内で定義されている1つまたは複数の指定済み物理プラント領域に分割される単一のプロセスサイト410に定義されている。物理プラント領域420はオプションでタグ付きの複数のモジュールを包含し、そのそれぞれは構成モデル階層400内で一意に具体化される。物理プラント領域420は、オプションで1つまたは複数の装置モジュール430を包含する。装置モジュール430は、オプションでその他の装置モジュール430、制御モジュール440、および
ファンクションブロックを包含する。装置モジュール430は、連続
ファンクションブロック、はしご形論理、または
シーケンシャルファンクションチャート(「SFC」)を含む多くの異なったグラフィックプロセス制御プログラミングテンプレートに従って作成される制御テンプレートを含み、それにより制御される。構成モデル階層400は、オプションで1つまたは複数の制御モジュール440を包含する。制御モジュール440は、物理プラント領域420、装置モジュール430、または別の制御モジュール440などのオブジェクトに包含される。制御モジュール440は、オプションで、その他の制御モジュール440または
ファンクションブロックを包含する。
かくして、制御モジュール440は、コンテナクラスであり、他のオブジェクトの集合であるインスタンスを有している。制御モジュール444は、制御モジュールの方法のコンテンツおよび実装のすべてが非表示となるようにカプセル化される。
【0095】
図5を参照すると、概略ブロック図が、
図4に示されている構成モデル階層400内で動作する構成アーキテクチャ500を示している。構成アーキテクチャ500は、抽象の複数のレベルでの複数のオブジェクトおよびクラスを含む。抽象510の組織上のレベルでは、構成アーキテクチャ500が、構成アーキテクチャ500内で「名前が付けられている」オブジェクトおよびクラスを包含するサイトクラス512を含む。名前が付けられているオブジェクトおよびクラスとは、定義、画面とグラフィックスなどの表示構成要素、およびそれ以外のアイテムである。指定されているオブジェクトおよびクラスは
ファンクションブロック、ユーザアカウント、モジュール、プラント領域、イベント、ライブラリ、およびその他のサイト全体での情報を含む。名前が付けられているアイテムの例とは、ブロック定義、装置モジュール定義、制御モジュール定義、プラント領域名等である。
【0096】
抽象520のプリミティブレベルでは、構成アーキテクチャ500が、「+」などのハードコーディング(hard-coded)されている
関数を含む、構成アーキテクチャ500内での
関数に対するインタフェースを定義するプリミティブを含む。抽象520のプリミティブレベルは、
関数522およびパラメータ524のクラスを含む。
関数522は、構成アーキテクチャ500の抽象の最低レベルでの稼動(operational)
関数である。
関数522は、通常、CまたはC++言語で符号化されている。構成アーキテクチャ500の1つの実施態様においては、実現されている
ファンクションブロック522の完全なセットはプリミティブである。抽象520のプリミティブレベルでのオブジェクトおよびクラスは、サイトクラス512全体で定義される。パラメータ524は、構成アーキテクチャの最低抽象レベルでのクラスおよびオブジェクトである。パラメータ524は、整数、実数、ベクタ、アレイ等を含む。属性値は、
ファンクションブロック522内で使用するためにパラメータ524にマッピングされる。1つの実施態様において、抽象520のプリミティブレベルにある
ファンクションブロック522が、以下に示すように表1〜3に一覧表示されている
ファンクションブロックプリミティブを含む。
【0099】
【表3】
抽象530の定義使用レベルでは、構成アーキテクチャ500は、定義532および使用状況を含む。定義532および使用状況は、組み合わされて、
ファンクションブロック、制御モジュール、装置モジュール、リンクおよび属性を含むオブジェクト用のアルゴリズムおよびインタフェースを定義する。定義532は、
ファンクションブロック、モジュール、リンクおよび属性用のアルゴリズムおよびインタフェースを定義する。使用状況とは、別の定義内でのある定義の使用状況を表す抽象の定義使用状況レベルでのオブジェクトおよびクラスである。
【0100】
抽象540のインスタンスレベルでは、構成アーキテクチャ500は、構成内の「タグ付き」アイテムであるインスタンスを含む。プラント領域542、モジュール544、属性546、およびPIOブロック548がタグ付きインスタンスである。インスタンスは定義532に従って定義される。プラント領域542は、プロセスサイトクラス512の地理学上の、または論理的なセグメンテーションを表す。抽象540のインスタンスレベルでのすべてのオブジェクトおよびクラスは、すべてのモジュールインスタンスがプラント領域542との0または1つの関連付けを有するように、プラント領域レベル全体で定義されている。実行時システムでインストールされるためには、モジュールインスタンスは、モジュールが、プラント領域というこのコンテキストで「によって包含されている」または「よく見られている」として表示されることを意味する、1つの関連付けを有さなければならない。モジュールインスタンス544は、プラント装置の
特定のオブジェクト
に関連付けられているインストール可能オブジェクトである。属性インスタンス546とは、モジュールインスタンス544、プラント領域インスタンス542、またはそれ以外のデバイスでの可視パラメータである。属性インスタンス546は、入力信号、出力信号、データ記憶装置等に使用されてよい。
【0101】
抽象550のデバイスレベルでは、構成アーキテクチャ500は、実際のプラント内の物理的なプロセス制御装置を表す、制御装置、スマートデバイスとコンソール、およびPIOブロックなどの入出力装置(I/O)560等のようなデバイス552を含む。プロセス入出力(PIO)ブロックとは、Hart、FieldBus、および構成アーキテクチャ500中に接続されているそれ以外の入出力装置を含む、高密度と低密度の従来の入出力装置を表す抽象である。高密度または低密度は、I/Oカードでのチャネル数に関係する。例えば、高密度カードには32のチャネルがあるが、典型的には8つのチャネルが低密度カ
ード上にある。デバイス522は、構成アーキテクチャ500内でのプロセス制御装置であり、制御装置、入出力装置、コンソール等のオブジェクトを含む。入出力装置(IO)560は、構成アーキテクチャ500内の物理的なプロセス入出力装置である。
【0102】
スマートデバイスとは、デバイス校正、構成、診断および保守に関係するデータを含む、デバイスに関連するデジタルデータを送受するために実現されるフィールドデバイスである。典型的には、スマートデバイスは、例えば、フィールドデバイスにより測定されているプロセス値を含む多様な情報を示す標準アナログ信号を伝送するためにも適応される。スマートフィールドデバイスの例は、HART(ハイウェイアドレス指定可能リモート変換器)プロトコル、フィールドバスプロトコル、Modbusプロトコル、およびデバイスネットプロトコルに従うフィールドデバイスを含む。
【0103】
システムオブジェクト間の多様な階層構造関係は、異なるユーザによって
図1Cに図示されているプロセス制御環境100を通してのナビゲーションを容易にするため、およびさまざまなタスクを達成するために実現される。制御階層、制御システム階層、動作階層、および物理プラント階層を含む4つの異なる階層構造関係が定義される。
特定システムオブジェクトは、複数の階層構造システム内で実現されてよい。
【0104】
制御階層とは、標準SP階層のサブセットであり、サイトオブジェクト、物理領域オブジェクト、装置モジュールオブジェクト、制御モジュールオブジェクトおよび制御要素オブジェクトを含む、システムオブジェクトを有している。制御階層は、制御動作を編成し、指定済みオブジェクトの範囲を定義するために使用される。ユーザは、信号タグを有している、サイトインスタンス、装置モジュール定義、制御モジュール定義、プラント領域インスタンス、装置モジュールインスタンス、制御モジュールインスタンス、表示モジュールインスタンス、およびプロセスI/Oモジュール/ブロックインスタンスに基づき、制御階層と対話する。
【0105】
制御システム階層は、領域制御ネットワーク(ACN)、プロセス制御ネットワーク(PCN)およびその他のI/Oネットワークの規格を含む多様なネットワーク規格を使用して関連付けられている、オペレータ/構成ステーション、ホストコンピュー、制御装置、I/O装置、スマートデバイス、ゲートウェイ等を含む。1つの実施態様においては、ACNハード
ウエアが、標準10ベースTイーサネット通信ポートを含み、ワークステーションが標準イーサネット10ベースTインタフェースカードとソフト
ウエアドライバを具備する。ユーザは、定義されているサイトインスタンス、ネットワーク定義、定義されているネットワークインスタンス、デバイス、およびファイル、カード、チャネル、制御装置、動作ステーション、およびフィールドバスセグメントなどのサブシステムに基づいて制御システム階層と対話する。
【0106】
領域制御ネットワーク(ACN)は、リモートオブジェクト通信(ROC)レベルと低レベル通信レベルという2つのレベルでの通信機能性を含む。ROCレベルは、Programmed(プログラミング済み)アプリケーションとACN通信システム間のインタフェースを制御する。低レベル通信は、TCP/IPソケットとのインタフェースおよび実際のメッセージの伝送をサポートする。
【0107】
リモートオブジェクト通信(ROC)とは、
図1Cに図示されているプロセス制御環境100内でのオブジェクトの通信をサポートしている、特に、オブジェクトが同じデバイス内に常駐しているのか、リモートデバイスに常駐しているのかに関係なく、オブジェクト間の通信をサポートしているシステム動作である。ROC通信レベルは、要求/応答、要求に基づかない報告、イベント/警報報告を含む通信メッセージサービス、および一斉送信メッセージサービスをサポートする。
【0108】
要求/応答は、それによりアプリケーションがメッセージをリモートデバイスに送信し、そのデバイスから応答を受信するサービスである。要求に基づかない報告とは、定期的に更新済みデータをリモートデバイスに送信するためのサービスである。未変更データは報告されない。イベント/警報報告は、リモートデバイスへの送達のためにイベント、警報およびそれ以外のきわめて重大な情報の伝送に使用される保証済み送達メッセージサービスである。一斉送信メッセージサービスは、通信ネットワーク上のすべてのプログラムアプリケーションデバイスにメッセージを送信するために使用される。ROCレベルは、通信サブシステムの通信方針も設定する。つまり、ROCレベルは、入信メッセージがどのように処理されるのかだけではなく、どのメッセージがいつ送られるのかを管理する担当である。通信フロー制御も、ROC部分の責任となるだろう。
【0109】
低レベル通信サポートは、デバイス接続管理、ACN冗長性、および通信システム診断のために含まれる。デバイス接続管理は、2つのデバイス間の通信接続を確立し、その2つのデバイス間でのメッセージの伝送を管理する。ACN冗長性は、通信リンク故障の検出を取り扱い、あるリンクから別のリンクへの切替えを制御し、ホストデバイスと接続されているリモートデバイス間の通信リンクのステータスを追跡調査する。通信サブシステム診断は、通信完全性と統計情報を追跡調査し、通信診断データに対する要求に応答する。
【0110】
ACN通信システムでのデバイス接続管理は、UDP型とTCP型両方のデバイス接続をサポートする。UDP接続は、デバイス間での通常リアルタイムデータ転送に使用される。TCP接続は、ファイル転送、デバイスフラッシュ、ダウンロード等のストリームプロトコルを使用する
特定アプリケーションに使用される。デバイス間の通信は、Device Connection Object(デバイス接続オブジェクト)によって管理される。デバイス接続オブジェクトは、データを伝送し、2つの通信装置間の通信リンクのステータスを維持する。
【0111】
すべての通常デバイス接続メッセージトラフィックは、単一UDP通信ポートを通して向けられる。デバイス接続オブジェクトは、デバイス通信メッセージトラフィックの管理に必要とされている待ち行列を作成することだけではなく、このUDPポートに関連付けられいている通信ソケットを作成することによって通信システムを起動する。デバイス接続オブジェクトは、デバイス接続通信ソケット上ですべての入信メッセージを受信し、処理のためにメッセージを適切なデバイス接続インスタンスに送る。デバイス接続オブジェクトは、デバイス接続インスタンスに、肯定応答されるのを待機しているメッセージがいつタイムアウトになるのか、いつ通信リンクチェックが期限切れになるのか、およびいつデバイス接続再同期(resyncs)がタイムアウトしたのかを通知することを含む、デバイス接続のタイミング
関数を取り扱う。
【0112】
UDP型通信は、デバイス間でのリアルタイムデータの転送に使用される。リモートオブジェクト通信(ROC)サブシステムは、宛先デバイスまでの伝送のためにメッセージをUDP Device Connection(UDPデバイス接続)に渡す。各デバイスの起動時に、メッセージバッファのプールが作成される。メッセージプールは、デバイス間で伝送されている全データに使用され、通信サブシステムが、メモリを使い尽くすのを妨げ、それ以外のタスクがメモリを使い尽くさないことを確実にし、それにより、通信サブシステムが実行するのを妨げる。通信フロー制御は、デバイス接続オブジェクトで実現される。通信バッファプールのメッセージバッファ数が所定の低レベルに達すると、すべてのリモートデバイスは、低バッファ問題が、影響を受けているデバイスで解決され、メッセージの損失を妨げるまで、メッセージの送信を禁止される。
【0113】
TCP型通信は、ファイル転送およびデバイスフラッシュダウンロードなどのストリーム型プロトコルを使用するアプリケーションに使用される。TCP型接続は、アプリケーションのニーズの期間、確立されている一時的な接続であり、アプリケーションがいったん通信タスクを完了すると終了される。インタオペラビリティー(相互運用性)、互換性、可用性のため、TCP/IPプロトコルスタックが利用される。TCP/IPスタックは、接続指向型バイトストリームプロトコル(TCP)およびコネクションレスメッセージ指向型プロトコル(UDP)を供給する。デバイス接続は、要求/応答メッセージ、応答不要のデータ、およびデバイス間のイベントと警報データをサポートする。通信システムは、単一の通信故障、典型的にはケーブル障害が発生した場合に2つの利用可能な通信リンクの内の1つを通してデバイス接続を維持する。障害の検出および代替通信経路への切替えは、短期の決定的な時間スパンで明らかになる。
【0114】
動作階層は、一般的には、ディスプレイ、レポート、およびその他の情報を
提供するアイテムにアクセスするために、ユーザのある特定のセット、具体的にはオペレータおよび保守エンジニア向けに定義される。ユーザは、サイトインスタンス、User Group(ユーザグループ)定義、プラント領域インスタンス、装置モジュールインスタンス、制御モジュールインスタンス、ディスプレイインスタンス、およびレポートインスタンスに基づいて動作階層と対話する。
【0115】
物理プラント階層は、典型的には、オブジェクト間の物理的な関係を突き止め、プラント計測器および装置についての保守情報をナビゲーションする目的で、ユーザのある特定のセット、具体的には保守エンジニアと技術者向けに定義される。ユーザは、サイトインスタンス、保守領域インスタンス、プラント領域インスタンス、部屋インスタンス、キャビネットインスタンス、ノード/デバイスインスタンス、およびディスプレインスタンスに基づいて物理プラント階層と対話する。
【0116】
複数の階層構造システム内で実現されるシステムオブジェクトは、制御サブシステム、プロセスI/Oサブシステム、制御システムハード
ウエアサブシステム、冗長性管理サブシステム、イベント/警報管理サブシステム、履歴サービスサブシステム、プロセスグラフィックサブシステム、診断提示サブシステム、ユーザ環境サブシステム、管理組織サブシステム、およびフィールド管理システム(FMS)サブシステムを含む、複数のサブシステムの中に配列される。制御サブシステムは、制御モジュールおよび装置モジュールを構成、インストール、および実行するためのルーチンを含む。プロセスI/Oサブシステムは、HART、フィールドバス、従来のI/O、およびその他の入出力システムを含むデバイスへの統一インタフェースである。制御システムハード
ウエアサブシステムは、制御システムトポロジー、トポロジー内でのデバイス、およびデバイスの能力と機能を定義する。制御システムハード
ウエアサブシステムは、ステータスおよび診断を示すデバイスレベルの情報にアクセスするためのオブジェクトおよびデータ構造も含む。
【0117】
冗長性管理サブシステムは、一次制御アプリケーションと二次制御制御アプリケーション間の冗長なコンテキストを確立し、一次制御アプリケーションと二次制御アプリケーションの間のコンテキストで切替えを管理する。冗長性管理サブシステムは、サイト情報およびデータ待ち時間情報を含む冗長なコンテキスト診断情報も監視する。ネットワーク冗長性は、2つの別個のイーサネット通信リンクまたはネットワークを使用して達成される。一次通信リンクとは、好まれている通信経路である。二次リンクは、一次リンク故障時にだけ使用される。通信切替えは、デバイス単位で実行される。例えば、デバイスAがデバイスBとCと通信しており、デバイスCへの一次リンクが故障すると、デバイスAは、一次リンク上でデバイスBとの通信し続けるが、二次リンクをデバイスCとの通信に切り替える。各イーサネットリンクは、IPアドレスとサブネットマスクの専用セットを有している、別個の専用ネットワークである。
【0118】
デバイス接続オブジェクトは、二次リンクにいつ切り替えるのか、および一次リンクにいつ戻すのかを制御すること含む、冗長通信を管理する。プロセス制御システムの各デバイスは、他の通信が発生していないときにリンクテストメッセージを定期的に送信することにより、リモートデバイスへの現在の全リンクの通信ステータスを追跡調査し、各デバイスへの通信リンクのステータスをチェックする。冗長性切り替えは、デバイス接続に基づいて実行される。
【0119】
イベント/警報管理サブシステムは、重要なシステム状態、肯定応答および優先順位計算の通知を構成し、監視し、供給する。履歴サービスサブシステムは、プロセスイベント情報を記憶し、検索する。プロセスグラフィックサブシステムは、表示および定義済みシステムアーキテクチャへのオペレータインターフェイスのためにユーザ定義ビューを供給する。診断提示サブシステムは、通常はユーザの要求で診断情報のディスプレイを供給する。ユーザ環境サブシステムは、ユーザインタフェースを供給し、ユーザが
図1Cに図示されているプロセス制御環境の動作を制御するためのコマンドを入力できるようにする。管理組織サブシステムは、サイト、領域、プリミティブ、ユーザライブラリへのアクセス、および定義済みオブジェクトとインスタンスのロケーションの指定を含むプロセス制御環境100の組織的な構造を設定する。FMSは、HARTデバイスおよびフィールドバスデバイスの構成、インストール、および監視のためのユーザインタフェース、ビュー、および組織構造を供給する。
【0120】
フィールドバスデバイスは、デバイス機能をメインまたは集中化デジタル制御システムから制御するという、さらに長く使用され、さらに型にはまったアプローチとは対照的に、プロセス内でのプロセスの局所化されている制御を実現する。Fieldbusデバイスは、フィールドバスデバイス内のフィールドデバイスと密接に関連付けられている、小型局所化制御装置/マルチプレクサ110を含むことにより局所化制御を達成する。フィールドバスの小型局所化制御装置は、フィールドバスデバイス内のフィールドデバイス上で動作し、フィールドバスデバイスに接続されているそれ以外のスマートフィールドデバイスでも動作する、標準化した制御機能または制御ブロックを実現する。
【0121】
したがって、プロセス制御環境100は、デバイス、特にFieldbusデバイス間での通信および制御が、Fieldbus型制御動作がユーザにトランスペアレントになるように実行されるように、フィールドバス H1規格、Profibus規格、CAN規格およびそれ以外のバスをベースにしたアーキテクチャ規格などのスマートフィールドデバイス規格を実現する。
【0122】
プロセス制御環境100は、フィールドバスデバイスとHARTデバイスなどのスマートデバイス、および従来の非スマートデバイスを含む、実質的には無制限の数および型のフィールドデバイスへの接続を可能にする。多様な数と型のデバイスの制御および通信の動作は、同時に並行して実行されるのが有利である。
【0123】
プロセス制御環境100は、スマート型制御が、HARTデバイス134と従来のデバイス136などの非スマート型デバイスに関して達成されるように、フィールドバス H1規格などの標準フィールドバスプロトコルによって定義されている
ファンクションブロックまたは制御
関数の標準セットを実現し、実行する。さらに、プロセス制御環境100によって、スマートデバイスは、
ファンクションブロックと制御
関数の標準セットを実現できるようになる。有利なことに、プロセス制御環境100は、まるですべての接続されているデバイスがスマートデバイスであるかのように、総体的な
ストラテジーを実現する。この実装は、部分的には、制御構造に根本的なビルディングブロックとして
ファンクションブロックを使用することにより達成される。これらの
ファンクションブロックは、すべての型のデバイス用の制御構造を作成するために定義される。
ファンクションブロックの根本的なビルディングブロックの使用は、
図6、
図7、
図8、および
図9に説明されている。
【0124】
プロセス制御環境100は、
コントロールストラテジー(control strategy)の
特定部分をスマートデバイスおよび非スマートデバイスの中にダウンロードまたはインストールすることによって、
ファンクションブロックおよび制御モジュールの定義を通して総体的な、ユーザによって作成された
コントロールストラテジーを実現する。それ以降、スマートデバイスは、他の制御システム動作とは無関係に、総体的な
ストラテジーのダウンロードされた部分を自動的に実行する。例えば、デバイスの中にダウンロードされた、またはインストールされた
コントロールストラテジーの部分は、制御装置/マルチプレクサ110およびワークステーションの制御動作とは無関係に、およびそれと並行して動作するが、他の制御動作は、スマートデバイスを管理し、
コントロールストラテジーのそれ以外の部分を実現する。事実上、プロセス制御環境100は、スマートデバイス内で制御装置/マルチプレクサ110を使用して、
コントロールストラテジーを実現する。
【0125】
図5に図示されている
関数522の
ファンクションブロックを定義するブロック図の例が、
図6に示されている。具体的には、
図6は、プリミティブオブジェクトだけを包含するように定義されている「要素別処理」
ファンクションブロック定義600を描いている。要素別処理
ファンクションブロック定義600は、合計
関数を定義し、「+」プリミティブ610、プリミティブ610に適用されている第1パラメータ614である第1入力属性612、およびプリミティブ610に適用されている第2パラメータ624である第2入力属性622を含む。プリミティブ610は、出力属性630として供給される結果を作り出す。この例では、要素別処理
ファンクションブロック定義600は、作成され、SUMと名前が付けられるブロック定義である。
【0126】
図5に図示されている
関数522の
ファンクションブロックを定義しているブロック図の第2の例は、
図7に示されている。具体的には、
図7は、1つまたは複数の要素別処理
ファンクションブロック600、およびオプションで1つまたは複数のプリミティブオブジェクトを包含するように定義される「複合」
ファンクションブロック定義700を描いている。複合
ファンクションブロック定義700は、複合合計
関数を定義し、そのそれぞれが、
図6に示されているSUM要素別処理
ファンクションブロック600と同じである、第1SUM要素別処理
ファンクションブロック710と第2SUM要素別処理
ファンクションブロック712を含む。複合
ファンクションブロック700は、それぞれ、第1SUM要素別処理
ファンクションブロック710に適用されている第1パラメータ724と第2パラメータ726である、第1入力属性720および第2入力属性722を有している。第1要素別処理
ファンクションブロック710は、第2SUM要素別処理
ファンクションブロック712に第1パラメータ730として適用される結果を生じさせる。複合
ファンクションブロック700は、第2SUM要素別処理
ファンクションブロック712に適用されている第2パラメータである、第3入力属性728を有している。第2SUM要
素別処理
ファンクションブロック712は、出力属性734として供給される結果を生じさせる。この例では、複合
ファンクションブロック定義700は、作成され、SUM3と名付けられているブロック定義である。
【0127】
図4に図示されている制御モジュール440の制御モジュールを定義しているブロック定義の例が、
図8に示されている。具体的には、
図8は、定義されており、多様な入力属性810、要素別処理
ファンクションブロック820、第1SUM3複合
ファンクションブロック830、および第2SUM3複合
ファンクションブロック832を包含する、制御モジュール定義800を描いている。例示的な制御モジュール440は、その内の3つが第1SUM3複合
ファンクションブロック830に適用されている、5つの各要素別処理
ファンクションブロック820に接続されている5つの入力属性810を含む。第1SUM3複合
ファンクションブロック830は、残りの2つの要素別処理
ファンクションブロック820によって供給されているパラメータと組み合わせて第2SUM3複合
ファンクションブロック832へのパラメータとして供給される結果を生じさせる。第2SUM3複合
ファンクションブロック832は、出力属性840として供給される結果を生じさせる。この例では、制御モジュール800は、作成され、CMIと名前が付けられている制御モジュール定義である。
【0128】
図5に図示されているモジュールインスタンス544、具体的には制御モジュールインスタンスのモジュールインスタンスを定義しているブロック図の例が、
図9に図示されている。制御モジュールインスタンス910と920は、各制御モジュールインスタンス910と920が、
図8に図示されている5つの入力属性810に一致する、それぞれ5つの入力属性912と922を含むように、CM1制御モジュール定義に従って作成される。各制御モジュールインスタンス910と920は、
図8に図示されている出力属性840に一致する、それぞれ1つの出力属性914と924も含む。この例では、制御モジュールインスタンス910と920は、作成され、それぞれCALC1とCALC2とタグが付けられている制御モジュールインスタンスである。
【0129】
システムユーザは、定義エディタを使用して、SUM3要素別処理
ファンクションブロック定義、SUM3複合
ファンクションブロック定義、およびCM1制御モジュール定義などの定義を作成し、名前を付ける。それから、モジュールエディタを使用し、システムユーザは、インスタンスを作成し、CALC1とCALC2制御モジュールインスタンスなどのタグを付ける。
【0130】
図10を参照すると、フローチャートは、実行時の制御モジュール実行の一例を示している。実行時プログラムは、スケジューラルーチンを含む。スケジューラルーチンは、コンピューティング技術でよく知られている。スケジューラルーチンは、複合制御モジュール、例えば
図8に図示されているタグCM1付きの複合制御モジュール440の実行1010を要求する。CM1複合制御モジュール440は、入力属性820の転送を始動し、あらゆる関連付けられいてるリンク、つまり属性関連付けを転送させる(ステップ1014)。データベース定義は、典型的には、「関連付け」を参照するが、実行時定義は「リンク」に関係する。ステップ1016から1056では、CM1複合制御モジュール440が各要素別処理
ファンクションブロック820、第1SUM3複合
ファンクションブロック830および第2SUM3複合
ファンクションブロック832に、代わりに実行するように要求する。
【0131】
具体的には、ステップ1016では、CM1複合制御モジュール440が、各要素別処
ファンクションブロック理820に実行するように要求する。要素別処理
ファンクションブロック820は、入力属性、例えば
図6に図示されている第1入力属性612の転送1018を始動する。要素別処理
ファンクションブロック820の入力属性は、ステップ1
014で転送されているリンクからの値のロードを要求する(ステップ1020)。リンクは、ソース属性から宛先属性へ値をコピーする(ステップ1022)。要素別処理
ファンクションブロック820は、ブロックアルゴリズム1024を実行する。ブロックアルゴリズムの実行完了時、要素別処理
ファンクションブロック820は、出力属性1026、例えば、
図6に図示されている出力属性630の転送を始動する。
【0132】
ステップ1028では、CM1複合制御モジュール440が、第1SUM3複合
ファンクションブロック830に実行するように要求する。第1SUM3複合
ファンクションブロック830は、入力属性、例えば
図7に図示されている入力属性720、722、および728要素別処理
ファンクションブロック820からの転送1030を始動する。ステップ1032では、第1SUM3複合
ファンクションブロック830は、内部
ファンクションブロック、例えば、
図7に図示されている第1SUM要素別処理
ファンクションブロック710と第2SUM要素別処理
ファンクションブロック712に、代わりに実行するように要求する。第1SUM要素別処理
ファンクションブロック710は、ステップ1034で、入力属性を読み取り、ブロックアルゴリズムを実行し、出力属性を設定する。第2SUM要素別処理
ファンクションブロック712は、ステップ1036で、入力属性を読み取り、ブロック図を実行し、出力属性を設定する。第1SUM3複合
ファンクションブロック830は、ステップ1038で出力属性の転送を始動する。第1SUM3複合
ファンクションブロック830の出力属性は、ステップ1040で、関連付けられているリンクに、出力属性から値をコピーするように要求する。
【0133】
ステップ1042では、CM1複合制御モジュール440が、第2SUM3複合
ファンクションブロック832に実行するように要求する。第2SUM3複合
ファンクションブロック832は、第1SUM3複合
ファンクションブロック830出力属性に接続されているリンクから入力属性の転送1044を始動する。ステップ1046においては、第2SUM3複合
ファンクションブロック832が、内部
ファンクションブロック、例えば、
図7に図示されている第1SUM要素別処理
ファンクションブロック710と第2SUM要素別処理
ファンクションブロック712に、代わりに実行するように要求する。第1SUM要素別処理
ファンクションブロック710は、ステップ1048で、入力属性を読み取り、ブロックアルゴリズムを実行し、出力属性を設定する。第2SUM要素別処理
ファンクションブロック712は、ステップ1050で、入力属性を読み取り、ブロックアルゴリズムを実行し、出力属性を設定する。第2SUM3複合
ファンクションブロック832は、ステップ1052で出力属性の転送を始動する。第2SUM3複合
ファンクションブロック832の出力属性は、ステップ1054で、関連付けられているリンクに、出力属性からの値をコピーするように要求する。
【0134】
ステップ1056では、CM1複合制御モジュール440が、出力属性の転送を始動し、出力属性840が、第2SUM3複合
ファンクションブロック832からのリンクに、第2SUM3複合
ファンクションブロック832出力属性の値をコピーするように要求する。いくつかの実施態様においては、出力
ファンクションブロックは、出力値をユーザ構成PIOブロック属性(図示されていない)に出力する。このようにして、PIO属性は、出力
ファンクションブロックが出力値をPIOブロック属性に出力する間に、
ファンクションブロックによって「抽出される」。同様にして、入力
ファンクションブロックは、PIOブロック属性から入力属性値を抽出する。
【0135】
ユーザは、制御モジュールを構成し、
コントロールストラテジーを決定する
ファンクションブロックを指定することにより、モジュール
コントロールストラテジーを定義する。ユーザは、
ファンクションブロックを追加、修正および削除し、
ファンクションブロックに関連付けられているパラメータを構成し、新規属性に対するビューを作成することによって、モジュール
コントロールストラテジーを修正するか、デバッグする。
【0136】
ファンクションブロックおよび制御モジュールを定義することによって、ユーザ定義
コントロールストラテジー、アプリケーションプログラムまたは診断プログラムは、モジュールとして識別されている相互接続済み制御オブジェクトの層のセットとして表される。
コントロールストラテジーの層は、ユーザによって指定されるように相互接続されているモジュールのセットを含む。モジュールは、典型的には、
特定の関数、および情報をユーザに表示するために使用される表示構成要素を実行するためのアルゴリズムを含む。モジュールは、オプションで、他のモジュールに接続するための入力接続と出力接続のセットを含むように表記される。モジュールは、指定されている
関数を実行し、指定されている入力接続と出力接続を介して他のモジュールに接続されている「ブラックボックス」と考えてよい。
【0137】
図11を参照すると、表示画面が、制御構造のさらに高い層でのモジュールまたはアプリケーションプログラムLOOPSIMの一例を示すものとして役立つ。LOOPSIM1060のアプリケーションプログラムの示されている層は、AI1と呼ばれている入力属性(AIN)モジュール1062、不感時間モジュール1064、比例積分微分(PID)制御モジュール1066、出力属性(AOUT)モジュール1068、およびシミュレーションモジュール1070を含む。実例となるモジュールのそれぞれは、回線を介して他のモジュールに接続されている、名前が付けられている入力接続および出力接続を含む。モジュールのセット、モジュールのセットの入力接続および出力接続、およびモジュールの間の相互接続が、LOOPSIM1060アプリケーションの動作を定義する。
【0138】
最低レベルでは、モジュールは、相互接続されている
ファンクションブロックのセットである。さらに高いレベルでは、モジュールでは、代わりにサブモジュールの追加セットを含んでよい相互接続されているサブモジュールのセットである。例えば、PID制御モジュール1066は、典型的には、PID機能性に含まれているさまざまな
関数を実行する、相互接続されているサブモジュールのセットである。PIDモジュール1066の入力接続および出力接続は、PIDモジュール1066の次に低い層内の1つまたは複数のサブモジュールの入力接続および出力接続である。PIDモジュール1066のサブモジュールは、オプションで、サブモジュール間での相互接続を定義するほど十分なそれ以外の入力接続および出力接続を含む。
【0139】
任意のモジュールレベルでのアプリケーション、モジュールまたはサブモジュールは、わずかに異なる
関数を実行するため、あるいは異なるやり方で同じ
関数を実行するためにユーザによりオプションで修正される。したがって、ユーザは、オプションでモジュールを修正し、それにより、制御構造を希望されるように修正する。具体的には、ユーザは、オプションで、モジュールに入力接続と出力接続を追加し、モジュールの入力接続および出力接続をさらに高いレベルのモジュールまで拡大し、そのため多様なアプリケーション用のモジュールをカスタマイズする。例えば、入力接続および出力接続をするユーザモジュール1066は、PIDモジュール1066に対する入力接続および出力接続として表示される。
【0140】
プロセス制御環境は、Field Blocks、Sequential Function Charts(SFC)、Ladder
LogicおよびStructured TextなどのIEC−1131標準言語を含む複数の制御言語で編集動作を供給することにより、制御構造の定義および修正を容易にする。したがって、異なった制御背景のさまざまな種類のユーザがさまざまな言語を使用し、同じアプリケーションまたは異なったアプリケーションを実現するためのさまざまなモジュールを書き込む。
【0141】
制御モジュールは、複数の有利な特性を有するように指定される。属性への直接アクセ
スを可能にする制御モジュールもある。例えば、直接(最大性能)通信をサポートする「重い(heavy)」属性と呼ばれている属性がある。直接通信は、例えば、
ファンクションブロックおよびControl Modules(制御モジュール)を接続するため、イベント/警報検出および高性能傾斜(trending)をサポートするために有利に使用される。制御モジュールの定義時に自動的に作成され、ユーザが制御モジュールの属性として露呈されるパラメータを促進または強制するオプションを持つ、いくつかの属性がある。パラメータを包含しているが、この性能を供給する上で生じるオーバヘッドを保証しない、属性の直接的な通信性能が制御モジュール、装置モジュール、PIOブロック、またはデバイスなどのモジュールを通してアクセスできるようになるパラメータもある。これらのパラメータは、制御システムチューニング、デバッギング、および保守に関係する情報を供給するために有利にアクセスされる。いくつかの実施態様においては、これらのパラメータは、コンテナ内の属性、呼出し可能サービス、およびサブコンポーネントを明らかにするためにタグ付きコンテナによって提供されているサービスを使用する、汎用パラメータブラウザアプリケーションによってアクセスされる。
【0142】
図12を参照すると、ブロック図が、制御サブシステムの動作を通してPIOデバイスの中にプロセスI/O属性ブロックをインストールするためのオブジェクト指向方法を説明している。定義済みオブジェクトのブロック1110は、サイトオブジェクト1112、制御装置デバイス1114、制御装置I/Oサブシステム1116、PIOインタフェースデバイス1118、およびPIOデバイス1120を含む。PIOデバイスのインストールに先立って、制御装置I/Oサブシステム1116が、予め作成される。PIOデバイス1120も、インストールまたはダウンロードのどちらかにより以前作成されている。定義済みオブジェクトのブロック1110は、詳細ポイント1122をブロック定義1124のリストに向け、作成ブロック1128の動作を命令する作成ポインタ1126によって作成される特定の型のオブジェクトを指定する。ブロック定義1124は、配線によるインストールとして、または過去のインストールによって、PIO入力属性(AIN)ブロック定義を含む。指定されているオブジェクトの属性は、エディタ1130の動作を通してユーザによって設定される。PIOデバイスのインストールの前に、入力属性(AIN)ブロック1132は存在しない。
【0143】
ユーザは、AINブロック1132をインストールする前に、PIOデバイス1120を作成し、それからエディタ1130を使用して、AINブロック属性の初期値をセットアップする。ユーザは、ビューパラメータ取得のための期間も設定する。AINブロック1132が保存されてから、インストールされる。
【0144】
図13を参照すると、ブロック図は、制御モジュール入力属性をプロセスI/O属性にリンクするためのオブジェクト指向方法を説明している。制御モジュール入力属性をPIO属性にリンクする前に、PIOブロックAIN1220は過去にインストールされ、制御モジュール1210もインストールされる。ユーザは、制御モジュール1210のPIOIN属性1212が属性入力プロセス変数PV 1214に接続されていることを指定し、リンクが行われることを要求する。制御モジュールがPIOIN属性を発見して対応する属性インデックスを返し、プラント領域にPIO AINを配置し、プロセス変数PV属性を発見して対応する属性インデックスを返し、実行時リンカー(linker)1216にプロセス変数(PV)1214でのソースおよびPIOIN属性1212とのリンクを作成するように指示し、リンクを作成し、リンク1216を接続すると、リンク1216が行われる。ダウンロードの最後で、リンクは連結オブジェクトにより分離される(resolved)。
【0145】
図14を参照すると、ブロック図が、制御モジュール出力属性(AOUT)1312をPIO出力属性(PIOAOUT)1320にリンクするためのオブジェクト指向方法を
示している。制御モジュール1310が過去にインストールされ、制御モジュール出力属性(AOUT)1312が制御モジュール1310内にインストールされる。ユーザは、制御モジュール出力属性(AOUT)1312が、PIO出力属性(PIOAOUT)1320に接続されることを指定する。制御モジュール1310の実行時実装がメッセージに送信され、接続を形成し、制御モジュール1310がAOUT属性を発見し、PIOAOUT属性1320のロケーションを要求し、リンク1322を作成し、AOUT属性1312およびPIOAOUT属性1320をリンク1322に接続すると、リンクが行われる。
【0146】
図15を参照すると、ブロック図が、包含されているPIO属性の値を読み取るためのオブジェクト指向方法を示す。PIOブロック1410は、過去にインストールされ、出力属性(AOUT)1412がPIOブロック1410内で過去にインストールされている。ユーザ、例えばエンジニアは、すべての属性値が表示されているブロックの詳細なビューを要求する。詳細なディスプレイは、PIOブロック1410と関連付けられている、ビュー定義とも呼ばれる表示グループの1つまたは複数のセットを含む。AOUTブロックの属性名および値は、プロキシクライアントルーチンに、ビューにアクセスするように要求するアプリケーションプログラムによって提示され、AOUTプロキシクライアントが戻りビュー定義を設定し、属性プロキシオブジェクトを作成し、アプリケーションプログラムがAOUTプロキシクライアントに許可されている特権で名前が付けられている属性の値を読み出すように要求する。アプリケーションプログラムはデータをフォーマットし、表示する。表示グループパラメータは、I/Oブロック定義の一部であり、したがって構成可能ではない。表示グループは、属性のために定義される。表示グループおよびビューグループがブロックに関連付けられている非リンクPIO属性の更新を制御するため、PIOブロックがリンクされていない間に、情報は有利に更新される。
【0147】
図1Cに図示されているプロセス制御環境100は、制御構造のための根本的なビルディングブロックとして
ファンクションブロックを使用することによってだけではなく、フィールドバ
スおよび非フィールドバスデバイスを同じように処理する入出力アーキテクチャを実現することによって、あたかもすべての接続されているデバイスがフィールドバスデバイスであるかのように、総体的な
ストラテジーを実現する。入出力アーキテクチャの根本的な特徴は、フ
ィールドバス信号および非フィールドバス信号を含むすべてのI/O信号にユーザ構成可能名を与える計測器信号タグ(IST)に基づいている。
【0148】
ユーザの観点からは、ISTはユーザ定義名を単一型に、I/Oサブシステム内の
特定の信号に、属性を含む信号経路に、および信号特性設定値のセットに結合する。
【0149】
ISTは、他のシステムオブジェクトのようにインストールされない。代わりに、ISTタグに固有な信号特性が、I/Oカードインストール時に利用できるようになる、I/OポートおよびI/Oデバイス特性と結合される。IST、I/OポートおよびI/Oデバイス特性の組み合わせは、実行時システムでPIO
ファンクションブロックを作成するための情報を供給する。ISTからの信号経路は、モジュールのインストール中にI/O
ファンクションブロックを定義するスクリプト内に含まれる。
【0150】
プロセス制御環境100全体で通信するため、I/O型
ファンクションブロックは、I/O基準定義を使用する。ISTは、I/O基準の仕様を満たす。英国のメジャーメントテクノロジー社(Measurement Technologies Limited)により供給されるMTLデバイスなどの従来のI/Oデバイスは、チャネルごとにISTを有している。Hartデバイスおよびフィールドバス I/Oデバイスは、ポート上、またはフィールドデバイスでの別個の
「I/O信号」ごとにISTを含んでよい。IST名は、システム全体の範囲を有し、モジュール、デバイスおよびエリア(領域)の名称空間を共用する。大型システムにおいては、ISTは、典型的には、計装図面上の測定器信号名に一致する。小型システムでは、公式計測器図面は存在しないことがあるため、明白なIST名は推論されない。典型的には、任意のIST名が回避されるように、カードが、制御装置ノード、I/Oサブシステム、カードおよびポートを表すデバイス階層に基づいて構成されると、ISTが自動的に生成される。典型的には大部分のISTは、新規I/Oカードが定義されると自動的に作成される。複数−単一I/Oデバイスの場合、ISTは、単一の「一次信号」のためだけに自動的に作成される。自動IST作成に加えて、ユーザは、ポートまたはデバイスが選択されている、エクスプローラNode/IOsubsys/Port/Deviceツリーから利用できる「Assign...」メニューを使用して、あるいはエクスプローラISTツリーから利用できる「New...」メニューを使用して、ISTを作成してもよい。
【0151】
ISTは、I/O信号にアクセスするI/O信号とI/O
ファンクションブロックの間での互換性を確実にするために「信号型」特性を持っている。信号型は、AIN、AOUT、DIN、DOUT、PCIN、PCOUTの内の1つである。ISTは、信号型に
特定の「信号関係」属性のセット(例えば、DOUTなどのAIN、MOMENTARYまたはLATCHEDの場合、EU0とEU100)を有している。同じ信号型のすべての信号ソースが、同じ「信号属性」のセットを有している。I/Oサブシステムオブジェクトのすべての他の特性は、カード、ポート、またはデバイスの属性に保持される。
【0152】
完全に構成されているISTは、I/Oシステム、例えば「CON1/IO1/S01/C01/FIELD_VAL」内の対応する信号への完全に修飾されている経路を有している。ISTは、I/O構造詳細が完全に定義される前にモジュール構成が完了されるように、定義済み経路を定義しないで作成してよい。定義済み経路のないISTを使用するI/O
ファンクションブロックのあるモジュールは、構成、インストールされてよいが、実行時システムは、I/O
ファンクションブロック上で見失われているISTの見失われているI/O経路に適切に対処しなければならない。信号ソースはわずかISTしか有していない。同じ経路のある複数のISTを構成しようとすると拒絶される。
【0153】
ユーザは、ISTを削除し、それによって関連付けられている信号特性を削除し、おそらくいくつかの分離不可能なIST基準をI/O
ファンクションブロックに残すことによってISTを削除してよい。削除されたISTは、関連付けられているISTを示さないエクスプローラツリーでのPort/Device上のISTの通常のディスプレイのあるカード/ポート/デバイス特性に影響を及ぼさない。
【0154】
I/Oインタフェース
ファンクションブロックは、少なくとも1つのIST−Reference特性を有している。IST−Reference特性は、
ファンクションブロックがISTに接続していないことを示すためにブランクのままにされるか、あるいは有効なIST名で指定される。I/O
ファンクションブロックのIST−Reference特性は、まったく1つのIST信号型と互換性がある。例えば、AI
ファンクションブロックのIST−Referenceは、信号型「AIN」だけのあるIStを有している。複数のI/O
ファンクションブロックは同じIST信号型と互換性がある。
【0155】
フィールドバスI/O
ファンクションブロック定義との互換性のため、フィールドバスI/O
ファンクションブロックは、ISTの単一特性のいくつかと重複するXD_SCALE,OUT_SCALEなどの属性を有している。有効なIST−Referenceが作成されると、これらの重複されている
ファンクションブロック属性の構成済み値は、Run-timeシステムで無視され、ISTからの対応する特性が代わりに使用される。フィールドバスI/O
ファンクションブロックを構成するエンジニアは、IST基準が適所にあるときに
無視されている属性の表示を使用する。このような表示は、典型的には、値がISTからコピーされている、グレー表示されている編集不可テキストとして表示装置で提示される。I/O
ファンクションブロックは、典型的にはダウンロードされ、迅速に無効にされる無視されている属性の非公開設定値を保持する。IST−Referenceが削除されると、これらの属性の設定値がユーティリティを保持する。
【0156】
I/Oカード、ポート及びデバイスは、エクスプローラ(登録商標)またはModule Definition Editorのどちらかである、ユーザインタフェースを動作しているユーザによって構成の中に組み込まれる。従来のI/Oカード上のチャネルは、従来のI/O用の
特定ケースの専門用語が回避されるように、「ポート」と呼ばれ、I/Oポートとして処理される。また、ユーザインタフェースは、ユーザが、I/Oカード、ポート又はデバイスを削除できるようにする。例えば、8−チャネルMTL AI、8−チャネルMTL AO、8−チャネルMTL DI、8−チャネルMTL DO、4−チャネルMTL 熱伝対/RTD、8チャネルハート(HART)入力、8−チャネルハート(HART)出力、および4−chanSolenoidを含む複数のI/Oカード型がサポートされている。I/Oカード型は、同じI/Oカード上でのI/Oポート型の組み合わせを有している。I/Oカードの削除は、すべての従属ポートを削除する。I/Oポートの削除は、すべての従属デバイスを削除する。I/OポートまたはI/Oデバイスの削除は、関係する計測器信号タグ(IST)を削除しないが、関連付けられているI/O信号へのIST経路の経路はもはや実施可能ではない。同じ経路を有している別のI/OポートまたはI/Oデバイスが作成されると、信号型が互換性がある限り、ISTは自動的にI/OポートまたはI/Oデバイスへ再結合する。
【0157】
ユーザは、Subsystemで定義されているI/Oカードをインストールまたはインストールし直す、I/Oサブシステムのインストールを始動する。ユーザは、カード特性およびI/OポートおよびI/Oデバイスのすべての特性をインストールする、単一I/Oカードのインストールを始動することができる。
【0158】
エクスプローラ(登録商標)およびModule Definition Editorは、現在の信号値、ステータス、およびI/Oサブシステム内でAttributesとして直接アドレス指定することができる選択されている特性にアクセスすることによってI/Oサブシステムを構成する。ユーザは、各カード、ポート、デバイスおよび信号値、およびデバイス階層属性経路アドレス指定(例えば、「CON1/IOI1/C01/P01/FIELD_VAL」)を使用するステータスにアクセスすることによって、カード、ポート、デバイス、および信号値とステータスを示すグラフィックを表示する。
【0159】
I/Oサブシステム属性は、デバイス間での通信でアドレス指定するために物理デバイス経路(例えば、CON1/IO1/C01/P01/FIELD_VAL)を使用して通信される。I/Oサブシステム属性の通信は、表示のために
図1Cに図示されるように、制御装置/マルチプレクサ110からワークステーション102、104、106へ、および仮想I/O取扱いのために第1から第2制御装置/マルチプレクサに属性を伝送するために有利に使用される。
【0160】
図16を参照すると、ブロック図は、計測器信号タグ(IST)の情報の構成を示している。システムISTテーブル1510は、経路情報およびシステムオブジェクトへのポインタを含む、ISTに関係する情報を記載している。第1ポインタ1512は、属性信号テーブル1520を指す信号型を指定する。第2ポインタ1514は、属性信号テーブル1520でのエントリを指定する。
【0161】
有利にアドレス指定するデバイス階層属性を使用して情報にアクセスすることにより、
制御モジュール作業が完了する前にシステム統合チェックアウトのために、システム診断表示を設計、構築することができる。デバイス階層属性アドレス指定は、モジュールからのI/O信号の直接アドレス指定、I/O
ファンクションブロックの使用のバイパス、およびI/O
ファンクションブロック動作の回避もサポートする。一般鉄器には、I/Oカード、I/OポートおよびI/Oデバイスの識別子は、スロット位置情報等に従って自動的に定義される。
【0162】
図17を参照すると、フローチャートが、制御装置/マルチプレクサ110をIPアドレス、ノード名、および制御装置/マルチプレクサ110のフラッシュROMに記憶されていないその他の起動情報のセットに割り当てる動作を含む、プロセス制御環境100内でのネットワーク全体で制御システムをブートストラップロードする方法を説明している。インターネットプロトコル(IP)アドレスを、その初期ブートアップ時に制御装置に割り当てるためのプロセス1600は、Bootサーバ、Windows NTTMワークステーションのMACアドレスを制御装置/マルチプレクサ名1610に関連付けるステップを含む。MACアドレスだけが、制御装置/マルチプレクサアイデンティティを指定する。ステップ1612では、制御装置/マルチプレクサの名前には、属性デバイスID、および制御装置/マルチプレクサに接続されているケーブルによって決定されるACNリンク番号とPCNネットワーク番号が割り当てられる。ステップ1614では、デバイスのIPアドレスがデバイスID、ACNリンク番号およびPCNネットワーク番号から計算される。ステップ1616では、ノードをブートするために確保されているデフォルトの一次IPアドレスと二次IPアドレスを指定し、UDPユーザデータの制御装置/マルチプレクサMACアドレスを含むUDPデータグラムが、一次インタフェース上のソースアドレスのためにデフォルトの一次IPアドレスを使用する
特定UDP確保ブートポートに一斉送信される。ステップ1618では、ブートサーバがMACアドレスを割り当てられている名前とIPアドレスに照会し、割り当てられている名前とIPアドレスを、MACアドレスのエコーとともに、UDPブートポートに一斉送信する。一斉送信することにより、ルーティングまたはARP静的入力操作を実行するという問題は回避される。ステップ1620では、制御装置/マルチプレクサがデータグラムを受信し、MACアドレスをチェックし、MACアドレスが一致する場合にはIPアドレスを設定し、ノード名およびデバイスIDを保存する。データグラムが受信されないと、分岐ステップ1622の動作を通して二次インタフェースを使用して、手順が繰り返される。ステップ1624では、制御装置/マルチプレクサが、新しいアドレスを使用して、制御装置/マルチプレクサが稼動中であることを示していると述べているブートサーバにメッセージを送信する。
【0163】
ステップ1626では、ユーザは、デバイス名、デバイスMACアドレス、ACNリンク番号およびPCNネットワーク番号を入力する。デバイスIDは、構成ソフト
ウエアにより自動的に割り当てることができる。通信サブシステムは、構成済みACNリンク番号、PCNネットワーク番号、および割り当てられているデバイスIDからのデバイスの3つのIPアドレスを計算する。ステップ1628では、制御装置/マルチプレクサ、またはI/Oカードソフト
ウエアが、メッセージおよびS−RecordファイルをACN上のデバイス間で受け渡すことによって、ACNネットワーク上でフラッシュダウンロードされる。
【0164】
図18を参照すると、オブジェクト通信図が、接続のアクティブな発信側に対してデバイス接続を作成するための方法を示している。ワークステーションまたは制御装置/マルチプレクサのどちらかのアプリケーションプログラムは、別のデバイスに包含されている属性へのアクセスを要求する。他のデバイスへのUDP通信接続は、属性にアクセスできるように通信サービスによって確立される。デバイス接続の作成は、2つのアプリケーションプログラムに及ぶ。別のデバイス内に位置しているデータを要求することにより接続を始動するアプリケーションプログラム、およびリモートオブジェクト通信(ROC)サ
ービスアプリケーションプログラムは実際に他のデバイスにメッセージを送信する。ROCサービスプロセスがあるデバイスにメッセージを送信する準備ができているときに接続が存在しない場合、ROCサービスはそのデバイスに対する接続を作成する。
【0165】
デバイス接続の前に、接続されるデバイスはソースデバイスを記載している有効なデバイステーブルを有しており、動作しており、直接接続ポートでメッセージを監視するオブジェクト(RtDeviceConnection)を含む。デバイス接続が作成された後、2つのデバイスの間で接続が確立され、(RtDeviceconnection)インスタンスがアクティブデバイスの中に作成され、接続を取り扱う。
【0166】
ステップ1710では、アプリケーションプログラムが、メッセージ(getContainer)を、発見されたまたは作成されたモジュールのオブジェクトIDを戻すオブジェクト(RtSite)に送信する。ステップ1712では、オブジェクト(RtSite)が、モジュールの位置を見つけ出し、そのオブジェクトIDを戻すオブジェクト(RtPlantArea)に(Locate)メッセージを送信する。ステップ1714では、オブジェクト(RtSite)が、モジュールを包含しているデバイスのオブジェクトIDを戻すオブジェクト(RtDevice)に、(GetDevice)メッセージを送信する。ステップ1716では、リモートデバイスのプロキシが存在しないと仮定して、オブジェクト(RtDevice)が、オブジェクト(RtDeviceProxy)にCreateメッセージを送信する。ステップ1718では、オブジェクト(RtDeviceProxy)が、テンプレート(RtNew)を使用してオブジェクト(RtDeviceProxy)のインスタンスを作成する。ステップ1720では、オブジェクト(RtDeviceProxy)が、オブジェクト(RtDeviceConnection)に、オブジェクト(RtDeviceConnection)によって管理されているデバイス接続テーブル内のデバイス名のインデックスを戻す(GetDeviceConnectionIndex)ように依頼する。ステップ1722では、オブジェクト(RtDeviceProxy)が、(RegisterPointer)メッセージをオブジェクト(RtRegistry)に送信することにより、接続されているデバイスの(RtDeviceProxy)インスタンスに対するポインタを登録し、オブジェクト(RtDevice)にデバイスプロキシObject IDを戻す。ステップ1724においては、オブジェクト(RtPlantArea)が、オブジェクト(RtModuleProxyClient)に(Create)メッセージを送信し、リモートモジュールに対するプロキシクライアントを作成する。ステップ1726では、オブジェクト(RtModuleProxyClient)が、オブジェクト(RtModuleProxyServer)に(Create)メッセージを送信し、リモートデバイス内のモジュール用のプロキシサーバを作成する。ステップ1728では、オブジェクト(RtModuleProxyServer)が、プロキシサーバ作成メッセージを構築し、オブジェクト(RtRocReqRespService)に、リモートデバイスにリクエストを送信する(SendRequest)ように依頼する。ステップ1730では、オブジェクト(RtRocReqRespService)が、ROC通信サービスプロセスがリモートデバイスに送信するために、メッセージを出発メッセージ待ち行列に付加する。ステップ1732では、ROC通信サービスプロセス内のオブジェクト(RtRocReqRespService)が、(RemoveFirst)コマンドを出発メッセージ待ち行列に発行し、プロキシサーバ作成メッセージを取得する。ステップ1734では、オブジェクト(RtRocReqRespSerice)が、(sendMsg)コマンドを、宛先デバイスの(aRtDeviceProxy)インスタンスに発行することによりメッセージを送信する。ステップ1736では、(aRtDeviceProxy)インスタンスが、(GetDeviceConnection)コマンドを(RtDeviceConection)コマンドに発行し、宛先デバイスの(RtDevceConnection)インスタンスのオブジェクトIDを取得する。ステップ1738では、デバイス接続がすでに存在しないと仮定し、オブジェクト(RtDeviceConnection)がcreateDeviceConnectionを実行する。ステップ1740では、オブジェクト(RtDeviceConnection)が、テンプレート(RtNew)を使用して、RtDeviceConnectionのインスタンスを作成する。ステップ1742では、オブジェクト(RtDeviceConnection)が、(RegisterPointer)メッセージをオブジェクト(RtRegistry)に送信することにより(RtDeviceConnection)インスタンスに対するポインタを登録し、デバイス接続Object IDをオブジェクト(RtDeviceConnection)に戻す。ステップ
1744では、オブジェクト(RtDeviceConnection)が、(startActiveConnection)メッセージを(aRtDeviceConnection)インスタンスに送信する。(aRtDeviceConnection)インスタンスは、他のデバイスに対する接続を確立するために必要なステップを実行する。ステップ1746では、(RtDeviceProxy)インスタンスが、sendMsgを(aRtDeviceConnection)インスタンスに発行し、サーバ作成メッセージをリモートデバイスに送信する。ステップ1748では、(aRtDeviceConnection)インスタンスが、新規に作成されている接続でリモートデバイスにメッセージを送信する。
【0167】
図19を参照すると、オブジェクト通信図が、接続の受動リスン側にデバイス接続を作成する方法を示している。デバイス接続を確立するための要求は、別のワークステーションまたは制御装置/マルチプレクサから受け取られる。通信サービスは、要求側デバイスとUDP通信接続を確立する。
【0168】
接続の作成以前に、接続されるデバイスは動作中であり、接続を確立する準備ができているオブジェクト(aRtDeviceConnection)を包含している。オブジェクト(RtDevice Connection)は、デバイスの中に存在し、同期要求という形の入力メッセージを求めて傾聴している(listening)。接続が作成されてから、接続は2つのデバイスの間で確立され、(RtDeviceConnection)インスタンスが受動的なデバイス内に作成され、その接続を取り扱う。
【0169】
ステップ1810では、オブジェクト(RtDeviceConnection)はリモートデバイスから同期要求メッセージを受け取る。ステップ1812では、オブジェクト(RtDeviceConnection)は、オブジェクト(RtDeviceConnection)にCreateメッセージを送信し、要求側デバイスへの接続を作成する。オブジェクト(RtDeviceConnection)は、デバイス接続がすでに存在していないと仮定し、ステップ1814で(createDevoceConnection)を実行する。ステップ1816では、オブジェクト(RtDevoceConnection)は、テンプレート(RtNew)を使用してオブジェクト(RtDeviceConnection)のインスタンスを作成する。ステップ1818においては、オブジェクト(RtDeviceConnection)は、(RegisterPointer)メッセージをRtRegistryに送信することによって(RtDeviceConnection)インスタンスに対するポインタを登録し、デバイス接続オブジェクトIDをオブジェクト(RtDeviceConnection)に戻す。ステップ1820では、オブジェクト(RtDeviceConnection)が、オブジェクト(RtDeviceProxy)にCreateメッセージを送信し、要求側デバイスのためのデバイスプロキシを作成する。ステップ1822では、オブジェクト(RtDeviceProxy)が、テンプレート(RtNew)を使用してオブジェクト(RtDeviceProxy)のインスタンスを作成する。ステップ1824では、オブジェクト(RtDeviceProxy)が、オブジェクト(RtDeviceConnection)に(GetDeviceConnectionIndex)メッセージを送信し、後で使用するために、デバイス接続テーブル内のデバイスのインデックスをオブジェクト(RtDeviceConnection)によって管理させる。ステップ1826では、オブジェクト(RtDeviceProxy)が、(RegisterPointer)メッセージをRtregistryに送信することによりオブジェクト(RtDeviceProxy)に対するポインタを登録し、デバイスプロキシオブジェクトIDをオブジェクト(RtDeviceConnection)に戻す。ステップ1828では、オブジェクト(RtDeviceConnection)は、handleInboundMessage方法を介して処理するために、(RtDeviceConnection)インスタンスに同期要求メッセージを渡す。ステップ1830では、オブジェクト(aRtDeviceConnection)が、リモートデバイスに同期応答メッセージを送り返し、(Device Connection)作成の無事完了を示す。
【0170】
図20を参照すると、オブジェクト通信図が、デバイス間で要求/応答メッセージを送信するための方法を示している。あるデバイスでのリモートオブジェクト通信(ROC)サービスは、別のデバイス内のROCサービスに対し要求メッセージを送信する。要求メッセージは処理され、応答メッセージが発信側デバイスに送り返される。
【0171】
メッセージを送信する前に、デバイス間でUDPデバイス接続が確立される。デバイス間での要求/応答メッセージの送信に続き、リモートデバイスからの応答メッセージが、ROCサービスによる処理のために準備完了している。
【0172】
ステップ1910では、読取り属性要求が、アプリケーションプログラムによってリモートデバイスに関連付けられている(RtDeviceProxy)インスタンスに対し発行される。ステップ1912では、(aRtDeviceProxy)インスタンスが、属性値を読み取るために、リモートデバイスに対し送信される要求メッセージを構築し、オブジェクト(RtRocReqRespService)にSendRequest方法を使用してメッセージを送信するように依頼する。ステップ1914では、オブジェクト(RtRocReqRespService)が、リモートデバイスへの接続に関連付けられているオブジェクト(RtDeviceConnection)のインスタンスに対し、send_msg方法を使用してメッセージを送信する。ステップ1916では、オブジェクト(RtDeviceConnection)のインスタンスが、デバイス接続でリモートデバイスに対しメッセージを伝送する。ステップ1918では、リモートデバイス内のオブジェクト(RtDeviceConnection)のインスタンスがメッセージを受け取り、(RtRocRouter)クラスにメッセージを正しい到着メッセージサービスにメッセージを送るように要求する。ステップ1920では、オブジェクト(RtRocRouter)が、メッセージが要求/応答メッセージであると判断し、オブジェクト(RtRocReqRespService)に、ProcessInboundRepRespするように要求する。メッセージがROCサービスおよびメッセージ消費者によって処理された後、応答メッセージが構築され、ステップ1922では、オブジェクト(RtRocRqstRespService)が、SendResponse方法を使用して応答メッセージを発信側デバイスに送信する。ステップ1924では、オブジェクト(RtRocReqRespService)の出発メッセージ待ち行列処理が、send_msg方法を使用して、ソースデバイスに対する接続に関連付けられているオブジェクト(RtDeviceConnection)のインスタンスに応答メッセージを送信する。ステップ1926では、オブジェクト(RtDeviceConnection)のインスタンスが、オリジナルデバイスに対し応答メッセージを送り返す。ステップ1928では、オリジナルデバイスのオブジェクト(RtDeviceConnection)のインスタンスがメッセージを受け取り、(RtRocRouter)クラスにメッセージを正しい到着メッセージサービスに送るように要求する。ステップ1930では、オブジェクト(RtRocRouter)が、メッセージが要求/応答メッセージであると判断し、オブジェクト(RtRocReqRespService)にProcessInboundreqRespするように要求する。
【0173】
図21を参照すると、オブジェクト通信図が、ネットワーク構成をダウンロードする方法を示している。ユーザは、システム用のデバイス構成の完了に続き、制御装置/マルチプレクサへのダウンロードを始動する。構成アプリケーションによってデバイステーブル構成スクリプトが構築される。通信サービスを使用して、構成アプリケーションは、ダウンロードを受信するために、制御装置/マルチプレクサとのデバイス接続を確立し、ダウンロードスクリプトを制御装置デバイスに送信する。制御装置/マルチプレクサは、ダウンロードスクリプトメッセージを受信し、デバイステーブルを処理する。ステップ2010では、構成ダウンロードアプリケーションプログラムが、デバイステーブルダウンロードスクリプトを包含するリモートオブジェクト通信(ROC)スクリプトダウンロードメッセージを構築する。ステップ2012では、ダウンロードアプリケーションが、オブジェクト(RtDevice)に対し(GetDevice)メッセージを発行し、リモートデバイスのオブジェクト(RtDeviceProxy)のObject IDを取得する。ステップ2014では、オブジェクト(RtDeviceProxy)は、存在していないため、Createメッセージが必要なデバイスプロキシオブジェクトを作成するために、オブジェクト(RtDeviceProxyC)に送信される。ステップ2016では、オブジェクト(RtDeviceProxyC)が、オブジェクト(RtDeviceConnection)に(GetDeviceConnIndex)メッセージを送信し、デバイス接続テーブル内のリモートデバイスのデバイス接続のインデックスを取得する。ステップ2018では、デバイ
ス接続は、まだ存在していないため、(aRtDeviceConnection)オブジェクトが作成され、リモートデバイスへの接続を管理する。ルックアップは、リモートデバイスエントリを発見するためにデータベースで実行される。デバイス通信データ(例えば、IDおよびIP
Addresses)がデータベースから検索され、新規エントリが構成デバイス接続テーブルに追加される。デバイスが接続を始動したので、接続は接続テーブルで恒久と記される。ステップ2020では、(startActiveconnection)メッセージがオブジェクト(RtDeviceConnection)に送信され、リモートデバイスへの接続を確立する。ステップ2022では、オブジェクト(aRtDeviceConnection)がリモートデバイスにRtSyncMessageを送信する。ステップ2024では、リモートデバイスがRtSyncMessageを受け取り、送信側デバイスのためのデバイス接続テーブル内でエントリを発見しようとする。ステップ2026では、エントリは発見されないため、新規エントリが送信側デバイスのためのデバイス接続テーブルに追加され、(aRtDeviceConnection)オブジェクトが作成され、受信側デバイスで接続を取り扱う。ステップ2028では、RtSyncreplyMessageが作成され、デバイステーブルからのデバイス接続インデックスを包含している送信側デバイスに送り返される。デバイス接続は、現在、確立され、メッセージの送受を行う準備が完了している。ステップ2030では、オブジェクト(RtDeviceProxyC)が、リモートデバイスの(RtDeviceProxyS)作成メッセージを送信する。ステップ2032では、(RtDeviceProxyS)がリモートデバイスで作成される。ステップ2034では、ダウンロードアプリケーションが、SendMsg呼出しを使用してオブジェクト(RtRocReqRespServices)を介してリモートデバイスにダウンロードスクリプトを送信する。ステップ2036では、RtCommScriptDownloadが、デバイステーブルを受信し、各デバイステーブルアイテムを処理し、そのデータを構成データを保持するために使用されているデータベースRegistryに記憶する。制御装置/マルチプレクサにとって、この処理は(RtDeviceConnection)オブジェクトを作成し、そのオブジェクトをデバイス接続テーブルに追加するために使用され、それ以降より、むしろダウンロード時にメモリを取得できるようにする。
【0174】
図21は、デジタル制御システムプログラム(図示されていない)は、診断情報がフィールドバスデバイスから引き出されているか、非フィールドバスデバイスから引き出されているかには関係なく、首尾一貫したやり方でプロセスに関する診断情報を表示するための診断プログラムおよび表示ルーチンを含む。デジタル制御システムプログラム(図示されていない)は、プロセス制御環境100内のすべてのデバイスに関する診断情報を有利に組み込み、すべての制御動作および診断情報があたかも単一ロケーションで実行または作成されるかのように
コントロールストラテジーおよび診断情報がユーザに提示されるように、この情報を、診断表示ルーチンを使用して統一してユーザに提示する。
【0175】
図22を参照すると、画面前面の絵入り図が、通信診断プログラム2210を含む診断表示ルーチン2200の動作を示している。ユーザは、容易に認識されているアイコンを使用して、プロセス制御環境100内のワークステーション、制御装置、およびネットワークリンクのステータスおよび完全性をグラフィックで表示する。診断表示ルーチン2200は、デバイスまたはネットワークリンクセグメントを求めて要約ステータス情報も作成する。診断表示ルーチン2200は、送受されたパケット、接続数等を含む、ネットワークに接続されているデバイスに関する詳細な内部完全性情報を表示する。リモート診断機能性を実現するために、モデムを介してアクセスされる診断情報もある。
【0176】
ワークステーション102または104、および制御装置/マルチプレクサ110は、ACN通信リンクのステータス、デバイス接続、イーサネット統計についての詳細な完全性情報、および通信スタック診断情報を含む、接続されているデバイス内の通信サブシステムのステータスについての詳細な診断情報を供給するために組み合わされて機能する。通信機能性の診断チェックもサポートされる。通信診断プログラム2210は、ネットワーク全体の基本診断、単一デバイスの診断情報、および単一デバイス接続の診断情報を含
む、3つのレベルの診断情報をサポートする。
【0177】
基本的なネットワーク診断レベルでは、通信診断プログラム2210が、すべてのネットワークデバイスから情報を収集し、その情報をユーザに提示する。通信診断2210は、要求に応じてまたは定期的に実行しているバックグラウンドタスクとして、リモート制御装置/マルチプレクサ110から情報を収集する。通信診断プログラム2210はネットワーク通信ステータス要求をある特定のデバイスの診断ポートに送信し、そのデバイスに対する通信経路の完全性を確認する。
【0178】
ネットワーク通信ステータスに対する応答は、デバイスが制御装置であるのか、あるいはワークステーションであるのかを示すデバイス型情報を含む通信完全性情報、および一次と二次ステータス要約情報を包含する。エラーがリンク上に存在する場合には「不良」に設定される接続ステータスの要約情報が、属性として通信サブシステムモジュールに追加され、ユーザが、要求があると、これらの値をオペレータインタフェースで表示できるようにする。
【0179】
通信診断プログラム2210は、デバイスとリモートデバイスの間の通信リンクのステータスが表示されるように、プロセス制御環境100に接続されている各デバイスから診断情報を要求する。
【0180】
通信診断プログラム2210は、デバイス接続に関するリンクステータス情報、およびデバイス内のイーサネットインタフェースに関するイーサネット統計を含む、ある特定のデバイスの通信についての詳細な情報を供給するために、単一デバイスの診断情報を監視、表示する。通信診断プログラム2210は、適切な診断リモートオブジェクト通信(ROC)メッセージを使用して、デバイス通信ステータスを要求する。デバイス通信ステータスは、デバイステーブルインデックス、デバイスID、デバイス接続状態(Ready(準備完了)、Synching(同期中)、ACK Pending(ACK未決)、Closed(閉鎖済み))、一次デバイスアドレス、二次デバイスアドレス、リンクのステータス、および単一デバイス接続の診断情報などの情報を含む。
【0181】
イーサネット統計情報は、デバイスブート時に計数を開始し、デバイスのリブートまでリセットされないカウンタに保持される。カウントは、モジュール属性の一部として通信サブシステムモジュールに対する属性として実現され、合計入力エラー、入力CRCエラー、および入力無効エラーの数を含む入力エラー情報を含む。出力エラー情報は、合計出力エラー、出力遅延衝突、事前に選択されている数を上回る出力衝突、出力無効エラー、および出力キャリヤ損失エラーを含む。それ以外のカウントは、受信パケット、送信パケット、受信バイト、送信バイト、受信一斉送信パケット、送信一斉送信パケット、受信未知プロトコルメッセージ、伝送延期、単一衝突伝送、および複数衝突伝送の数を含む。
【0182】
通信診断プログラム2210は、ある特定のデバイスのある特定のデバイス接続に関する詳細な診断情報も監視、表示する。ユーザがデバイス接続統計を要求すると、通信診断プログラム2210は接続のために宛先デバイスIDを指定する。デバイス接続統計は、デバイス接続状態(Ready、Synching,ACKPending、Closed)、リモート一次アドレス(宛先デバイスのPrimary ACN Address)、リモート二次アドレス(このデバイスの二次ACNIP Addressまたは0)、Primary Link Status(Good(良好)/Bad(不良))、二次リンクステータス(Good/Bad)を含む、指定されたデバイス接続のリンクステータス情報および統計情報を包含する。統計は、一次リンクで受信されたメッセージ、二次リンクで受信されたメッセージ、一次リンクで送信されたメッセージ、二次リンクで送信されたメッセージ、同期送信、同期受信、一次リンクでのACKタイムアウト、および二次リンクでのACKタイムアウトのカウントも含む。
【0183】
通信診断2210は、ネットワーク内の2つのデバイス間の通信経路のチェックもサポートする。第1デバイスは、リモートデバイスへ、指定された通信リンク上で喚起メッセージなどのメッセージを送信する。リモートデバイスは、そのメッセージを送信者にエコーして戻す。無事完了した喚起メッセージおよびエコーは、リモートデバイスで通信サブシステムが機能していることを示す。この対話は、完全にイーサネットハード
ウエアドライバによって取り扱われている通常のTCP/IPピーン(ping)とは異なる。
【0184】
図23を参照すると、オブジェクト通信図が、あるデバイスが、別のデバイスがネットワーク上に存在するかどうかをチェックする方法を示している。プロセス制御環境の一部またはスタンドアロンアプリケーションのどちらかである、診断アプリケーションプログラムが、リモートデバイスがACNネットワーク上に存在するかどうか、存在する場合には、リモートデバイスが通信できるかどうかを突き止める。診断アプリケーションプログラムはリモートデバイスにメッセージを送信し、リモートデバイスからエコーされるメッセージまたはタイムアウトを受信することを期待する。
【0185】
ステップ2310では、診断アプリケーションプログラムは、オブジェクト(RtcommDiag)に、通信問い合わせ(ピーン)が指定されているデバイス名またはアドレスに対し実行されることを要求するPingメッセージを送信する。ステップ2312では、オブジェクト(RtCommDiag)が通信ソケットを作成し、問い合わせを実行する。ステップ2314では、オブジェクト(RtCommDiag)がメッセージ(RtEchoMessage)を作成し、リモートデバイスに送信する。ステップ2316では、オブジェクト(RtCommDiag)が、RtCommSendToを使用し、指定されているデバイスにメッセージ(RtEchoMessage)を送信し、メッセージがリモートデバイスからエコーバックされるのを待機する。ステップ2318では、リモートデバイス内のオブジェクト(RtDeviceConnection)がメッセージ(RtEchoMessage)を受信し、ハンドル診断メッセージ方法を使用してそのメッセージを処理する。ステップ2320では、オブジェクト(RtDeviceConnection)が、メッセージ(RtCommSentToMessage)を使用して、ソースデバイス内のオブジェクト(RtCommDiag)へのエコー応答の診断符号付きメッセージ(RtEchoMessage)を即座に戻す。ステップ2322では、オブジェクト(RtCommD)が、エコー応答メッセージを受信し、診断アプリケーションに無事完了ステータスを戻す。リモートデバイスから応答が受信されない場合、ステップ2324で、オブジェクト(RtCommDiag)が診断アプリケーションに故障ステータスを戻す。ステップ2326では、オブジェクト(RtCommDiag)が、問い合わせを実行するために作成されたソケットを閉じる。
【0186】
図24を参照すると、オブジェクト通信図が、デバイス通信診断を要求するための方法を示している。診断アプリケーションプログラムは、リモートデバイス内のすべてのデバイス接続のステータスを要求、アクセス、表示する。診断アプリケーションプログラムは、リモートデバイスに必要とされている診断情報に対する要求を送信し、応答を待機する。いったん応答が受信されると、リモートデバイス内でのすべてのデバイス接続およびデバイスステータスがユーザに表示される。この情報は、診断アプリケーションプログラムが診断データに対する複数の要求を行うように、複数のメッセージで通信してよい。
【0187】
ステップ2410では、診断アプリケーションプログラムが、オブジェクト(RtComjmDiag)に(GetDeviceCommDiags)要求メッセージを送信し、リモートデバイスでのデバイス接続の通信診断を要求する。ステップ2412では、オブジェクト(RtCommDiag)が、オブジェクト(RtDeviceConnection)に(GetDeviceConnectionIndex)メッセージを送信し、リモートデバイスのデバイス接続テーブルインデックスを要求する。ステップ2414では、オブジェクト(RtCommDiag)が、オブジェクト(RtRocMessage)に対しCreateを発行し、診断情報を要求するために使用されるメッセージを作成する。ステップ2416
では、オブジェクト(RtRocMessage)が、診断要求に使用される(aRtRocMessage)の新規インスタンスを作成する。ステップ2418では、オブジェクト(RtCommDiag)が送信されるメッセージを構築し、オブジェクト(RtRocReqRespService)にメッセージ(SendRequest)を発行し、メッセージをリモートデバイスに送信する。ステップ2420では、オブジェクト(RtcommDiag)が、診断要求メッセージ用に作成されている(aRtRocMessage)インスタンスにメッセージ(waitForResponse)を発行する。ステップ2422では、オブジェクト(RtRockReqRespService)が、リモートデバイスに関連付けられている(aRtDeviceConnection)インスタンスでsend_msgを実行する。ステップ2424では、(aRtDeviceConnection)インスタンスが、要求メッセージをリモートデバイスに伝送する。ステップ2426では、リモートデバイス内のオブジェクト(RtDeviceConection)が、メッセージを受信し、送信側デバイスに関連付けられている(aRtDeviceConnection)インスタンスに、メッセージ(handleInboundMessage)を発行する。ステップ2428では、(aRtDeviceConnection)インスタンスが、処理のために、Route方法を介してオブジェクト(RtRocRouter)にメッセージを渡す。ステップ2430では、オブジェクト(RtRocRouter)が、オブジェクト(RtRocReqRespService)にProcessnboundReqRespを発行することによってメッセージに応答する。ステップ2432では、オブジェクト(RtRocReqRespService)が、要求メッセージIDからメッセージ型を求め、(RtRocDevConDiagListMsg)メッセージに関するperformコマンドを発行する。ステップ2434では、(RtRocDevConDiagListMsg)が、オブジェクト(RtDeviceConnection)に(GetDiagList)メッセージを送信し、このデバイスでのデバイス接続のためにデバイス接続診断データを取得する。ステップ2436では、オブジェクト(RtDeviceConnection)が、ユーティリティクラス(RtDevConDiagListData)によって提供されている多様な塗りつぶし(fill)ルーチンを使用して、診断データを出たバッファの中に入れる。ステップ2438では、オブジェクト(RtRocDevConDiagListMsg)が、CreateResponseを実行し、診断データを包含する応答メッセージを作成する。ステップ2440では、(RtRocDevConDiagListMsg)が、(RtDevConDiagListData)に(storeOn)メッセージを発行し、診断データを応答メッセージの中に入れる。ステップ2442では、(RtRocDevConDiagListMsg)が、SendResponse方法を使用して、(RtRocReqRespService)を通して要求側デバイスに応答メッセージを送り返す。ステップ2444では、(RtRocReqRespService)が、要求側デバイスに関連付けられている(aRtDeviceConnection)インスタンスに対しsend_msgを実行する。ステップ2446では、(aRtDeviceConnection)インスタンスが、要求側デバイスに応答メッセージを送り返す。ステップ2448では、要求側デバイス内の(aRtDeviceConnection)インスタンスが、handleInboundMessageを介して、(RtDeviceConnection)から応答メッセージを受信する。それから、応答メッセージは、Route方法を使用して(RtRocRouter)に送信する。ステップ2450では、(RtRocRouter)が、(RtRocReqRespService)に対し(ProcessInboundReqResp)を実行する。ステップ2452では、(RtRocReqRespService)が、(aRtRocMessage)インスタンスに、診断データに対する元の要求への応答が入手できることを知らせる。ステップ2454では、(RtCommDiag)が、(RtDevConDiagListData)に対し(readFrom)を発行し、応答メッセージから診断データを検索する。ステップ2456では、(RtCommDiag)が、(RtDevConDiagListData)に対し(getData)メッセージを発行し、表示のために診断データを検索する診断アプリケーションにデータを戻す。要求側デバイスは、すべてのデバイス接続活動の一般的な診断を適所に包含しているバッファを戻す。
【0188】
図25を参照すると、オブジェクト通信図が、デバイス接続通信診断を要求するための方法を示している。診断アプリケーションプログラムは、リモートデバイスに存在している単一デバイスの詳細なステータスを要求、アクセス、および表示する。診断アプリケーションプログラムは、リモートデバイスに、デバイス接続統計情報に対する要求を送信し、応答を待機する。いったん応答が受け取られると、デバイス接続に関するデバイス接続統計がユーザに表示される。ステップ2510では、診断アプリケーションプログラムが
、(RtCommDiag)に(GetDeviceConDiags)要求を送信し、リモートデバイスでの特定のデバイス接続に関するデバイス接続統計を取得する。ステップ2512では、(RtCommDiag)が、(RtDeviceConnection)に(GetDeviceConnectionIndex)メッセージを送信し、リモートデバイスのデバイス接続テーブルインデックスを取得する。ステップ2514では、(RtCommDiag)が、(RtRocMessage)に対しCreateを発行し、診断情報を要求するために使用されるメッセージを作成する。ステップ2516では、(RRocMessage)が、診断要求のために使用される(aRtRocMessage)の新規インスタンスを作成する。ステップ2518では、(RtCommDiag)が、送信されるメッセージを構築し、(RtRocReqRespService)に(SendRequest)を発行し、メッセージをリモートデバイスに送信する。ステップ2520では、(RtCommDiag)が、診断要求メッセージのために作成されている(aRtRocMessage)インスタンスに(waitForResponse)を発行する。ステップ2522では、(RtRocReqRespService)が、リモートデバイスに関連付けられている(aRtDeviceConnection)のインスタンスに対しsend_msgを実行する。ステップ2524では、(aRtDeviceConnection)インスタンスが、リモートデバイスに要求メッセージを伝送する。ステップ2526では、リモートデバイス内の(RtDeviceConnection)がメッセージを受信し、送信側デバイスに関連付けられている(aRtDeviceConnection)インスタンスに(handleInboundMessage)を発行する。ステップ2528では、(RtDeviceConnection)インスタンスが、処理のためにRouterメッセージを介して、(RtRocRouter)にメッセージを渡す。ステップ2530では、(RtRocRouter)が、メッセージが要求応答型メッセージであることを突き止め、(RtRocReqRespService)に対し(ProcessInboundReqResp)を発行する。ステップ2532では、(RtRocReqRespService)が、要求メッセージIDからメッセージ型を突き止め、(RtRocDevConDiagDetailMsg)メッセージに対するperform(実行)コマンドを発行する。ステップ2534では、(RtRocDevConDiagdetailMsg)が、(RtDeviceConnection)に(GetDiagDetail)メッセージを送信し、要求されているデバイス接続に関するデバイス接続統計を取得する。ステップ2536では、(RtDeviceConnection)が、ユーティリティクラス(RtDevConDiagDetailData)によって提供される多様な塗りつぶしルーチンを使用して、データバッファの中に診断データを入れる。ステップ2538では、(RtRocDevConDiagDetailMsg)が、(CreateResponse)を実行し、診断データを包含している応答メッセージを作成する。ステップ2540では、(RtRocDevConDiagDetailMsg)が、(RtDevConDiagDetailData)に対し、(storeOn)メッセージを発行し、診断データを応答メッセージの中に入れる。ステップ2542では、(RtRocDevConDiagDetailMsg)が、(SendResponse)方法を使用して(RtRocReqrespService)を通して要求側デバイスに応答メッセージを送り返す。ステップ2544では、(RtRocReqRespService)が、要求側デバイスに関連付けられている(aRtDeviceConnection)インスタンスに対し(send_msg)を実行する。ステップ2546では、(aRtDeviceConnection)インスタンスが、要求側デバイスに応答メッセージを送り返す。ステップ2548では、要求側デバイス内の(aRtDeviceConnection)インスタンスが、(handleInboundMessage)を介して、(RtDeviceConnection)から応答メッセージを受け取る。応答メッセージは、Route方法を使用して(RtRocRouter)に送信される。ステップ2550では、(RtRocRouter)が、(RtRocReqRespService)に対し(ProcessInboundReqResp)を実行する。ステップ2552では、(RtRocReqRespService)が、(aRtRocMessager)に対し、診断データを求める元の要求に対する応答が入手できることを知らせる。ステップ2554では、(RtCommDiag)が、(RtDevConDiagDetailData)に対し(readFrom)を発行し、応答メッセージから診断データを検索する。ステップ2556では、(RtCommDiag)が、(getData)メッセージを(RtDevConDiagDetailData)に発行し、表示のために診断データを検索する診断アプリケーションにデータを戻す。
【0189】
一般的には、制御装置/マルチプレクサ110は、手動でネットワークに追加される。例えば、デバイスは、典型的には、ユーザが、デバイスが接続されることになるACN Segmentを選択し、「New Device(新規デバイス)」コマンドを発行するとネットワークに
追加される。ユーザは、ワークステーションまたは制御装置/マルチプレクサのデバイス型、デバイス名、およびコマンドフィールドを入力するようにプロンプトを出される。構成システムは、自動的にデバイスに次のデバイスIDを割り当て、そのデバイスIDに基づきデフォルト名を構築する。構成システムは、オプションで、PCN番号および過去に割り当てられたデバイスIDに基づき、デバイスに対し一次と二次IPアドレスおよびサブネットマスクを自動的に生成する。
【0190】
代わりに、制御装置/マルチプレクサは、自動的に検知され、
図26に図示されるように実行時システムの中に組み込まれる。ステップ2610では、制御装置/マルチプレクサは、ACNへの接続時、および電力が適用されると、識別またはIPアドレス割当て検証を求める要求を自動的に送信する。要求メッセージは、制御装置/マルチプレクサのMACアドレスを含む。要求は、ステップ2612で、マスタ構成制御装置/マルチプレクサで、オペレーティングシステム技術で知られている「プラグアンドプレイネットワーク構成サービス」によって取り扱われる。ステップ2614では、「プラグアンドプレイネットワーク構成サービス」が、ネットワークから、IPアドレスを割り当てる/検証するための要求を受け取り、MACアドレス一致を求めて構成済みデバイスのテーブルを検証する。一致が発見されると、ステップ2616で、「プラグアンドプレイネットワーク構成サービス」が、デバイス名、デバイスID、IPアドレス情報、サブネットマスク情報、ACNセグメント番号およびデバイステーブルに含まれているその他のアイテムをもって応答する。一致が発見されない場合、ステップ2618で、「プラグアンドプレイネットワーク構成サービス」は、制御装置/マルチプレクサMACアドレス(例えば、Controller−000001)に基づきデバイスのデフォルト名を自動的に生成する。新規デバイスは、ステップ2620でDevice Scratch領域内のデータベースに追加される。
【0191】
ステップ2622では、ユーザはエクスプローラ(登録商標)を使用して、Device Scratch領域内の各未割当て済み制御装置/マルチプレクサを選択し、適切なACNセグメントまで選択をドラッグし、新規デバイスとして選択をシステムに追加するか、あるいは事前に存在していたデバイス構成に選択をドロップする。未割当て済み制御装置/マルチプレクサが、新規デバイスとして追加される場合、構成処理は、デバイスの手動組込みのやり方で進む。ステップ2624では、ユーザは、過去に割り当てられていた名称「Controller−000001」をデフォルトとして使用し、本当のデバイス名を入力するようにプロンプトが出される。自動アドレス割当てが設定されている場合、新規デバイスには次のデバイスIDと関連付けられているIPアドレスが割り当てられ、サブネットマスクは、ステップ2626で自動的に割り当てられる。手動アドレス割当てが設定されている場合、デバイスは、自動的に、次のデバイスIDを割り当てられ、ユーザは、ステップ2628でIPアドレスとサブネットマスクを入力するようにプロンプトを出される。制御装置/マルチプレクサのMACアドレスは、ACNセグメントの中にドラッグされるように、「Controller−000001」のMACアドレスに設定される。新規制御装置/マルチプレクサ名、デバイスID、IPアドレス、サブネットマスクおよびACN番号が、データベース内のデバイステーブルに追加される。未構成制御装置/マルチプレクサによる次の要求は、「プラグアンドプレイネットワーク構成サービス」によって回答される。
【0192】
新規制御装置/マルチプレクサが既存のデバイス上でドラッグアンドドロップされる場合、そのデバイスは、制御装置/マルチプレクサ型のデバイスであり、未割当てMACアドレスを有していなければならない。したがって、過去に入力された制御装置/マルチプレクサのMACアドレスは、ドロップされた「Controller−000001」でバイアスのMACアドレスに設定される。新規制御装置/マルチプレクサ名、デバイスID、IPアドレス、サブネットマスクおよびACN番号が、「プラグアンドプレイネットワーク構成サービス」によって要求側制御装置/マルチプレクサに対し送信するために入手できる。
【0193】
デジタル制御システムプログラム115は、ユーザによる「自動構成」コマンドに応えて、あるいは新規制御装置/マルチプレクサの検出に応えて、入出力(I/O)サブシステムを自動的に構成するための自動構成ルーチンを含む。
【0194】
図27を参照すると、フローチャートが、物理I/O装置を構成するための自動構成ルーチンのステップを示している。自動構成コマンドは、制御装置/マルチプレクサ110に命令され、制御装置/マルチプレクサ110内の各I/Oサブシステムに自動構成させる。自動構成コマンドは、I/Oサブシステムに命令され、I/Oサブシステム内の各I/Oカードに自動構成させる。自動構成コマンドは、I/Oカードに命令されることもある。
【0195】
I/Oカードの自動構成動作は、まず最初に、ある特定のカード位置でI/Oカードに応答指令信号を送り、ステップ2710でカードタイプ、および暗にいくつかのI/Oカードでは、I/Oカード内のI/Oポートの数を突き止める。I/Oカードがそのカード位置に関してエンジニアリングデータベースで過去に作成されていなかった場合、ステップ2712で適切な型のI/Oカードが定義され、適切な数のI/Oポートが作成される。I/Oカードが、そのカード位置に関してエンジニアリングデータベース内に存在しないが、エンジニアリングデータベース内のカードタイプがカード位置で検知されたカードタイプと一致しない場合、自動構成動作が、ステップ2714で不一致のグラフィック通知を作成し、ユーザに応答指令信号を送り、エンジニアリングデータベースが、カードタイプを含むように変更されなければならないかどうかを判断する。エンジニアリングデータベース内のカードタイプは、ユーザによって要求される場合、検知済みカードタイプに変更される。
【0196】
一旦カードタイプが知られると、自動構成プログラムは、ステップ2718でカードタイプに従って各I/O Portに応答指令信号を送り、ポートタイプおよび情報が入手できる場合には、I/Oポート上でのI/Oデバイスの数を突き止める。I/Oポートが、そのポートアドレスに関し、エンジニアリングデータベース内で過去に作成されなかった場合、適切な型のI/Oポートが定義され、ステップ2720で適切な数のI/Oデバイスが作成される。I/Oポートが、そのポートアドレスに関しエンジニアリングデータベース内に存在するが、ポートタイプが検知されたI/Oポートの型と一致しない場合、ユーザは、ステップ2722で不一致を通知され、ステップ2724で検知されたI/Oポートに一致するようにエンジニアリングデータベースを変更するかどうか尋ねられる。エンジニアリングデータベース内のポートタイプは、ユーザによって要求される場合、ステップ2726で検知されたポートタイプに変更される。
【0197】
一旦ポートタイプが知られると、自動構成プログラムは、ステップ2728でポートタイプに従って各I/Oデバイスに応答指令信号を送り、デバイスタイプを突き止める。I/Oデバイスが、そのデバイスアドレスに関し、エンジニアリングデータベース内で過去に作成されなかった場合、適切な型のI/Oデバイスがステップ2730で定義される。I/Oデバイスが、そのデバイスアドレスに関しエンジニアリングデータベースに存在するが、デバイスタイプが検知されたI/Oデバイスと一致しない場合、ユーザは、ステップ2732で不一致を通知され、ステップ2734で、検知されたI/Oデバイスに一致するようにエンジニアリングデバイスを変更するかどうかを尋ねられる。エンジニアリングデータベース内のデバイスタイプは、ユーザによって要求される場合、ステップ2736で検知されたデバイスに変更される。
【0198】
ステップ2738では、同一の信号ソース経路とともにISTがすでに存在しない限り、計測器信号タグ(IST)が、I/OポートおよびI/Oデバイス上の一次信号ソースに関して自動的に作成される。
【0199】
図28を参照すると、グラフィックユーザインタフェース(GUI)用の「画面」2800とも呼ばれている画面前面表示が、システム構成のディスプレイを描いている。画面2800は、プロセス制御環境を選択、構築および動作するためにユーザによって操作されるナビゲーション選択を描いている。ナビゲーションプログラムは、ネットワーク中の多様なツールおよびプロセッサを横切ってナビゲーションするための初期状態を供給する。ユーザは、ナビゲーションプログラムを制御し、ライブラリ、領域、プロセス制御環境、および機密保護動作にアクセスする。
【0200】
実例となるシステム構成は、制御システムセットアップ2802、
コントロールストラテジー2804、および物理セットアップ2806に関して記述され、制御される。制御システムを自動的に検知し、自動的に構成する機能は、物理セットアップ2806に関係する。特に、制御システムにおける物理デバイスを自動的に検知し、自動的に構成する機能は、制御ネットワーク2808内でのデバイスの作動および起動、制御装置2810の使用中止に関係する。
【0201】
実例となる実施態様においては、プロセス制御システムは、フィールドバス規格プロトコルに従ってプロセス制御ネットワークに接続されている多様なデバイスを制御する。フィールドバスプロトコルでは、標準ユーザアプリケーションがブロックに基づいて定義される。ブロックは、多様な異なる種類のアプリケーション
関数の表現である。ブロックの種類には、リソースブロック、
ファンクションブロック、および変換器ブロックを含む。
【0202】
リソースブロックは、デバイス名、製造業者、および連続番号などのフィールドバスデバイスの特徴を記述する。デバイスは、単一リソースブロックしか含まない。
【0203】
ファンクションブロックは、制御システムの動作を定義する。
ファンクションブロックの入力パラメータおよび出力パラメータは、フィールドバス上でリンクしてよい。各
ファンクションブロックの実行は、正確に予定を立てられる。ユーザアプリケーションは、多数の
ファンクションブロックを含んでよい。標準
ファンクションブロックの例は、アナログ入力(AI)、アナログ出力(AO)、バイアス(B)、制御セレクター(CS)、離散入力(DI)、離散出力(DO)、手動操作器(ML)、比例/微分(PD)、比例/積分/微分(PID)、および比率(RA)を含むことがある。
ファンクションブロックは、フィールドバスデバイスの中に構築され、選択されているデバイス機能性を定義する。1つの例では、簡略温度送信機が、AJ
ファンクションブロックを包含してよい。多くの場合、制御弁は、PID
ファンクションブロックおよびAOブロックを含む。
【0204】
変換機ブロックは、センサを読み取り、出力ハード
ウエアに命令を出すために、ローカル入力
関数および出力
関数から
ファンクションブロックを分離する。変換器ブロックは、校正データおよびセンサ型などの情報を包含する。典型的には、ユーザアプリケーションは、入力または出力
ファンクションブロックごとに1つの変換器ブロックを使用する。
【0205】
ユーザアプリケーションで定義されている別のオブジェクトは、デバイスにとって内部で、フィールドバスネットワーク全体での
ファンクションブロック入力と出力の間のリンクを定義するためのリンクオブジェクトを含む。傾向オブジェクトにより、他のデバイスによるアクセスのために、
ファンクションブロックパラメータの局所的な傾斜(trending)が可能になる。警報オブジェクトは、フィールドバス上での警報およびイベントの報告を可能にするために使用される。ビューオブジェクトは、人間/機械インタフェースで使用されているブロックパラメータセットの既定義分類である。
ファンクションブロック指定は、ブロックの型ごとに4つのビューを定義する。
【0206】
図29を参照すると、状態遷移図が、フィールドデバイスの多様な状態を示している。フィールドデバイス状態は、オフライン状態2902、未認識状態2904、スタンバイ状態2906、作動済み状態2908、および未結合状態2910を含む。フィールドデバイスの状態は、システム管理状態(SM−State)、物理デバイスタグ(PD−Tag)、デバイスアドレス、デバイス改訂情報(Rev*)、およびデバイス識別(Device−ID)を含む複数のパラメータにより判断される。実例となる実施態様においては、作動済み状態2908にあるデバイスは、
コントロールストラテジーの構成およびインストールに利用できるフィールドバスデバイスである。使用が中止されたデバイスとは、作動済み状態2908から削除されたデバイスのことである。
【0207】
T1からT14の複数の状態遷移の内の1つの状態遷移を生じさせる複数のイベントが発生する。各状態遷移中には、1つまたは複数の動作が実行される。
【0208】
状態遷移T1は、一時アドレスに常駐しているフィールドデバイスが、システム管理特定サービス(SM-IDENTIFY)により照会されるイベントによって引き起こされ、問い合わせが、デバイスがクリアされた物理デバイスタグを有していると判断する。状態遷移T1は、フィールドデバイスにスタンバイアドレスを割り当てることによって、ヌル状態からオフライン状態に変化する。典型的にはファーム
ウエア、ソフト
ウエア、またはハード
ウエアという形で論理を実行することにより、物理デバイスタグ設定サービス(SET−PD−TAG)が実行され、フィールドデバイスのデバイス識別に同一の物理デバイスタグが設定される。論理の実行はデバイスアドレス設定サービス(SET−ADDRESS)も使用し、スタンバイアドレスをフィールドデバイスに送信する。
【0209】
状態遷移T2は、一時アドレスに常駐しているフィールドデバイスが、システム管理特定サービス(SM−IDENTIFY)により照会されるイベントにより引き起こされ、問い合わせが、デバイスが、デバイスのデバイス識別に同一である物理デバイスタグを有していると判断する。状態遷移T2は、フィールドデバイスにスタンバイアドレスを割り当てることにより、ヌル(NULL)状態からオフライン状態に変化する。論理の実行は、デバイスアドレス設定サービス(SET−ADDRESS)を使用し、スタンバイアドレスをフィールドデバイスに送信する。
【0210】
状態遷移T3は、一時アドレスに常駐しているフィールドデバイスが、システム管理特定サービス(SM−IDENTIFY)により照会されるイベントにより引き起こされ、問い合わせが、デバイスが現在のプロセス制御システムネットワーク回線に構成されている物理デバイスタグおよびデバイス識別を有していると判断する。状態遷移T3は、割り当てられているアドレスをフィールドデバイスに送信するためにデバイスアドレス設定サービス(SET−ADDRESS)を利用する論理の実行を使用して、ヌル(NULL)状態からオフライン状態に変化する。
【0211】
状態遷移T4は、一時アドレスに常駐しているフィールドデバイスが、システム管理特性サービス(SM−IDENTIFY)により照会されるイベントにより引き起こされ、問い合わせが、デバイスが現在のプロセス制御システムネットワーク回線に構成されている物理デバイスタグおよびデバイス識別を有していると判断する。状態遷移T4は、ヌル(NULL)状態から未認識状態に変化する。
【0212】
状態遷移T5は、デバイスが一時アドレスに表示され、デバイスがユーザによって作動されているイベントにより引き起こされる。状態遷移T5は、オフライン状態から、フィールドデバイスの物理デバイスタグをクリアするために物理デバイスタグ設定サービス(SET−PD−TAG)を実行する、典型的にはファーム
ウエア、ソフト
ウエア、またはハード
ウエアの形を取る、論理の実行を使用するオフライン状態に変化する。論理の実行
は、物理デバイスタグ設定サービス(SET−PD−TAG)も実行し、割り当てられている物理デバイスタグをフィールドデバイスに送信する。論理の実行は、さらに、デバイスアドレス設定サービス(SET−ADDRESS)を使用して、割り当てられているアドレスをフィールドデバイスに送信する。
【0213】
状態遷移T6は、デバイスが一時アドレスで表示され、デバイスの使用がユーザによって中止されているイベントによって引き起こされる。状態遷移T6は、オフライン状態から、フィールドデバイスの物理デバイスタグをクリアするために物理デバイスタグ設定サービス(SET−PD−TAG)を実行する論理の実行を使用する、オフライン状態に変化する。
【0214】
状態遷移T7は、ユーザが、使用が中止されたデバイスをスタンバイにすることを要求するイベントにより引き起こされる。状態遷移T7は、フィールドデバイスにスタンバイアドレスを割り当てることによって、オフライン状態からオフライン状態に変化する。論理の実行は、物理デバイスタグ設定サービス(SET−PD−TAG)を実行し、フィールドデバイスのデバイス識別に同一である物理デバイスを設定する。論理の実行は、スタンバイアドレスをフィールドデバイスに送信するためにデバイスアドレス設定サービス(SET−ADDRESS)も使用する。
【0215】
状態遷移T8は、フィールドデバイスがスタンバイアドレスに表示されるイベントによって引き起こされる。状態遷移T8は、オフライン状態から、デバイス改訂情報をリソースブロックから読み取る論理の実行を通してスタンバイ状態に変化する。
【0216】
状態遷移T9は、フィールドデバイスが割り当てられているアドレスで表示されるイベントにより引き起こされる。状態遷移T9は、オフライン状態からCOMMISSIONEDに変化する。
【0217】
状態遷移T10は、スタンバイ状態にあるデバイスを作動することを要求するユーザにより引き起こされる。状態遷移T10は、スタンバイ状態から、デバイスアドレスをクリアするためにアドレスクリアサービス(CLEAR−ADDRESS)を使用する論理の実行を通してオフライン状態に変化する。
【0218】
状態遷移T11は、スタンバイ状態にあるデバイスの使用を中止することを要求するユーザにより引き起こされる。状態遷移T11は、スタンバイ状態から、デバイスアドレスをクリアするためにアドレスクリアサービス(CLEAR−ADDRESS)を使用する論理の実行を通してオフライン状態に変化する。
【0219】
状態遷移T12は、COMMOISSIONED状態にあるデバイスの使用を中止することを要求するユーザにより引き起こされる。状態遷移T12は、COMMISSIONED状態から、デバイスアドレスをクリアするためにアドレスクリアサービス(CLEAR−ADDRESS)を使用する論理の実行を通してオフライン状態に変化する。
【0220】
状態遷移T13は、フィールドバスシステム管理状態のINITIALIZED状態にあるデバイスの使用を中止することを要求するユーザにより引き起こされる。状態遷移T13は、未認識状態から、フィールドデバイスの物理デバイスタグをクリアするために物理デバイスタグ設定サービス(SET−PD−TAG)を実行する論理の実行を通して、オフライン状態に変化する。
【0221】
状態遷移T14は、フィールドバスシステム管理状態のSM−OPERATIONAL状態にあるデバイスの使用を中止することを要求するユーザにより引き起こされる。状態遷移T14
は、未認識状態から、デバイスアドレスをクリアするためにアドレスクリアサービスを使用する論理の実行を通して、オフライン状態に変化する。
【0222】
フィールドバス規格に従って、適切に動作するためには、フィールドバスデバイスは、一意のデバイスアドレス(ネットワークアドレス)および位置の物理デバイスタグを有している。プロセス制御システムネットワークリンクに接続されている各デバイスは、一意のノード指名子を有している。データリンク仕様は、恒久デバイスの範囲、一時アドレスの範囲、および訪問者(visitor)デバイスの範囲を含む、ノード指名子の許容値の範囲を指定する。一時アドレスは、現在、SM−OPERATIONAL状態にないデバイスによって使用される。フィールドバスインタフェースは、恒久デバイス用のアドレス空間の3つのセットへの区分化を維持する。「割当て済みアドレス」と呼ばれている1つのセットは、デバイスがバス上に存在するのかどうかに関係なく、
特定物理デバイスタグ付きのデバイスに割当て済みアドレスを含む。割当て済みアドレスは、Link−Active−Scheduler管理権取得(takeover)優先順位に関係する、ユーザにより入力される情報に基づいてソフト
ウエアエンジニアリングツールを使用して割り当てられる。「スタンバイアドレス」と呼ばれている第2セットは、SM−OPERATIONAL状態にあるデバイスを記述するが、デバイスアドレスは割り当てられていない。スタンバイアドレスは、フィールドバスインタフェースによって管理される。アドレスの第3セットは、第1セットと第2セットの外側のアドレスであり、未使用アドレスを参照する。
【0223】
少数の一時アドレスが自動検出およびオンラインアドレス割当てを複雑にする。スタンバイアドレスは、自動検出およびオンラインアドレス割当て動作の機能性をサポートするために定義され、活用される。割当て済みアドレスセットおよびスタンバイアドレスセットは、プロセス制御システムネットワークリンクへ接続されている潜在的なデバイスの数に等しく設定される。例えば、16のデバイスが、潜在的にプロセス制御システムネットワークに接続されると、16の割当て済みアドレスが定義され、16のスタンバイアドレスが定義される。
【0224】
デバイス改訂情報は、製造業社の識別(MANUFAC−ID)、デバイス型(DEV−TY
PE)、デバイス改訂(DEV−REV)、およびデバイス記述改訂(DD−REV)を含む。
【0225】
オフライン状態2902では、フィールドデバイスは、最近、プロセス制御システムネットワークに接続されるか、あるいは作動されているまたは使用が中止されている過程にある。オフライン状態2902は、複数のパラメータ組み合わせを有しているデバイス状態を含む。第1オフライン状態2902では、システム管理状態は初期化されていない状態(UNITIALIZED)であり、物理デバイスタグがクリアされる。第2オフライン状態2902では、システム管理状態は初期化されている状態(INITIALIZED)であり、物理デバイスタグが物理デバイスから読み取られ、画面上で表示できる。オフライン状態2902のどちらにおいても、デバイスアドレスは一時アドレスであり、改訂情報は入手可能ではなく、デバイス識別はデバイスから読み取られ、画面上に表示可能である。
【0226】
未認識状態2904では、フィールドデバイス物理デバイスタグおよびデバイス識別は、プロセス制御システムネットワークに接続されているデバイスのために作動されている(commissioned)値と一致しない。第1未認識状態2904では、システム管理状態は、一時アドレスであるデバイスアドレスによる初期化されている状態(INITIALIZED)である。第2未認識状態2904では、システム管理状態は、スタンバイアドレスまたは割当て済みアドレスであるデバイスアドレスによりシステム管理稼動状態(SM−OPERATIONAL)である。どちらの未認識状態2904においても、物理デバイスタグは、デバイスから読み取られ、画面に表示することができ、デバイス改訂は使用可能ではなく、デバイス
識別はデバイスから読み取られ、画面上に表示可能である。
【0227】
スタンバイ状態2906では、フィールドデバイスは、まだ自動検知されておらず、したがって
コントロールストラテジーでの構成には使用できない、あるいはリンクアクティブスケジューラ(LAS)スケジュールの中に含まれていない。スタンバイ状態2906では、
ファンクションブロック実行およびリンク通信がディスエーブルされている。リンクアクティブスケジューラは、周期的に伝送されなければならない全デバイス内でのすべてのデータバッファの伝送時間のリストを含む、決定的な集中バススケジューラである。デバイスがデータバッファを送ることになっているとき、リンクアクティブスケジューラはデバイスにデータ強制(CD)メッセージを発行する。CDメッセージの受領時、デバイスはバッファ内のデータを一斉送信するか、フィールドデバイスバス上のすべてのデバイスに公表し、一斉送信デバイスは「公表者」であるように定義される。データを受信するように構成されているデバイスは「加入者」である。予定を立てられているデータ転送は、典型的には、フィールドバス上のデバイス間での制御ループデータの定期的、周期的な転送に使用される。
【0228】
スタンバイ状態2906では、システム管理状態はシステム管理稼動状態(SM−OPERATIONAL)であリ、物理デバイスタグはデバイス識別に等しく、デバイスアドレスはスタンバイアドレスである。デバイス改訂情報は、フィールドデバイスから読み取られ、表示することができる。
【0229】
未結合状態2910は、その後、物理的に接続されることになるフィールドデバイス用の構成位置設定記号である。未結合状態2910は、まだ接続されていないフィールドデバイス内で
ファンクションブロックを活用する
コントロールストラテジーの構成をサポートする。未結合状態2910では、システム管理状態は、まだ適用できないが、物理デバイスタグはユーザによって指定されており、デバイスアドレスはユーザによって指定される。デバイス改訂情報は、最近の作動または構成に従って設定される。デバイス識別はクリアされる。
【0230】
作動済み状態2908では、フィールドデバイスは、
コントロールストラテジー構成およびインストールに利用できる。システム管理状態はシステム管理稼動状態(SM−OPERATIONAL)であり、物理デバイスタグはユーザによって指定されており、デバイスアドレスはユーザにより割り当てられる。デバイス改訂情報は、フィールドデバイスから読み取られ、画面上に表示できる。デバイス識別はフィールドデバイスから読み取られ、フィールド構成データベースに記憶され、表示画面で表示できる。
【0231】
複数の動作または「使用ケース」が、フィールドデバイスの作動および使用の中止を制御するために定義される。
【0232】
図30を参照すると、フローチャートが、第1動作、つまり新規デバイス3000の作動の動作を記述する「使用ケース」を示している。新規デバイスの作動の前に、フィールドバスインタフェースは稼動中である。デバイスはプロセス制御システムネットワークに接続されている。デバイスは、物理デバイスタグを有していないか、デバイス識別に等しい物理デバイスタグを有しているのどちらかである。
【0233】
新規デバイス3000を作動する動作の結果、デバイスに新規物理デバイスタグとデバイスアドレスが割り当てられ、デバイスが
ファンクションブロック構成に準備完了している状態を生じさせる。新規フィールドデバイスは、プロセス制御システムネットワークデータベースに入力され、デバイス識別は結合され、デバイス改訂情報は設定されている。プロセス制御システムネットワークステータスを表示するエンジニアリングソフト
ウエア
ツールは、COMMISSIONEDデバイスとして新規デバイスを表示する。
【0234】
第1ステップ3002では、フィールドデバイスは、一時アドレスで「ライブリスト」中に表示される。「ライブリスト」とは、パストークン(PT)メッセージに適切に応答しているすべてのデバイスのリストのことである。フィールドバス上のすべてのデバイスは、予定されているメッセージの伝送の間に予定されていないメッセージを送信することが許されている。リンクアクティブスケジューラは、デバイスにパストークン(PT)メッセージを発行することにより、デバイスにフィールドバスを使用する許可を与える。デバイスは、PTを受け取ると、メッセージが完了するまで、あるいは最大配信(allotted)トークン保持時間が時間切れになるまでメッセージを送信することを許される。最高優先順位活動として、リンクアクティブスケジューラが、周期的に発生するように設定される動作のリストを包含しているCDスケジュールにアクセスする。予定された時刻に、リンクアクティブスケジューラは、フィールドバスデバイス内の特定のデータバッファにデータ強制(CD)メッセージを送信する。デバイスは、ただちにメッセージをフィールドバス上のすべてのデバイスに一斉送信する。リンクアクティブスケジューラは、予定されている転送の間に残りの動作を実行する。リンクアクティブスケジューラは、ライブリストに記載されていないアドレスに定期的にプローブノード(PN)メッセージを送信することにより、継続して新しいデバイスをフィールドバスに追加する。デバイスがアドレスに存在し、PNを受信すると、デバイスはただちにプローブ応答(PR)メッセージを返す。デバイスがPRメッセージで応答すると、リンクアクティブスケジューラはデバイスをライブリストに追加し、デバイスにノード起動(NA)メッセージを送信することにより確認する。デバイスは、PTに適切に応答する限りライブリストに残る。デバイスが追加されたり、ライブリストから削除されると、リンクアクティブスケジューラは、ライブリストに対する変更をすべてのデバイスに一斉送信し、各デバイスがライブリストの最新のコピーを保持できるようにする。
【0235】
第2ステップ3004では、インタフェースは、システム管理識別サービス(SM−IDENTIFY)を使用してフィールドデバイスを照会し、フィールドデバイスが物理デバイスタグが設定されている初期化されていない状態(UNINITIALIZED状態)にあるのか、あるいはデバイス識別に等しい物理デバイスタグを有している、初期化されている状態(INITIALIZED状態)にあるのかを判断する。それから、インタフェースは、フィールドデバイスにスタンバイアドレスを割り当てる(ステップ3006)。
【0236】
論理ステップ3008は、過去に初期化されていない状態の(UNITIALIZED)デバイスが、ステップ3010で、設定されている物理デバイスタグサービス(SET−PD−TAG)を使用してデバイス識別に同一のフィールドデバイスの物理デバイスタグを設定し、それによりフィールドデバイスを初期化されている状態(INITIALIZED状態)にすることを命令する。スタンバイアドレスは、アドレス設定サービス(SET−ADDRESS)を使用してフィールドデバイス3012に送信され、フィールドデバイスを初期化されている状態(INITIALIZED状態)からシステム管理稼動状態(SM−OPERATIONAL)に進める。この時点で、フィールドデバイスは、スタンバイアドレス3014で「ライブリスト」に表示される。デバイス改訂情報は、リソースブロック3016から読み取られる。ステップ3018では、実行中のソフト
ウエアエンジニアリングツールがフィールドデバイスをスタンバイ(STANDBY)デバイスとして表示する。
【0237】
ステップ3020では、新規ユーザが、新規物理デバイスタグをフィールドデバイスに割り当てる。物理デバイスタグは、一意であり、デバイス識別とは同じではないように制約される。物理デバイスタグの割当て中、デバイスアドレスは、ソフト
ウエアエンジニアリングツールを使用してフィールドデバイスに割り当てられ、リンクアクティブスケジューラ管理権取得優先順位は「選択可能」に設定される。デバイス改訂情報は、フィールド
デバイスから読み取られ、プロセス制御システムネットワークデータベースに書込まれる。インタフェースは、アドレスクリアサービス(CLEAR−ADDRESS)を使用して、フィールドデバイス3022の状態を初期化されている状態(INITIALIZED状態)に変更する。フィールドデバイスは、一時アドレス3024で「ライブリスト」に表示される。
【0238】
ステップ3026では、インタフェースは、システム管理識別サービス(SM−IDENTIFY)を使用してフィールドデバイスを照会し、デバイス識別によりフィールドデバイスを認識する。インタフェースは、物理デバイスタグ設定サービス(SET−PD−TAG)を使用し、物理デバイスタグ3028をクリアし、それによってフィールドデバイス状態を初期化されていない状態(UNINITIALIZED状態)に変更する。それから物理デバイスタグ設定サービス(SET−PD−TAG)が使用され、割当て済み物理デバイスタグをフィールドデバイス3030に送信し、フィールドデバイス状態を初期化されている状態(INITIALIZED状態)に変更する。アドレス設定サービス(SET−ADDRESS)が呼び出され、割当て済みアドレスをフィールドデバイス3032に送信し、フィールドデバイスをシステム管理稼動状態(SM−OPERATIONAL)にする。フィールドデバイスは、割当て済みアドレス3034で「ライブリスト」に表示される。プロセス制御システムネットワークデータベースでは、デバイス識別はデバイスに結合される(ステップ3036)。ソフト
ウエアエンジニアリングツールは、フィールドデバイスをCOMMISSIONEDデバイスとして表示する。
【0239】
図31を参照すると、フローチャートは、第2動作、つまり未結合デバイス3100を作動する動作を記述する「使用ケース」を示している。未結合デバイスの作動前、フィールドバスインタフェースは稼動中である。フィールドデバイスがプロセス制御システムネットワークデータベースで作成され、物理デバイスタグおよびデバイスアドレスがフィールドデバイスに割り当てられる。ただし、フィールドデバイスはデバイス識別には結合されていない。プロセス制御システムネットワークデータベースも、フィールドデバイスから読み取られるデバイス改訂情報を記憶するために初期化される。ソフト
ウエアエンジニアリングツールは、フィールドデバイスを未結合デバイスとして表示する。作動される未結合デバイスは、物理デバイスタグが設定されていないフィールドデバイス、あるいはデバイス識別に同一である物理デバイスを有しているフィールドデバイスのどちらかである。未結合デバイスが作動され、プロセス制御システムネットワークリンクにフィールドデバイスを配置する。
【0240】
未結合デバイス3100を作動する動作の結果、デバイスが物理デバイスタグおよび割当て済みデバイスアドレスを設定さ
れ、デバイスが
ファンクションブロック構成に準備完了している状態が生じる。新規フィールドデバイスは、デバイス識別が結合している状態でプロセス制御システムネットワークデータベースに入れられる。プロセス制御システムネットワークステータスを表示するエンジニアリングソフト
ウエアツールは、デバイスを権限が与えられた(COMMISSIONED)デバイスとして表示する。
【0241】
第1ステップ3102では、フィールドデバイスは、一時アドレスで「ライブリスト」に表示される。第2ステップ3104では、インタフェースは、システム管理識別サービス(SM−IDENTIFY)を使用してフィールドデバイスを照会し、フィールドデバイスが、物理デバイスタグが設定されていない初期化されていない状態にあるのか、それともデバイス識別に等しい物理デバイスを有している初期化されている状態にあるのかを判断する。それから、インタフェースは、3106にフィールドデバイスのスタンバイアドレスを割り当てる。
【0242】
論理ステップ3108は、過去に初期化されていないデバイスが、ステップ3110で、物理デバイスタグ設定サービス(SET−PD−TAG)を使用して、デバイス識別に
同一のフィールドデバイスの物理デバイスタグを設定し、それにより、フィールドデバイスを初期化されている状態にすることを命令する。スタンバイアドレスが、アドレス設定サービス(SET−ADDRESS)を使用してフィールドデバイス3112に送信され、フィールドデバイスを初期化されている状態からシステム管理稼動状態に進める。この時点で、フィールドデバイスは、スタンバイアドレス3114で「ライブリスト」に表示される。デバイス改訂情報は、リソースブロック3116から読み取られる。ステップ3118では、実行中のソフト
ウエアエンジニアリングツールがフィールドデバイスをスタンバイ(STANDBY)デバイスとして表示する。
【0243】
ステップ3120では、ユーザは、フィールドデバイスを事前構成デバイスと関連付けることにより、物理デバイスタグをフィールドデバイスに割り当てる。デバイス改訂情報はフィールドデバイスから読み取られ、情報が、事前構成デバイス用のプロセス制御システムネットワークデータベース内のデバイス改訂情報と一致することを確かめる。デバイスのデバイス改訂情報がデータベースと一致しない場合、ユーザは、データベースを無効にし、デバイス改訂情報をフィールドデバイスから読み取り、情報をプロセス制御システムデータベースに書き込んでよい。代わりに、未結合デバイスのデバイス改訂情報は、ブランクのままにされ、任意の物理デバイスを未結合デバイスと結合できるようにする。インタフェースは、アドレスクリアサービス(CLEAR−ADDRESS)を使用して、フィールドデバイス3122の状態を初期化されている(INITIALIZED)状態に変更する。フィールドデバイスは、一時アドレス3124で、「ライブリスト」に表示される。
【0244】
ステップ3126では、インタフェースは、システム管理識別サービス(SM−IDENTIFY)を使用して、フィールドデバイスを照会し、デバイス識別によりフィールドデバイスを認識する。インタフェースは、物理デバイスタグ設定サービス(SET−PD−TAG)を使用し、物理デバイスタグ3128をクリアし、それによってフィールドデバイス状態を初期化されていない(UNITIALIZED)状態に変更する。それから、物理デバイスタグ設定サービス(SET−PD−TAG)が使用され、割当て済み物理デバイスタグをフィールドデバイス3130に送信し、フィールドデバイス状態を初期化されている(INITIALIZED)状態に変更する。アドレス設定サービス(SET−ADDRESS)が呼び出され、割当て済みアドレスをフィールドデバイス3132に送信し、フィールドデバイスをシステム管理稼動状態(SM−OPERATIONAL)にする。フィールドデバイスは、割り当てられているアドレス3134で「ライブリスト」に表示される。プロセス制御システムネットワークデータベースでは、デバイス識別は、デバイスに結合される3136。ソフト
ウエアエンジニアリングツールは、フィールドデバイスを権限が与えられた(COMMISSIONED)デバイスとして表示する。
【0245】
図32を参照すると、フローチャートは、第3動作、つまりデバイス3200の使用を中止する動作を記述する「使用ケース」を示している。フィールドデバイスは、複数の理由から使用が中止される。例えば、フィールドバスデバイスが時代遅れであるとき、プロセス制御システムがもはや時代遅れのデバイス上でリソースを使い尽くさないように、ユーザが、機能していない分岐のネットワーク相互接続構造のクリアを希望することがある。また、ユーザが、フィールドバスデバイスが誤動作しており、ネットワーク相互接続構造のセグメントの動作を劣化させていると疑っていることがある。ユーザは、プロセス制御システムに疑われているフィールドバスデバイスを一次的に無視させ、セグメント内の残りのデバイスが適切に動作するかどうかを確認することにより、問題を診断することがある。
【0246】
デバイスの使用を中止する動作の前に、フィールドバスインタフェースおよびフィールドデバイスは稼動中であり、フィールドデバイスは、割当て済みアドレスまたはスタンバイアドレスでライブリストに表示される。ソフト
ウエアエンジニアリングツールは、フィ
ールドデバイスを権限が与えられた(COMMISSIONED)またはスタンバイ(STANDBY)デバイスとして表示する。ソフトウエアエンジニアリングツールは、例えば、
ファンクションブロックタグをクリアし、OPERATIONAL−POWERUPフラグをクリアすることによって、フィールドデバイスを使用中止に備えるルーチンを実行する。
【0247】
デバイスの使用を中止する動作の結果、フィールドデバイスの物理デバイスタグがクリアされ、フィールドデバイスがプロセス制御システムネットワークリンクからの削除に備えている状態が生じる。フィールドデバイスのプロセス制御システムネットワークデータベースエントリは、デバイス識別を、未結合状態にあるとして示す。ソフトウエアエンジニアリングツールは、デバイス識別を未結合デバイスとして表示し、物理デバイスをOFFLINEデバイスとして表示する。
【0248】
ユーザが、フィールドデバイス3202の「使用中止」動作を選択すると、デバイス3200の使用を中止する動作が開始する。グラフィックユーザインタフェースは、プロセス制御システム内の適切な制御装置に「使用中止(Decommission)」コマンドを発行するソフトウエアエンジニアリングツールを含む。使用中止コマンドは、ターゲットI/Oサブシステム、カードとポートの識別子、および使用中止されるフィールドデバイスのデバイス識別を指定する。同じ物理デバイスタグが設定されている別のデバイスが、未識別(UNRECOGNIZED)状態で存在することがあるため、デバイス識別が指定される。インタフェースは、アドレスクリアサービス(CLEAR−ADDRESS)を使用して、フィールドデバイス3204の状態を初期化されていない(INITIALIZED)状態に変更する。フィールドデバイスは、一時アドレス3206で「ライブリスト」に表示される。
【0249】
ステップ3208では、インタフェースは、システム管理識別サービス(SM−IDENTIFY)を使用してフィールドデバイスを照会し、物理デバイスタグおよびデバイス識別によりフィールドデバイスを認識する。インタフェースは、物理デバイスタグ設定サービス(SET−PD−TAG)を使用し、物理デバイスタグ3210をクリアし、それによってフィールドデバイス状態を初期化されていない(UNITIALIZED)状態に変更する。
【0250】
プロセス制御システムネットワークデータベースでは、デバイス識別は未結合であり、ソフトウエアエンジニアリングツールはフィールドデバイスを未結合デバイス3212として表示する。次のステップ3214では、ソフトウエアエンジニアリングツールは、フィールドデバイスをオフライン(OFFLINE)デバイスとして表示する。
【0251】
ネットワークインタフェースカードは、フィールドデバイスの使用が中止された旨の指示を記憶し(ステップ3216)、ユーザによって命令されない限り、フィールドデバイスをスタンバイ(STANDBY)状態に移さない。使用中止されたデバイスがスタンバイ(STANDBY)アドレスに移動されない場合、インタフェースカードは、フィールドデバイスがライブリストから離れて進む(advances off)まで、フィールドデバイスを追跡調査する。
【0252】
図33を参照すると、フローチャートは、第4動作、つまり稼動電源投入を使用可能(enablement)としないで作動済みデバイス3300を接続する動作を記述する「使用ケース」を示している。作動済みデバイス3300を接続する動作の前、フィールドバスインタフェースは稼動中である。フィールドバスインタフェースの構成は、接続されている状態にあるフィールドデバイスを含む。フィールドデバイスの物理デバイスタグおよびデバイス識別が付き合わされる。作動済みデバイス3300を接続する動作の後、フィールドデバイスには割当て済みアドレスがある。
【0253】
フィールドデバイスは、一時アドレス3302で「ライブリスト」に表示される。ステップ3304では、インタフェースが、システム管理識別サービス(SM−IDENTIFY)を
使用してフィールドデバイスを照会し、フィールドバスインタフェース構成の一部としての物理デバイスタグおよびデバイス識別によりフィールドデバイスを認識する。アドレス設定サービス(SET−ADDRESS)が呼び出され、割当て済みアドレスをフィールドデバイス3306に送信し、フィールドデバイスをシステム管理稼動状態(SM−OPERATIONAL)にする。フィールドデバイスは、割当て済みアドレス3308で「ライブリスト」に表示される。
【0254】
図34を参照すると、フローチャートは、第5動作、つまりデバイス3400を置換する動作を記述する「使用ケース」を示している。デバイスは、可能であるならば、プロセス制御システムネットワークリンクに接続されているカレントフィールドデバイス3402の使用を中止し、未結合デバイス3404への置換を作動することにより置換される。カレントフィールドデバイス3402の使用を中止するステップは、
図32に関して詳細に記述される。未結合デバイス3404への置換を作動するステップは、
図31に関して記述される。
【0255】
図35を参照すると、フローチャートは、第6動作、つまり未認識デバイス3500を接続する動作を記述する「使用ケース」を示している。作動済みデバイス3300を接続する動作の前、フィールドバスインタフェースは稼動中である。現在のプロセス制御システムネットワークリンク用に構成されていない物理デバイスタグおよびデバイス識別を有しているフィールドデバイスが接続される。未認識デバイス3500を接続する動作の後、フィールドデバイスは識別され、ソフトウエアエンジニアリングツールはデバイスを未認識デバイスとして表示する。未認識デバイス3500を接続する動作は、ソフトウエアエンジニアリングツールを使用しなくても実行してよい。
【0256】
フィールドデバイスは、「ライブリスト」3502に表示される。ステップ3504では、インタフェースは、システム管理識別サービス(SM−IDENTIFY)を使用してフィールドデバイスを照会し、物理デバイスタグおよびデバイス識別が、現在の構成でのフィールドデバイスに一致しないと判断する。
【0257】
図36を参照すると、フローチャートは、第7動作、つまり未認識デバイス3600の使用を中止する動作を記述する「使用ケース」を示している。未認識デバイスの使用を中止する動作の前、フィールドバスインタフェースは稼動中である。現在のプロセス制御システムネットワークリンク用に構成されていない物理デバイスタグおよびデバイス識別を有しているフィールドデバイスが識別される。ソフトウエアエンジニアリングツールは、未識別デバイスとしてフィールドデバイスを表示する。
【0258】
未認識デバイス3600の使用を中止する動作の結果、フィールドデバイスの物理デバイスタグがクリアされ、フィールドデバイスが、プロセス制御システムネットワークリンクからの削除に備えている状態が生じる。ソフトウエアエンジニアリングツールは、フィールドデバイスをオフラインデバイスとして表示する。
【0259】
ユーザがフィールドデバイス3602に「使用中止」動作を選択すると、未認識デバイス3600の使用を中止する動作が開始する。グラフィックユーザインタフェースは、プロセス制御システム内の適切な制御装置に「使用中止」コマンドを発行するソフトウエアエンジニアリングツールを含む。使用中止コマンドは、ターゲットI/Oサブシステム、カードとポートの識別子、および使用中止されるフィールドデバイスのデバイス識別を指定する。
【0260】
フィールドデバイスが初期化されている状態にある場合、論理ステップ3604は、物理デバイスタグクリアステップ3612に対し、使用中止動作3600を命令する。それ
以外の場合、インタフェースは、アドレスクリアサービス(CLEAR−ADDRESS)を使用して、フィールドデバイス3606の状態を初期化されている状態に変更する。フィールドデバイスは、一時アドレス3608で「ライブリスト」に表示される。
【0261】
ステップ3610では、インタフェースは、システム管理識別サービス(SM−IDENTIFY)を使用してフィールドデバイスを照会し、物理デバイスタグおよびデバイス識別によりフィールドデバイスを認識する。インタフェースは、物理デバイスタグ設定サービス(SET−PD−TAG)を使用し、物理デバイスタグ3612をクリアし、それによって、フィールドデバイス状態を初期化されていない状態に変更する。次のステップ3614では、ソフトウエアエンジニアリングツールが、フィールドデバイスをOFFLINEデバイスとして表示する。
【0262】
ネットワークインタフェースカードは、フィールドデバイスの使用が中止された旨の指示を記憶し(ステップ3616)、ユーザにより命令されない限り、フィールドデバイスデバイスをスタンバイ状態に移さない。使用が中止されたデバイスがスタンバイアドレスに移動されない場合、インタフェースカードは、フィールドデバイスがライブリストから離れて進む(advances off)までフィールドデバイスを追跡調査する。
【0263】
図37を参照すると、フローチャートは、第8動作、つまり使用が中止されたデバイスをスタンバイ状態にする動作3700を記述する「使用ケース」を示している。使用が中止されたデバイスをスタンバイ状態にする動作3700の前、フィールドバスインタフェースは稼動中である。フィールドデバイスの使用は中止され、オフライン状態にある。
【0264】
使用が中止されたデバイスをスタンバイにする動作3700の結果、フィールドバスが、フィールドデバイスの物理デバイスタグがデバイス識別に同一に設定され、スタンバイアドレスに配置される状態が生じる。ソフトウエアエンジニアリングツールは、フィールドデバイスをスタンバイデバイスとして表示する。
【0265】
ユーザがフィールドデバイス3702に「スタンバイにする」動作を選択すると、使用が中止されたデバイスをスタンバイ3700にする動作が開始する。グラフィックユーザインタフェースは、プロセス制御システム3704内で適切な制御装置に「スタンバイにする」コマンドを発行するソフトウエアエンジニアリングツールを含む。使用中止コマンドは、ターゲットI/Oサブシステム、カードとポートの識別子、およびスタンバイにされるフィールドデバイスのデバイス識別を指定する。
【0266】
インタフェースは、フィールドデバイスにスタンバイアドレス3706を割り当てる。それから、物理デバイスタグ設定サービス(SET−PD−TAG)が使用され、デバイス識別3708と同一の物理デバイスタグを設定し、フィールドデバイス状態を初期化されている状態に変更する。アドレス設定サービス(SET−ADDRESS)が呼び出され、スタンバイアドレスをフィールドデバイス3710に送信し、フィールドデバイスをシステム管理稼動状態(SM−OPERATIONAL)にする。フィールドデバイスは、スタンバイアドレス3712で「ライブリスト」に表示される。デバイス改訂情報は、リソースブロック3714から読み取られる。ステップ3716では、実行中のソフトウエアエンジニアリングツールが、フィールドデバイスをスタンバイデバイスとして表示する。
【0267】
ユーザは、それ以降、新規デバイスを作成するか、あるいはフィールドデバイスをプロセス制御システムネットワークデータベース内の未結合デバイスに結合することによって、フィールドデバイス3718を作動してよい。デバイスを作動する技法は、
図30および
図31に関して説明される。
【0268】
図38を参照すると、概略ブロック図が、複数の制御言語を使用してプロセス構成を定義するためのプロセス制御構成プログラムのプログラム構造を示している。モジュールエディタ3820は、エンジニアリングワークステーション106などのワークステーション内のCPU116で実行するソフトウエアプログラムである。モジュールエディタ3820を使用して、ユーザは、属性エディタプログラム3830、
ファンクションブロック編集/閲覧/デバッグプログラム3840、
シーケンシャルファンクションチャートプログラム3850、はしご型論理プログラム3870、および
ストラクチャードテキストプログラム3890を含む、複数の制御言語の1つの言語エディタを起動する。複数の制御言語エディタは、異なる制御言語エディタを使用して、1つの共通した
コントロールストラテジーが定義されるように、互換性のあるデータベースおよびインタフェースとともに動作する。異なる制御言語エディタの画面表示の外観は、ユーザが、容易にかつ効率的に異なる目的のためにさまざまなエディタを使用し、言語のさまざまな態様を最大限に活用できるように類似している。
【0269】
モジュールエディタ3820は、構成エントリ用の根本的なルーチンであり、SP88規格により定義されている制御モジュールインスタンスおよび装置モジュールインスタンス、およびライブラリモジュールを作成、編集、および再利用するために使用される。モジュールエディタ3820は、
コントロールストラテジーを形成する複数のモジュールを構成、視覚化、およびナビゲーションするためのグラフィック技法を供給する。モジュールエディタ3820は、モジュールリンクおよびモジュール包含(containment)を定義するためにも使用される。
【0270】
モジュールエディタ3820は、警報、イベント、履歴、状態、ヘルプ、構成要素および属性に関する情報収集だけではなく、アルゴリズム定義に対するサポートを含むモジュールの構成のすべての側面へのアクセスを供給する。
【0271】
モジュールエディタ3820は、制御システムを通してナビゲーションを容易にする多様な機能を含む。例えば、モジュールエディタ3820は、ユーザ定義キーワードに関する属性をフィルタリングし、焦点が定められた属性構成ビューを供給する。さらに、モジュールエディタ3820は、デフォルトで、モジュールに対する変更によって影響を受けるすべてのデバイスへのインストールを実行する高速インストール機能を含む。
コントロールストラテジーは、インストールスクリプトを使用して、エディタから実行時エンジンの中に転送される。複数の制御言語実行エンジンが、1つまたは複数の制御装置/マルチプレクサ110で
コントロールストラテジーを実現する。
【0272】
オフライン構成は、既存のモジュールの
コントロールストラテジーに対する「進行中の作業(work in progress)」をサポートする。新規
ストラテジーが完了すると、それは既存のモジュールにインストールできる。この「進行中の作業」は、そのインストールを許可しないためにフラグを立てることができる。
【0273】
属性エディタプログラム3830は、
ファンクションブロック、はしご、複合物等を含む、制御モジュールまたは制御アルゴリズムの要素に関連付けられているパラメータ値を表示し、編集するために、ユーザによって操作される制御プログラムである。属性エディタプログラム3830は、オンラインで使用され、制御モジュールを構成する。オンラインでは、属性エディタプログラム3830は、データを表示し、編集するために使用される。属性は、モジュールレベルアクセスをモジュール内に包含されているパラメータに与えるように定義される。属性エディタプログラム3830は、モジュールエディタ3820およびそれ以外の制御言語エディタによって起動される。属性エディタプログラム3830は、グラフィックナビゲーションツリー経路ディスプレイを使用して、簡略属性構成ビューを提示し、モジュールのために構成されるパラメータを整理統合する(consolidat
e)。ユーザは、属性エディタプログラム3830を起動し、グラフィックナビゲーションツリーを通してナビゲーションし、ある特定の属性を発見する。属性が選択されると、属性は、ディスプレイが喚起されるコンテキストに応じて、アプリケーションウィンドウを使用して、あるいはダイアログとして表示される。属性エディタプログラム3830は、ドラッグアンドドロップ技法を使用して、属性のコピー、貼り付け、およびバルク(bulk)変更をサポートすることにより構成を容易にする。属性を包含しているモジュールがインストールされると、属性がインストールされるため、属性エディタプログラム3830は、属性パラメータ値を定義するためには使用されるが、属性をインストールするためには使用されない。属性パラメータ値は、ユーザにより入力されるに従って、属性エディタプログラム3830がエラーチェックを実行する。属性エディタプログラム3830によって、ユーザは、列の数の拡大と削減を含む典型的なスプレッドシート機能をもって、あるいは包含によってデータを並べ替え、表示できるようになる。
【0274】
ファンクションブロック(エディタ/ビュー/デバッグ)プログラム3840は、フィールドバス財団(Fieldbus Foundation)およびIEC 1131−3規格の元で指定されている
ファンクションブロック要素をアセンブルすることにより
コントロールストラテジーを定義するためにユーザにより操作される制御プログラムである。
ファンクションブロックプログラム3840は、制御装置/マルチプレクサ110内で動作する
ファンクションブロック実行エンジン内で実現される。
ファンクションブロック実行エンジンは、Function Block Library3842を使用して
ファンクションブロック制御アルゴリズムを実行する。
ファンクションブロックプログラム3840は、Function Block Library3802内に記憶されている
ファンクションブロック、およびそれ以外の定義済み制御モジュール、例えば他のアプリケーションプログラムによる使用のために定義されている制御モジュールを使用して、
コントロールストラテジーを作成、編集および再利用するためのグラフィックエディタを供給する。作成される
コントロールストラテジーは、それ以降の使用、または別のアプリケーションプログラムによる使用のために、再利用可能ライブラリ構成要素としてFunction Block Library3802内に保存される。
ファンクションブロックプログラム3840は、HARTおよびFFタイミングフィールドデバイス用の制御構造も作成、編集、および再利用する。
コントロールストラテジーの
ファンクションブロックおよびモジュール構成要素は、ある特定のデバイスに限られるのではなく、HARTおよびFFタイミングフィールドデバイスを含む、複数の制御デバイス全体でむしろ区切られている。
【0275】
ファンクションブロックまたはモジュールは、
ファンクションブロックプログラム3840を使用して修正される属性を含む。システム内の属性は、機密保護されていない限り、その属性のためのナビゲーションツリー経路を通してアクセスされ、
ファンクションブロックエディタから書き出される。
【0276】
ファンクションブロック(エディタ)プログラム3840は、モジュールおよび再利用可能なライブラリ構成要素の
コントロールストラテジーのために、オフライン作成およびデバッグ機能をサポートする。オフライン動作中、制御装置はネットワークに接続されていない。オフライン動作中、複数の
コントロールストラテジーが開かれ、構成が
ストラテジー間でコピーされ、貼り付けられることがあるため、オフライン動作は、制御装置が、
ファンクションブロック(エディタ)プログラム3840の属性エディタ3842を使用して接続される前に、属性およびパラメータを初期化するのに有効である。
【0277】
ファンクションブロックエディタプログラム3840は、ブロック入力値および出力値の表示を含む、動作中の
ファンクションブロックのオンライングラフィック編集、表示およびデバッグもサポートする。選択式オンライン編集およびデバッグモードオプションは、例えば、単一ステップ、強制入力、およびブレークポイントオプションを含む。ユーザ
が適所にある矛盾しているパラメータ値を訂正できるように、オンライン編集およびデバッグには1つのウィンドウが使用される。オンライン編集中の入力値は、オフライン編集値との一貫性があるかチェックされ、矛盾する場合には却下される。
【0278】
ファンクションブロックエディタプログラム3840により作成されるハードコピー出力情報は、ブロック属性およびパラメータ値のようなグラフィック表記および構成情報を含む。
【0279】
ファンクションブロックプログラム3840の複数の機能は、再利用可能ライブラリ構成要素、ユーザ返還サポート、および入力エラーチェックを含む、ユーザサポートを容易にする。ステップ動作内でのユーザ変換サポートは、ユーザが、応答が設定されるポップアップダイアログを構成できるようにする。再利用可能ライブラリ構成要素は、単一
ファンクションブロックダイアグラム(FBD)が、実行中に、複数のモジュールまたはFBDに対するサブルーチンとして動作するように、構成および実行の間のエンジニアリングを簡略化するために開発される。
【0280】
シーケンシャルファンクションチャート(編集/閲覧/デバッグ)プログラム3850は、IEC 1131−3規格の元で指定されているステップ、ステップ動作、および遷移をアセンブルすることにより
コントロールストラテジーを定義するために、ユーザにより操作される制御プログラムである。
シーケンシャルファンクションチャートプログラム3850は、制御装置/マルチプレクサ110内で動作する、SFC実行エンジン内で実現される。SFC実行エンジンは、ステップ、動作、および遷移を含む、
シーケンシャルファンクションチャート制御アルゴリズムを実行する。
シーケンシャルファンクションチャートプログラム3850は、
シーケンシャルファンクションチャートを使用して
コントロールストラテジーを作成、編集および再利用するためのグラフィックエディタを供給する。
シーケンシャルファンクションチャートプログラム3850は、並行論理経路の実行をサポートする。
シーケンシャルファンクションチャートの実行は、少なくともSFC実行の期間中、1つのモジュールと関連付けられている。
【0281】
シーケンシャルファンクションチャートは、
シーケンシャルファンクションチャートプログラム3850を使用して修正される属性を含む。システム内の属性は、機密保護されていない限り、
シーケンシャルファンクションチャート実行でのステップからアクセスされる。
【0282】
シーケンシャルファンクションチャートプログラム3850は、モジュールの
コントロールストラテジーのためにオフライン作成デバッグ機能をサポートする。オフライン動作中、制御装置は、ネットワークに接続されていない。オフライン動作中、複数の
コントロールストラテジーが開かれ、構成が
ストラテジー間でコピーされ、貼り付けられることがあるため、オフライン動作は、制御装置が、
シーケンシャルファンクションチャートプログラム3850の属性エディタ(不図示)を使用して接続される前に、属性およびパラメータを初期化するのに有効である。
【0283】
シーケンシャルファンクションチャート(エディタ)プログラム3850は、属性値「ライブ」表示を含む、動作中のャートのオンライングラフィック編集、表示およびデバッグもサポートする。選択式オンライン編集およびデバッグモードオプションは、例えば、単一ステップ、強制入力、およびブレークポイントオプションを含む。オンライン編集は、
ストラテジーで変更が行われている間に、
コントロールストラテジーを実現するためのブレークポイントの設定を含む。ユーザが適所にある矛盾するパラメータ値を訂正できるように、1つのウィンドウがオンライン編集およびデバッグに使用される。オンライン編集中の入力値は、オフライン編集値との一貫性があるかチェックされ、矛盾している場合
には却下される。
シーケンシャルファンクションチャートプログラム3850は、ステップ、動作、現在実行中のトランザクションおよび属性値の表示を含む実行時ビューをサポートする。
【0284】
シーケンシャルファンクションチャートプログラム3850により作成されるハードコピー出力情報は、グラフィック表記およびステップ動作などの構成情報を含む。
【0285】
シーケンシャルファンクションチャートプログラム3850複数の特徴は、再利用可能ライブラリ構成要素、ユーザ変換サポート、および入力エラーチェックを含むユーザサポートを容易にする。ステップ動作内でのユーザ変換サポートにより、ユーザは応答のあるポップアップダイアログを構成できる。再利用可能ライブラリ構成要素は、単一の
シーケンシャルファンクションチャート(SFC)が、実行中、複数のモジュールまたはSFC用のサブルーチンとして動作するように、構成および実行中のエンジニアリングを簡略化するために開発される。
【0286】
はしご形論理プログラム3870は、はしご形論理図で、組み合わされるはしご形要素および
ファンクションブロックを使用して
コントロールストラテジーを定義するためにユーザにより操作される制御プログラムである。はしご形論理プログラム3870は、制御装置/マルチプレクサ110内で動作するはしご形論理エンジン内に実現される。はしご形論理エンジンは、コイル、接触子、および複数の標準
ファンクションブロックを含むはしご形制御アルゴリズムを実行する。はしご形論理プログラム3870は、基本離散制御動作を解決するための構成要素を含む基本離散制御はしご形論理ライブラリ3872を含む。
【0287】
これらの動作は、はしごの横木ごとに1つの接続が定義されている、コイル、接触子、タイマ、フリップ/フロップ、エッジトリガ、およびカウンタなどの要素を含む、IEC
1131−3規格の論理拡張部である。はしご形論理プログラム3870は、はしご形論理図内でのユーザ定義ブロックの配置もサポートする。はしご形論理図は、「電力」がはしご内の「横木」を通して流れているかどうかにより実行の状態が決定される電力フローをサポートする
ファンクションブロックに適用できる。電力フローは、論理図でのデータフローにいくぶん類似している。適用可能な
ファンクションブロックだけが、はしご形論理パレット上にはしご形論理プログラム3870により表示される。
【0288】
はしご形論理プログラム3870は、
コントロールストラテジーを構成、デバッグするためにユーザにより独占的に使用されるか、あるいは論理図シートが別のはしご形論理図シート、
ファンクションブロックダイアグラムシート、または
シーケンシャルファンクションチャートシート内での複合物として使用されることがある。はしご形論理シートは、複合はしご形論理図、
ファンクションブロックダイアグラム、または
シーケンシャルファンクションチャートシートを含むことがある。はしご形論理要素は、他のシートおよび他のモジュールで属性を読み書きできる。
【0289】
はしご形論理図は、オンラインとオフライン両方の編集をサポートする。ユーザは、特定のはしご形論理図でデバッグ機能モードから編集モードに切り替え、
コントロールストラテジーに構造上の変更を加えることができる。ユーザは、デバッグビューまたは編集ビューのどちらかからパラメータを変更してよい。
【0290】
はしご形論理プログラム3870は、電力フロー、パラメータ値、および通電状態または電力供給が止められている状態のディスプレイを含むデバッグ機能性を含む。はしご形論理デバッグ機能性とは、実質的には、ユーザが入力値を強制し、ブレークポイント等を設定する
シーケンシャルファンクションチャート(編集)プログラム3850のデバッグ
機能性と同じである。はしご形論理プログラム3870は、はしご形論理シミュレーション、履歴データ収集とモード、警報およびステータスレポート生成をサポートする。
【0291】
図39Aを参照すると、
ファンクションブロック(エディタ)プログラム3840を使用して構成プログラムにより作成される構成画面3900の画面提示が描かれている。構成画面3900は、ナビゲーション部分3902および画面
特定部分3904を含む。ナビゲーション部分3902は、ユーザが構成プログラムの特定のセクションにアクセスできるようにするナビゲーションタブ3910を含む。構成画面3900の実例となる状態では、構成プログラムは、構成コマンドのユーザエントリを待機している。ナビゲーションタブ3910は、簡略セット優勢(dominant)(SR)フリップフロップを選択するためのナビゲーションタブ3912、簡略減算ブロックを選択するためのナビゲーションタブ3914、簡略時間付きパルスブロックを選択するためのナビゲーションタブ3916、簡略転送ブロックを選択するためのナビゲーションタブ3918、および簡略排他的論理和(XOR)ブロックを選択するためのナビゲーションタブ3920を含む
ファンクションブロックの中へのエントリ用の複数のプリミティブ
関数を示す。ナビゲーションタブ3910は、
ファンクションブロックを挿入するためのブロックアシスタントタブ3922も含む。画面
特定部分3904は、属性の構成および他の
ファンクションブロックとの接続を含む、構成される
ファンクションブロック3924を示している。
【0292】
ブロックアシスタントタブ3922は、
ファンクションブロックを挿入するために選択される。
【0293】
図39Bを参照すると、選択画面3930が、
ファンクションブロック挿入の選択に応えて表示されている。選択画面3930は、選択部分3932および画面
特定部分3934も含む。画面
特定部分3934は、作成される新規ブロックの名称を入力するためのエントリブロック3936を含む。選択部分3932は、
ファンクションブロックタブ3940、埋め込みブロックタブ3942、リンク済み複合タブ3944、およびモジュールブロックタブ3946を含む複数の選択タブ3938を含む。選択部分3932は、Backボタン3948、Nextボタン3950、および取消しボタン3952を含む、ナビゲーション機能を供給する多岐に渡るボタンも含む。Backボタン3948により、ユーザは、厳密な履歴順での過去の画面表示に移動する。Nextボタン3950により、ユーザは、現在の画面提示で行われる選択に適切な画面提示に移動する。取消しボタン3952は選択を終了する。
【0294】
埋め込みブロックタブ3942は、埋め込みブロックを挿入するために選択される。
【0295】
図39Cを参照すると、Choice画面3960が喚起され、ユーザが埋め込みブロック、選択3962を使用している
ファンクションブロックエディタ、または選択3964を使用している
シーケンシャルファンクションチャートエディタのどちらかを構成するための制御言語エディタを選択できるようにする。
【0296】
選択3964は、
シーケンシャルファンクションチャートエディタを活用するために選ばれる。
【0297】
図39Dを参照すると、
ファンクションブロック3924が
ファンクションブロック(エディタ)プログラム3840を使用して構成され、新規に作成されるブロック3972が
シーケンシャルファンクションチャートエディタ3850を使用して構成される、構成画面3970の画面提示が示されている。
【0298】
新規に作成されるブロック3972の編集は、
シーケンシャルファンクションチャート
エディタ3850が呼び出されるように選択される。
【0299】
図39Eを参照すると、新規に作成されたブロック3972の詳細が、属性3982およびステップ3984を含め、構成画面3980の画面
特定部分3934に示されている。構成画面3980のナビゲーション部分3986は、
ファンクションブロックに関係するナビゲーションタブを一覧表示しているのではなく、むしろステップ3990、遷移3992、終了3994、および
シーケンシャルファンクションのステップおよび遷移を定義するための入力端末3996と出力端末3998に関係するナビゲーションタブ(不図示)を含む。
【0300】
図40を参照すると、オブジェクトも出るが、警報およびイベント
関数を取り扱うための多様なオブジェクトのオブジェクト関係を示している。多様な状態は、アラーム、アラーム肯定応答、ユーザ変更(属性書込み、方法呼出し、ログイン/アウト)、「実行時システム」に対する構成変更(インストール、インストール解除(de−installs)等)、
シーケンシャルファンクションチャート(SFC)状態変更、オペレータ注意要求(OAR)、およびその他の装置状態変化を含む非警報状態遷移を含む「イベント」であるように定義される。
【0301】
すべての種類のイベントにとって1つの共通した特徴は、イベントの発生または状態遷移が、イベントジャーナル内に記録できるという点である。すべてのイベントは、1つ(または複数の)プラント領域と関連付けられている。イベント発生記録(RtEventOccurenceRecord4040)は、関連付けられているプラント領域(RtPlantArea4010)のために指定されているイベントジャーナル、ジャーナル(RtEventJournal4020)に捕捉される。
【0302】
ユーザは、起動されているイベントジャーナルがイベントを捕捉する1つまたは複数のプラントエリアを構成することにより、典型的にはワークステーションを使用してイベントジャーナルを起動する。イベントジャーナルのオンライン動作は、記録されるイベントの指定されるクラスを無効にするまたは有効にすることにより、ユーザ制御下で修正される。
【0303】
ユーザは、制御モジュールまたは装置モジュール(RtModule4030)内でアラーム属性(RtAttribute4032)を作成することによりアラーム動作を構成する。アラーム属性は、属性を包含している、制御モジュールまたは装置モジュール内の任意の論理的属性に対する参照を与える。アラーム属性は、モジュールレベルだけで作成される。アラーム属性は、複合された
ファンクションブロックでは作成されない。
【0304】
図41を参照すると、状態遷移図が、警報属性状態を示している。ユーザは、アラーム属性を無効にするか、有効にする。ディスエーブル4110されると、アラーム属性は、「非アクティブな(Inactive)および認証された(Acknowledged)」状態と呼ばれる「正常」な状態で表示される。アラーム属性のディセイブルド/イネイブルド状態は、オペレータによりオンラインで、あるいはシステム内の制御アルゴリズムによって自動的に変更される。初期のディセイブルド/イネイブルド状態は、構成時に設定される。有効にされているアラーム属性は、アクティブになった状態4116または4118、あるいは非アクティブな状態4112または4114のどちらかを有している。参照されている論理的属性が真(TRUE)であるとき、アラームはActive(「警報中」)である。アラーム属性は、オプションで、警報状態の意味を反転させるように構成されるため、.INV特性TRUEが設定されるアラーム属性は、あたかも参照される属性のFALSE値が「警報中」状態を示すように動作する。アクティブ/非アクティブな状態は、アクティブ/非アクティブな状態が、オペレータまたは別の制御アルゴリズムによって直接変更されないように、参
照されてい属性の状態により駆動される。
【0305】
ディセイブルドである間に、アラーム属性は、認証状態4112または4116、あるいは未認証状態4114または4118のどちらかを有している。アラーム属性は、自動的に肯定応答されない限り、アラーム属性が非アクティブからアクティブ状態に遷移を行う場合にだけ未認証状態にされる。オペレータまたは別の制御アルゴリズムが、アラームを肯定応答し、アラーム属性をAcknowledged状態に変更することがある。
【0306】
アラーム属性は、自動的に肯定応答されるか(AACK‘d)または自動的ではなく肯定応答される。AACKは、現在のアラームの優先順位から決定される。ユーザにより構成されているシステム全体のテーブルがAACK動作を決定する。例えば、テーブルは、すべての「LOW」優先順位のアラームが自動的に肯定応答され(AACKがTRUEである)、すべての「MEDIUM」および「HIGH」優先順位のアラームが自動的に肯定応答されない(AACKがFALSEである)と指定することがある。AACKがTRUEであるとき、警報は絶対にUnacknowledged状態にされない。
【0307】
ディセイブルド/イネイブルド、アクティブ/非アクティブ、および認証/未認証状態の組み合わされた動作の結果、
図41に示されているアラーム属性のユーザ可視状態が生じる。
【0308】
有効にされているアラーム属性は、当初、Inactive/Ack`d State4112に移行し、ただちにActive/Unack'd4114またはActive/Ack`d4116のどちらかに遷移する可能性がある。Acive/Ack'd4116への遷移には、例えば、遷移にタイムスタンプが押され、イベントがイベントジャーナルに記録される、Alarmの標準「遷移」動作が伴われる。
【0309】
アラーム属性は、ユーザ可視インタフェースを提供する複数のフィールドを有している。CUALM「カレント警報フィールドは、アラーム属性がDisabled状態4110、Inactive/Ack`d状態4112またはInactive/Unack'd状態4114にあるときに「OK」である。それ以外の場合、CUALMは、構成されている属性のタイプに関連付けられているワード/値である。DESC「記述」フィールドは、アラーム属性が状態を変化するときに作成される警報記述を有している。DESCフィールドは、空の文字列に初期化される。LAALM「ラッチ済み警報」フィールドは、アラーム属性がディセイブルド状態4110またはInactive/Ack`d状態4112にあるときに「OK」である。それ以外の場合、LAALMフィールドは、構成されているアラームタイプに関連付けられているワード/値である。LAALMフィールドは、「ラッチされている」警報起動を提示し、Activeである期間中が非常に短い場合にも認証を有効にする。NALM「未肯定応答警報」フィールドは、アラーム属性のAcknowledged/Unacknowledged状態を示す。NALMフィールドは、警報要約エントリを削除できるときを突き止めるために使用される。ENAB「警報有効済み」フィールドは、アラーム属性の現在のEnabled状態を示す。IENAB「警報初期有効済み」フィールドは、Alarm Attributeの構成済みEnabled状態を示す。INV「反転入力」フィールドは、関連付けられている論理的属性が警報処理の前に反転されるかどうかを示す。INV構成可能特性は、アラーム属性基準、通常は、離散入力を保持している属性などのTRUEブールAttributeを許す。PRI「警報優先順位」フィールドは、アラーム属性の現在の優先順位(高/中/低)を示す。テーブルIIは、論理的属性を以下のように示す。
【0310】
【表4】
プロセス制御システム100は、多くの潜在的なアクティブなアラーム状態を[最高優先順位]警報の1つの短いリストの中に整理統合する。選択基準は、整理統合のために最高の優先順位の警報を選択するために使用される。選択基準は、優先順位が下がっている順序での分析、Unacknowledged状態がAcknowledged状態より優先されているAcknowledged状態、高それから中それから低の優先順位の順序でのアラーム優先度、および最新タイムスタンプが優先順位を獲得している検出の時間を含む。
【0311】
Alarm Consolidationは、SP88 ModuleレベルおよびPlant Areaレベルで使用できる。警報整理統合は、SP88 MODULE(ControlおよびEquipment)Plant Areasで使用できる既定義されている属性名「ALARM」を介してアクセスされる。ALARMSとは、インデックス付きAttributeであり、指数は、整理統合でのN番目に高い優先順位警報(例えば、ALARMS[1]は最高の優先順位Alarmにアクセスし、ALARM[2]は2番目に高い優先順位のAlarmにアクセスする等)を選択する。したがって、例えば、「AREA1/FIC101/ALARMS[1]」は、Module FIC101の最高優先順位のAlarmを参照し、「AREA1/ALARM[2]」は、Plant AreaのAREA1での2番目に高い優先順位Alarmを参照する。ALARMS Attributesでサポートされている最大指数は5である。
【0312】
ALARMS[N]AtributeでサポートされているFieldsは、N番目の優先順位のアラーム属性のActive Or Unacknowledged状態を示すLAALM「ラッチ済み警報」フィールドを含む。LAALM Fieldは、ACTIVE/UNACK`D、ACTIVE/ACK'D、またはINACTIVE/UNACK`D状態の間のN番目の優先順位のAlarm Attributeの警報ワード、つまり警報型値内にある。NALM「未肯定応答警報」フィールドは、N番目の優先順位のAcknoeldged/Unacknowledged状態を示す。PRI「警報優先順位」フィールドは、N番目の優先順位のアラーム属性の構成済み優先順位(High/Medium/Low)を示す。TAG「警報Tag」フィールドは、N番目のアラーム属性に対する(Fieldを除く)完全に修飾されている属性基準文字列を返す。MODULE「警報Module」フィールドは、N番目の優先順位アラームを有しているSP88 MODULEを示す。MODULEタグは、そのModuleの「一次制御ディスプレイ」属性にアクセスするために使用できるModule基準文字列を戻す。
【0313】
いくつかのフィールドが、SP88 モジュールレベルだけでのアラーム属性上でサポートされている。指数値がこれらのフィールドに適用されると、指数値は無視される。SP88 モジュールレベルアラーム属性フィールドは、モジュールの現在のAlarm Enabled状態を示すENAB「警報有効済み」フィールドを含む。PRIAD「優先順位調整」フィールドは、アラームの有効優先度を求めるときにモジュール内の各アラーム属性の現在の優先度に追加される数(通常は0)である。PRIAD Module全体での調整は、モジュール内の全警報のアラーム優先度を下げ、アラーム可視性の減少を可能にするために使用される。テーブルIIIは、以下のように、詳細にアラーム属性を説明する。
【0314】
【表5】
User−Level Alarm Consolidationは、グラフィックユーザインタフェースで「Alarm Banner」を使用して達成される。警報整理統合は、「カレントユーザ」に対しサポートされる。各ユーザは、1つまたは複数のPlant Areaでの権限を許可されている。「カレントユーザ」警報整理統合は、現在、ユーザの制御スパン内にあるプラントエリアの最高優先順位の警報を提示する能力を提供する。「THISUSER」と呼ばれている、ALAFRMS[N]属性をサポートする既定義「属性コンテナ」が存在する。ユーザは、オプションで、「THISUSER/ALARMS「N」.フィールド」を参照するディスプレイを構築し、カレントユーザに対する最高優先順位警報へのクイックアクセスを可能にする。
【0315】
警報特権が許可されている場合、ユーザは、アラームをイネイブルし、ディセイブルする。警報特権を使用し、ユーザは、.ENABフィールドに書き込むことによって単一のアラーム属性をイネイブルまたはディセイブルしてよい(例えば、「AREA1/FIC101/HIALM.ENAB」にTRUEを書き込む)。プロセス制御システムの各アラーム属性は、単一Enable/Disable状態を含む。一人のユーザが状態を変更すると、アラー
ムはすべてのユーザに対しEnabled/Disabledされる。警報特権を使用し、ユーザは、ALARMS AttributeのENABフィールドに書き込むことによって、SP88 Module Alarm内のすべての警報をEnableまたはDisableしてよい(例えば、「AREA1/FIC101/ALARMS.ENAB」にTRUEを書き込む)。アラームをモジュールレベルでDisablingすると、個々のアラームのENAB状態を無効とするが、それに上書きしない。アラームがモジュールレベルでEnabledされると、個々のAlarmnoENAB状態により決定されるアラーム処理が復元される。
【0316】
システム中の各SP88モジュールは、単一Enable/Disable状態を含む。一人のユーザが状態を変化すると、そのモジュール内のすべてのAlarmsは、すべてのユーザに対してEnabled/Disabledされる。
【0317】
動作特権を有しているユーザは、アラームを認証できる。動作権限を使用し、ユーザは、FALSEを.NALMフィールドに書き込むことによって単一アラーム属性を認証する(例えば、「AREA1/FIC101/HIALM.NALM」にFALSEを書き込む)。.NALMにTRUEを書き込もうとする試みは無視される。プロセス制御システム中の各アラーム属性は、単一の認証状態を有している。一人のユーザが状態を変更すると、Alarmはすべてのユーザに対し認証される。動作特権を使用し、ユーザは、モジュール内のすべてのアラーム属性の.NALMフィールドにFALSEを書き込むのと実質的には同じ効果を出す動作である、アラーム属性の.NALMフィールドにFALSEを書き込むことによってSP Module Alarm内のすべての警報を認証してよい(例えば、「AREA1/FIC十1/ALARMS.NALM」にFALSEを書き込む)。.NALMにTRUEを書き込もうとする試みは無視される。
【0318】
警報特権を有しているユーザは、警報優先順位を変更することができる。警報特権を使用し、ユーザは、.PRIフィールドに書き込むことによって単一アラーム属性上のPRIを変更してよい(例えば、「AreA1/FC101/HIALMPRI」に0を書き込み、それを「HIGH」優先順位警報にする)。自動認証動作は、アラーム優先度により決定されるので、アラーム優先度を変更すると、アラームに肯定応答ステータスを変更させる可能性がある。例えば、AutoAck FALSEが設定されている優先順位から、AutoAck TRUEが設定されている優先順位に変更すると、未応答確認警報が肯定応答されるはずである。また、AutoAck TRUEが設定されている優先順位から、AutoAck FALSEが設定されている優先順位に変更すると、肯定応答済み警報が未応答確認になるはずである。
【0319】
システム中の各アラーム属性は、単一.PRI状態を有している。一人のユーザが状態を変更すると、.PRIはすべてのユーザに対して変更される。
【0320】
警報特権を使用し、ユーザは、アラーム属性の.PRIADフィールドに書き込むことによって、SP88 モジュール アラーム内のすべての警報の有効優先順位を調整してよい。例えば、「AREA1/FIC101/ALARMS.PRIAD」に1を書き込むユーザは、現在のアラーム優先度値を増加し、それによってHIGH優先順位がMEDIUM優先順位になり、LOW優先順位がLOGになるように1つの「段(step)」づつ動作を削減する。ユーザは、PRIADを正の数に設定するだけなので、通常の予告動作を減少するためにだけ使用される。PRIADを0に設定すると、アラーム属性ごとに求められる「通常の」優先順位が再確立される。有効警報優先順位は、LOG「下では」調整されない。Auto Acknowledgement動作はアラームポリシーにより決定されるので、モジュールレベルでPRIADを変更すると、個々のアラームが肯定応答ステータスを変更する可能性がある。
【0321】
システム中の各SP88 Moduleは、単一.PRIAD値を有している。一人のユーザが状態を変更すると、すべてのユーザに対して、そのモジュール内のすべてのアラームが影響を受ける。
【0322】
警報は、標準FIXTM警報要約の元でのディスプレイを使用して表示される。マサチューセッツ州、ノーウッド(Norwood、MA)のインテルーション(Intellution)によって販売されているFIXTMク゛ラフィックディスプレイプログラムは、コンピューティング技術ではよく知られている。FIXTM警報要約リンクは、アクティブアラームのフィルタ済みの、並べ替えられているリストを表示するための主要な方法である。警報要約リンクのすべての機能は、以下の例外または拡張部分はあるが、サポートされている。第1に、「タグ名」欄は、フィールド名を除く、アラーム属性(例えば、「AREA/FIC101/HIALRM」)のプロセス制御システム属性基準経路を示している。第2に、「説明」には、アラームが最初に検出された時点で、アラームが最高2つの属性の値を捕捉するように、アラームが検出される時点で構築されるユーザ構成文字列が記載されている。複数のアラームが、警報要約の各SP88 Moduleごとに表示出切る様に、「Tag」あたり1つの「アラーム」dakega可能である。第3に、「最終時刻」項目には、肯定応答の時刻、または未応答確認警報のActive/Inactive間の最後の遷移の時間である場合がある、アクティブアラームの最後の状態遷移の時間が記載されている。第4に、アラームのFIX SCADA Nodeソースを示す「ノード」欄項目は、エリアごとに、フィルタおよびソート機能が失われるように、プロセス制御システムアラームには無意味である。第5に、すべてのアラームは、アラームタイプに基づき文字表示色を達成するためにFIX Alarm型の内の1つにマッピングされる。
【0323】
ユーザは、Alarm State Transition Journalingレコードにアクセスできる。警報状態遷移は、プラントエリアに割り当てられているイベントジャーナルに記録される。Inactive/Unack`d4114とActive/Unack'd状態4118の間の遷移を含む、
図41に示されているすべての警報状態遷移がイベントジャーナルに記録される。したがって、LAALMフィールドをディスプレイまたは警報要約で表示しているオペレータは、未肯定応答警報間の遷移を確かめず、これらの遷移はイベントジャーナルに記録される。
【0324】
警報遷移のイベントジャーナルエントリは、以下を含む。(1)警報状態を検出するデバイス(例えば、制御装置)により判断される警報状態遷移のタイムスタンプ、(2)他のイベントジャーナルエントリから区別する「警報」イベント型、(3)ユーザ定義警報カテゴリ、(4)現在の警報優先順位、(5)システムアラームタイプテーブルで構成される警報ワード文字列、(7)警告されている属性の属性基準文字列または経路、および(8)構成済みの(2つまでの)属性値が文字列に挿入される、アラームタイプテーブルで構成されている記述文字列からアセンブルされる記述文字列。
【0325】
イベントジャーナルブラウザアプリケーションは、一般的には、タイムスタンプにより並べ替えられ、イベントタイプ=「ALARM」および属性基準文字列=「FC101/PID1/HIALM」でフィルタリングされる、テーブルIVに示されるようにデータを提示する。
【0326】
【表6】
オペレータ変更は、対応する警報状態の変更を引き起こすが、Event Journalでの警報状態遷移イベントは、オペレータ変更ジャーナルエントリとは別個である。例えば、以下の通りであるテーブルVに示されるようである。
【0327】
【表7】
Alarm Attributesが構成され、それによりAlarm動作および提示を設定し、説明されて
いる動作のシーケンスを使用する。第1に、「警報型」テーブルおよび「警報予告」テーブルが構成される。第2に、オプションステップで、ユーザ定義警報状態が構成され、ブール属性を設定する。第3に、Alarm Attributesは、ブールAttributesを参照するために作成され、それによりSystem「Alarm Type」、優先順位等を識別する。第4に、モジュール「インスタンス」は、Alarmsを包含するModule Definitionsに基づき作成される。第5に、Alarm情報の提示は、データベースリンク、ダイナミックカラーリンク、およびAlarm
Summaryリンクを介してディスプレイ(絵)の中に挿入される。第6に、「Alarm Tyes」および「警報予告」テーブルが構成される。
【0328】
「警報型」テーブルには、(1)AlarmごとのAlarm構成プロセスを加速するために1つの共通したAlarm提示動作を定義する、システム(サイト)全体で共通したリソースとして動作すること、(2)SummariesおよびHistory Journalsでの標準警報メッセージ通信を奨励し、その情報の問い合わせおよび分析を改善すること、(3)警報をFIX Alarm Statesにマッピングすることを含む複数の機能がある。
【0329】
「警報型」テーブルには、警報タイプ、警報ワード、カテゴリ、および記述文字列欄を含む欄がある。警報型欄には、アラーム属性を作成するときに適切なTypeを選択するために使用される警報型の簡略な記述が記載される。警報ワード欄には、AlarmがActiveであるときにA_CUALMまたはA_LAALM Fieldを読み取るときに返される文字列を含む。カテゴリ欄には、問い合わせのフィルタリング/並べ替えを補助するために使用される、Event Journalに記録されているユーザ定義ワードを記述する。記述文字列は、警報要約リンクに表示され、Alarm Detection時でのAttribute値置換のために最高2つの位置設定記号を包含する。
【0330】
「警報型」テーブルデフォルト内容は、以下に示すようにテーブルVIに示されている。
【0331】
【表8】
標準警報は、FIXTMでサポートされている警報型に一致する。
【0332】
「警報予告」テーブルとは、アラームごとのアラーム構成プロセスを加速するためにアラーム予告動作の1つの共通して定義を供給するシステム(サイト)全体での共通したリソースである。
【0333】
「警報型」テーブルには、警報優先順位、自動肯定応答、WAVファイルおよびPCスピーカ周波数欄を含む欄がある。警報優先順位は、アラーム優先順位ワード(HIGH/MEDIUM/LOW/LOG)を指定する。自動肯定応答の欄には、この優先順位の警報が、検出時に自動的に肯定応答される必要があるのかを示し、重要度が低い警報をより「注意をそらす(distracting)」とする機械を提供するYES/NO値が記載される。WAVファイルには、サウンドカード付きワークステーションで(カレントユーザの範囲内で)アラームが検出されるときに再生される(ループ計算)NT互換の.WAVファイルのファイル名が指定される。このファイル名の省略は、この優先順位が設定される警報には.WAVファイルが再生される必要が内ことを示す。PCスピーカ周波数は、サウンドカードが付かないワークステーションで、カレントユーザの範囲内で、アラームが検出されるときにPCスピーカでトーンを再生するために使用される値を設定する。0という値は、PCスピーカをこの優先順位が設定される警報に使用してはならないことを示す。.WAVファイルおよび0以外のスピーカ周波数が同じ警報優先順位に指定される場合、PCスピーカは、サウンドカードが存在する場合にだけ使用される。
【0334】
「警報予告」テーブルデフォルト内容は、以下に示すようにテーブルVIIに示されている。
【0335】
【表9】
ユーザは、同じモジュール内の別の論理的属性を参照するSP88 MODULE DEFINITIONに従って、アラーム属性をAlarm(動作)を論理的属性に付与する。
【0336】
ユーザは、以下を入力することによりアラーム属性を作成する。(1)例えば、経路による、またはドラッグアンドドロップによるターゲット属性、(2)警報状態を定義する論理的属性、(3)システム全体でのアラームタイプリストから選択されるアラームタイプ、(4)アラーム優先度(High/Medium/Low/Log)、(5)初期Alarm Enable状態(イエス/ノー)、(6)Invert Input(イエス/ノー)、(7)%P1の代わりに使用される値を有している属性のオプションのName、(8)%P2の代わりに使用される値を有している属性のオプションのName アイテム7と8の属性の名称は、同じSP88 MODULE内の属性に制限され、「モジュール相対」属性基準として指定される(例えば、「FIC101/SP」や「FIC101/PID1/PV」よりむしろ
「SP」および[PID1/PV])。
【0337】
ユーザは、アラームを記載するモジュール定義に基づいてモジュール「インスタンス」も作成する。モジュールインスタンスが作成されると、モジュール定義に指定されているすべてのアラーム動作はモジュールインスタンスに適用する。.PRIフィールドおよび.ENABフィールドは、Moduleインスタンスが作成されるとAlarm`d Attributesで無効にされることがある。例えば、「HIGHLIMITED」という名前が付けられているAlarm Attributeに対し、モジュール定義が構築されるとき、それからModuleインスタンスが作成されるときに.PRIがMEDIUMである場合、「HIGHLIMITED.PRI」はこのインスタンスに対しLOWであるために無効とされることがある。
【0338】
警報は、ControllersでのDevice/Subsystem Attributesに関しサポートされている。属性は、制御システムの動作および他のシステムへの接続についての情報へのアクセスを提供するためにデバイスおよびデバイスサブシステムに対し定義される。属性には、診断ツールを介して、および既定義またはユーザ定義のディスプレイを介してアクセスすることができる。アラームシステムに関与し、制御システムでの異常な状態に注意を引き付けることは、これらの属性のいくつか、特に「整理統合」属性にとっては貴重である。
【0339】
ユーザは、Control Modules(インスタンス)を作成し、プロセッサ、通信、I/O、冗長性等を含むControllersおよびSubsystemsnoために所望の「Device Alarm」
ストラテジーを実現する。
【0340】
Function Blockアルゴリズムを使用して、Device/Subsystem Attributesは、同じデバイス内でもっとも効率よくアクセスされるが、他のControllersおよびWorkstationにもサポートされている。DeviceとSubsystemのAttributesは、後で警報制限をこれらのAttributesに適用すること、これらの値をブールAttributesに変換することに対し構成できるFunction Blocksへの入力として使用される。それから、AlarmAttributesは、ブールAttributesを参照する。一般的には、Function Blockシステムの完全アルゴリズム定義機能は、簡略な、または複雑なDevice Alarming体系を構築するために使用される。
【0341】
FIXTM警報型と矛盾しない多くの既定義Alarm Typesは、「Device Alarm」の提示と動作を区別するために適している。既定義Control ModuleDefinitions(制御モジュール定義)が供給され、かなり包括的なDevice Alarm「モジュール」をControllersおよび各種のI/Oシステムに提供する。ユーザは、オプションで、これらの標準モジュールをディスエーブルまたは拡張する。
【0342】
ユーザは、例えば小型システム
ストラテジー、「分離(segregation)」
ストラテジー、および「区分化責任」
ストラテジーを含む、Device AlarmモジュールをPlant Areasに配置するための複数の
ストラテジーを選択してよい。小型システムにおいては、Plant Area概念が適用されていない「一式(all in one)」
ストラテジーが課される。各Controller内の1つまたは複数のDevice Alarm Modulesが、DeviceとSP88 MODULE警報の一体化された提示を形成する。分離
ストラテジーは、Alarm要約に対するAreaフィルタリング/並べ替えを有効にし、Device Alarmに焦点を当てるために、OperatorsがSP88 MODULE警報およびプロセス/保守エンジニアに集中できるようにする。区分化責任
ストラテジーは、システムがPlant Areaごとの責任の範囲を制御するほど十分に大きくなると使用される。Device Alarm Modulesは、Device Alarm Modulesによって影響を受けているSP88 MODULEと同じPlant Area内に配置される。区分化責任
ストラテジーは、責任範囲
内でのPlants Areaに対するDeviceおよびSPPモジュール警報の一体化した提示を形成する。
【0343】
警報は、Workstation内のDevice/Subsystem Attributesにサポートされている。Draw、View、エンジニアリングツール等のユーザ起動アプリケーションは、適切なコンテキストで、個々に、異常な状態または遭遇されたエラーについて情報を提示する。Workstation Servicesは、ユーザがログオンする前にワークステーションで起動され、ログオフ/ログオンサイクルを通して実行し続けるWorkstation Servicesは、無人のWorkstationにとっても、問題に対する注意を引き付けるための技法を実現する。1つの実施態様においては、Workstation Servicesは、1つまたは複数のControllersで実行しているDevice Alarm Modulesにより監視される。Servicesは、ユーザ定義Device Alarming
ストラテジーを制御するDevice Alarm Modulesのインスタンスを実行しているController(複数の場合がある)によってアクセスされる、ステータスと完全性Attributesのセットを構築する。既定義Control Module Definitionsが供給され、かなり包括的なDevice Alarm「モジュール」をWorkstationsおよび各主要Services(例えば、通信、履歴ジャーナルなど)に提供する。ユーザは、これらの標準モジュールをディスエーブルまたは拡大してよい。
【0344】
プロセス制御システムの1つの態様では、「Alarm」ステータスを与えられていないイベント状態には、「LOG」という優先順位が指定される。LOG AlarmsはALARMS Attributesでは整理統合されず、Alarm Summaryには表示されず、状態変化の可聴警報を提供せず、型「ALARM」よりむしろ型「EVENT」としてEvent Journalに表示される。他の点では、LOG優先順位のAlarmは、イベント(1)が個別に有効/無効にされ、(2)他の警報が設定されているModuleレベルではディスエーブルされ、(3)個々のAlarmが、その優先順位を「LOG」に変更する(.PRIに3を書き込む)ことによって「Eventに合わせられる」ように、HIGH/MEDIUM/LOW優先順位Alarmとして動作する。
【0345】
Moduleレベルに.PRIADを設定することにより、Alarmの1つまたは複数nレベルをEventsに変換できる(例えば、.PRIADに2を書き込むと、Module内のすべてのAlarm優先順位が2段低下する。つまりHIGH優先順位はLOWになり、MEDIUMとLOW優先順位はLOGになり、LOGはLOGのままとなる)。.PRIADを3に設定すると、Module内のすべてのAlarmは、強制的にカレントステータスを表示する(未肯定応答の場合には点滅もする)ためにサポートされている「Events」.CUALM、LAALM、NALMフィールドになる。
【0346】
LOGイベントは、また(4)入力ブールを反転し、使用状況のためのOKイベント状態の意味をDiscrete Inputsの状態でのログ変化に逆転し、(5)ユーザ定義「警報ワード」をAlarm Typesテーブルに追加し、イベント状態有効名を指定し、(6)Event JournalにLOG優先順位警報に関するすべての状態変化を記録することができる。
【0347】
システムイベント検出のユーザ選択可能「強度」(例えば、「デバッグ強度」、「通常強度」、「停止強度」)は、ユーザ定義の「強度」Attributeの設定値に基づきControl Moduleアルゴリズム内で構成される。したがって、System Eventsは1つ(またはおそらく複数の)Plant Areaと一致させ、そのため1つまたは複数のPlant AreaのためにWorkstationでEvent Journalを有効にすると、すべての「System Event」レコードの宛先が自動的に設定される。
【0348】
System ObjectでAttributeを変更している、または方法を呼び出しているユーザは、イベントと見なされ、適切なEvent Journalに記録される。制御階層(Control Module、Equipment Module、Plant Areaなど)に対する変更は、そのPlant Areaに指定されているEvent Journal(複数のことがある)に記録される。Device/Subsystem Attributesに対する変更は、そのDeviceのために指定される「一次Plant Areas」のEvent Journal(複数のことがある)に記録される。
【0349】
図42を参照すると、コンテキスト図が、制御モジュールに関して警報イベントを定義するためのコンテキストを示している。Alarmは「Plant Area範囲」アクティブ警報リスト提示に表示される。複合モジュール(CM)4210のインスタンスは、PID
ファンクションブロック4212、出力属性4214および高警報属性4216を含む。構成エンジニアなどのユーザは、編集のために複合モジュール4210を選択し、Attribute「HIHI」で「警報追加」4220を選択する。また、ユーザは、「Advisory」4232と名前が付けられているイベント優先順位定義、および「HIALARM」4234と名前が付けられているイベント型定義も選択する。それから、ユーザは、複合モジュール4210に対する変更を保存する。
【0350】
再び
図40を参照すると、警報イベント管理が説明されている。LOG優先順位Alarmとして構成されている警報およびユーザ定義「イベント」は、複数の動作をプロセス制御システムに導入する。
【0351】
これ以降RtAlarmAttribute4034と呼ばれている
特定の種類のRtAttributeは、読書きができるCUALM、NALM等のAlarmに
特定のフィールドをサポートしている別個の「データ型」を有している。フィールドに対する読取りアクセスは、個々のAlarmの状態の提示を可能にする。選択されているフィールドに対する書込みアクセスは、AlarmをAcknowledgeする能力を与え、一定の警報動作を変更する。
【0352】
Disabled動作、AUTOAK動作などのAlarm動作の複数の特性は、SP88 MODULEレベルでオンラインで無効にされることがある。Enabled/Disabled、およびNoAutoAck/AutoAckという個々のAlarm状態への逆転は、Moduleレベル無効が削除されると発生する。Moduleレベル無効の変更は、「ただちに」個々のAlarm状態に影響を及ぼすはずである。したがって、Moduleレベル無効での変更は、新しい条件下のモジュール内のすべてのAlarm状態の再評価を強制する。
【0353】
レベルのそれぞれでの「最高優先順位の警報」が提示されるように、アクティブ警報は、Module(RtModule 4030)、Plant Area(RtPlantArea 4010)、およびUser Sessionで整理統合される。この整理統合は、Moduleオブジェクト、Plant Areaオブジェクト、およびUser SessionオブジェクトによりサポートされているALARMS属性を通してアクセスされる。
【0354】
FIXTM警報要約リンクは、「カレント」警報のリストを提示するために、FIXTMヒ゜クチャ(ディスプレイ)で使用される。形容要約リンクのコンテンツは、(FIXTM停止時に停止し、NTユーザがログオンすると必ずFIXTMは停止し、NTユーザは新規ユーザが「ログイン」できるようにログオフする)ALMSUM.EXEプロセスにより維持される。したがって、システムは、ALMSUMプロセスを(カレントユーザの責任範囲の対象となる)すべてのカレント警報で「満たし(prime)」、新規ユーザログオン時にそれを起動させなければならず、それは新規警報発生および警報肯定応答についてのALMSUMプロセス情報を供給しなければならないため、最新の要約が提示できる。
【0355】
すべての警報状態遷移は、RtAlarmAttribute 4034を「包含する」Plant Areaに対する適切なEvent Journal(複数の場合がある)(RtEventJournal 4020)に向けられる。複数のEvent Journalターゲットが供給されるため、Event Journalsの内の1つを実行している1つのワークステーションがある時間期間オフラインである場合、完全なEventJournalが再構築できる。
【0356】
Alarmエントリ状態遷移の可聴警報は、Alarm Summarizationを実行している(FIX ALMSUM.EXEプロセスを供給する)ワークステーションで実行する。可聴警報は、PCスピーカ上での連続トーン(ユーザ構成周波数)、および/またはPC内にインストールされている互換サウンドカードで再生される連続(ループ計算).WAVファイルから成り立っている。プログラムは、スピーカとサウンドカードの両方をオフにするために実行されるので、音は、任意のFIXTM(ビューボタンまたはキーボード)スクリプト、またはFIX VIEWが実行していない場合にはプログラムGroupのICONによってオフにできる。
【0357】
図43を参照すると、オブジェクト通信図が、「警報中」ステータスを喚起する属性書込み動作を実行するための方法を示している。
【0358】
属性書込み動作の前に、RtAlarmAttributeが構成、インストールされ、警報はAttributeとModuleレベルの両方でENABLEDされ、警報AUTOACKはAttributeとModuleレベルの両方で偽であり、カレントAlarm状態は「Inactive/Acknowledged」である。
【0359】
「属性書込み」方法により、Alarm Attributeの状態は警報状態になる。新しいAlarm状態を反映するために、Alarm Attributeの警報フィールドは更新される。イベント発生レ
コードが構築され、必要に応じて、Module、Plant Area、およびワークステーションアプリケーション(Alarm Summary、Event Journal)に送信される。
【0360】
属性書込み動作が完了すると、カレントAlarm状態は「Active/Unacknoeldged」であり、アクティブ警報がModuleにより記録され、イベント発生レコードが構築され、このDevice内のこのPlant Areaを監視しているデバイスへの伝送のために待ち行列に入れられた。
【0361】
属性書込み方法のステップ4310では、RtAlarmAttributeはwriteAtributeを受け取り、それによりブールAttributeでの状態遷移が警報状態に入れられる。ステップ4312では、RtAlarmAttributeは、AttributeとModule Alarm動作の両方がENABLEDされるように、RtAlarmAttributeを包含しているRtModuleからalarmDisableステータスを得る。ステップ4314では、RtAlarmAttributeは、AttributeとModule Alarm AUTOACKの両方がDISABLEDされるように、RtAlarmAttributeを包含しているRtModuleからalarmAutoackステータスを得る。ステップ4316では、RtAlarmAttributeが、新規警報状態、「Active/Unacknowledged」状態を計算し、指数としてAlarmTypeを使用して、RtEventTypeDefinitionからプロトタイプイベント記述子文字列を読み取る。ステップ4318では、RtAlarmAttributeは、RtEventOccurrenceRecordのdescriptionStringを構築し、必要ならば、包含しているRtModuleからカレント属性値を読み取る。ステップ4320では、RtAlarmAttributeが、新規RtEventOccurenceRecordを構築する。新規警報が作成されるため、RtAlarmAttributeは、その包含しているRtModuleに、ステップ4322で、addEventOccurenceするように命令する。ステップ4324では、RtModuleが、そのRtActiveAlarmListに、addeventOccurrenceするように命令し、新規エントリをリストに追加し、将来エントリにアクセスできるようにするハンドルを戻す。このハンドルは、究極的には、RtAlarmAttributeにより記憶される。ステップ4326では、RtModuleが、recordEventOccurrenceを介して、RtModuleのRtPlantAreaに、RtEventOccurrenceRecordを送信する。ステップ4328では、RtPlantAreaが、そのRtAreaEventLogに、addEventするように命令し、RtAreaEventLogは、少なくとも1つのワークステーションクライアントがEventlogレコードの受信に対する関心を登録したことを確かめ、RtEventOccurrenceRecordからRtEventLogRecordを作成し、RtEventLogRecordを待ち行列に入れ、それによってRtEventOccurrenceRecordを破壊する。
【0362】
図43も参照すると、オブジェクト通信図は、カレント警報状態を「Active/Acknowle
dged」にする、AlarmのAcknowledgementにも適用できる。既存の警報の新規警報状態がModuleにより記録され、新規イベント発生レコードが構築され、このDevice内のこのPlantAreaを監視しているデバイスへの伝送のために待ち行列に入れられた。方法は、Alarm Attributeの状態を肯定応答させるための「Attribute書込み」方法(NALM FieldにFALSを書き込む)の適用を含む。Alarm AttributeのAlarmフィールドは、新しいAlarm状態を反映するために更新される。イベント発生レコードが構築され、必要に応じてModule、Plant Area、およびワークステーションアプリケーション(Alarm Summary,Event Journal)に送信される。
【0363】
ステップ4310では、RtAlarmAttributeが、writeAttributeを受け取り、NALM Fieldに状態をFALSEに変更させる。ステップ4312では、RtAlarmAttributeが、AttributeとModule Alarm動作の両方がENABLEDされるように、RtAlarmAttributeを包含しているRtModuleからalarmDisableステータスを得る。ステップ4316では、RtAlarmAttributeが、新しい警報状態、「Active/Unacknowledged」状態を計算し、指数としてAlarmTypeを使用して、RtEventTypeDefinitionからプロトタイプイベント記述子文字列を読み取る。ステップ4318では、RtAlarmAttributeが、RtEventOccurrenceRecordのdescriptionStringを構築し、必要ならば、包含しているRtModuleからカレント属性値を読み取る。ステップ4320では、RtAlarmAttributeが、新規RtEventOccurrenceRecordを構築する。既存の警報は更新されるため、RtAlarmAttributeは、RtAlarmAttributeを包含しているRtModuleに、updateEventOccurrenceするように命令し、ステップ4322でupdateEventOccurrenceから戻されるハンドルでRtModuleを識別する。ステップ4324では、RtModuleが、RtActiveAlarmListに、updateEventOccurrenceするように命令し、それにより、リスト内の既存のエントリを更新する。ステップ4327では、RtModuleが、recordEventOccurrenceを介して、RtModuleのRtPlantAreaに、RtEventOccurrenceRecordを送信する。ステップ4328では、RtPlantAreaが、そのRtAreaEventLogに、addEventするように命令し、RtAreaEventLogは、少なくとも1つのワークステーションクライアントがEventLogレコードの受信に対する監視を登録したことを確かめ、RtEventOccurrenceRecordからRtEventLogRecordを作成し、RteventLogRecordを待ち行列に入れ、それによってRtEventOccurrenceRecordを破壊する。
【0364】
図43も参照すると、オブジェクト通信図は、「Attribute書込み」方法により、Alarm
Attributeの状態が警報状態ではなくなる、警報状態のクリアの肯定応答にも適用できる。Alarm Attributeの警報フィールドは、新しいAlarm状態を反映するために更新され、イベント発生レコードが構築され、必要に応じて、Module、Plant Area、およびワークステーションアプリケーション(Alarm Summary、Event Journal)に送信される。Attribute書込み方法が完了すると、現在のAlarm状態は「Inactive/Acknowledged」である。この警報に関するカレント警報情報は、Moduleにより削除された。新規イベント発生レコードが構築され、このDevice内のこのPlant Areaを監視しているデバイスへの伝送のために待ち行列に入れられた。
【0365】
ステップ4310では、RtAlarmAttributeが、writeAttributeを受け取り、それによりブールAttributeの状態遷移は警報状態ではなくなる。ステップ4312では、RtAlarmAttributeが、AttributeとModule Alarm動作の両方がENABLEDされるように、RtAlarmAttributeを包含しているRtModuleからalarmDisableステータスを得る。ステップ4316では、RtAlarmAttributeが、新しい警報状態、「Active/Unacknowledged」状態を計算し、指数としてAlarmTypeを使用して、RtEventTypeDefinitionからプロトタイプイベント記述子文字列を読み取る。ステップ4318では、RtAlarmAttributeが、RtEventOCcurrenceRecordのdescriptionStringを構築し、必要ならば、包含しているRtModuleからカレント属性値を読み取る。ステップ4320では、RtAlarmAttributeが、新しいRtEventOCcurrenceRecordを構築する。既存の警報がクリアされるため、RtAlarmAttributeは、RtAlarmAttrib
uteを包含しているRtModuleに、updateEventOccurrenceするように命令し、updateEventOccurrenceから戻されるハンドルでRtModuleを識別する。ステップ4322では、RtModuleが、RtActiveAlarmListに、updateEventOccurrenceするように命令し、それによりリスト中の既存のエントリを更新する.ステップ4326では、RtModuleが、recordEventOccurrenceを介して、RtModuleのRtPlantAreaにRtEventOccurrenceRecordを送信する。ステップ4328では、RtPlantAreaが、そのRtAreaEventLogに、addEventするように命令し、RtAreaEventLogが、少なくとも1つのワークステーションクライアントが、EventLogレコードの受信に対する関心を登録したことを確かめ、RtEventOccurrenceRecordからRtEventLogRecordを作成し、RtEventLogrecordを待ち行列に入れ、それによってRtEventOccurrenceRecordを破壊する。
【0366】
また、
図43を参照すると、オブジェクト通信図は、Alarm AttributeのENABフィールドをFALSEにさせることによって、警報を使用不能にすること(disablement)にも適用できる。Alarm Attributeの警報フィールドは、新しいAlarm状態を反映する為に更新され、イベント発生レコードが構築され、必要に応じて、Module,Plant Area、およびワークステーションアプリケーション(Alarm Sumaary,Event Journal)に送信される。警報が使用不能にされた後、カレントAlarm状態は「Inactive/Acknowledged」であり、ENABフィールドはFALSである。この警報のカレント警報情報は、Moduleによって削除された。新規イベント発生レコード(警報DISABLE)が構築され、このDevice内のこのPlant Areaを監視しているデバイスへの伝送のために待ち行列に入れられた。
【0367】
ステップ4310では、ENAB FieldをFALSEにさせる、RtalarmAttributeが、writeAttributeを受け取る。ステップ4316では、RtAlarmAttributeが、新しい警報状態、「Active/Unacknowledged」状態を計算し、指数としてAlarmTypeを使用してRteventTypeDefinitionからプロトタイプイベント記述子文字列を読み取る。ステップ4318では、RtAlarmAttributeが、RtEventOccurrenceRecordのdescriptionStringを構築し、必要ならば、包含しているRtModuleからカレント属性値を読み取る。ステップ4320では、RtAlarmAttributeが、新しいRtEvedntOccurrenceRecordを構築し、このイベントを警報ディスエーブルイベントとして識別する。過去にアクティブであるときに警報がディスエーブルされるため、このイベントは、既存の警報をクリアすることであり、RtAlarmAtributeは、RtAlarmAttributeを包含しているRtModuleに、clearEventOccurrenceするように命令し、clearEventOccurrenceから戻されるハンドルでRtModuleを識別する。ステップ4322では、RtModuleが、RtActiveAlarmListに、clearEventOccurrenceするように命令し、それによって既存のエントリをリストから削除する。ステップ4326では、RtModuleが、recordEventOccurrenceを介して、RtModuleのRtPlantAreaに、RtEventOccurrenceRecordを送信する。ステップ4328では、RtPlantAreaが、そのRtAreaEventLogに、addEventするように命令し、RtAreaEventLogは、少なくとも1つのワークステーションクライアントが、EventLogレコードの受信に対する関心を登録したことを確かめ、RtEventOccurrenceRecordからRtEventLogRecordを作成し、RtEventLogRecordを待ち行列に入れ、それによってRtEventOccurrenceRecordを破壊する。
【0368】
図43も参照すると、オブジェクト通信図は、Alarm AttributeのENAB FieldをTRUEにさせることにより警報を使用可能にすること(enablement)にも適用できる。警報
が使用可能になる(enablement)前、ブールAttributeのカレント状態は、Enabledされているのであれば、警報がActiveとなるだろうことを示しており、AutoAckは、AttributeとModuleレベルでFalseである。Alarm Attributeの警報フィールドは、新しいAlarm状態を反映するために更新され、イベント発生レコードが構築され、必要に応じて、Module、Plant Area、およびワークステーションアプリケーション(Alarm Summary、Event Journal)に送信される。警報が使用不能にされた(disablement)後、カレントAlarm状態は「Active/Unaknowledged」であり、ENABフィールドはTRUEである。この警報のカレ
ント警報情報は、Moduleにより記憶される。新規イベント発生レコード(警報Active/Unacknowledged)が構築され、このDevice内のこのPlant Areaを監視しているデバイスへの伝送のために待ち行列に入れられる。
【0369】
ステップ4310では、RtAlarmAttributeは、writeAttributeを受け取り、それによってENAB FieldはTRUEになる。ステップ4312では、RtAlarmAttributeが、AttriguteとModule Alarm動作の両方がENABLEDされるように、RtAlarmAttributeを包含しているRtModuleからalarmDisableステータスを得る。ステップ4314では、RtAlarmAttributeが、AttributeとModule Alarm]の両方にとって、AUTOACKがDISABLEDされるように、RtAlarmAttributeを包含しているRtModuleからalarmAutoackステータスを得る。ステップ4316では、RtAlarmAttributeは、新しい警報状態、「Active/Unacknowledged」状態を計算し、指数としてAlarmTypeを使用して、RtEventTypeDefinitionからプロトタイプイベント記述子文字列を読み取る。ステップ4318では、RtAlarmAttributeが、RtEventOccurrenceRecordのdescriptionStringを構築し、必要ならば、包含しているRtModuleからカレント属性値を読み取る。ステップ4320では、RtAlarmAttributeが、新しいRtEventOccurrenceRecordを構築する.警報は新しいため、RtAlarmAttributeは、RtAlarmAttributeを包含しているRtModuleに、addEventOccurrenceするように命令し、addEventOccurrenceから戻されるハンドルでRtModuleを識別する。ステップ4322では、RtModuleが、RtactiveAlarmListに、addEventOccurrenceするように命令し、それによって、新しいエントリをリストに追加する。ステップ4326では、RtModuleが、recordEventOccurrenceを介して、RtModuleのRtPlantAreaに、RtEventOccurrenceRecordを送る。ステップ4328では、RtPlantAreaが、そのRtAreaEventLogに、addeventするように命令し、RtAreaEventLogが、少なくとも1つのワークステーションクライアントが、EventLogレコードの受信に対する関心を登録したことを確かめ、RtEventOccurrenceRecordからRtEventLogRecordを作成し、RtEventLogRecordを待ち行列に入れ、それによってRtEventOccurrenceRecordを破壊する。
【0370】
本発明は、多様な態様に関して説明されてきたが、これらの態様が実例となり、本発明の範囲がそれらに制限されていないことが理解されるだろう。説明されている実施態様の多くの変化、修正、追加、および改善が可能である。