(57)【特許請求の範囲】
【請求項１】
制御系の設計に用いられるブロック線図を保持する保持部と、
前記保持部に保持されるブロック線図のブロックに対する指定を受け付ける指定受付部と、
前記指定受付部によって指定が受け付けられたブロックについての第１演算式を導出する第１演算式導出部と、そうでないブロックについての第２演算式を導出する第２演算式導出部と、
前記第１演算式および前記第２演算式をプログラムに変換して、前記第１演算式に対応する部分と前記第２演算式に対応する部分の双方を含み、かつ、前記第１演算式に対応する部分と前記第２演算式に対応する部分とが区別して記述される一つのソースコードを生成する変換部と、を備えることを特徴とするブロック線図処理装置。
【請求項２】
前記一つのソースコードは、条件が有効となる場合に前記第１演算式に対応する部分と前記第２演算式に対応する部分の双方が実行され、条件が無効となる場合に前記第１演算式に対応する部分と前記第２演算式に対応する部分のいずれか一方が実行されるように記述される条件式に対応する部分をさらに含む、ことを特徴とする請求項１に記載のブロック線図処理装置。
【請求項３】
前記ブロック線図は、信号伝達を表す矢印と、複数の矢印の合流点とを含み、
前記第１演算式導出部は、前記指定受付部によって指定が受け付けられたブロックとそうでないブロックとの間に存在する矢印および合流点を含めて前記第１演算式を導出し、
前記第２演算式導出部は、前記第１演算式の導出に含まれない矢印および合流点を含めて前記第２演算式を導出することを特徴とする請求項１または２に記載のブロック線図処理装置。
【請求項４】
制御系の設計に用いられるブロック線図を保持部に保持する機能と、
前記保持部に保持されるブロック線図のブロックに対する指定を受け付ける機能と、
指定が受け付けられたブロックについての第１演算式を導出する機能と、そうでないブロックについての第２演算式を導出する機能と、
前記第１演算式および前記第２演算式をプログラムに変換して、前記第１演算式に対応する部分と前記第２演算式に対応する部分の双方を含み、かつ、前記第１演算式に対応する部分と前記第２演算式に対応する部分とが区別して記述される一つのソースコードを生成する機能と、をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項５】
制御系の制御器に対応するブロックと制御系の制御対象に対応するブロックとを有するブロック線図を保持部に保持するステップと、
前記制御器に対応するブロックについての第１演算式を導出するステップと、
前記制御対象に対応するブロックについての第２演算式を導出するステップと、
前記第１演算式および前記第２演算式をプログラムに変換して、前記第１演算式に対応する部分と前記第２演算式に対応する部分の双方を含み、かつ、前記第１演算式に対応する部分と前記第２演算式に対応する部分とが区別して記述される一つのソースコードを生成するステップと、を含むことを特徴とするブロック線図の処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロック線図の処理技術に関し、特に制御系の設計に用いられるブロック線図の処理技術に関する。
【背景技術】
【０００２】
ブロック線図とは、自動制御系などの動的な系の中での信号伝達の様子を表す線図であり、一般的には合流点、分岐点、ブロックの３つの要素をアークと呼ばれる矢印で接続することで作成される。ブロック線図は制御内容の図形的な把握を可能とする。
【０００３】
制御設計の分野では、設計のアイデアをブロック線図に落とし込み、そのブロック線図をシミュレータに読み込ませてシミュレートする手法が用いられている。シミュレーション結果が良好な場合、実際に実機に実装されて動作試験等が行われる。
【０００４】
ブロック線図を用いた制御設計ツールの代表的なものとしてＭａｔｈＷｏｒｋｓ社が提供するＭＡＴＬＡＢ（登録商標）／Ｓｉｍｕｌｉｎｋ（登録商標）がある。このツールを用いて制御設計を行う場合、ユーザはＭＡＴＬＡＢの行列演算機能や組み込み関数を用いて制御器の設計および制御対象の数式定義を行う。設計した制御器と定義した制御対象とを用いてＳｉｍｕｌｉｎｋで制御系をブロック線図の形で記述し、制御系のシミュレーションおよび制御器の機械装置への実装を行う。
また、特許文献１には制御ロジック図を構成する制御ブロックの演算順序を自動的に決定する方法及び装置が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１２８０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＭＡＴＬＡＢ／Ｓｉｍｕｌｉｎｋに代表される従来の制御設計ツールでは、ブロック線図の編集機能はまだ十分とは言えない。特にシミュレートした制御系のブロック線図を実機へ実装する場合、そのブロック線図をそのまま実機に実装することは難しい。この場合、実機のモデルである制御対象ブロックを削除し、入力・出力を示すブロックを新たに加える等、制御対象周りの入力部分と出力部分を大幅に書き換える必要があった。
【０００７】
本発明はこうした課題に鑑みてなされたものであり、その目的は、制御設計の作業効率を高めることができるブロック線図の処理技術の提供にある。
【課題を解決するための手段】
【０００８】
本発明のある態様はブロック線図処理装置に関する。このブロック線図処理装置は、制御系の設計に用いられるブロック線図を保持する保持部と、保持部に保持されるブロック線図のブロックに対する指定を受け付ける指定受付部と、を備える。指定受付部によって指定が受け付けられたブロックとそうでないブロックとでプログラムへの変換処理を変えた。
【０００９】
この態様によると、ブロック線図をプログラムに変換する際、ブロックに対する処理を指定の有無で変えることができる。
【００１０】
本発明の別の態様は、ブロック線図の処理方法である。この方法は、制御系の制御器に対応するブロックと制御系の制御対象に対応するブロックとを有するブロック線図を保持部に保持するステップと、保持部によって保持されるブロック線図のプログラムへの変換処理の際、制御器に対応するブロックと制御対象に対応するブロックとで変換処理を変えるステップと、を含む。
【００１１】
この態様によると、制御器に対応するブロック、制御対象に対応するブロックのそれぞれに適した変換処理を施すことができる。
【００１２】
なお、以上の構成要素の任意の組み合わせや、本発明の構成要素や表現を装置、方法、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１３】
本発明によれば、制御設計の作業効率を高めることができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態に係るブロック線図処理装置の機能および構成を示すブロック図である。
【図２】図１の線図データ保持部に保持される線図データのうちブロックに関する部分の一例を示すデータ構造図である。
【図３】図３（ａ）、（ｂ）は、ディスプレイに表示される例示的なブロック線図を示す代表画面図である。
【図４】図４（ａ）、（ｂ）は、制御対象ブロックがクリックされた場合のブロック線図を示す代表画面図である。
【図５】図５（ａ）、（ｂ）は、ブロック線図をソースコードへ変換する際のグループ分けを説明するための説明図である。
【図６】図１のブロック線図処理装置における一連の処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。
【００１６】
実施の形態に係るブロック線図処理装置は、ブロック線図をプログラムすなわちソースコードに変換する前に、ユーザにブロックの属性を指定させる。ブロック線図処理装置は、ソースコードへの変換の際はブロックを属性ごとに分けて処理する。このようにして生成されるソースコードでは、各属性に対応する部分を容易に区別することができる。
【００１７】
例えばブロックが制御器であるか制御対象であるかという基準に基づきブロックの属性を指定する場合、生成されるソースコードにおいて、制御器に対応する部分と制御対象に対応する部分とを容易に区別できる。したがって、シミュレーションに使用する場合は両方の部分をコンパイルし、実機に実装する場合は制御対象部分をコンパイルから除外するよう指定するといったように、ひとつのソースコードを使用目的に合わせて使い分けできる。
【００１８】
その結果、従来のようにシミュレーション時におけるブロック線図と実装時におけるブロック線図とを書き分ける必要はなく、ひとつのブロック線図をシミュレーションにも実装にも使用できるようになる。これにより、ブロック線図の管理がより容易となり、ブロック線図を使用した制御設計の作業効率が向上する。
【００１９】
図１は、実施の形態に係るブロック線図処理装置１０の機能および構成を示すブロック図である。ここに示す各ブロックは、ハードウエア的には、コンピュータのＣＰＵ（central processing unit）をはじめとする素子や機械装置で実現でき、ソフトウエア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウエア、ソフトウエアの組合せによっていろいろなかたちで実現できることは、本明細書に触れた当業者には理解されるところである。
【００２０】
ブロック線図処理装置１０は、マウスやキーボードなどの入力手段１２から入力される入力情報に基づいてブロック線図を生成することによって取得し、または外部からブロック線図の線図データを取得する。ブロック線図処理装置１０は、取得されたブロック線図を編集する。ブロック線図処理装置１０は、例えば生成されたブロック線図やその編集状況や生成されたソースコードをディスプレイ１４に表示させる。
ブロック線図処理装置１０は、ブロック線図取得部２０と、線図データ保持部３０と、指定受付部４０と、処理部５０と、表示制御部６０と、を備える。
【００２１】
ブロック線図取得部２０は線図データを取得する。ブロック線図取得部２０は、ユーザからの入力情報に基づいてブロック線図を生成し、その線図データを線図データ保持部３０に登録する。線図データはブロック線図に対応するデータであり、表示制御部６０によってブロック線図に変換されてディスプレイ１４に表示されうるデータである。ブロック線図取得部２０においては、例えばＭａｔｈＷｏｒｋｓ社が提供するＭＡＴＬＡＢ／Ｓｉｍｕｌｉｎｋに使用されているブロック線図作成技術と同様のブロック線図作成技術が使用されてもよい。
あるいはまた、ブロック線図取得部２０は、外部記憶装置やネットワークなどから線図データを取得してもよい。
【００２２】
線図データ保持部３０は、ブロック線図取得部２０によって取得された線図データを保持する。
図２は、線図データ保持部３０に保持される線図データのうちブロックに関する部分の一例を示すデータ構造図である。線図データのうちブロックに関する部分は、ブロックの名前と、ブロック線図におけるブロックの位置と、属性フラグと、を対応付けて保持する。属性フラグは、ブロックが制御対象ブロックとして指定されたか否かを示すフラグであり、「１」の場合制御対象ブロックとして指定されたことを示す。ブロック線図処理装置１０は、ブロックが制御対象ブロックとして指定されていない場合すなわち属性フラグが「０」の場合、そのブロックは制御器ブロックとして指定されたと解釈する。
【００２３】
図１に戻り、ユーザは入力手段１２を介して、ディスプレイ１４に表示させたいブロック線図を指定する。表示制御部６０は、指定されたブロック線図に対応する線図データを線図データ保持部３０から取得し、ブロック線図に変換してディスプレイ１４に表示させる。ユーザはディスプレイ１４上で、制御対象ブロックとして指定されるべきブロックをクリックなどにより指定する。あるいはまた、ユーザは、指定の有無をブロックのプロパティとして選択してもよい。指定受付部４０はそのような指定を受け付ける。指定受付部４０は、ブロック特定部７２と、属性フラグ操作部７４と、を有する。
【００２４】
ブロック特定部７２は、ディスプレイ１４上でユーザによってクリックされたブロックを特定する。
属性フラグ操作部７４は、線図データ保持部３０にアクセスし、ブロック特定部７２によって特定されたブロックの属性フラグが立っていなければそれを立てる、または有効にする。また、属性フラグ操作部７４は、属性フラグが立っていればそれを解除する、または無効にする。より具体的には、属性フラグ操作部７４は、属性フラグが「０」であれば「１」にし、「１」であれば「０」にする。本実施の形態では、属性フラグはデフォルトでは「０」に設定されている。
【００２５】
処理部５０は、線図データ保持部３０によって保持される線図データを、Ｃ言語などのプログラミング言語により記述されたソースコードに変換する。処理部５０は、指定受付部４０によって指定が受け付けられたブロックとそうでないブロックとでソースコードへの変換処理を変える。処理部５０は、グルーピング部５２と、制御器演算式導出部５４と、制御対象演算式導出部５６と、ソースコード変換部５８と、を含む。
【００２６】
ユーザは入力手段１２を介して、ソースコードに変換したいブロック線図を指定する。グルーピング部５２は、指定されたブロック線図に対応する線図データを線図データ保持部３０から取得する。グルーピング部５２は、取得された線図データのうちブロックに関する部分について、属性フラグに基づいてブロックを制御器グループと制御対象グループとに分ける。
【００２７】
ブロック線図には、矢印と、複数の矢印の合流点と、が含まれており、線図データはそのそれぞれに対応する矢印データと合流点データとを含む。グルーピング部５２は、２つの制御対象ブロックの間に存在する矢印や合流点は制御対象グループに含め、残りの矢印や合流点は制御器グループに含める。
【００２８】
制御器演算式導出部５４は、制御器グループに属するブロックについてのひとつの状態方程式を導出する。制御器演算式導出部５４は、制御器グループに属する要素により構成されるブロック線図の各ブロックを状態方程式に変換する。この状態方程式は、以下のように記述されてもよい。
x[k+1]=Ax[k]+Bu[k]
y[k]=Cx[k]+Du[k]
ここで、kおよびk+1は時刻を表す。A,B,C,Dは行列係数である。u[k],y[k]はそれぞれ各ブロックの入力、出力を表す。x[k]は各ブロックの内部状態を表す。
制御器演算式導出部５４は、変換された状態方程式の全てに対して行列演算を行い、ひとつの状態方程式にまとめる。
【００２９】
制御対象演算式導出部５６は、制御器演算式導出部５４における状態方程式の導出とは別の処理として、制御対象グループに属するブロックについてのひとつの状態方程式を導出する。制御対象演算式導出部５６は、制御器演算式導出部５４と同様にして、制御対象グループに属する要素により構成されるブロック線図をひとつの状態方程式に変換する。
【００３０】
ソースコード変換部５８は、制御器演算式導出部５４によって導出されたひとつの状態方程式および制御対象演算式導出部５６によって導出されたひとつの状態方程式をひとつのソースコードに変換する。そのひとつのソースコードにおいて、制御器グループに対応する部分と制御対象グループに対応する部分とは区別して表現される。
【００３１】
例えば、ソースコード変換部５８は、ソースコードのうち制御対象グループに対応する部分に、if文などを使用して場合分けを行う命令を加える。これにより、例えば、シミュレーションを行う場合はif文の条件を有効にすることで、制御対象グループの状態方程式および制御器グループの状態方程式の両方を実行することが可能となる。また、実機に実装する場合は、if文の条件を無効にすることで、制御対象グループの状態方程式を実行しないようにすることができる。
【００３２】
表示制御部６０は、ユーザからの求めに応じて、線図データ保持部３０に保持される線図データをブロック線図に変換してディスプレイ１４に表示させる。表示制御部６０は、属性フラグが「１」となっているブロックを他のブロックとは区別してディスプレイ１４に表示させる。これにより、ユーザは制御対象ブロックとして指定されたブロックとそうでないブロックとを容易に見分けることができる。
【００３３】
以上の構成によるブロック線図処理装置１０の動作を説明する。
図３（ａ）、（ｂ）は、ディスプレイ１４に表示される例示的なブロック線図１００、１０２を示す代表画面図である。図３（ａ）はロバスト制御のように実機のモデルに重み付けＷｓ、Ｗｔが加わることにより、制御対象が複数のブロックで構成される場合のブロック線図１００を示す。図３（ｂ）はＰＩＤ（Proportinal Integral Differential）制御のように制御器が複数のブロックに分かれている場合のブロック線図１０２を示す。
【００３４】
図３（ａ）を参照すると、ブロック線図１００は、Ｗｓブロック１０４と、コントローラブロック１０６と、プラントブロック１０８と、Ｗｔブロック１１０と、プラントブロック１０８を始点とする第１アーク１１２と、第１アーク１１２から第２分岐点１３０で分かれてＷｔブロック１１０に入る第２アーク１１４と、第１アーク１１２から第３分岐点１３２で分かれて合流点１２６に入る第３アーク１１６と、合流点１２６を始点としコントローラブロック１０６に入る第４アーク１１８と、第４アーク１１８から第１分岐点１２８で分かれてＷｓブロック１０４に入る第５アーク１２０と、合流点１２６に入る第６アーク１２２と、コントローラブロック１０６を始点としプラントブロック１０８に入る第７アーク１２４と、Ｗｓブロック１０４を始点とする第８アーク１３４と、Ｗｔブロック１１０を始点とする第９アーク１３６と、を含む。
【００３５】
図３（ｂ）を参照すると、ブロック線図１０２は、積分動作ブロック１３８と、微分動作ブロック１４０と、比例動作ブロック１４２と、プラントブロック１４４と、プラントブロック１４４を始点とする第１アーク１４６と、第１アーク１４６から第１分岐点１６２で分かれて第１合流点１６６に入る第２アーク１４８と、第１合流点１６６を始点とし積分動作ブロック１３８に入る第３アーク１５０と、第３アーク１５０から第２分岐点１６４で分かれて第２合流点１６８に入る第４アーク１５２と、第３アーク１５０から第２分岐点１６４で分かれて微分動作ブロック１４０に入る第５アーク１５４と、積分動作ブロック１３８を始点とし第２合流点１６８に入る第６アーク１５６と、第２合流点１６８を始点とし比例動作ブロック１４２に入る第７アーク１５８と、比例動作ブロック１４２を始点としプラントブロック１４４に入る第８アーク１６０と、微分動作ブロック１４０を始点とし第２合流点１６８に入る第９アーク１７０と、第１合流点１６６に入る第１０アーク１６３と、を含む。
【００３６】
ユーザはディスプレイ１４に表示されるブロック線図１００やブロック線図１０２を見て、制御対象とされるべきブロックをクリックする。図４（ａ）、（ｂ）は、制御対象ブロックがクリックされた場合のブロック線図１００、１０２を示す代表画面図である。
【００３７】
ユーザは、図３（ａ）に示されるブロック線図１００のブロックのうち、Ｗｓブロック１０４と、プラントブロック１０８と、Ｗｔブロック１１０と、をクリックする。指定受付部４０はクリックされたＷｓブロック１０４、プラントブロック１０８、Ｗｔブロック１１０の属性フラグを「１」にし、表示制御部６０はクリックされたブロックの右肩に「Ｐ」の文字を付加する。
【００３８】
ユーザは、図３（ｂ）に示されるブロック線図１０２のブロックのうち、プラントブロック１４４をクリックする。指定受付部４０はクリックされたプラントブロック１４４の属性フラグを「１」にし、表示制御部６０はクリックされたプラントブロック１４４の右肩に「Ｐ」の文字を付加する。
【００３９】
ユーザは、ブロック線図をソースコードへ変換するようブロック線図処理装置１０に指示する。図５（ａ）、（ｂ）は、ブロック線図をソースコードへ変換する際のグループ分けを説明するための説明図である。
【００４０】
ユーザは、図４（ａ）に示されるブロック線図１００をソースコードへ変換するようブロック線図処理装置１０に指示する。グルーピング部５２は、属性フラグが「１」か「０」かでブロック線図１００のブロックを、図５（ａ）に示されるように制御対象グループ１００ａと制御器グループ１００ｂとにグループ分けする。制御対象グループ１００ａは、プラントブロック１０８と、Ｗｔブロック１１０と、Ｗｓブロック１０４と、第１アーク１１２と、第２アーク１１４と、第３アーク１１６と、第４アーク１１８と第５アーク１２０と、第６アーク１２２と、第７アーク１２４と、合流点１２６と、第１分岐点１２８と、第２分岐点１３０と、第３分岐点１３２と、を含む。制御器グループ１００ｂはコントローラブロック１０６を含む。
【００４１】
制御器演算式導出部５４は制御器グループ１００ｂについての状態方程式を導出し、制御対象演算式導出部５６は制御対象グループ１００ａについての状態方程式を導出し、ソースコード変換部５８はそれらの状態方程式をひとつのソースコードに変換する。
【００４２】
ユーザは、図４（ｂ）に示されるブロック線図１０２をソースコードへ変換するようブロック線図処理装置１０に指示する。グルーピング部５２は、属性フラグが「１」か「０」かでブロック線図１０２のブロックを、図５（ｂ）に示されるように制御対象グループ１０２ａと制御器グループ１０２ｂとにグループ分けする。制御対象グループ１０２ａはプラントブロック１４４を含む。制御器グループ１０２ｂは、積分動作ブロック１３８と、微分動作ブロック１４０と、比例動作ブロック１４２と、第１アーク１４６と、第２アーク１４８と、第３アーク１５０と、第４アーク１５２と、第５アーク１５４と、第６アーク１５６と、第７アーク１５８と、第８アーク１６０と、第１０アーク１６３と、第２分岐点１６４と、第１合流点１６６と、第２合流点１６８と、第９アーク１７０と、を含む。
【００４３】
制御器演算式導出部５４は制御器グループ１０２ｂについての状態方程式を導出し、制御対象演算式導出部５６は制御対象グループ１０２ａについての状態方程式を導出し、ソースコード変換部５８はそれらの状態方程式をひとつのソースコードに変換する。
【００４４】
図６は、ブロック線図処理装置１０における一連の処理を示すフローチャートである。ブロック線図処理装置１０はブロック線図の線図データを取得し（Ｓ２０２）、線図データ保持部３０に保持する。ブロック線図処理装置１０は取得されたブロック線図のブロックに対する指定を受け付ける（Ｓ２０４）。ブロック線図処理装置１０はブロック線図をソースコードに変換する際、ブロックを指定に基づきグループ分けする（Ｓ２０６）。ブロック線図処理装置１０は各グループについて状態方程式を導出する（Ｓ２０８）。ブロック線図処理装置１０は導出された状態方程式を、各グループに対応する部分を区別可能な態様で、ソースコードに変換する（Ｓ２１０）。
【００４５】
上述の実施の形態において、保持部の例は、ハードディスクや半導体メモリである。また、本明細書の記載に基づき、各部を、図示しないＣＰＵや、インストールされたアプリケーションプログラムのモジュールや、システムプログラムのモジュールや、ハードディスクから読み出したデータの内容を一時的に記憶する半導体メモリなどにより実現できることは本明細書に触れた当業者には理解されるところである。
【００４６】
本実施の形態に係るブロック線図処理装置１０によると、ブロック線図のブロックに対するユーザの指定が受け付けられ、ソースコードへの変換処理においてはブロックを指定の有無で分けて処理することができる。したがって、ソースコードへの変換処理の自由度が向上する。
【００４７】
一般に、制御対象ブロックは既存の系をほぼそのままシミュレートすることにより定義される一方、制御器ブロックは様々に設計されうる。このように制御対象ブロックと制御器ブロックとでは性質が異なる。そこで本実施の形態のように、制御器グループと制御対象グループとで処理を分けることにより、それぞれに適した処理方法を使用できる。例えば離散時間化について、制御器グループと制御対象グループとで異なる方法を使用できる。また、計算の最適化の手法を異ならせてもよい。
【００４８】
また、本実施の形態に係るブロック線図処理装置１０では、制御対象ブロックが指定されたブロック線図からソースコードが生成される。このソースコードでは、制御対象ブロックに対応する部分とそうでない部分とを容易に区別することができる。したがって、ユーザは、シミュレーションを行う場合にも、ターゲットボード上に実装して様々な機械装置を制御する場合にも、このソースコードを使用することができる。その結果、シミュレーションと実機への実装とでブロック線図が相違する可能性を低減できる。また、シミュレーションと実機への実装とでソースコードが大きく相違する可能性も低減できる。
【００４９】
制御系を実装するターゲットボードを用いてシミュレーションを行う場合、従来では一般にシミュレーション用のブロック線図とそれに対応する実装用のブロック線図とは異なるので、それらの差異がバグを引き起こす可能性がある。これはプログラムのデバック時間を増大させる。これに対して本実施の形態に係るブロック線図処理装置１０では、シミュレーション用のブロック線図と実装用のブロック線図とは同じものであるから、ターゲットボードを用いたシミュレーションにおいてバグが発生する可能性を低減できる。
【００５０】
以上、実施の形態に係るブロック線図処理装置１０の構成と動作について説明した。これらの実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５１】
実施の形態では、属性フラグは制御対象ブロックとして指定されたか否かを示す場合について説明したが、これに限られず、属性フラグは制御器ブロックとして指定されたか否かを示してもよい。あるいはまた、属性フラグは、制御器ブロックとして指定されたか、または制御対象ブロックとして指定されたか、あるいはそれ以外のものとして指定されたかを示してもよい。このように属性フラグは３つ以上の状態をとってもよい。この場合、処理部は３以上の属性のそれぞれについてソースコードへの変換処理を変えてもよい。
【符号の説明】
【００５２】
１０  ブロック線図処理装置、  １２  入力手段、  １４  ディスプレイ、  ２０  ブロック線図取得部、  ３０  線図データ保持部、  ４０  指定受付部、  ５０  処理部、  ６０  表示制御部。
【図１】
0005755103.tif 000002
【図２】
0005755103.tif 000003
【図３】
0005755103.tif 000004
【図４】
0005755103.tif 000005
【図５】
0005755103.tif 000006
【図６】
0005755103.tif 000007