(57)【要約】      （修正有） 【課題】複雑な論理機能ブロックのプログラミングおよびデバッグを容易に行えるようにする。【解決手段】ブール論理機能ブロックを構築する技術では、コンピュータの表示スクリーン上にブール論理機能ブロックに関連するマトリクスを表示する。したがって、プログラマーは、かかるマトリクスにコンフィギュレーション・データを入力してブール論理機能ブロックを構築することが可能である。かかるマトリクスは複数のセルを有している。それらのうちの一部のセルは、機能ブロック出力値の生成に用いられる変数に対応しており、プログラマーは、コンフィギュレーション・データをセルに入力することが可能である。セルに入力されたコンフィギュレーション・データにより、セルの変数が入力として与えられる論理関数が表わされる。【選択図】      図１
2004362561.tif 000002
【特許請求の範囲】
【請求項１】
表示デバイスおよび入力デバイスを備えるコンピュータを用いて、プロセス・プラントに関連する機能ブロックを設定する方法であって、
機能ブロックの機能ブロック出力に関連付けされ、該機能ブロック出力を設定する、複数のセルを備えているマトリクスを、前記表示デバイスに表示することと、
前記入力デバイスを用いて、前記複数のセルのうちの少なくともいくつかに入力されているコンフィギュレーション・データを受信すること
とを有し、
前記複数のセルの各々は、複数の変数のうちの１つの変数に対応付けされており、
前記コンフィギュレーション・データは、１つのセルに対応付けされている前記変数が１つの入力である複数の論理関数のうちの１つを表わしているデータを有している方法。
【請求項２】
前記複数の論理関数は、ＡＮＤ関数、ＮＡＮＤ関数、ＯＲ関数、ＮＯＲ関数、およびＸＯＲ関数のうちの少なくとも１つを含んでいる請求項１記載の方法。
【請求項３】
前記コンフィギュレーション・データは、１つのセルに対応付けされている前記変数が前記複数の論理関数のうちの１つの論理関数への反転入力であるか否かを表わしているデータを含んでいる請求項１記載の方法。
【請求項４】
前記複数の論理関数のうちの１つを表わしているデータは、前記対応付けされている前記変数が前記複数の論理関数のうちの１つの論理関数への反転入力であるか否かを表わしているデータを有している請求項３記載の方法。
【請求項５】
前記複数の変数は、複数の機能ブロック入力を含んでいる請求項１記載の方法。
【請求項６】
前記複数の変数は、複数の機能ブロック出力を含んでいる請求項１記載の方法。
【請求項７】
前記複数のセルは、セル群を含んでおり、該セル群のうちの少なくともいくつかに入力されているコンフィギュレーション・データは、論理関数群に対して与えられている変数を表わす場合には、該論理関数群の出力は更なる論理関数に対して入力として与えられる請求項１記載の方法。
【請求項８】
前記更なる論理関数は、ＡＮＤ関数、ＮＡＮＤ関数、ＯＲ関数、ＮＯＲ関数、およびＸＯＲ関数のうちの少なくとも１つを含んでいる請求項７記載の方法。
【請求項９】
前記入力デバイスを用いて、前記更なる論理関数を表わしている更なるコンフィギュレーション・データを受信することをさらに有している請求項８記載の方法。
【請求項１０】
前記複数の変数は、複数の中間結果を含んでいる請求項１記載の方法。
【請求項１１】
前記複数のセルは、第１の複数のセルと第２の複数のセルとを有しており、該第１の複数のセルは、前記複数の中間結果を設定し、該第２の複数のセルは、前記複数の中間結果に基づいて前記機能ブロック出力を設定し、
前記複数の論理関数は、第１の複数の論理関数と第２の複数の論理関数とを有しており、
前記第１の複数のセルのうちのセルに入力される前記コンフィギュレーション・データは、前記第１の複数の論理関数のうちの１つを表わしているデータを含んでおり、
前記第２の複数のセルのうちのセルに入力される前記コンフィギュレーション・データは、前記第２の複数の論理関数のうちの１つを表わしているデータを含んでいる請求項１０記載の方法。
【請求項１２】
前記第２の複数の論理関数は、前記第１の複数の論理関数を有している請求項１１記載の方法。
【請求項１３】
前記第２の複数の論理関数は、前記第１の複数の論理関数と同一である請求項１２記載の方法。
【請求項１４】
前記第１の複数のセルは、複数の機能ブロック入力に少なくとも部分的に基づいて、前記複数の中間結果を設定する請求項１１記載の方法。
【請求項１５】
前記第１の複数のセルは、複数の他の機能ブロック出力にさらに基づいて、前記複数の中間結果を設定する請求項１４記載の方法。
【請求項１６】
前記第１の複数のセルは、前記機能ブロック出力にさらに基づいて、前記複数の中間結果を設定する請求項１４記載の方法。
【請求項１７】
更なるコンフィギュレーション・データを入力すべく、ユーザ・インタフェース・メカニズムを前記表示デバイス上に表示することと、
前記ユーザ・インタフェース・メカニズムを用いて入力される前記更なるコンフィギュレーション・データを受信することと
をさらに有している請求項１記載の方法。
【請求項１８】
前記更なるコンフィギュレーション・データは、ＢＡＤステータスを有する機能ブロック入力を前記機能ブロックが処理する方法を表わしているデータを有している請求項１７記載の方法。
【請求項１９】
前記更なるコンフィギュレーション・データは、前記機能ブロック出力を保持するか否かを表わしているデータを有している請求項１７記載の方法。
【請求項２０】
前記コンフィギュレーション・データは、前記機能ブロック出力をクリアする時期を決定する関数を表わしているデータを有している請求項１９記載の方法。
【請求項２１】
前記更なるコンフィギュレーション・データは、前記機能ブロック出力を遅延させるか否かを表わしているデータを有している請求項１７記載の方法。
【請求項２２】
前記更なるコンフィギュレーション・データは、前記機能ブロック出力がカウントに基づいて状態を変更するか否かを表わしているデータを有している請求項１７記載の方法。
【請求項２３】
前記コンフィギュレーション・データに従って前記機能ブロックを作成することをさらに有している請求項１記載の方法。
【請求項２４】
前記コンフィギュレーション・データに従って前記機能ブロックを設定することをさらに有している請求項１記載の方法。
【請求項２５】
前記コンフィギュレーション・データをコンピュータ読み取り可能な媒体に格納することをさらに有している請求項１記載の方法。
【請求項２６】
前記コンフィギュレーション・データをメモリに格納することをさらに有している請求項１記載の方法。
【請求項２７】
前記プロセス・プラントに関連するネットワークを用いて、前記コンフィギュレーション・データを伝送することをさらに有している請求項１記載の方法。
【請求項２８】
表示デバイスおよび入力デバイスを備えるコンピュータを用いて、プロセス・プラントに関連する機能ブロックを設定する方法であって、
機能ブロックの機能ブロック出力に関連付けされ、複数の中間結果を設定する、複数の第１のセルを備えている第１のマトリクスを、前記表示デバイスに表示することと、
前記入力デバイスを用いて前記複数の第１のセルのうちの少なくともいくつかに入力される第１のコンフィギュレーション・データを受信することと、
前記機能ブロック出力に関連付けされ、前記複数の中間結果に基づいて前記機能ブロック出力を設定する、複数の第２のセルを備えている第２のマトリクスを、前記表示デバイスに表示することと、
前記入力デバイスを用いて前記複数の第２のセルのうちの少なくともいくつかに入力される第２のコンフィギュレーション・データを受信すること
とを有し、
前記複数の第１のセルのうちの各第１のセルは、複数の変数のうちの１つの変数に対応付けされており、
前記第１のコンフィギュレーション・データは、１つの第１のセルに対応付けされている１つの変数が１つの入力である第１の複数の論理関数のうちの１つを表わしているデータを有しており、
前記複数の第２のセルのうちの各第２のセルは、複数の中間結果のうちの１つの中間結果に対応付けされており、
前記第２のコンフィギュレーション・データは、１つの第２のセルに対応付けされている１つの中間結果が１つの入力である第２の複数の論理関数のうちの１つを表わしているデータを有している方法。
【請求項２９】
前記第１のマトリクスおよび前記第２のマトリクスは、同一のマトリクスである請求項２８記載の方法。
【請求項３０】
前記第１の論理関数は、ＡＮＤ関数、ＮＡＮＤ関数、ＯＲ関数、ＮＯＲ関数、およびＸＯＲ関数のうちの少なくとも１つを含んでいる請求項２８記載の方法。
【請求項３１】
前記第２の論理関数は、ＡＮＤ関数、ＮＡＮＤ関数、ＯＲ関数、ＮＯＲ関数、およびＸＯＲ関数のうちの少なくとも１つを含んでいる請求項２８記載の方法。
【請求項３２】
前記第１のコンフィギュレーション・データは、セルに対応付けされている変数が前記第１の複数の論理関数のうちの１つの論理関数に対する反転入力であるか否かを表わしているデータをさらに含んでいる請求項２８記載の方法。
【請求項３３】
前記第２のコンフィギュレーション・データは、セルに対応付けされている中間結果が前記第２の複数の論理関数のうちの１つの論理関数に対する反転入力であるか否かを表わしているデータをさらに含んでいる請求項２８記載の方法。
【請求項３４】
前記複数の変数は、複数の機能ブロック入力を含んでいる請求項２８記載の方法。
【請求項３５】
前記複数の変数は、複数の機能ブロック出力を含んでいる請求項２８記載の方法。
【請求項３６】
前記複数の第１のセルは、前記複数の中間結果のうちの１つの中間結果に対応付けされている第１のセル群を含んでおり、前記第１セル群のうちの少なくともいくつかに入力される第１のコンフィギュレーション・データが第１の論理関数群に与えられる変数を表わす場合には、該第１の論理関数群の出力は、更なる論理関数に対して入力として与えられる請求項２８記載の方法。
【請求項３７】
前記更なる論理関数は、ＡＮＤ関数、ＮＡＮＤ関数、ＯＲ関数、ＮＯＲ関数、およびＸＯＲ関数のうちの少なくとも１つを含んでいる請求項３６記載の方法。
【請求項３８】
前記入力デバイスを用いて、前記更なる論理関数を表わしている更なる第１のコンフィギュレーション・データを受信することをさらに有している請求項３７記載の方法。
【請求項３９】
前記第２セルのうちの少なくともいくつかに入力される第２のコンフィギュレーション・データが、論理関数群に与えられる変数を表わす場合には、前記論理関数群の出力は、更なる論理関数に対して入力として与えられる請求項２８記載の方法。
【請求項４０】
前記更なる論理関数は、ＡＮＤ関数、ＮＡＮＤ関数、ＯＲ関数、ＮＯＲ関数、およびＸＯＲ関数のうちの少なくとも１つを含んでいる請求項３９記載の方法。
【請求項４１】
前記入力デバイスを用いて、前記更なる論理関数を表わしている更なる第１のコンフィギュレーション・データを受信することをさらに有している請求項４０記載の方法。
【請求項４２】
第３のコンフィギュレーション・データを入力すべく、ユーザ・インタフェース・メカニズムを前記ディスプレイ・デバイス上に表示することと、
前記ユーザ・インタフェース・メカニズムを用いて前記第３のコンフィギュレーション・データを受信することと
をさらに有している請求項２８記載の方法。
【請求項４３】
前記第３のコンフィギュレーション・データは、ＢＡＤステータスを有する機能ブロックを該機能ブロックが処理する方法を表わしているデータを有している請求項４２記載の方法。
【請求項４４】
前記第３のコンフィギュレーション・データは、前記機能ブロック出力を保持するか否かを表わしているデータを有している請求項４２記載の方法。
【請求項４５】
前記第２のコンフィギュレーション・データは、前記機能ブロック出力をクリアする時期を決定する関数を表わしているデータを有している請求項４４記載の方法。
【請求項４６】
前記第３のコンフィギュレーション・データは、前記機能ブロック出力を遅延させるか否かを表わしているデータを有している請求項４２記載の方法。
【請求項４７】
前記第３のコンフィギュレーション・データは、前記機能ブロック出力がカウントに基づいて状態を変更するか否かを表わしているデータを有している請求項４２記載の方法。
【請求項４８】
前記第１のコンフィギュレーション・データおよび前記第２のコンフィギュレーション・データに従って前記機能ブロックを設定することをさらに有している請求項２８記載の方法。
【請求項４９】
前記第１のコンフィギュレーション・データおよび前記第２のコンフィギュレーション・データをコンピュータ読み取り可能な媒体に格納することをさらに有している請求項２８記載の方法。
【請求項５０】
前記プロセス・プラントに関連するネットワークを用いて、前記第１のコンフィギュレーション・データおよび前記第２のコンフィギュレーション・データを伝送することをさらに有している請求項２８記載の方法。
【請求項５１】
表示デバイスを備えるコンピュータを用いて、プロセス・プラントに関連する機能ブロックのデバッギングを容易にする方法であって、
複数の変数に基づく複数の中間結果の論理関数をベースにする、前記機能ブロックの機能ブロック出力に関連付けされるとともに、該論理関数を表わしている第１のコンフィギュレーション・データを有する複数の第１のコンフィギュレーション・セルを備え、さらに、前記複数の中間結果に対応付けされる複数の中間結果表示セルを備えたマトリクスを、前記表示デバイスに表示することと、
前記複数の変数に対応付けされる複数の値に基づいて前記複数の中間結果を決定することと、
前記中間結果を前記複数の中間結果表示セルに表示することと
を有する方法。
【請求項５２】
前記複数の変数に対応付けされた前記複数の値を受信することをさらに有している請求項５１記載の方法。
【請求項５３】
前記マトリクスが機能ブロック出力表示セルを有しており、前記複数の中間結果に基づいて前記機能ブロック出力を決定することと、前記機能ブロック出力表示セルに前記機能ブロック出力を表示することとをさらに有している請求項５１記載の方法。
【請求項５４】
前記複数の中間結果は、複数の対応する他の論理関数に基づいており、前記マトリクスは、複数の第２のコンフィギュレーション・セルを有しており、該第２のコンフィギュレーション・セルは、前記複数の対応する他の論理関数を表わしている第２のコンフィギュレーション・データを有している請求項５１記載の方法。
【請求項５５】
マシン読み取り可能な命令を格納する有体媒体であって、
機能ブロックの機能ブロック出力に関連付けされ、該機能ブロック出力を設定する、複数のセルを備えたマトリクスを、前記表示デバイス上に表示する第１のコードと、
入力デバイスを用いて、前記複数のセルのうちの少なくともいくつかに入力されるコンフィギュレーション・データを受信する第２のコードと
を備え、
前記複数のセルの各々が、複数の変数のうちの１つの変数に対応付けされており、
前記コンフィギュレーション・データは、１つのセルに対応付けされている前記変数が１つの入力である複数の論理関数のうちの１つを表わしているデータを有してなる有体媒体。
【請求項５６】
前記コンフィギュレーション・データに従って前記機能ブロックを作成する第３のコードをさらに備えてなる請求項５５記載の有体媒体。
【請求項５７】
前記コンフィギュレーション・データに従って前記機能ブロックを設定する第３のコードをさらに備えてなる請求項５５記載の有体媒体。
【請求項５８】
前記コンフィギュレーション・データをコンピュータ読み取り可能な媒体に格納する第３のコードをさらに備えてなる請求項５５記載の有体媒体。
【請求項５９】
前記コンフィギュレーション・データをメモリに格納する第３のコードをさらに備えてなる請求項５５記載の有体媒体。
【請求項６０】
前記プロセス・プラントに関連するネットワークを用いて前記コンフィギュレーション・データを伝送する第３のコードをさらに備えてなる請求項５５記載の有体媒体。
【請求項６１】
マシン読み取り可能な命令を格納する有体媒体であって、
機能ブロックの機能ブロック出力に関連付けされ、複数の中間結果を設定する、複数の第１のセルを備えた第１のマトリクスを、前記表示デバイス上に表示する第１のコードと、
入力デバイスを用いて、前記複数の第１のセルのうちの少なくともいくつかに入力される第１のコンフィギュレーション・データを受信する第２のコードと、
前記機能ブロック出力に関連付けされ、前記複数の中間結果に基づいて前記機能ブロック出力を設定する、複数の第２のセルを備えた第２のマトリクスを、前記表示デバイス上に表示する第３のコードと、
前記入力デバイスを用いて、前記複数の第２のセルのうちの少なくともいくつかに入力される第２のコンフィギュレーション・データを受信する第４のコードと
を備え、
前記複数の第１のセルのうちの各第１のセルは、複数の変数のうちの１つの変数に対応付けされており、
前記第１のコンフィギュレーション・データは、１つの第１のセルに対応付けされている１つの変数が１つの入力である第１の複数の論理関数のうちの１つを表わしているデータを有しており、
前記複数の第２のセルのうちの各第２のセルが、複数の中間結果のうちの１つの中間結果に対応付けされており、
前記第２のコンフィギュレーション・データは、１つの第２のセルに対応付けされている１つの中間結果が１つの入力である第２の複数の論理関数のうちの１つを表わしているデータを有している有体媒体。
【請求項６２】
前記コンフィギュレーション・データに従って前記機能ブロックを作成する第５のコードをさらに備えてなる請求項６１記載の有体媒体。
【請求項６３】
前記コンフィギュレーション・データに従って前記機能ブロックを設定する第５のコードをさらに備えてなる請求項６１記載の有体媒体。
【請求項６４】
前記コンフィギュレーション・データをコンピュータ読み取り可能な媒体に格納する第５のコードをさらに備えてなる請求項６１記載の有体媒体。
【請求項６５】
前記コンフィギュレーション・データをメモリに格納する第５のコードをさらに備えてなる請求項６１記載の有体媒体。
【請求項６６】
前記プロセス・プラントに関連するネットワークを用いて、前記コンフィギュレーション・データを伝送する第５のコードをさらに備えてなる請求項６１記載の有体媒体。
【請求項６７】
マシン読み取り可能な命令を格納する有体媒体であって、
複数の変数に基づく複数の中間結果の論理関数をベースにする、前記機能ブロックの機能ブロック出力に関連付けされるとともに、該論理関数を表わしている第１のコンフィギュレーション・データを有する複数の第１のコンフィギュレーション・セルを備え、さらに前記複数の中間結果に対応付けされる複数の中間結果表示セルを備えたマトリクスを、前記表示デバイスに表示する第１のコードと、
前記複数の変数に対応付けされる複数の値に基づいて前記複数の中間結果を決定する第２のコードと、
前記中間結果を前記複数の中間結果表示セルに表示する第３のコードと
を備えてなる有体媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に、プロセス・プラントにおいて用いられる機能ブロックに関するものであり、さらに詳細には、プロセス・プラントに関連するブール論理関数の設計、デバッグ、実施に関するものである。
【背景技術】
【０００２】
化学プロセス、石油プロセス、または他のプロセスの如きプロセス制御システムは、アナログバスもしくはアナログ回線、デジタルバスもしくはデジタル回線、またはアナログとデジタルとを組み合わせたバスもしくは回線を用いて、少なくとも１つのホスト・ワークステーションもしくはオペレータ・ワークステーションまたは一もしくは複数のフィールド・デバイスに通信可能に結合された一または複数のプロセス・コントローラを備えているのが一般的である。たとえば、バルブ、バルブポジショナ、スイッチ、およびトランスミッタ（たとえば、温度センサ、圧力センサ、流量センサ）であり得る上記のフィールド・デバイスは、バルブの開閉またはプロセス・パラメータの計測の如きプロセス・プラント内の機能を実行する。プロセス・コントローラは、フィールド・デバイスにより測定されるプロセス測定値および／またはそれらのフィールド・デバイスに関する情報を表わす信号を受信し、これらの情報を用いて制御ルーチンを実行し、制御信号を生成する。次いで、これらの信号は、上記のバスまたは回線を用いて、フィールド・デバイスに送信され、プロセスの動作を制御する。通常、フィールド・デバイスおよびコントローラからの情報を、オペレータ・ワークステーションにより実行される一または複数のアプリケーションが利用できるようになっている。これにより、オペレータは、プロセスに対して、プロセスの設定、プロセスの現状の閲覧、プロセスの操作の変更などの如きいかなる所望の操作であっても行うことができる。
【０００３】
制御ルーチンを設計するためのさまざまなツールが開発されてきている。たとえば、国際電気技術協会（ＩＥＣ）は、プログラマブル・コントローラ言語に対する規約、すなわちＩＥＣ６１１３１−３規約を策定した。このＩＥＣ６１１３１−３規約では、いくつかのグラフィカル・プログラミング技術が明記されている。
【０００４】
ＩＥＣ６１１３１−３規約において明記されている１つのグラフィカル技術は「ラダー・ダイアグラム」と呼ばれている。このラダー・ダイアグラム技術は、従来のリレイ・ラダー論理に基づいている。このラダー・ダイアグラムを用いて、プログラマーは、一組の標準化された記号をグラフィカルに配置し、論理式の表記を作成することが可能である。ＩＥＣ６１１３１−３規約において明記されている他のグラフィカル技術は、一般的に、「機能ブロック・ダイアグラム」と呼ばれている。この機能ブロック・ダイアグラムでは、プログラマーは、個々の機能ブロックが特定の機能を実行するさまざまな機能ブロックをグラフィカルに相互接続することが可能である。ＩＥＣ６１１３１−３規約は、さまざまな働きを行う標準化された機能ブロックを提供している。たとえば、標準化された機能ブロックは、ＡＮＤ関数またはＯＲ関数の如き論理関数を実行する。プログラマーは、さらに複雑な機能を設計するためにさまざまな機能ブロックを相互に「線で関連付け」してもよい。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
複雑な論理関数を設計する場合、ラダー・ダイアグラムまたは機能ブロック・ダイアグラムは視覚的に非常に複雑になる。このダイアグラムの視覚的な複雑さのため、人によっては、そのダイアグラムに内在する論理を理解および／または論理に追従することが困難である場合がある。また、このダイアグラムの視覚的な複雑さのため、設計された論理関数のデバッグが困難である場合がある。
【課題を解決するための手段】
【０００６】
ブール論理機能ブロックを構築する技術では、コンピュータの表示スクリーン上にブール論理機能ブロックに関連するマトリクスが表示される。したがって、プログラマーは、かかるマトリクスに、設定データを入力し、ブール論理機能ブロックを構築することが可能である。一例では、かかるマトリクスは、複数のセルを有しており、それらのうちの一部のセルが、機能ブロックの出力値の生成に用いられる変数に相当し、プログラマーが、それらのセルに設定データを入力することが可能である。セルに入力される設定データにより、このセルの変数値が入力として与えられる論理関数が表わされる。
【０００７】
１つの実施の形態では、かかるマトリクスは、第１の複数のセルと第２の複数のセルとを備えている。プログラマーは、複数の変数に基づいて複数の中間値が決定される論理関数である第１の複数のセルに設定データを入力することが可能である。さらに、プログラマーは、複数の中間値に基づいて機能ブロックの出力値が決定される論理関数である第２の複数のセルに設定データを入力することが可能である。
【０００８】
他の実施の形態では、ブール論理機能ブロックの出力値に関連するマトリクス表記が、その機能ブロックのデバッグを容易にするために用いられる。かかるマトリクスは、コンピュータの表示デバイス上に表示され、一例では、機能ブロックの出力値の生成に用いられる中間結果を表示する複数のセルを備えることが可能である。これらの複数の中間結果は、たとえばその機能ブロックに対する試験入力に対応する複数の値に基づいて決定されることが可能である。
【発明を実施するための最良の形態】
【０００９】
（プロセス・プラントの概要）
本明細書で記載された装置および方法の特徴および利点は、以上の詳細な説明と添付の図面とを参照することにより最もよく理解できる。
【００１０】
図１は、一または複数のノード12，14，16，18，20を備えるプロセス・プラント10の一例を示すブロック・ダイアグラムである。図１のプロセス・プラント10の一例では、ノード12，14，16の各々は、それに対応するプロセス・コントローラ12a，14a，16aを備えており、各プロセス・コントローラは、たとえばＦｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓインタフェース、ＨＡＲＴインタフェースなどであり得る入力／出力（Ｉ／Ｏ）デバイス24を介して、一または複数のフィールド・デバイス22，23に接続されている。また、コントローラ12a，14a，16aは、ネットワーク30を介して、ノード18，20における一または複数のホスト・ワークステーションまたはオペレータ・ワークステーション18a，20aに接続されている。このネットワーク30は、たとえば、バス、イーサネット（登録商標）ＬＡＮの如き有線式ローカル・エリア・ネットワーク（ＬＡＮ）、無線式ＬＡＮ、ワイド・エリア・ネットワーク（ＷＡＮ）、イントラネットなどのうちの一または複数から構成されることが可能である。コントローラ・ノード12，14，16、ならびに、これらに関連付けされている入力／出力デバイスおよびフィールド・デバイス22，23，24は、一般的に、過酷な状態になり得るプラント環境内に設置され、その全体に亘って分散されており、その一方、オペレータ・ワークステーション・ノード18，20は、通常、コントローラ作業員が容易にアクセス可能な制御室または他のそれほど過酷ではない環境に設置されている。
【００１１】
一般的に言えば、ノード18，20のワークステーション18a，20aは、プロセス・プラント10を設定・監視すべく用いられるアプリケーションを格納・実行するために、ならびに／または、プロセス・プラント10におけるデバイス22，23，24およびコントローラ12a，14a，16aを管理するために用いられることが可能である。さらに、データベース32は、ネットワーク30に接続されてもよいし、ノード12，14，16，18，20にダウンロードされる、および／または、格納されるプロセス・プラント10の現行の設定を格納するヒストリアンおよび／またはコンフィギュレーション・データベースとして動作してもよい。
【００１２】
たとえば、エマーソン・プロセス・マネージメント社により販売されているＤｅｌｔａＶ（商標）コントローラであり得るコントローラ12a，14aの各々は、複数の異なる且つ別々に実行される制御モジュールまたは制御ブロックを用いて制御戦略を実行するコントローラ・アプリケーションを格納・実行することが可能である。制御モジュールの各々は、一般的に機能ブロックと呼ばれるブロックから構成されている。ここで、機能ブロックの各々は、制御ルーチン全体の一部またはサブルーチンであり、プロセス・プラント10内のプロセス制御ループを実行するために、（リンクと呼ばれる通信を介して）他の機能ブロックと一緒に動作する。周知のように、機能ブロックは、通常、プロセス・プラント10内のなんらかの物理的機能を実行するために、（トランスミッタ、センサ、または他のプロセス・パラメータ計測デバイスに関連する）入力機能、（ＰＩＤ制御、ファジー論理制御などを実行する制御ルーチンに関連する）制御機能、または（バルブの如き）何らかのデバイスの動作を制御する出力機能のうちの１つを実行する。もちろん、機能ブロックのハイブリッドおよび他のタイプも存在しており、それらを用いてもよい。ｆｉｅｌｄｂｕｓプロトコルおよびＤｅｌｔａＶ（商標）システム・プロトコルは、オブジェクト指向プログラミング・プロトコルで設計・実現される制御モジュールおよび機能ブロックを用いてもよいが、これらの制御モジュールを、機能ブロックまたはその他の特定のプログラミング技術を用いて設計する必要はなく、たとえばシーケンシャル機能ブロック、ラダー論理などを含むいかなる所望の制御プログラミング・スキームを用いて設計してもよい。従来と同様に、プロセス制御モジュール12，14，16内に格納される制御モジュールの設定は、ワークステーション18a，20aにより実行されるアプリケーションによってアクセスが可能なコンフィギュレーション・データベース32内に格納されてもよい。機能ブロックが標準型４〜２０ｍａデバイスおよびＨＡＲＴデバイスの如き或る種のスマート・フィールド・デバイスに対して用いられるか、または、それらに関連付けられている場合には、通常、その機能ブロックは、たとえばコントローラ12aに格納され、それにより実行される。これに代えて、機能ブロックがＦｉｅｌｄｂｕｓデバイスの如き或る種のスマート・フィールド・デバイスに対して用いられるか、または、それに関連付けられている場合には、その機能ブロックは、たとえばそのスマート・フィールド・デバイスに格納され、それにより実行される。
【００１３】
図１に例示されているシステムでは、コントローラ12a，14a，16aに結合されているフィールド・デバイス22，23は、標準型の４〜２０ｍａデバイスであってもよく、または、プロセッサおよびメモリを備えているＨＡＲＴフィールド・デバイス、Ｐｒｏｆｉｂｕｓフィールド・デバイス、もしくはＦｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓフィールド・デバイスの如きスマート・フィールド・デバイスであってもよい。（図１で参照番号23の符号が付けられている）Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓフィールド・デバイスの如き、上述のデバイスのうちの一部のデバイスが、コントローラ12a，14a，16aで実行される制御戦略に関連するモジュールまたは機能ブロックの如きサブモジュールを格納し、実行する場合もある。もちろん、これらのフィールド・デバイス22，23は、センサ、バルブ、トランスミッタ、ポジショナなどの如きいかなるタイプのデバイスであってもよく、また、Ｉ／Ｏデバイス24は、ＨＡＲＴ、Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓ、Ｐｒｏｆｉｂｕｓなどの如き任意の所望の通信プロトコルまたはコントローラプロトコルに準拠するいかなるタイプのＩ／Ｏデバイスであってもよい。
【００１４】
コントローラ12a，14a，16aの各々は、その内部に格納されるか、または、それに関連付けされるプロセッサを備えており、このプロセッサは、コントロールループを含み得る一または複数のプロセス制御ルーチンを実行・監視する。これらのルーチンは、メモリに格納されている。コントローラ12a，14a，16aは、フィールド・デバイス22，23、ワークステーション18a，20a、およびデータベース32と通信し、任意の所望の方法でプロセスを制御する。コントローラ12a，14a，16aの各々は、制御戦略または制御ルーチンを実行すべく、いかなる所望の方法により設定されてもよい。
【００１５】
図２は、ワークステーションの18aの一例を示すブロック・ダイアグラムである（ワークステーション20aは同一のまたは同様のデバイスから構成されることが可能である）。このワークステーション18aは、少なくとも１つのプロセッサ50と、揮発性メモリ54と、非揮発性メモリ58とを備えている。揮発性メモリ54には、たとえば、ランダムアクセスメモリ（ＲＡＭ）、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、フラッシュメモリなどが含まれることが可能である。また、ワークステーション18aは、ワークステーションＩ／Ｏデバイス62を備えている。プロセッサ50、揮発性メモリ54、非揮発性メモリ58、およびワークステーションＩ／Ｏデバイス62は、アドレス／データバス66を介して相互に接続されることが可能である。また、ワークステーション18aは、少なくとも１つの表示装置70と少なくとも１つのユーザ入力デバイス74とを備えており、これらは入力デバイスとは、たとえば、一または複数のキーボード、キーパッド、マウス、トラックボール、タッチスクリーン、ライトペンなどである。実施の形態によっては、揮発性メモリ54、非揮発性メモリ58、およびワークステーションＩ／Ｏデバイス62のうちの一または複数が、アドレス／データバス66から分離されたバス（図示せず）を介してプロセッサ50に結合されるか、または、プロセッサ50に直接結合される場合もある。
【００１６】
表示装置70およびユーザ入力デバイス74は、ワークステーションＩ／Ｏデバイス62と結合されている。さらに、ワークステーション18aは、ワークステーションＩ／Ｏデバイス62を介して、ネットワーク30に結合されている。ワークステーションＩ／Ｏデバイス62は、１つのデバイスであるものとして図３に例示されているが、複数のデバイスから構成されてもよい。さらに、実施の形態によっては、表示装置70およびユーザ入力デバイス74のうちの一または複数が、アドレス／データバス66またはプロセッサ50に直接結合される場合もある。
【００１７】
ここで、図１および図２を参照して説明する。制御ノード12，14，16のうちの一または複数に関連するコンフィギュレーション・アプリケーションは、一または複数のワークステーション18a，20aに格納され、それにより実行されることが可能である。たとえば、このコンフィギュレーション・アプリケーションは、非揮発性メモリ58および／または揮発性メモリ54に格納されて、プロセッサ50により実行されてもよい。しかしながら、所望ならば、このアプリケーションは、プロセス・プラント10に関連する他のコンピュータに格納されて、それにより実行されてもよい。一般的に言えば、このコンフィギュレーション・アプリケーションを利用することにより、プログラマーは、コントローラ12a，14a，16aおよび／またはフィールド・デバイス22，23により実行される制御ルーチンおよび制御モジュールを作成・設定することが可能になる。これらの制御ルーチンおよび制御モジュールは、次に、ネットワーク30を介して、コントローラ12a，14a，16a、Ｉ／Ｏデバイス24、および／またはフィールド・デバイス22，23のうちの適切な装置にダウンロードされることが可能である。
【００１８】
上述のコンフィギュレーション・アプリケーションにより、機能ブロック・プログラミング・パラダイムを用いた制御モジュールおよび／または制御ルーチンのプログラムが可能となる。図３は、制御モジュール104を示す表示画面100を例示している。この表示画面100は、コンフィギュレーション・アプリケーションに関連するユーザ・インタフェースの一部であり得るし、また、たとえば、ワークステーション18aの表示装置70を介して、プログラマーに提示されることが可能である。表示画面100は、一組の通信可能に相互接続された機能ブロックを有する制御モジュール104を示している。この制御モジュールは、作成され、ネットワーク30を介してコントローラ12a，14a，16a、Ｉ／Ｏデバイス24、および／またはフィールド・デバイス22，23のうちの適切な装置にダウンロードされ、プロセスの動作中に実行されることが可能である。図３に例示されているように、制御モジュール104は、２つのブール関数（機能）ブロック（ＢＬＦＢ）108，110と、複数のアナログ入力（ＡＩ）機能ブロックおよびデジタル入力（ＤＩ）機能ブロックと、複数のアナログ出力（ＡＯ）機能ブロックおよびデジタル出力（ＤＯ）機能ブロックと、他の機能ブロック（ＦＢ）とを備えている。ＢＬＦＢ108，110の各々は、ＤＩ機能ブロックまたは他のＦＢであり得る機能ブロック114と通信可能に相互接続される入力部を有している。ＢＬＦＢ108，110の各々は、ＤＯ機能ブロックまたは他のＦＢであり得る機能ブロック118と接続される出力部を有している。この制御モジュール104は、スイッチ、バルブなどの如きデバイスを制御してもよいし、それらを一緒に制御する複数の制御モジュールのうちの１つであってもよい。もちろん、制御モジュール104は、ＢＬＦＢを採用する制御モジュールのほんの一例である。一般的に、制御モジュールは、任意の所望の方法で任意の数のＢＬＦＢに通信可能に結合される任意のタイプの機能ブロックを含むように、任意の所望の方法でプログラムされてもよく、また、任意の所望の機能を実行するために任意の所望のまたは有益な方法で設定されてもよい。たとえばＦｉｅｌｄｂｕｓネットワークで用いられる場合、制御モジュールは、いかなるｆｉｅｌｄｂｕｓタイプの機能ブロックを有してもよい。
【００１９】
上記のコンフィギュレーション・アプリケーションに関連するユーザ・インタフェースを用いて、プログラマーは、制御モジュール104の如き制御モジュールを設計することが可能である。ほんの一例としては、このユーザ・インタフェースは、複数の標準型機能ブロック・ステンシルまたはカスタム機能ブロック・ステンシルなどを含むステンシルまたはパレットから所望の機能ブロックを選択するメカニズムをプログラマーに提供する。さらに、このユーザ・インタフェースは、プログラマーが機能ブロックの図を挿入または掲載し得るグラフィカル・ダイアグラムを提供することが可能である。プログラマーは、ステンシルまたはパレットから機能ブロックを選択するために、たとえばマウス、トラックボールなどを使用し、次いで、その機能ブロックを上記のグラフィカル・ダイアグラム上にドラッグ・アンド・ドロップすることが可能である。さらに、プログラマーは、マウス、トラックボールなどを用いて１つの機能ブロックの出力部と他の機能ブロックの入力部との間にたとえば線を引くことにより、機能ブロック同士を通信可能に結合することが可能である。
【００２０】
（ブール論理機能ブロック・コンフィギュレーション）
図４は、ＢＬＦＢの表記150の一例である。このＢＬＦＢ表記150は、たとえば、図３の表示画面100の如きユーザ・インタフェース表示画面上に表示されることが可能である。ＢＬＦＢ表記150から、このＢＬＦＢが８つのデータ入力（ＩＮ＿Ｄ１からＩＮ＿Ｄ８まで）と、８つのデータ出力（ＯＵＴ＿Ｄ１からＯＵＴ＿Ｄ８まで）とを有していることが分かる。また、さらに詳細に記載されるように、このＢＬＦＢは、ＰＥＲＭＩＳＳＩＶＥ入力およびＯＶＥＲＩＤＥ入力の如き、データ入力以外の他の入力を有している。図３には、ＢＬＦＢが８つのデータ入力と８つのデータ出力とを有するように例示されているが、他の実施の形態では、いかなる所望の数のデータ入力およびデータ出力が利用されてもよい。さらに、データ入力数とデータ出力数とが同一の数である必要はない。
【００２１】
上記のコンフィギュレーション・プログラムに関連するユーザ・インタフェースを用いて、プログラマーは、一または複数の機能ブロックを設定することが可能である。たとえば、プログラマーは、ＢＬＦＢを、その入力値の論理関数としてデータ出力値を生成するように設定することが可能である。具体的に言えば、プログラマーは、その出力値に対応して特定の論理関数を指定することが可能である。ＢＬＦＢを設定するために、プログラマーは、その機能ブロックに関連するコンフィギュレーション用のウィンドウ、スクリーンなどを表示デバイス70上に表示させてもよい。
【００２２】
図５は、図４のＢＬＦＢ表記150に関連するＢＬＦＢの如きＢＬＦＢを少なくとも部分的に設定すべく用いられ得るマトリクス200の一例を示している。このマトリクス200は、ＢＬＦＢに関連するコンフィギュレーション用のウィンドウ、スクリーンなどの一部として表示されることが可能である。さらに詳細に記載されるように、マトリクス200は、ＢＬＦＢの１つの出力（ＯＵＴ＿１）を設定するメカニズムを備えている。具体的に言えば、プログラマーは、ＢＬＦＢへのデータ入力（ＩＮ＿１，ＩＮ＿２，…，ＩＮ＿８）とＢＬＦＢからのデータ出力（ＯＵＴ＿１，ＯＵＴ＿２，…，ＯＵＴ＿８）との関数として、一または複数の中間結果（ＥＸＰ＿１，ＥＸＰ＿２，ＥＸＰ＿３，ＥＸＰ＿４）を設定することが可能である。他の実施の形態では、出力は、データ入力の関数としてのみ（すなわち、データ出力の関数としてではなく）設定されることが可能である。さらに、プログラマーは、中間結果の関数として出力（ＯＵＴ＿１）を設定することが可能である。ＢＬＦＢの他の出力の各々（ＯＵＴ＿２，ＯＵＴ＿３，…，ＯＵＴ＿８）は、マトリクス200と同一のまたはそれと同等の対応するマトリクスを有している。したがって、プログラマーは、ＯＵＴ＿１に関連して以下で記載する方法と同様の方法で、ＯＵＴ＿２からＯＵＴ＿８までの各々を設定することが可能である。
【００２３】
図５に例示されているように、マトリクス200は複数のセル204を有している。これらの複数のセル204の各列がデータ入力のうちの１つに対応しており、これらの複数のセル204の各行が中間結果のうちの１つに対応している。また、マトリクス200は複数のセル208を有している。これらの複数のセル208の各列がデータ出力のうちの１つに対応しており、これらの複数のセル208の各行が中間結果のうちの１つに対応している。プログラマーは、中間結果をデータ入力とデータ出力との関数として設定するために、コンピュータ（たとえば、ワークステーション18aまたは他のコンピュータ）に関連する、たとえば、マウス、トラックボール、キーボード、キーパッド、タッチスクリーンなどを用いて、その中間結果に対応する行におけるセル204，208にコンフィギュレーション・データを入力することが可能である。たとえば、中間結果（ＥＸＰ＿１）を設定するために、プログラマーは、行224におけるセル204，208にコンフィギュレーション・データを入力することが可能である。
【００２４】
上述の行224におけるセル204，208の各々は、中間結果ＥＸＰ＿１を生成するために用いられる変数（たとえば、ＩＮ＿１，ＩＮ＿２，…，ＩＮ＿８，ＯＵＴ＿１，ＯＵＴ＿２，…，ＯＵＴ＿８）に対応している。セルに入力されるコンフィギュレーション・データは、そのセルに関連する変数が入力として供される複数の論理関数のうちの１つを示すデータを有することが可能である。一例では、コンフィギュレーション・データは、変数が、論理ＡＮＤ関数、論理ＯＲ関数、または論理ＮＯＲ関数に入力として供されるべきか否かを示すことが可能である。１つの実施の形態では、ＢＬＦＢの各出力が、論理ＡＮＤ関数、論理ＯＲ関数、論理ＮＯＲ関数などのうちの一または複数を用いて設定されることが可能である。他の実施の形態では、これらの関数のうちのサブセットのみが用いられることが可能である。さらに他の実施の形態では、論理ＡＮＤ関数、論理ＯＲ関数、または論理ＮＯＲ関数に加えて、または、それらに代えて、他の関数が用いられることが可能である。利用し得る他の関数には、たとえばＮＡＮＤ関数、ＸＯＲ関数などが含まれる。
【００２５】
また、セルに入力されるコンフィギュレーション・データは、論理関数に対して変数が反転入力として供されるべきか否かを示し得るデータを含むことが可能である。セル204，208に入力し得る一組の可能なコンフィギュレーション・データの一例が表１に示されている。
【００２６】
【表１】
2004362561.tif 000003
１つの実施の形態では、表１のデータのうちのいずれかがセル204，208の各々に入力されることが可能である。他の実施の形態では、表１に示されているデータのうちのサブセットのみが、セル204，208のうちの１つ、複数、またはすべてに入力されることが可能である。さらに他の実施の形態では、表１のデータに加えて、または、それらに代えて、表１に示されていない他のデータが、セル204，208のうちの１つ、複数、またはすべてに入力されることが可能である。さらに他の実施の形態では、表１のデータのうちのいずれのデータも、セル204，208のうちの１つ、複数、またはすべてに入力されることはない。
【００２７】
図６Ａは、行224のセル204，208に入力されるコンフィギュレーション・データの一例を示している。マトリクス200の他の部分は分かりやすいように削除されている。変数ＩＮ＿２，ＩＮ＿３，ＩＮ＿４，ＯＵＴ＿１，ＯＵＴ＿８に対応するセルは、これらの変数がＡＮＤ関数の入力値として供されることを示すコンフィギュレーション・データを含んでいる。さらに、変数ＩＮ＿４，ＯＵＴ＿１に対応するセルは、これらの変数が反転されるべきであることを示している。同様に、ＩＮ＿５，ＯＵＴ＿２，ＯＵＴ＿３に対応するセルは、これらの変数がＯＲ関数の入力値として供されること、さらに、変数ＯＵＴ＿２が反転されるべきであることを示すコンフィギュレーション・データを含んでいる。変数ＩＮ＿７，ＩＮ＿８，ＯＵＴ＿４，ＯＵＴ＿５に対応するセルは、これらの変数がＮＯＲ関数の入力値として供されることを示すコンフィギュレーション・データを含んでいる。
【００２８】
１つの実施の形態では、コンフィギュレーション・データにより示されるように、ＡＮＤ関数、ＯＲ関数、およびＮＯＲ関数の出力は、中間結果を生成すべくそれら全体に対してＯＲ演算が実行される。図６Ｂは、図６Ａのコンフィギュレーション・データの一例と等価である論理回路250を示している。具体的に言えば、変数ＩＮ＿２，ＩＮ＿３，ＩＮ＿４，ＯＵＴ＿１，ＯＵＴ＿８は、それらのうちの変数ＩＮ＿４，ＯＵＴ＿１が反転されて、ＡＮＤゲート254に供される。変数ＩＮ＿５，ＯＵＴ＿２，ＯＵＴ＿３は、それらのうちの変数ＯＵＴ＿２が反転されて、ＯＲゲート258に供される。変数ＩＮ＿７，ＩＮ＿８，ＯＵＴ＿４，ＯＵＴ＿５は、ＮＯＲゲート262に供される。さらに、ＡＮＤゲート254、ＯＲゲート258、およびＮＯＲゲート262の出力は、中間結果ＥＸＰ＿１を生成するＯＲゲート266に供される。
【００２９】
図６Ｃは、図６Ａのコンフィギュレーション・データの一例と等価である他の論理回路270の１つの実施の形態を示している。この論理回路270では、変数ＩＮ＿５，ＯＵＴ＿２，ＯＵＴ＿３は、それらのうちの変数ＯＵＴ＿２が反転されて、ＯＲゲート274に供される。また、ＡＮＤゲート254およびＮＯＲゲート262の出力はＯＲゲート274に供される。このＯＲゲート274は中間結果ＥＸＰ＿１を生成する。
【００３０】
上記の実施の形態では、上記の関数の出力値の全体に対してＯＲ演算が実行され中間結果が生成されるが、他の演算も同様に用いてもよい。たとえば、上記の関数の出力値に対してＡＮＤ演算、ＮＯＲ演算、ＮＡＮＤ演算、ＸＯＲ演算などを実行してもよい。１つの実施の形態では、特定の関数が、複数の関数から選択可能であってもよい。たとえば、プログラマーは、マトリクスの特定のセルにコンフィギュレーション・データを入力することにより、または、ウィンドウ、表示スクリーン、メニューなどの如き何らかの他のユーザ・インタフェース・メカニズムを介して関数を選択することにより、該当する関数を選択してもよい。
【００３１】
再び図５を参照して説明する。機能ブロックの入力および／または出力の関数として中間結果ＥＸＰ＿２，ＥＸＰ＿３，ＥＸＰ＿４を設定するために、プログラマーは、これらの中間結果ＥＸＰ＿２，ＥＸＰ＿３，ＥＸＰ＿４に対応するセル204，208にコンフィギュレーション・データを入力することが可能である。これらの中間結果ＥＸＰ＿２，ＥＸＰ＿３，およびＥＸＰ＿４は、中間結果ＥＸＰ＿１に関連して以上で説明した方法と同様の方法で設定されることが可能である。セル204，208に対してなんらのコンフィギュレーション・データも入力されない場合には、そのセルに対応する変数を用いないで、該当する中間結果が生成される。
【００３２】
また、マトリクス200は、セル216を有しており、これらのセル216の各々は、出力ＯＵＴ＿１を生成すべく用いられる変数（たとえば、中間結果ＥＸＰ＿１，ＥＸＰ＿２，ＥＸＰ＿３，ＥＸＰ＿４）に対応する。プログラマーは、コンピュータ（たとえば、ワークステーション18aまたは他のコンピュータ）に関連するたとえばマウス、トラックボール、キーボード、キーパッド、タッチスクリーンなどを用いて、セル216にコンフィギュレーション・データを入力することにより、中間結果の関数として出力ＯＵＴ＿１を設定することが可能である。セル204，208に入力されるコンフィギュレーション・データと同様に、セル216に入力されるコンフィギュレーション・データは、そのセルに関連する変数が入力として供される複数の論理関数のうちの１つを示すデータを含むことが可能である。一例では、コンフィギュレーション・データは、変数が、論理ＡＮＤ関数、論理ＯＲ関数、または論理ＮＯＲ関数に入力として供されるべきかを示すことが可能である。１つの実施の形態では、ＢＬＦＢの各出力が、論理ＡＮＤ関数、論理ＯＲ関数、論理ＮＯＲ関数などのうちの一または複数を用いて設定されることが可能である。他の実施の形態では、これらの関数のうちのサブセットのみが用いられることが可能である。さらに他の実施の形態では、論理ＡＮＤ関数、論理ＯＲ関数、または論理ＮＯＲ関数に加えて、または、それらに代えて、他の関数を用いられることが可能である。また、セル216に入力されるコンフィギュレーション・データは、変数が反転されて論理関数に供されるべきか否かを示すデータを選択的に含むことが可能である。
【００３３】
１つの実施の形態では、表１のデータのうちのいずれかがセル206の各々に入力されることが可能である。他の実施の形態では、表１に示されているデータのうちのサブセットのみが、セル216のうちの１つ、複数、またはすべてに入力されることが可能である。さらに他の実施の形態では、表１のデータに加えて、または、それらに代えて、表１に示されていない他のデータが、セル216のうちの１つ、複数、またはすべてに入力されることが可能である。さらに他の実施の形態では、表１のデータのうちのいずれのデータもセル204，208のうちの１つ、複数、またはすべてに入力されることはない。セル204および／または208への入力に使用可能なコンフィギュレーション・データの選択肢は、セル216への入力に使用可能なコンフィギュレーション・データの選択肢と同一であってもそれと異なっていてもよい。
【００３４】
図７Ａは、マトリクス200のセル216に入力されるコンフィギュレーション・データの一例を示している。マトリクス200の他の部分はわかりやすいように削除されている。変数ＥＸＰ＿１，ＥＸＰ＿２に対応するセル216は、これらの変数がＡＮＤ関数への入力値として供されることを示すコンフィギュレーション・データを含んでいる。さらに、変数ＥＸＰ＿３，ＥＸＰ＿４に対応するセル216は、これらの変数がＯＲ関数の入力値として供されることを示すコンフィギュレーション・データを含んでいる。
【００３５】
１つの実施の形態では、セル216のコンフィギュレーション・データにより示されるように、ＡＮＤ関数、ＯＲ関数、およびＮＯＲ関数の出力は、出力値ＯＵＴ＿１を生成すべくそれら全体に対してＯＲ演算が実行される。図７Ｂは、図７Ａのコンフィギュレーション・データの一例と等価である論理回路290の１つの実施の形態を示している。具体的に言えば、変数ＥＸＰ＿１，ＥＸＰ＿２は、ＡＮＤゲート294に供される。変数ＥＸＰ＿１，ＥＸＰ＿２およびＡＮＤゲート294の出力値は、ＯＲゲート298に供される。このＯＲゲート298は、その結果ＯＵＴ＿１を生成する。以上で説明した中間結果の生成の場合と同様に、ＯＲ関数以外の他の関数（たとえば、ＡＮＤ、ＮＯＲ、ＮＡＮＤ、ＸＯＲなど）を用いてもよい。さらに、複数の関数から特定の関数が選択可能であってもよい。
【００３６】
ここで、図１を参照して説明する。プログラマーが、たとえばワークステーション18aを用いてマトリクス（たとえば、マトリクス200または同等のマトリクス）にコンフィギュレーション・データを入力した後、そのコンフィギュレーション・データは、ワークステーション18aのコンピュータ読み取り可能な媒体に格納されてもよく、および／または他のデバイスに対してネットワーク30を介して伝送されてもよい。たとえば、そのコンフィギュレーション・データは、データベース32、コントローラ12a，14a，16a、Ｉ／Ｏデバイス24、およびフィールド・デバイス22，23のうちの一または複数に対して伝送されてもよい。このコンフィギュレーション・データの格納または伝送の前に、任意選択的に、コンフィギュレーション・データを異なる形式に変換してもよい。
【００３７】
次いで、そのコンフィギュレーション・データに従ってＢＬＦＢを作成および／または設定してもよい。このＢＬＦＢは、ソフトウェア、ハードウェア、ファームウェア、またはソフトウェア、ハードウェア、および／もしくはファームウェアの組み合わせにより実行されてもよい。たとえば、ＢＬＦＢは、コントローラ12a，14a，16aの如きコントローラ、一または複数のフィールド・デバイス22，23などにより実行されてもよい。なお、設定されたＢＬＦＢの実行に関して、図６Ａの等価論理回路250，270，290が説明のために例示されている。機能ブロックの出力値を生成するために実施の形態によっては論理ゲートが用いられている場合があるが、通常、他の技術も用いられる。たとえば、実施の形態の中には、ＢＬＦＢは、ソフトウェアに従って設定されるプロセッサにより、ゲート・アレイ、標準型セル、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、プログラマブル・アレイ論理（ＰＡＬ）、プログラマブル論理アレイ（ＰＬＡ）などのうちの一または複数を含むデバイスの如きプログラマブル論理デバイスなどにより実行されるものもある。
【００３８】
以上で記載されたユーザ・インタフェースの如きユーザ・インタフェースの実施の形態は、たとえばソフトウェア・プログラムに従って設定されるプロセッサにより、全体的にまたは部分的に実行されることが可能である。たとえば、ワークステーション18a，20aまたはなんらかの他のコンピュータは、上記のユーザ・インタフェースを、全体的にまたは部分的に実行することが可能である。ユーザ・インタフェースの実施の形態を実行するソフトウェア・プログラムは、ハードディスク、バッテリ・バックアップ式ＲＡＭ、ＲＯＭ、ＣＤ−ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＶＤ、フラッシュメモリなどの如き有体媒体、もしくはプロセッサに付随するＲＡＭの如きメモリなどに格納されるソフトウェアにより実現されてもよいし、それに代えて、当業者にとって明らかなように、そのプログラムの全部または一部をプロセッサ以外のデバイスにより実行し、ならびに／または、ファームウェアおよび／もしくは専用ハードウェアにより周知の方法で実現されてもよい。
【００３９】
ＢＬＦＢに関連するコンフィギュレーション・データは、ハードディスク、ＲＯＭ、ＣＤ−ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＶＤ、ＦＬＡＳＨメモリなどやプロセッサに付随するメモリの如きコンピュータ読み取り可能な媒体に格納されてもよい。
【００４０】
（コンフィギュレーションのバリエーション）
ＢＬＦＢは、マトリクス（たとえば、マトリクス200、およびＯＵＴ＿２からＯＵＴ＿８に用いられる同様のマトリクス）に入力されるコンフィギュレーション・データに加えてさらに設定されることが可能である。たとえば、ウィンドウ、表示スクリーンなどの如きユーザ・インタフェース・メカニズムは、マウス、トラックボール、キーボード、キーパッド、タッチスクリーンなどを介して更なるコンフィギュレーション・データを入力すべく、プログラマーに対して表示されることが可能である。更なるコンフィギュレーション・データの一例が以下に記載されている。なお、以下で記載するコンフィギュレーションの更なる選択肢のうちの一もしくは複数がさまざまな実施の形態に含まれる場合も有れば、そのうちのどれも含まれない場合もある。
【００４１】
当業者にとって公知であるように、制御システムによっては、論理信号または論理値を「ＢＡＤ」ステータスに設定するように規定している場合がある。したがって、実施の形態によっては、ステータスがＢＡＤである入力信号（たとえば、ＩＮ＿１からＩＮ＿８）を処理するようにＢＬＦＢを設定する場合がある。１つの実施の形態では、ＢＬＦＢは、表２に提供されている選択肢に従って設定されることが可能である。
【００４２】
【表２】
2004362561.tif 000004
機能ブロックの出力値が保持および／または遅延されることが有益である場合がある。１つの実施の形態では、ＯＵＴ＿１からＯＵＴ＿８までのうちの１つ、複数、または全部が、表３に提示されているコンフィギュレーションの選択肢に従って設定されることが可能である。他の実施の形態では、表３に記載されている選択肢のサブセットのみが与えられることが可能である。さらに他の実施の形態では、表３の選択肢のうちの一または複数に加えて、または、それらに代えて、表３に記載されていない他の選択肢が与えられることが可能である。さらに他の実施の形態では、表３の選択肢のうちのいずれも与えられることはない。
【００４３】
【表３】
2004362561.tif 000005
リセットされるまで出力値が保持されたままであるように機能ブロックの出力値を設定する実施の形態においては、出力値をリセットする方法を指定するコンフィギュレーション・データがその出力値に対応するマトリクスに入力されることが可能である。ここで、図５を参照して説明する。一例として、プログラマーは、保持状態の出力値ＯＵＴ＿１をクリアすることに関連するコンフィギュレーション・データをセル216に入力することが可能である。たとえば、プログラマーは、保持状態の出力値ＯＵＴ＿１をクリアするために用いられる中間結果を指定すべく、セル216のうちの一または複数にコンフィギュレーション・データ「Ｃ」を入力することが可能である。１つの実施の形態では、１つを超える数のセル216に「Ｃ」が入力される場合、保持状態の出力値ＯＵＴ＿１をクリアするときを示すべく用いられる値を生成するために、それらのセル216に対応する中間結果全部を対象とするＯＲ演算が実行される。
【００４４】
図８Ａは、マトリクス200のセル216に入力されるコンフィギュレーション・データの一例を示している。マトリクス200の他の部分はわかりやすいように削除されている。変数ＥＸＰ＿１，ＥＸＰ＿２に対応するセル216は、これらの変数がＡＮＤ関数への入力値として供されることを示すコンフィギュレーション・データを含んでいる。さらに、変数ＥＸＰ＿３，ＥＸＰ＿４に対応するセル216は、これらの変数がＯＲ関数の入力値として供されることを示すコンフィギュレーション・データを含んでいる。ＯＲ関数の出力値は、保持状態の出力値をクリアすべく用いられる。以上で説明した中間結果の生成と同様に、ＯＲ関数以外の他の関数（たとえば、ＡＮＤ、ＮＯＲ、ＮＡＮＤ、ＸＯＲなど）が用いられてもよい。さらに、複数の関数からの特定の関数の選択を可能としてもよい。
【００４５】
図８Ｂは、図８Ａのコンフィギュレーション・データの一例と等価である論理回路300の１つの実施の形態を示している。具体的に言えば、変数ＥＸＰ＿１，ＥＸＰ＿２は、ＡＮＤゲート304に供される。ＡＮＤゲート304の出力値は、その結果であるＯＵＴ＿１を生成するラッチ308に供される。この等価論理回路は、たとえば、ＬＡＴＣＨＥＤ出力値として設定されている出力値ＯＵＴ＿１に対応することが可能である。変数ＥＸＰ＿３，ＥＸＰ＿４は、ＯＲゲート312へ供され、このＯＲゲート312の出力値は、ＣＬＥＡＲ入力値として、ラッチ308に供される。
【００４６】
（デバッギング）
再び図５を参照して説明する。実施の形態によっては、マトリクス（たとえば、マトリクス200）がデバッギングの目的にも用いられる場合がある。たとえば、セル212を用いて、変数ＩＮ＿１〜ＩＮ＿８，ＯＵＴ＿１〜ＯＵＴ＿８の値の変化に応じてそれらの中間結果の値を表示することが可能である。具体的に言えば、中間結果ＥＸＰ＿１を表示するためにセル212Aを用い、中間結果ＥＸＰ＿２を表示するためにセル212Bを用い、中間結果ＥＸＰ＿３を表示するためにセル212Cを用い、中間結果ＥＸＰ＿４を表示するためにセル212Dを用いることが可能である。同様に、セル220を用いて、変数ＩＮ＿１〜ＩＮ＿８，ＯＵＴ＿１〜ＯＵＴ＿８，ＥＸＰ＿１〜ＥＸＰ＿４の値の変化に応じてそれらの出力の値を表示することが可能である。視覚的に分かりやすいように、中間結果および／または出力値の生成に用いられないセル、行、および／または列は、任意選択的に、デバッギング中に表示されないことがある。たとえば、中間結果ＥＸＰ＿４に対応するセル204，208にコンフィギュレーション・データが入力されなかった場合、行226および／または列228はデバッギング目的から削除される場合がある。
【００４７】
実施の形態によっては、ＢＬＦＢが、デバッギングの目的のため、中間結果、および／または機能ブロックの出力値ＯＵＴ＿１〜ＯＵＴ＿８を生成するために用いられる場合がある。たとえば、機能ブロック入力値ＩＮ＿１〜ＩＮ＿８として試験データが提示される場合がある。他の例では、試験データに基づいて、機能ブロック入力値ＩＮ＿１〜ＩＮ＿８が、たとえば他の機能ブロックにより生成される場合がある。他の実施の形態では、（たとえば、ワークステーション18a，20aの如きワークステーションにより実行される）ＢＬＦＢシミュレータが、中間結果、および／または機能ブロックの出力値ＯＵＴ＿１〜ＯＵＴ＿８を生成するために用いられる場合がある。
【００４８】
（その他のバリエーション）
ここで、図４を参照して説明する。ＢＬＦＢは、任意選択的に、以上で記載されたデータ入力に加えて、一または複数の他の入力を有することが可能である。たとえば、ＢＬＦＢは、（「許可（ｐｅｒｍｉｓｓｉｖｅ）」入力と呼ばれる）入力を有しており、この入力値がＦＡＬＳＥである場合、ブール論理機能ブロックのすべての出力値がＦＡＬＳＥになる。同様に、ＢＬＦＢは、（「オーバーライド（ｏｖｅｒｒｉｄｅ）」入力と呼ばれる）入力を有しており、この入力が、ＴＲＵＥである場合、ブール論理機能ブロックのすべての出力値がＦＡＬＳＥになる。
【００４９】
以上で記載された実施の形態では、ＢＬＦＢは、１から４の数の中間結果を生成するように構成されることが可能である。言うまでもなく、他の実施の形態では、ＢＬＦＢは、５以上の中間結果を生成するように構成されてもよい。さらに他の実施の形態では、ＢＬＦＢは、中間結果を生成するように構成可能でない場合もある。図９は、図４のＢＬＦＢ表記150に関連するＢＬＦＢの如きＢＬＦＢを少なくとも部分的に設定するために用いられ得るマトリクス400の他の一例を示している。ＢＬＦＢに関連するコンフィギュレーション用のウィンドウ、スクリーンなどの一部として表示され得るマトリクス400は、ＢＬＦＢの１つの出力（ＯＵＴ＿１）を設定するメカニズムを備えている。具体的にいうと、プログラマーは、ＢＬＦＢへのデータ入力（ＩＮ＿１，ＩＮ＿２，…，ＩＮ＿８）と、ＢＬＦＢからのデータ出力（ＯＵＴ＿１，ＯＵＴ＿２，…，ＯＵＴ＿８）との関数として出力ＯＵＴ＿１を設定することが可能である。他の実施の形態では、この出力は、データ入力の関数としてのみ（すなわち、データ出力の関数としてではなく）設定されることが可能である。
【００５０】
マトリクス400は、複数のセル404を有している。各セル404は、データ入力のうちの１つに対応している。また、マトリクス400は、複数のセル408を有している。各セル408は、データ出力のうちの１つに対応している。データ入力値とデータ出力値との関数としてその出力を設定するために、プログラマーは、以上で説明した方法と同様の方法で、セル404，408にコンフィギュレーション・データを入力することが可能である。たとえば、プログラマーは、表１を参照して記載されたデータと同様のデータを入力することが可能である。
【００５１】
実施の形態によっては、ユーザは、ユーザ・インタフェースにおいて、ＢＬＦＢのコンフィギュレーション・データをさまざまな表記方法で表示できる場合がある。たとえば、コンフィギュレーション・データは、ラダー・ダイアグラム表記に変換され、次いで、このラダー・ダイアグラム表記が、たとえばコンピュータの表示スクリーン上に表示されることが可能である。他の例としては、コンフィギュレーション・データは、機能ブロック・ダイアグラム表記（たとえば、論理機能ブロック・ダイアグラム）に変換され、この機能ブロック・ダイアグラム表記がユーザに対して表示されることが可能である。このような変換は、当業者により知られている技術を含むいかなる数の技術を用いて実現されてもよい。
【００５２】
本発明に対して、さまざまな変更を加えることも、他の構成を用いることも可能であるが、特定の実施の形態が、例示を目的として、図面で示され、明細書で詳細に記載されている。しかしながら、これらは、本発明を、開示された特定の形態に限定することを意図したものではなく、添付の請求の範囲により規定される本発明の精神および範疇に該当するすべての変更、他の構成、および均等物を網羅することを意図したものである。
【図面の簡単な説明】
【００５３】
【図１】プロセス・プラントの一例を示すブロック・ダイアグラムである。
【図２】図１に概略式に例示されているワークステーションの一例を示すブロック・ダイアグラムである。
【図３】制御モジュールを示す表示画面の一例である。
【図４】ブール論理機能ブロック表示の一例である。
【図５】ブール論理機能ブロックの設定および／またはデバッグ用のマトリクスの１つの例である。
【図６Ａ】図５のマトリクスに入力されるコンフィギュレーション・データの説明のための一例である。
【図６Ｂ】図６Ａのコンフィギュレーション・データに対応する等価論理回路の１つの実施の形態を示すブロック・ダイアグラムである。
【図６Ｃ】図６Ａのコンフィギュレーション・データに対応する等価論理回路の他の実施の形態を示すブロック・ダイアグラムである。
【図７Ａ】図５のマトリクスに入力されるコンフィギュレーション・データの説明のための他の例である。
【図７Ｂ】図７Ａのコンフィギュレーション・データに対応する等価論理回路の１つの実施の形態を示すブロック・ダイアグラムである。
【図８Ａ】図５のマトリクスに入力されるコンフィギュレーション・データの説明のための他の例である。
【図８Ｂ】図８Ａのコンフィギュレーション・データに対応する等価論理回路の１つの実施の形態を示すブロック・ダイアグラムである。
【図９】ブール論理機能ブロックの設定および／またはデバッグ用のマトリクスの他の例である。
【符号の説明】
【００５４】
10  プロセス・プラント
14，16，18，20  ノード
12a，14a，16a  プロセス・コントローラ
18a，20a  オペレータ・ワークステーション
22，23  フィールド・デバイス
24  Ｉ／Ｏデバイス
30  ネットワーク
31  データベース
50  プロセッサ
54  揮発性メモリ
58  非揮発性メモリ
62  Ｉ／Ｏデバイス
66  アドレス／データバス
70  表示装置
74  ユーザ入力デバイス
100  表示画面
104  制御モジュール
108，110  ブール論理機能ブロック（ＢＬＦＢ）
114，118  機能ブロック
150  表示画像、ＢＬＦＢ表現
200  マトリクス
204，208，404，408  セル
224  行
250，270，290  論理回路
254，294  ＡＮＤゲート
258，266，274，298  ＯＲゲート
262  ＮＯＲゲート
400  マトリクス
【図１】
2004362561.tif 000006
【図２】
2004362561.tif 000007
【図３】
2004362561.tif 000008
【図４】
2004362561.tif 000009
【図５】
2004362561.tif 000010
【図６Ａ】
2004362561.tif 000011
【図６Ｂ】
2004362561.tif 000012
【図６Ｃ】
2004362561.tif 000013
【図７Ａ】
2004362561.tif 000014
【図７Ｂ】
2004362561.tif 000015
【図８Ａ】
2004362561.tif 000016
【図８Ｂ】
2004362561.tif 000017
【図９】
2004362561.tif 000018
【外国語明細書】
2004362561000001.pdf