(57)【要約】【課題】設計工数が多く、煩雑となる制御システムの制御機器間のデータの転送用のプログラムの作成を支援する制御システム開発支援装置を得ること。【解決手段】制御システム管理情報を格納する制御システム管理情報格納部１３２と、工程フロー設定情報、プログラムブロック設定情報および転送条件設定情報を格納する工程フロープログラム設定情報格納部１４４と、転送条件判定機器と同じでない転送条件設定情報中の変数を出力する制御機器の変数を、制御システム管理情報を参照して、転送条件判定機器に出力するプログラムを作成し、このプログラムと転送条件設定情報に基づいて条件判定プログラムを生成する条件判定プログラム生成部１５１と、条件判定プログラムの条件成立時に、工程フロー設定情報とプログラムブロック設定情報に基づいて変数をプログラムブロック間で転送する転送プログラムを生成するデータ転送プログラム生成部１５２と、を備える。【選択図】        図１
2008234469.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの作成対象となる制御機器を有する制御システムの接続構成を含む制御システム管理情報を格納する制御システム管理情報格納手段と、
外部より入力された、前記制御システムでの処理単位であるプログラムブロック間の変数の受け渡し関係を規定する工程フロー設定情報と、前記工程フロー設定情報中の前記プログラムブロックを実行する制御機器についての情報を含むプログラムブロック設定情報と、前記プログラムブロック間での変数の転送条件を、制御機器に割りつくデバイスや変数を用いて規定した転送条件設定情報と、を含む工程フロープログラム設定情報を格納する工程フロープログラム設定情報格納手段と、
転送条件を判定する制御機器（以下、転送条件判定機器という）と同じでない前記転送条件設定情報中の変数が割りつく制御機器の前記変数を、前記制御システム管理情報中の制御システムの接続構成を参照して、前記転送条件判定機器に出力する変数出力プログラムを作成し、この変数出力プログラムを含む前記転送条件設定情報で定義された転送条件が成立したか否かを判定する条件判定プログラムを生成する条件判定プログラム生成手段と、
前記条件判定プログラムの条件成立時に、前記工程フロー設定情報と前記プログラムブロック設定情報に基づいて変数を、前記プログラムブロックに対応する制御機器間で転送する転送プログラムを生成する転送プログラム生成手段と、
を備えることを特徴とする制御システム開発支援装置。
【請求項２】
前記制御システム管理情報格納手段は、前記制御システム全体で使用されるグローバル変数と、前記制御システムを構成する各制御機器で使用されるデバイス名またはローカル変数とを関連付けた制御システム内変数管理情報をさらに格納し、
前記転送条件設定情報に含まれるグローバル変数に対応する制御機器のデバイス名またはローカル変数を、前記制御システム内変数管理情報から取得して、前記条件判定プログラム生成手段に渡す制御システム内変数管理手段をさらに備えることを特徴とする請求項１に記載の制御システム開発支援装置。
【請求項３】
前記工程フロー設定情報には、前記条件判定プログラムの条件成立時に常にデータ転送を行う通常転送と、前記条件が成立した瞬間の変数のみを転送するパルス転送とのいずれかのデータ転送種類がさらに設定され、
前記転送プログラム生成手段は、前記工程フロー設定情報に設定されたデータ転送種類に応じた前記転送プログラムを生成することを特徴とする請求項１または２に記載の制御システム開発支援装置。
【請求項４】
前記転送条件設定情報は、１つの出力元から１つの入力先に対して変数を転送する場合の転送条件であることを特徴とする請求項１〜３のいずれか１つに記載の制御システム開発支援装置。
【請求項５】
前記転送条件設定情報は、複数の出力元から１つの入力先に対して変数を転送する場合に、各出力元から前記入力先へ変数を転送する条件と、各条件間の優先順位と、を含み、
前記条件判定プログラム生成手段は、前記転送条件設定情報に基づいて前記複数の出力元の内１つの出力元から前記１つの入力先への変数の転送が実行される条件判定プログラムを生成することを特徴とする請求項１〜３のいずれか１つに記載の制御システム開発支援装置。
【請求項６】
前記転送条件設定情報は、１つの出力元から複数の入力先に対して変数を転送する場合に、前記出力元から前記各入力先へ変数を転送する条件と、各条件間の優先順位と、を含み、
前記条件判定プログラム生成手段は、前記転送条件設定情報に基づいて前記１つの出力元から前記複数の入力先の内１つの入力先への変数の転送が実行される条件判定プログラムを生成することを特徴とする請求項１〜３のいずれか１つに記載の制御システム開発支援装置。
【請求項７】
外部より入力された、開発する制御システムにおける制御機器の接続構成を含む制御システム管理情報と、ある処理単位のプログラムブロックの間で変数の受け渡しを定義する工程フロー設定情報と、前記工程フロー設定情報中の前記プログラムブロックを実行する制御機器についての情報を含むプログラムブロック設定情報と、前記プログラムブロック間での変数の転送条件を、制御機器に割りつくデバイスや変数を用いて規定した転送条件設定情報と、の内容を記憶手段に格納する条件設定工程と、
転送条件を判定する制御機器（以下、転送条件判定機器という）と同じでない前記転送条件設定情報中の変数が割りつく制御機器の前記変数を、前記制御システム管理情報中の制御システムの接続構成を参照して、前記転送条件判定機器に出力する変数出力プログラムを生成する変数出力プログラム生成工程と、
前記転送条件設定情報と前記変数出力プログラムとに基づいて、転送条件が成立したか否かを判定する条件判定プログラムを生成する条件判定プログラム生成工程と、
前記条件判定プログラムの条件成立時に、前記工程フロー設定情報と前記プログラムブロック設定情報とに基づいて変数を、前記プログラムブロックに対応する制御機器間で転送する転送プログラムを生成する転送プログラム生成工程と、
を含むことを特徴とする制御システム開発支援方法。
【請求項８】
前記制御システム管理情報は、前記制御システム全体で使用されるグローバル変数と、前記制御システムを構成する各制御機器で使用されるデバイス名またはローカル変数とを関連付けた制御システム内変数管理情報をさらに含み、
前記条件判定プログラム生成工程では、前記制御システム内変数管理情報を参照して、前記転送条件設定情報に含まれるグローバル変数を対応する制御機器のデバイス名またはローカル変数に変換し、前記条件判定プログラムを生成することを特徴とする請求項７に記載の制御システム開発支援方法。
【請求項９】
前記工程フロー設定情報には、前記条件判定プログラムの条件成立時に常にデータ転送を行う通常転送と、前記条件が成立した瞬間の変数のみを転送するパルス転送とのいずれかのデータ転送種類がさらに設定され、
前記転送プログラム生成工程では、前記工程フロー設定情報に設定されたデータ転送種類に応じた前記転送プログラムを生成することを特徴とする請求項７または８に記載の制御システム開発支援方法。
【請求項１０】
前記転送条件設定情報は、１つの出力元から１つの入力先に対して変数を転送する場合の転送条件であることを特徴とする請求項７〜９のいずれか１つに記載の制御システム開発支援方法。
【請求項１１】
前記転送条件設定情報は、複数の出力元から１つの入力先に対して変数を転送する場合に、各出力元から前記入力先へ変数を転送する条件と、各条件間の優先順位と、を含み、
前記条件判定プログラム生成工程では、前記転送条件設定情報に基づいて前記複数の出力元の内１つの出力元から前記１つの入力先への変数の転送が実行される条件判定プログラムを生成することを特徴とする請求項７〜９のいずれか１つに記載の制御システム開発支援方法。
【請求項１２】
前記転送条件設定情報は、１つの出力元から複数の入力先に対して変数を転送する場合に、前記出力元から前記各入力先へ変数を転送する条件と、各条件間の優先順位と、を含み、
前記条件判定プログラム生成工程では、前記転送条件設定情報に基づいて前記１つの出力元から前記複数の入力先の内１つの入力先への変数の転送が実行される条件判定プログラムを生成することを特徴とする請求項７〜９のいずれか１つに記載の制御システム開発支援方法。
【請求項１３】
請求項７〜１２のいずれか１つに記載の制御システム開発支援方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の制御機器によって構成される制御システムを動作させるプログラムの作成を支援する制御システム開発支援装置、制御システム開発支援方法およびその方法をコンピュータに実行させるプログラムに関するものである。
【背景技術】
【０００２】
複数の制御機器を用いた制御システムを開発する際には、他の制御機器での実行結果を利用して制御を行うために、制御機器間でデータを送受信する必要がある。そのため、制御機器間をフィールドネットワークやコントローラ間ネットワークなどのネットワークを用いて接続し、接続したネットワークを介して制御機器間でデータの送受信を行っている。
【０００３】
制御機器が多数接続される大規模な制御システムの作成は、少数のシステム設計者と多数のプログラム作成者によって行われることが一般的である。システム設計者は、制御システム全体の動作の設計、使用する制御機器や制御機器間を結ぶネットワークの設計、プログラム間や制御機器間におけるデータの送受信の設計などを行う。一方のプログラム作成者は、システム設計者による設計を基に個別のプログラムを作成する。
【０００４】
ネットワーク設計は、他の制御機器の設定情報も踏まえて設計する必要があるために、大きな工数を必要とする。そのため、従来から、機器を示すブロックを配置し、ブロック間を結線することで機器間のネットワークを図的表現で設定可能とし、コネクション情報を各機器に対してダウンロードするといった設計支援ツールが提案されてきた（たとえば、特許文献１参照）。
【０００５】
【特許文献１】特開２０００−２７６５０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、制御システムにおける制御機器間の通信は常に起こるわけではなく、所定の転送条件が成立したときにのみ出力側から入力側に対してデータの転送を行うように設計することが多い。そして、その転送条件には様々な制御機器（特に出力側と入力側の制御機器）のデバイス値が用いられる。このような転送条件を判定するためには、システム設計者が前もって適切なデバイス領域設計やネットワーク設計を行う必要がある。しかし、転送条件に用いる値の数が多くなると、多くの通信が発生するため、設計工数が多くなるという問題点があった。
【０００７】
また、一度作成した制御システム内の制御機器を変更したり、更新したりする際に、その変更コストを削減するためにプログラムを再利用することがある。しかし、データの入出力や転送条件判定、その他の制御プログラムを合わせて作成しているために、スムーズにプログラムの再利用ができないことが多いという問題点があった。また、データの入出力や転送条件判定プログラムを変更するためには、はじめに作成したときと同様のコストがかかってしまうという問題点もあった。
【０００８】
さらに、制御機器のメンテナンスや微調整は、システム設計者を中心に行われるが、制御機器のプログラムにはラダー言語などの特殊なプログラム言語が用いられることが多い。しかし、現実的には、このようなプログラム言語を習得しているシステム設計者が少ないために、簡単な微調整を行う場合にもプログラム開発者が必要となっているという問題点もあった。
【０００９】
この発明は、上記に鑑みてなされたもので、設計工数が多く、煩雑となる制御システムを構成する制御機器間のデータの転送用のプログラムの作成を支援することができる制御システム開発支援装置、制御システム開発支援方法およびその方法をコンピュータに実行させるプログラムを得ることを目的とする。
【００１０】
また、この発明は、制御システム向けに既に作成済みのプログラムを、はじめからプログラムを作成する場合と比較してコストを抑えながら、制御システム内の制御機器の変更や更新時に、容易に再利用することができる制御システム開発支援装置、制御システム開発支援方法およびその方法をコンピュータに実行させるプログラムを得ることも目的とする。
【００１１】
さらに、この発明は、ラダー言語を習得しているプログラム開発者を必要とすることなく、制御機器のメンテナンスや微調整を行うことができる制御システム開発支援装置、制御システム開発支援方法およびその方法をコンピュータに実行させるプログラムを得ることも目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、この発明にかかる制御システム開発支援装置は、プログラムの作成対象となる制御機器を有する制御システムの接続構成を含む制御システム管理情報を格納する制御システム管理情報格納手段と、外部より入力された、前記制御システムでの処理単位であるプログラムブロック間の変数の受け渡し関係を規定する工程フロー設定情報と、前記工程フロー設定情報中の前記プログラムブロックを実行する制御機器についての情報を含むプログラムブロック設定情報と、前記プログラムブロック間での変数の転送条件を、制御機器に割りつくデバイスや変数を用いて規定した転送条件設定情報と、を含む工程フロープログラム設定情報を格納する工程フロープログラム設定情報格納手段と、転送条件を判定する制御機器（以下、転送条件判定機器という）と同じでない前記転送条件設定情報中の変数が割りつく制御機器の前記変数を、前記制御システム管理情報中の制御システムの接続構成を参照して、前記転送条件判定機器に出力する変数出力プログラムを作成し、この変数出力プログラムを含む前記転送条件設定情報で定義された転送条件が成立したか否かを判定する条件判定プログラムを生成する条件判定プログラム生成手段と、前記条件判定プログラムの条件成立時に、前記工程フロー設定情報と前記プログラムブロック設定情報に基づいて変数を、前記プログラムブロックに対応する制御機器間で転送する転送プログラムを生成する転送プログラム生成手段と、を備えることを特徴とする。
【発明の効果】
【００１３】
この発明によれば、プログラムブロック間のデータ転送を転送条件が成立したときに行う転送制御プログラムを自動生成することによって、使用者は、煩雑なデータ転送以外のプログラムの作成のみに注力すればよくなるために、使用者による作業工数が減少するという効果を有する。また、転送条件の設定やデータの転送先の設定を変更する際に、制御機器の構成によらずに自由に変更することができるために、使用者が作成するプログラムの再利用性が向上するという効果も有する。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明にかかる制御システム開発支援装置、制御システム開発支援方法およびその方法をコンピュータに実行させるプログラムの好適な実施の形態を詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１５】
実施の形態１．
図１は、この発明にかかる制御システム開発支援装置の実施の形態１の機能構成を模式的に示すブロック図である。この制御システム開発支援装置１０は、入力部１１と、表示部１２と、制御システム情報管理部１３と、工程フロープログラム管理部１４と、転送制御プログラム生成部１５と、これらの各処理部を制御する制御部１６と、を備える。
【００１６】
入力部１１は、転送制御プログラムを作成する際に必要なデータを、この制御システム開発支援装置１０に設定する際の入力インタフェースである。この入力部１１として、キーボードや、マウスなどのポインティングデバイスなどが用いられる。また、表示部１２は、転送制御プログラムを作成する際に必要なデータ入力画面などを表示する機能を有し、液晶ディスプレイなどの表示装置によって構成される。
【００１７】
制御システム情報管理部１３は、開発対象となる制御システムを構成する制御機器全体の情報である制御システム管理情報を管理する処理部であり、制御システム管理情報設定部１３１と、制御システム管理情報格納部１３２と、を有する。制御システム管理情報設定部１３１は、転送制御プログラムの作成対象となる制御システムに関する制御システム管理情報（制御システム構成情報と制御機器構成情報）を取得し、制御システム管理情報格納部１３２に格納する。この制御システム管理情報設定部１３１は、ソフトウェアに組み込む形でもよいし、制御システム管理情報を他のソフトウェアや実際の制御機器からインポートする形のものでもよい。また、制御システム管理情報設定部１３１は、プログラムの生成時に使用するデバイスの領域を各制御機器に対して設定する。
【００１８】
制御システム管理情報格納部１３２は、開発対象となる制御システムの構成に関する制御システム構成情報と、制御システム内の個々の制御機器の構成に関する制御機器構成情報と、を含む制御システム管理情報を格納する。また、制御システム管理情報格納部１３２は、制御システム管理情報設定部１３１で各制御機器に対して設定されたプログラムの生成時に使用するデバイスの領域についても保持する。
【００１９】
制御システム構成情報は、制御システムを構成するためにどのような制御機器を用い、制御機器間がどのようなネットワーク構成でつながれているか、またはベースユニット上にＣＰＵ（Central Processing Unit）ユニットや他の機能ユニット、入出力ユニットなどがどのような構成で接続されているかを示す情報である。図２−１は、制御システム構成情報の一例を示す図である。この図では、制御システム構成情報は図形式のデータとなっている。この図に示されるように、制御システムは、制御機器Ａ〜Ｄ（図中、ＣｔｒｌＡ〜Ｄと表記）の４つの制御機器が制御機器Ａ−制御機器Ｃ−制御機器Ｄ−制御機器Ｂ−制御機器Ａの順にリング状に接続され、各制御機器間でのデータの受け渡しは共有メモリを用いて行われることを示している。
【００２０】
制御機器構成情報は、制御システムを構成する各制御機器に関して、その制御機器に書込むプログラムや制御機器の設定情報、制御機器内でローカルに用いられる変数情報などの情報を含む。この制御機器構成情報は、制御機器ごとに個別に管理するようにしてもよいし、制御システムに用いられるすべての制御機器構成情報を一括管理してもよい。図２−２は、制御機器構成情報の一例を示す図である。この図に示されるように、制御機器構成情報には、対象となる制御機器と、この制御機器に書き込むプログラム名と、制御機器内で使用されるローカルな変数のデバイスへの割付を含む情報が格納される。
【００２１】
工程フロープログラム管理部１４は、制御システムにおける処理の単位ごとに作成されるプログラムをプログラムブロックという単位で扱い、プログラムブロック間におけるデータの受け渡し（接続関係）を管理する。この工程フロープログラム管理部１４は、工程フロー設定管理部１４１と、プログラムブロック設定管理部１４２と、転送条件設定部１４３と、工程フロープログラム設定情報格納部１４４と、を有する。
【００２２】
工程フロー設定管理部１４１は、制御システムにおける処理の単位をプログラムブロックという形で表し、他のプログラムブロックの変数との対応関係を示した工程フロー設定情報を管理する。具体的には、ある処理の単位であるプログラムブロックについて、他のプログラムブロックとの間の変数の受け渡しを示す工程フロー設定情報を設定するための工程フロー設定画面を表示部１２に表示させる。そして、この工程フロー設定画面に入力部１１を介して使用者によって入力された内容を工程フロー設定情報として、工程フロープログラム設定情報格納部１４４に格納し、管理する。
【００２３】
工程フロー設定情報は、プログラムブロック間のデータの受け渡しが定義されていれば、テキスト形式のデータでも、図形式のデータでも、その他の形式の情報であってもよい。この明細書では、工程フロー設定情報は、図形式のデータで表示部１２上に表示するものとする。ここで、プログラムブロックは矩形で表現され、変数は矩形内にさらに小さな矩形を配置することで表現される。また、変数の受け渡しは、出力値となる変数から入力値となる変数に向けて矢印を有する転送線を引くことで表現される。なお、これらの図形は予め用意されており、使用者がこれらの図形を入力部１１を介して所望の形に配置することで設定される。
【００２４】
図３−１〜図３−２は、工程フロー設定管理部によって表示部に表示される表示画面の一例を示す図である。図３−１の工程フロー設定画面５００には、処理の１単位を表すプログラムブロックＡ，Ｂが示されている。プログラムブロックＡには、変数１と変数２が設定され、プログラムブロックＢには、変数３と変数４が設定されている。そして、プログラムブロックＡの変数１からプログラムブロックＢの変数３に向けて、転送線５０３が引かれている。この転送線５０３は、プログラムブロックＡとプログラムブロックＢとの間でデータ転送を行うことを示している。つまり、プログラムブロックＡの出力デバイスを示す変数１からプログラムブロックＢの入力デバイスを示す変数３に向けて結線することで、出力デバイスの値を入力デバイスに対して転送することを示している。
【００２５】
また、図３−２の工程フロー設定画面５００には、プログラムブロックＡ，Ｂ間を結ぶ転送線５０３上に、転送条件を示す条件ブロック５０４が配置されている。この条件ブロック５０４は、データ転送に関する転送条件を設定することを明示するためのブロックである。その他の構成要素は、図３−１のものと同一であるので、その説明を省略する。なお、これらの図３−１と図３−２では、工程フロー設定情報を図の形で表現した場合を示しているが、上述したようにテキスト形式でプログラムブロック間の関係を示すようにしてもよい。
【００２６】
プログラムブロック設定管理部１４２は、工程フロー設定管理部１４１で設定した各プログラムブロックに対して設定されるプログラムブロック設定情報を管理する。具体的には、プログラムブロックについてのプログラムブロック設定情報を設定するためのプログラムブロック設定画面を表示部１２に表示させる。そして、このプログラムブロック設定画面に入力部１１を介して使用者によって入力された内容をプログラムブロック設定情報として、工程フロープログラム設定情報格納部１４４に格納し、管理する。
【００２７】
プログラムブロック設定情報は、プログラムを実行する制御機器名、対応するプログラムの名称、プログラムからデータを出力する出力デバイス、プログラムに対してデータを入力する入力デバイスを含む。そして、このプログラムブロック設定情報は、工程フロー設定情報で作成されたプログラムブロックと関連付けされている。
【００２８】
図４は、プログラムブロック設定管理部によって表示部に表示される表示画面の一例を示す図である。このプログラムブロック設定画面５２０には、プログラムブロックが実際に実行される制御機器である「実行制御機器」と、プログラムブロックに対応する「プログラム名」と、プログラムブロックに設定される入力デバイスを示す「入力デバイス情報」と、プログラムブロックに設定される出力デバイスを示す「出力デバイス情報」と、を含む。
【００２９】
ここで、「実行制御機器」と「プログラム名」とは、制御システム情報管理部１３で管理されている制御システム管理情報（制御システム構成情報と制御機器構成情報）に含まれる情報が用いられる。そのため、たとえばこれらの項目は、制御システム管理情報から選択可能な構成としてもよい。また、「プログラム名」に対応するプログラムは、１つのプログラムファイルであってもよいし、ファンクションブロックのような１つの機能を示すプログラムファイル内の一部分であってもよい。さらに、「入力デバイス情報」と「出力デバイス情報」は、「Ｄ１００」や「Ｄ１０１」のように実デバイス名で指定してもよいし、実デバイスに対応して付された「変数１」のような変数名を用いてもよい。この実デバイスに対応する変数名は、制御機器構成情報で管理されているものを用いる。なお、図４で設定されたプログラムブロック設定情報は、図２−１や図２−２に示される各プログラムブロックに対して設定される。
【００３０】
転送条件設定部１４３は、各プログラムブロック間のデータの転送条件設定情報を管理する。具体的には、複数のプログラムブロック間で受け渡しされるデータの転送条件を設定するための転送条件設定画面を表示部１２に表示させる。そして、この転送条件設定画面に入力部１１を介して使用者によって入力された内容を転送条件設定情報として、工程フロープログラム設定情報格納部１４４に格納し、管理する。転送条件設定情報には、プログラムブロック間でデータの転送を行うための条件（転送条件）を、制御機器（プログラムブロック）で使用される変数を用いた算術式と、この算術式を組み合わせた論理式で表現したものと、この転送条件を判定する制御機器名と、が含まれる。この転送条件設定部１４３によって設定された内容に基づいて、後述する転送制御プログラム生成部１５は、転送制御プログラムを作成する。
【００３１】
図５は、転送条件設定画面の一例を示す図である。この転送条件設定画面５４０は、たとえば図３−１の場合には転送線５０３を選択した後に、図３−２の場合には条件ブロック５０４を選択した後に、転送条件設定画面５４０を表示するコマンドを実行することによって、表示部１２上に表示される。
【００３２】
この転送条件設定画面５４０は、デバイス名や変数名を用いた算術式を入力する算術式入力領域５４１と、算術式入力領域５４１に入力された算術式の結果を用いて転送条件である論理式を入力する論理式入力領域５４２と、この転送条件の判定をどの制御機器で行うのかを示す条件判定用制御機器入力領域５４３と、を有する。
【００３３】
算術式入力領域５４１には、図に示されるように、算術式に対して一意に付される条件番号と、変数と、その変数がどの制御機器で得られるかを示す制御機器識別情報と、複数の変数間で行う算術処理を示す算術演算子と、複数の変数間の比較を行う比較演算子と、が含まれる。たとえば、図の条件番号１では、制御機器識別情報が「制御機器Ａ（ＣｔｒｌＡ）」である制御機器に割り当てられた変数「Ｖａｒ１」を、制御機器識別情報がそれぞれ「制御機器Ｂ（ＣｔｒｌＢ）」である制御機器に割り当てられた変数「Ｖａｒ２」と「Ｖａｒ３」の和と比較して、両者が等しいか否かを判定するものである。
【００３４】
論理式入力領域５４２では、算術式入力領域５４１で入力された算術式の結果を用いて論理演算を行う条件が示されるが、算術式に一意に付された条件番号を用いて、論理式が使用者によって組み立てられる。たとえば、図に示される例では、それぞれ条件番号１〜３で示される算術式の結果を用いて、「１  ＡＮＤ  （２  ＯＲ  ３）」という論理式が転送条件として指定される。
【００３５】
工程フロープログラム設定情報格納部１４４は、上記の工程フロー設定管理部１４１で管理される工程フロー設定情報と、プログラムブロック設定管理部１４２で管理されるプログラムブロック設定情報と、転送条件設定部１４３で管理される転送条件設定情報と、を関連付けて格納する。
【００３６】
転送制御プログラム生成部１５は、工程フロープログラム管理部１４で作成された工程フロー設定情報に対応する転送制御プログラムを作成する処理部であり、条件判定プログラム生成部１５１と、データ転送プログラム生成部１５２と、を有する。
【００３７】
条件判定プログラム生成部１５１は、転送条件設定部１４３で設定された転送条件設定情報に基づいて、転送条件を判定するための条件判定プログラムを生成する。そして、生成した条件判定プログラムを、転送条件設定情報に定められた条件判定制御機器に設定する。
【００３８】
データ転送プログラム生成部１５２は、条件判定プログラム生成部１５１によって生成された条件判定プログラムを利用して、工程フロー設定管理部１４１で設定された工程フロー設定情報とプログラムブロック設定情報とに基づいてデータ転送プログラムを生成する。そして、生成したデータ転送プログラムを、関連する制御機器に対して設定する。
【００３９】
なお、転送制御プログラム生成部１５では、転送条件を判定するための条件判定プログラムを条件判定プログラム生成部１５１によって生成し、条件成立時にデータ転送を行うためのデータ転送プログラムをデータ転送プログラム生成部１５２で生成することを、転送線５０３で結線された出力デバイスと入力デバイスのすべての組に対して繰り返し行う。
【００４０】
つぎに、このような構成の制御システム開発支援装置１０の制御システム開発支援方法における転送条件判定プログラムの作成処理手順と、データ転送プログラムの作成処理手順とについて、順に説明する。図６は、転送条件判定プログラムの作成処理手順を示すフローチャートである。予め、入力部１１を介して、開発対象となる制御システムのプログラムブロック間のデータの受け渡し関係を示す工程フロー設定情報、各プログラムブロックの設定情報を示すプログラムブロック設定情報、およびプログラムブロック間のデータの転送条件を示す転送条件が、使用者によって設定され、工程フロープログラム設定情報格納部１４４に格納されている状態にあるものとする。
【００４１】
まず、条件判定プログラム生成部１５１は、工程フロープログラム設定情報格納部１４４から転送条件設定情報を抽出し、転送条件を判定する制御機器名を取得する（ステップＳ１１）。たとえば、図５に示される転送条件設定画面５４０をそのまま転送条件設定情報としてみなすと、この中の条件判定用制御機器入力領域５４３に入力される値を参照して、転送条件を判定する制御機器名を取得する。
【００４２】
ついで、転送条件設定情報に含まれるデバイス（変数）の内、抽出していないものが存在するか否かを判定する（ステップＳ１２）。抽出していないものが存在する場合（ステップＳ１２でＹｅｓの場合）には、転送条件判定情報の中から転送条件の判定に用いるデバイス（変数）を１つ抽出する（ステップＳ１３）。この抽出は、たとえば図５の算術式入力領域５４１に入力された各変数の内の１つの変数を抽出する。
【００４３】
その後、抽出した転送条件の判定に用いるデバイス（変数）の制御機器と、ステップＳ１１で抽出した転送条件の判定を行う制御機器とが異なるか否かを判定する（ステップＳ１４）。たとえば図５の例では、その算術式入力領域５４１から、ステップＳ１３で抽出したデバイス（変数）の制御機器識別情報を抽出し、この制御機器識別情報とステップＳ１１で取得した条件判定用の制御機器名とが異なるかを判定する。
【００４４】
抽出したデバイス（変数）の制御機器と判定を行う制御機器とが異なる場合（ステップＳ１４でＹｅｓの場合）には、条件判定プログラム生成部１５１は、条件を判定する制御機器が異なる制御機器のデバイス（変数）を利用するための変数出力プログラムを生成する（ステップＳ１５）。このとき、条件判定プログラム生成部１５１は、制御システム管理情報格納部１３２の制御システム構成情報を参照し、プログラムを作成する制御システムのネットワーク構成に適した変数出力プログラムを生成する。たとえば、イーサネット（登録商標）で接続されたネットワーク構成の場合には、抽出したデバイス（変数）の制御機器が、判定を行う制御機器に対して変数を送信する変数出力プログラムを作成し、共有メモリを有するネットワークで接続された構成の場合には、抽出したデバイス（変数）の制御機器が、判定を行う制御機器との間の共有メモリに変数を書込み、判定を行う制御機器が共有メモリに書き込まれた変数を読込む変数出力プログラムを作成する。
【００４５】
その後またはステップＳ１４で抽出したデバイス（変数）の制御機器と判定を行う制御機器とが同じ場合（ステップＳ１４でＮｏの場合）には、ステップＳ１２へと戻り、転送条件設定情報に含まれるデバイス（変数）の内、抽出していないデバイス（変数）がなくなるまで、上述した処理が繰り返し実行される。
【００４６】
一方、ステップＳ１２で条件に用いるデバイス（変数）の内、抽出していないものが存在しない場合（ステップＳ１２でＮｏの場合）には、転送条件設定情報に含まれる算術式と論理式と、ステップＳ１５で作成した異なる制御機器のデバイス（変数）を利用するための変数出力プログラムとを用いて、条件判定プログラムを作成する（ステップＳ１６）。以上によって、転送条件判定プログラムの作成処理が終了する。
【００４７】
図７は、図５の転送条件に基づいて作成された条件判定プログラムの内容の一例を示す図である。このプログラムは、条件判定を行う制御機器Ａ（ＣｔｒｌＡ）で実行されるラダープログラムである。ここで、制御機器Ｂ（ＣｔｒｌＢ）、制御機器Ｃ（ＣｔｒｌＣ）および制御機器Ｄ（ＣｔｒｌＤ）のデバイス値が制御機器Ａに転送されるプログラムは、この図７のプログラムとは別に用意されているものと仮定する。つまり、そのプログラムでは、制御機器ＢのＶａｒ２，Ｖａｒ３，Ｖａｒ４の値を、それぞれ制御機器ＡにあるＢ＿Ｖａｒ２，Ｂ＿Ｖａｒ３，Ｂ＿Ｖａｒ４に転送し、制御機器ＣのＶａｒ５，Ｖａｒ６の値を、それぞれ制御機器ＡにあるＣ＿Ｖａｒ５，Ｃ＿Ｖａｒ６に転送し、制御機器ＤのＶａｒ７の値を、制御機器ＡにあるＤ＿Ｖａｒ７に転送している。
【００４８】
この図７の１行目は、制御機器Ａが、Ｂ＿Ｖａｒ２＋Ｂ＿Ｖａｒ３の結果の値をＤ５００に代入することを示している。なお、接点のＳＭ４００は、その右に記載されている式を、常時実行することを示いている。また、この２行目は、Ｖａｒ１とＤ５００の値が等しく、かつＢ＿Ｖａｒ４がＣ＿Ｖａｒ５よりも大きいかまたはＣ＿Ｖａｒ６がＤ＿Ｖａｒ７よりも小さいときに条件が成立することを示している。なお、この図７のラダープログラムにおけるＤ５００は、このプログラムで使用するデバイス領域として、プログラム生成時に予め設定されたものである。
【００４９】
図８は、データ転送プログラムの作成処理手順を示すフローチャートである。まず、データ転送プログラム生成部１５２は、出力デバイスが割り付く制御機器と条件判定を行う制御機器が同一であるか否かを判定する（ステップＳ３１）。ここで、出力デバイスが割り付く制御機器は、出力デバイスを有するプログラムブロックのプログラムブロック設定情報に含まれる実行制御機器から取得することができ、条件判定を行う制御機器は、転送条件設定情報中の条件判定用制御機器から取得することができる。そして、取得したこれらの値を比較することによって出力デバイスが割り付く制御機器と条件判定を行う制御機器が同一であるか否かを判定することができる。
【００５０】
判定の結果、出力デバイスが割り付く制御機器と条件判定を行う制御機器が同じでない場合（ステップＳ３１でＮｏの場合）には、データ転送プログラム生成部１５２は、条件判定結果を、出力デバイスを保持する制御機器に伝えるプログラムを生成する（ステップＳ３２）。このとき、データ転送プログラム生成部１５２は、制御システム構成情報を参照し、ネットワーク構成に基づいてプログラムを作成する。たとえば、イーサネット（登録商標）で接続されたネットワーク構成の場合には、条件判定を行う制御機器が出力デバイスを保持する制御機器に対して条件判定結果を送信するプログラムを作成し、共有メモリを有するネットワークで接続された構成の場合には、条件判定を行う制御機器が、出力デバイスを保持する制御機器との間の共有メモリに条件判定結果を書込み、出力デバイスを保持する制御機器が共有メモリに書き込まれた条件判定結果を読込むプログラムを作成する。
【００５１】
その後またはステップＳ３１で出力デバイスが割り付く制御機器と条件判定を行う制御機器が同じである場合（ステップＳ３１でＹｅｓの場合）には、さらに出力デバイスが割り付く制御機器と、入力デバイスが割り付く制御機器とが同じであるか否かを判定する（ステップＳ３３）。ここで、出力デバイスと入力デバイスが割り付く制御機器は、それぞれ出力デバイスと入力デバイスを有するプログラムブロックのプログラムブロック設定情報に含まれる実行制御機器から取得することができる。そして、取得したこれらの値を比較することによって、出力デバイスが割り付く制御機器と入力デバイスが割り付く制御機器とが同じであるか否かを判定することができる。
【００５２】
判定の結果、出力デバイスと入力デバイスにそれぞれ割り付く制御機器が同じ場合（ステップＳ３３でＹｅｓの場合）には、図６で作成した条件判定プログラムで転送条件が成立したときに、出力デバイスを保持する制御機器内で出力デバイスのデータを入力デバイスに転送するプログラムを生成し（ステップＳ３４）、データ転送プログラムの作成処理が終了する。
【００５３】
また、ステップＳ３３で、出力デバイスと入力デバイスにそれぞれ割り付く制御機器が異なる場合（ステップＳ３３でＮｏの場合）には、図６で作成した条件判定プログラムで転送条件が成立したときに、出力デバイスが割り付く制御機器から入力デバイスが割り付く制御機器に対してデータを転送するプログラムを生成し（ステップＳ３５）、データ転送プログラムの作成処理が終了する。このステップＳ３５でも、データ転送プログラム生成部１５２は、制御システム構成情報を参照して、ネットワーク構成に基づいたプログラムを作成する。
【００５４】
なお、ステップＳ３２で生成されたプログラムは、条件判定を行う制御機器に設定され、ステップＳ３４とステップＳ３５で生成されたプログラムは、出力デバイスを保持する制御機器に設定される。
【００５５】
また、図８のフローチャートでは、出力デバイスが割り付く制御機器に対して条件判定結果を送信する場合を示したが、入力デバイスが割り付く制御機器に対して条件判定結果を送信し、転送条件が成立したときのみ出力デバイスから送信された値を入力デバイスが読取るようにしてもよい。この場合には、ステップＳ３１で入力デバイスを保持する制御機器が、条件判定を行う制御機器と同じか否かを判定し、ステップＳ３２で条件判定結果を入力デバイスに伝えるプログラムを生成すればよい。
【００５６】
以上のようにして、プログラムブロック間で変数のやり取りを行う際の条件判定プログラムと転送条件が成立した際のデータ転送プログラムを作成することができる。
【００５７】
このようにして作成された条件判定プログラムとデータ転送プログラムの動作の一例について説明する。図９は、制御システムの構成の一例を示す図である。この図に示されるように、制御機器Ａ〜制御機器Ｃ（図中、ＣｔｒｌＡ〜Ｃと表記）はネットワークを介して接続され、制御機器Ａは条件判定用制御機器であり、制御機器Ｂは出力デバイスが割り付く制御機器であり、制御機器Ｃは入力デバイスが割り付く制御機器であるとする。
【００５８】
条件判定用制御機器の制御機器Ａでは、条件判定プログラムが組み込まれ、その転送条件判定プログラムにしたがって、自装置や他の制御機器Ｂ，Ｃからデバイス（変数）を読込む場合には読込む処理を行って、転送条件の判定を行う。そして、この転送条件の判定結果を、たとえば出力デバイスを保持する制御機器Ｂに渡す。制御機器Ｂは、転送条件が成立しない場合には、何の処理も行わず、転送条件が成立するまで待ち状態となるが、転送条件が成立した場合には、制御機器Ｂは、出力デバイスの値を、入力デバイスを保持する制御機器Ｃへと転送する。以上のようにして、出力デバイスの値が、入力デバイスへと転送される。なお、出力デバイスを保持する制御機器Ｂと入力デバイスを保持する制御機器Ｃとが同じである場合には、同一の制御機器の出力デバイスから入力デバイスへとデータが渡されることになる。
【００５９】
つぎに、条件判定プログラムとデータ転送プログラムの作成の具体的な例について説明する。なお、以下では、図２−１に示されるように、共有メモリを有するネットワークに複数の制御機器が接続されている場合を例に挙げて説明する。ここで、図示していないが、各制御機器Ａ〜Ｄの間には、共有メモリが設けられており、出力デバイス側の制御機器が所定の出力デバイスの値を共有メモリに書込み、入力デバイス側の制御機器が共有メモリに書込まれた値を読込む仕組みとなっている。
【００６０】
（１）条件判定制御機器、出力デバイスが割り付く制御機器、入力デバイスが割り付く機器ともに同じ場合
図１０は、条件判定制御機器、出力デバイスが割り付く制御機器、および入力デバイスが割り付く制御機器がともに同じ場合の工程フロー設定情報を示す図である。ここでは、プログラムブロックαの出力デバイスである変数１の値が、所定の条件を満たす場合に、プログラムブロックβの入力デバイスの変数２に転送される（書込まれる）ものとする。また、プログラムブロックα，βともに同一の制御機器（たとえば、制御機器Ａとする）に割り付けられているものとする。
【００６１】
この条件ブロック５０４には、上述した仮定のように、条件判定制御機器も出力デバイスを保持する制御機器も入力デバイスを保持する制御機器もすべて制御機器Ａであり、転送条件は、「ＶａｒＳ  ＝  ＴＲＵＥ  ＆  ＶａｒＴ  ＝  ＦＡＬＳＥ」であるとする。ここで、変数ＶａｒＳ，ＶａｒＴともに制御機器Ａのデバイスに割り付けられる変数であるものとする。
【００６２】
このような条件を満たす制御機器Ａ用のプログラムの概要は図１１に示すようになる。
（Ａ）転送条件「ＶａｒＳ  ＝  ＴＲＵＥ  ＆  ＶａｒＴ  ＝  ＦＡＬＳＥ」を実行する条件判定プログラムを作成する。
（Ｂ）制御機器Ａは、（Ａ）の条件判定用プログラムを用いて転送条件成立の判定を行い、その結果、転送条件が満たされる場合に、制御機器Ａ内の変数１の値を、同じく制御機器Ａ内の変数２へとコピーするデータ転送プログラムを作成する。
【００６３】
（２）条件判定制御機器、出力デバイスが割り付く制御機器、入力デバイスが割り付く制御機器がすべて異なる場合
図１２は、条件判定制御機器、出力デバイスが割り付く制御機器、および入力デバイスが割り付く制御機器がすべて異なる場合の工程フロー設定情報を示す図である。ここでは、条件判定制御機器は、制御機器Ｂであり、プログラムブロックαは制御機器Ａに割り付けられ、プログラムブロックβは制御機器Ｃに割り付けられているものとする。転送条件は、「ＶａｒＳ  ＝  ＴＲＵＥ  ＆  ＶａｒＴ  ＝  ＦＡＬＳＥ」であるとする。ここで、ＶａｒＳは制御機器Ｂのデバイスに割り付けられる変数であり、ＶａｒＴは制御機器Ｄのデバイスに割り付けられる変数であるものとする。
【００６４】
このような条件を満たす制御システム用の条件判定プログラムの概要は、図１３−１に示すようになる。
（Ａ）制御機器Ｄは、条件判定用制御機器Ｂとは異なる制御機器であるので、制御機器Ｄのデバイス（変数）を制御機器Ｂで読取ることが可能なように、自装置のデバイスに割り付けられる変数ＶａｒＴを共有メモリにＶａｒＴ’として書込むプログラムが作成される。
（Ｂ）制御機器Ｂは、条件判定用制御機器であるので、自装置のデバイスに割り付けられる変数ＶａｒＳを読取るとともに、共有メモリに記憶された制御機器Ｄに割り付けられた変数ＶａｒＴ’を読取り、これらの変数を用いて、転送条件「ＶａｒＳ  ＝  ＴＲＵＥ  ＆  ＶａｒＴ’  ＝  ＦＡＬＳＥ」を実行する条件判定プログラムが作成される。
【００６５】
また、この制御システム用のデータ転送プログラムの概要は、図１３−２に示すようになる。図１３−２は、図１３−１にデータ転送プログラムを組み込んだ場合のプログラムの概要を示す図である。
（Ｃ）出力デバイスに割り付く制御機器Ａは、条件判定用制御機器Ｂとは異なるので、制御機器Ｂの転送条件判定結果を制御機器Ａで読取ることが可能なように、その結果を変数ＶａｒＵとして共有メモリに書込むデータ転送プログラムが作成される。
（Ｄ）出力デバイスに割り付く制御機器Ａと入力デバイスに割り付く制御機器Ｃとは異なるので、転送条件成立時に、制御機器Ａの出力デバイスの値である変数１を制御機器Ｃで読み込めるように、その変数１をＶａｒＶとして共有メモリに書き込むデータ転送プログラムが生成される。つまり、このプログラムは、共有メモリに格納されたＶａｒＵの値が転送条件成立を示すものである場合に、共有メモリに変数１をＶａｒＶとして書込むものである。
（Ｅ）制御機器Ｃでは、共有メモリに書込まれたＶａｒＶの値を読み込むプログラムが作成される。このＶａｒＶの値は、制御機器Ｃで変数２として所定の処理に使用される。
【００６６】
（３）プログラムブロックを流用する場合
ここでは、プログラムブロックを流用する場合について説明する。図１４は、プログラムブロックを流用する前後の工程フロー設定情報の一例を示す図である。流用前の工程フロー設定情報は、図３−２に示されるものと同じものである。つまり、プログラムブロックαの変数１が、所定の条件の下でプログラムブロックβの変数２に渡される場合が示されている。
【００６７】
このような流用前の工程フロー設定情報中のプログラムブロックαを、別の制御システムでまたは別の制御機器用に作成されたプログラムブロックγに変更させる。この場合は、たとえば、図３−２に示されるような工程フロー設定画面５００に、プログラムブロックγを呼び出し、プログラムブロックαと入れ替える操作を行えばよい。そして、流用後の工程フロー設定情報に示されるように、工程フロー設定画面５００において、プログラムブロックγのたとえば変数３から、プログラムブロックβの変数２に向けて転送線５０３を引くことで、プログラムブロックγ−プログラムブロックβ間の変数の受け渡し関係が規定される。また、転送条件設定情報を変更する場合には、条件ブロック５０４を選択して図５に示されるような転送条件設定画面５４０を表示部１２に表示させて、必要な箇所を変更すればよい。
【００６８】
なお、プログラムブロックγを配置する際に、プログラムブロックγに関するプログラムブロック設定情報がプログラムブロックγに関連付けされて工程フロープログラム設定情報格納部１４４に格納される。また、プログラムブロックγを配置する前に予め、制御機器構成情報にプログラムブロックγに関する情報が登録されているものとする。
【００６９】
そして、条件判定プログラム生成部１５１とデータ転送プログラム生成部１５２は、流用後の工程フロー設定情報と転送条件に基づいて、条件判定プログラムとデータ転送プログラムを作成する。
【００７０】
このように、プログラムブロックを入れ替えて転送線５０３を引き、必要ならば転送条件設定画面５４０で転送条件設定情報を変更するだけで、入れ替えたプログラムブロックと元からある他のプログラムブロックとの間の条件判定プログラムとデータ転送プログラムを自動的に生成することができる。また、図１０に示されるように、条件判定を行う制御機器、出力デバイスが割り付く制御機器、入力デバイスが割り付く制御機器が異なる場合のように、複数の制御機器に処理が分散しているものを、１つの制御機器で実行するような場合にも、工程フロー設定情報と転送条件を変えることによって、容易に条件判定プログラムとデータ転送プログラムを変更することができる。
【００７１】
この実施の形態１によれば、データ転送を行いたいプログラムブロック間の出力デバイスと入力デバイスとを指定し、転送条件設定情報を設定することによって、転送制御プログラムを自動的に生成することができる。その結果、使用者は、制御システムを新規開発する際のプログラム間の転送制御プログラムを人手で作成する必要がなくなり、すなわち、データ転送以外のプログラムの作成にのみ注力すればよくなるため、開発工数を削減することができるという効果を有する。
【００７２】
また、複数の制御機器に設定しているものをすべて同じ１つの制御機器に変更した場合や、すでに存在する条件判定プログラムやデータ転送プログラムを流用する場合に、制御機器の構成によらず、またプログラムブロックを入れ替えてデータの受け渡しを定義し、必要ならば転送条件を変更するだけで、条件判定プログラムとデータ転送プログラムとを自動的に再生成することが可能となる。その結果、制御システムにおける装置構成の変更にも柔軟に対応することができるという効果も有する。
【００７３】
実施の形態２．
図１５は、この発明にかかる制御システム開発支援装置の実施の形態２の機能構成を模式的に示すブロック図である。この制御システム開発支援装置１０Ａは、実施の形態１の図１の制御システム管理情報格納部１３２が、制御システム全体で使用されるユニークな変数（グローバル変数）と、制御機器で使用されるローカル変数またはデバイス名との間の関係を示す制御システム内変数管理情報をさらに含んだ制御システム管理情報を管理する制御システム管理情報格納部１３２Ａとなる。また、制御システム情報管理部１３には、この制御システム内変数管理情報を管理するとともに、制御システム内変数管理情報を参照して、転送制御プログラム生成部１５から問い合わせのあったグローバル変数に対応する制御機器のローカル変数またはデバイス名を返す機能を有する制御システム内変数管理部１３３を備える。なお、実施の形態１と同一の構成要素には同一の符号を付して、その説明を省略する。
【００７４】
図１６は、制御システム内変数管理情報の一例を示す図である。この制御システム内変数管理情報は、制御システム全体で使用される変数と、制御システムを構成する各制御機器で使用されるデバイス名またはローカル変数と、を対応付けるものである。そのため、制御システム内変数管理情報は、制御システム全体で使用されるユニークな変数名である「制御システム用変数名」と、その変数が使用される「制御機器名」と、その制御機器内のデバイス名、ローカル変数を示すための項目である「デバイス名」、「制御機器ローカル変数名」とを含む。
【００７５】
たとえば、図１６において、制御システム用変数名が「Ｇ＿変数１」は、制御機器「ＣｔｒｌＡ」のローカル変数「Ｌ＿変数１」に割り付けられることを示している。また、制御システム用変数名「Ｇ＿変数２」は、制御機器「ＣｔｒｌＡ」のデバイス「Ｍ２００」に割り付けられることを示している。
【００７６】
制御システム内変数管理情報で管理される変数名は、転送条件設定部１４３で設定する転送条件設定情報で用いることができる。つまり、使用者は、転送条件設定情報の設定において、制御システム全体で用いられる変数（グローバル変数）を使用してもよいし、制御システムを構成する各制御機器内で定義されたローカル変数やデバイス名を使用してもよい。
【００７７】
そして、条件判定プログラム生成部１５１では、図６の転送条件判定プログラムの作成処理のステップＳ１４で抽出した変数が、制御システム全体で使用されるユニークな変数（グローバル変数）である場合には、制御システム内変数管理部１３３に対してそのグローバル変数に対応する制御機器とデバイス名または制御機器のローカル変数名を問い合わせる。制御システム内変数管理部１３３は、制御システム管理情報格納部１３２内の制御システム内変数管理情報を参照して、グローバル変数に対応付けされた制御機器とそのローカル変数やデバイス名を取得し、条件判定プログラム生成部１５１に返す。そして、条件判定プログラム生成部１５１は、その問い合わせ結果であるローカル変数を用いて、各制御機器に対応するプログラムを生成する。
【００７８】
この実施の形態２によれば、転送条件に用いた変数が割り付く制御機器が変わっても、制御システム管理情報格納部１３２内の制御システム内変数管理情報（変数設定）のみを変更すればよく、個別の転送条件を変更する必要がなくなる。その結果、制御システムの装置構成の変更に対しても柔軟に対応することができるという効果を有する。
【００７９】
実施の形態３．
この実施の形態３では、プログラムブロック間のデータ転送の種類の設定機能について説明する。図１７−１〜図１７−２は、プログラムブロック間のデータ転送の種類の一例を示す図であり、図１７−１は、通常転送を示し、図１７−２は、パルス転送を示している。図１７−１に示されるように、通常転送は、転送条件が成立している間は常にデータ転送を行うものである。具体的には、転送条件が成立している間に、出力デバイスの値が変わると、それに応じて入力デバイスの値が変化する。また、図１７−２に示されるように、パルス転送は、転送条件が成立した瞬間の値のみをデータ転送するものである。具体的には、転送条件が成立後に、出力デバイスの値が変化しても、入力デバイスの値は変わらないため、入力デバイスの値が、転送条件が成立した瞬間の出力デバイスの値であることを保証することができる。
【００８０】
この実施の形態３では、工程フロープログラム設定情報格納部１４４の工程フロー設定情報に、通常転送とパルス転送の区別を示すデータ転送種類情報がさらに格納される。図３−１や図３−２の工程フロー設定画面５００において、プログラムブロック間に引く転送線５０３の種類と、データ転送の種類とを予め対応付けておき、転送線５０３の種類を変えることによって、データ転送の種類を設定することができる。たとえば、通常転送の場合には、プログラムブロックＡ，Ｂの変数１，２間を実線で結び、パルス転送の場合には、プログラムブロックＡ，Ｂの変数１，２間を破線で結ぶ、というように、データ転送の種類と線種との対応付けを任意に定めることができる。なお、テキストで工程フロー設定条件を作成する場合には、工程フロー設定情報に転送の種類を定める項目を設ければよい。
【００８１】
そして、データ転送プログラム生成部１５２では、工程フロー設定情報に含まれるデータ転送の種類を加味して、データ転送プログラムを生成する。
【００８２】
この実施の形態３によれば、通常転送だけでなく、パルス転送などの他のデータ転送の種類も用意するようにしたので、用途に合わせたデータ転送プログラムを自動生成することが容易となり、開発工数の削減を行うことができるという効果を有する。また、転送条件が成立した瞬間のデータのみを転送するプログラムを自動生成することができるので、ある瞬間の値だけを転送したい場合に、条件設定や出力値の制御に気を配る必要性が減少し、工数の削減を行うことができるという効果も有する。
【００８３】
実施の形態４．
実際の運用に当っては、複数の出力デバイスの内の所定の条件を満たす１つの出力デバイスから１つの入力デバイスへとデータ転送を行う場合が存在する。また、逆に、１つの出力デバイスの値を、複数の入力デバイスの内の所定の条件を満たす１つの入力デバイスへとデータ転送する場合も存在する。この実施の形態４では、このような場合でも、データ転送を自動的に行うことができる制御システム開発支援装置について説明する。
【００８４】
この実施の形態４では、工程フロー設定管理部１４１に、複数の出力デバイスと１つの入力デバイスとを結びデータ転送の条件を設定する選択条件ブロックと、１つの出力デバイスと複数の入力デバイスとを結びデータ転送の条件を設定する分岐条件ブロックと、を設定可能な機能をさらに設けたことを特徴とする。これらの選択条件ブロックや分岐条件ブロックは、条件ブロックとともに用意され、いずれかを選択可能な構成となっている。
【００８５】
また、転送条件設定部１４３に、選択条件ブロックにデータ転送を選択するための選択条件設定情報と、分岐条件ブロックにデータ分岐を選択するための分岐条件設定情報と、を設定可能な機能をさらに設けたことを特徴とする。
【００８６】
図１８は、選択条件設定情報の設定画面の一例を示す図である。この図では、複数の出力側のプログラムブロックＡ，Ｂと、１つの入力側のプログラムブロックＣとの間に、選択条件ブロック５０５を設けた場合を示している。つまり、選択条件ブロック５０５は、複数の出力デバイス（変数）と接続するための複数の接点を有し、入力デバイス（変数）と接続するための１つの接点を有する。そして、この接点によって、各プログラムブロックＡ〜Ｃとの間に転送線５０３が引かれている。
【００８７】
また、選択条件ブロック５０５には、選択条件設定情報６００が関連付けされる。ここでは、選択条件設定情報６００として、選択条件ブロックに接続されるプログラムブロック数である「選択数」６０１と、複数のプログラムブロックの出力デバイスの変数から、１つのプログラムブロックの入力デバイスの変数へとデータ転送を行うための選択条件が入力される選択条件入力領域６０２と、各選択条件間の優先順位を示す「優先度」６０３と、を含む。この優先度として、選択条件ブロック５０５に接続される位置が、左のものほど優先順位を高くしたり、または使用者によって任意に設定したりすることができる。
【００８８】
図１８の例では、選択条件ブロック５０５に接続される出力デバイスを有するプログラムブロックの数が２個であるので、選択数が「２」となっている。そして、プログラムブロックＡの変数１からプログラムブロックＣの変数３へのデータが転送される条件は、「変数１＝ＴＲＵＥ」の場合であり、プログラムブロックＢの変数２からプログラムブロックＣの変数３へのデータが転送される条件は、「変数２＝ＦＡＬＳＥ」の場合となっている。また、優先度にはデフォルト値が設定されている。ここで、デフォルトは、選択条件ブロック５０５の接点の位置が左側のものほど優先順位が高くなるものに設定されているものとする。
【００８９】
つまり、「変数１＝ＴＲＵＥ」の場合には、プログラムブロックＣの変数３へと転送されるデータとして、プログラムブロックＡの変数１の値が選択される。このとき、プログラムブロックＢの変数２の値はプログラムブロックＣの変数３へはデータ転送されない。一方、「変数２＝ＦＡＬＳＥ」の場合には、プログラムブロックＣの変数３へと転送されるデータとして、プログラムブロックＢの変数２の値が選択される。このとき、プログラムブロックＡの変数１の値はプログラムブロックＣの変数３へはデータ転送されない。
【００９０】
また、２つの条件が満たされる場合には、優先度に設定された優先順位によって、いずれか１つのプログラムブロックの出力デバイスの変数が、プログラムブロックＣの変数３へと転送されることになる。
【００９１】
図１９は、分岐条件設定情報の設定画面の一例を示す図である。この図では、１つの出力側のプログラムブロックＤと、複数の入力側のプログラムブロックＥ，Ｆとの間に、分岐条件ブロック５０６を設けた場合を示している。つまり、分岐条件ブロック５０６は、出力デバイスと接続するための１つの接点を有し、複数の入力デバイスと接続するための複数の接点を有する。そして、この接点によって、各プログラムブロックＤ〜Ｆとの間に転送線５０３が引かれている。
【００９２】
また、分岐条件ブロック５０６には、分岐条件設定情報６１０が関連付けされる。ここでは、分岐条件設定情報６１０として、分岐条件ブロック５０６から分岐するプログラムブロック数である「分岐数」６１１と、１つのプログラムブロックの出力デバイスの変数から、複数のプログラムブロックのうちの１つのプログラムブロックの入力デバイスの変数へとデータ転送を行うための分岐条件が入力される分岐条件入力領域６１２と、各分岐条件間の優先順位を示す「優先度」６１３と、を含む。この優先度として、分岐条件ブロック５０６に接続される位置が、左のものほど優先順位を高くしたり、または使用者によって任意に設定したりすることができる。
【００９３】
図１９の例では、分岐条件ブロック５０６から分岐される入力デバイスを有するプログラムブロック数が２個であるので、分岐数が「２」となっている。また、プログラムブロックＤの変数４からプログラムブロックＥの変数５へデータが転送される条件は、「変数１＝ＴＲＵＥ」の場合であり、プログラムブロックＤの変数４からプログラムブロックＦの変数６へのデータが転送される条件は、「変数２＝ＦＡＬＳＥ」の場合となっている。さらに、優先度にはデフォルト値が設定されている。ここで、デフォルトは、分岐条件ブロック５０６の接点の位置が左側のものほど優先順位が高くなるものに設定されているものとする。
【００９４】
つまり、「変数１＝ＴＲＵＥ」の場合には、プログラムブロックＤの変数４の値は、プログラムブロックＥの変数５へと分岐される。このとき、プログラムブロックＦの変数６にはプログラムブロックＤの変数４からデータ転送されない。一方、「変数２＝ＦＡＬＳＥ」の場合には、プログラムブロックＤの変数４の値は、プログラムブロックＦの変数６へと分岐される。このとき、プログラムブロックＥの変数５にはプログラムブロックＤの変数４からデータ転送されない。
【００９５】
また、この分岐条件ブロックの場合にも、２つの条件が満たされる場合には、分岐条件設定情報６１０中の優先度によって、プログラムブロックの出力デバイスの変数が、いずれか１つのプログラムブロックの入力デバイス（変数）へと転送されることになる。
【００９６】
つぎに、このような選択条件ブロックまたは分岐条件ブロックが工程フロー設定情報に設定された場合の条件判定プログラムの生成方法について説明する。図２０は、転送条件判定プログラムの作成処理手順を示すフローチャートである。まず、実施の形態１の図６のステップＳ１１〜Ｓ１５の処理と同様に、転送条件設定情報中のデバイス（変数）の制御機器の内、条件判定を行う制御機器と異なる場合に、条件判定を行う制御機器が異なる制御機器のデバイス（変数）を利用するためのプログラムを作成する（ステップＳ５１〜Ｓ５５）。
【００９７】
その後、ステップＳ５２で条件に用いるデバイス（変数）の内、抽出していないものが存在しない場合（ステップＳ５２でＮｏの場合）には、選択条件ブロック５０５または分岐条件ブロック５０６のまだ選択していない条件から最も優先度の高い接続先に対する転送条件を選択する（ステップＳ５６）。その後、選択した条件より優先度が高い転送条件が成立しておらず、選択した転送条件が成立したときのみ転送条件が成立したとみなすプログラムを生成する（ステップＳ５７）。
【００９８】
そして、すべての接続先に対する条件判定プログラムを生成済みか否かを判定する（ステップＳ５８）。すべての接続先に対する条件判定プログラムが生成されていない場合（ステップＳ５８でＮｏの場合）には、ステップＳ５６へと戻り、選択条件ブロック５０５または分岐条件ブロック５０６に設定されている全ての転送条件に対して、上述した処理が繰り返し実行される。また、すべての接続先に対する条件判定プログラムが生成済みの場合（ステップＳ５８でＹｅｓの場合）には、転送条件判定プログラムの作成処理が終了する。
【００９９】
この実施の形態４によれば、複数の出力デバイスや複数の入力デバイスから１つだけを選択する排他制御を行うプログラムを用いたデータ転送プログラムも自動的に生成することができ、工数の削減を行うことができるという効果を有する。
【０１００】
なお、ここでは、複数の制御機器がネットワークを介して接続された場合を例に挙げて説明しているが、１つのベースユニット上に複数のＣＰＵユニットが設置されて制御システムが構成されるような場合でも、この発明を適用することができる。
【０１０１】
なお、上述した制御システム開発支援方法は、その処理手順を書込んだプログラムを、ＣＰＵ（中央演算処理装置）を有するパーソナルコンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。この場合、コンピュータのＣＰＵ（制御手段）が、プログラムにしたがって、上述したプログラム作成支援方法の各処理工程を実行することになる。これらのプログラムは、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ（Compact  Disk）−ＲＯＭ（Read  Only  Memory）、ＭＯ（Magneto-Optical  disk）、ＤＶＤ（Digital  Versatile  DiskまたはDigital  Video  Disk）などのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、これらのプログラムは、インタネットなどのネットワーク（通信回線）を介して配布することもできる。
【産業上の利用可能性】
【０１０２】
以上のように、この発明にかかる制御システム開発支援装置は、制御システムにおける複数の制御機器間における転送プログラムの作成に有用である。
【図面の簡単な説明】
【０１０３】
【図１】この発明による制御システム開発支援装置の実施の形態１の機能構成を模式的に示すブロック図である。
【図２−１】制御システム構成情報の一例を示す図である。
【図２−２】制御機器構成情報の一例を示す図である。
【図３−１】工程フロー設定管理部によって表示部に表示される表示画面の一例を示す図である。
【図３−２】工程フロー設定管理部によって表示部に表示される表示画面の一例を示す図である。
【図４】プログラムブロック設定管理部によって表示部に表示される表示画面の一例を示す図である。
【図５】転送条件設定画面の一例を示す図である。
【図６】転送条件判定プログラムの作成処理手順を示すフローチャートである。
【図７】図５の転送条件に基づいて作成された条件判定プログラムの内容の一例を示す図である。
【図８】データ転送プログラムの作成処理手順を示すフローチャートである。
【図９】制御システムの構成の一例を示す図である。
【図１０】工程フロー設定情報の一例を示す図である。
【図１１】図１０の条件を満たす制御機器用のプログラムの概要を示す図である。
【図１２】工程フロー設定情報の一例を示す図である。
【図１３−１】図１２の条件を満たす制御システム用の条件判定プログラムの概要を示す図である。
【図１３−２】図１３−１にデータ転送プログラムを組み込んだ場合のプログラムの概要を示す図である。
【図１４】プログラムブロックを流用する前後の工程フロー設定情報の一例を示す図である。
【図１５】この発明による制御システム開発支援装置の実施の形態２の機能構成を模式的に示すブロック図である。
【図１６】制御システム内変数管理情報の一例を示す図である。
【図１７−１】プログラムブロック間のデータ転送の種類の一例を示す図である。
【図１７−２】プログラムブロック間のデータ転送の種類の一例を示す図である。
【図１８】選択条件設定情報の設定画面の一例を示す図である。
【図１９】分岐条件設定情報の設定画面の一例を示す図である。
【図２０】転送条件判定プログラムの作成処理手順を示すフローチャートである。
【符号の説明】
【０１０４】
１０，１０Ａ  制御システム開発支援装置
１１  入力部
１２  表示部
１３  制御システム情報管理部
１４  工程フロープログラム管理部
１５  転送制御プログラム生成部
１６  制御部
１３１  制御システム管理情報設定部
１３２，１３２Ａ  制御システム管理情報格納部
１３３  制御システム内変数管理部
１４１  工程フロー設定管理部
１４２  プログラムブロック設定管理部
１４３  転送条件設定部
１４４  工程フロープログラム設定情報格納部
１５１  条件判定プログラム生成部
１５２  データ転送プログラム生成部
【図１】
2008234469.tif 000003
【図２−１】
2008234469.tif 000004
【図２−２】
2008234469.tif 000005
【図３−１】
2008234469.tif 000006
【図３−２】
2008234469.tif 000007
【図４】
2008234469.tif 000008
【図５】
2008234469.tif 000009
【図６】
2008234469.tif 000010
【図７】
2008234469.tif 000011
【図８】
2008234469.tif 000012
【図９】
2008234469.tif 000013
【図１０】
2008234469.tif 000014
【図１１】
2008234469.tif 000015
【図１２】
2008234469.tif 000016
【図１３−１】
2008234469.tif 000017
【図１３−２】
2008234469.tif 000018
【図１４】
2008234469.tif 000019
【図１５】
2008234469.tif 000020
【図１６】
2008234469.tif 000021
【図１７−１】
2008234469.tif 000022
【図１７−２】
2008234469.tif 000023
【図１８】
2008234469.tif 000024
【図１９】
2008234469.tif 000025
【図２０】
2008234469.tif 000026