JPH07505492A - 大域プロセス制御情報システム及び方法 - Google Patents
大域プロセス制御情報システム及び方法Info
- Publication number
- JPH07505492A JPH07505492A JP5517073A JP51707393A JPH07505492A JP H07505492 A JPH07505492 A JP H07505492A JP 5517073 A JP5517073 A JP 5517073A JP 51707393 A JP51707393 A JP 51707393A JP H07505492 A JPH07505492 A JP H07505492A
- Authority
- JP
- Japan
- Prior art keywords
- process control
- color
- data
- node
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S715/00—Data processing: presentation processing of document, operator interface processing, and screen saver display processing
- Y10S715/961—Operator interface with visual structure or function dictated by intended use
- Y10S715/965—Operator interface with visual structure or function dictated by intended use for process control and configuration
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S715/00—Data processing: presentation processing of document, operator interface processing, and screen saver display processing
- Y10S715/961—Operator interface with visual structure or function dictated by intended use
- Y10S715/965—Operator interface with visual structure or function dictated by intended use for process control and configuration
- Y10S715/97—Instrumentation and component modelling, e.g. interactive control panel
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
- Machine Translation (AREA)
- Testing And Monitoring For Control Systems (AREA)
- Digital Computer Display Output (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
大域プロセス制御情報システム及び方法本発明は、一般に、プロセス制御コンピ
ュータシステムに関し、特に、世界中のユーザにより容易に理解されるような方
法でプロセス制御情報の流れを図形で表示するシステム及び方法に関する。
近年、化学薬品、プラスチック及び他の工業資源の生産を自動化し且つ制御する
ためにコンピュータを採用する場合が増加してきている。この点に関して、各プ
ロセスは典型的にはそれ独自の一組の動作上の制約と、入力パラメータと、制御
すべき出力装置とを提示することを理解すべきである。従って、プロセス制御シ
ステムの設計はプロセスに関わる特定の事項を考慮することによって手近に行な
われがちである。このため、プロセス制御機器と、そのプロセスを実行する担当
技術者との対話は一般にプロセスごとに異なる。
加えて、コンピュータ技術は速いペースで開発されてきたし、開発され続けてい
ることを理解すべきである。
このように、1つ以上の場所のプロセス制御システムに対して、関連するプロセ
スが類似するもの又は同じものであっても、多様な異なるコンピュータI\−ド
ウエアプラットフォームやソフトウェアパッケージを採用すること力(−ありう
る。従って、技術者がプロセス制御機器と対するために採用されてい一石機器の
世代と型式によっても異なる。この点で、何ら−かの特定のコンピュータ利用制
御システムにより収集、操作される複雑な情報を表示するソフトウェアの開発に
相当に多くの時間と労力を傾けることになり、この情報を1つの制御システムか
ら次のシステムへ通信する方式の一貫性はほとんどないに等しい。この結果、シ
ステム設計者が費やす時間と、プロセスを制御するために使用される機器をラン
し且つ保守する担当者の訓練時間とによって、生産性は低下する。
従って、本発明の目的は、多種多様なプロセスに容易に適用し得るプロセス制御
情報システム及び方法を提供することである。
本発明の別の目的は、活性情報又はリアルタイム情報の流れを世界中のユーザに
より認識可能な方法により迅速に通信することができるプロセス制御情報システ
ム及び方法を提供することである。
本発明の別の目的は、将来の世代のコンピュータ利用プロセス制御技術、と共に
使用するために適応させることができるプロセス制御情報システム及び方法を提
供するこ、ムである。
本発明の付加的な目的は、複雑なプロセス制御ステートメントを迅速に解釈し且
つ異なるプロセス制御ステートメントを急速に切り替えることができるプロセス
制御情報システム及び方法を提供することである。
本発明の更に別の目的は、異常プロセス条件に応答して簡単に障害追跡し且つ制
御意思決定をスピードアップするプロセス制御情報システム及び方法を提供する
ことである。
上記の目的を達成するために、本発明は、プロセス制御ステートメント又は式の
辞書、構文関係と、プロセスパラメータの値又は状態とを伝達するための一組の
所定の図形記号を提供するプロセス制御表示プログラムを提供する。この点に関
して、それぞれの図形記号は、プロセスパラメータの値又は状態と、プログラム
ステートメント又は式の中のデータロジカル特性とを示すために採用された可変
図形特性又は可変視覚特性を有する。それらの図形記号とその可変図形特性とが
、本質的に、パラメータ値のいずれかを識別するための英数字テキストの使用を
最小限に抑えて、伝達されようとしている情報の瞬時認識を可能にするように設
計されていることは重要である。
従って、本発明による情報システムは、個々のプロセスセンサからのパラメータ
データを特定の図形記号と相関させるために、必要なソフトウェア実現システム
を提供する。情報システムは、選択された図形記号を制御すべき特定のプロセス
に関わる制御論理シーケンスを表わす配列に組み合わせるプログラムを更に含む
。情報システムは、各々の図形記号の可変図形特性がリアルタイムでセンサによ
り受信されるパラメータ値に対応するように、図形記号の配列を表示させるプロ
グラムを更に含む。
本発明の1つの形態では、図形記号の可変図形特性、すなわち、視覚特性は、あ
る種の色を知覚するのが困難である人でも認識し得る色の使用を含む。すなわち
、たとえば、TRUE条件を指示するためにブルーの色を使用し、FALSE条
件を指示するためにオレンジの色を使用した。−貫した一組の図形記号を採用し
且つそれらの図形記号を配列するに際して一貫した一組の規則を適用することに
より、採用されるコンピュータハードウェアプラットフォームとは関係なく、ま
た、ユーザの母国語とは関係なく、どのようなプロセスの状態でも、資格あるあ
らゆるユーザに迅速に伝達できる。
本発明はプロセス制御情報を表示するのには十分に適合しているが、より広い意
味では、多種多様な異なるコンピュータプログラムステートメント又は式の表示
に、本発明を適用しても良い。本発明のプロセス制御表示プログラムの大部分は
、コンピュータ言語とは無関係であった。広範囲に渡る異なるコンピュータ言語
と共に機能するようにプログラムを適合できるであろう。一般に、本発明のプロ
セス制御表示プログラム及び方法はデータロジカル特性の変化を表現することが
できる種類のプロダラム式を表示するのに適していた。
ここで使用する用語「データロジカル」はデータのコンピュータ表現に集中する
データモデリングの一形態を指示するために使用された。従って、データロジカ
ル範囲は、情報をコンピュータメモリ、データ型などと関連した対応するコンピ
ュータ表現にマツピングすることを表わす。データロジカル範囲を、正式の意味
ではデータの構造を実世界に存在しているように表現することと関連するユーザ
指向データモデリングであったインフォロジカル範囲と対比することができる。
ここで使用する「データロジカル特性」は、データロジカル範囲の何らかの特性
又は属性、もしくは、データロジカル範囲と関連を持つ何らかの特性又は属性で
あった。データ値の状態のTRUEからFALSEへの変化はデータロジカル特
性の変化の一例であった。データロジカル特性の変化はインフォロジカル含意を
有していてもよい。たとえば、デジタル変数のデータロジカル特性のTRUEか
らFALSEへの変化は、ある所定の事例では、物理的装置、たとえば、スイッ
チの閉成から開成へとマツピングされても良い。スイッチの状態の変化は、たと
えば、出荷コンテナが積載プラットフォームの所定位置へ移動したというインフ
ォロジカル的な意味を持つことがある。
プロセス制御表示プログラム及び方法は、式を辞書ユニットに解析し且つ辞書ユ
ニットと、辞書ユニット間の構文関係とを記憶する構造を生成する手段又は過程
を含む。データ構造は、プログラム言語の排他的で、徹底した数理記述に基づい
て、−再帰的に構築されるのが好ましかった。実現形態によっ−では、原始言語
の性質に応じて、再帰を使用せずに生成されるものもあるだろう。プログラム及
び方法は、辞書ユニットに対応する記号を構文関係を反映する空間的配列、すな
わち、相互結合ネットワークをもって描き出す手段又は過程をさらに含む。プロ
セス制御表示プログラム及び方法は、記号を描き出す手段又は過程と通信して、
データロジカル特性の変化を表示する手段又は過程を更に採用する。
好ましい実施例においては、データロジカル特性の変化は少なくとも一部の記号
の視覚特性、すなわち、色を変更することによって表示された。このようにして
、データロジカルの流れ又は論理の流れの視覚的外観を描いたのである。現時点
で好ましい実施例によれば、記号及び相互結合ネットワークの視覚特性、すなわ
ち、色を被制御プラント又はプロセスから受信した活性データに従って変化させ
ることができる。
更に特定すれば、プロセス制御表示プログラムは英数字プロセス制御ステートメ
ントの図形表示を生成するのに適合していた。プロセス制御ステートメントは所
定の文法により定義される構文関係でグルーピングされた一組の辞書ユニットか
ら構成され、辞書ユニットの少なくとも1つの部分集合はデータを表現すること
ができる。
プロセス制御表示プログラムは、表示すべきプロセス制御ステートメントを供給
する手段を具備する。このステートメントは1つの式又は完全なステートメント
の一部、1つの完全なステートメント、あるいは、複数のステートメントを含む
プログラム全体であっても良い。
ステートメントアナライザは、コンピュータメモリにデータ構造として記憶され
ていた、表示すべきプロセス制御ステートメントに対応する解析ツリーを生成す
る。
プロセス制御表示プログラムは、図形表示ウィンドウを生成し且つ辞書ユニット
のセットの少なくとも一部を表現するために事前定義済の一組の図形アイコンを
確定する手段を含む。表示生成手段は解析ツリーデータ構造と通信して、事前定
義済の一組の図形アイコンのうち選択されたアイコンを表示ウィンドウの中に、
表示すべきプロセス制御ステートメントを構成する辞書ユニットの構文関係に対
応する空間的関係をもって配置する。プログラムは、表示すべきプロセス制御ス
テートメントの辞書ユニットの少なくとも1つに対応するデータを供給する手段
を更に含む。加えて、プログラムは、表示すべきプロセス制御ステートメントに
より定義される構文関係に応答して、供給されたデータに基づいて、表示ウィン
ドウ内の選択された図形アイコンの視覚特性を確定する評価手段を含む。このよ
うにして、視覚特性に基づいて、第1の条件を第2の条件と区別できるであろう
。
図形を利用する実施例は現時点では好ましいが、プロセス制御表示プログラムの
ある面を、提供される英数字文字セットから選択した文字を使用して英数字プロ
セス制御ステートメントの画像表示を生成するような文字利用システムで実現す
ることは可能である。すなわち、そのような実施例は、英数字プロセス制御ステ
ートメントの画像表示を生成するプロセス制御表示プログラムを提供するであろ
う。プロセス制御ステートメントは所定の文法により定義される構文関係でグル
ーピングされる一組の辞書ユニットから構成され、辞書ユニットの少なくとも1
つの部分集合はデータを表現することができる。
そのような実施例のプロセス制御表示プログラムは、表示すべきプロセス制御ス
テートメントを供給する手段と、表示すべきプロセス制御ステートメントに対応
する記号テーブル、解析ツリー又は他のデータ構造を生成するステートメントア
ナライザとを含むであろう。プログラムは、表示装置に書き込む手段と、辞書ユ
ニットの少なくとも一部を表現する事前定義済の一組の画像記号を確定する手段
とを更に含むであろう。
そのような実施例の表示生成手段は、記号テーブル、解析ツリー又は他のデータ
構造と通信して、事前定義済の一組の画像記号のうち選択された記号を表示装置
に、表示すべきプロセス制御ステートメントを構成する辞書ユニットの辞書関係
又は構文関係に対応する空間的関係をもって書き込むであろう。プログラムは、
表示すべきプロセス制御ステートメントの辞書ユニットの少なくとも1つに対応
して、データを供給する手段を更に含んでも良い。表示すべきプロセス制御ステ
ートメントにより定義される辞書関係又は構文関係に応答して、表示装置におけ
る選択された画像記号を選択的に制御する自動評価手段が設けられた。この選択
的制御は供給されるデータに基づいており、それにより、表示すべき画像記号の
選択時に少なくとも第1の条件を第2の条件と視覚的に区別できるであろう。
プロセス制御表示プログラムは、第1の画像記号の部分集合と、第2の画像記号
の部分集合とを定義する事前定義済の一組の画像記号を確定する手段を更に含ん
でも良い◎自動評価手段は第1の部分集合の選択された画像記号を第2の部分集
合の選択された画像記号と置き換えて、第1の条件を第2の条件と視覚的に区別
させるであろう。プロセス制御表示プログラムの表示生成手段は画像記号を相互
結合ネットワークとして書き込んでも良く、更に、供給されるデータに応答して
、相互結合ネットワークを通るデータロジカルの流れを描き出す手段を具備して
も良い。供給されるデータは動的に変化するデータでも良く、プロセス制御ステ
ートメントはクロックに同期(又は、緩やかに同期)されても良いが、その場合
、自動−評価手段もクロックに同期(又は、緩やかに同期)される。
図1は、本発明を使用し得るシステムの概略ブロック線図であり;
図2は、プロセス制御コンピュータの構成の一例を示すブロック線図であり;
図3は、プロセス制御に有用な種類のプログラムステートメントの例を表わす図
であり;
図4は、表IIIのプログラムリスティングを理解する上で有用な、バスタブを
満たすプロセスを示す図であり:
図5は、プロセス制御表示プログラムの現時点で好ましいグラフィカルユーザイ
ンタフェース(GUI)を示し;
図6は、様々なアナログ値及びデジタル値と、式を表現するための現時点で好ま
しい図形アイコンであり;図78は、図5の現時点で好ましいグラフィカルユー
ザインタフェースのウィンドウの中の図形アイコン表現におけるプロセス制御ス
テートメントの一例を示し;図7bは、動的図形アイコンを使用するプロセス制
御ステートメントの表現の別の例を示し;図8は、AND関係を図形により描き
出す方法を示し;図9は、OR関係を図形により描き出す方法を示し;図10は
、XOR関係を図形により描き出す方法を示し;
図11は、NOT関係を図形により描き出す方法を示し;
図12は、入れ子関係又は大括弧に入れた関係を図形により描き出す方法を示し
;
図138は、OFF時間遅延(TRUEからFALSEに変化するときの遅延)
を示す、ディレィタイマの現時点で好ましい図形表示を示し;
図13bは、ON時間遅延(FALSEからTRUEに変化するときの遅延)を
示す、ディレィタイマの現時点で好ましい図形表示を示し;
図14は、本発明を実施する際に有用な追加の180の図形アイコンを示し;
図158は、メニューバーボタンの使用を実際に表示している図5のグラフィカ
ルユーザインタフェースを示し;
図15bは、プラントとコンビ斗−夕の選択プロセスを実際に表示している図5
のグラフィカルユーザインタフェースを示し:
図15cは、変数選択プロセスを実際に表示している図5のグラフィカルユーザ
インタフェースを示し;図15dは、行番号選択プロセスを実際に表示している
図5のグラフィカルユーザインタフェースを示し二面15eは、用語集機能の使
用を実際に表示している図5のグラフィカルユーザインタフェースを示し;図1
5fは、拡張用語集機能の使用を実際に表示している図5のグラフィカルユーザ
インタフェースを示し二面15gは、先行パイプ機能の使用を実際に表示してい
る図5のグラフィカルユーザインタフェースを示し;図16a及び図16bは、
プロセス制御表示プログラムが構成され、動作する方式を示すフローチャート図
であり;
図17は、プログラムの辞書アナライザモジュール及びパーサモジ°ニールを理
解する上で有用な詳細なフローチャート図であり;
図18は、プロセス制御表示プログラムステートメントの一例をその対応する解
析ツリーと共に示し;図19は、現時点で好ましい解析ツリーデータ構造を示し
:
図20は、プログラムの表示計算モジュールを理解する上で有用な詳細なフロー
チャート図であり;図21a及び図21bは、表示計算モジュールの第1のバス
を実際に表示している図18の解析ツリーを示し;図22は、表示計算モジュー
ルの第2のバスを実際に表示している図18の解析ツリーを示し;図23は、図
22の第2のバスによる境界ボックスの画面でのレイアウトを示す。
図1は、本発明のプロセス制御表示プログラムを共に使用し得るプロセス制御コ
ンピュータシステムの一例を示す。図示したシステムは、102で、少なくとも
1つ、多くの場合にコンピュータ104及び196のような複数のプロセス制御
コンピュータによって制御されたプロセスを示す。従来、コンピュータ104及
び106は、102で制御されているプロセスをコンピュータ104及び106
が制御し且つ監視するときに使用する各種の多様なセンサ、アクチュエータ、弁
、モータ、ヒータ及び他の制御装置を介して、プロセス102と接続していた。
希望に応じて、プロセス制御コンピュータ104及び106を全プロセス102
の異なる一部分に専用のものとすることは可能であり、あるいは、フェイルセー
フ動作のための冗長性を得るように、それらのコンピュータを直列に使用しても
良い。
プロセス制御コンピュータ自体は通信インタフェースサブシステム108及び1
10を介して監視コンピュータ112に接続していた。監視コンピュータは、オ
ペレータが監視コンピュータと対話するためのワークステーション114を含ん
でいても良い。監視コンピュータが収集し且つモニタ116などの表示装置に表
示された情報を観察することに、対話を限定しても良い。あるいは、監視コンピ
ュータに情報を供給するために、オペレータはキーボード118又はマウス11
9などの入力装置を介して対話しても良く、その場合、情報は適切な通信インタ
ーフェースサブシステムを介してプロセス制御コンピュータへ通信されれば良い
。図示しである監視コンピュータ112とワークステーション114とは物理的
に分離しているが、監視コンピュータの機能を適切にプログラムしたワークステ
ーションによって実行することは可能であろう。
技術者に監視コンピュータ及びプロセス制御コンピュータと対話させるための直
観的手段を提供することは容易ではなかった。プロセスを制御し且つ監視する各
種の多様なセンサ、アクチュエータ、弁、モータ、ヒータ及び他の制御装置は物
理的装置であった。それらの物理的装置は電流と電圧によって制御されるか、又
は電流と電圧を発生し、その電流と電圧をプロセス制御コンピュータによりデー
タとして処理するのに適するアナログ値又はデジタル値としてモデル化又は抽象
化していたのである。それらのアナログ値又はデジタル値を処理するために、プ
ロセス制御コンピュータにより複雑なコンピュータプログラムを実行する場合が
多かった。物理的装置を最終的には抽象コンピュータデータとしてモデル化して
いたので、多くの場合、技術者がプラント内でデータのコンピュータ生成表示を
観察し且つプロセスを制御、監視している物理的装置と関連する決定論理と算術
関係において実際に何が起こっているのかを理解することは困難である。プロセ
ス制御プログラムがプロセス制御プログラムステートメントを周期的に、たとえ
ば、1秒に1回の割合で再評価するという事実によって、この問題は一層困難さ
を増した。このため、ステートメントから得られる値は同じ周期をもって変化す
ることもあり、技術者がプロセスの状態を理解することは困難になる。図2は抽
象モデル化の性質をさらに示す。
図2では、プロセス102は各種の多様な物理的装置によって制御、監視されて
いた。産業界では多種多様な物理的装置を使用するが、コンピュータモデル化を
目的として、物理的装置をデータ入力を提供するか又はデータ出力を受信するも
の、あるいはその両方を実行するものとして一般化することができる。一般的に
は、データ入力とデータ出力はアナログ値又はデジタル値のいずれかを供給でき
る。−例を挙げると、プロセス102は、プロセス制御コンピュータ104から
デジタル出力り。
の形態をとるデジタル制御命令を受信するデジタル装置120を採用しても良い
。デジタル装置120は、たとえば、デジタルオン/オフ信号に応答するオン/
オフ弁であっても良いであろう。また、プロセス102は、プロセス制御コンピ
ュータ104にデジタル入力DIとしてデジタルTRUE/FALSE値を供給
するデジタル装置122を含んでも良い。−例を挙げると、デジタル装置122
はドアか開いていたか、又は閉していたかを感知するマイクロスイッチでも良い
。
多くのプロセスはアナログ値とデジタル値を共に含んでいるので、プロセス10
2は、プロセス制御コンピュータ104にアナログ入力AIとしてアナログ値を
提供するアナログ装置124を含んでも良い。アナログ装置124は、たとえば
、測定される温度に従って変化する電圧の電気信号を供給する温度センサでも良
い。プロセス102は、プロセス制御コンピュータ104からアナログ出力AO
として供給されるアナログ信号に応答するアナログ装置126をさらに含んでも
良い。アナログ装置126は、たとえば、供給されるアナログ制御信号に基づい
てバスの温度を調整するヒータの温度制御装置でも良い。
上記のデジタル装置及びアナログ装置は、単に、プロセスを制御し且つ監視する
ために使用される種類の装置の例であるにすぎない。本発明を例示する目的のた
めに、図2では、コンピュータの出力信号に応答する装置と、コンピュータに入
力信号として値を供給する装置とを別個にモデル化しである。また、デジタル装
置をアナログ装置とは別にモデル化しである。実際には、入力能力と出力能力の
双方を採用する装置でも良く、アナログ特性とデジタル特性の双方を含む装置で
も良い。従って、図2の例示とそれに付随する説明は、単に、プロセスに関する
情報をプロセスとプロセス制御コンピュータとの間で通信し得る方法の例示にす
ぎない。
技術者がプロセス制御コンピュータに情報を供給する能力を与えられるべきであ
るならば、プロセス制御コンピュータにデータ入力装置を結合しても良い。デー
タ入力装置は押しボタンスイッチのように単純なものであっても良いが、キーバ
ッド又はキーボード128を設ける場合が多い。システムによってはトラックボ
ール、マウス又はジョイスティック130などのボインティング装置を設けても
良い。多くの場合、この種の入力装置はプロセス制御コンピュータにデジタル信
号を供給するのであるが、アナログ信号を使用しても良い。
プロセス制御コンピュータは、典型的には、ランダムアクセスメモリの形をとる
データ記憶能力を含む。このメモリは、デジタル入力値、デジタル出力値、アナ
ログ入力値及びアナログ出力値をコンピュータメモリに2進数字として記憶でき
る形態に適切に符号化することにより、それらの値を記憶するために使用されて
も良い。多くのコンピュータメモリは整数値を所定のサイズ(記憶場所ごとにア
ーキテクチャの関係上予約されている2進数字の数によって指定される)まで記
憶するように構成されている。デジタル値は1つの整数値をブールTRUE状態
と関連させ且つ別の整数値をブールFALSE状態と関連させることによって表
現されることが多い。固定小数点システムではアナログ値を整数値として直接に
記憶でき、それらの値はスケールファクタを適用することに−より解釈される。
スケーリングされた値とスケールファクタは共に整数値として記憶可能である。
あるいは、浮動小数点システムにお11ては、アナログ値を浮動小数点数として
記憶できる。−その場合、数は仮数と、10の累乗指数とを採用する科学的表記
に類似する方式で表現されていた。この説明中における例は固定小数点表現を使
用する。
物理的記憶であるため、各々の値は、その値をアドレスを参照することによって
アクセスできるようにするために1つのアドレスが割り当てられている1つの記
憶場所に記憶された。−例として、図2は、それらのデジタル値とアナログ値を
記憶し得る一連の順次記憶場所132を概略的に示す。たとえば、Addr#l
と指定されている記憶場所は名前Do (100)により指定されるデジタル出
力値を含んでいるであろう。名前DOは、DOをそのDoアレイの100番目の
要素としてり。
(100)を有する仮想−次元アレイであると考えることができるという概念を
反映している。この点に関して、名前Do (100)をTRUE又はFALS
Eのいずれかであり得るその値の実際の状態と混同すべきではない。
同様に、値の状態TRUE又はFALSEをその状態を表現するために使用され
る2進数字と混同すべきではない。たとえば、プール状態TRUEは物理的には
2進数00000001により表現され、プール状態FALSEは2進数111
11110により表現されるであろう。
あるいは、プール状態を1つの所定のビットの状態によって表現することは可能
であろうが、その場合、2進数のその他のビットを属性などの別の情報を記憶す
るために使用できるであろう。
同様にして、Addr#2はデジタル人力変数DI(100)を含み、Addr
#3はアナログ入力変数AI (100)を含み、Addr#4はアナログ出力
変数AO(100)を含むであろう。上記のデジタル値とアナログ値を既知の記
憶場所又はメモリアドレスに記憶することにより、明らかにプロセス制御コンピ
ュータニよりそれらの値をアクセスするか、又はデータ処理ステップに包含させ
ることができる。
外界(プロセス102又は技術者)との通信のために指定されていた入力値と出
力値に加えて、プロセス制御コンピュータはデータ処理ステップ又はプロセス制
御ステップを実行するに際して別の値を使用することを必要とすることもあるだ
ろう。規約上、初めに(技術者により)割り当てられ、その後も(コンピュータ
によって)変化されなかった値を「定数」と呼んだ。初期割り当ての後に変化し
得る値を「変数」と呼んだ。入力値及び出力値と同様に、定数と変数はデジタル
又はアナログのいずれかであると考えられる。この説明では、デジタル変数とア
ナログ変数にそれぞれDCとACの接頭語を付して名前付けするという名前付は
規約を採用する。デジタル定数とアナログ定数は、それぞれ、DKとAKの接頭
語を付して名前付けされた。変数と定数は入力値及び出力値と同じようにして記
憶された。−例として、順次記憶場所132はAddr#9にアナログAK(1
00)を含み且つAddr#10にデジタル変数DC(100)を含む。たとえ
ば、アナログ定数AK(1oo)はπのスケーリングされた丸め値を記憶し、一
方、デジタル定数DC(100)は弁を開放すべき時点を確定するだめに必要と
されるプール計算の結果を記憶しても良い。
典型的なコンピュータの物理ランダムアクセスメモリ記憶装置は記憶場所の逐次
配列に類似しているが、プロセスによっては、データをマトリクス、すなわち多
次元アレイに配列することにより実行がより容易になった。
たとえば、化学的プロセスは、バッチのサイズ又は他の何らかの所望の特性に応
じて成分の異なる割合のレシピを要求するであろう。この目的に対しては、アレ
イ134のような二次元アレイ、すなわち、ルックアップテーブルも良く適して
いるであろう。アレイは行と列の事前定義済配列から構成されており、所定のプ
ロセスに関する所要の値はその行又は列を識別することによって位置を規定され
ている。他のデジタル定数、デジタル変数、アナログ定数及びアナログ変数と同
様に、アレイからなる値は事前定義済アドレスにある記憶場所に記憶された。こ
の説明では、読者がアレイ値と非アレイ値とを明確に区別できるような名前付は
規約が採用される。デジタルアレイ値には接頭語DRを割り当て、アナロアグア
レイ値には接頭語ARを割り当てた。
ここに記載された説明で採用した規約によれば、たとえば、DI (100)
、DI (101)などのように、同一の接頭辞を持つ変数を互いに区別できる
ようにするために、変数の名前は括弧に入れたID番号を含んでも良い。定数を
最初に使用又は定義するとき、プログラマはそれを初期設定するか、又はそれを
事前定義済の値と等しい値に設定することを望むかもしれない。固定小数点シス
テムでは、値とスケールファクタの双方を与えることにより事前定義済値を割り
当てた。この説明の中で採用した規約によれば、定数を初期設定する値と、適用
可能であればスケールファクタとはID番号と共に括弧の中に入れられても良い
。すなわち、AK (1,200,1000)はアナログ定数に変数名とID番
号AK (1)を割り当て、その値をスケールファクタ1000をもって200
に初期設定する。このようにして宣言し且つ初期設定した後は、速記表記AK
(1)を使用してこの定数を参照することになる。
本発明のプロセス制御表示プログラムを更に良く理解するためには、一般のコン
ピュータ言語構造の基礎を理解しておくことは有用であろう。今日、プロセス制
御のた6に広く使用できる汎用コンピュータ言語はいくつがある。その例として
はFORTRANSBAS I C。
FORTH,C5PAS−CALなトカある。プロセス制御の専用コンピュータ
言語もある。その多くは汎用言語に倣ってモデル化されており、汎用言語の部分
集合または拡張から構成されている場合が多い。本発明のプロセス制御表示プロ
グラムは大半の汎用言語及び専用言語と共に動作するように採用可能である。従
って、プロセス制御のために採用されている一般コンピュータ言語の構造に関す
る以下の説明は単に一例を示すためのものであり、これを添付の請求の範囲に記
載される本発明の範囲の限定としてみなすべきではない。
典型的には、汎用コンピュータ言語では、そのコンピュータ言語の文法規則と構
文規則に準拠して書き込まれている1つまたは複数の「プログラムステートメン
ト」又は「式」に従ってデータを処理し且つプロセス制御手続きを実行していた
。各々のプログラムステートメント又は式は、典型的には、−行又は複数行にわ
たる英数字文字のストリングから構成されている。英数字文字は、通常、語又は
「辞書ユニット」(「記号」ともいう)にまとめられていた。多くの言語におい
て、それらの辞書ユニットは書籍の印刷テキストで言葉がスペースによって分離
されるのとまったく同じようにスペース(空白と呼ばれるときもある)によって
互いに分離されていた。
多くのコンピュータ言語では、一連の基本辞書ユニットから複合辞書ユニット又
は構文グルーピングを構成することができる。「トークン」と呼ばれる基本辞書
ユニットはキーワード、識別子、句読点、定数、変数及び演X子、オペランド並
びに結果などの不可分の辞書ユニットである。構文グルーピングはプログラムス
テートメント、式、宣言、機能定義及び他の言語属性などの分割可能な辞書ユニ
ットである。
一般に、−組の事前定義済有用トークンは初期言語定義によって生成されていた
。たとえば、BASIC言語におけるrPRINTJ トークンは、何らかのデ
ータをコンピュータ表示装置又はモニタに表示させるキーワードであった。たと
えば、「、」トークンはC言語においてプログラムステートメント又は式の終了
を指示するための句読点として使用されていた。同様に、FORTRAN言語に
おけるトークン「GT」、又はトークン「〉」は「より大きい」という比較演算
子を指示するために使用されていた。定数及び変数のような他のトークンはプロ
グラマによって定義された。
キーワード、演算子及び句読点などの事前定義済トークンセットと、ユーデが定
義したトークンとをまとめて「終端記号」と呼ぶ。コンピュータ言語の文法規則
は、「非終端記号」と呼ばれる構文グルーピングを構築するためにそれらの終端
記号の関係をいかにして確定するかを定義する。そのようにして定義した非終端
記号を次に使用して、更に別の非終端記号を定義しても良い。場合によっては記
号を一括した。それを「入れ子にした」という。一般に、入れ子記号は小括弧又
は大括弧の中に入れることにより区切られていた。この説明では、大括弧を使用
して入れ子記号を区切る。
従来より、コンピュータ言語プログラムステートメント又は式自体を、間に「等
価トークン」を挟んで左辺(L値又はLVALと呼ばれるときもある)と、右辺
(R値又はRVALと呼ばれるときもある)とに分解【7ても良い。左辺は、プ
ログラムステートメントの「結果」を表現する。その右辺は演算子(+、−1O
RSAND。
XOR,>、くなど)と、結果の状態を確定するオペランド(変数又は定数など
)とを含んでいても良い。図3はこの関係を示す。図3には、演算式136及び
論理式138という2つの式が示されている。演算式の左辺136Lと右辺13
6Rとを分離しているのは、等しいと「定義される」又は等しく「なる」ことの
符号(r−J )の等価トークン140である。同様に、論理式の左辺138L
と右辺138Rとを分離しているのは条件付きで「向かうJIF等価のトークン
である。また。
図3には英数字文字で書かれた2つの実際の式も示されている。特定すれば、こ
の例で使用した演算式136は。
AC(100) −3*6* [AK (1)+4]であった。この例で使用し
た論理式138 は:DC(100) IF DI (100) ORDI (
101)であった。
プログラムステートメント、式又は他の構文グルーピングの構成で使用されるト
ークンは、言語ごとに異なる場合もある。たとえば、FORTRANにおける演
算子rGTJは、BAS I Cの演算子「〉」とほぼ同義であった。さらに、
いくつかのクラスの記号、特に演算子は全てのコンピュータ言語にかなり共通し
ていたが、ある言語は大半の汎用コンピュータ言語には一般に見られない専用演
算子又は専用の関数、手続き又はサブルーチンを有しているであろう。−例を挙
げると、多くのコンピュータ言語にかなり共通する演算子はコンピュータに加算
、減算、乗算及び除算という基本算術演算を実行させる算術演算子と;コンピュ
ータに2つの算術変数又は定数を比較させる比較演算子と;変数の値を演算式又
は論理式と等しくなるように設定する割り当て演算子とを含む。表1は、以下の
説明の中でそれらの一般に使用される演算子のいくつかを表わすために使用され
る名前付は規約を記載している。表1は、更に、変数及び定数を記述するために
使用される名前付は規約を記載している。
オペランドは一次元データアレイを特徴付け、各アレイは多数の異なる個別要素
を含んでいることを想起する。
このプロセス制御表示プログラムは、汎用コンピュータ言語−1こは見当たらな
い Delay Time、Deviat ion、Terminat ion
及びSimulationなどの専用記号を支援する。プロセス制御コンピュ
ータ言語で有用−であろう専用演算子及び関数があったが、それらについては後
に説明する。
表I
AC[アナログ計算]
DC[デジタル計算]
AI [アナログ入力]
DI [デジタル人力]
AO[アナログ出力]
Do [デジタル出力]
AK [アナログ定数]
DK [デジタル定数]
十 [加算]
−[減算]
* [乗算]
/ [除算]
論理
# [プールNOT]
AND [プールAND]
OR[プールOR]
XOR[プール排他的OR]
GE [以上である]
LT [より小さいコ
LE [以下であるコ
EQ [等しい]
NE [等しくない]
sin [正弦関数コ
tan [正接関数]
integ [積分サブルーチンコ
本発明のプロセス制御表示プログラムは、動的に変化する図形アイコンを使用し
て、従来の英数字プログラムステートメントを表わす方式を提供する。すなわち
、本発明のプロセス制御表示プログラムによれば、図形アイコンと、それらのア
イコンを互いに接続する線、すなわち、「パイプ」の視覚的な特性を変化させる
ことによって、選択された辞書ユニットのリアルタイムの変化につれた値又は状
態を表示できる。辞書ユニットの値又は状態が変化するにつれて、視覚的な特性
は動的にリアルタイムで変化した。そのため、オペレータはプログラムステート
メント又は式の辞書ユニット相互間の演算関係又は論理関係のみならず、任意の
時点で表現されている物理的な値又は状態と、式がその状態にある理由をも容易
に理解することができる。
化学処理や、製造に適用する場合のプロセス制御動作の多くは論理式(図3の論
理式138など)を含む。辞書ユニットの状態がリアルタイムでどのように変化
するかを例示するために、論理式138を考慮することができる。デジタル変数
DC(100)はデジタル入力値DI(100)、あるいはデジタル入力値DI
(101)に従属していた。特定すれば、デジタル入力DI(100)とDI
(101)が共にFALSEである場合には、デジタル変数DC(100)は
値FALSEを割り当てられた。デジタル入力DI (100)又はDr(10
1)のいずれかがTRUEであれば、デジタル変数D C(100) ハT R
U E T: ア? タ。以下(7)表111;Lデジタル変数DC(100)
と、デジタル入力DI(100)及びDI (1o1)とについて起こり得る4
つの状態全てを記載しており、各辞書ユニットの状態ハそれぞれの辞書ユニット
のすぐ下に示されている。
表■
(1) DC(100) IF DI(100) ORDI(101)fals
e
false false
(2) DC(100) IF DI(100) ORDI(101)fals
e
(3) DC(100) IF DI(100) ORDI(101)fals
e true
(4) DC(100) IF DI(100) ORDI(101) rue
上記の表IIの例では、図3の論理式138に対応する論理式を行(1)にはF
ALSE状態で、また、行(2)から(4)にはTRUE状態で示している。そ
れらの式が物理的プロセスとどのように関係しているかを知るために、デジタル
人力1:M(100)は、移動する部品が事前に規定された位置に到達したとき
にTRUEからFALSEに状態を変化させるマイクロスイッチに応答−するも
のとしても良いであろう。同様に、デジタル入力DI (101)は、タンクが
一杯になったときに信号を発生する光学水位セクサに応答するものとしても良い
だろう。デジタル変数−DC(100)は、警報を作動すべきか否かを確定する
ための後の論理式で使用される記憶値であっても良いであろう。
表11の論理式は比較的理解するのが容易であり、多忙なプラント技術者にもた
やすく理解されるであろうが、−全での式がこのように単純であるとは限らない
。−例として、以下の表■は、バスタブを一杯にするという単純、′°思bhy
;、9xy’t*hv;bt=hに7°惇制“°″ユータより使用できる複数の
プログラムステートメン、)′又は数式が6構成8 B 7′2 oグ5.l−
1臆12記賊11いる。表■と関連して図4を参照のこと。
表■
使用するオペランドと演算子のリスト
D○(1) 排水弁信号であった:TRUEは開放、FALSEは閉鎖Do (
2) 熱水弁信号てあった:TRUEは開放、FALSEは閉鎖Do (3)
冷水弁信号であった:TRUEは開放、FALSEは閉鎖AI (100) 温
度測定値であったAI (101) 水位測定値であったAK (1000)
風呂の湯の設定温度であったAK (1001) 風呂の湯の設定水位であった
AK (1002) rはぼ空である」ことを定義するためのバスタブの設定低
水位であった
DI (1) 押されたときにTRUEの値をコンピュータへ送信するボタンで
あった。放すと、ボタンはFALSEの値を送信するDT (1,120,1)
先行ステートメントがTRUEであるときに動作し始め、指示さDT (2,
5,1) れた時間だけ動作し終ると結果変数をTRUEにする個別のタイDT
(3,10,1〕 マであった。タイマの始動後に先行ステートメントがFA
LSEDT (4,5,1) になると、タイマは零に向かって逆方向にカウン
トするステップ及び初期値割り当ての事前定義済の意味5TEP (1) タブ
は空であった
5TEP (2) タブは一杯になろうとしていた5TEP (3) タブは一
杯であった5TEP (4) タブは空になろうとしていた八K(100o)
2ooのスケールで1oo。
AK (1001) 10096のスケールで60%AK (1002) 10
0%0)7.ケールで3%コメント: システムは一度に唯一っの5TEPにあ
り、別の5TEPが特定して選択されるまでその5TEPにとどまる。システム
はブーティングの後に5TEP (1)で始まる。1つの5TEPを選択した後
、その5TEPの変数の値はTRUEであった。
実際のプログラムコード
5TEP(1) IFSTEP(4)ANDAI(101,100)LTAK
(1002,3,100) FORDT (1,120,1)STEP(2)
IFSTEP(1)ANDDI(1)FORDT(2,5,1)STEP (3
) IF 5TEP (2) AND AI (101) GTAK (100
1,60,100) FORDT (3,10,1)STEP(4) rFsT
EP(3)ANDDI(1)FORDT(4,5,1)コメント 開放の条件が
TRUEである場合に限って弁は開放する二そうでない場合には、弁は閉鎖する
。弁の状態は、状態を計算する評価類が終了した後に変化する (Do (2)
のラッチを参照)AC(1,200)−AK (1000,Zoo、200)+
AK (1003,5,200)
AC(2,100)−p、K (1001) +AK (1004,10,10
0)Do(1) IF 5TEP(4)OR5TEP(1)OR(八1 (10
1)GTAC(2))
Do(3)IF 5TEP(2)AND#DO(2)ANDAI(101)LT
AK(1001)
DO(2) IF [5TEP (2)AND Al (101)GTAK (
1005,20,100)AND AI (100)LTAK (1000)]
OR[DO(2)AND AI (100)LT AC(1)AND Al
(101)LTAK (1001)]
従来の表現による英数字プログラムステートメントかを動的に表現するより良い
方式が必要とされた理由は、表■の例から更に容易に認識されるであろう。本プ
ロセス制御表示プログラムは、プログラムステートメント又は式の辞書ユニット
を事前定義された一組の図形アイコンによって表現することにより、この必要を
満たす。アイコンは、ユニットの構文関係を反映するように画面に配列された。
プロセス制御のために使用されるコンピュータ言語Cよ、上記のオペランドと演
算子に加えて、時間の経過を監視するメカニズムをも必要とする。多くのコンピ
ュータシステムは、時間を測定するために使用できる1つ又1よ複数の周期クロ
ック信号を供給する。一般に、周期クロ・ツク信号は、カウンティングルーチン
の状態を変化させて、カウンティングルーチンを所定の開始値からカウントアツ
プさせるか、又は所定の終了値にカウントダウンさせるた−めに使用されていた
。すなわち、カウンティングルーチンは周期クロック信号の増分をカウントする
ことによって時間を測定するのである。一般に、比較演算子(先の表■に挙げた
ような演算子)は時間を測定できるようにするためのカウンティングループを実
現するために使用されていた。
数多くの化学的プロセス及び製造プロセスに対して時間の経過は非常に重要であ
るので、本発明のプロセス制御表示プログラムは、その現時点で好ましい実施例
においては、ディレィタイマと呼ばれる特殊な演算子を表示するように設計され
ていた。ディレィタイマは、事象のタイミングを指定し且つ制御するため速記表
記をプログラマに与えるために、コンピュータ言語の中に組み込まれても良い。
従って、ディレィタイマ演算子を特定の用途の要求に適合するように注文設計さ
れている専用演算子であるとみなしても良い。多くのコンピュータ言語は、その
ような専用演算子を必要に応じて開発し且つ言語に組み込むのを十分に可能にす
るように拡張自在である。
専用演算子を使用するか否かはコンピュータシステム設計者の選択にかかってお
り、そのような専用演算子の性質は極めて多岐にわたっている。そのため、この
説明では、本発明のプロセス制御表示プログラムをいかにして開発し、特定のプ
ロセス制御条件にいかにして適合させることができるかをより明確に例示するた
めに、専用演算子の一例として、ディレィタイマのみを取り上げる。
従って、プロセス制御表示プログラムは、開示するディレィタイマを言語に包含
させるという必要条件に限定されるべきものではなかった。それでもなお、開示
するディレィタイマ演算子は極めて強力であり、プロセス制御システムにおいて
広い範囲で利用される。
現時点で好ましいディレィタイマの実現形態は、アクション又は計算を遅延させ
るために何らかの方策を構じなければならないようなアプリケーションで使用さ
れても良い。デルレイタイマを使用し得るいくつかの事例を挙げると:
1)機器動作の警報監視で起こる通常の物理的遅延に対する方策を構じる。ディ
レィタイマは、ONとOFFの間の遷移の間の動作機器の警報状態認識を遅らせ
るために使用された。たとえば、弁を開放するためにデジタル出力信号を送信し
た場合、プログラミングは通常弁の開放を期待するように書き込まれるであろう
。ディレィタイマは、物理的事象に関わる時間を警報音の前に動かす。
2)偽トリガをフィルタアウトする。機器の偽トリガは電気的雑音によっても起
こり得る。乱流による水位の変動は、水位検出器をコンピュータに対するFUL
L信号とNOT FULL信号との間で交互に変化させるであろう。それらの偽
トリガをフィルタアウトするためにディレィタイマを使用できる。
3)処理時間を測定する。1つの事象が完了した後に、1つのアクションが起こ
ることが必要になる場合がある。
これの−例は、たとえば、1分間にわたって混合が完了したときに限って弁を作
動すること、又は別のステップへ移行することであった。
4)設定された期間についてデジタル出力を真又は偽にするか、あるいは計算を
真又は偽にする。そのような用途の一例は、10秒間にわたって冷却が要求され
たときに30秒ごとに冷水弁を開放すること、又は30秒ごとに制御装置の積分
を計算することであろう。
5)設定された期間の後に変数の変化を計算する。これの−例は、5分ごとにタ
ンク内の水位の降下を計算することであろう。
以上の例から、デジタル事象(ONloFF)が起こり得る前にプリセットされ
た時間遅延を強制するためにディレィタイマを使用しても良いことが理解される
であろう。現時点で好ましいディレィタイマは08時間遅延と、OFF時間遅延
とを提供する独立した手段である。
言い替えれば、ディレィタイマ演算子はOFFからONへの変化をある所定の時
間だけ遅延させると共に、ONからOFFへの変化をそれとは異なる所定の時間
だけ遅延させることができたのである。08時間遅延とOFF時間遅延とは互い
に無関係であるので、遅延機能を働かなくさせるために、いずれか一方を独立し
て0に設定することは可能である。ディレィタイマに使用する構文を以下の0に
示す。
FORDT(1,n、m)
この説明で採用している規約の上では、プログラムステートメント又は式の中で
、語rFORJはディレィタイマDT演算子に先行する。たとえば:Do(11
1) IP [DC(2) AND Do(101) FORDT(15,10
,25)] AND IIALM(187)上記の例において、ディレィタイマ
は一意の要素番号15を割り当てられていた。ON時間遅延は10であった。O
FF時間遅延は25であった。ALM (187)は−意の要素番号187によ
り指定される特定の「警報」を参照する。警報はソフトウェアフラグとして扱わ
れても良く、これはハードウェア警報を告知するために使用されれば良い。
バスタブを一杯にするという上記の例(表■)では、プログラムはいくつかの事
前定義済状態、すなわち「ステップ」に対応するように書き込まれていた。例の
中で、5T−EPSI−4は、それぞれ、(1)タブは空であった; (2)タ
ブは一杯になろうとしていた; (3)タブは一杯であった;及び(4)タブは
空になろうとしていたに対応する。多くの場合、製造動作と製造プロセスをこれ
らのような論理ステップによって定義できる。プロセス制御コンピュータ言語に
、ある任意の時点でプロセスがどの事前定義済状態、すなわち、ステップにある
かを追跡するために使用される特殊な演算子を持たせると有用であることもある
。この概念を例示するために、この説明では、プロセスが存在している状態、す
なわち、ステップを追跡するためにソフトウェアフラグ又は変数としてプログラ
マが使用できる特殊演算子5TEPを採用する。単純な実施例においては、5T
EP演算子は、プロセスが1つの状態に達したときにセットされ、プロセスがそ
の状態から離れたときにクリアされるデジタル変数又はフラグと同様に機能して
も良い。表■の例では、各ステップに関連して1つのプログラムステートメント
があり、このプログラムステートメントは、真であれば、対応するステップを有
効にする(フラグをセットする)。
たとえば、5TEP3 (タブは一杯であった)は、5TEP2 (タブは一杯
になろうとしていた)及びAI(101)が10秒間にわたりAK (1001
)より大きい場合に起こる。ここで挙げた例においては、一度に有効になること
のできるステップは唯一っであると仮定した。従って、5TEP3がTRUE
(タブは一杯であった)であるとき、他の全てのステップ(タブは空であった;
タブは一杯になろうとしていた;タブは空になろうとしていた)はFALSEで
あった。この仮定は、通常、制御中のプロセスを一連の別個に起こるステップの
シーケンスとして記述できる場合に呼び出される。言うまでもなく、複数のシー
ケンスが並行して起こる、たとえば、所定の時点で2つ以上のステップが有効で
あるようなプロセスを考えることも可能であった。ステップをソフトウェアフラ
グとして扱うことにより、本発明はステップが逐次起こらなければならないが又
はステップが並行して起こっても良いかについて制限を課さないのである。
また、5TEP演算子は物理プロセスと、それらのプロセスを制御するために使
用されているプロセス制御プログラムステートメントとの関係を成立させるため
に使用されたことを理解すべきである。この点に関して、5TEP演算子をプロ
グラムステップと混同すべきではない。5TEP演算子は物理プロセスの状態又
は条件と関連していた。プロセスを制御するコンピュータプログラムは多数の計
算ステップ又はデータ処理ステップを実行するであろうが、論理ステップ5TE
Pとデータ処理ステップとの間に1対1の対応がある必要はない〇−例を挙げる
と、バスタブが一杯であると宣言する5TEP(STEP3)は、AI (10
1)がAK (1001)より大きいか否かを判定するために、多数の数値デー
タ処理ステップを含むであろう。一般的には、より大きい演算子を実現するため
にコンピュータが実行するデータ処理ステップは、バスタブが一杯である状態(
STEP3)とは直接に関係していない。以後、この説明を通して、物理プロセ
ス5TEPSを参照するときもあり、アルゴリズムを実行するために必要とされ
るデータ処理ステップを参照するときもある。読者がそれら2つの概念を区別す
るのを助けるために、物理プロセス5TEPと5TEP演算子を全て大文字で書
き表した。データ処理ステップは大文字で書かれていない。
もう1つの有用な特殊演算子は、2つの値の差と第3の値とを比較する、DEV
と書き表される偏差演算子であった。このような演算子は、たとえば、アナログ
入力値が設定点アナログ定数値からある量を超えてはずれた場合に警報を鳴らす
ために使用されても良い。プロセス制御コンピュータ言語の中で、偏差演算子は
2つのアナログ値の差を計算し、その差を絶対値に変換し、次にその絶対値を減
算によって第3のアナログ値と比較するように設けられても良い。その計算の結
果に基づいて、デジタル結果(TRUE/FALSE)が生成される。偏差比較
を実行するための手続きはかなり簡明であるが、この機能を実行するための特殊
DEV演算子の生成はブロセス制御システムのプログラマにとっては非常に便利
であった。
所定のステップの終了を強制し、それにより、プログラムを番号順に次のステッ
プへ移行させると好都合な場合もある。この目的のために、終了機能TERMを
提供しても良い。
場合によっては、ある条件の下で、プログラマがデジタル入力変数又はアナログ
入力変数をシミュレートすると有用であろう。アプリケーションの必要条件に応
じて、いくつかの異なるシミュレーションアルゴリズムを使用して良い。プログ
ラムの試験及び評価を目的として「問題条件」を生成させるために、いくつかの
シミュレーションステートメントに関連する出力に手動操作で介入することによ
りいくつかの変数を制御又は追跡し、且つそのシミュレーションに実際のプロセ
スにおけるのと同様に手動介入に応答させることが有用である場合もある。
本発明はこの種のシミュレーションを処理するように構成されていた。一般的に
言えば、プロセス制御表示プログラムは言語の中で有効であるどのプログラムス
テートメント又は式をも表示することができた。この説明では、シミュレートさ
れたアナログ入力変数とデジタル入力変数をそれぞれ指示するために、A I
S I M及びDISIMという用語を使用した。
プロセス制御表示プログラムの現時点て好ましい実現彫版はグラフィカルユーザ
インタフェース(GUI)を使用する。現時点で好ましい実施例は、(Digi
tal Equipment Corporationがら市販すした)V5.
3バージヨン以降(7)VAX/VMSの下で利用可能なXウィンドウ環境で動
作する。適切な端末は D E Cw i n d o w s を動作させる
VAXstation 又は D E Cw i n d o w s モード
のX端末である。適切なX端末には、DigitalEuipment Cor
porationのVTI300や、オプションのTDEnet ROMを伴う
Tektronix XP 29がある。1024個の水平画素、678個の垂
直画素の最小分解能を持つカラーモニタが好ましかった。
図5は、プログラムをXウィンドウ環境で動作させたときにユーザの画面(すな
わち、表示装置116)に現われる現時点で好ましい図形ウィンドウを示す。X
ウィンドウ環境を熟知している者であれば、図4に示すウィンドウ、すなわち、
画面は水平の上縁部に沿ってメニューバー150を含むことがゎがるであろう。
メニューバーは、所望の機能を呼び出すためにポインティング装置(たとえば、
マウス119)を使用して選択できるボタンの配列を含む。メニューバー150
の下方には、プロセス制御表示プログラムが動的に変化する図形アイコンをペイ
ントする活動ウィンドウ表示領域152があった。
この同じ表示領域はプログラムにより英数字テキストメツセージを提示するため
にも使用された。
画面の水平の下縁部に沿って、追加の英数字テキストメツセージを提示するメツ
セージ領域154があった。
メツセージ領域154の下には、表示領域152の中に示されている画像を水平
方向に再位置決め、すなわち、スクロールするために使用されるスクロールバー
156がある。スクロールバーは、Xウィンドウの正規に備わっている機能であ
った。プログラムは表示される画像がウィンドウ、すなわち、画面の境界を越え
て延出しないように保証するためのアルゴリズムを含んでいるので、プロセス制
御表示プログラムが動作しているときにはスクローリングは通常要求されない。
このアルゴリズムは「隠しバイブアルゴリズム」と呼ばれるが、これについては
以下に詳細に説明する。
プロセス制御表示プログラムは、コンピュータ言語によって定義された辞書ユニ
ット又は記号を表現する事前定義済の一組の図形アイコンを採用する。更に特定
すれば、プロセス制御表示プログラムは、プロセス制御プログラムで使用される
プログラムステートメント又は式を構成するために採用されたトークン及び何ら
かの専用記号の各々を表現する図形アイコンを事前定義している。
現時点で好ましい実施例は、より一般的に使用されるトークン及び専用記号(た
とえば、5TEP、ディレィタイマなど)の大半について、事前定義済図形アイ
コンを有する。それらのアイコンは対応するオペランド、演算子、あるいはサブ
ルーチン又は機能の状態を直観的に記号により理解させるために考案されたもの
である。
一般的に、アイコンはまとまって、プロセスを監視する担当技術者により理解さ
れる1つのテーマを定義すべきである。−例を挙げると、化学処理プラントにお
いては、パイプと弁を一般に採用していた。従って、プロセス制御表示プログラ
ムを化学処理の用途に適応させる場合、パイプと弁を表現する図形記号が好まし
いであろう。
言うまでもな(、プロセス制御表示プログラムを航空機の支援システムを監視す
るために使用すべき場合には、別の図形記号を選択することになるであろう。
コンピュータ論理を表現するための記号としてのパイプと弁の使用を、プラント
内で使用されるであろう物理的なパイプや弁と混同すべきではない。一般的に、
本発明において使用する図形アイコンの「パイプ」及ヒ「弁」と、プラント内に
存在し得る物理的なパイプ及び弁との間に1対1の対応はなかった。
化学処理プラントというテーマに沿って、デジタル変数又はオペランド(DID
C,Do、DKなど)を表わす現時点で好ましい図形アイコンは、図6に示ス「
蝶ネクタイ」記号(160及び162)を使用して描かれているオン/オフ弁の
アイコンであった。本発明の別の面によれば、演算子又はオペランドの異なる条
件又は状態を区別するために、図形アイコンと、そこにつながり、また、そこか
ら出て行く接続線、すなわち、「パイプ」とは視覚的な特性(たとえば、色)を
変えるようになっていた。すなわち、図6では、デジタルオペランド160は視
覚特性の第1の状態で示されているが、デジタルオペランド162は視覚特性の
第2の状態で示されている。
現時点で好ましい実施例は、条件又は状態を区別するために、特定の色を使用す
る。BLUEの色はTRUE又はONの状態又は条件を指示するために使用され
、0RANGEの色はFALSE又はOFFの状態又は条件を指示するために使
用された。プログラムステートメント又は式を構成している辞書ユニット又は記
号のリアルタイムの条件又は状態、あるいは瞬間的な条件又は状態を含めて、そ
れらの辞書ユニット又は記号の論理的関係を言葉ではなく、記号によりオペレー
タに理解させるために、様々な図形アイコンの視覚特性、すなわち、色は好まし
くはリアルタイムで変化するようになっていた。
研究によれば、BLUEと0RANGEの色は多くの技術者により、たとえ色盲
であっても、容易に判別されることがわかっているので、それらの色が現時点で
は好ましい。
BLUEと0RANGEの色に加えて、カラーシステムでは、TRUEでもFA
LSEでもない中間状態を指示するためにGREYの色も使用された。そのよう
な中間状態は、たとえば、故障のある通信回線に接続しているポートのデータを
TRUE又はFALSEと容易には扱えないと推論できるようなこの通信回線を
システムが検出したときに起こるであろう。
現時点で好ましい視覚特性は色であるが、テクスチャや陰影などの他の視覚的属
性も使用できるであろう。更に、カラー表示装置を持たないシステムにおいては
、陰影の異なるグレイを使用してTRUEとFALSEを指示し、白(陰影なし
)を使用して中間状態を指示することが可能である。これを例示するため、この
明細書の図はTRUEを明るいグレイ、FALSEを暗いグレイ、中間状態を白
で示している。
演算式は同様に図6に示されている「卓上計算器」アイコン164により表わさ
れた。卓上計算器アイコンそれ自体は実際の数値を伝達しないが、アイコンをク
リックオンしたときに、その値をメツセージ領域154の中に、又はアイコン自
体に隣接して表示することができる。
多くの場合、アナログオペランドの厳密な値又は条件を知ることは、その値又は
条件を別の値又は条件といかにして比較するかを知ることほど重要ではない。先
に説明した通り、偏差関数DEVはアナログ値の差を比較するために使用された
。そのような比較に関わる現時点で好ましい図形アイコンは、図6に166.1
68及び170で示されている棒グラフアイコンであった。図示するように、棒
グラフは166の完全なりLUEから170の完全な0RANGEまで変化でき
ると共に168のような任意の中間条件をとることができる。表示される相対値
は双方のアナログ値のスケールファクタを自動的に考慮に入れる。DEV関数そ
れ自体は、プール(TRUE/FALSE)値を戻す論理演算子であった。
図形アイコン記号は、関連するアイコンの状態に応じて同じようにBLUEと0
RANGEとの間で色を変えるパイプに似た水平線と垂直線を経て互いに接続し
ている。厳密には、図形アイコンは描かれているプログラムステートメント又は
式に従って接続された。このように、式を構成する辞書ユニットの論理的関係を
図形によって描くのである。更に、色が0RANGEからBLUEへ、また、B
LUEから0RANGEへとリアルタイムで変化するにつれて、プログラムステ
ートメント又は式を通iする論理の流れの抽象概念は容易に理解される。
図78を参照すると、論理式138(先に図3に示し且つ説明した)が、今度は
画面の表示領域に辞書ユニットの論理的関係に対応する空間的関係をもって図形
アイコンの配列として示されている。図形表示は左から右へと読み取られた。こ
のように、オペランドDI (100)又はDI (101)のいずれかがTR
UEであれば、結果DC(100)はTRUEであることが図7aの例示から容
易に理解された。このことは、化学プラント技術者には全く直観的に明らかにな
るであろうし、技術者は流れが左から右へ進行すること、及び結果DC(100
)は弁DI (100)又はDI (101)のいずれかが開いていれば(これ
により、TRUE状態が流れる)、TRUE状態をもって「一杯である」になる
ことを理解するであろう。
図7aの例示と図3の例示とを比較すると、演算子DI (100)及びDI
(101)はプログラムステートメントの右辺138Rを構成し、DC(100
)は左辺、すなわち、結果側138Lを構成することがわがる◎続く例として、
結果DC(100)はTRUEとして表されており、これは入力DI(101)
がTRUEであることの結果として論理的に流れていることがゎがる。
この例では、入力DI (100)はFALSEとして示されているが、プール
論理に従えば、それは結果DC(100)がTRUEであるという結果に影響を
及ぼさない。
先の図78の例では、オペランドと結果との関係を定義するOR関係を暗示して
いた。現時点て好ましい実施例においては、プールOR演算子により関連付けら
れるオペランド(変数、定数など)を垂直に整列させ、結合した。プールAND
演算子により関連付けられるオペランドは水平に整列、結合される。図8から1
2は、プールANDSOR及びXOR演算子、並びにNOT演算子及び入れ子機
能を利用してアイコンの物理レイアウト関係を描き出す現時点で好ましい方式を
示す。後に、図7bで、それらの演算子の使用中のレイアウトを示す更に詳細な
例を提示する。
図8は、AND演算子により読み取るときに2つの図形アイコン又はオブジェク
トを空間的に配列する方式を示す。図示するように、各オブジェクトに関連する
境界ボックス171があり、この境界ボックスは、アイコンの入って来る線と出
て行く線、すなわち、「バイブ」を含めて、アイコンを完全に取り囲んでいる。
そこで、図8にはAとして2つのそのような境界ボックスが示されている。オブ
ジェクト1及びオブジェクト2それぞれのアイコンにかかわる引込み接続線と引
出し接続線は、それぞれの境界ボックスが整列されたとき、Aで示すように、整
列しないことに注意する。
好ましい実施例はAND演算子により関連付けられたオブジェクトを、接合すべ
きオブジェクトの引込み接続線と引出し接続線が水平に整列するように整列させ
る。
このことは図8のBに示されている。すなわち、それぞれの境界ボックスの位置
は、相互接続線を水平に整列させるために必要なオフセットにより:A整されれ
ば良い。
てることにより実現された。図8のCに示すように、蝶ネクタイ記号160は0
1のオフセットを有する。棒グラフ記号166は02のオフセットを有する。オ
フセットは水平の相互接続線から境界ボックスの水平上縁部まで測定された。ま
た、図8のCに示すように、境界ボックスは距離WDをおいて離間していた。各
境界ボックスの位置は、そのボックスの左上角の(xSy)位置によって表わさ
れた。したがって、図8において、オブジェクト1の位置は(Xl、Yl)であ
り、オブジェクト2の位置は(X2、Y2)であった。後の表Vには、関係演算
子(ANDloR,、XORなど)によりグループ分けされるオブジェクトの境
界ボックスの寸法と位置を計算する公式を示す。後の「ソフトウェアの詳細な説
明」の項の1つとして記載されている「表示計算モジュールのパス1」の説明を
参照のこと。
図9は、OR関係を図形によりどのように描き出すかを示す。この場合、Aで示
すオブジェクトをBで示すように垂直に整列させた。それぞれのオブジェクトの
境界ボックスは距離HDをおいて離間していた。左側OR線は双方のオブジェク
トの引込み線を互いに接続するために描かれていることに注意する。Bで示すよ
うに、2つのオブジェクトの境界ボックスはそれぞれの左縁部に沿って垂直に整
列された。オブジェクト1はオブジェクト2より狭い幅W1を有するので、図示
するように、2つのオブジェクトの結果として出て行く線を右側OR線と接合さ
せるために、オブジェクト1から出て行く引出し線に子延長線を追加しなければ
ならない。
図10はXORオブジェクトを示す。図示するように、2つのXOR演算子によ
って結合されるオブジェクトをOR演算子の場合と同様に垂直に配列させた。加
えて、複合図にXORオブジェクトを追加した。XORオブジェクトの一部は、
(XS、Y)の位置にあるオブジェクトの境界ボックスの内側に描かれているこ
とに注意する。
このように、XORオブジェクトは複合境界ボックスを寸法WLに等しく水平方
向に拡張させる結果を生じさせる。
図11は、NOTオブジェクトをどのように描き出すかを示す。図示する通り、
NOTボツクスはそれが包囲するオブジェクトの境界ボックスの周囲に追加され
ている。NOTボックス自体が引込み線と、引出し線とを有する。従って、(子
オブジェクトとNOTボ・ノクスを含む)複合オブジェクトの境界ボックスを水
平方向に延長して、NOTボックスの引込みと引出し線の長さに対応させた。
図12は、入れ子関係又は、大括弧に入れる関係をどのように表わすかを示す。
本質的には、1つノオフシェクト又は一群のオブジェクトを、寸法WDLと寸法
WDRの和だけ水平方向に延長させたより大き0境界ボツクスの中に位置決めし
た。図12では大括弧に入れた関係又は、入れ子関係の中に1つのオブジェクト
を示したが、実際には、プログラムステートメント又は式を実行するにつれて演
算を実行して行く優先順位を制御するため1;、多数のオブジェクトを一括する
ように大括弧関係、又(よ入れ子関係を使用した。
現時点で好ましいディレィタイマアイコンを図138及び図13bに示す。図1
38には、OFF時間を遅延させるシーケンスを表わすための一連の4つのディ
レィタイマアイコンを示す。図138を参照すると、現時点で好ましいディレィ
タイマアイコンは「)くイチャート」円172から形成されている。
図13aのシーケンスは状態Aにより指定されて(する左から始まる。状態Aで
は、円172はTRUE又1よONを表現するBLUE (明るいグレイ)であ
った。状態B及びCにおいては、円172は徐々に0RANGE(暗いグレイ)
へと変化する。この円は、FALSE又はOFFを表現する完全な0RANGE
になるまで時計回り方向に徐々に変化するパイチャートとして見られたO状gD
で示すように、ディレィタイマが時間切れになったとき、円の全体は0RANG
E色に変化し終って(する。
ディレィタイマを通る論理の流れは円の色によって影響を受けた。図13aの状
態A、B及びCにお(1て、円1よTRUE又はON状態を表現する。状態りの
みで、円はFALSE又はOFF状態に変化している。論理の流れの類推によれ
ば、ディレィタイマが状態ASB及びCにある間に、TRUE又はON状態は図
8のディレィタイマを通って流れるのである。論理の流れが遮断される、すなわ
ち、FALSE又はOFF状態に切り替わるのは、状態りに達したときだけであ
る。
図13bは、FALSE又はOFF状態からTRUE又はON状態に向かう逆方
向のシーケンスにおけるディレィタイマを表わす。図13bに示す通り、円パイ
チャートは逆方向に回転している(状態B及びCを参照)。
円は完全にTRUEに変わる(状態りを参照)までFALSE又はOFFを指示
し続けている。言い換えれば、図13bのディレィタイマは、状態りでタイマが
時間切れとなるまで論理の流れを阻止する。
円が状態を変える速度は、所定のディレィタイマのON時間遅延とOFF時間遅
延を確定する整数値によって決定された。図131及び図13bを参照すると、
OFF時間遅延整数は円パイチャートの時計回りの回転を制御する(図13a)
;ON時間遅延は円パイチャートの反時計回りの回転を制御する(図13b)。
それらの整数は異なっていても良いので、ディレィタイマは異なるOFF時間遅
延とON時間遅延を与えることもある。
図14はン現時点で好ましい実施例で有用であった若干の追加図形アイコンを示
す。ひし形のステップアイコン176及び178はFALSE状態と、TRUE
状態をそれぞれ示す。多くの物理プロセスは、たとえば、タンクを空にする、タ
ンクを洗浄する、反応物質を混合するなどの物理プロセスrsTEPsJによっ
て記述されていたことが思い起こされる。プログラマは、それらのrsTEPs
Jを表現するためのソフトウェア状態を定義する(たとえば、データ構造の中で
属性を設定する)ことにより、これを考慮しながらプロセス制御プログラムを書
き込む。
演算子を表現するための事前定義済図形アイコンが存在していない場合(たとえ
ば、稀にしか使用されないサブルーチンの場合)に対処するために、CALLア
イコン180が設けられた。CALLアイコンは、プログラムの流れが呼び出さ
れたサブルーチン又は機能に向かって誘導、すなわち、経路指定されていること
を単純に指示する。呼び出されたサブルーチン又は機能の名前はCALLアイコ
ンの上に英数字文字で書き表わされた。
図14には、積分機能の英数学名、INTEGが示されている。
もう1つの専用アイコンは隠しパイプアイコン182であった。以下に更に詳細
に説明するが、現時点で好ましい実施例は、可能であれば、切り捨てることなく
プログラムステートメント又は式の全体を画面に表示するように書かれている。
現時点で好ましい実施例では、プログラムステートメントの複雑さとは関係なく
、アイコンのサイズは一定のままである。従って、場合によっては、複雑なプロ
グラムステートメントを全て表示すると、その表示の一部が表示ウィンドウの境
界を越えて延出してしまうであろう。画像を見るためにユーザに前後にスクロー
ルすることを要求するのではなく、隠しパイプアルゴリズムを使用して表示画像
の複雑さを軽減させた。これは、論理的に関連するアイコン、すなわち、入れ子
になっている一部のアイコンを1つの隠しパイプアイコン182と置き換えるこ
とにより寒行された。このように、隠しバイブアイコンはその下に、より複雑な
関係を表現する記号、すなわち、隠し記号として使用されたのである。隠された
関係を見るときには、ユーザは問題の隠しパイプアイコンをクリックオン、すな
わち、選択するだけで良く、そこで、プログラムは隠しアイコンと置き換えられ
ていた演算子を表示する。
上述のアイコンを使用すると、広範囲にわたる異なるプログラムステートメント
を図形によって描き出す、すなわち、レンダリングすることができる。−例を挙
げると、下記のプログラムステートメントは図7bの表示領域152に図形によ
り描かれていた。
5TEP(417) IF 5TEP(415) OR5TEP(416) A
ND[Al(434) LT AK(417,400,1000) AND A
I(435) LTAK(417) AND AC(430) LT AX(4
17) ORDM(417) OR[5DI(427) AND Do(427
) FORDT(3427,5,2)]]例示のために、5TEP (415)
番よTRUE、5TEP(416)はFALSEであり、デジタル変数DM(4
17)jiFALsEであり且つデジタル変数り。
(427)はTRUEであると仮定する。更:こ、デジタル変数DOT (42
7)はNOT TRUEであり且つAI(434)はAP(417)より小さく
;Al(435)はAP(417)より小さくなく (NOT)。
且つAC(430)はAP(417)より小さく為と仮定する。これらの仮定を
ふまえて、図7bを参照する。そノ図カラ結果、スナワチ、LVALSSTEP
(417)はFALSEであることがわかり、その理由も理解できる。アナロ
グ変数A I (435) ハフす。り変数A P(417)より小さくない(
NOT)ので、TRUE論理は最上部の分岐を通って流れること力(できな%s
、デジタル変数DM(417)はFALSEであったので、TRUE論理の流れ
は中央の分岐を通って進行する必要がない。最後に、TRUE論理i;!デジタ
ル変数り。
(427)から利用可能であったが、ディレィタイマDT (3427)はまだ
時間切れ1こなって0な(1゜この例の変数がいずれも変化しないならば、最終
的1こ(よディレィタイマDT (3427)は時間切れとなり、TRUE論理
は結果5TEP (417)へ流れること:こなる。
以上、動的に変化するアイコンの基礎を理解したので、メニューバーボタンの更
に詳細な説明を提示する。図15aを参照すると、現時点で好ましいメニューバ
ーは、オペレータがプロセス制御表示プログラムと様々な方法で対話できるよう
にするためにクリックオン、すなわち、選択することができるいくつかのボタン
を有する。これは、選択したボタンの上にマウスカーソル210を配置し、次に
、そのマウスボタンを押す、すなわち、「クリックオン」することによって実行
された。ボタン機能のうちいくつかは極めて一般的なものである。たとえば、ヘ
ルプボタン200はプログラムのラン中に画面上ヘルプを表示するために選択さ
れれば良い。出口ボタン202は、プロセス制御表示プログラムを終了させ、そ
のウィンドウを表示装置から除去するために使用された。
ユーザが動的に変化するアイコンと共に表示することを希望する厳密なプログラ
ムステートメントを選択できるようにするるために、いくつかの他のアイコンが
使用された。大型のプロセス制御システムでは、技術者は特定のプラントで特定
のプロセス制御コンピュータにおいてラン中である特定のプログラムステートメ
ントを監視することを望む場合がある。たとえば、図1で説明したシステムは2
つのプロセス制御コンピュータ104及び106を伴って、単一のプロセスを実
行する単一のプラントを表わしていた。より大きなシステムは、おそらくは様々
な場所に、いくつかのプラントを有し、それぞれのプラントが数多くのプロセス
とプロセス制御コンピュータを備えているであろう。
技術者にどのプラントか、及びプラント内のどのプロセス制御コンピュータかを
選択させるために、コンピュータ選択ボタン204が設けられた。このボタンを
クリックオン、すなわち、選択すると、所望のプラントとプロセス制御プログラ
ムを選択するためのプルダウンメニューがユーザに提示される。このプルダウン
メニューを図15bに示す。現時点で好ましい実施例では、プルダウンメニュー
は実際にはプラント選択メニュー206及びコンピュータ選択メニュー208と
いう一対のプルダウンメニューであった。従って、コンピュータ選択ボタン20
4によって、技術者は、プルダウンメニューから適切な選択肢を選択するだけで
、どのようなプラントでも、又、そのプラントの中のどのようなプロセス制御コ
ンピュータでも選択できるのである。−例として、図15bにおいては、プラン
ト3が選択されており、ユーザのカーソル210はメニュー108からModD
と識別されているプロセス制御コンピュータを選択している。ユーザが所望のプ
ラントとコンピュータの選択をクリックオン、すなわち、選択したならば、ユー
ザの選択肢は画面の右上角のデータフィールド212及び214に表示された。
時によって、重大なプロセスを2つ以上の冗長プロセス制御コンピュータにより
制御することがある。たとえば、先の例において、ModDと名付けられた、選
択されたコンピュータは実際には冗長性をもって(並行して又は逐次)動作する
2つのコンピュータを含んでいるかもしれない。表示のために一部の冗長コンピ
ュータのうちどれを使用すべきかを技術者が選択できるようにするために、図1
58に示すように冗長コンピュータ選択ボタン216が設けられた。それら一群
の冗長コンピュータのそれぞれを一意性をもって識別するに際しては、単純な名
前又は文字を使用でき、その時点で選択した名前はボタン216それ自体に現れ
る。設けられた冗長コンピュータが2つだけであれば、ボタン216はいずれか
一方を交互に選択する単純なトグルスイッチであって良い。3つ以上のコンピュ
ータが設けられた場合には、ボタン216によりプルダウン選択メニューを呼び
出すことができる。
所望のプラントとコンピュータを選択し、且つ一部の冗長コンピュータの中でユ
ーザが関心を持っているのはどれであるのかを識別した後、メニューバー150
の残りのボタンを使用して、表示すべき特定のプログラムステートメント又は式
を選択するるいくつかの異なる方法を技術者に提示する。オペランド選択ボタン
218 を選択することにより、専用オペランド、警報、終端及びシミュレーシ
ョンを含めて、可能なあらゆるデジタルオペランドとアナログオペランドを列挙
するプルダウンメニューが与えられた。これを図15cに示す。ユーザは、まず
、所望のオペランドの総称名を選択し、続いて、選択を一意性をもって識別する
ために必要な適切な数値を選択する。たとえば、ユーザが計算されたデジタル値
DC(100)を選択することを希望した場合には、図示されているプルダウン
メニューを出現させるためにボタン218を選択する。次に、変数の名前DCを
選択し、続いて、数字1.0.0を選択するが、それらの数字はキーバッドアイ
コンをクリックオンするか、又はキーボード118の実際のキーバッドを使用す
ることにより入力された。
ディフォルト時には、プログラムは選択されたオペランド又は変数が最前に計算
されたときのステートメントを表示し、計算されていなければ、最初にそのオペ
ランド又は変数が使用されたときのステートメントを表示する。ユーザは、「L
inesJボタン219(図15a及び図15dに示す)を使用することにより
これを変更しても良い。Linesボタンを使用して、ユーザは変数が定義又は
計算又は使用されたどのようなプログラムステートメント又は式でも選択できる
。主メニューバーから[Lines]ボタンを選択したとき、計算された変数(
CALC220)又は使用された変数(USED222)のいずれか一方を選択
するオプションをユーザに提示する2項目プルダウンメニューが現われる。選択
肢USEDを選択すると、現在変数が使用された全ての行番号を列挙したラジオ
ボタンメニューが現わレル。ラジオボタンメニューから行番号の1つを選択する
ことにより、選択した行の図形表現が自動的に表示される。
CALCオプション220を選択したときには、現在変数が計算された全ての行
番号を列挙した同様のラジオボタンメニューが現われる。そのメニューの行番号
の1つを選択するどとにより、選択した行の図形表現が自動的に表示された。こ
の例では、ユーザは変数が最初に使用されたときのステートメントをラジオボタ
ンマウス223を介して選択している。
図形表現が表示されたならば、ユーザはその表示を構成するどのオブジェクトで
もクリックオンでき、その結果、新たに選択されたオブジェクトが計算されたと
きのプログラムステートメントを表現する新たな表示が現われる。メニューバー
を使用して1つの変数を選択するか、又はその時点で表示されているステートメ
ントの中で1つのオブジェクトを選択するかのいずれかによって、新たな表示を
生成したとき、システムは「最後に計算された」ステートメントに自動的にディ
フォルトする。
CALCボタン220の下に見えるラジオボタンメニューは、その他のラジオボ
タンメニューとは異なる色で現われることにより、この選択を指示している。
メニューバーは、表示された変数に関する情報を更に与える英数字テキスト情報
の表示を要求するために選択できる、用語集ボタン230及び拡張用語集ボタン
232という一対のボタンを更に含む。図15aを参照。
多くの場合、プログラマは1つの変数に関するコメント又は説明資料を含める。
表■の例では、オペランドのリストはそれぞれの変数と、どの論理状態(TRU
E/FALSE)がどの物理的条件(たとえば、開/閉)に対応しているかとい
うことについてのテキストによる記述を含んでいた。このテキスト情報、又は他
の類似する情報を技術者によるアクセスに備えてファイルの中に含めることがで
きるであろう。そのファイルはプログラムステートメント変数の「用語集」を構
成するであろう。
複雑なシステムの中には、ユーザの画面に表示される可能性のある大量の情報が
存在するものもある。この情報を編成し且つユーザに対してより容易にアクセス
できるようにする手段として、階層テーブル又はアウトラインの形態を取る「拡
張用語集」を構成しても良い。このようにして、技術者にとって有用であると思
われるシステムに関する情報をレベルと、サブレベル(たとえば、アウトライン
の形態)で配列した。アウトライン形態を使用することにより、技術者は関心を
持っている詳細のレベルを選択できる。この方式によれば、ある情報を選択され
たファシリティ又はパスワードレベルで限定するか又はオペレータから隠すこと
もできる。
現時点で好ましい実施例は、用語集情報と拡張用語集情報の双方へのアクセスを
可能にするように適合されていた。用語集ボタンを選択することにより、選択さ
れたプログラムステートメントに関わる各変数の名前に隣接して、ポツプアップ
ウィンドウが現われる。このように、関連する全てのオペランド又は変数を列挙
したテーブルが対応する用語集エントリと並んでユーザに提示された。
これを図15eに示す。用語集を使用することにより、ユーザは選択された変数
が関心変数であるか否かを容易に判定できる。現時点で好ましい実施例において
は、用語集は234で示したウィンドウ画面の事前に規定された部分に表示され
た。ウィンドウタイトル行も現在表示中である変数の用語集テキストを表示して
良い。希望に応じて、マウスカーソルをプログラムステートメントの特定の変数
に関わるアイコンの上、又はポツプアップメニューテキストストリングの中の変
数名の上に移動又は位置決めしたときに、用語集が自動的に現われるようにする
ことが可能である。
拡張用語集ボタン232も同様に動作する。拡張用語集ボタンを選択したとき、
ユーザには、まず、そのユーザに対して利用可能である拡張用語集の各階層レベ
ルに対応するプルダウン番号付きリストが提示された。ユーザは、適切な番号を
クリックオンすることによって所望の拡張用語集レベルを選択する。この結果、
選択された変数に隣接して、拡張用語集ウィンドウが現われる。好ましい実施例
では、拡張用語集ポツプアウトウィンドウに複数行のテキスト情報を表示するこ
とができる。図15fを参照のこと。図15fでは、拡張用語集ポツプアウトウ
ィンドウを236で示しである。
ユーザは、頻繁に、全プロセスの問題の部分の制御下にどのプログラムステート
メントが入っているかを場所指定するために、関連するプログラムステートメン
トをバックトラッキングするか、又は前進しながら、表示のスレッド、すなわち
、シーケンスをたどることを望む。
これは、主メニューバーの先行パイプボタン224を選択することにより実行さ
れると好都合であろう。図15gを参照。先行バイブボタンを押すと、ボタンの
下に、最後に表示された所定の数の変数名を列挙したプルダウンメニューが現わ
れる。ユーザは最近に表示されたプログラムステートメントを表示すべく再び選
択することを望む場合が多いので、先行バイブボタンは非常に便利である。コン
ピュータ選択ボタン204を介して別のコンピュータを選択したとき、先行パイ
プリストはリセット又はクリアされる。
以上、現時点で好ましいグラフィカルユーザインタフェース及びメニューバーの
基本的な要素を説明したので、次に、本発明のプログラムにより可能になったグ
ラフィックモードでプログラムステートメントを選択、表示するためにシステム
をどのように使用できるがという点について一例を挙げる。
使用中、ユーザには、まず、図15aに示したような画面が提示された。ユーザ
は最初にコンピュータ選択ボタン204をクリックオンして、プルダウンメニュ
ー206を出現させるであろう。図15bを参照。選択リスト206に沿ってマ
ウスカーソルをプルダウンすることにより所望のプラントを選択できる。図15
bでは、プラント3が選択されている。カーソルを所望のプラントの上に位置決
めすると、コンピュータ選択サイドメニュー208が現われる。マウスボタンを
押している限り、コンピュータ選択サイドメニューとプラント選択メニューは画
面に留まる。ユーザはマウスボタンを押しながらマウスカーソルを右へ、続いて
下方へドラッグして、所望のコンピュータを選択する。図15bの例では、「M
OD DJと名付けられたコンピュータが選択されている。所望のコンピュータ
を選択した後にマウスボタンを離すことにより、2つのメニュー206及び20
8は消え、ユーザによるプラントとコンピュータの選択は有効になった。その時
点でのプラントとコンピュータの選択は右上角のデータフィールド212及び2
14に表示された。
次に、ユーザは、おそらく、表示すべきプログラムステートメントを選択するこ
とを望むであろう。一般に、ユーザは特定の変数と関連するプログラムステート
メントを表示することに関心を持つ。この選択は、オペランド選択ボタン218
を選択して、変数のプルダウンメニューをリスティングすることにより実行され
た。図15Cを参照のこと。一般に使用されるデジタル変数及びアナログ変数に
加えて、ユーザは警報オペランド(ALM) 、5TEPオペランド、終端オペ
ランド(TERM)並びにアナログシミュレーションオペランド及びデジタルシ
ミュレーシジンオペランド(AISIM、DISIM)をも選択できる。選択を
明示させるために、ユーザはプルダウンメニュー240から所望の変数、オペラ
ンド又は演算子を選択するだけではなく、その変数、オペランド又は演算子に名
前付けする数字をも選択しなければならない。これは、ポツプアウト計算器キー
バッド242で適切な数を入力することにより実行された。
計算器キーバッドは数字0−9の各々に対応するキーと、選択した数をクリア又
は入力するためのキーとを含む。
所望の変数を選択し終わると、プロセス制御表示プログラムはプログラムステー
トメントの図形表現を表示できる状態になった。言うまでもなく、選択した値を
いくつかの異なるプログラムステートメントの中で使用し、計算することは可能
であった。現時点で好ましい実施例はディフォルトして、変数が最後に計算され
たときのプログラムステートメントを表示し、計算されていなければ、変数が最
初に使用されたときのプログラムステートメントを表示する。適正なプログラム
ステートメントを確実に観察するために、ユーザは「LinesJボタン219
を選択することができる。図15dを参照。
たとえば、冗長コンピュータを逐次使用している場合、冗長コンピュータ選択ボ
タン216(図15a)を前後にトグルして、冗長コンピュータにより実際に実
現されているように同じプログラムステートメントを比較することができる。こ
れらすべての例において、「F」コンピュータが選択されている。コンピュータ
選択ボタン216のクリックオンによって、たとえば、選択をrDJコンピュー
タに変更することもあるだろう。通常、冗長コンピュータが同期をはずれていな
いことを保証するために多数の予防手段が実現されるであろうが、複数対又は複
数群の冗長コンピュータの間で急速にトグルする能力は障害解析のための便利な
ツールであるといえる。
希望に応じて、複数対の冗長コンピュータを画面に同時に表示するように、プロ
セス制御表示プログラムを実現することは可能であろう。
その時点で表示されている変数の用語集は、画面の右上角に位置する専用用語集
ウィンドウ234の中に自動的に現われる。図15eを参照。特定すれば、その
時点で表示されている変数の用語集はウィンドウのタイトル行に現われる。ウィ
ンドウの中に追加の4行分の用語集を表示できる。これは、ユーザが図形により
レンダリングされるプログラムステートメントを構成するオブジェクトの1つに
マウスを位置決めしたときに起こる。また、グラフィカルレンダリングに加えて
英数字情報を要求するアナログ変数などのいくつかの変数を伴って現われるであ
ろうポツプアップメニューテキストの上にユーザがマウスを位置決めしたときに
もこれは起こる。現時点では4行の用語集ウィンドウが好ましいが、用語集ウィ
ンドウのサイズと位置は記号に応じて変更可能であろう。
5行以上の情報を、一度に4行ずつ、選択的に表示させるために、用語集ウィン
ドウはスクローリング可能なウィンドウであるのが好ましかった。
拡張用語集は、ユーザが拡張用語集ボタン232を選択したときに、画面の右下
角に位置する拡張用語集ウィンドウ236に現われる。図15fを参照。先に説
明した通り、拡張用語集ボタンを押すと、所要のレベルの拡張用語集を選択でき
るようにするプルダウンメニューがユーザに提示される。
図16a及び図16bは、プロセス制御表示プログラムを構成する方式の全体を
示す図である。特定すれば、図16a−16bは、プログラムステートメント又
は式を動的に更新される図形アイコン表示に変換する方式を示すのである。ステ
ップ300 から始まって、プログラムはユーザの人力を処理し、それにより、
表示すべき所望のプログラムステートメントを選択した。先に説明したように、
ユーザは所望のプラントとプロセス制御コンピュータを選択し、次に、ユーザが
表示することを望むオペランド又は変数を選択する。そのオペランド又は変数が
いくつかのプログラムステートメントの中に現われる場合、ユーザはどのプログ
ラムステートメントを表示すべきかを選択すれば良い。
現時点で好ましい実施例はユーザの入力に基づいて所望のプログラムステートメ
ントを取り出すが、表示すべきステートメントを指定するために別のプログラム
を採用することも可能であった。これはステップ302に示されている。別のプ
ログラムは、所要のオペランド仕様をユーザ入力を処理する同じメツセージスト
リームに導入することにより、そのオペランド仕様を提供できるであろう。その
ようにして、外部プログラムはオペランド仕様を提供するためにユーザ入力をシ
ミュレートすることができる。これは、それ自体が従来の切替え技法又はオーバ
レイ技法によって現在のプロセス制御表示プログラムを呼び出す又は開始させる
他のプログラムを実現する際には有用であろう。
次に、選択されたオペランド、並びにそのオペランドが位置するプラント、コン
ピュータ及び経路の必要なアイデンティティを含むテキストストリングを作成し
た。
このステップを304に示す。すなわち、テキストストリングは所望のオペラン
ド又は変数の記述子又は仕様から構成されている。このテキストストリング、す
なわち、記述子はプロセス制御表示プログラムの表示生成部分に対する入力を構
成する。−例を挙げると、ユーザが冗長コンピュータEにおける警報番号335
を含むプロクラムステートメントを表示する希望を指示した場合は、テキストス
トリング記述子は: rE : ALM C335)Jのように現われるであろ
う。
次に、プログラムは選択されたオペランドが使用された全てのステートメントと
、選択されたオペランドが計算された全てのステートメントとを発見する。これ
+1ステツプ306に示されている。ステップ306は・実際には、ステップ3
08.310.312及び314に示す一連のアクションを含む。まず、選択さ
れたコンピュータと関連するファイルの場所を指定するために、プログラムはオ
ペレーティングシステム又はシステム定義ユーティリティをアクセスする。ステ
ップ308を参照0次に、プログラムは指定されたオペランドが計算、使用され
た全てのレコードをアクセスする。ステップ310を参照。次に、ステップ31
2では、プログラムはどのステートメントを表示するかを確定する。ディフォル
ト時、プログラムは変数が最後に計算されたときのステートメントを表示し、計
算されていなければ変数が最初に使用されたときのステートメントを表示する。
言うまでもなく、ユーザは、先に説明したようにメニューノく一ボタンを使用す
ることにより、このディフォルトを変更できる。最後に、所望のステートメント
の場所が指定されなかったならば、プログラムは所望のオペランドが発見されな
かったことを指示する適切なメツセージを生成する。ステップ314を参照。
このようにして表示すべきステートメントの場所を指定したならば、プログラム
は、次に、一般的にステップ316に示すステートメント分析と解析のシーケン
スを実行する。ステップ318に指示する通り、解析シーケンスはツリー構造の
形態を取るステートメントの内部コンピュータ表現を生成することを含む。本質
的には、ツリー構造は、プログラムステートメントを構成する個々の辞書ユニッ
トの各々がコンピュータメモリに個別に記憶されるようなデータ構造であった。
希望に応じて、プログラムステートメントを再構成できるようにするため、ツリ
ー構造は辞書ユニットの文法関係に関する情報を保持する。プロセス制御表示プ
ログラムの一部を形成する構文アナライザは、プログラムステートメントを解析
ツリーに変換するために使用された。構文アナライザと現時点で好ましい解析ツ
リーについては、以下に図17に関連して更に詳細に説明する。
プロセス制御表示プログラムの機能の1つは、変化して行く活性データ(又は周
期的に更新されるデータ)に基づいて図形アイコンと、それらに関連する引込み
線及び引出し線、すなわち、「バイブ」の視覚特性、すなわち、色を変化させる
ことであったので、ステ・ノブ320におけるプログラムはプログラムステート
メントで使用されるオペランドのリストを構成する。このリストはデータ構造と
してコンピュータメモリに記憶された。リストはアイコンを動的に更新するため
に必要な活性データ値を記憶するために使用された。
選択されたどのアイコンに対しても用語集テキスト情報を提示できるようにする
ため、ステップ322で、プログラムはステートメント中のオペランドごとに全
ての関連用語集テキストと、拡張用語集テキストを取り出し且つ記憶する。この
テキストはコンピュータメモリのデータ構造にも記憶されるので、ユーザがその
テキストを要求したならば、ただちにアクセスのために利用できる。
ステップ324に示すように、用語集情報と拡張用語集情報はその情報が記憶さ
れている適切なGLOSファイルとXGLOSファイルをアクセスすることによ
って得られた。それらのファイルはディスクに記憶されていても良い。
全ての関連情報を収集したならば、次に、プログラムは静的表示構成を計算する
。ステップ326を参照。
328に示すように、表示計算ルーチンの詳細は後に図20に示される。表示計
算ルーチンは、本質的には、どの図形アイコンを、どの位置に表示しなければな
らないかを確定する必要がある。表示計算ルーチンは、表示が表示装置の画面に
合わせるには大きすぎる場合に表示を変更するための後述する隠しパイプアルゴ
リズムヲ更ニ含む。
アイコン及び関連する相互接続線、すなわち、パイプの視覚特性を使用して、変
数及び演算子のリアルタイムで又は動的に変化する状態に関する情報を伝達した
ので、プログラムはステップ330で活性データを取り出し、ステップ332で
はこの活性データを使用して、各アイコン及び各パイプの視覚特性、すなわち、
色を確定する。
この活性データはステップ320で構成したデータ構造の中に記憶されたことが
思い起こされる。活性データアルゴリズムの詳細についても、以下で論じる。
次に、プログラムは記憶されている全ての活性データの現在値を考慮に入れて表
示を更新するために、表示を再び線引きする。これはステップ334に示されて
いる。
ユーザが代替選択を行わない限り、プロセス制御表示プログラムは選択されたプ
ログラムステートメントを図形アイコンの形で表示し続けると共に、活性データ
の変化につれてアイコンの視覚特性、すなわち、色を更新し続ける。現時点で好
ましい実施例では、プロセス制御表示プログラムは1秒に1回プロセス制御コン
ピュータニ問い合わせるように構成されていた。従って、活性データは、必要に
応じて、1秒ごとに評価され、再線引きされたのである。データをリフレッシュ
するこの頻度は大半のプロセスに対して十分であることがわかっている。細分性
の程度、すなわち、データリフレッシュの頻度が制atべきプロセスの型の関数
であることは言うまでもない。従って、現時点で好ましい1秒のリフレッシュ頻
度は本発明の範囲を限定するものではなかった。本発明の範囲の中で、他のリフ
レッシュ速度並びに非同期リフレッシュは可能であった。
現時点で好ましいパーサは文脈自由文法をもって動作するように設計された。文
脈自由文法の一例は、ALGOL言語専用に開発されたBackus−Naur
f o rm (BNF)であった。本発明で使用する特定の実施例は単一ト
ークンルックアヘッド能力を採用する。厳密に言えば、現時点で好ましいパーサ
はLARL(1)と定義される文法をもって機能する。
先に説明した通り、言語を構成する辞書ユニット又は記号は細分できない終端記
号と、最終的には終端記号の集合に細分できる非終端記号又はグルーピングの双
方を含む。終端記号を「トークン」と呼ぶこともあった。非終端記号を「グルー
ピング」と呼ぶこともあった。文法上の値について言えば、同じ型の全てのトー
クンは同じであると考えられる。たとえば、整数5と整数3085は文法的な値
としては等しい;それらは共に「整数」であった。ところが、意味論上の値では
、整数5と整数3885とは異なっていた。整数の意味論上の値は単純にその整
数の値であった。グルーピングのようなより複雑な記号の意味論上の値は、たと
えば、ツリー構造であろう。
パーサの詳細については、Addison −Vesley より刊行されたA
lfred V、 Aho、 Ravi 5ethi 及びJeffreyD、
UllmanのCompilers Pr1nciples、 Techni
ques、 AndToo l s を参照。
現時点で好ましいステートメントアナライザは、トークンを配列、分類するため
の一組の事前定義済文法規則を使用する。ステートメントアナライザを、最初に
辞書分析を実行し、次に構文分析を実行する構文駆動インタプリタとみなしても
良い。辞書分析は、記号テーブルを作成するために個々の文字をトークンにグル
ーピングする辞書アナライザ又は辞書スキャナによって実行された。
構文アナライザ又はパーサは、解析ツリーを作成するためにトークンを文法的フ
レーズにグルーピングする。ステートメントアナライザは、原始言語を記述する
排他的で、徹底的な数学定義の事前知識を有する。有効なプログラムステートメ
ントと式は全てその数理記述に準拠している。例を示すと、現時点で好ましいパ
ーサは以下の表Ivに記載する形態により例示される形態、すなわち、数理記述
を有するプログラムステートメントを解析することができた。パーサはプログラ
ムステートメントを取り上げて、それをそれらの解析可能形態の1つと整合させ
る。
表■
解析可能プログラムステートメントの形態filF式一式
辻IF式
辻一式
CALL サブルーチン IF 式
サブルーチン IF 式
CALL サブルーチン
サブルーチン
本質的には、パーサは、入力テキストストリーム(すなわち、プログラムステー
トメント)が上記の表■の解析可能プログラムステートメントの形態の1つと整
合するか否かを判定するために入力テキストストリームを処理する再帰的プログ
ラムであった。整合するならば、表示計算モジュールにより使用するための解析
ツリーを構成した。ステートメントが上記の解析可能プログラムステートメント
形態の1つと整合しない場合には、適切なエラーメツセージを生成することがで
きる。以下に更に詳細に説明するが、解析ツリーは関連図形アイコンデータを付
随させたデータ構造であった。最終的には、このデータを使用して、表示端末ウ
ィンドウに視覚アイコンを表示することになった。辞書アナライザ及びパーサを
含めて、適切なステートメントアナライザを構成することに関する詳細について
は、Prentiss −tlallより刊行されたA11en 1. Ho1
ubのCompiler Design In Cを参照しても良い。図17は
、現時点で好ましいパーサが動作する方式を示す。まず、ステップ336では、
表示すべきプログラムステートメントを静的変数として記憶した。記憶されると
きのプログラムステートメントは行番号、プログラマのコメント又はコラム位置
に従属する情報(たとえば、Fortranの場合)などの解析不可能要素を含
んでいることもある。それらの解析不可能要素を取り除くと、解析可能な一組の
トークン及び/又はトークンのグルービングのみが残った。ステップ338では
、辞書アナライザを使用してそれらのトークンを識別し、ステップ340 では
トークンを一度に1つずつパーサへ送り出す。
そこで、パーサは解析ツリーデータ構造を作成するためにトークンを再帰的に分
析する。これは、通常は、ステップ342 に示されている。現時点で好ましい
パーサは344 でLVARと指定されている結果解析ツリーを生成する。最終
的にはパーサの出力を表示計算モジュールにより使用するために入城変数ポイン
タとして渡した。ステップ350 を参照。
図18は、プログラムステートメントとその解析ツリーの一例を示す。図示され
ているステートメント:5TEP(417) IF 5TEP(415) OR
5TEP(416) AND[A1(434) LT AK(417,400,
1000) AN Al(435) LTAK(417) AND AC(43
0) LT AK(417) ORDM(417) OR[5DI(427)
AND Do(427) FORDT(3427,5,2,)]]は解析可能形
態「変数 IF 式一式」であった。図18に示すように、解析ツリーはプログ
ラムステートメントをその個別の辞書ユニットにノードの階層セ・ソトとして分
解している。このノードのセットは、表示計算モジュールにより関連図形情報を
付随させることができるデータ構造に記憶された。
図19は、解析ツリーデータを記憶するために使用される現時点で好ましいデー
タ構造を示す。実際には、解析ツリーを記憶するために使用されるデータ構造は
、ポインタにより連係された一連のデータ構造から構成されティる。最上位レベ
ルから見ると、データ構造はnodetと指定されたノードツリー構造352を
含む。このツリー構造は= (1)全ての子ノードの連係リスト及び(2)特定
のノードの解析データに対するポインタを含む。すなわち、ノードツリーデータ
構造は解析ツリーの全体構成を表現しており、プログラムステートメントを構成
する辞書ユニットの関係を示す。
より中間のレベルでは、データ構造は、ノードツリー構造352により指示され
た解析データツリー構造354を更に含む。parse data tとして表
されている解析データツリー構造は、(1)所定の辞書ユニットのトークンコー
ドラベル、(2)ラベル付けされたトークンの意味論上の値及び(3)特定アプ
リケーション向はデータに対するフックを記憶するツリー構造であった。この特
定アプリケーション向はデータは、その特定の辞書ユニット、すなわち、トーク
ンを表現するために使用すべき図形アイコンを識別する。
解析データツリー構造354自体は、トークン意味情報を記憶したより低いレベ
ルのツリー構造を指示する。
同様にtok sem tと表わされているこのトークン意味ツリー構造356
は(1)更に別のデータ構造に対するトークン意味ポインタと、(2)そのトー
クンに適用可能な特定データとを含む。
更に低いレベルでは、データ構造は同様にs e m a ntic tと表わ
されている意味ツリー構造358から構成されている。この意味ツリー構造は意
味論上の値(SVALUE) 、意味論上のテキスト(STEXT)、型、変数
型、アクセスデータ及び要素データの最大数を記憶するために使用された。これ
らのデータは表示計算アルゴリズムにより必要とされる情報を記憶するために使
用された。
表示計算モジュールは解析ツリーを入力として受信し、プロセス制御表示プログ
ラムの他のモジュールが使用するいくつかのデータ構造をそれに追加する。表示
計算モジュールの一次機能の中には、表示すべきプログラムステートメントの辞
書ユニットを表現するために使用されるあらゆる図形アイコンの寸法と座標(画
面位置)の計算があった。この計算は、隠しバイブアルゴリズムを呼び出す必要
があるか否かについての決定を含む。隠しバイブアルゴリズムは、プログラムス
テートメントの非圧縮図形表示全体がウィンドウの表示領域にはまらない場合に
呼び出された。
表示計算モジュールはリアルタイム評価の間に使用される表示リストを生成する
必要があった。表示リストに加えて、表示計算モジュールは活°性データ変数リ
スト及びファイルシステム変数リストも作成する。活性データリストは、オペレ
ーティングシステムに必要な活性データを収集させるために最終的にはオペレー
ティングシステムに渡されるアドレスリストを生成するために、後述する活性デ
ータモジュールにより使用された。ファイルシステム変数リストは、オペレーテ
ィングシステムに選択された変数に適用可能な用語集ストリングを供給させるた
めに使用された。このように、表示リストにより用語集ストリングをアドレス指
定することができる。コンピユータプログラミングの用語では、表示リスト及び
2つの変数リストと、それらのリストのアクセス機能は表示計算モジュールのイ
ンタフェースを構成する。
図18に戻ると、解析ツリーは個々の辞書ユニットがプログラムステートメント
をどのように構成するかを表わしている。特定して言えば、プログラムステート
メントは、表示計算モジュールが個別のオブジェクトとして扱う終端記号と、表
示計算モジュールがオブジェクトグループとして扱う非終端記号とから構成され
ている。個別のオブジェクトは、それぞれ、解析ツリーの異なるノードによって
表現された。表示計算モジュールは解析ツリーをノードからノードへ、上から下
へと横切るか、進んで行き、各ノードに画面上の図形アイコンを位置決めし且つ
レンダリングするために必要なオブジェクトデータを付随させる。表示計算モジ
ュールにより実行される特定のシーケンスを図20−22に示す。
表示計算モジュールは解析ツリーを2回のパスで横切る。第1のパスの間に、モ
ジュールはプログラムステートメントの図形表現のサイズを確定する。第2のパ
スの間には、表示計算モジュールは表示ウィンドウに配置すべき各アイコンの座
標を確定する。このプロセスを図20に示す。ステップ360から始まって、表
示計算モジュールに解析ツリーポインタを渡した。図19の解析ツリーデータ構
造により例示されるように、このポインタは最終的にはそれぞれの解析ツリーノ
ードに対するアクセスを供給することが思い起こされるであろう。表示計算モジ
ュールの説明の便宜上、図21及び図22として図18の解析ツリーを、表示計
算手続きのパス1及びパス2を示すために追加情報を加えながら再現した。
図20、図21a及び図21bを参照すると、ステップ362では、表示計算モ
ジュールは表示すべきプログラムステートメントの図形表現全体のサイズを確定
する。
ステップ364に更に詳細に示すように、これは解析ツリーを上から下へ横切り
且つ各ノードに境界ボックスサイズを割り当てることによって実行された。先に
説明した通り、それぞれの図形アイコンは所定のサイズを有する。各アイコンの
周囲には、それを完全に取り囲むように、架空の「境界ボックス」が描かれてい
る。このように、架空の境界ボックスの長さと幅は、対応するアイコンの所定の
サイズを指示する。
図218及び図21bを参照して、−例を挙げると、解析ツリーには最上部、す
なわち、Aと指示されているANDステートメントから入った。次に、図示され
ている矢印に従って解析ツリーをAからBSC,、、、Rまで横切った。現われ
たそれぞれ個別のオブジェクトには、そのオブジェクトの境界ボックスの縦横の
寸法を表現する整列した一対(x、y)の数が割り当てられた。事前定義済図形
アイコン(変数及び専用記号など)に対応するオブジェクトの場合、境界ボック
スのサイズはあらかじめ決まっており、従って、そのオブジェクトに単純に割り
当てられるであろう。比較演算子、AND、ORなどの演算子は、それ自体、個
別の図形アイコンとしてはレンダリングされなかった。その代わりに、それらは
他のオブジェクトをグルーピングする働きをするので、比較演算子と関連する境
界ボックスサイズはそのグループの中の他の演算子から継承された。
現時点で好ましい実施例で採用した規約によれば、AND演算子はオブジェクト
を水平に結合することによりそれらをグルーピングする。(図8を参照)。OR
演算子はオブジェクトを垂直に結合することによりそれらをグルーピングする。
(図9を参照)。XOR演算子はオブジェクトを垂直に結合し、OR演算子と区
別するために更にX型記号を追加することによってそれらをグルーピングする。
(図10を参照)。NOT (#)演算子は、図11に示すように、そのオペラ
ンドを包囲する。
最後に、大括弧、すなわち、入れ子演算子も、図12に示すように、オペランド
を包囲する。従って、2つのオブジェクトを比較AND演算子によって結合する
ときには、その結果の境界ボックスは個々のオブジェクトの水平方向の寸法の和
を取り囲むために水平方向に十分に大きくなければならないと共に、個々のオブ
ジェクトのうち大きいものの垂直方向の寸法を取り囲むために垂直方向に十分に
大きくなければならない。特定して言えば、比較演算子によりグルーピングされ
るオブジェクトの境界ボックスの寸法と位置を計算するための公式は以下の表V
に記載されている。
表V
AND関係(図8を参照):
W −W1+W2+WD
H−max [Hl−01,H2−02] +max [01,02]0 =m
ax [01,02]
1−X
Yl−Y+max[:ゼロ、01−02]X2−X+W1+WD
y2−Y+max[ゼo、01−02]OR関係(図9を参!@):
W −max [Wl、W2]
H−H1+H2+HD
Y2関Y+H1+HD
XOR関係(図10を参」 :
W −max[Wl、W2] +WL
H−H1+H2+HD
O−01
Y2−Y+H1+HD
NOT関係(図11を参(財):
W =W1+2xWD+2xWL
O−01+HD
H−H1+2xHD
XI−XC+WD+WL
Yl−YC+HD
大括弧に入った関係又は入れ子の関係(図12を参句 =W −W1+WDL+
WDR
XI−X+WDL
Yl−Y
このように、図21a及び図21bの解析ツリーでは、大文字A−Hにより指示
されたそれぞれのノードと関連して、境界ボックスの水平方向の寸法と垂直方向
の寸法を表わす、順序を付けた一対の数として指定される境界ボックスサイズが
ある。現時点で好ましい実施例においては、5TEP演算子は横10単位、縦8
単位の境界ボックス寸法を有する。従って、ノードC及びDの5TEP演算子に
隣接する円の中には順序の付いた対(10,8)が指示されている。ノードBの
OR演算子は、子ノードC及びDに基づいた境界ボックス寸法を継承する。
そこで、BのORノードは先の表Vの公式を使用して、(10,16)の境界ボ
ックスサイズを有する。この点に関して、図21及び図22に示す境界ボックス
の寸法は、場合によっては、演算を簡略にするために、HD寸法を省略すること
によって近似されている。
最終的には、解析ツリー全体を開始ノードAまで戻って横切り終わったとき、総
境界ボックスサイズが確定される。図21bの例では、このサイズは(52,2
0)であった◎その値はプログラムステートメントの右側の総サイズを表わす。
現時点で好ましいアルゴリズムは等価演算子IFの下から解析ツリーに入る。図
218及び図21bの5TEP (417)であるプログラムステートメントの
左辺、すなわち、LVAL側は、常に既知の境界ボックスサイズをもつ単一のオ
ブジェクトを表現している。
図20に戻ると、表示計算モジュールは、次に、図形表現の総サイズが表示ウィ
ンドウの中に、はまるか否かを判定する。これはステップ366で実行された。
表示全体が表示ウィンドウの中に入りきるのであれば、表示計算モジュールは第
2のバス、ステップ370に進み、そこで、表示ウィンドウ中の各図形アイコン
の場所を確定した。図形表現全体が表示ウィンドウの中に入らない場合には、ス
テップ368に指示するように、隠しパイプアルゴリズムを実行した。
ここで、−例として図21bを使用して、隠しパイプアルゴリズムを説明する。
先に述べた通り、プログラムステートメントは寸法(52,20)の境界ボック
スを要求する。表示ウィンドウはサイズ(47,20)の境界ボックスしか許容
しないと仮定する。そこで、隠しパイプアルゴリズムはあるサイズのノードをよ
り小さいサイズの隠しバイブアイコン182(図14)と置き換えようとする。
現時点で好ましい実施例では、隠しバイブアイコンは(10,8)の境界ボック
スサイズを有する。
サイズ(20,8)のノードをサイズ(10,8)の隠しバイブアイコンと置き
換えると、100図形単の水平方向の利得が得られる。同様に、サイズ(10,
12)のノードを隠しバイブアイコンと置き換えると、4図形単位の垂直方向の
利得が得られる。サイズ(10,8)のノードを隠しバイブアイコンと置き換え
ようとしても、利得なしの結果になると考えられるので、そのような置き換えは
実行されなかった。
この例では、5単位の水平方向の利得が要求された。
ノードC及びDのサイズは共に隠しバイブアイコンと等しいので、それらのいず
れかを隠しバイブアイコンと置き換えても、利得の所望の増加は生じない。そこ
で、隠しパイプアルゴリズムはそれら2つのノードを放棄する。
同様に、ノードBはこの例で要求される必要水平方向の利得を与えるのには不適
切であった。
ノードEに進むと、サイズ(42,20)のそのノードを排除することは十分以
上の利得−32の水平方向の利得−を与えることが明白であろう。ところが、ノ
ードEの排除は、ノードEの子である全てのノード(すなわち、ノードF−R)
を排除することによって結、果表示の有用性を著しく劣化させてしまうであろう
。従って、隠しパイプアルゴリズムはノードF1ノードG1ノードHへと続きな
がら、そのたびに十分な利得があることを見出す。
次のノードIへ進むと、結果として得られる水平方向の利得は4図形単位になる
であろう。これは5単位の所望の水平方向の利得を得るには不十分であろうと思
われるので、ノードIの排除は機能しない。従って、アルゴリズムは十分であっ
た先行するノードHに後戻りし、次にノードJを試験する。ノードJは不十分な
利得を与えるので、アルゴリズムは再びノードHに後戻りする。ノードHから順
降する子ノードは他にはながったので、ノードHを隠しバイブとしてマークした
。そこで、最終表示ではノードHとその子ノードI及びJを単一の隠しバイブア
イコンと置き換える。
以上のことから、ある経路が十分な利得を与えない場−合、現時点で好ましい実
施例の隠しバイブアルゴリズムはその経路を放棄することがわかる。また、解析
ツリーを左から右へ横切ったので、現時点で好ましいアルゴリズムは、当然、L
VALにより近接しているノードの排除を優先する。多くの場合に、LVALが
ら最も遠いノードはより重要であるので、このような排除は有利であった。
図形表示の総サイズを確定し且つ必要に応じて隠しバイブ発行を処理したならば
、表示計算モジュールは、表示ウィンドウ内の各図形アイコンの場所を確定する
ためにステップ370(図20)へ進む。これは、解析ツリーを再び横切ること
によって実行された。ステップ372に指示するように、各ノードに位置座標と
アイコンレンダリングデータ(たとえば、ビットマツプ)を割り当てるために解
析ツリーを再び横切った。
これを例示するために、図22は図19、図21a及び図21bと同じ解析ツリ
ーを示すが、今回は座標がどのように割り当てられたかを示す。解析ツリーを先
に示したのと同じ経路で横切ることにより、ノードCで最初の個別オブジェクト
に遭遇した。このオブジェクトには座標(0,0)が割り当てられた。次の個別
オブジェクトに進み、ノードDの座標は(0,8)であると確定された。これは
、ノードC及びノードDがノードBのOR演算子の子であるとグルーピングされ
たためにそうなったのである。先に論じた通り、OR演算子はそのオブジェクト
を垂直に結合する。従って、ノードDのオブジェクトの境界ボックスサイズがわ
かれば、その位置はノードCのオブジェクトと垂直に整列しているが、その下方
に水平に8単位下がっていると容易に計算された。
表示全体を構成する各オブジェクトの座標がわかるまで、個別のオブジェクトノ
ードのそれぞれについて同じ手続きに従った。それらの座標は、図形アイコンを
生成するための適切なビットマツプに対するポインタと共に、表示画面に実際の
図形アイコンを描き出す際にオペレーティングシステムのウィンドウ表示機能に
より使用するために、データ構造に記憶された。
上記の手続きは図形アイコンの座標及び各アイコンがどのように見えるかという
ことに関する情報を、それを解析ツリー又は解析ツリーのコピーに付随させるこ
とにより記憶させる。現時点で好ましい実施例は、全ての図形アイコンのそれぞ
れの引込み線と引出し線、すなわち、「バイブ」が連結するように、それらの図
形アイコンを位置決めする。異なる図形記号が異なるサイズを有する可能性があ
るということ、従って、それらの記号の引込み線と引出し線が異なる相対位置を
有することを考慮に入れるために、必要に応じて、全ての引込み線と引出し線が
整合するように境界ボックス座標に加算するか又は境界ボックス座標から減算で
きるようなある数値、すなわち、「オフセット」を各図形アイコンと関連付ける
。
言い替えれば、表示計算モジュールのバス2により確定される座標は、たとえば
、境界ボックスの左上角を指定するために使用されても良いということであろう
。実際の画面上座標は、左上角の座標位置から、全ての隣接アイコン及び連結ア
イコンの引込み線と引出し線が適正に整合するように保証するための記憶オフセ
ットの量だけ上下に調整される必要があるだろう。この目的のために記憶オフセ
ット値を使用することが現時点では好ましかったが、それに匹敵する別の技法を
その代わりに使用しても良い。
図23は、図22の解析ツリーに対応する個別のオブジェクトそれぞれの物理的
レイアウトを示す。例示の便宜上、各オブジェクトは左上角が図22に記載され
ている割り当て座標に位置する境界ボックスによって表現されている。各境界ボ
ックスは、図21bから取った(X。
y)寸法に基づいて、はぼ実物大で描かれている。例示を簡略にするため、個々
のアイコンに適用可能な記憶オフセットは図23には示されていない。比較のた
め、図18、図21−図23により表わされたステートメントの図形アイコン表
示を図7bに示す。
活性データモジュールは、その時点で表示されているプログラムステートメント
に存在する全てのプロセス制御コンピュータ変数のリアルタイム値の収集、記憶
及び変換(フォーマツティング)を行なう必要がある。(図16bのステップ3
30を参照)。解析ツリーは表示されている全ての変数のリストを含む。このリ
ストはオペレーティングシステムに対して呼び出しを実行するときに使用され、
それにより、実際の活性データは゛プロセス制御コンピュータ(たとえば、10
4及び106)により収集され、通信インタフェースサブシステム(たとえば、
108及び110)を介して、本発明のプロセス制御表示プログラムを実行して
いるコンピュータ又はワークステーションへ伝送された。
実際には、活性データはプロセス制御コンピュータにより非同期方式で収集され
ても良い。すなわち、このプログラムの活性データモジュールは、活性データを
同期的に、しかし、本発明のプロセス制御表示プログラムと並行して要求するた
めのサブプロセスを生成することにより、この活性データを獲得するのが好まし
い。サブプロセスは、主プログラムを非同期にトリガ又は割り込みすることがで
きるように、活性データ要求の完了を報知する。このように、プロセス制御表示
プログラムの残る部分は、活性データの収集を待機する必要なく、動作状態のま
までいることができる。収集したならば、活性データは、図形アイコンとそれら
を相互に接続するバイブ、すなわち、線の各々に適用すべき適切な視覚特性を確
定するためのリアルタイム評価モジュールに渡された。
先に指示した通り、表示ウィンドウの中の各図形アイコンのリアルタイム状態を
指示するために視覚特性、好ましくは色をi用した。活性データモジュールによ
り得られた活性データに基づいて、それぞれのアイコン自体に、適正な視覚特性
、すなわち、色を割り当てることは相対的に簡明であった。ところが、プロセス
制御表示プログラムは各アイコンに適切な視覚特性を周期的に又はリアルタイム
で単純に動的に適用する以上のことを実行する。本発明のプロセス制御表示プロ
グラムは各図形アイコンと関連する引込み線及び引出し線、すなわち、バイブに
対する適切な視覚特性、すなわち、色をも確定し且つ適用する。
たとえば、図7aに示す単純な式において、線、すなわち、バイブの入り変数D
I (100)及びDI(101)はTRUEと陰影付けされていた。変数DI
(100)はこの時点ではFALSEと陰影付けされているので、その変数の引
出し線もFALSEと陰影付けされている。逆に、変数DI (101)はTR
UEと陰影付けされているので、その引出し線、すなわち、バイブもTRUEと
陰影付けされた。図示するように、これと同じTRUE論理はデジタル変数DC
(100)にも流れている。このように、プラントオペレータは、変数DI (
101)がTRUEであることによって変数DC(100)がTRUEであるこ
とを容易に確定できる。
バイブ並びに図形アイコンを陰影付は又は色付けすることにより、オペレータは
プログラムステートメントに対応する論理の流れを迅速に追跡できる。図7aで
は、プラントオペレータが変数DC(100)はFALSEであると期待してい
るが、そうではないとわかった場合、その理由は直ちに明らかになるであろう。
変数DC(100)から戻ってTRUE (BLUE)の色を追跡することによ
り、このTRUE論理の「ソース」は直ちに明らかになった一変数DC(101
)。
リアルタイム評価モジュールは、図形アイコン及びその相互接続バイブの全てに
対して適正な視覚特性、すなわち、色を生成する必要があった。リアルタイム評
価モジュールは、最後の活性データ要求が適切に完了したことを活性データモジ
ュールが指示したときに直ちに呼び出された。全てのアイコンとバイブの視覚特
性、すなわち、色を確定することに加えて、リアルタイム評価モジュールは隠し
バイブをも考慮に入れなければならない。
現時点で好ましいリアルタイム評価モジュールを、以下のC言語で書かれた表V
lの原始コードリスティングに記載した。リアルタイム評価モジュールに関わる
原始コードリスティング全体は、コンピュータプログラミングの技術に習熟した
人に現時点で好ましいモジュールをどのように構成したか及びそれがどのように
動作するかを十分に理解させるために提示された。表Vlの原始コードリスティ
ングはこの明細書の終わり、添付の請求の範囲の前にある。
アイコン自体の視覚特性、すなわち、色の動的制御は比較的簡明であったが、引
込み(左)線及び引出しく右)線の視覚特性、すなわち、色の評価をここで多少
論じることはその価値がある。この説明中、「線」という用語と「バイブ」とい
う用語は、特に指示のない限り、同義であった。線色付はアルゴリズムは「現在
」ペンカラーと「記憶」ペンカラーの2つのペンカラーを使用する。
記憶ペンカラーはノードごとに解析ツリーに保持された。
原始コードリスティングの中では、現在ペンカラーをcur colourと表
わし、記憶ペンカラーを5tatic colourと表わした。記憶ペンカラ
ー(sta tic colour)は静的変数として割り当てられても良く、
最初に引込み線(方線)を評価するときにBLUEに初期設定された。現在ペン
カラー(cur colour)はスタ・ツクで割り当てられても良い。
リアルタイム評価モジュール(RTEVAL)は引込み線評価手続き、EVAL
LEFT LINES Oと、引出し線評価手続き、EVAL RIGHT
LINES()とを含む。EVAL LEFT LINESに対する引数は評価
すべき解析ツリーのノードポインタN0DE PTに対するものであった。ルー
チンは再帰的であったので、これは解析ツリーが順降するにつれて1つのノード
と関連する。
手続きEVAL LEFT LINESI;!、まず、現在ノードの5VALU
Eの局所コピーを作成する。現在ノードがORであり且つそれが隠しバイブを表
現する場合、隠しバイブオブジェクトを適正に処理できるように局所5VALU
Eを作成した。
方線は、常に、記憶ペンカラー(static c。
1our)で色付けされた。石線は関係、5taticcolour AND
cur colourに従って色付けされた。すなわち、ペンカラーがBLUE
であり且つオブジェクトはBLUEである場合に限って、石線はBLUEであっ
た。現在オブジェクトがOR又はXORであるか、あルイハ、EVAL RIG
HT−LINESによりXOR関係が満たされた場合には、石線は色付けされな
かった。
XOR演算子は表示されるオブジェクト、アイコンに追加されるX字型記号を含
むので、特殊なケースであった。この追加のX字型記号の色も処理しなければな
らない。
ディレィタイマは、TRUEであるとき、入りペンカラーがFALSEであって
も、引出し線をTRUEにすることを要求する可能性がある。それは、ディレィ
タイマが遅延がなければそのパイプに沿って進行して行く論理の流れを遅延させ
る働きをするためである。
現在ノードの子を評価するとき、最初にペンカラーをスタックにセーブした。現
在ノードがNOTであれば、NOTの内側のステートメントは取り囲んでいるス
テートメントとは別に評価されるので、ペンカラーはBLUE (TRUE)に
設定された。
EVAL LEFT LINES手続きは全ての子について呼び出された。現在
ノードがORであれば、子の後ごとに、ペンカラーはBLUEにリセットされた
。色は、NOT演算子で終わったときに、その先行値に設定された。全ての子を
評価し終わったとき、現在ノードがペンカラーをグレイに設定することについて
不確定(すなわち、不良データ)であるか否かを知るために、現在ノードを検査
した。現在ノードの親がAND演算子、FOR演算子又は解析ツリーの最上位ノ
ードのいずれかであるならば、また、ペンカラーがBLUEであり且つ現在ノー
ドが0RANGEであるならば、ペンカラーは0RANGEに設定された。解析
ツリーのより上位でOR演算によりペンカラーがスタックから復元されない限り
、これはペンカラーが0RANGEになり得る唯一の方法であることに注意する
。現時点で好ましいルーチンは、線の色が変化したか否かを指示するために、更
新フラグをセットする。すなわち、活性データモジュールは周期的にプロセス制
御コンピュータをポーリングするであろうが、視覚特性、すなわち、色を変化さ
せることが必要である場合に限って、表示は再び線引きされた。
EVAL RIGHT LINES()手続きは、ORノードから出る右側線を
評価するように特定して設計された。この手続きは、子の子を含めた子の全ての
知識を得て初めてOR色を評価できるために要求されたのである。ノードがOR
又はXORであり且つその親がORでない場合、そのORノードから出る有線は
その右側の子と同じ色を有する。視覚の面から言えば、このORはこの部分式の
中で最下位のORであり、その右側の子は最下位の子であった。ペンカラーはこ
の色に設定された。
ノードがORであり且つその親がORであり(すなわち、このORが表示の別の
ORの上にある)、また、ペンカラーがグレイ(不確定)又はB LUEである
場合には、このORの有線はBLUEで線引きされた。そのようにして、BLU
Eは必要に応じてORを「フローアップ」する。ペンカラーが0RANGEであ
ったならば、右側線は最下位レベルORと同様に線引きされる(すなわち、その
右側の子の色を継承する)。
右側線を色付けした後、プログラムは現在ノードが隠しバイブであったか否かを
知るために検査する。隠しパイプであったならば、隠しバイブオブジェクトの色
を隠しノードを介してコピーした。隠しノードがORであった場合、OR記号か
ら出る右側線のORについて特別の処理を実行しなければならない。
リアルタイム評価モジ子−ルを更に完全に理解するために、表Vlの原始コード
リスティングを検討することを勧める。
プロセス制御表示プログラムを現時点で好ましい実施例に関連して図示し且つ説
明したが、添付の請求の範囲に記載した本発明の趣旨から逸脱せずに本発明の何
らかの変形が可能であることは理解されるであろう。
表■
著作権はThe Dow Cheaical Company 1992に帰属
#1nclude cstdio、h〉宴1nclude cstdlib、h
>$1nclude <ctype、h>$1nclude″d 1nclud
e:n+tree、h−$1nclude″d 1nclude:1ist i
ngr、h”1inelude″d 1nclude+’parser、h”5
include −d dispcalc:graph calc、h−$1n
clude″d 1nclude:display str、h−8inclu
de″d 1nclude: 1ivedata、h−/ * 1iinclu
de −d 1ivedata:ld private、h−* /8incl
ude″d 1nclude:dispcalc、h−宴1nclude ”d
1nclude:a+essage public、h−8include
−d dispcalc:dispcalc private、h−$1ncl
ude″d 1nclude:rteval 、h−喜1rndef MIN
$derjne MIN(a、b)(((a)) < (b))? (a)+(
b) )婁end i f
/ * Forward declarat1ons* /5tatic Gr
aphlcalValue Eval 5ubtree(node pt Io
gictree);extern double fabs(double x
) ;5tat1c rteval debug −−1;tdeflne D
EBLIG VERBO3E 1tderine DEBUG LINES 2
$define DEBUG RLINES 41Ideflne DEBUG
N0GREYOIjT 8釦erine DEBUG N0COPYHIDD
EN 16$jfdef MALLOCTEST
$1nclude″d 1nclude:malloc tast、h”1el
se
static void *tal toe(unsigned int 5i
ze)void *block;
block −tAat Ioc(size) ;if (block −−N
ULL) tMSG Log(−Error: Out of memory
in build、 c\n−) ;exit(1):
return block:
endif
/ * tdeflne DISCRP(p) ((discrete pt)
DRAvOBJ P((p))−miscretep)*/
5tatic void
SwapHidden(node pt node p)draw objec
t pi topobject +);topobject p = DRAW
OBJ P(node p);bottomobject p ” topo
bject p−>hiddenobj p;H(bottomobject
pt−NLlu、) (topobject p−>hiddenobj p
−bottomobject p;bottoaobject p−>hide
nobj p = topobject p;DRAW OBJ P(node
p) −bottoa+object p;Static void
Eval GreyoutObject(draw object pt dr
avobject)struct DIsplayBase * Ba5eOb
ject;if (dravobject! −NULL (BaseObje
ct = dravobject−閥1screte p;Ba5eObjec
t−〉Obj[1]、Co1our −Grey; /ネ 1eft hand
1ine*/
Ba5eObject−〉objOコ、ChangedLiveData Ib
−1;Ba5eObject−〉obj [2コ、Co1our −Gray
+ /* right hand11ne*/
Ba5eObject−:<bj[2]、ChangedLiveData l
b −1;static node pt
Eval GreyoutNode(node pt node)draw o
bject pt dravobject;dravobject −DRAI
/ OBJ P(node) ;If (ciravobject j−NUL
L) tEval GreyoutObject(drawobject);i
f(drawobject−>hidden !−0) ISwapHldde
n(node) ;dravobject −DRAM OBj p(node
);SwapHldden(node) ;Eval GreyoutObje
ct(dravobject);return node;
static void
Eval Greyout(node pt Iogictree)int u
p暑−1;
汀(rteval debug & DEBUG N0GREYOUT)ret
urn;
MT walk bottoa+ up(Iogictree、 Eval G
reyoutNode、 &aap);staticGraphjcalVal
ueEval compose(node pt node p)Obj 丁y
pe type;
GraphicalValue colour:if’ (drawobjec
t−>hidden !−の (Swap)Ifdden(node);dra
vobject −DRAW OBj p(node);SwapHidden
(node) ;Eval GreyoutObject(drawobjec
t):return node;
statlc void
Eval Greyout(node pt loglctree)int u
p −−1;
if (rteval’debug & DEBUG NoGREYO石)re
turn;
Kr walk bottoa up(Iogictree、 Eval Gr
eyoutNode、 &aap);statlcGraphicalValu
eEval compose(node pt node p)objType
type;
GraphlcalValue colour;7 Blue; Orange
;
return colour;
case−[”:
colour−C)III、D C0LOURchildl) ;return
colour;
/* If we eaIIe here、 we must have a
binary parse node */child2− DRAW OBJ
P((node pt)La DATA 2 P(node p−qhild
ren 11st));
if ((CHILD COI、0UR(child2) −−Grey)re
turn Grey;
5w1tch (SEMP(node)−>5value)case for
:
colour −(CHILD Cot、0UR(child2) −−Blu
e)? Blue: Orange;
break;
case and :
colour −((CHILD Cot、0UR(chi 1dl) −−B
lue) &&(C)Ill、D C0LOUR(child2) −−Blu
e))? Blue: Orange;
break;
colour −((CHILI) COI、0UR(childl) −−B
lue) l 1(CHILD C0LOUR(chjld2) −−Blue
))? Blue: Orange;
break;
case xor :
colour −((CHILI) COI、0UR(childl) −−B
lue) −(CHILD C0LOIJR(chjld2) −−Blue)
)? Blue: Orange;
break;
default :
MSG LDg(−RTEVAL−〉Eval compose: 1nval
jd 5value %d\n+1
SEX P(node p−>5value);return colour;
static GraphicalValuecompare(float a
、 rloat b、 char *operator、 float *pc
t blue)GraphicalValue retval;reLval
−Grey;
5vHch(operator[0])case −E’:
if (strca+p(operator、−EQ−) −0(retval
−(a = b) ? Blue : Orange;*pct blue
−(a −−b) ? 1.0:0.0;break;
case G′:
if (strcIIlp(operator、cT−) −一 の (ret
val −(a >b) ? Blue : Orange;*pct blu
e −MIN(1,0,(1,0−((b −a)/2.0));else i
f (strcmp(operator、 −GE−)−一の (retval
−(a >b) ? Blue : Orange;*pct blue −
)11N(1,0,(1,0−((b −a)/2.の));break;
eaSe L°:
if (strcmp(operator、−LT−) −−0) (retv
al −(a cab)? Blue : Orange;*pct blue
−MIN(1,Q、(1,0−((a −b)/2.0)));else i
f (strcmp(operator、 ”LE”)−の (retval
= (a <−b) ? Blue : Orange;*pct blue
= MIN(1,0,(1,0−((a −b)/2.0))):break;
case N°:
If (strca+p(operator、−NEつm−の (retval
” (al−b) ? Blue : Orange;*pct blue
−(al=b)?1.0:0.0゜break;
/* percent blue 1ess than zero can o
nly happen f’or variablesνith
* a 5cale value 5eal Ier than the ac
tual value、 If so、 the c。
our
*vIIl be grey。
零1
if(*pct blue < 0.0)retval −Grey;
If (retval = Grey)*pct blue −−1,0;
return retVal;
static GraphicalValueEval discrete o
bject(node pi node p、 5truct 0bjcetl
nfo ds * of)GraphicalValue colour;1’
1oat tea+p r、 teapl r、 teIIlp2 r、 te
ap3 r;/* Te5t for bad data、 Deviatio
ns have three values: * /if (DRAM OB
J P(nocle p)−〉type −DIG FUNCobj &&(n
ode p−>children 1ist−−NULL l lLa ITE
M CNT(node p−:qhildren 1ist)!−31ILD
l5Bad(of−>脳var2−>Value f) I 11、DlsBa
d(of−>Modvar3−〉Value f))) (ol−>Perce
ntBIue fl−−1,0return Grey:
l*^comparison has two valuas: */if(D
RAM OBJ P(node p)−>type −−COMPARE ob
j &&Ll) l5Bad(oi−>恥dvar2−>Value f’)r
eturn Grey;
/* But all objects have a first valu
e: */if (LD l5Bad(of−>Modvarl−>Value
f)return arey:
5w1tch (DRAW OBJ P(node p)−>type)cas
e DIG VARobj:
case DIG VAR)LATCHED obj:case 5TEP o
bj :
1f(of−〉)kxlvarl−>Value r−0,0)colour
−Orange;
1se
colour −Blue:
break;
case DT obj :
if (of−>脳varl−〉5cale r = 0.0)colour
= Orange。
1se
colour −Blue;
oi−〉PercentBIue [1−(of−>Modvarl−>Val
ue r);break;
case DIG FUNCobj:
if ((node p−>children 11st ! −NO比)&&
SEX P(node p)−>5value −−dev &&LJIITE
M CNT(node p−>children 1ist)−3)if(of
−>Modvarl−>5cale r −−0,011of−:>Modva
r2−>5cale r = 0.01oi−:>)kxlvar3−>5ca
le r−0,0templ r −teap2 r −teIIp3 r−0
,0;of−>PercentBIue fl = −1,0;colour
−Grey;
break;
tea+pl r −of−>Moclvarl−>Value rloj−M
odvarl−>5cale f’;
tellp21’ −of−>Modvar2−>Value floi−Mo
dvar2−>5calef;
teap3 f −of−>脳var3−>Value floi−に4odv
ar3−>5cale f:
汀(fabs(templ r −teakp2 f)> temp3 r)c
olour −Blue;
else
colour ” Orange;
H’ (Leap3 f!−0,0(
temp f−fabs(teJpt r −Leap2 f)/1abs(t
eips f);
if (temp f > 1.0)
t@p f−1,0;
if (te!Ap fj−Of−>PercentBIue fl) (of
−>PercentBlue [1−Leap f;of−:TChanged
LiveData Ib = l;) else (
of−>PercentBIue [1−−1,0;colour −Grey
;
break;
case COMPARE obj :1f(oi−>汝拓varl−>5ca
le r−0,Ol 1of−>Modvar2−>5cale r −−0,
0) ftωpi r −Leap2 r −0,0:colour −Gre
y;
break;
teIgpl r qi−>)kxlvarl−>Value flof−>1
4odvarl−〉5cale r;teIlp2 f −0i−>Modva
r2−>Value floi−>)hlvar2−>5cale f;col
our −coapare(teipl f、 Leap2 f、 of−>M
odvar3−>Nage c、 &temp f);
if(temp f!−of−>PercentBlue fl) (of−>
PercentBIue fl −temp r;of−:<hangedLi
veData Ib −1;breakk;
cterau+t;
MSG Log(−TiTEVAL−>Eval discrete: Inv
alid object type(sv:%dXn”。
SEM P(node p)−>5value) ;return colou
r;
static node pt
Eval object (node pt node p)inti;
5truCt DisplayBase *newobj;5truct 0b
jectlnfo ds * cur、* Iertline、 * rjgh
tline:Obj Type type;
GraphicalValue colour;[(node p −−NUI
I) (MSG Log(−NULL node p in eval obj
ect\n′);return;
if (DRAW OBJ P(node p)−NULL) / * No
dravobject means *return node p; / *
no action * /nevobj = DRAW OBJ P(no
de p)−閥1screte p;cur −&newobj−〉Obj[0
コ / * The object 1tselr *Ieftline −&
nevobj−xbj[:1]; / * The 1eft hand l1
nepart *rightline−&nevobj−〉Obj[2]; /
* The right hand l1nepart*/
5w1tch (DRAνOBJ P(node p)−>type)case
DIG VARobj:
case DIG MARHATCHED obj :case 5TEP o
bj:
case DT obj:
case DIG FUNCobj:
case COMPARE obj :colour −Eval discr
ete object(node p、 cut);break;
case HIDDEN obj:
colour −Eval 5ubtree(node p);break;
case COMPO3E obj ;colour −Eval compo
se(node p) ;break;
default:
MSG Log(−1?TEVAL−>Eval object: Inval
id object type (Sv:%d)\n”。
SEMP(node p)−>5value);14(cur−)Colour
j” colour) fcur−)COlour −colour;cur
−)changeclLiveData lb −1:return node
p:
static GraphlcalValueEval Ivar (node
pt mode p、 GraphicalValue statement
colour)1nN;
float teImp l’;
5truct DisplayBase * newobj:5trtlC1d
tspca+c Ivar * Ivar object;5truct 0b
jectlnfo ds *cur、*lef’tline;Obj Type
type;
GraphicalValue colour、 1eft colour;i
f (node p −−+JUu、) IMSGLog(”NIJII no
cle p In eval IVJI八nつへreturn:
if (PAR3E P(node p)−>tok sea p−、vart
ype j−digital)return: /* we only col
our digital variables */Ivar object
−(struct dispcalc Ivar* )DRAνOBJ P(n
ode p):nevobj −tvar object−>Ivarbase
;cur −&nevobj−〉obj[0]; /* The object
1tselr 零1leftline −&nevobj−xbj[l];
/* The 1eft hand Ijnepart */1f (LD l
5Bad(cur−>Modvarl−>Value f)) (colour
−Grey;
l else [
1f(cur−Hodvarl−>Value f−−0,0)colour
” Orange;
1se
colour −Blue;
if (colour l−cur−)colour) (cut→伽1our
” colour;cur−>changedLiveData lb −1
;if (statea+ent colour −−cur−)cOlour
)left colour −cur−=alour;1se
left colour = Grey;if’ (Iel’t colour
! −1ertliner−)colour) (Ieftline−)Col
our −colour;Ieftline−:<hangedLlveDat
a lb −1;return colour;
describe node(Int 5value、 char * we)
static char buf[100];if (name[0] −−−
<’&& 5value > 32 && 5value < 128)spr
lntf (bur、 ”%d(−%c’)、 5value、 5value
);1se
sprintf(bufl″%d(−%s’)、 5value、 nue);
return but;
5tatjc GraphjcaffalueEval 1eft 1ines
(node pt node p、 jnt parent 5value)j
nti;
int 5value:
5tatic jnt depth = 0;5tatic Graphica
lValue 5tatic colour;/* auto*/Graphi
calValue cur colour:/* auto*/Graphlc
alValue old IefL colour、 old right c
olour;5truct vlsprayBase ネnewobj:5tr
uct 0bjectlnfo ds*cur41eftline、 *rig
htline;/* Ca1l Eval !1nes(node p、−50
0) to 1nit 5tatic colour、 We need a
better */
/* a+echanism for this。
*l
汀 (parent 5value −−−500) (static col
our −Blue;if (DRAW OBJ P(node p) = N
ULL) / * We ignorenon−drawing object
s */ return;5value −SEM P(node)−〉5va
lue;1f(svalue −−or && DRAW OBJ P(nod
e p)−>hidden !−の5value −0; /* treart
hidden as discrete object*l
newobj −DRAW OBJ P(node p)−)discrete
p;cur −&nevobj−)obj[0]; /* The obje
ct 1tself */Ieftline = &newobj−〉Obj[
1]; /ネThe 1eft hand 1inepart */right
line −&newobj−)Obj[2]; /* The rihgt
hand l1nepart */If (rateval debug &
DEBUG LINES)MSG tog(−%* s Pre: 0bjec
t %s colour %s pen %s\1eft%s right%5
n−
2本dekpth+1.−’+5
describe node(svalue、 cur−>l+hlvarl−
>Naae c)fongat colour(cur−吻Iour)。
forllat colour(static colour)。
f’ormat colour(Ieftline−心1our)。
forIlal colour(rightllne−:01our));/本
pre action*1
01d 1eft colour −1eftline−:61our; /*
remember the colours *1
01d right colour ” rightline−〉Co1our
; /本on the 5tack*1
leftline−)colour−static colour;1f (s
value! −or && 5value ! −xor) irightl
ine−〉Cklour −1ertline−〉CoIour;if (cu
r−〉Co1our −−Orange && 1eftline−〉CoIo
ur −−Blue)
rightline−)cOlour −Orange;if’ (cur−)
COlour −Grey)rightline−)cOlour−Grey;
if (svalue = xor &&5tatic colour −Or
ange &&cur−)cOulour −−Blue) (cur−)co
lour −Orange:cur−)changedLiveData lb
−1;if (svalue −−dt && 5tatic colour
j″ Grey) (static colour −cur−横1our;
riglltline−)Colour −5tatie colour;cu
r colour ” 5tattc colour; /* 5ave th
e value on the 5tack */if (savalue −
−■) [婁1f’def NotDef
1f (static colour ! −Grey)static col
our −Blue;1se
cur−>5tatic colour −Grey:$else
static colour −Blue婁endif
if (node p−)children 1ist! −NULL) &&
(!La LIST EMFrY(node p−>childlren 1i
st) )La Gotoltei(node p−:<hildren 1i
st、 FIR3T);FOR(1= L;ic −La ITEM CNT(
node p−〉Children 1ist);1++) f
depth++;
(void) Eval 1eft 1ines(LJDATA P(node
p−zhildren 1ist)、5value); depth−;汀(
svalue = or)
static colour ” cut colour;La Nextlt
em (node p−>children 1ist);# post ac
tion l/
5ifdef NoL[)er
汀 ((svalue −−−ft’) && (cur colour −−
Orange))Static colour −Orange;et 5e
if ((svalue −−婁’) && (stattc colour−
Grey) && (cur c。
1our I = Grey)
!1itatic colour −cur colour;1tendif
if’(cur colour −−Grey)Static colour
−Grey:if (rteval debug & DEBUG Ll)JE
S)MSG Log(−%* s Po5t: 0bject%s colou
r %s pen %s 1eft%s r1ght%sn”
2* depth+1
describe node(svalue、 cur−>ModvarL−>
NaIIe c)fongat colour(cur−)colour)lf
ormat colour(static Co1our)efonaat c
olour(Ieftline−)COIour)。
1f((parent 5value −−and l l parent 5
value −−for I larent
svalue −−500)
&& cur−窃Iour−Orange && 5tatic colour
−Blue
StatiCcolour −orange;if (old 1eft co
lour l −1eftline−心Iour)leftline−>han
gedLiveData Ib −1;if (old 1eft colou
r I −rightline−)cOlour)rightline−)Ch
angedLiveData lb −1;return 5tatic co
lour;stattc void
copy hidden colours(node pt node)nod
e pi rlghtchi ld;5truct DisplayBase
* 5ubatree obj、* hidden obj、* chlldo
bj;
5truct 0bjectlnro ds bhildrightline;
if (rteval debug & DEBUG N0COPYIIIDD
EN)return;
hidden obj −DRAνOBJ P(node−)discrete
+);SwapHldden(node) ;5ubtree obj −D
RAW OBJ P(node)−閥1screte l);SwapHidd
en(node) ;if (DRAM OBJ P(node)−>type
l −HIDDEN obj)MSG Log(” 007copy hidd
en colours: no hidden item attop of
treel ’V11nつ;if (subtree obj−:<bj[1]
、Co1or I −hidden obj−xbj[1]、Co1our)s
ubtree obj−xbj[1]、ChangedLIveData lb
−1;5ubtree obj−xbj[1]、Co1our = hidd
en obj−)Obj[l]、colour) ;
if (subtree obj−)obj[2]、Co!or l = hi
dden obj−> obj[2]、Co1oursubtree obj−
:1obj[2]、ChangedLiveData Ib −1;5ubtr
ee obj−〉Obj[2コ、Co1our −hidden obj−〉O
bj[2]、C。
tour;
/* We then correct the colour or a h
idden ORnode (this gets * /
/* ugly! Ve have to do this after co
pying the colours to the * /
/* discrete object because the 1ine
has to representthe */
/本 (OR−node && pen colour) in the ca
se of the hidden pipe * /
/本object、1n which case it +oust be t
rue when the ORis true、 * /
/* whereas it must have the 5pecial
OR1ine traatient when * /
/* vleving that same 1ine as part of
a hidden OR,5orryl * /
if(SEMP(node)−>5value−−or) frightchi
ld = (node pt)LJDATA 2 P(node−〉child
lrenlist);
chi ld obj −DRAW OBJ P(rightchi Id)−
miscrete−p;childrightline = &child o
bj−)Obj[2];Ir(subtree obj−〉Obj[2コ、Co
1our −−Blue &&childrightline−)c。
tour −−Orange) f
subtree obj−xbj[2]、Co1our −Orange;5u
btree obj−和bj[2]、ChangedLiveData Ib
−1;stattc GraphicalValueEval right 1
1nes(node pt node p、int parent 5valu
e)1nti;
int 5value;
5tat1c void do IhmpBase(struct Displ
ayBase tabj) ;5tatic GraphicalValue
5tatic colour;/*auto*/GraphicalValue
old right colour;5truct DisplayBas淋
nevobj 、*chi Idobj ;5truct 0bjectlnf
o ds*cur、*1eft11ne、*rightline、 *chil
drjghtllne;
node pt rightchild;5tatic int depth
−0;if’(DRAW OBJ P(node p)−−1aL) /*Ve
Ignore non−drawingobjects*/
return Grey;
5value −SEN P(node p)−〉5value;1f(sva
lue−or && DRAW OBJ P(node p)−〉hidden
!−0)svalue −OH/*treat hidden as dis
crete objectt/newobj −DRAW OBJ P(nod
e p)−)discrete p;cur −&nevobj−〉Obj[o
]: /*The object 1tselr*/Ieftline −&n
evobj−〉Obj[L]; /*The 1eft hand l1nep
art*/rightline −1newobj−萄bj[2]; /*Th
e right hand 1inepart*/1f(rteval deb
ug & DEBUG RLINES &&(! (rteval debug
l DEBUG LIN田)))
MSG Log(”’%*s Rlght pre: 0bject %d(%
5)static colour%s Ieft%s right%S\n−。
2* depth+1.”−。
5value、 cur−>Modvarl−:>Nue c、ronaat
colour(static colour)。
format colour(Ieftline−釦司our)、 forma
t colour(rlghtllne−窃1our));/*pre act
ion*1
01d right colour −rightline−)cOIour:
/* remember the colour*1
if(svalue −−or && parent 5value −−or
&&(Statie colour −一 GreY l l 5tatic
colour−Blue)) (
rightline−+Co1our −5tatic colour;) e
lse汀(svalue−or I l 5value = xor) 1ri
ghtchild −(node pt)La DATA 2 P(node
p−:>childrenl 1st) ;
chi 1dobj −DRAW OBJ P(rightchi ld)−m
iscreLe p;婁irderMORE DEBUGGINGMSG Ln
g(tkmp van or node: nつ;do DtnipBase(
nevobj) ;MSG Lng(”Ihmp van rightchil
d: n”);do IknapBase(chi 1dobj) ;審end
i r
childrlghtline−&childobj−:<bj[2];/*l
f(childrightline−)cOlour−Blue)*/righ
tline−)Colour −childrightline−Colour
;static colour −rightline−−1co1our;1
f((node yx市11dren 1ist i−NIJLL)&&(jL
a ListEmpty(node p−)chlldren 1ist)))
11JGotoltes(node p−>children 1ist、F
IRST):for(i −1;i<−1J ltemcount(node
p−>children 1ist);l→dept11++;
Elval right 1ines(La DATA P(node p−>
childrenlist)、 5value);
depth−;
La Nextltem(node p−>children 1ist>:#
post action */
1f(old right colourトrigJ1t I ine−tol
our)rightline−)changedLiveData lb −1
;/* Copy the colours through to the
discrete hidden 。
bject */
1f(DRAW OBJ P(node p)−>hidden !−o)co
py hjdden colours(node p);If(rteval
debug & DEBUG RLINES)MSG Log(−魅s rig
ht post: 0bject %s colour %s pen %5l
eft%s right%5Xn−。
2*depth+1 、− ” 。
describe node(svalue、cur−〉Modvarl−>N
ue c) 。
rormat colour(cur−:alour) 。
rormat colour(static colour) 。
format colour(Iertljne−X)Iour)。
format colour(rjghtlfne−)colour)ルret
urn 5tatic colour;static GraphlcaIVa
lueEval 5ubtree(node pt logictree)in
t tree depth −−1;GraphicalValue Ieft
、right;5truct DisplayBase *5ubtree o
bj、*hidden obj;hidden obj −DRAW OBJ
P(Iogictree)−miscrete p;SwapHidden(l
ogictree) :1f((rteval debug & DEBUG
VERBO3E) &&DRAM OBJ P(Iogictree)−>ty
pel−COMPO3E 。
bj)
)1sG Log(”Eval 5ubtree: discrete 1te
s at top of’ tree!\n−):
MT walk bottoa up(logictree、Eval obj
ect、&tree depth);5ubtree obj −DRAM O
BJ P(Iogictree)−閥1screte p;SwapHldde
n(Iogictree) ;return 5ubtree obj−〉Ob
j[0コ、Co1our;static void
Eval expression(PAR3ER5tateaent pt p
arsetree)list pt eval 1ist;1onglrake
l 1stpointer;5truct dispcalc Ivar *I
var object;int 1abeltoken;
tabeltoken ” PARSE P(parsetree−sleft
war p)−>1abel token;1f(labeltoken −
T 5UBRl l parsetree−>ana expr tree p
1−NO比)Ivar object −(struct dlspcalc
1var本)DRAM OBJ P(parsetree−>1eft va
r p);1f(lvar object−>expression 1ist
l= NULL)訂聞AL EvaluateExpression(Iva
r object−>expresSign 13S1);
void
RTEVAL EvaluateColours(PAR8ERstateme
nt pt parsetree)node pt logictree;Gr
aphicalValue 5tatea+ent colour、 Ivar
colour;1f(rteval debg −−−1)rteval d
ebug −get debug flag(”RTEVAL DEBLIG−
) ;Eval expresslon(parsetree) ;1ogic
tree −parsetree−>log expr tree p;if(
logictree−−NULL) (if(rteval debug &
DEBUG VERBO3E)MSG Log(−RTEVAL Evalua
teColors:NLI比logic tr船!n”);
return;
(void)Eval Subtree(logictree) ;state
ment colour −Eval ’1eft lines(logjct
ree、−500);(void)Eval right lines(log
ictree、−499);Ivar colour −Eval Ivar(
parsetree−>1eft var p、statement colo
ur);
1f(PARSE P(parsetree−〉1eft var p)−>t
ok 5value、tok sea p−>vartype−−digtta
l &&
1var colour I−Grey &&5tateIIent colo
ur !−Grey &&1var colour !−5tateIIlen
t colour) IMSG Log(”Statement is 1nc
onsistent with 5elected variablel n”
);
Eval Greyout(logictree);statlc void
DumpDravObject(node pt node p)if(nod
e p −−1ad) (MSSLOgC\t\tDDo:Nul I par
se tree node Xx\n”、nodep);
return:
if(DRAW OBJ P(node p) −−NULL) (MSG L
og(−Xt VIVtDDO:Nul I tree 1teII1%X\n
”、nodep);return;
MSG Log(−%xT:%sH:%d X:X04d Y:X04d C:
%d W:X02d H:X02d\n−。
node p。
format objecttype(DRAW OBJ P(node p)
−>type)。
DRAM OBJ P(node p)−〉hidden。
DRAM OBJ P(node p)−>cot 。
DRAI/ OBJ P(node p)−>1ine。
DRAwOBJ P(node p)−礼onn olTset。
DRAvOBJ P(node p)−〉vidth。
DRAM OBJ P(node p)−>height);static v
oid
do DumpModvar(struct DisplayModvar d
s軸V)MSG IAg(”Modvar %−10,lOs V:%−10,
lOs F:%−3Js S:%−10,los\n”。
my−>Name c、mv−:>Value c、mv−>Flags Qt
5v−>5cale c);Static void
do DuipObjectinfo(struct 0bjectlnfo
ds *oi)if(of−>Type = Obj Pipe)MSG Lo
g(”0bjectinfo T:%−9,9s C:%−8,13s X:%
03d−%03d Y:%03d−%03d\n“・
fora+at objtype(of−>Type)。
forwat colour(oi−心1our)、 of−>X if、 o
i−>Width if、 oi−>Yil。
of−>Height if);
lse
脳Log(
”0bjectinro T:%−9,9s C:%−6.6s X:X03d
Y:X03d V:X03d )I:%03d B:%5r\n−。
foriat objty9e(oi−:>Type)。
format colour(of−)colour)、 of−>X If、
of−>Y il。
ol−>Width ll。
ol−>Height it、 of−〉PercentBlue [1);s
tatic void
do DumpDlsplayltei(struct 0bjectlnro
ds *oi)do DuopObjectinfo(oi);1f(of−
>)kxlvarl−>Nue c[0コ!−’(’) do Duo+pMo
dvar(of−>Modvarl);1r(oi−>Modvar2−>Nu
e c[oコ!−’<’) do Ihmp)4odvar(of−>Mocl
var2);1f(of−>)kxlvar3−>Nue c[0]!’<’)
do kpModvar(oi−>Modvar3);static void
do DXffipBase(struct DisplayBase *0b
j)int i;
1f(obj −−NU比)(
MSG Log(−Base display ite[l1is NULL\
n−) ;return;
for(1= 0; i < 3: i++)do DuapObjectin
fo(&obj−:<bj[il) ;for(1−0; i < 3; i+
+)do DullpModvar(&obj−)11odvar[il) ;
オブジェクト1 オブジェクト2
NOTを追加する前 NOTボックス追加する後オブジェクト1
叶
N−
図16bへ
り
国際調査報告
フロントページの続き
(81)指定回 EP(AT、BE、CH,DE。
DK、ES、FR,GB、GR,IE、IT、LU、MC,NL、PT、SE)
、0A(BF、BJ、CF、CG、 CI、 CM、 GA、 GN、 ML、
MR,NE、 SN。
TD、 TG)、 AT、 AU、 BB、 BG、 BR,CA。
CH,CZ、 DE、 DK、 ES、 FI、 GB、 HU、JP、 KR
,KZ、 LK、 LU、 MG、 MN、 MW、 NL、NO,NZ;PL
、 PT、 RO,RU、 SD、 SE。
SK、UA
(72)発明者 レイブンースクロフト、イアンイギリス国ウィルドジャー、ス
ウィンドン、タムワース、ドライブ、101
Claims (1)
- 【特許請求の範囲】 1.図形表示ウィンドウ(116)を生成することができる種類のコンピュータ システムの表示装置(114)に、所定の文法によって定義される構文関係でグ ループ分けされる一組の辞書ユニットから構成され、それらの辞書ユニットの少 なくとも1つの部分集合はデータを表現できるような英数字プロセス制御ステー トメント(136、138)により表現されることが可能な種類である物理プロ セス(102)の図形表示表現を生成するプロセス制御の方法において、 表示すべきプロセス制御ステートメント(300−314)を少なくとも1つの プロセス制御コンピュータ手段(104、106)で供給することと;前記プロ セス制御コンピュータ手段と通信するコンピュータ処理系(112)ステートメ ントアナライザ手段(316)により、表示すべきプロセス制御ステートメント に対応する解析ツリー(318)を生成することと;事前プログラムメモリ手段 で、前記辞書ユニットの少なくとも一部を表現するための一組の事前定義済図形 アイコン(160−170)を確定することと;表示生成手段(326、328 )が前記ステートメントアナライザ手段と通信して、そこから前記解析ツリーを 受信し且つ前記一組の事前定義済図形アイコンのうち選択されたアイコンを前記 表示ウィンのドウの中に、表示すべき前記プロセス制御ステートメントを構成し ている前記辞書ユニットの構文関係に対応する空間的関係をもって配置するよう に動作することと;プロセス制御コンピュータ手段により表示すべき前記プロセ ス制御ステートメントの前記辞書ユニットのうち少なくとも1つに対応するデー タ(130)を供給することと;表示すべき前記プロセス制御ステートメントに より定義される構文関係に応答してコンピュータ実現評価手段により前記供給さ れたデータに基づいて前記表示ウィンドウにおける前記選択された図形アイコン の視覚特性を確定し、それにより、少なくとも第1のプロセス制御条件を表示さ れたアイコンの視覚特性に基づいて第2のプロセス制御条件から視覚的に区別で きるようにすることとを特徴とする方法。 2.前記表示生成手段は前記一組の事前定義済図形アイコンのうち選択されたア イコンを前記表示ウィンドウの中に相互結合ネットワークとして配置する請求項 1記載の方法。 3.前記供給されたデータは動的に変化するデータである請求項1又は2記載の 方法。 4.前記視覚特性は色である請求項1から3のいずれか1項に記載の方法。 5.前記視覚特性は色であり、第1の色は第1の条件を表現するために使用され 且つ第2の色は第2の条件を表現するために使用される請求項1から4のいずれ か1項に記載の方法。 6.図形表示ウィンドウ(116)を生成することができる種類のコンピュータ システムの表示装置(114)に、所定の文法によって定義される構文関係でグ ループ分けされる一組の辞書ユニットから構成され、それらの辞書ユニットの少 なくとも1つの部分集合はデータを表現できるような英数字プロセス制御ステー トメント(136、138)により表現されることが可能な種類の物理プロセス (102)の図形表示表現を生成するプロセス制御システムにおいて、 表示すべきプロセス制御ステートメント(300−314)を供給する少なくと も1つのプロセス制御コンピュタ手段(104、106)と;前記プロセス制御 コンピュータ手段と通信し、表示すべきプロセス制御ステートメントに対応する 解析ツリー(318)を生成するコンピュータ処理系(112)ステートメント アナライザ手段(316)と;前記辞書ユニットの少なくとも一部分を表現する ための一組の事前定義済図形アイコン(326、328)を確定する事前プログ ラムメモリ手段と;前記ステートメントアナライザ手段と通信して、そこから前 記解析ツリーを受信し且つ前記一組の事前定義済図形アイコンのうち選択された アイコンを前記表示ウィンドウに、表示すべき前記プロセス制御ステートメント を構成している前記辞書ユニットの構文関係に対応する空間的関係をもって配置 するように動作する表示生成手段(326、328)と;プロセス制御コンピュ ータ手段は、更に、表示すべき前記プロセス制御ステートメントの前記辞書ユニ ットのうち少なくとも1つに対応するデータ(130)を供給することと;表示 すべき前記プロセス制御ステートメントにより定義される構文関係に応答して、 前記供給されたデータに基づいて前記表示ウィンドウにおける前記選択された図 形アイコンの視覚特性を確定し、それにより、少なくとも第1の制御条件を表示 されたアイコンの視覚特性に基づいて第2のプロセス制御条件と区別できるよう にするコンピュータ処理系評価手段(132)とを具備するシステム。 7.前記表示生成手段は前記一組の事前定義済図形アイコンのうち選択されたア イコンを前記表示ウィンドウの中に相互結合ネットワークとして配置する請求項 6記載のシステム。 8.前記供給されたデータは動的に変化するデータである請求項6又は7記載の システム。 9.前記視覚特性は色である請求項6から8のいずれか1項に記載のシステム。 10.第1の色は第1の条件を表現するために使用され且つ第2の色は第2の条 件を表現するために使用される請求項6から9のいずれか1項に記載のシステム 。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US861,371 | 1992-03-31 | ||
| US07/861,371 US5408603A (en) | 1992-03-31 | 1992-03-31 | Global process control information system and method |
| PCT/EP1993/000754 WO1993020510A1 (en) | 1992-03-31 | 1993-03-29 | Global process control information system and method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07505492A true JPH07505492A (ja) | 1995-06-15 |
Family
ID=25335614
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5517073A Pending JPH07505492A (ja) | 1992-03-31 | 1993-03-29 | 大域プロセス制御情報システム及び方法 |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US5408603A (ja) |
| EP (1) | EP0634032B1 (ja) |
| JP (1) | JPH07505492A (ja) |
| KR (1) | KR100329142B1 (ja) |
| AU (1) | AU3890293A (ja) |
| CA (1) | CA2130801C (ja) |
| DE (1) | DE69308293T2 (ja) |
| ES (1) | ES2098733T3 (ja) |
| MX (1) | MX9301801A (ja) |
| WO (1) | WO1993020510A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011060010A (ja) * | 2009-09-10 | 2011-03-24 | Mitsubishi Heavy Ind Ltd | 表示システム及び表示方法 |
Families Citing this family (97)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1994010645A1 (en) * | 1992-10-28 | 1994-05-11 | Intellution, Inc. | A dynamic graphical system configuration utility |
| CA2643234C (en) * | 1993-10-29 | 2012-05-15 | Microsoft Corporation | Method and system for generating a computer program |
| US6034681A (en) * | 1993-12-17 | 2000-03-07 | International Business Machines Corp. | Dynamic data link interface in a graphic user interface |
| US5812853A (en) * | 1994-04-11 | 1998-09-22 | Lucent Technologies Inc. | Method and apparatus for parsing source code using prefix analysis |
| US5526268A (en) * | 1994-05-11 | 1996-06-11 | Westinghouse Electric Corporation | Dynamic language changing process graphics |
| EP1174792A3 (en) * | 1994-05-16 | 2007-07-25 | Apple Computer, Inc. | A graphical user interface and method |
| US5555364A (en) * | 1994-08-23 | 1996-09-10 | Prosoft Corporation | Windowed computer display |
| US5611059A (en) * | 1994-09-02 | 1997-03-11 | Square D Company | Prelinked parameter configuration, automatic graphical linking, and distributed database configuration for devices within an automated monitoring/control system |
| US5802361A (en) * | 1994-09-30 | 1998-09-01 | Apple Computer, Inc. | Method and system for searching graphic images and videos |
| US6426759B1 (en) * | 1995-10-20 | 2002-07-30 | Confer Software, Inc. | Apparatus and method for managing changes of computerized medical protocols |
| US5831607A (en) * | 1996-01-25 | 1998-11-03 | International Business Machines Corporation | Method for adapting multiple screens of information for access and use on a single graphical panel in a computer system |
| US6094600A (en) * | 1996-02-06 | 2000-07-25 | Fisher-Rosemount Systems, Inc. | System and method for managing a transaction database of records of changes to field device configurations |
| US5768148A (en) * | 1996-04-03 | 1998-06-16 | General Electric Company | Man machine interface for power management control systems |
| US6901299B1 (en) * | 1996-04-03 | 2005-05-31 | Don Whitehead | Man machine interface for power management control systems |
| US5940294A (en) * | 1996-04-12 | 1999-08-17 | Fisher-Rosemont Systems, Inc. | System for assisting configuring a process control environment |
| US6868538B1 (en) | 1996-04-12 | 2005-03-15 | Fisher-Rosemount Systems, Inc. | Object-oriented programmable controller |
| US5838563A (en) * | 1996-04-12 | 1998-11-17 | Fisher-Rosemont Systems, Inc. | System for configuring a process control environment |
| US5984502A (en) | 1996-06-14 | 1999-11-16 | The Foxboro Company | Keypad annunciator graphical user interface |
| US5793366A (en) * | 1996-11-12 | 1998-08-11 | Sony Corporation | Graphical display of an animated data stream between devices on a bus |
| US7342581B2 (en) * | 1996-07-18 | 2008-03-11 | Computer Associates Think, Inc. | Method and apparatus for displaying 3-D state indicators |
| US5802533A (en) * | 1996-08-07 | 1998-09-01 | Walker; Randall C. | Text processor |
| EP0825506B1 (en) * | 1996-08-20 | 2013-03-06 | Invensys Systems, Inc. | Methods and apparatus for remote process control |
| KR19980035431A (ko) * | 1996-11-13 | 1998-08-05 | 김광호 | 다국어 입력 설정 변환 방법 |
| US6032122A (en) * | 1997-03-14 | 2000-02-29 | Bell & Howell Mail And Messaging Technologies Company | Systems, methods and computer program products for monitoring and controlling mail processing devices |
| US6313880B1 (en) | 1997-04-03 | 2001-11-06 | Sony Corporation | Display with one or more display windows and placement dependent cursor and function control |
| US5926176A (en) * | 1997-07-31 | 1999-07-20 | Think & Do Software, Inc. | Control program tracking and display system |
| US6314562B1 (en) | 1997-09-12 | 2001-11-06 | Microsoft Corporation | Method and system for anticipatory optimization of computer programs |
| US6009466A (en) * | 1997-10-31 | 1999-12-28 | International Business Machines Corporation | Network management system for enabling a user to configure a network of storage devices via a graphical user interface |
| DE19816795A1 (de) * | 1998-04-16 | 1999-10-21 | Bosch Gmbh Robert | Verfahren zur Darstellung von bewegten Objekten mit Bitmapformat auf einer matrixförmigen Anzeigevorrichtung |
| US6748451B2 (en) | 1998-05-26 | 2004-06-08 | Dow Global Technologies Inc. | Distributed computing environment using real-time scheduling logic and time deterministic architecture |
| US6745384B1 (en) * | 1998-05-29 | 2004-06-01 | Microsoft Corporation | Anticipatory optimization with composite folding |
| US6647301B1 (en) | 1999-04-22 | 2003-11-11 | Dow Global Technologies Inc. | Process control system with integrated safety control system |
| US7124375B1 (en) * | 1999-05-11 | 2006-10-17 | California Institute Of Technology | Color monitoring and analysis for color vision deficient individuals |
| US7272815B1 (en) | 1999-05-17 | 2007-09-18 | Invensys Systems, Inc. | Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects |
| WO2000070417A1 (en) | 1999-05-17 | 2000-11-23 | The Foxboro Company | Process control configuration system with parameterized objects |
| US6754885B1 (en) | 1999-05-17 | 2004-06-22 | Invensys Systems, Inc. | Methods and apparatus for controlling object appearance in a process control configuration system |
| US7089530B1 (en) * | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
| US7096465B1 (en) | 1999-05-17 | 2006-08-22 | Invensys Systems, Inc. | Process control configuration system with parameterized objects |
| US6788980B1 (en) * | 1999-06-11 | 2004-09-07 | Invensys Systems, Inc. | Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network |
| US6618630B1 (en) | 1999-07-08 | 2003-09-09 | Fisher-Rosemount Systems, Inc. | User interface that integrates a process control configuration system and a field device management system |
| DE50009492D1 (de) * | 1999-07-28 | 2005-03-17 | Siemens Ag | Verfahren zum aufbau eines bildes für eine prozessvisualisierung |
| US6510352B1 (en) | 1999-07-29 | 2003-01-21 | The Foxboro Company | Methods and apparatus for object-based process control |
| DE19942315A1 (de) * | 1999-09-04 | 2001-05-17 | Gfs Systemtechnik Gmbh & Co Kg | Verfahren zur Konfiguration und Parametrierung eines Computer-Programmes für den Betrieb einer Anlage zur Prozeßdatenverarbeitung |
| EP1250702B1 (de) * | 2000-01-27 | 2005-06-08 | Siemens Aktiengesellschaft | System und verfahren zur blickfokussierten sprachverarbeitung mit erzeugung eines visuellen feedbacksignals |
| AUPQ966400A0 (en) * | 2000-08-24 | 2000-09-21 | Xemplex Pty Ltd | Method of graphically defining a formula |
| US7310774B1 (en) | 2000-08-28 | 2007-12-18 | Sanavigator, Inc. | Method for displaying switch port information in a network topology display |
| US6836275B1 (en) * | 2000-08-28 | 2004-12-28 | Sanavigator, Inc. | Method for distinguishing between single and multiple connections in a network topology |
| US6833850B1 (en) * | 2000-08-28 | 2004-12-21 | Sanavigator, Inc. | Method for simplifying display of complex network connections through partial overlap of connections in displayed segments |
| AU2001296773A1 (en) * | 2000-10-10 | 2002-04-22 | University Of Utah Research Foundation | Method and apparatus for monitoring dynamic systems using an integrated graphic display for the n-dimensional representations of critical functions |
| ITBO20000608A1 (it) * | 2000-10-18 | 2002-04-18 | Gd Spa | Metodo e macchina automatica per la lavorazione di un prodotto |
| US20020133521A1 (en) * | 2001-03-15 | 2002-09-19 | Campbell Gregory A. | System and method for text delivery |
| JP4122974B2 (ja) * | 2001-03-29 | 2008-07-23 | 三菱電機株式会社 | プログラミングツール |
| US7000199B2 (en) | 2001-05-09 | 2006-02-14 | Fairisaac And Company Inc. | Methodology for viewing large strategies via a computer workstation |
| US20020196282A1 (en) * | 2001-06-20 | 2002-12-26 | Washington Jeffrey D. | Collector node for a graphical program |
| US6954904B2 (en) * | 2001-08-15 | 2005-10-11 | National Instruments Corporation | Creating a graphical program to configure one or more switch devices |
| US7219310B2 (en) * | 2001-11-05 | 2007-05-15 | Xerox Corporation | Instruction generating system and process via symbolic representations |
| US7242991B2 (en) | 2002-04-15 | 2007-07-10 | Invensys Systems, Inc. | Workflow control configurator for use with process, factory-floor, environmental, computer aided manufacturing-based or other control system |
| US20030218619A1 (en) * | 2002-05-21 | 2003-11-27 | Microsoft Corporation | System and method for interactive rotation of pie chart |
| US6972762B2 (en) * | 2002-05-21 | 2005-12-06 | Microsoft Corporation | System and method for interactive grouping of pie chart slices |
| US7219300B2 (en) * | 2002-09-30 | 2007-05-15 | Sanavigator, Inc. | Method and system for generating a network monitoring display with animated utilization information |
| US20040122641A1 (en) * | 2002-12-20 | 2004-06-24 | Lab2Plant, Inc. (An Indiana Corporation) | System and method for chemical process scale-up and preliminary design and analysis |
| EP1463052A1 (en) * | 2003-03-25 | 2004-09-29 | Deutsche Thomson-Brandt Gmbh | Method for representing animated menu buttons |
| US7665025B2 (en) * | 2003-04-16 | 2010-02-16 | The Mathworks, Inc. | Signal navigation and label propagation in block diagrams |
| US7328156B2 (en) * | 2003-07-17 | 2008-02-05 | International Business Machines Corporation | Computational linguistic statements for providing an autonomic computing environment |
| US7979841B2 (en) * | 2003-07-28 | 2011-07-12 | National Instruments Corporation | Programmatically determining calling information of a graphical program |
| US7761923B2 (en) | 2004-03-01 | 2010-07-20 | Invensys Systems, Inc. | Process control methods and apparatus for intrusion detection, protection and network hardening |
| JP2007536634A (ja) * | 2004-05-04 | 2007-12-13 | フィッシャー−ローズマウント・システムズ・インコーポレーテッド | プロセス制御システムのためのサービス指向型アーキテクチャ |
| US7729789B2 (en) | 2004-05-04 | 2010-06-01 | Fisher-Rosemount Systems, Inc. | Process plant monitoring based on multivariate statistical analysis and on-line process simulation |
| US7577561B2 (en) * | 2004-11-09 | 2009-08-18 | Sony Online Entertainment Llc | System and method for generating a target language markup language text template |
| US20060155753A1 (en) * | 2004-11-11 | 2006-07-13 | Marc Asher | Global asynchronous serialized transaction identifier |
| US20060155770A1 (en) * | 2004-11-11 | 2006-07-13 | Ipdev Co. | System and method for time-based allocation of unique transaction identifiers in a multi-server system |
| US20060123098A1 (en) * | 2004-11-11 | 2006-06-08 | Ipdev | Multi-system auto-failure web-based system with dynamic session recovery |
| US7844943B2 (en) * | 2005-06-20 | 2010-11-30 | The Mathworks, Inc. | System and method for providing indicators of textual items having intrinsic executable computational meaning within a graphical language environment |
| CN1953083A (zh) * | 2005-10-21 | 2007-04-25 | 鸿富锦精密工业(深圳)有限公司 | 机芯量测系统及方法 |
| US8050784B2 (en) * | 2005-11-15 | 2011-11-01 | Rockwell Automation Technologies, Inc. | Integrated programmer reference for industrial control device data |
| US8683314B2 (en) * | 2006-01-13 | 2014-03-25 | Ricoh Co., Ltd. | Tree pruning of icon trees via subtree selection using tree functionals |
| WO2007123753A2 (en) * | 2006-03-30 | 2007-11-01 | Invensys Systems, Inc. | Digital data processing apparatus and methods for improving plant performance |
| US20070233854A1 (en) * | 2006-03-31 | 2007-10-04 | Microsoft Corporation | Management status summaries |
| JP4730606B2 (ja) * | 2006-04-28 | 2011-07-20 | 横河電機株式会社 | プラント運転支援装置 |
| US7831526B1 (en) | 2006-08-25 | 2010-11-09 | Fair Isaac Corporation | Article and method for finding a compact representation to visualize complex decision trees |
| US8200609B2 (en) | 2007-08-31 | 2012-06-12 | Fair Isaac Corporation | Construction of decision logic with graphs |
| US8266090B2 (en) | 2007-08-31 | 2012-09-11 | Fair Isaac Corporation | Color-coded visual comparison of decision logic |
| US8312389B2 (en) | 2007-08-31 | 2012-11-13 | Fair Isaac Corporation | Visualization of decision logic |
| CN104407518B (zh) | 2008-06-20 | 2017-05-31 | 因文西斯系统公司 | 对用于过程控制的实际和仿真设施进行交互的系统和方法 |
| US8237716B2 (en) | 2008-09-08 | 2012-08-07 | Fair Isaac Corporation | Algorithm for drawing directed acyclic graphs |
| US8730241B2 (en) | 2008-09-08 | 2014-05-20 | Fair Isaac Corporation | Techniques for drawing curved edges in graphs |
| US8280836B2 (en) | 2008-09-08 | 2012-10-02 | Fair Isaac Corporation | Converting unordered graphs to oblivious read once ordered graph representation |
| US8570327B2 (en) * | 2008-11-14 | 2013-10-29 | General Electric Company | Systems and methods involving graphically displaying control systems |
| US8881039B2 (en) | 2009-03-13 | 2014-11-04 | Fisher-Rosemount Systems, Inc. | Scaling composite shapes for a graphical human-machine interface |
| US8127060B2 (en) | 2009-05-29 | 2012-02-28 | Invensys Systems, Inc | Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware |
| US8463964B2 (en) | 2009-05-29 | 2013-06-11 | Invensys Systems, Inc. | Methods and apparatus for control configuration with enhanced change-tracking |
| US8825183B2 (en) * | 2010-03-22 | 2014-09-02 | Fisher-Rosemount Systems, Inc. | Methods for a data driven interface based on relationships between process control tags |
| US9323418B2 (en) * | 2011-04-29 | 2016-04-26 | The United States Of America As Represented By Secretary Of The Navy | Method for analyzing GUI design affordances |
| USD677270S1 (en) * | 2012-02-28 | 2013-03-05 | Microsoft Corporation | Display screen with icon set |
| US9043757B2 (en) * | 2012-12-13 | 2015-05-26 | Oracle International Corporation | Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files |
| DE112013006481B4 (de) * | 2013-02-22 | 2017-01-12 | Mitsubishi Electric Corporation | Systementwicklungsgerät, Systementwicklungsverfahren und Systementwicklungsprogramm |
| JP5908046B1 (ja) * | 2014-10-21 | 2016-04-26 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 複数領域を結合して表示する方法、装置及びプログラム。 |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4315315A (en) * | 1971-03-09 | 1982-02-09 | The Johns Hopkins University | Graphical automatic programming |
| US4181954A (en) * | 1971-05-19 | 1980-01-01 | Chevron Research Company | Computer-aided graphics system including a computerized material control system and method of using same |
| US4217658A (en) * | 1977-07-25 | 1980-08-12 | Struthers-Dunn, Inc. | Process control system that controls its outputs according to the results of successive analysis of the vertical input columns of a hypothetical ladder diagram |
| JPS56162103A (en) * | 1980-05-16 | 1981-12-12 | Toshiba Mach Co Ltd | Sequence control device |
| US4396977A (en) * | 1980-06-16 | 1983-08-02 | Forney Engineering Company | Industrial process control system |
| US4413314A (en) * | 1980-06-16 | 1983-11-01 | Forney Engineering Company | Industrial process control system |
| JPS5839195A (ja) * | 1981-08-31 | 1983-03-07 | Mitsubishi Electric Corp | 遠方監視制御装置の親局装置 |
| JPS58155414A (ja) * | 1982-03-11 | 1983-09-16 | Fanuc Ltd | ラダ−ダイヤグラム表示方式 |
| US4488258A (en) * | 1982-09-20 | 1984-12-11 | Allen-Bradley | Programmable controller with control program comments |
| US4675147A (en) * | 1983-04-06 | 1987-06-23 | Westinghouse Electic Corp. | Generating an integrated graphic display of the safety status of a complex process plant |
| JPS59186007A (ja) * | 1983-04-06 | 1984-10-22 | Fanuc Ltd | プログラマブルコントロ−ラのアラ−ム表示方式 |
| JPS59205605A (ja) * | 1983-05-07 | 1984-11-21 | Hitachi Ltd | シ−ケンス制御装置 |
| US4638452A (en) * | 1984-02-27 | 1987-01-20 | Allen-Bradley Company, Inc. | Programmable controller with dynamically altered programmable real time interrupt interval |
| US4648028A (en) * | 1984-08-31 | 1987-03-03 | General Electric Co. | Color enhanced display for a numerical control system |
| US4663704A (en) * | 1984-12-03 | 1987-05-05 | Westinghouse Electric Corp. | Universal process control device and method for developing a process control loop program |
| JPS6361597A (ja) * | 1986-09-01 | 1988-03-17 | Mitsubishi Electric Corp | 遠方監視制御装置の親局装置 |
| US4965745A (en) * | 1987-12-18 | 1990-10-23 | General Electric Company | YIQ based color cell texture |
| US5055996A (en) * | 1988-10-06 | 1991-10-08 | Grumman Aerospace Corporation | Central control and monitor unit |
-
1992
- 1992-03-31 US US07/861,371 patent/US5408603A/en not_active Expired - Fee Related
-
1993
- 1993-03-29 EP EP93907844A patent/EP0634032B1/en not_active Expired - Lifetime
- 1993-03-29 AU AU38902/93A patent/AU3890293A/en not_active Abandoned
- 1993-03-29 ES ES93907844T patent/ES2098733T3/es not_active Expired - Lifetime
- 1993-03-29 WO PCT/EP1993/000754 patent/WO1993020510A1/en not_active Ceased
- 1993-03-29 DE DE69308293T patent/DE69308293T2/de not_active Expired - Fee Related
- 1993-03-29 JP JP5517073A patent/JPH07505492A/ja active Pending
- 1993-03-29 CA CA002130801A patent/CA2130801C/en not_active Expired - Fee Related
- 1993-03-30 MX MX9301801A patent/MX9301801A/es not_active IP Right Cessation
-
1994
- 1994-09-30 KR KR1019940703498A patent/KR100329142B1/ko not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011060010A (ja) * | 2009-09-10 | 2011-03-24 | Mitsubishi Heavy Ind Ltd | 表示システム及び表示方法 |
| US8773438B2 (en) | 2009-09-10 | 2014-07-08 | Mitsubishi Heavy Industries, Ltd. | Display system and display method |
Also Published As
| Publication number | Publication date |
|---|---|
| DE69308293D1 (de) | 1997-04-03 |
| CA2130801A1 (en) | 1993-10-14 |
| EP0634032A1 (en) | 1995-01-18 |
| DE69308293T2 (de) | 1997-09-25 |
| KR950701103A (ko) | 1995-02-20 |
| AU3890293A (en) | 1993-11-08 |
| WO1993020510A1 (en) | 1993-10-14 |
| EP0634032B1 (en) | 1997-02-26 |
| KR100329142B1 (ko) | 2002-10-25 |
| CA2130801C (en) | 2001-04-17 |
| ES2098733T3 (es) | 1997-05-01 |
| US5408603A (en) | 1995-04-18 |
| MX9301801A (es) | 1994-01-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH07505492A (ja) | 大域プロセス制御情報システム及び方法 | |
| Vlissides et al. | Unidraw: A framework for building domain-specific graphical editors | |
| Weitzman et al. | Automatic presentation of multimedia documents using relational grammars | |
| US5732277A (en) | Graphical system for modelling a process and associated method | |
| US5610828A (en) | Graphical system for modelling a process and associated method | |
| EP0242131A2 (en) | Graphical system for modelling a process and associated method | |
| US20080019378A1 (en) | Generating a data flow diagram | |
| US20080022270A1 (en) | Case Structure Replacement in a Data Flow Diagram | |
| CA2109182A1 (en) | Computer simulation system and method for specifying the behavior of graphical operator interfaces | |
| KR20000069716A (ko) | 계층 상태 차트를 구현하는 장치 및 그것의 사용 방법 및 장치 | |
| Koskimies et al. | SCED: A tool for dynamic modelling of object systems | |
| US8798971B2 (en) | System and method for using a truth table graphical function in a statechart | |
| US8423977B2 (en) | Implementing a class oriented data flow program on a programmable hardware element | |
| Lalioti et al. | Visualisation for validation | |
| US8375355B2 (en) | Conversion of a class oriented data flow program to a structure oriented data flow program | |
| Clarisse et al. | Vicon: A visual icon manager | |
| Koivunen et al. | HutWindows: an improved architecture for a user interface management system | |
| US20040205669A1 (en) | Arrangement to perform object-oriented programming | |
| Ferrucci et al. | Exploiting visual languages in software engineering | |
| US8458682B2 (en) | Conversion of a class oriented data flow program to a structure oriented data flow program with dynamic interpretation of data types | |
| Di Gesu et al. | The iconic interface for the PIctorial C Language | |
| Neelamkavil et al. | Separating graphics from application in the design of user interfaces | |
| Poswig et al. | Interactive animation of visual program execution | |
| Deotarse | Visual and Persistent PDEVS Statecharts Models with Support for Super-Ports and Super-Transitions | |
| Ushakov et al. | Visual programming in R-technology: Concepts, systems and perspectives |