(57)【特許請求の範囲】
【請求項１】
階層構造に構築された複数のモジュールを有し、最上位の前記モジュールから所定の作業を下位モジュールで実行させるための作業命令を発する制御システムにおいて、
前記複数のモジュールは、指示された前記作業命令が実行可能であるかを他の前記モジュールに対して問い合わせてその応答を受け取る第１の手段と、前記第１の手段の問い合わせに対して実行可能と応答した複数又は単数の前記他のモジュールを前記下位のモジュールとし、この下位モジュールに対して前記作業命令の実行を割り当て、かつ前記下位モジュールが実行不可能と応答した場合に前記作業命令を複数の命令に展開し、この展開された複数の命令が実行可能であるかを再び前記下位モジュールに対して問い合わせ、前記複数の命令が前記下位モジュールで実行可能に割り当てられるまで前記命令の展開とその割り付けとを繰り返し実行する第２の手段とをそれぞれ備えた、
ことを特徴とする制御システム。
【請求項２】
前記複数のモジュールは、前記命令の実行を割り当てるための問い合わせに代わって、少なくとも前記モジュールで実行可能な命令が予め記述され、指示された前記作業命令を前記予め記述された命令から成る動作命令列に展開する機能を有することを特徴とする請求項１記載の制御システム。
【請求項３】
前記複数のモジュールは、前記作業命令を実行することが可能な前記他のモジュールが複数存在する場合、最適化ルールに従って当該作業命令を割り当てる前記他のモジュールを決定する割当最適化部を有することを特徴とする請求項１記載の制御システム。
【請求項４】
前記複数のモジュールは、問い合わされた前記作業命令を実行することが可能な場合、そのスケジュールを返答する交渉部と、前記スケジュールに基づいて作業命令の割り当てを行う割当最適化部とを有することを特徴とする請求項１記載の制御システム。
【請求項５】
前記複数のモジュールは、自己のスケジュール及び前記他のモジュールのスケジュールを格納する負荷モデルと、前記負荷モデルを参照することで前記作業命令を前記他のモジュールに割り当てた場合のスケジューリングを行う割当最適化部とを有することを特徴とする請求項１記載の制御システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、多数の装置から構成される生産装置、これらの装置を集めた生産ライン、これらの生産ラインを集めた生産ショップの制御を行う制御システムに関するものである。
【０００２】
さらに詳しくは、複数のモジュールで分散処理することにより、作業命令を実行できる制御システムに関し、作業命令を実行するために必要なモジュールを選択し、かつ作業実行モジュールに作業命令を割り当てることのできる制御システムに関するものである。
【０００３】
【従来の技術】
多数の構成要素を有する生産装置等のセル、このような生産装置群からなる生産ラインのような生産ショップ等に対する制御は、これら構成要素や生産装置群、生産ラインの構成に基づいて、予め各装置に対する制御の割当を含む制御プログラムを作成して行っている。
【０００４】
したがって、各構成要素や生産装置群、生産ショップ等の構成に変更がある場合には、全体の制御プログラムをその変更に対応するように変更しなければならない。
【０００５】
例えば、生産装置に変更がある場合、既存の装置群を含めた全ての装置のスケジューリングを決めなおしてから、制御プログラムを変更または再度作成する必要がある。
【０００６】
従来の制御システムにおいては、このような装置構成の変動に柔軟に対応する手段を備えていない。このため、新規装置の導入の場合のみならず、装置の故障等による一時的な変更の場合にもその変更に迅速に対応できなかった。
【０００７】
これに対し、次世代の生産システムには、素早い生産の立ち上げ、生産量や種類に対するフレキシビリティ、生産設備やシステムの再利用などが強く要求されている。このような要求に対しては、例えば装置等を交換したり、装置や装置群の構成を変更したりすることが頻繁に発生することが考えられる。
【０００８】
【発明が解決しようとする課題】
上述したように、従来の制御システムでは、装置構成の変動に柔軟に対応する手段を有していないため、次世代の生産システムに対する適応性が極めて低いということがあった。
そこで本発明は、装置群等の変更に対して柔軟に対応することができる制御システムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、この発明は、階層構造に構築された複数のモジュールを有し、最上位のモジュールから所定の作業を下位モジュールで実行させるための作業命令を発する制御システムにおいて、複数のモジュールは、指示された作業命令が実行可能であるかを他のモジュールに対して問い合わせてその応答を受け取る第１の手段と、第１の手段の問い合わせに対して実行可能と応答した複数又は単数の他のモジュールを下位のモジュールとし、この下位モジュールに対して作業命令の実行を割り当て、かつ下位モジュールが実行不可能と応答した場合に作業命令を複数の命令に展開し、この展開された複数の命令が実行可能であるかを再び下位モジュールに対して問い合わせ、複数の命令が下位モジュールで実行可能に割り当てられるまで命令の展開とその割り付けとを繰り返し実行する第２の手段とをそれぞれ備えたことを特徴とする。
【００１０】
この発明では、階層化された上位モジュールと下位モジュールを有するが、２層に限らず、前記上位モジュールをこの発明の下位モジュールとして扱う上位モジュールをさらに設けても良いし、この発明の下位モジュールをこの発明の上位モジュールとして扱う下位モジュールをさらに設けても良い。
【００１１】
すなわち、この制御システムによれば、上位モジュールも下位モジュールも、略同一の構成を有する交換若しくは追加／削除可能な単位モジュールとして実現することができることになる。このような単位モジュールを、後で説明する実施形態では、分散した協調可能なホロンモジュール（Ｈｏｌｏｎ）として表現している。
【００１２】
このような構成によれば、上位モジュールに作業命令が入力された場合、必要に応じて下位モジュールに問い合わせ、実行可能な下位モジュールの命令に展開して割り当てることが可能になる。これら上位モジュール、下位モジュールは固定された関係ではなく、状況に応じて上位下位の関係が作られ、問い合わせと応答による階層構造のシステムが構成される。これによって、下位モジュールが如何に構成されている場合であっても、その場その場で下位モジュールで実行可能な作業命令群を構成することができる。したがって、装置構成等に変動があった場合でもフレキシブルに対応することが可能になる。
【００１３】
なお、このようなモジュールはハードウエアとしてもソフトウエアとしても構成することが可能であり、単一の装置にインストールすることも、ネットワーク接続された複数の装置に分散させてインストールすることも可能である。
【００１５】
又、各モジュールが如何に構成されている場合であっても、そのモジュールが実行可能な作業命令を構成することが可能になる。
【００１６】
【発明の実施の形態】
（システムの基本構成）
この発明の制御システムは、例えばロボットや周辺装置等、複数の装置を有する生産ショップにおいて、与えられた作業命令に基づいてロボット等の周辺装置を制御するための制御指令若しくは制御プログラムをその場その場で自動生成するものである。
【００１７】
すなわち、図１に示すように、１つ又は互いにネットワーク接続されてなる複数のコンピュータ１上に、生産ライン等の生産ショップを管理する生産ショップ管理モジュール２と、生産ショップ内に設けられた部品組み立て装置等のセルを管理するセル管理モジュール３と、このセルに設けられた部品供給装置や移動テーブル等（装置コントローラ５）を管理する装置管理モジュール４を階層的に設け、これら各モジュール２、３、４をホロン（Ｈｏｌｏｎ）と称される分散・協調機能を持ったプログラムモジュール（以下「ホロンモジュール」という）で構成する。
【００１８】
そして、例えばマンマシンインタフェース６を通じて与えられた作業命令に関して、各ホロンモジュール２、３、４間で通信を行いながら生産ショップ、セル及び各装置を制御するための具体的作業プログラムを生成する。
【００１９】
各ホロンモジュール２、３、４は基本的に同一構成を有するものであり、図２及び図３にその例を示す。
（ホロンモジュール）
図２は、自分では作業命令を実行せず、専ら作業命令の展開や他のホロンモジュールに対する作業命令の割り当てを行う「展開割当ホロンモジュール」を示したものである。この展開割当ホロンモジュールは、前記生産ショップ管理モジュール２及びセル管理モジュール３に相当する。
【００２０】
図３は、自ら作業命令を実行する「作業実行ホロンモジュール」を示したものである。この作業実行ホロンモジュールは、前記装置管理モジュール４に相当する。なお、展開割当と作業実行の双方が可能なホロンモジュールは、この図２及び図３のホロンモジュールの組み合わせにより構成することができるが、その説明は省略する。
【００２１】
以下、ホロンモジュールの機能を図２、図３のブロック図、及び図４に示す展開割当ホロンモジュールの動作フローチャートを参照しつつ説明する。なお、作業実行ホロンモジュールの動作についても同じフローチャートで説明できるため、その図示は省略する。
（作業交渉部）
前記展開割当ホロンモジュール及び作業実行ホロンモジュールは共に作業交渉部８を有する。この作業交渉部８は、他の上位のホロンモジュールから作業実行依頼（作業命令）を受付け、その依頼に含まれる作業命令が実行可能であるかを機能モデル９（負荷モデル）を参照して判定し、依頼に対する応答を出力する機能を有する。前記負荷モデル９には、下位のホロンモジュールを含む前記作業命令を実行可能なモジュールのスケジュールが格納されている。
【００２２】
作業命令が実行可能であるかの判断は、作業命令に含まれる命令語（コマンド）及びその属性と、機能モデル９に格納された実行可能なコマンド群及びその属性とをマッチングすることによって行う（図４のステップＳ１）。
【００２３】
例えば、作業命令が”Assemble (part A, part B)[weight=20]”（部品Ａ＝２０ｇを部品Ｂに組みつけろ）である場合、前記機能モデルに”Assemble”というコマンドが含まれ、かつ重さ１０〜３０ｇの範囲の部品を組みつけ可能であるという属性が含まれている場合には、当該作業命令は実行可能と判断される。
【００２４】
なお、前記属性のマッチングを行うに際し、特別な演算処理を実行する必要がある場合には計算モジュール（図２の１０）を用いて行うようにする。この計算モジュール１０は、例えば直交座標変換若しくは極座標変換を行う座標変換プログラムである。
【００２５】
また、このとき、前記負荷モデル９内に格納されたスケジュールを参照して当該作業命令が実行可能であるかを判断するようにしても良い。
作業命令が実行可能である場合には、前記展開割当ホロンモジュールの場合、当該作業命令は割当実行部１１に送られる（図４のステップＳ２）。また、作業実行ホロンモジュール（図３）の場合には、実際の作業実行時に、作業実行部１２を介して装置コントローラ５に直接送られることになる。
【００２６】
一方、作業命令が実行可能でない場合には、上位のホロンモジュールに対する応答はなされず、処理終了（図４のＥＮＤ）となる。
（割当実行部）
展開割当ホロンモジュール（図２）の場合、作業命令を受け取った割当実行部１１は、まず、下位の全てのホロンモジュールに対して前記作業命令（Assemble (part A, part B)[weight=20]）が実行可能かを問い合わせる（図４のステップＳ３）。ここで、「下位のホロンモジュール」とは、当該ホロンモジュールが生産ショップ管理モジュール２である場合にはセル管理モジュール３を差し、当該ホロンモジュールがセル管理モジュール３である場合には各装置管理モジュール４（図３の作業実行ホロンモジュール）を差す。
【００２７】
下位のホロンモジュールは、作業命令を実行可能な場合、実行可のメッセージ、作業の開始終了時刻及びコストを返答する。なお、下位のホロンモジュールで前記作業命令を展開（分割）した場合、当該展開した作業命令群を返答する。また、実行不可能と判断した場合には、何も返答しない。
【００２８】
前記割当実行部１１は、複数の下位ホロンモジュールから実行可能との応答を受けた場合（図４のステップＳ４）には、ステップＳ５において、その複数のホロンモジュールの中に既に選択・登録された下位ホロンモジュールが含まれるかを調べる。存在する場合には、既に選択・登録されているホロンモジュールに当該作業命令を割り当てる（ステップＳ８）。
【００２９】
この例の場合、未だ選択・登録されたホロンモジュールが存在しないはずであるから、前記複数のホロンモジュールから最適のモジュールを１つ選択する（ステップＳ６）。この選択は、図２に示す割当最適化実行部１３が、最適化ルール１４に基づいて行なう。最適化ルール１４には、優先順位の他、例えば、スケジューリングに関する最適化ルールが含まれ、最適のスケジュールで作業実行可能なホロンモジュールが選択される。なお、他の優先順位としては、例えば、作業命令を展開せず単独で実行可能なホロンモジュールが優先され、当該作業命令を展開し分割して実行しなければならない場合等は優先順位が低くなるようにする。
【００３０】
なお、前記下位のホロンモジュールのスケジュールについては、予め最適化ルール１４若しくは動作モデル９に負荷モデルとして格納しておき、これらに基いて最適なホロンモジュールを選択するようにしてもよい。
【００３１】
次に、図４のステップＳ７において、当該選択したホロンモジュールを新たな構成としてＲＡＭ等の記憶手段に登録する。ついで、この選択したホロンモジュールに当該作業命令を割り当てる（ステップＳ９）。
【００３２】
一方、ステップＳ４、Ｓ１２で単一のホロンモジュールで実行可との返答を受けた場合には、そのホロンモジュールが既に選択・登録済みであるかを判断する（ステップＳ１３）。この例の場合、未だホロンモジュールは選択・登録されていないはずであるので前記ステップＳ７で当該ホロンモジュールを登録する。一方、既に登録済みである場合には、ステップＳ８でそのホロンモジュールに作業命令を割り当てる。
【００３３】
次に、ステップＳ９で、全ての作業命令を割り当てたかを判断する。この例の場合には、前記作業命令”Assemble (part A, part B)[weight=20]”が割り当てるべき全ての作業命令であるので、ステップＳ１０に移行し、当該作業の開始時刻、終了時刻（スケジュール）、コストを算出する。この計算は作業交渉部８が実行し、この結果を上位のホロンモジュールに返答する。
（作業命令を展開する場合）
以上の例は、上位のホロンモジュールから与えられた作業命令を特に展開・分割しなくても下位のホロンモジュールでそのまま実行可能な場合であったが、中には作業命令を展開・分割しなければ下位のホロンモジュールにおいて実行できない場合がある。
【００３４】
例えば、作業命令が”Assemble (part A, part B)[weight=20]”（部品Ａ＝２０ｇを部品Ｂに組みつけろ）である場合において、下位のホロンモジュールの制御対象装置が単一の部品を搬送する部品搬送装置若しくはロボットであり、前記コマンド” Assemble ”に対処できない場合には、この作業命令を▲１▼”Supply Part B ”、▲２▼”Supply Part B at working place”、▲３▼”Supply part A ”、▲４▼”Put Part A on Part C”というように複数の作業命令に展開・分割して実行させる必要がある。
【００３５】
この場合、図２の作業命令展開部１６は、展開ルール１７に従って前記作業命令を前記▲１▼〜▲４▼の各コマンドに展開する（ステップＳ１４）。作業命令の展開ができた場合には（ステップＳ１５）、各命令毎に下位のホロンモジュールに実行可能かを問い合わせる（ステップＳ３）。そして、▲１▼の命令を実行するホロンモジュールへの作業命令の割当（ステップＳ８）が終了したならば、ステップＳ９からステップＳ３に戻り、その他の作業命令▲２▼〜▲４▼についても同様の割当て処理を行う。
【００３６】
このようにして、展開分割された全ての作業命令列が下位のホロンモジュールに割り当てられたならば、前記作業交渉部は、作業の開始時刻、終了時刻、コストの計算を行って（ステップＳ１０）、実行可という情報と共に上位のホロンモジュールに返答する（ステップＳ１１）。
【００３７】
そして、前記作業命令を割り当てられたホロンモジュールが、前記装置管理ホロンモジュール４のような作業実行ホロンモジュール（図３）の場合には、割り当てられた作業命令に基づいて装置コントローラ５に指令を与え、図示しない各装置を制御し、作業▲１▼〜▲４▼を所定のタイミングで実行させる。
（効果）
このようにホロンモジュールを階層構造に構成してなる制御システムによれば、以下の効果を得ることができる。
（１）まず、作業命令が入る毎に、その作業を行うのに必要な装置の組み合わせを選択構成することができ、それらの装置に作業命令を割り当てることができる。
（２）したがって、新たな装置を追加したり、一部の装置が故障する等、装置構成が変更された場合であっても、それらに対応してホロンモジュールを追加削除するようにするだけで、自動的に装置構成を再構成することができる。
（３）また、その場その場で装置毎のスケジューリングを行うようにしているから、新たな装置を追加したり、一部の装置が故障する等、装置構成が変更された場合であっても、その場で最適な再スケジューリングを行うことができる。
【００３８】
以下、この制御システムを適用した部品組み立て装置を例にとって具体的に説明する。
（第１の実施形態）
図５は本発明の制御システムを適用した組立て装置の構成図である。なお、図１と同種の構成要素（２、３、４、５等）には同一符号に添え字（ａ、ｂ、ｃ…）を付してその役割をわかりやすくしている。
【００３９】
まず図示しない生産ショップ管理モジュールの下に、前記部品組立装置を管理するセル管理モジュール３（展開割当ホロンモジュール）が設けられている。このセル管理モジュール３は、部品組立て装置に含まれるロボット５１や移動テーブル５２、５３、部品トレイ５４等の構成要素（図６参照）を管理制御する装置管理モジュール（作業実行ホロンモジュール）４ａ〜４ｄを有する。各装置管理モジュールは、それぞれ、ロボットインタフェース（ＩＦ）４ａ、移動テーブルインタフェース４ｂ、４ｃ、部品トレイインタフェース４ｄとして構成されており、装置コントローラとしてのロボットコントローラ５ａ、移動テーブルコントローラ５ｂ、５ｃ、部品トレイ５４に接続されている。
【００４０】
そして、各ホロンモジュール３、４ａ〜４ｄはエンジニアリングワークステーション（以下、ＥＷＳと称する）５６内にソフトウエアモジュールとしてインストールされている。
【００４１】
そして、このエンジニアリングワークステーション５６には、図７に示すように、ネットワークを介して前記ロボットコントローラ５ａ、各移動テーブルコントローラ５ｂ、５ｃが接続された形となっている。
【００４２】
ロボットコントローラ５ａは、ロボット５１を動作制御し、このロボット５１のハンドで部品５８の把持、持ち上げ、移動、載置などの動作を行わせる機能を有するものである。このロボットコントローラ５ａは、一般的な動作レベルの命令を１命令ごとに実行し、その結果をＥＷＳ５６に返送するオンライン制御を行う機能を有している。
【００４３】
各移動テーブルコントローラ５ｂ、５ｃは、それぞれ２本の移動テーブル５２、５３を一般的な動作レベルの命令の実行によって動作制御するものである。実際には、これら移動テーブル５２、５３は、各々１つのステッピングモータでＸＹ方向に作動するＸＹテーブル装置であり、ハードウエア的には１つのコントローラで、ソフトウエア的には独立した２つのソフトウエアで制御されるようになっている。
【００４４】
これらロボット５１や各移動テーブル５２，５３、そのロボットコントローラ５ａ、各移動テーブルコントローラ５ｂ、５ｃは、周知の構成のものを用いればよい。
【００４５】
なお、各部品５７を供給するための部品供給トレイ５４はそれ自体作動するものではないのでコントローラを有していない。前記部品トレイＩＦ５ｄ（装置管理ホロンモジュール）は、他の装置若しくはオペレータに対して作業（段取り作業など）を割り付けることになる。
【００４６】
また、図５に示すように、前記セル管理ホロンモジュール３と各装置管理ホロンモジュール４ａ〜４ｄの接続線には、前記座標変換等計算モジュール１０が接続されている。このモジュール１０は、極座標値変換計算の他、部品定義データファイル６０に格納されている各部品の形状、寸法や属性例えばロボットハンドの接近位置、把持位置、それに各部品の位置などのデータに基づいてロボット５１や移動テーブル５２，５３の移動位置を演算する機能を有している。
（装置の作用）
次に上記の如く構成された装置の作用について図８に示す制御フローチャートに従って説明する。なお、この制御フローチャートは、図４に示したフローチャートの一部に対応する。
（作業実行可能かの問い合せ）
前記セル管理ホロンモジュール３（図５）に対して作業命令、例えば「部品Ａと部品Ｃとを組立」が入力されると、このセル管理ホロンモジュール３は、図８のステップ＃１において、この作業命令が実行可能か否かを下位の各装置管理ホロンモジュール、すなわちロボットＩＦ４ａ、各移動テーブルＩＦ４ｂ、４ｃ、トレイＩＦ４ｄ及び座標値計算モジュール１０に問い合わせる。
（実行不可能な場合）
ロボットＩＦ４ａ、各移動テーブルＩＦ４ｂ、４ｃ、トレイＩＦ４ｄは、作業指示命令「部品Ａと部品Ｃとを組立」をそのまま実行することが不可能なことから、この問い合わせの結果として、前記セル管理ホロンモジュール３は各ＩＦ４ａ〜４ｄから何らの返答も得られない。
（作業命令の展開）
このように全てのＩＦ４ａ〜４ｄで前記作業命令の実行が不可能な場合、前記セル管理モジュール３は、ステップ＃４及び＃５に移り、命令展開ルールファイル１７に記述されている展開ルールを適用して、作業指示命令を各ＩＦで実行可能な動作命令列に展開する。
【００４７】
例えば、セル管理モジュール３は、作業指示命令「部品Ａと部品Ｃとを組立」を図９に示すような動作命令列、すなわち実行順序の管理機能により先ず「部品Ａを供給」及び「部品Ｃを供給」を行い、次に「部品Ｃを作業場所へ移載」を行い、この後に「部品Ａを部品Ｃの上に移載」を行うように展開する。
【００４８】
そして、セル管理モジュール３は、各動作命令列「部品Ａを供給」「部品Ｃを供給」「部品Ｃを作業場所へ移載」「部品Ａを部品Ｃの上に移載」における各部品Ａ、Ｃの位置や部品Ｃを作業場所へ移載する位置、部品Ａを部品Ｃの上に移載する位置などを前記計算モジュール１０に問い合わせる。
【００４９】
この計算モジュール１０は、部品定義データファイル６０に格納されている各部品の形状、寸法や属性例えばロボットハンドの接近位置、把持位置、それに各部品の位置などのデータに基づいてロボット５１や移動テーブル５２，５３の移動位置を演算し求める。
【００５０】
なお、この計算モジュール１０に対する問い合わせは、各ＩＦ４ａ〜４ｄからアクセスして各部品Ａ、Ｃの位置や部品Ｃを作業場所へ移載する位置、部品Ａを部品Ｃの上に移載する位置などを得るようにしてもよい。
（再問い合わせ）
次にセル管理モジュール３は、再びステップ＃１において、展開された動作命令列「部品Ａを供給」「部品Ｃを供給」「部品Ｃを作業場所へ移載」「部品Ａを部品Ｃの上に移載」が実行可能であるかを実行順序に従って再び各ＩＦ４ａ〜４ｄに対して問い合わせる。
【００５１】
従って、先ず、トレイＩＦ４ｄは、セル管理モジュール３から例えば「部品Ａの供給」の命令及び座標等計算モジュール１０により求められた部品Ａのロボット５１のハンドによる把持場所のデータを受けると、この命令が実行可能であることをセル管理モジュール３に返答し、かつロボット５１が部品Ａを把持する位置を返答する。
【００５２】
同様に、トレイＩＦ４ｄは、セル管理モジュール３から例えば「部品Ｃの供給」の命令及び座標等計算モジュール１０により求められた部品Ｃのロボット５１のハンドによる把持場所のデータを受けると、この命令が実行可能であることをセル管理モジュール３に返答し、かつロボット５１が部品Ｃを把持する位置を返答する。
【００５３】
次に、各移動テーブルＩＦ４ｂ、４ｃは、セル管理モジュール３から例えば「部品Ｃの供給」の命令及び座標等計算モジュール１０により求められた部品Ｃのロボット５１のハンドによる把持場所のデータを受けると、この命令が実行可能であることをセル管理モジュール３に返答し、かつオペレータに部品Ｃの搬送台への移載を依頼し、この移載後にロボット５１のハンドが部品Ｃを把持する位置に搬送する命令に展開する。すなわち、移動テーブルＩＦ４ｂ、４ｃは、移動テーブル５２、５３のコントローラ５ｂ、５ｃの仕様に合わせ、移動テーブル５２、５３の高速パルスジェネレータに対する命令に展開して転送する。
【００５４】
これにより移動テーブル５２、５３は移動して部品Ｃをロボット５１のハンドの把持場所に移載する。
（ロボットコントローラへの作業の割り当て）
次にロボットＩＦ４ａは、「部品Ｃを作業場所に移載」というようなタスクレベルの命令及び座標等計算モジュール１０により求められた部品Ｃの位置を受けると、この命令が実行可能であることをセル管理モジュール３に返答し、かつこのタスクレベルの命令をロボット５１やそのハンドで実行できる動作レベルの命令、例えば「部品Ａの位置に移動、ハンドを開くなど」の命令に展開し、ロボットコントローラ５ａに１命令づつ割り当て、動作終了を管理する。
【００５５】
これによりロボット５１は、例えばロボットハンドで部品Ａを把持し、次に部品Ａを上方に移動し、次に部品Ａを部品Ｃの上方に配置し、この後に部品Ａを下降させて部品Ｃの上に移載するように動作する。
【００５６】
なお、セル管理モジュール３は、「部品Ａを供給」、「部品Ｃを供給」、「部品Ｃを作業場所へ移載」、「部品Ａを部品Ｃの上に移載」に展開した命令を実行可能であるか各ＩＦ４ａ〜４ｄに対して問い合わせた場合、これらＩＦ４ａ〜４ｄのうち１つでも実行不可能のＩＦがあれば、このＩＦが実行可能の返答が来るまで命令の展開とその割り付けとを繰り返す。
【００５７】
以上のようにして作業指示命令「部品Ａと部品Ｃとを組立」に対する作業がロボット５１、各移動テーブル５２、５３及び部品供給トレイ５４などにより行われる。
（ロボットの交換）
ここで、新規導入のロボット６２とロボット５１とを交換する場合、ロボットＩＦ４ａも新規導入のロボット６２に対応するロボットＩＦに交換する。
【００５８】
このロボットＩＦは、セル管理モジュール３から送られてきた命令をロボット６２やそのハンドで実行できる命令に展開し、それぞれの座標系に変換して割り当てる機能を有しているが、実行可能な作業命令を格納した機能モデル（図３に示す９）が異なる。
【００５９】
このロボットＩＦに割り当てられる命令は、上記同様に、セル管理モジュール３から例えば「部品Ａを作業位置に移載」というようなタスクレベルの命令であり、ロボットＩＦは、このタスクレベルの命令をロボット６２やそのハンドで実行できる動作レベルの命令、例えば「部品Ａの位置に移動、ハンドを開くなど」の命令に展開し、ロボットコントローラに１命令づつ割り当て、動作終了を管理する機能を有する。
【００６０】
従って、ロボット５１を新規導入のロボット６２に交換したとしても、この交換に柔軟に対応できる。
又、ロボットＩＦ４ａや移動テーブルＩＦ４ｂ、４ｃの下位に構成要素、例えばロボットＩＦ４ａの下位に補助ロボットのための装置モジュール（図３に示す作業実行ホロンモジュール）などを接続した場合、ロボットＩＦ４ａは、セル管理モジュール３から割り当てられた命令をさらに展開し、この展開された命令を下位の補助ロボットモジュールに順次割り付ける。
【００６１】
このように前記セル管理モジュール３の下位にロボットＩＦ（装置管理ホロンモジュール）等を接続し、さらにその下位に補助ロボットＩＦ（装置管理ホロンモジュール）などを形成して階層化しても、その場その場で装置構成を選択し、作業を割り当てることができるので装置構成の変更にフレキシブルに対応できる。
【００６２】
このように上記一実施の形態においては、展開割当ホロンモジュールとしてのセル管理モジュール３から作業指示命令が実行可能であるかをロボットＩＦ４ａなどの作業実行ホロンモジュールに対して問い合わせてその応答を受け取り、この問い合わせに対して実行可能と応答した作業実行ホロンモジュールに対して命令の実行を割り当て、かつ作業実行ホロンモジュールが実行不可能と応答した場合に作業指示命令を動作命令列に展開し、この動作命令列が実行可能であるかを再び作業実行ホロンモジュールに対して問い合わせ、動作命令列がいずれかの作業実行ホロンモジュールで実行可能に割り当てられるまで命令の展開とその割付とを繰り返すので、例えばロボット５１等の装置を交換したり、この装置や装置群の構成を変更しても、これらの変更に容易に対応できる。
【００６３】
これにより、次世代の生産システムの要求されている、素早い生産の立ち上げ、生産量や種類に対するフレキシビリティ、生産設備やシステムの再利用などを実現できる。
【００６４】
又、割り当てられた命令を展開し、この展開された命令を下位のホロンモジュールに順次割り付けるので、例えば装置群を階層化しても、その構成に容易に対応できる。
【００６５】
又、総括的な作業指示命令で作業が指示できるので、予め構成要素に合わせた命令やプログラムを準備する必要がなく、割り当ての融通性を拡大できる。
なお、本発明は、上記一実施の形態に限定されるものでなく次の通り変形してもよい。
【００６６】
例えば、上記一実施の形態では、部品供給とその部品の積み上げを行う組立てシステムに適用した場合について説明したが、これに限らず各種の装置の制御に適用できる。
【００６７】
又、上記一実施の形態において、電源投入時に構成要素に問い合わせを行い、構成要素とその実施可能命令の一覧を作成し、毎回の問い合わせを省略してもよい。
【００６８】
【発明の効果】
以上詳記したように、この本発明によれば、下位モジュールに対して作業命令が実行可能であるかを問い合わせ、当該作業命令が下位モジュールで実行不能な場合、当該作業命令を複数の命令に展開し、この命令が実行可能になるまで展開を繰り返し、実行可能な命令を下位モジュールに割り当てることによって、下位モジュールの構成の如何によってこの下位モジュールで実行可能な作業命令を発することができ、装置群等の変更に対して柔軟に対応することができる制御システムを提供できる。
【図面の簡単な説明】
【図１】この発明に係わる制御システムの概略構成図。
【図２】展開割当ホロンモジュールを示す概略構成図。
【図３】作業実行ホロンモジュールを示す概略構成図。
【図４】上位のモジュールから下位のモジュールへの作業命令の割当工程を示すフローチャート。
【図５】本発明のシステムを部品組立装置に適用した一実施例を示す概略構成図。
【図６】部品組立装置を示す斜視図。
【図７】同システムの一形態を示す構成図。
【図８】同システムにおける制御フローチャート。
【図９】同システムの作業命令の展開及び割り当てを示す模式図。
【符号の説明】
２…生産ショップ管理モジュール（上位モジュール）
３…セル管理モジュール（上位／下位モジュール）
４…装置管理モジュール（下位モジュール）
８…作業交渉部（交渉部）
９…機能モデル／負荷モデル
１１…割当実行部
１３…割当最適化部
１６…作業命令展開部
【図１】
0003643478.tif 000002
【図２】
0003643478.tif 000003
【図３】
0003643478.tif 000004
【図４】
0003643478.tif 000005
【図５】
0003643478.tif 000006
【図６】
0003643478.tif 000007
【図７】
0003643478.tif 000008
【図８】
0003643478.tif 000009
【図９】
0003643478.tif 000010