(57)【特許請求の範囲】
【請求項１】
制御機器が持つ機能を機能ブロックとして捉えて機能ブロックを組合わせることにより、制御プログラムを作成する制御プログラム作成装置において、
制御機器の複数の機能ブロックをそれぞれテンプレート化した複数の定義ブロックのアルゴリズムおよびパラメータと、これらの定義ブロック間の接続関係を示すリンクと、前記定義ブロックおよびリンクの実行順のデータとを、定義してテンプレート化した接続パターンのファイルを予め記憶する記憶手段と、
この記憶手段に記憶された接続パターンのファイルの中から選択された前記接続パターンにある定義ブロックに対して実際の制御機器の機能ブロックを関連付ける関連付け設定手段と、
前記関連付けが終了した接続パターンに定義されている実行順のデータを基に、この接続パターンの実行スケジュールを生成し、この接続パターンのファイルと前記関連付けのデータと前記実行スケジュールとからなる制御プログラムを生成する出力手段と、
前記接続パターンのファイルにある定義ブロックにかかるパラメータ又は接続関係が変更された場合に、自動又は手動でその変更箇所を取り込み、前記関連付け設定手段及び出力手段を駆動して、前記制御プログラムを更新する更新手段と
を備えることを特徴とする制御プログラム作成装置。
【請求項２】
請求項１記載の制御プログラム作成装置において、
さらに、前記接続パターンファイルを予め作成する接続パターン作成手段を備え、
前記接続パターン作成手段は、
複数の前記定義ブロックを画面上に作成するブロック作成手段と、
前記画面上の各定義ブロックの入出力端子にかかるパラメータを示すポートを作成するポート作成手段と、
前記画面上の各定義ブロックのポート間の接続関係を示すリンクを作成するリンク作成手段と、
前記画面上の定義ブロック、ポートおよびリンクの属性を設定するプロパティ設定手段と、
前記作成された定義ブロックのデータ、ポートのデータおよびリンクのデータを含む接続パターンファイルを前記記憶手段に格納するファイル作成手段とを有することを特徴とする制御プログラム作成装置。
【請求項３】
請求項１記載の制御プログラム作成装置において、
さらに、前記記憶手段に記憶されている接続パターンファイルの中から選択された接続パターンファイルを読み込み、この接続パターンを前記関連付け設定手段の処理の対象とする接続パターン読込手段を備えることを特徴とする制御プログラム作成装置。
【請求項４】
請求項１記載の制御プログラム作成装置において、
前記関連付け設定手段は、表示中の機能ブロックのリストから任意の機能ブロックが選択され、この機能ブロックが表示中の接続パターンの任意の定義ブロック上まで移動されたときに、この選択された機能ブロックと選択された定義ブロックとを関連付けすることを特徴とする制御プログラム作成装置。
【請求項５】
請求項２記載の制御プログラム作成装置において、
さらに、前記接続パターン作成手段は、前記記憶手段に記憶されている接続パターンファイルの中から複数の接続パターンファイルを読み込み、これらの接続パターンを組み合わせる接続パターン複合手段を有することを特徴とする制御プログラム作成装置。
【請求項６】
制御機器が持つ機能を機能ブロックとして捉えて機能ブロックを組合わせることにより、制御プログラムを作成する制御プログラム作成方法において、
制御機器の複数の機能ブロックをそれぞれテンプレート化した複数の定義ブロックのアルゴリズムおよびパラメータと、これらの定義ブロック間の接続関係を示すリンクと、前記定義ブロックおよびリンクの実行順のデータとを、定義してテンプレート化した接続パターンのファイルを予め作成する接続パターン作成手順と、
予め用意された接続パターンのファイルの中から選択された前記接続パターンにある定義ブロックに対して実際の制御機器の機能ブロックを関連付ける関連付け設定手順と、
前記関連付けが終了した接続パターンに定義されている実行順のデータを基に、この接続パターンの実行スケジュールを生成し、この接続パターンのファイルと前記関連付けのデータと前記実行スケジュールとからなる制御プログラムを生成する出力手順と、
前記接続パターンのファイルにある定義ブロックにかかるパラメータ又は接続関係が変更された場合に、自動又は手動でその変更箇所を取り込み、前記関連付け設定手順及び出力手順を実行して、前記制御プログラムを更新する更新手順と
を備えることを特徴とする制御プログラム作成方法。
【請求項７】
請求項６記載の制御プログラム作成方法において、
前記接続パターン作成手順が前記接続パターンのファイルをテキストエディタで編集することを特徴とする制御プログラム作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御機器の機能単位のアルゴリズムが定義された機能ブロックを用いて制御プログラムを作成する制御プログラム作成装置および制御プログラム作成方法に関するものである。
【背景技術】
【０００２】
従来、機能ブロックを用いた制御設計コンフィギュレーションツール（制御プログラム作成装置）では、制御プログラム作成装置の画面上に機能ブロックを置き、機能ブロック中のパラメータに相当する接続端子から、その接続相手となる接続端子に接続線（リンク）を設定して、制御系の設計を行っている。このような制御プログラム作成装置を用いた制御プログラム作成方法は、一般にＤＣＳ（Distributed Control System：分散制御システム）やＰＬＣ（Programmable Logic Controller ：プログラマブル・コントローラ）のコンフィギュレーションツールで用いられている方法であるが、機能ブロックを用いるフィールドバス（Foundation Fieldbus ）のエンジニアリングツールにも一般的に用いられている（例えば特許文献１参照）。
【０００３】
図２１は従来の制御プログラム作成装置を用いた制御プログラム作成方法を説明するための図であり、制御プログラム作成装置の画面上における操作手順を示す図である。
従来の制御プログラム作成方法では、装置の画面上において、使用可能な機能ブロックのリストウィンドウ１００１から制御ロジック編集ウィンドウ１００２へ、制御ロジックを構成する機能ブロック１０００を移動させて制御プログラムを作成する。
【０００４】
そして、制御ロジック編集ウィンドウ１００２上で、機能ブロック１０００のパラメータを示す端子から他の機能ブロック１０００の端子へ接続線（リンク）を引いて、機能ブロック間の接続関係を定義する。図２１の例では、制御ロジック編集ウィンドウ１００２上に、アナログ入力（ＡＩ）の機能ブロック１０００−ＡＩとＰＩＤ演算を行う機能ブロック１０００−ＰＩＤとアナログ出力（ＡＯ）を行う機能ブロック１０００−ＡＯとがあり、機能ブロック１０００−ＡＯの端子１００３と機能ブロック１０００−ＰＩＤの端子１００４との間をリンク１００５で接続している。
【０００５】
制御ロジックが複数存在する場合は、リストウィンドウ１００１から制御ロジック編集ウィンドウ１００２への機能ブロック１０００の移動とリンク１００５による機能ブロック間の接続とを繰り返す。
このような制御ロジック編集の後に、制御プログラム作成装置は、入力が先で出力が後という各機能ブロック１０００の接続関係を基に、機能ブロック１０００の実行スケジュールを作成する。
【０００６】
従来の分散制御システムに比べ、フィールドバスの機能ブロックを用いた制御設計は複雑であると言える。その理由は、機能ブロックのパラメータが多く、また、演算結果を上位機能ブロックに反映する（Backward-Calculation）ためのリンクが必要であること等、より多くの接続線を定義する必要があるからである。このような設計の複雑さは、フィールドバスの制御設計作業がその知識を持つ一部の作業者しか行うことができない原因の一つになっている（例えば特許文献２参照）。
【０００７】
フィールドバスの制御ロジックは、例えば単純なＰＩＤ制御ループなどの比較的単純なロジックからより複雑な制御ロジックまでを機能ブロックを種々組合わせて作ることが多いと考えられ、作業工数削減のために機能ブロックを組合わせた制御ロジックを取り込んで行うことが求められる。しかし、従来の方法はそのような複合的な制御ロジックの作成に適していないため、ユーザのデータ設定作業が面倒で、また一旦作成した制御ロジックを変更するような場合に変更分を更新して制御プログラムを作成しなおすことが難しいという問題がある。
【０００８】
【特許文献１】特開２００２−１６３００３号公報
【特許文献２】特開平１０−１７７４１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
以上のように従来のフィールドバス用の制御プログラム作成装置では、フィールドバスの制御設計作業が複雑であり、作業工数がかかるという問題点があった。
なお、このような問題は、フィールドバスの制御設計に限らず、例えば接続関係の定義が複雑な分野の制御設計であれば、同様に発生する。
【００１０】
本発明は、上記課題を解決するためになされたもので、制御設計作業を容易にし、作業工数を削減することができる制御プログラム作成装置および制御プログラム作成方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、制御機器が持つ機能を機能ブロックとして捉えて機能ブロックを組合わせることにより、制御プログラムを作成する制御プログラム作成装置において、制御機器の複数の機能ブロックをそれぞれテンプレート化した複数の定義ブロックのアルゴリズムおよびパラメータと、これらの定義ブロック間の接続関係を示すリンクと、前記定義ブロックおよびリンクの実行順のデータとを、定義してテンプレート化した接続パターンのファイルを予め記憶する記憶手段と、この記憶手段に記憶された接続パターンのファイルの中から選択された前記接続パターンにある定義ブロックに対して実際の制御機器の機能ブロックを関連付ける関連付け設定手段と、前記関連付けが終了した接続パターンに定義されている実行順のデータを基に、この接続パターンの実行スケジュールを生成し、この接続パターンのファイルと前記関連付けのデータと前記実行スケジュールとからなる制御プログラムを生成する出力手段と、前記接続パターンのファイルにある定義ブロックにかかるパラメータ又は接続関係が変更された場合に、自動又は手動でその変更箇所を取り込み、前記関連付け設定手段及び出力手段を駆動して、前記制御プログラムを更新する更新手段とを備えるものである。
また、本発明の制御プログラム作成装置の１構成例は、さらに、前記接続パターンファイルを予め作成する接続パターン作成手段を備え、前記接続パターン作成手段は、複数の前記定義ブロックを画面上に作成するブロック作成手段と、前記画面上の各定義ブロックの入出力端子にかかるパラメータを示すポートを作成するポート作成手段と、前記画面上の各定義ブロックのポート間の接続関係を示すリンクを作成するリンク作成手段と、前記画面上の定義ブロック、ポートおよびリンクの属性を設定するプロパティ設定手段と、前記作成された定義ブロックのデータ、ポートのデータおよびリンクのデータを含む接続パターンファイルを前記記憶手段に格納するファイル作成手段とを有するものである。
【００１２】
また、本発明の制御プログラム作成装置の１構成例は、さらに、前記記憶手段に記憶されている接続パターンファイルの中から選択された接続パターンファイルを読み込み、この接続パターンを前記関連付け設定手段の処理の対象とする接続パターン読込手段を備えるものである。
また、本発明の制御プログラム作成装置の１構成例において、前記関連付け設定手段は、表示中の機能ブロックのリストから任意の機能ブロックが選択され、この機能ブロックが表示中の接続パターンの任意の定義ブロック上まで移動されたときに、この選択された機能ブロックと選択された定義ブロックとを関連付けするものである。
また、本発明の制御プログラム作成装置の１構成例において、前記接続パターン作成手段は、前記記憶手段に記憶されている接続パターンファイルの中から複数の接続パターンファイルを読み込み、これらの接続パターンを組み合わせる接続パターン複合手段を有するものである。
【００１３】
また、本発明は、制御機器が持つ機能を機能ブロックとして捉えて機能ブロックを組合わせることにより、制御プログラムを作成する制御プログラム作成方法において、制御機器の複数の機能ブロックをそれぞれテンプレート化した複数の定義ブロックのアルゴリズムおよびパラメータと、これらの定義ブロック間の接続関係を示すリンクと、前記定義ブロックおよびリンクの実行順のデータとを、定義してテンプレート化した接続パターンのファイルを予め作成する接続パターン作成手順と、予め用意された接続パターンのファイルの中から選択された前記接続パターンにある定義ブロックに対して実際の制御機器の機能ブロックを関連付ける関連付け設定手順と、前記関連付けが終了した接続パターンに定義されている実行順のデータを基に、この接続パターンの実行スケジュールを生成し、この接続パターンのファイルと前記関連付けのデータと前記実行スケジュールとからなる制御プログラムを生成する出力手順と、前記接続パターンのファイルにある定義ブロックにかかるパラメータ又は接続関係が変更された場合に、自動又は手動でその変更箇所を取り込み、前記関連付け設定手順及び出力手順を実行して、前記制御プログラムを更新する更新手順とを備えるものである。
また、本発明の制御プログラム作成方法の１構成例は、前記接続パターン作成手順が前記接続パターンのファイルをテキストエディタで編集するようにしたものである。
【発明の効果】
【００１４】
本発明によれば、予め作成された接続パターンファイルを読み込み、各制御機器の使用可能な機能ブロックのリストから機能ブロックを選択すると共に、接続パターンの中から定義ブロックを選択するだけで、機能ブロックと定義ブロックとを関連付けて制御プログラムを作成することができるので、制御設計作業を容易にし、作業工数を削減することができる。また、本発明では、更新手段を設けることにより、接続パターンの変更箇所を、その接続パターンを用いている制御プログラムに反映させることができる。
【００１５】
また、本発明によれば、接続パターン作成手段を設けることにより、接続パターンを容易に作成することができ、接続パターンを記憶手段に記憶させておくことができる。
【００１６】
また、本発明によれば、接続パターン読込手段を設けることにより、記憶手段に記憶されている接続パターンファイルの中から所望の接続パターンファイルを読み込んで、制御プログラムを作成することができる。
【００１７】
また、本発明によれば、制御プログラム作成装置を使用するエンジニアは、所謂ドラッグ＆ドロップの手法により画面上で所望の機能ブロックと定義ブロックとを選択することにより、機能ブロックと定義ブロックとを関連付けることができる。
【００１８】
また、本発明によれば、定義ブロックおよびリンクの属性として、実行順のデータを設定することにより、制御プログラムの実行スケジュールを生成する際に、各ブロックの接続関係を調べる必要がなくなり、実行スケジュールの生成手段の開発に要する工数を削減することができる。
【００１９】
また、本発明によれば、接続パターン複合手段を設けることにより、複数の接続パターンを組み合わせて、より大きな接続パターンを作成することができる。
【発明を実施するための最良の形態】
【００２０】
［第１の実施の形態］
以下、本発明の実施の形態について図面を参照して説明する。図１は本発明の第１の実施の形態に係る制御プログラム作成装置の構成を示すブロック図である。
本実施の形態の制御プログラム作成装置１は、制御機器の複数の機能ブロックをそれぞれテンプレート化した複数の定義ブロックのパラメータとこれらの定義ブロック間の接続関係とを制御ロジック毎に定義してテンプレート化した接続パターンを作成する接続パターン作成部２と、制御機器の機能ブロックのデータおよび接続パターンのファイルを予め記憶する記憶部３と、記憶部３に記憶されている接続パターンファイルの中から選択された接続パターンファイルを読み込む接続パターン読込部４と、記憶部３に記憶された機能ブロックの中から選択された機能ブロックと選択された接続パターンの定義ブロックとを関連付けて制御プログラムを作成する制御プログラム編集部５と、制御プログラムの実行スケジュールを生成する実行スケジュール生成部６と、制御プログラム作成装置の使用者が装置に対して指示を与えるための入力部７と、制御プログラム作成装置の使用者に対して情報を表示するための表示部８と、接続パターンの変更に応じて制御プログラムを更新する制御プログラム更新部９とを有する。
【００２１】
本実施の形態は、接続パターン作成部１によってあらかじめ作成された接続パターン（制御ロジックテンプレート）を用い、フィールドバスの制御設計を、所望の接続パターンを選んで機能ブロックを割り付ける方式で行うものとした。機能ブロックは、例えばセンサやバルブポジショナなどの実際の制御機器における最小機能単位のアルゴリズムやパラメータを定義するものである。接続パターンは、各機能ブロックのパラメータと機能ブロック間の接続関係とを制御ロジック毎（例えばＰＩＤ制御やカスケード制御）に定義してテンプレート化したものである。
【００２２】
なお、接続パターンで用いる機能ブロックは、例えば制御機器の製造メーカ等が異なる場合であってもアルゴリズムやパラメータが同じであれば使用できるように汎用的に定義された機能ブロックなので、以下では接続パターンで用いる機能ブロックを定義ブロックと呼ぶことにする。
【００２３】
［制御プログラム作成装置の概略］
図２、図３は図１の制御プログラム作成装置を用いた制御プログラム作成方法を説明するための図であり、図２は制御プログラム作成装置による制御プログラム作成の概略を示す図、図３は制御プログラム作成装置の動作を示すフローチャートである。
まず、接続パターン作成部２は、事前に制御ループのテンプレートである接続パターン１００を作成しておく（図３ステップＳ１）。作成された接続パターン１００のファイルは、記憶部３に格納される。
【００２４】
図２の例では、接続パターン１００は、ＰＩＤ制御ループのアルゴリズムを定義したテンプレートであり、アナログ入力（ＡＩ）の定義ブロック１０１−ＡＩとＰＩＤ演算を行う定義ブロック１０１−ＰＩＤとアナログ出力（ＡＯ）を行う定義ブロック１０１−ＡＯとを含む。各定義ブロック１０１の入出力端子にかかるパラメータを示すポート１０２はリンク１０３によって接続され、定義ブロック１０１のパラメータの接続関係が定義されている。図２の例では、例えば定義ブロック１０１−ＡＩのＯＵＴパラメータと定義ブロック１０１−ＰＩＤのＩＮパラメータが接続されている。また、接続パターン１００には、各定義ブロック１０１の実行順データも登録されている。図２の例では、実行順は、１０１−ＡＩ→１０１−ＰＩＤ→１０１−ＡＯである。
【００２５】
次に、接続パターン読込部４は、選択された接続パターン１００のファイルを記憶部３から読み込み、制御プログラム編集部５は、接続パターン読込部４が読み込んだ接続パターン１００を表示部８の画面の制御ロジック編集ウィンドウ１０４上に表示する（ステップＳ２）。
【００２６】
そして、制御プログラム編集部５は、各制御機器の使用可能な機能ブロックのリスト１０５から機能ブロックを選択して、制御ロジック編集ウィンドウ１０４上の接続パターン１００の定義ブロック１０１と制御機器の機能ブロックとを関連付ける（ステップＳ３）。
【００２７】
定義ブロック１０１と制御機器の機能ブロックとの関連付けは、表示部８の画面上で所望の機能ブロックを、関連付けしたい定義ブロック１０１上まで移動させればよい。図２の例では、定義ブロック１０１−ＡＩに制御機器名が「ＤＳＴ＿０２」で機能ブロック名が「ＡＩ」の機能ブロックが関連付けされ、定義ブロック１０１−ＰＩＤに制御機器名が「ＡＶＰ＿０８」で機能ブロック名が「ＰＩＤ」の機能ブロックが関連付けされ、定義ブロック１０１−ＡＯに制御機器名が「ＡＶＰ＿０８」で機能ブロック名が「ＡＯ」の機能ブロックが関連付けされている。制御プログラム編集部５は、このような定義ブロック１０１と制御機器の機能ブロックとの関連付けを未処理の定義ブロック１０１がなくなるまで（ステップＳ４においてＮＯ）繰り返し行う。
【００２８】
実行スケジュール生成部６は、選択された接続パターン１００に定義されている実行順データを基に、ステップＳ３の関連付けが終了した接続パターン１００の実行スケジュールを生成する（ステップＳ５）。
以上で、接続パターン１００と、接続パターン１００の定義ブロック１０１と制御機器の機能ブロックとの関連付け情報と、接続パターン１００の実行スケジュールとからなる制御プログラムの作成処理が終了する。
【００２９】
［接続パターン作成の説明］
次に、本実施の形態の制御プログラム作成装置１についてさらに詳細に説明する。図４は接続パターン作成部２の構成例を示すブロック図である。接続パターン作成部２は、編集画面生成部２０と、ブロック作成部２１と、ポート作成部２２と、リンク作成部２３と、プロパティ設定部２４と、ファイル作成部２５とを有する。
【００３０】
本実施の形態では、制御プログラムの接続パターンの設計者の指示に応じて接続パターン作成部２が接続パターンを作成する。
図５は接続パターンの作成時に表示部８に表示される接続パターン編集画面を示す図、図６は接続パターン作成部２の動作を示すフローチャートである。なお、図６に示す処理フローは１例であって、これに限るものではない。
【００３１】
接続パターン編集画面２００は、接続パターンを表示／編集する編集ウィンドウ２０１と、定義ブロック、ポートおよびリンクの属性を設定するプロパティウィンドウ２０２と、複数の接続パターンが存在する場合に接続パターンを階層構造で表示する階層ウィンドウ２０３と、メニューやツールバー等の操作部２０４とから構成される。
【００３２】
まず、接続パターン作成部２の編集画面生成部２０は、接続パターンの作成時に、接続パターン編集画面２００を生成して表示部８に表示させる（図６ステップＳ１０）。
続いて、ブロック作成部２１は、設計者が入力部７を使って操作部２０４を操作した結果、ブロック作成の指示を受けた場合（ステップＳ１１においてＹＥＳ）、編集ウィンドウ２０１上に定義ブロック１０１を作成する（ステップＳ１２）。作成した定義ブロック１０１は、入力部７を使って編集ウィンドウ２０１上で適宜選択、削除、移動させることが可能である。
【００３３】
ポート作成部２２は、定義ブロック１０１の作成と同時に定義ブロック１０１にポート１０２を自動的に作成する（ステップＳ１３）。定義ブロック１０１が移動すると、それに伴ってポート１０２も自動的に移動し、定義ブロック１０１が削除されると、ポート１０２も自動的に削除される。ステップＳ１２，Ｓ１３で作成された定義ブロック１０１とポート１０２は、属性が設定されていない未完成の状態である。
【００３４】
プロパティ設定部２４は、設計者が入力部７を使って編集ウィンドウ２０１上の定義ブロック１０１又はポート１０２を選択した場合（ステップＳ１４においてＹＥＳ）、選択された定義ブロック１０１又はポート１０２の属性をプロパティウィンドウ２０２に表示する（ステップＳ１５）。
【００３５】
ここで、プロパティ設定部２４は、設計者が入力部７を使ってプロパティウィンドウ２０２上で属性情報を入力すると（ステップＳ１６においてＹＥＳ）、この属性情報を選択された定義ブロック１０１又はポート１０２の属性として設定する（ステップＳ１７）。
【００３６】
定義ブロック１０１の属性としては、ブロックタイプと、ブロック名称と、実行順などがある。ブロックタイプとしては、例えばＡＩ、ＰＩＤ、ＡＯ、ＣＳ（セレクタ）、ＴＭＲ（タイマ）などがある。このブロックタイプを設定することで、定義ブロック１０１のアルゴリズムが選択されたことになり、また、設定可能なポートタイプ（パラメータのタイプ）が選択されたことになる。
ポート１０２の属性としては、ポートタイプがある。ポートタイプとしては、例えばＩＮ、ＯＵＴ、ＣＡＳ＿ＩＮ、ＢＫＣＡＬ＿ＩＮ、ＢＫＣＡＬ＿ＯＵＴなどがある。なお、設定可能なポートタイプは、ブロックタイプ毎に予め定められている。
【００３７】
なお、プロパティ設定部２４は、定義ブロック１０１の属性が設定された場合には、編集ウィンドウ２０１上の定義ブロック１０１の近くにブロック名称と実行順とを表示し、ポート１０２の属性が設定された場合には、編集ウィンドウ２０１上のポート１０２の近くにポートタイプを表示する。
【００３８】
次に、リンク作成部２３は、設計者が入力部７を使って編集ウィンドウ２０１上でポートタイプ設定済みのポート１０２を選択し、さらにポートタイプ設定済みの別のポート１０２を選択した場合（ステップＳ１８においてＹＥＳ）、編集ウィンドウ２０１上のこれら２つのポート間にリンク１０３を作成する（ステップＳ１９）。このとき、リンク作成部２３は、設定済みのポートタイプに従ってリンク１０３の入力と出力を自動的に設定する。
【００３９】
プロパティ設定部２４は、設計者が入力部７を使って編集ウィンドウ２０１上のリンク１０３を選択した場合（ステップＳ２０においてＹＥＳ）、選択されたリンク１０３の属性をプロパティウィンドウ２０２に表示する（ステップＳ２１）。
ここで、プロパティ設定部２４は、設計者が入力部７を使ってプロパティウィンドウ２０２上で属性情報を入力すると（ステップＳ２２においてＹＥＳ）、この属性情報を選択されたリンク１０３の属性として設定する（ステップＳ２３）。
【００４０】
リンク１０３の属性としては、実行順などがある。プロパティ設定部２４は、リンク１０３の属性が設定された場合には、編集ウィンドウ２０１上のリンク１０３の近くに実行順を表示する。
【００４１】
ファイル作成部２５は、設計者が入力部７を使って操作部２０４を操作した結果、接続パターンファイル作成の指示を受けた場合（ステップＳ２４においてＹＥＳ）、ステップＳ１１〜Ｓ２３の処理によって作成された接続パターンのファイルを作成する（ステップＳ２５）。図７は接続パターンファイルの形式の１例を示す図である。このように、作成した接続パターンファイルはＸＭＬ（Extensible Markup Language）その他のメタ言語の形式で保存されるので、検索、編集などがしやすい。
【００４２】
接続パターンファイルのファイル名としては、予め入力されたパターン名称が使用される。接続パターンファイルは、ファイルバージョン３００と、パターン名称３０１と、接続パターンの説明文３０２と、ブロックデータ３０３と、ポートデータ３０４と、リンクデータ３０５といった情報を含む。
【００４３】
ブロックデータ３０３は、接続パターン中の各定義ブロックの情報を示すものであり、定義ブロック毎に生成される。ブロックデータ３０３は、定義ブロックの名称３０６と、定義ブロックの実行順３０７と、ブロックタイプ３０８と、定義ブロックの座標３０９と、定義ブロックに設けられた各ポートのポートデータ３０４とを含む。
ポートデータ３０４は、定義ブロック上でのポート位置３１０と、ポートタイプ３１１とを含む。
【００４４】
リンクデータ３０５は、接続パターン中の各リンクの情報を示すものであり、リンク毎に生成される。リンクデータ３０５は、入力側の定義ブロックの名称３１２と、入力側のポートタイプ３１３と、出力側の定義ブロックの名称３１４と、出力側のポートタイプ３１５と、実行順３１６と、リンクの変曲点の座標３１７とを含む。
ファイル作成部２５は、作成した接続パターンファイルを記憶部３に格納する。こうして、接続パターン作成部２の処理が終了する。
【００４５】
［接続パターン読込の説明］
次に、制御プログラム作成装置１の接続パターン読込部４の動作について説明する。図８は接続パターン読込部４の構成例を示すブロック図である。接続パターン読込部４は、一覧画面生成部４０と、接続パターン追加部４１と、接続パターン削除部４２と、接続パターン選択読込部４３とを有する。
接続パターン読込部４は、接続パターン作成部２によって作成された接続パターンの一覧から空の接続パターン（すなわち、制御機器の機能ブロックとの関連付けが施されていない接続パターン）を読み込んで表示する。
【００４６】
図９は接続パターンの読込時に表示部８に表示される接続パターン一覧画面を示す図、図１０は接続パターン読込部４の動作を示すフローチャートである。なお、図１０に示す処理フローは１例であって、これに限るものではない。
接続パターン一覧画面４００には、表示ボタン４０１と、追加ボタン４０２と、削除ボタン４０３と、制御プログラムの作成に用いる接続パターンのリスト４０４とが表示される。リスト４０４は、制御クラス名４０５と、この制御クラスに含まれる接続パターンのファイル名４０６とからなる。なお、制御クラスとは、管理分類のためにつけられた識別子を云う。
【００４７】
まず、接続パターン読込部４の一覧画面生成部４０は、接続パターンの読込時に、接続パターン一覧画面４００を生成して表示部８に表示させる（図１０ステップＳ３０）。
接続パターン追加部４１は、設計者が入力部７を使って接続パターン一覧画面４００上の追加ボタン４０２を操作すると（ステップＳ３１においてＹＥＳ）、設計者の指示に従って接続パターンをリスト４０４に追加する（ステップＳ３２）。
【００４８】
接続パターン追加部４１は、設計者が追加ボタン４０２を操作すると、制御クラス名の入力を促す。また、接続パターン追加部４１は、記憶部３に格納されている選択可能な接続パターンファイルを提示し、接続パターンファイルの選択を促す。制御クラス名の入力と接続パターンファイルの選択とが終了すると、選択された接続パターンがリスト４０４に追加される。これで、接続パターン追加部４１の処理が終了する。
【００４９】
接続パターン削除部４２は、設計者が入力部７を使ってリスト４０４上の制御クラスを選択して、削除ボタン４０３を操作すると（ステップＳ３３においてＹＥＳ）、選択された制御クラスの名称４０５とこの制御クラスに含まれる接続パターンのファイル名４０６とをリスト４０４から削除する（ステップＳ３４）。
【００５０】
次に、接続パターン選択読込部４３は、設計者が入力部７を使ってリスト４０４上の所望の制御クラスおよび接続パターンを選択して、表示ボタン４０１を操作すると（ステップＳ３５においてＹＥＳ）、選択された制御クラスの接続パターンファイルを記憶部３から読み込み、この接続パターンファイルを制御プログラム編集部５に渡す（ステップＳ３６）。
【００５１】
次に、制御プログラム編集部５の動作について説明する。図１１は制御プログラム編集部５の１構成例を示すブロック図である。制御プログラム編集部５は、作成画面生成部５０と、関連付け設定部５１と、プロパティ表示部５２と、設定データ保存部５３とを有する。設定データ保存部５３は、制御プログラムを生成する出力手段を構成している。
図１２は制御プログラムの作成時に表示部８に表示される制御プログラム作成画面を示す図、図１３は制御プログラム編集部５の動作を示すフローチャートである。なお、図１３に示す処理の順番は１例であって、これに限るものではない。
【００５２】
制御プログラム作成画面５００は、接続パターン読込部４が読み込んだ制御クラスの接続パターンを表示／編集する制御ロジック編集ウィンドウ５０１と、各制御機器の使用可能な機能ブロック５０４のリストを階層的に表示する階層ウィンドウ５０２と、制御ロジック編集ウィンドウ５０１で選択されたブロックの関連付け情報を表示する設定ウィンドウ５０３とから構成される。階層ウィンドウ５０２には、制御機器の名称とその制御機器に含まれる機能ブロックの名称とが表示される。
【００５３】
まず、制御プログラム編集部５の作成画面生成部５０は、接続パターン読込部４から制御クラスの接続パターンファイルを受け取ると、制御プログラム作成画面５００を生成して表示部８に表示させ、接続パターン読込部４から受け取ったファイルに基づいて接続パターンを制御プログラム作成画面５００の制御ロジック編集ウィンドウ５０１に表示する（図１３ステップＳ４０）。
【００５４】
このとき、作成画面生成部５０は、図１２に示すように接続パターンの各定義ブロック１０１に接続パターンファイルから取得したブロックタイプを表示し、またポート１０２の近くに接続パターンファイルから取得したポートタイプ（パラメータ）を表示する。階層ウィンドウ５０２に表示する各制御機器の機能ブロック５０４の定義データは、記憶部３に予め登録されている。
【００５５】
次に、制御プログラム編集部５の関連付け設定部５１は、設計者が入力部７を使って階層ウィンドウ５０２上で所望の制御機器の機能ブロック５０４を選択し、この機能ブロック５０４を制御ロジック編集ウィンドウ５０１の所望の定義ブロック１０１上まで移動させると（ステップＳ４１においてＹＥＳ）、選択された機能ブロック５０４と定義ブロック１０１との関連付けが可能か否かを判定する（ステップＳ４２）。
【００５６】
記憶部３には、定義ブロック１０１の定義可能データがブロックタイプ毎に予め登録されている。関連付け設定部５１は、選択された機能ブロック５０４が他の定義ブロック１０１に関連付けられていないかどうかを確認する。また、関連付け設定部５１は、選択された機能ブロック５０４の定義データと選択された定義ブロック１０１の定義可能データとを確認して、選択された機能ブロック５０４と定義ブロック１０１に互換性があるかどうかを確認する。
【００５７】
関連付け設定部５１は、選択された機能ブロック５０４が他の定義ブロック１０１に関連付けられておらず、ブロックに互換性がある場合には、関連付けが可能と判断して、選択された機能ブロック５０４と定義ブロック１０１とを関連付ける（ステップＳ４３）。機能ブロック５０４と定義ブロック１０１との関連付けは、関連付け設定部５１が関連付けデータを生成することによって実現される。関連付けデータは、制御機器名及び機能ブロック名と、定義ブロック名とを対応付けるものである。
【００５８】
こうして、関連付け設定部５１は、設計者の指示に応じて制御機器の機能ブロック５０４と定義ブロック１０１との関連付けを繰り返し行う（ステップＳ４１〜Ｓ４３）。関連付け設定部５１は、制御ロジック編集ウィンドウ５０１に表示されている定義ブロック１０１のうち関連付けが終了した定義ブロック１０１に、対応する制御機器名と機能ブロック名とを表示する。
【００５９】
関連付けが終了した後の制御プログラム作成画面５００を図１４に示す。図１４の例では、定義ブロック１０１−ＡＩに制御機器名が「ＤＳＴ＿０１」で機能ブロック名が「ＡＩ＿１」の機能ブロックが関連付けされ、定義ブロック１０１−ＰＩＤに制御機器名が「ＡＶＰ＿０１」で機能ブロック名が「ＰＩＤ＿１」の機能ブロックが関連付けされ、定義ブロック１０１−ＡＯに制御機器名が「ＡＶＰ＿０１」で機能ブロック名が「ＡＯ＿１」の機能ブロックが関連付けされている。
【００６０】
なお、関連付け設定部５１は、選択された機能ブロック５０４が他の定義ブロック１０１に既に関連付けられているか、あるいは選択された機能ブロック５０４と定義ブロック１０１に互換性がない場合には、関連付けが不可能と判断し（ステップＳ４２においてＮＯ）、制御プログラム作成画面５００にエラーメッセージを表示し、関連付けを拒否する（ステップＳ４４）。
【００６１】
次に、制御プログラム編集部５のプロパティ表示部５２は、設計者が入力部７を使って制御ロジック編集ウィンドウ５０１上の定義ブロック１０１を選択した場合（ステップＳ４５においてＹＥＳ）、選択された定義ブロック１０１に対応する制御機器名（図１４のＰＤ＿ＴＡＧ）と機能ブロック名（図１４のＢＬＫ＿ＴＡＧ）とを設定ウィンドウ５０３に表示する（ステップＳ４６）。
【００６２】
実行スケジュール生成部６は、設計者からの指示に応じて、接続パターン読込部４が読み込んだ制御クラスの接続パターンファイルに定義されている実行順のデータを基に、関連付けが終了した接続パターンの実行スケジュールを生成する。
【００６３】
［出力手段の説明］
最後に、制御プログラム編集部５の設定データ保存部５３は、接続パターンファイルと、機能ブロックと定義ブロックとの関連付けデータと、接続パターンの実行スケジュールとからなる制御プログラムを記憶部３に保存する。保存のタイミングとしては、例えば制御プログラム作成画面５００が閉じるときがある。ファイル形式はこれもまたメタ言語の形式で生成されることでよい。
【００６４】
［制御プログラム更新部の説明］
作成済みの接続パターンファイルを接続パターン作成部２で一部変更する場合に、その変更分を一度生成した制御プログラムに反映させたい要求がある。このような要求に応えるため、制御プログラム更新部９は、記憶部３に記憶されている接続パターンファイルが変更された場合、変更された接続パターンファイルを接続パターン読込部４によって読み込み、この接続パターンファイルに関連する制御プログラムを更新する。
【００６５】
図１５は制御プログラム更新部９の構成例を示すブロック図、図１６は制御プログラム更新部９の動作を示すフローチャートである。なお、図１６に示す処理フローは１例であって、これに限るものではない。
制御プログラム更新部９は、ファイル変更検出部９０と、関連プログラム判定部９１と、プログラム変更部９２と、プログラム更新部９３とを有する。
【００６６】
設計者は、接続パターン作成部２を起動して、作成済みの接続パターンの定義ブロックに係るパラメータ又は接続関係などを変更することができる。このときの変更作業は、接続パターンの作成処理と同様にしてできるので、詳細については省略する。接続パターン作成部２のファイル作成部２５は、変更内容に応じて接続パターンファイルを更新する。
【００６７】
制御プログラム更新部９の関連プログラム判定部９１は、ファイル変更検出部９０が記憶部３に記憶されている接続パターンファイルの変更を検出した場合（図１６ステップＳ５０においてＹＥＳ）、この変更された接続パターンファイルを使用している制御プログラムが記憶部３に存在するかどうかを判定する（ステップＳ５１）。関連プログラム判定部９１は、変更された接続パターンファイルを使用している制御プログラムが記憶部３に存在する場合、例えば表示部８の画面にダイアログを表示することで、接続パターンの変更に対して制御プログラムを更新するかどうかを設計者に問い合わせる（ステップＳ５２）。
【００６８】
プログラム変更部９２は、制御プログラムを更新する場合、接続パターンファイルの変更に伴って、この変更された接続パターンの定義ブロックと制御機器の機能ブロックとの関連付けや、実行スケジュールを変更する必要があるかどうかを判定する（ステップＳ５３）。プログラム変更部９２は、関連付けや実行スケジュールを直す必要があると判定した場合、制御プログラム編集部５を起動して、定義ブロックと機能ブロックとの関連付けや実行スケジュールを変更する（ステップＳ５４）。制御プログラム編集部５の動作は、上記と同様なので、説明は省略する。
【００６９】
そして、プログラム更新部９３は、変更された接続パターンファイルと、機能ブロックと定義ブロックとの関連付けデータと、接続パターンの実行スケジュールとからなる変更後の制御プログラムを作成し、記憶部３に記憶されている更新対象の制御プログラムをこの変更後の制御プログラムに更新する（ステップＳ５５）。
関連プログラム判定部９１は、変更された接続パターンファイルを使用している全ての制御プログラムについて更新が完了するまで（ステップＳ５６においてＹＥＳ）、ステップＳ５２に戻り、プログラム毎にステップＳ５２〜Ｓ５５の処理を繰り返す。こうして、制御プログラム更新部９の処理が終了する。
【００７０】
以上のように、本実施の形態では、予め作成された接続パターンファイルを読み込み、各制御機器の使用可能な機能ブロックのリストから機能ブロックを選択すると共に、制御ロジック編集ウィンドウ上の接続パターンの中から定義ブロックを選択するだけで、機能ブロックと定義ブロックとを関連付けて制御プログラムを作成することができるので、制御設計作業を容易にし、作業工数を削減することができる。制御プログラム作成装置を使用するエンジニアは、所謂ドラッグ＆ドロップの手法により画面上で所望の機能ブロックと定義ブロックとを選択するだけで、機能ブロックと定義ブロックとを関連付けることができる。
【００７１】
また、本実施の形態によれば、同じ接続パターンを利用したプログラムの大量生成機能を容易に実現することができる。
本実施の形態では、従来と異なり、定義ブロック間の接続関係は接続パターンの作成時に既にデータとして定義されているため、接続パターンを用いた制御プログラムの作成時に接続関係を改めて設定する必要はない。
【００７２】
また、 従来は、制御設計コンフィギュレーションツールが各ブロックの接続関係を調べて、実行スケジュールを生成するため、制御ロジックが複雑になると、設定ロジックが複雑になり、実行スケジュール生成手段の開発に工数を要する。これに対して、本実施の形態では、接続パターンの定義ブロックおよびリンクの属性として、実行順のデータを予め設定しておくことにより、制御プログラムの実行スケジュールを生成する際に、各ブロックの接続関係を調べる必要がなくなり、実行スケジュール生成部６の開発に要する工数を削減することができる。また、本実施の形態では、制御プログラム更新部９を設けることにより、接続パターンの変更箇所を、その接続パターンを用いている制御プログラムに反映させることができる。
【００７３】
［第２の実施の形態］
第１の実施の形態では、１つの制御プログラムに１つの接続パターンが含まれる場合について説明したが、複数の接続パターンを組み合わせて制御プログラムを作成するようにしてもよい。
図１７は本実施の形態の接続パターン作成部２の構成例を示すブロック図である。本実施の形態の接続パターン作成部２は、第１の実施の形態の構成に加えて、接続パターン複合部２６を備えるものである。制御プログラム作成装置１の他の構成は、第１の実施の形態と同じである。
【００７４】
図１８は本実施の形態の接続パターン作成部２の動作を示すフローチャートであり、図６と同一の処理には同一の符号を付してある。
接続パターン作成部２の接続パターン複合部２６は、記憶部３に格納されている作成済みの接続パターンファイルの中から設計者が入力部７を使って所望の接続パターンファイルを選択すると（図１８ステップＳ２６においてＹＥＳ）、選択された接続パターンファイルを読み込み、この接続パターンファイルに基づいて接続パターンを接続パターン編集画面２００の編集ウィンドウ２０１に表示する（ステップＳ２７）。
【００７５】
接続パターン複合部２６は、設計者の指示に応じてステップＳ２６，Ｓ２７の処理を繰り返す。これにより、複数の接続パターンが編集ウィンドウ２０１上に配置される。以降は、設計者の指示に応じてステップＳ１１〜Ｓ２５の処理を適宜行い、複数の接続パターンを組み合わせて、より大きな接続パターンを作成すればよい。また、１つの接続パターンの中に別の接続パターンを階層的に包含（ネスト）するような構成も可能である。
【００７６】
図１９、図２０は本実施の形態の接続パターンの１例を示す図である。図１９の例は、ＰＩＤ接続パターン１００−１とＰＩＤ接続パターン１００−２という２つの接続パターンを直列に接続してカスケード制御の接続パターンを作成した例を示している。
【００７７】
図２０の例は、ＰＩＤ接続パターン１００−３とＰＩＤ接続パターン１００−４という２つの接続パターンを並列に配置し、接続パターン１００−３，１００−４の出力にＣＳ（セレクタ）の定義ブロックとＡＯの定義ブロックとを接続して、セレクタの選択出力ＢＫＣＡＬ＿ＳＥＬ１，ＢＫＣＡＬ＿ＳＥＬ２をそれぞれＰＩＤ接続パターン１００−３，１００−４にフィードバックすることで、オーバーライドセレクト制御の接続パターンを作成した例を示している。セレクタは、接続パターン１００−３，１００−４の何れかの出力を選択的にＡＯに出力し、またＡＯからのフィードバック出力を接続パターン１００−３，１００−４の何れかに選択的に出力する。
【００７８】
［第３の実施の形態］
本発明の第３の実施の形態は、接続パターン作成手順で作成されてある接続パターンファイルあるいはまったく新規の接続パターンを、テキストエディタなどでＸＭＬの形式にあるファイルを読み込んで編集することで、作成する方法である。そうして変更された接続パターンファイルを直接接続パターン読込手順に読み込ませて、制御プログラムを作成する方法である。すなわち、接続パターン作成手段を用いない点が異なり、その他の関連付け設定手順、出力手順などは、他の実施の形態と共通する。
【００７９】
なお、第１〜第３の実施の形態の制御プログラム作成装置は、ＣＰＵ、記憶装置および外部とのインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このようなコンピュータにおいて、本発明の制御プログラム作成方法を実現させるためのプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカードなどの記録媒体に記録された状態で提供される。ＣＰＵは、記録媒体から読み込んだプログラムを記憶装置に書き込み、プログラムに従って第１、第２の実施の形態で説明した処理を実行する。
【００８０】
また、第１〜第３の実施の形態では、フィールドバスの制御設計について説明しているが、これに限るものではなく、フィールドバス分野以外にも、機能ブロックとそのパラメータ間の接続関係を定義してコンフィギュレーション作業を行う分野で、接続関係の定義が複雑、または同じパターンのデータが数多く現れる分野であれば、本発明を適用することができる。
【産業上の利用可能性】
【００８１】
本発明は、制御機器の機能ブロックを用いた制御プログラム作成技術に適用することができる。
【図面の簡単な説明】
【００８２】
【図１】本発明の第１の実施の形態に係る制御プログラム作成装置の構成を示すブロック図である。
【図２】本発明の第１の実施の形態に係る制御プログラム作成装置による制御プログラム作成の概略を示す図である。
【図３】本発明の第１の実施の形態に係る制御プログラム作成装置の動作を示すフローチャートである。
【図４】本発明の第１の実施の形態に係る制御プログラム作成装置の接続パターン作成部の構成例を示すブロック図である。
【図５】本発明の第１の実施の形態において接続パターンの作成時に表示される接続パターン編集画面を示す図である。
【図６】本発明の第１の実施の形態に係る制御プログラム作成装置の接続パターン作成部の動作を示すフローチャートである。
【図７】本発明の第１の実施の形態における接続パターンファイルの形式の１例を示す図である。
【図８】本発明の第１の実施の形態に係る制御プログラム作成装置の接続パターン読込部の構成例を示すブロック図である。
【図９】本発明の第１の実施の形態において接続パターンの読込時に表示される接続パターン一覧画面を示す図である。
【図１０】本発明の第１の実施の形態に係る制御プログラム作成装置の接続パターン読込部の動作を示すフローチャートである。
【図１１】本発明の第１の実施の形態に係る制御プログラム作成装置の制御プログラム編集部の構成例を示すブロック図である。
【図１２】本発明の第１の実施の形態において制御プログラムの作成時に表示される制御プログラム作成画面を示す図である。
【図１３】本発明の第１の実施の形態に係る制御プログラム作成装置の制御プログラム編集部の動作を示すフローチャートである。
【図１４】本発明の第１の実施の形態において機能ブロックと定義ブロックとを関連付けした後の制御プログラム作成画面を示す図である。
【図１５】本発明の第１の実施の形態に係る制御プログラム作成装置の制御プログラム更新部の構成例を示すブロック図である。
【図１６】本発明の第１の実施の形態に係る制御プログラム作成装置の制御プログラム更新部の動作を示すフローチャートである。
【図１７】本発明の第２の実施の形態に係る制御プログラム作成装置の接続パターン作成部の構成例を示すブロック図である。
【図１８】本発明の第２の実施の形態に係る制御プログラム作成装置の接続パターン作成部の動作を示すフローチャートである。
【図１９】本発明の第２の実施の形態における接続パターンの１例を示す図である。
【図２０】本発明の第２の実施の形態における接続パターンの他の例を示す図である。
【図２１】従来の制御プログラム作成装置を用いた制御プログラム作成方法を説明するための図である。
【符号の説明】
【００８３】
１…制御プログラム作成装置、２…接続パターン作成部、３…記憶部、４…接続パターン読込部、５…制御プログラム編集部、６…実行スケジュール生成部、７…入力部、８…表示部、９…制御プログラム更新部、２０…編集画面生成部、２１…ブロック作成部、２２…ポート作成部、２３…リンク作成部、２４…プロパティ設定部、２５…ファイル作成部、２６…接続パターン複合部、４０…一覧画面生成部、４１…接続パターン追加部、４２…接続パターン削除部、４３…接続パターン選択読込部、５０…作成画面生成部、５１…関連付け設定部、５２…プロパティ表示部、５３…設定データ保存部、９０…ファイル変更検出部、９１…関連プログラム判定部、９２…プログラム変更部、９３…プログラム更新部。
【図１】
0005026925.tif 000002
【図２】
0005026925.tif 000003
【図３】
0005026925.tif 000004
【図４】
0005026925.tif 000005
【図５】
0005026925.tif 000006
【図６】
0005026925.tif 000007
【図７】
0005026925.tif 000008
【図８】
0005026925.tif 000009
【図９】
0005026925.tif 000010
【図１０】
0005026925.tif 000011
【図１１】
0005026925.tif 000012
【図１２】
0005026925.tif 000013
【図１３】
0005026925.tif 000014
【図１４】
0005026925.tif 000015
【図１５】
0005026925.tif 000016
【図１６】
0005026925.tif 000017
【図１７】
0005026925.tif 000018
【図１８】
0005026925.tif 000019
【図１９】
0005026925.tif 000020
【図２０】
0005026925.tif 000021
【図２１】
0005026925.tif 000022