(57)【特許請求の範囲】
【請求項１】
複数の機器とこの機器を制御する複数のコントローラとで構成される分散制御システムの開発環境で、上記機器の挙動をイベントと上記機器の状態から成る状態遷移モデルで表現し、上記イベントの協調関係に基づいて上記状態遷移モデルを結合した論理モデルを作成し、上記コントローラを制御する制御プログラムの構成情報、上記コントローラの構成情報、上記機器の構成情報、および上記機器が扱う処理対象物の構成情報で構成される実装モデルを作成し、上記論理モデルと上記実装モデルの構成情報の関係を管理する関連情報および上記実装モデルの構成情報間の関係を管理する関連情報のうちで少なくとも１つの関連情報を作成し、分散制御システムの設計、シミュレーション、および制御を行うことを特徴とする分散制御システムの構成管理方法。
【請求項２】
上記制御プログラムの構成情報、上記コントローラの構成情報、上記機器の構成情報、および上記処理対象物の構成情報を、木構造のそれぞれ独立した枝として構成し、上記コントローラに対するダウンロードおよびアップロードする際、上記枝ごとに行うことを特徴とする請求項１記載の分散制御システムの構成管理方法。
【請求項３】
上記開発環境から上記コントローラのそれぞれに対する構成情報Ａをダウンロードする際、上記コントローラ側でダウンロードされた上記構成情報Ａに基づいて制御プログラムの実行に必要なタスクの生成およびメモリ領域の確保に関する資源の獲得を行い、その結果、必要に応じて上記構成情報Ａを変更し、変更した上記構成情報Ａを上記開発環境にアップロードして上記構成情報を変更することを特徴とする請求項２記載の分散制御システムの構成管理方法。
【請求項４】
実行中のコントローラにおいて発生した入出力の変更に関する構成情報Ａを、自動的またはあらかじめ設定したタイミングで上記開発環境にアップロードし、既存の構成情報と上記構成情報Ａとを合成して上記構成情報を再構築することを特徴とする請求項２記載の分散制御システムの構成管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば工場の製造ラインの分散制御システムにおいて、システムの設計、開発、運用を行う場合に、システムを制御するコントローラ、およびコントローラの制御プログラムを作成する開発環境が使用する構成情報の管理方法に関するものである。
【０００２】
【従来の技術】
一般に工場の製造ラインなどの分散制御システムにおいて、システムを制御するコントローラ、例えば製造ラインのシーケンス制御で使用されるＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）は、実行に最低限必要な構成情報を持つ。具体的には、入出力ユニットについては、型，接点数，個数，挿入されたスロット番号などの情報を持つ。また、実行する制御プログラムについては、プログラム名，実行周期，実行順序，実行の優先順位などの情報を持つ。また、コントローラ本体の構成については、ＣＰＵの形式，メモリのサイズなどの情報を持つ。
【０００３】
複雑な製造ラインにおいて、複数のコントローラを使用する場合もある。このようなシステムにおいて、コントローラはそれぞれ自分自身に装着された入出力デバイスの構成情報しか保有していない。このため、システムを構成する一部の機器を変更した場合、その変更がどの範囲に及ぶかの判定は困難であり、それぞれのコントローラを別々に再設定する必要があった。通常この再設定作業は、システムの設計書に記述された仕様を作業者が機器変更に応じて再検討し、それぞれのコントローラに対して入出力ユニットの構成や制御プログラムを逐一変更していた。このような作業は煩雑で時間がかかり、またミスを生じやすいという問題があった。
【０００４】
また、システム構成の変更作業を容易に行うために、制御プログラムの作成にマクロや別名を使用することがある。マクロは一連の定型的な処理にコマンド名を付けて定義し、簡単に実行できるようにしたものである。例えば、マクロの定義中の特定の文字列を引数で与えた文字列に置き換えて入出力デバイス名などを変更できる。これにより、システム変更時の制御プログラム変更作業の軽減を行うことができる。別名は入出力デバイス名に意味のある名前を付け、それを制御プログラム中で使用する方法である。別名を管理するテーブルを書き換えることで、システム構成を変更したときの制御プログラム変更作業の軽減を行うことができる。
しかし、これらの方法は制御プログラム中の入出力デバイス名を変更するだけであり、機器構成の変更に伴うコントローラの変更の整合性を保証するものではない。
【０００５】
また、制御プログラムのデバッグのためにコントローラの制御対象である機器の挙動をシミュレーションすることがある。シミュレーションを行うことによって、実際の機器がなくても制御プログラムの動作を確認できるため、機器の開発や発注と、制御プログラムの開発を同時に行うことができ、開発期間を短縮できる。機器の挙動のシミュレーションでは、コントローラから機器への出力信号を受けて、機器からの入力信号を生成する。例えば、加工機のシミュレーションでは、加工開始の出力信号を受け、一定時間後に加工完了の入力信号を生成する。また、人間がコントローラからの出力信号の状態を見て、入力信号を与えることもある。
このようなシミュレーションでは、実際の製造ラインに存在する加工物の影響をシミュレーションすることは困難である。例えば、複数の種類の加工物を扱う製造ラインでは加工物毎に処理時間が異なることがあり、これを考慮していないシミュレーションでは正確なデバッグができない。
【０００６】
また、システム全体の論理的動作の確認のためのシミュレーションを行うことがある。このとき、通常は制御プログラムとは別の言語でシミュレーションモデルを作成する必要がある。このシミュレーション言語には、例えばＳＬＡＭ，ＧＰＳＳなどがあり、これらのシミュレーション言語を用いて製造ラインをモデル化し離散系のシミュレータを用いてシミュレーションを行う。システムの機器構成や動作パラメータを変更してシミュレーションを繰り返すことで、最適なシステム構成を決定することができる。これらについては「計測と制御」Ｖｏｌ．２０，Ｎｏ．２，第１０１頁−第１０４頁，１９９１年に解説されている。これらの言語で記述されたシミュレーションモデルは、制御プログラムや制御システムの構成とは関連がない。このため、実際のシステムを構成する場合には、システム開発者はシミュレーション結果に基づいて仕様を検討し、新たに制御用の言語を用いて制御プログラムを作成する必要があった。
【０００７】
【発明が解決しようとする課題】
近年、製造ラインの開発および改良のコストを下げるため、また短納期化による市場競争力強化のために、シミュレーションを利用して実際の機器なしでのソフトウェア開発が求められている。さらに、シミュレーションモデルと実際の工場を可能な限り一致させ、システム構成の変更に対して効率的に作業支援を行う開発環境が求められている。
【０００８】
ところが上記のように従来のコントローラの構成情報は、入出力デバイスの構成やタスクの周期などコントローラの実行に必要なパラメータを形式的に持つだけのものであった。このため、複数のコントローラから構成される分散制御システムにおいて、タスクを実行するコントローラを変更したり、機器構成を変更した場合、それぞれのコントローラを別々に再設定し、再調整する必要があった。
【０００９】
また、従来の制御プログラムの作成方法やシミュレーション方法では、システムの挙動モデルと、システムの物理仕様と、システムの制御プログラムとが独立しており、紙または電子データのシステム仕様として開発者の手でその関連を管理していた。このため、システム開発のためにシミュレーションを繰り返したり、システム改良のために再設計するたびに、これらのデータの関連をシステム仕様に記述し、開発者が整合性を検討する必要があった。また、現場で調整した実行パラメータは、その都度変更してシステム仕様に反映させる必要があるが、これも同様の作業が必要であった。このように作業が煩雑で、開発期間を短縮することが困難であった。
【００１０】
さらに、複数のコントローラで構成される分散制御システムの開発において、
（１）コントローラの処理負荷を平準化するために、あるコントローラで実行していたタスクを別のコントローラに変更した場合
（２）機器を変更した場合
（３）処理対象物を変更した場合
などのシステムの変更に対応するためには、複数のコントローラ間の相互関係まで考慮して再設計する必要があり、開発コストが増大するという問題があった。
【００１１】
本発明は、上記のような問題点を解消するためになされたもので、コントローラ本体の構成情報だけでなく、コントローラが制御する制御対象の機器、さらには機器が扱う処理対象物までもモデル化することで、システム全体を統合モデルとして表現し、シミュレーションと制御で使用するモデルの統合を目的としており、機器の変更があった場合でもデータ間の関連を自動的に再構築し、モデルの整合性が保証できる分散制御システムの構成管理方法および分散制御システム用データを提供するものである。
【００１２】
【課題を解決するための手段】
本発明の第１の構成に係る分散制御システムの構成管理方法は、複数の機器とこの機器を制御する複数のコントローラとで構成される分散制御システムの開発環境で、機器の挙動をイベントと機器の状態から成る状態遷移モデルで表現し、イベントの協調関係に基づいて状態遷移モデルを結合した論理モデルを作成し、コントローラを制御する制御プログラムの構成情報、コントローラの構成情報、機器の構成情報、および機器が扱う処理対象物の構成情報で構成される実装モデルを作成し、論理モデルと実装モデルの構成情報の関係を管理する関連情報および実装モデルの構成情報間の関係を管理する関連情報のうちで少なくとも１つの関連情報を作成し、分散制御システムの設計、シミュレーション、および制御を行うものである。
【００１３】
また、本発明の第２の構成に係る分散制御システムの構成管理方法は、第１の構成において、制御プログラムの構成情報、コントローラの構成情報、機器の構成情報、および処理対象物の構成情報を、木構造のそれぞれ独立した枝として構成し、コントローラに対するダウンロードおよびアップロードする際、枝ごとに行うものである。
【００１４】
また、本発明の第３の構成に係る分散制御システムの構成管理方法は、第２の構成において、開発環境からコントローラのそれぞれに対する構成情報Ａをダウンロードする際、コントローラ側でダウンロードされた構成情報Ａに基づいて制御プログラムの実行に必要なタスクの生成およびメモリ領域の確保に関する資源の獲得を行い、その結果、必要に応じて構成情報Ａを変更し、変更した構成情報Ａを開発環境にアップロードして構成情報を変更するものである。
【００１５】
また、本発明の第４の構成に係る分散制御システムの構成管理方法は、第２の構成において、実行中のコントローラにおいて発生した入出力の変更に関する構成情報Ａを、自動的またはあらかじめ設定したタイミングで開発環境にアップロードし、既存の構成情報と構成情報Ａとを合成して構成情報を再構築するものである。
【００１７】
【発明の実施の形態】
実施の形態１．
図１は本発明の実施の形態１による分散制御システムの構成管理方法を用いた製造ラインの分散制御システムを示す構成図である。図１において、１はコントローラの制御プログラムのプログラミングを行う開発環境、２は構成管理システム、３は構成決定モジュール、４は構成チェックモジュール、５は構成情報ファイル、６はユーザプログラムファイル、７はコントローラ、８はコントローラ７上の構成管理モジュール、９は資源管理モジュール、１０は構成情報Ａ、１１はユーザプログラムＡである。構成情報Ａ１０，ユーザプログラムＡ１１は、開発環境１における構成情報５，ユーザプログラム６を構成するデータのうちで、コントローラ７に関係する部分のみのデータである。また、分散制御システムが複数のコントローラで構成されている場合には、コントローラ７と同様の構成のものが複数設けられている。
【００１８】
また、図２は本実施の形態に係わる構成情報５のデータ構造の一例を示す説明図である。構成情報５は木構造を持ち、システムを構成するコントローラ，機器，制御対象物である加工物に関する情報が枝として接続され、そのルートはシステム２１を表す。そして、分散制御システムを管理するための情報が分類されて独立した枝を構成している。図２に示すように、システム２１の下には論理モデル２２と実装モデル２３がある。論理モデル２２の下には複数の挙動モデル２４がある。実装モデル２３は、制御プログラム２５，制御システム２６，制御対象２７で構成される。ここで、制御プログラム２５は、実際にはユーザプログラムの構成情報２８の管理テーブルであり、その下には１つまたは複数のユーザプログラムの構成情報２８がある。制御システム２６は、実際にはコントローラの構成情報２９の管理テーブルであり、その下には１つまたは複数のコントローラの構成情報２９がある。制御対象２７は、実際には機器の構成情報３０と加工物の構成情報３１の管理テーブルであり、その下には１つまたは複数の機器の構成情報３０と１つまたは複数の加工物の構成情報３１がある。また、３２はユーザプログラムの構成情報２８に接続する変数などのデータ、３３はコントローラの構成情報２９に接続するコントローラＩ／Ｏなどのデータ、３４は機器の構成情報３０に接続する機器Ｉ／Ｏなどのデータ、３５は加工物の構成情報３１に接続する工程情報などのデータである。
これらの情報で枝を構成し、ルートであるシステム２１に近い方を上位、末端に近い方を下位と称し、各枝はそれに接続する上位と下位の枝に関する情報を有する。
【００１９】
上記のように本実施の形態では、システム２１を論理モデル２２と実装モデル２３で表し、制御プログラムの構成情報２５、制御システムの構成情報２６、機器の構成情報３０、および処理対象物である加工物の構成情報３１を、木構造のそれぞれ独立した枝として構成している。そして、ユーザプログラム２８や変数３２などの制御プログラムに係わる構成情報は、制御プログラムの構成情報２５である枝の下位の枝として接続する。同様に、コントローラ２９やコントローラＩ／Ｏ３３などの制御システムに係わる構成情報は、制御システムの構成情報２６である枝の下位の枝として接続する。また、機器Ｉ／Ｏ３４などの機器に係わる構成情報は、機器の構成情報３０である枝の下位の枝として接続し、工程情報３５などの加工物に係わる構成情報は、加工物の構成情報３１である枝の下位の枝として接続する。
【００２０】
構成情報５の各枝が保持する情報の一例を図３に示す。各枝には、枝の名前４１，枝属性４２，木構造を構成するための上位の枝情報としてポインタ４３，下位の枝情報としてポインタ４４，データ４５などが保持される。ここで、上位の枝へのポインタ４３は１つだけ、下位の枝へのポインタ４４は複数、データ４５も複数持つことができる。ルートであるシステム２１の枝は上位の枝へのポインタ４３は持たない。また、末端の枝も下位の枝へのポインタ４４を持たない。枝属性４２はダウンロード及びアップロードの際に使用されるもので、共通属性と個別属性の２種類がある。
【００２１】
また、データ４５はさらに詳しくは、例えば図４に示す構造を持つ。データ４５は名前Ｎ１  ，データ属性Ｎ２  ，データ型Ｎ３  ，データ値Ｎ４  から構成される。データ属性Ｎ２  には読み込みのみ，読み書き可の２種類がある。コントローラのＣＰＵの型名など、固定された仕様は読み込みのみの属性となる。データ型Ｎ３  には、文字列，整数，実数がある。このデータ型Ｎ３  によってデータ値に入っている値の型が決定される。
【００２２】
この分散制御システムの動作を図５に示す製造ラインの説明図を基に説明する。図５に示す製造ラインは、入力コンベア５１、出力コンベア５２、加工機５３、加工機５３へのロードとアンロードを行うロボット５４などの機器からなる加工ラインである。５５は到着検知センサ、５６は排出検知センサ、５７は処理対象物、例えば加工物である。
【００２３】
入力コンベア５１によって加工物５７がロボット５４の前まで運ばれると、到着検知センサ５５が作動し、到着信号が出される。この到着信号を受けて入力コンベア５１を停止し、ロボット５４にロード指令を送り、ロボット５４が加工物５７を加工機５３にロードする。加工が完了すると、加工機５３から完了信号が出される。この完了信号を受けてロボット５４にアンロード指令を送り、ロボット５４が加工機５３から加工物５７をアンロードし、出力コンベア５２に置く。出力コンベア５２に加工物５７が置かれると、排出検知センサ５６が作動し、排出信号が出される。この排出信号を受けて出力コンベア５２を動かす。
【００２４】
図５に示す構成のシステムを分散管理する際の構成管理方法について、以下、説明する。まず、開発環境１として、構成情報５の作成を行う。構成情報５の作成手順を図６のフローチャートに従って説明する。
ステップＳＴ１で論理モデルを作成する。ここで論理モデルとは、例えば図７に示すように、システムを構成する機器の挙動モデルを状態遷移モデルで表現したものである。状態遷移モデルは丸で表された機器の状態と、四角で表されたセンサ入力などのイベントで構成される。機器の状態には機器の動作のコマンドが割り当てられる。イベントの発生によりこれに呼応して状態が遷移し、機器はコマンドの動作を行う。機器の協調関係は２つ以上の機器のイベントを関連づけ、同時にイベントを発生させることで行う。分散制御システムを構成する機器はすべてなんらかのイベントに呼応して動作を行うものであり、上記協調関係を全ての機器間に設定することでシステム全体の機器の挙動を表現し、論理モデル２２を構築する。
【００２５】
さらに論理モデルを図５に示した製造ラインを例として詳しく説明する。入力コンベア５１，ロボット５４，加工機５３，出力コンベア５２の４つの機器があり、それぞれの挙動を状態遷移モデルで表現する。例えば、入力コンベア５１の状態遷移モデルを構成するイベントは、到着検知センサ５５のＯＮと到着検知センサ５５のＯＦＦであり、コマンドは停止と動作である。そして、状態遷移は、到着検知センサ５５のＯＮのイベントで停止し、ＯＦＦのイベントで動作するというモデルで表現される。また、ロボット５４は到着検知センサ５５のＯＮのイベントでロード動作を開始し、ロード終了のイベントで停止する。つまり、到着検知センサ５５のＯＮのイベントを用いて、入力コンベア５１とロボット５４の協調関係として定義することができる。このようにして、分散制御システム全体の論理モデルを作成する。
【００２６】
次に、図６のフローチャートにおけるステップＳＴ２〜ステップＳＴ５で実装モデルを設定する。ユーザプログラム２８には、システム全体の制御プログラムとして論理モデル２２のイベントとコマンドの流れを制御用の言語、例えばラダーなどで記述したプログラムと、ロボットのプログラムのように制御対象にダウンロードして動かす制御プログラムがあり、それぞれ専用のエディタで作成する（ステップＳＴ２）。そして、作成したユーザプログラム本体をユーザプログラムのファイル６に格納し、ユーザプログラムの構成情報２８を実装モデル２３の枝として生成する。
ただし、システム全体の制御プログラムは論理モデル２２から自動生成することも可能である。構成情報５には作成したユーザプログラムに関する構成情報と、そのプログラム中で使用される変数３２と、実行周期などのプログラムの実行パラメータをデータとして保持する。
【００２７】
次にステップＳＴ３で、コントローラの構成情報２９の設定を行う。コントローラの構成情報は、コントローラ自体の仕様、入出力デバイス（コントローラＩ／Ｏ）の構成をデータ３３として持つ。コントローラ自体の仕様としては、ＣＰＵの型，処理速度，メモリサイズ，２次記憶装置の有無とサイズ，通信機能の型と通信速度などがある。コントローラＩ／Ｏの構成としては、Ｉ／Ｏユニットの型，スロットの位置，入出力点数などがある。
【００２８】
次にステップＳＴ４で、制御対象である機器の構成情報３０の設定を行う。機器の構成情報３０は、型，形状，機器のＩ／Ｏの構成，コマンドなどのデータ３４を持つ。ここで、機器のＩ／ＯはコントローラのＩ／Ｏと結線するための情報である。コマンドは、例えば加工機ではドアのオープンとクローズ，加工の開始と停止といったものである。
【００２９】
次にステップＳＴ５で、制御対象である加工物の構成情報３１の設定を行う。加工物の構成情報３１は、型，形状，工程情報などのデータ３６を持つ。ここで、工程情報はその加工物の加工順序と必要な加工機を記述したものである。
【００３０】
これで図２の各枝、および各枝に実線で接続する構成情報５の作成が終了し、この後、ステップＳＴ６で、これらの情報間の関連情報を定義する。関連情報とは図２では点線矢印で記載したものであり、他の枝に属する情報間の関連を示すもので、その内容の一例を図８に示す。
関連情報には、名前Ｔ１  ，関連属性Ｔ２  ，関連元データの木構造の位置Ｔ３  ，関連先データの木構造の位置Ｔ４  ，パラメータＴ５  などの各項目がある。
ここで、関連属性Ｔ２  には、探索要，探索不要の２つがあり、ダウンロード時に枝の関連を辿るために使用する。
【００３１】
また、パラメータＴ５  は複数設定することが可能であり、各パラメータＴ５  は図９に示すように、制約条件式Ｐ１  と、計算式Ｐ２  からなる。制約条件式Ｐ１  は、関連元の枝のデータと関連先の枝のデータとの関係式である。
関係式の記述は、例えば、＝＝（等号），！＝（不等号），＞（より大きい），＞＝（以上），＜（より小さい），＜＝（以下）で結ばれた式と、ＡＮＤ，ＯＲによる論理演算で構成される。ここで使用する式は、データ名と四則演算が使用できる。また、ｓｉｎ（）などのように一般的な関数は使用してもよい。計算式Ｐ２  は、左辺にデータ名、右辺に式を置いて、＝（代入）で結んだものである。ここで右辺の式は制約条件の式と同様に四則演算や関数を使用することができる。
また、これらの制約条件式や計算式は複数記述してもよいし、記述しなくてもよい。例えばこのパラメータＴ５  に基づいて、構成チェックモジール４はその構成をチェックできる。例えば、制約条件式の全ての評価結果が真であるならば、関連は成立し、計算式を実行する。この時、もし１つでも偽の制約条件式が存在するならば、関連は成立せず、計算式も実行しない。
【００３２】
図２の点線矢印で示すように、関連情報の種類は、１）挙動モデル２４とユーザプログラム２８との関連、２）ユーザプログラム２８とコントローラ２９との関連、３）変数３２とコントローラのＩ／Ｏ３３との関連、４）コントローラのＩ／Ｏ３３と機器のＩ／Ｏ３４との関連、５）機器３０と加工物の工程情報３５との関連の５種類である。
【００３３】
挙動モデル２４とユーザプログラム２８の関連では、各機器の挙動モデル２４とシステム全体を制御するユーザプログラム２８の対応を定義する。また、挙動モデル２４内のコマンドと各機器にダウンロードするユーザプログラム２８の関連を定義する。
【００３４】
ユーザプログラム２８とコントローラ２９との関連では、各ユーザプログラム２８をどのコントローラ２９で実行するかを定義する。この時、制約条件式Ｐ１  としてプログラムの種類とコントローラの持つエンジンの種類を比較する。例えば、ラダープログラムの場合、実行にはラダーのエンジンが必要であるため、プログラムの型のデータ名とエンジンの型のデータ名を＝＝で結ぶ。また、これ以外にもＣＰＵの型、メモリサイズなどの制約条件式も記述する必要がある。また、計算式Ｐ２  としてユーザプログラム２８のデータである実行周期をコントローラ２９のタスクの周期に設定する代入式を記述する。
【００３５】
また、変数３２とコントローラのＩ／Ｏ３３との関連は、別名の機能である。ここでは、変数の型とＩ／Ｏの種類に関する制約条件式を記述する。例えば、Ｉ／Ｏの種類が接点の場合には、変数のデータ型は整数である必要なければならない。
【００３６】
コントローラのＩ／Ｏ３３と機器のＩ／Ｏ３４との関連は、コントローラと機器の結線情報を作成するために使用される。ここでは、Ｉ／Ｏの型と入出力方向に関する制約条件式を記述する。Ｉ／Ｏの型は、電気信号の仕様が完全に一致しなければならない。また、入出力方向は互いに反対、または両方とも双方向でなくてはならない。例えば、コントローラのＩ／Ｏ３３が出力なら関連する機器のＩ／Ｏ３４は入力でなくてはならない。また、コントローラのＩ／Ｏ３３がシリアル接続のように双方向なら機器のＩ／Ｏ３４も双方向でなくてはならない。
【００３７】
機器の構成情報３０と加工物の工程情報３６との関連は、制約条件式として機器の加工の種類と、加工物の工程情報の中の加工の種類の一致を記述する。これにより、システムのシミュレーションを実行する時の加工物の挙動のチェックが可能になる。
具体的には例えば、機器３０と加工物に接続するデータ３５との関連情報において、制約条件式Ｐ１  としては、ロボットハンドの大きさ＞加工物の大きさなどであり、計算式Ｐ２  としては、ロボットの移動する平面＝加工物のある高さ＋Ｘ（Ｘはロボットが上下移動できる幅とする）などである。
【００３８】
上記のようにして図６に示したフローチャートのステップＳＴ６で関連情報を設定した後、ステップＳＴ７で構成決定モジュール４を実行する。構成決定モジュール４は関連情報の制約条件式を評価し、全ての制約条件式が真ならば計算式を実行し値を枝に書き込む。もし、制約条件式が成立しないならば、その旨を設計者に通知する。
【００３９】
以上の処理により、開発環境１における構成情報５が生成できる。このように、コントローラ本体の構成情報だけでなく、コントローラが制御する制御対象の機器、さらには機器が扱う処理対象物までもモデル化することで、システム全体を統合モデルとして表現できる。さらにはこのように表現しておけば、シミュレーションと制御で使用するモデルは統合され、機器の変更があった場合でもデータ間の関連を自動的に再構築し、モデルの整合性が保証できる。
【００４０】
実施の形態２．
実施の形態１では開発環境において、分散制御システムを作成するときの構成情報の形式について説明した。実施の形態２では、上記実施の形態で作成された構成情報を用い、実際に分散制御システムを管理する形態について説明する。
【００４１】
分散制御システムを構成するコントローラ７のそれぞれに、そのコントローラ７で使用する構成情報Ａ１０をダウンロードする。ダウンロードの処理手順を図１０のフローチャートに従って説明する。
まず、ステップＳＴ１１では、実施の形態１の処理に従って作成した構成情報５を、通信機能を用いて開発環境１からコントローラ７にダウンロードする。ダウンロードする構成情報Ａ１０は、図１１に示すように、枝属性によって決定する。即ち、枝属性が共通情報ならば、全てのコントローラにダウンロードする。枝属性が個別情報ならば、該当するコントローラの構成の枝と、その枝に対する関連情報を持つ枝を再帰的に探索して全ての関連する枝を抽出し、それらをダウンロードする。この探索は関連情報の関連属性に探索不要の属性があった場合、そこで打ち切る。
【００４２】
ダウンロード完了後、コントローラ７側の資源管理モジュール９は構成情報Ａ１０に設定されたユーザプログラムＡの構成に基づき、ステップＳＴ１２でＯＳにタスクまたはプロセスの生成を要求する。このとき、ＯＳのタイマの分解能などの制約により、設計者が構成情報Ａ１０に指定したタスクの実行周期を正確に実現できないことがある。例えば構成情報Ａ１０の指定が１０ミリ秒であったとしても、コントローラ７のタイマの分解能が３ミリ秒であったならば、正確に１０ミリ秒で実行することができない。このような場合は実際の実行周期を９ミリ秒、または１２ミリ秒にしてタスクまたはプロセスを生成する。資源管理モジュール９は、タスクまたはプロセスの生成の結果として、実際のタスクまたはプロセスの実行周期とメモリサイズを構成情報Ａ１０に書き込む。上記タスクまたはプロセス生成の処理をコントローラ７で実行する全てのユーザプログラムに対して行い、実際の実行パラメータを含む更新された構成情報Ａ１０を作成する（ステップＳＴ１３）。
【００４３】
全てのタスクまたはプロセスを生成後、コントローラの構成管理モジュール８は開発環境１に資源確保終了のメッセージを送信する。このメッセージを受けて、開発環境１は更新された構成情報Ａ１０をコントローラ７からアップロードする（ステップＳＴ１４）。アップロードされた構成情報Ａ１０は元の構成情報５と置き換えられる。このときに関連情報は変更しない。同様の手順で、開発環境１はダウンロードした全てのコントローラ７から実際の実行パラメータを含む更新された構成情報Ａ１０をアップロードして、元の構成情報５と置き換える。
【００４４】
次に、ステップＳＴ１５で構成チェックモジュール４を実行する。構成チェックモジュール４は、更新された構成情報５に対して、分散制御システムが実行可能かどうか判断する（ステップＳＴ１６）。具体的には、関連情報の制約条件式と計算式をチエックする。この時、実際の実行パラメータを含む更新された構成情報５が全ての制約条件式と計算式を満たしていると判断した場合、ダウンロードの正常終了を設計者に表示などにより通知する（ステップＳＴ１７）。また、ステップＳＴ１６の判断で全ての制約条件式と計算式を満たさない場合、ステップＳＴ１８でその旨のエラーを設計者に表示などにより通知し、構成情報の再編集を促す。
【００４５】
このように、構成情報はコントローラ７に分散してダウンロードされ、コントローラ７側で構成情報に基づいて資源を確保することで、複数種類のコントローラがあった場合でも、開発環境１側にコントローラの詳細な情報を持つ必要がない。また、構成決定モジュール３や構成チェックモジュール４は簡単なルールだけで処理可能である。
また、現場での調整作業による構成情報の変更を行っておき、開発環境１を接続したときに直ちにアップロードして構成情報を再構築するというように、システム管理を簡単に行うことができる。
【００４６】
実施の形態３．
実施の形態１のように分散制御システムを管理すれば、コントローラ７において制御の実行中やデバッグ中の変更も、比較的容易にできる。
例えば入出力ユニットの挿入や取り外しなどによって入出力デバイスの構成を変更した場合、コントローラの種類によってはその変更を検知することができる。コントローラ７で検知した構成情報Ａの変更を、アップロード処理を用いて開発環境１に通知し、開発環境１では既存の構成情報と合成して構成情報５を再構築する。
また、アップロードするタイミングは、予め設定した所定の時間間隔でアップロードするように構成してもよいし、構成情報Ａ１０が変更されたことを検知して随時、自動的にアップロードするように構成してもよい。
【００４７】
また、アップロード処理において対応する開発環境１が存在しない場合、または開発環境１とコントローラ７の通信が切れている場合には、構成情報の変更が発生した時に開発環境１に通知することができない。このような時には、例えば、コントローラ７は変更したデータ項目にフラグを付ける。このフラグには追加，変更，削除の種類を備え、開発環境１とコントローラ７の通信が開始されたときにアップロードされて、開発環境１が有する構成情報５に対してフラグに従ってデータの追加，データの変更，データの削除を行うように構成すればよい。
【００４８】
そして上記データの変更を行なった後、開発環境１の構成情報管理システム２は構成情報５の正当性を確認するために構成チェックモジュール４を起動し、制約条件式Ｐ１  と計算式Ｐ２  をチェックし、実行に問題がないかどうか確認する。この確認によって、問題がなければ構成管理システム２は構成変更の通知を設計者に行う。問題があればその旨を設計者に通知する。
【００４９】
ところで、実施の形態１〜実施の形態３では、分散制御システムとして工場の製造ラインに利用する場合について述べたが、その他の分散制御システムに利用できることは言うまでもない。
【００５０】
【発明の効果】
以上のように本発明の第１の構成によれば、複数の機器とこの機器を制御する複数のコントローラとで構成される分散制御システムの開発環境で、機器の挙動をイベントと機器の状態から成る状態遷移モデルで表現し、イベントの協調関係に基づいて状態遷移モデルを結合した論理モデルを作成し、コントローラを制御する制御プログラムの構成情報、コントローラの構成情報、機器の構成情報、および機器が扱う処理対象物の構成情報で構成される実装モデルを作成し、論理モデルと実装モデルの構成情報の関係を管理する関連情報および実装モデルの構成情報間の関係を管理する関連情報のうちで少なくとも１つの関連情報を作成し、分散制御システムの設計、シミュレーション、および制御を行うことにより、論理モデル作成段階での検証と、機器の仕様が決定した段階での検証を同一のモデルでできるため、開発作業を大幅に削減でき、さらに、一部の機器を変更した場合でも、システム全体の整合性を保証したまま作業できるため、作業時間を短縮できる分散制御システムの構成管理方法が得られる効果がある。
【００５１】
また、本発明の第２の構成によれば、第１の構成において、制御プログラムの構成情報、コントローラの構成情報、機器の構成情報、および処理対象物の構成情報を、木構造のそれぞれ独立した枝として構成し、コントローラに対するダウンロードおよびアップロードする際、枝ごとに行うことにより、構成情報の変更や管理が比較的容易にできる分散制御システムの構成管理方法が得られる効果がある。
【００５２】
また、本発明の第３の構成によれば、第２の構成において、開発環境からコントローラのそれぞれに対する構成情報Ａをダウンロードする際、コントローラ側でダウンロードされた構成情報Ａに基づいて制御プログラムの実行に必要なタスクの生成およびメモリ領域の確保に関する資源の獲得を行い、その結果、必要に応じて構成情報Ａを変更し、変更した構成情報Ａを開発環境にアップロードして構成情報を変更することにより、開発環境側で、分散制御システムを構成する全てのコントローラの完全な情報を管理する必要のない分散制御システムの構成管理方法が得られる効果がある。
【００５３】
また、本発明の第４の構成によれば、第２の構成において、実行中のコントローラにおいて発生した入出力の変更に関する構成情報Ａを、自動的またはあらかじめ設定したタイミングで開発環境にアップロードし、既存の構成情報と構成情報Ａとを合成して構成情報を再構築することにより、実行時に変更された構成情報をシステムの整合性を保証したまま再構築できるため、現場で調整する場合や、故障の復旧も容易な分散制御システムの構成管理方法が得られる効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態１による分散制御システムの構成管理方法を用いた製造ラインの分散制御システムを示す構成図である。
【図２】実施の形態１に係わる構成情報を示す説明図である。
【図３】実施の形態１に係わる木構造の枝に保持される情報を示す説明図である。
【図４】実施の形態１に係わる枝に保持される情報のデータを示す説明図である。
【図５】実施の形態１に係る分散制御システムの一例として、製造ラインを示す構成図である。
【図６】実施の形態１に係わる開発環境の構成情報の作成手順を示すフローチャートである。
【図７】実施の形態１に係わる機器の挙動を状態遷移モデルで表現した論理モデルを示す説明図である。
【図８】実施の形態１に係わる木構造の関連情報を示す説明図である。
【図９】実施の形態１に係わる関連情報のパラメータを示す説明図である。
【図１０】本発明の実施の形態２に係わる構成管理システムのダウンロード手順を示すフローチャートである。
【図１１】実施の形態２による構成情報のダウンロードとアップロード動作を示す説明図である。
【符号の説明】
１  開発環境、２  構成管理システム、３  構成決定モジュール、４  構成チェックモジュール、５  構成情報、６  制御プログラム、７  コントローラ、８構成管理モジュール、９  資源管理モジュール、１０  構成情報Ａ、１１  ユーザプログラムＡ、２１  システム、２２  論理モデル、２３  実装モデル、２４  挙動モデル、２５  制御プログラム、２６  制御システム、２７  制御対象、２８  ユーザプログラム、２９  コントローラ、３０  機器、３１  処理対象物。
【図１】
0003598732.tif 000002
【図２】
0003598732.tif 000003
【図３】
0003598732.tif 000004
【図４】
0003598732.tif 000005
【図５】
0003598732.tif 000006
【図６】
0003598732.tif 000007
【図７】
0003598732.tif 000008
【図８】
0003598732.tif 000009
【図９】
0003598732.tif 000010
【図１０】
0003598732.tif 000011
【図１１】
0003598732.tif 000012