以下、添付図面を参照して本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は相当要素には同一の符号を付し、重複する説明を省略する。
図1は、本発明の一実施形態に係る情報処理システム1の構成概略図である。同図に示される情報処理システム1は、ある製品(例えば、電子機器)を製造するための一連の工程を実行する作業主体を決定するシステムである。ここで、作業主体とは、製品を製造するための工程において作業を行う主体であって、具体的には、各種製造装置(3Dプリンタ、加工機器、検査機器、運搬機械等)及び人である作業員が含まれる。情報処理システム1には、上記一連の工程を実行する作業主体を決定するスケジュールサーバ10と、製品の製造要求を行う複数の端末装置30(端末装置30A〜端末装置30C)と、上記一連の工程の各工程に係る作業を実行する装置の情報を管理(記憶、編集)する複数の工場サーバ40(工場サーバ40A〜工場サーバ40C)とを含んで構成される。これらの端末装置30とスケジュールサーバ10と工場サーバ40とは、イーサネット(登録商標)に準拠したLAN(Local Area Network)、WAN(Wide Area Network)等の通信ネットワークを介して互いに通信可能に接続されている。
端末装置30は、パーソナルコンピュータ、携帯電話機等の情報処理端末である。スケジュールサーバ10及び工場サーバ40は、サーバ装置等に代表される情報処理装置である。スケジュールサーバ10、端末装置30、及び工場サーバ40は、物理的には、1又は複数のCPUと、RAM及びROM等の主記憶装置と、外部とパケットデータ及び制御信号を含む信号を送受信するデータ送受信デバイスである通信モジュールと、半導体メモリ及びハードディスク装置等の補助記憶装置と、マウス、タッチパネル及びキーボード等の入力デバイスと、ディスプレイ及びスピーカ等の出力デバイスとを含むコンピュータシステムとして構成されている。スケジュールサーバ10、端末装置30、及び工場サーバ40の各機能は、CPU、RAM等のハードウェア上に1又は複数の所定のコンピュータソフトウェアを読み込ませることにより、CPUの制御のもとで通信モジュール、入力デバイス、及び出力デバイスを動作させるとともに、RAMや補助記憶装置におけるデータの読み出し及び書き込みを行うことで実現される。
端末装置30は、製品の設計図等の製品の情報をスケジュールサーバ10へ送ると共に、当該スケジュールサーバ10へ製品の製造要求を送る。スケジュールサーバ10は、当該製品の設計図の情報に基づいて製造するための一連の工程を決定し、その後に当該一連の工程の各工程を実行させるための費用(コスト)等を決定する。スケジュールサーバ10は、各工程で作業する作業主体に動作させるための費用の見積もりのデータを端末装置30へ送信する。端末装置30は、当該見積もりのデータを受信し、当該見積もりに問題が無いことが端末装置30のユーザによって入力された場合又は複数見積もりのデータがある場合であって、何れかの見積もりデータが端末装置30のユーザによって選択入力された場合、その旨をスケジュールサーバ10へ送信する。スケジュールサーバ10は、端末装置30から見積もりに問題無い旨又は何れかの見積もりのデータが端末装置30のユーザによって選択入力された旨を受信すると、各工程で作業させる作業主体を管理する工場サーバ40へ作業実行要求をする。作業主体は、工場サーバ40が受信した作業実行要求に基づいて各工程を実行する。これにより、一連の工程の実行により製品が製造される。
工場サーバ40は、当該工場サーバ40が属する工場内に配置されている作業主体の情報を管理するサーバ装置である。工場サーバ40は、作業主体に関する情報(作業主体の属性情報、作業主体の状況を示す情報)をスケジュールサーバ10へ送信したり、スケジュールサーバ10からの作業実行要求に応じて、当該作業実行要求対象の作業主体の作業に関する予約管理をしたりする。
次に、スケジュールサーバ10の機能構成について説明する。図2は、スケジュールサーバ10の機能構成を示すブロック図である。スケジュールサーバ10は、機能的には、作業主体情報取得部11(作業主体情報取得手段)、作業主体情報DB12、状況情報取得部13(状況情報取得手段)、状況情報DB14、仮想装置情報登録部15(仮想装置情報格納手段)、仮想装置情報DB16、工程決定部17(工程情報取得手段、検査工程情報取得手段)、対応機能情報取得部18(対応機能情報取得手段)、対応機能情報DB19、仮想装置特定部20(仮想装置特定手段)、工程間情報DB22、スケジュール決定部21(決定手段)、及び実行要求部23を備えている。以下、スケジュールサーバ10の各機能部の機能について詳細に説明する。
作業主体情報取得部11は、作業主体情報を工場サーバ40から取得する。ここで作業主体情報とは、作業主体に関する情報であり、各作業主体が実行可能な複数の機能の情報も含み得る。例えば、工場において、新たな装置が導入されたり、新たな作業員が配置されたりすると、当該工場に属する工場サーバ40が、新たな作業主体を示す作業主体情報をスケジュールサーバ10へ送信する。作業主体情報取得部11は、工場サーバ40から作業主体情報を取得し、当該作業主体情報を作業主体情報DB12へ格納する。なお、作業主体情報取得部11は、取得した作業主体情報に機能を示す情報が含まれていない場合、当該作業主体の機能を含む情報(例えば、仕様表)を別途取得し、当該作業主体の機能を別途抽出し、作業主体情報DB12へ格納する。
作業主体情報DB12は、作業主体情報取得部11によって取得された作業主体情報を記憶するデータベースである。作業主体情報DB12は、作業主体自体の属性を示す作業主体属性情報を記憶する作業主体属性テーブルと、作業主体の機能を示す作業主体機能情報を記憶する作業主体機能テーブルとを記憶する。
ここで、作業主体情報DB12が記憶する作業主体属性テーブルのデータ構造を図3を用いて説明する。作業主体属性テーブルにおいては、作業主体を一意に特定する項目“装置ID”毎に、工場を一意に特定する項目“工場ID”と、作業主体の種類を説明する項目“装置説明”と、作業主体の所有者を特定する項目“所有者”と、作業主体の位置(作業場所)を特定する項目“位置”と、作業主体の型式を特定する項目“型式”と、作業主体を利用可能な期間を特定する項目“利用可能期間”と、他の作業主体との接続可否を示す項目“接続情報”とが対応付けて記憶されている。例えば、“装置ID”が“3DP−00−0002−00”に対応する作業主体“3次元プリンタ”は、“工場ID”が“FID−00−0120”の工場に位置していることを意味する。なお、上記“位置”には、工場の位置として住所又は緯度経度(例えば、GPSにより測定された緯度経度)が入力される。また、上記作業主体“3次元プリンタ”は、“利用可能期間”の項目に基づき、2015年1月1日から2015年12月20日まで利用できることを意味する。また、“装置ID”が“MCH−01−134−01”に対応する作業主体は、“装置説明”が“通常作業員×3名”であることを意味する。このように、作業主体として作業員(人)も含まれている。すなわち、作業主体情報取得部11は、作業主体として人を含む作業主体情報を取得する。
続いて、作業主体機能テーブルのデータ構造を図4を用いて説明する。作業主体機能テーブルにおいては、作業主体を一意に特定する項目“装置ID”、及び同一作業主体における機能を一意に特定する項目“機能番号”毎に、工場を一意に特定する項目“工場ID”と、機能を一意に特定する項目“機能名称”と、作業主体における機能の性能を特定する項目“性能”と、作業主体の機能を実行させるためのコスト(実行コスト)を特定する項目“コスト”と、同時に動作可能な機能を特定する項目“同時動作可能な機能”と、機能を実行させるための条件を特定する項目“機能を発する条件”とが対応付けて記憶されている。図4に示した例では、“装置ID”が“RBA−00−0023−01”に対応する作業主体は、“機能名称”が“機能−00”、“機能−01”、“機能−02”で特定される機能を有することを示している。すなわち、“装置ID”が“RBA−00−0023−01”である装置は、“機能−00”、“機能−01”、及び“機能−02”の機能を有していることを示している。また、“装置ID”が“MPM−00−231−00”で特定される作業主体は、“機能を発する条件”が“Xモードで起動”の場合、“機能名称”が“機能−00”、“機能−01”、及び“機能−02”の何れかで特定される機能を有し、当該“機能を発する条件”が“Yモードで起動”の場合、“機能名称”が“機能−03”又は“機能−04”で特定される機能を有する。これは、“装置ID”が“MPM−00−231−00”の装置には、XモードとYモードとの複数のモードがあり、Xモードの場合、“機能−00”、“機能−01”、及び“機能−02”の機能を同時に実行でき、Yモードの場合、“機能−03”及び“機能−04”を同時に実行できることを示している。また、“コスト”の項目には、初期作業時(装置のセットアップや初期化)、作業完了時(装置のクリーンアップや状態復元)、及び運用時のそれぞれの作業主体の実行に関するコスト(例えば、価格)の情報が入力される。
状況情報取得部13は、各作業主体の稼働状況を示す状況情報を取得する。状況情報取得部13は、所定のタイミング(例えば、1日)毎に、各工場サーバ40へ作業主体の状況確認要求を送信する。各工場サーバ40は、この状況確認要求に応じて、各作業主体の状況情報をスケジュールサーバ10へ送信する。状況情報取得部13は、各工場サーバ40から作業主体の状況情報を取得すると、当該状況情報を状況情報DB14へ格納する。
状況情報DB14は、状況情報取得部13によって取得された状況情報を記憶するデータベースである。図5に、状況情報DB14に記憶された状況情報のデータ構成の一例を示す。同図に示すように、状況情報DB14においては、作業主体を一意に特定する項目“装置ID”毎に、当該作業主体の状態を示す“状態”と、現在の状態になった時刻を示す項目“現在の状態になった時刻”と、作業主体の直近のメンテナンス予定を特定する項目“予定メンテ1”と、作業主体の直近の次のメンテナンス予定を特定する項目“予定メンテ2”と、性能変化を特定する項目“性能変化”と、装置の実行予約状況を特定する項目“予約済時間”とを対応付けて記憶している。例えば、“装置ID”が“3DP−00−0002−00”に対応する作業主体は、“状態”が“重故障”であることを意味する。また、“装置ID”が“3DP−00−0002−00”に対応する作業主体は、“予定メンテ1”が“2016/1/3 0:00〜23:59”であり、“予定メンテ2”が“2016/4/1 0:00〜23:59”であることを意味している。すなわち、2016年1月3日の0時から23時59分までの間と、2016年4月1日の0時から23時59分までの間、上記作業主体のメンテナンスのため、上記作業主体を実行できないことを意味している。
また、“装置ID”が“RBA−00−0023−01”に対応する作業主体は、“予約済時間”が“2016/3/1 10:00〜12:00”であることを意味する。すなわち、2016年3月1日の10時〜12時の間、当該作業主体の実行の予約があるため、再スケジュールをしないかぎりは、新たに上記期間中に当該作業主体の実行の予約をすることができないことを意味している。
仮想装置情報登録部15は、仮想装置を示す情報(仮想装置情報)を登録する部分である。ここで、仮想装置とは、一又は複数の機能を対応付けた仮想的な装置である。仮想装置情報とは、仮想装置を示す識別情報と、当該仮想装置に対応付けられる機能とを対応付けた情報である。仮想装置情報登録部15は、仮想装置情報の入力を受け付け、当該仮想装置情報を仮想装置情報DB16へ登録(格納)する。なお、仮想装置を機能だけでなく性能も考慮した状態で管理してもよい。その場合は、性能と機能の組み合わせを「性能を制約条件として付け加えた機能」として管理する。たとえば「対象物〇〇を□□の精度(性能)で加工する機能」を機能Aとして管理し、当該性能を満たさない加工機能を機能Bとして管理する。このようにすれば、本明細書に示した仕組みで、性能も合わせて管理することができる。よって、以後は内容の理解を容易にするため、加工速度などのスケジュールに関する性能以外については省略する。
仮想装置情報DB16は、仮想装置情報登録部15によって入力が受け付けられた仮想装置情報を記憶するデータベースである。図6に、仮想装置情報DB16に記憶された仮想装置情報のデータ構成の一例を示す。同図に示すように、仮想装置情報DB16においては、仮想装置を一意に特定する項目“仮想装置ID”毎に、当該仮想装置に対応付く機能を特定する一又は複数の機能を特定する項目“機能1”〜“機能10”を対応付けて記憶している。 説明のために、同図では機能の列数を10としたが、必ずしも10に限定するものではない。“機能1”〜“機能10”は、機能名称等の機能を識別する情報を示し、作業主体機能テーブルの“機能名称”に対応する。例えば、“仮想装置ID”が“仮想装置−00”に対応する仮想装置は、“機能1”が“機能−00”である機能を有することを意味する。また、“仮想装置ID”が“仮想装置−01”である仮想装置には、“機能−00”、“機能−01”、及び“機能−04”を含む機能を識別する情報に対応付けられている一方で、当該“機能−04”を3つ含む機能を識別する情報にも対応付けられている。これは、当該“仮想装置−01”が示す仮想装置に、複数のモードがあり、モードによって実行可能な機能が異なることを意味している。
工程決定部17は、端末装置30から製品の製造要求を受け付けると共に、当該製品の情報及び工程情報を取得する。製品の情報としては、製品の設計図の情報及び製品の製造数の情報が含まれる。また、工程情報とは、製品を製造する一連の工程を示す情報である。例えば、各工程の内容(塗装工程、研磨工程等)を示す情報(例えば、工程を識別する工程ID)及び工程間の順序を示す情報が含まれる。なお、工程決定部17は、端末装置30から工程生成の要求を受け付けた場合に、上記の製品の設計図に基づいて、製品を製造する一連の工程(提案工程)を公知技術により自動生成するようにしてもよい。この場合、工程決定部17は、端末装置30に対して生成した工程を示す情報を送信し、端末装置30から当該生成した工程を示す情報の確認要求を受信するようにしてもよい。
また、工程決定部17は、上記の一連の工程のそれぞれに検査工程を必要とするか否かを判断する。工程決定部17は、工程と、当該工程に対応する検査工程とを対応付けた検査工程情報を記憶しており、当該検査工程情報を参照して、上記一連の工程のそれぞれに対応する検査工程があるか否かを判断する。ここで、図7に、検査工程情報のデータ構成の一例を示す。同図に示すように、各工程を一意に特定する項目“検査必要工程ID”毎に、当該工程に対応付く一又は複数の検査工程を特定する項目“追加検査工程1”〜“追加検査工程10”を対応付けて記憶している。例えば、“検査必要工程ID”が“工程−10”である工程は、“追加検査工程1”が“工程−9900”である検査工程を必要とすることを意味する。
工程決定部17は、検査工程情報の中に、上記一連の工程のそれぞれの工程を示すIDと同一の“検査必要工程ID”があるか否かを判断し、それぞれの工程を示すIDと同一の“検査必要工程ID”が無い場合、当該工程には、検査工程が不要であると判断し、検査工程を追加しない。一方、工程決定部17は、それぞれの工程を示すIDと同一の“検査必要工程ID”が有る場合、当該工程には、検査工程が必要であると判断し、“検査必要工程ID”に対応する追加検査工程を、当該工程の後の工程に追加する。このように、工程決定部17は、各工程に対応する検査工程の情報である検査工程情報を取得して、当該検査工程情報に含まれる検査工程を追加する。具体的に、工程決定部17は、上記工程情報に、検査工程を示す工程IDを追加し、当該検査工程も含めた一連の工程の順序を編集することにより、検査工程を追加する。
工程決定部17は、上記のように検査工程の必要の有無を判断した後に、全ての工程の間に運搬工程を追加する。具体的に、工程決定部17は、工程情報に、運搬工程を示す工程IDを追加し、当該運搬工程も含めた一連の工程の順序を編集することにより、運搬工程を追加する。このように、工程決定部17は、製品を製造するための一連の工程(検査工程、運搬工程を含む)を決定する。工程決定部17は、決定した工程の情報を対応機能情報取得部18へ送出する。
対応機能情報取得部18は、工程決定部17によって決定された各工程に対応する機能を示す情報を取得する。対応機能情報取得部18は、工程決定部17から工程の情報を取得すると、対応機能情報DB19に記憶されている対応機能情報を参照し、各工程に対応する機能を示す情報を取得する。
対応機能情報DB19は、対応機能情報を記憶するデータベースである。図8に、対応機能情報DB19に記憶された対応機能情報のデータ構成の一例を示す。同図に示すように、対応機能情報DB19においては、工程を一意に特定する項目“工程ID”毎に、当該工程に対応付く機能を特定する一又は複数の機能を特定する項目“機能1”〜“機能10”を対応付けて記憶している。例えば、“工程ID”が“工程−00”である工程は、“機能1”が“機能−00”である機能が対応付けられていることを意味する。また、“工程ID”が“工程−05”の工程には、“機能−04”、“機能−04”、“機能−04”、及び“機能−03”が対応付けられている。これは、“工程−05”の工程では、“機能−04”の機能を3つと、“機能−03”の機能とを同時に実行する必要があることを示す。
対応機能情報取得部18は、工程決定部17によって決定された各工程の工程IDと同一の“工程ID”に対応する機能を特定する情報(“機能1”〜“機能10”に記憶されている情報)を対応機能情報DB19から取得する。対応機能情報取得部18は、工程決定部17から取得した工程情報に含まれる各工程に当該工程に対応する機能の情報を対応付けた情報(実行工程対応機能情報)を付加した情報を、仮想装置特定部20へ送出する。
例えば、対応機能情報取得部18は、一連の工程における各工程の工程IDが“工程−00”、“工程−01”、“工程−02”、及び“工程−05”である工程情報を工程決定部17から取得したものとする。そうすると、対応機能情報取得部18は、対応機能情報を参照して、それぞれの工程IDに対応する機能IDを取得する。具体的に、対応機能情報取得部18は、“工程−00”に対応する機能である“機能−00”を取得する。同様に、対応機能情報取得部18は、“工程−01”に対応する機能である“機能−01”及び“機能−03”を取得し、“工程−02”に対応する機能である“機能−03”及び“機能−04”を取得し、“工程−05”に対応する機能である“機能−04”、“機能−04”、“機能−04”、及び“機能−03”を取得する。
そして、対応機能情報取得部18は、図9に示すような、上記の各工程と、当該各工程に対応する機能(仮想機能)とを対応付けた実行工程対応機能情報を生成し、当該実行工程対応機能情報を仮想装置特定部20へ送出する。図9に示す例では、“工程−00”、“工程−01”、“工程−02”、“工程−05”の順に工程を実行することを示している。また、“工程−00”では、“機能−00”を実行し、“工程−01”では、“機能−01”及び“機能−03”を実行し、“工程−02”では、“機能−03”及び“機能−04”を同時実行し、“工程−05”では、“機能−04”、“機能−04”、“機能−04”、及び“機能−03”を同時実行することを示している。
仮想装置特定部20は、工程情報に示される一連の工程に含まれる各工程に対応する機能に対応付けられた仮想装置を仮想装置情報に基づいて特定する。具体的に、仮想装置特定部20は、対応機能情報取得部18から実行工程対応機能情報を取得し、当該実行工程対応機能情報を用いて仮想装置を特定する。すなわち、仮想装置特定部20は、対応機能情報取得部18により取得された各工程に対応する機能を示す情報を用いて仮想装置を特定する。
また、仮想装置特定部20は、上記の実行工程対応機能情報が示す工程には、検査工程も含まれているので、検査工程情報の示す各検査工程に対応する機能に対応する仮想装置も特定することになる。
具体的には、仮想装置特定部20は、対応機能情報取得部18から取得した実行工程対応機能情報に含まれる各工程毎に、当該工程に対応する仮想装置を決定する。例えば、仮想装置特定部20が、図9に示したような実行工程対応機能情報を対応機能情報取得部18から取得したものとする。仮想装置特定部20は、対応機能情報取得部18から取得した実行工程対応機能情報の内、第一工程である“工程−00”に対応する機能(“機能−00”)を有する仮想装置を特定する。仮想装置特定部20は、仮想装置情報DB16を参照し、当該“機能−00”を有する仮想装置を特定する。仮想装置特定部20は、図6に示した仮想装置情報を参照して、“機能−00”を機能(“機能1”〜“機能10”)として有する“仮想装置ID”を特定する。その結果、仮想装置特定部20は、“機能−00”を有する“仮想装置−00”を特定する。仮想装置特定部20は、第二工程及び第三工程の工程についても同様に、仮想装置(“仮想装置―01”)を特定する。
また、仮想装置特定部20は、第四工程である“工程−05”に対応する機能(“機能−04”、“機能−04”、“機能−04”、及び“機能−03”)を有する仮想装置を特定する。図6に示した仮想装置情報の各仮想装置は、上記“工程−05”に対応する機能を有しない。そこで、仮想装置特定部20は、“機能−01”、“機能−03”、及び“機能−04”を機能として有する“仮想装置−01”と、“機能−04”、“機能−04”、及び“機能−04”を機能として有する“仮想装置−01”とを第四工程の仮想装置の候補として特定する。また、仮想装置特定部20は、“機能−04”、“機能−04”、及び“機能−04”を機能として有する“仮想装置−01”と、“機能−03”を機能として有する“仮想装置−02”とを第四工程の仮想装置の候補として特定する。このように、仮想装置特定部20は、第四工程の工程について、異なる“仮想装置―01”を複数モードで起動するパターンと、“仮想装置―01”及び“仮想装置―02”を同時に使うパターンの2パターンを特定する。
仮想装置特定部20は、上記のように各工程に対して仮想装置を特定した結果に基づいて、各工程に仮想装置を対応付けた仮想装置構成を示す情報(仮想装置特定結果情報)を生成する。この仮想装置特定結果情報の例を図10に示す。図10に示すように、第一工程(工程−00)には、仮想装置−00を対応付けて、第二工程(工程−01)及び第三工程(工程−02)には、仮想装置−01を対応付ける。第四工程(工程−05)に対しては、上述のように2パターン(仮想装置−01を複数利用するパターン、仮想装置−01及び仮想装置−02を利用するパターン)の仮想装置を対応付ける。仮想装置特定部20は、当該仮想装置特定結果情報に基づいた視覚的な情報(仮想装置確認情報)を端末装置30へ送信する。この視覚的な情報の例を図11に示す。図11は、工程1〜工程5の5つの工程を示す工程情報のそれぞれに対応する仮想装置を視覚的に紐づけた工程グラフの例である。同図では、工程グラフの説明を分かりやすくするため、図10に示した工程とは異なる例をあげている。また、簡易化のため、一つの工程に一つの仮想装置が対応する例にしてある。図11に示すように、仮想装置特定部20は、当該視覚的な情報として、工程1〜工程5の工程順を示す工程グラフと、各工程に対応する仮想装置を示す情報を送信する。なお、図10に示したように2パターンの仮想装置構成がある場合、それぞれのパターンの仮想装置確認情報を、仮想装置構成の確認又は選択要求とともに端末装置30へ送信する。
仮想装置特定部20は、端末装置30から仮想装置構成の確認又は選択した旨の通知が受信されると、確認又は選択された仮想装置確認情報に対応する仮想装置特定結果情報をスケジュール決定部21へ送出する。
スケジュール決定部21は、作業主体情報を用いて、仮想装置特定部20により特定された仮想装置に対応付く機能を、同機能を利用する際のモードを考慮した状態で、実行可能な作業主体を特定し、当該特定した作業主体の中から各工程で実行する作業主体を決定し、各工程のスケジュールを決定する。スケジュール決定部21は、特定した作業主体の中から各工程で実行する作業主体を決定する際に、状況情報取得部13により取得された状況情報(状況情報DB14に格納されている状況情報)に基づいて各工程で実行する作業主体を決定する。また、スケジュール決定部21は、特定した作業主体(各工程で実行する作業主体の候補)の実行コストに基づいて各工程で実行する作業主体を決定する。また、スケジュール決定部21は、作業主体情報を用いて各工程において実行する候補の作業主体の場所を特定し、2つの工程間における候補の作業主体間の移動によるコストを作業主体間の場所の距離に基づいて算出し、当該コストに基づいて各工程で実行する作業主体を決定する。なお、スケジュール決定部21は、距離だけでなく、運搬方法(例えば、トラック、無人搬送車等)の情報にさらに基づいて移動によるコストを算出するようにしてもよい。
まず、スケジュール決定部21は、仮想装置特定部20から仮想装置特定結果情報を受信する。スケジュール決定部21は、当該仮想装置特定結果情報に基づき、工程の結合又は工程の順序変更を実行する。スケジュール決定部21は、工程間情報DB22に記憶されている情報を用いて、工程の結合又は工程の順序変更を実行する。
工程間情報DB22は、工程間の関係を示す情報を記憶するデータベースである。工程間情報DB22は、結合可能な工程を示す結合可能テーブルと、工程順を変換できる工程を示す工程可変テーブルとを記憶する。
ここで、結合可能テーブルのデータ構造を図12(A)を用いて説明する。結合可能テーブルにおいては、結合後の工程を一意に特定する項目“結合後工程”毎に、互いに結合可能な工程である一又は複数の工程を特定する項目“要素工程A”〜“要素工程C”と補足情報を特定する項目“補足”を対応付けて記憶している。例えば、 “工程6”に対応する結合後の工程は、“要素工程A”が“工程2”である工程と、“要素工程B”が“工程4”である工程とが結合されうる工程であることを意味する。例えば、工程2は、電子基板上のROMへのソフトウェアの書き込み、工程4がROMへの設定データの書き込みであり、同一機能を使う工程である。これらはともにデータ書込み機能のため、書き込みデータをまとめれば工程を統合することができる。このように統合してもよい工程は、結合可能である旨、予め結合可能テーブルで定義されている。
続いて、工程可変テーブルのデータ構造を図12(B)を用いて説明する。工程可変テーブルにおいては、工程を一意に特性する項目“要素工程A”と、当該工程と順序可変である工程を一意に特定する項目“要素工程B”とが対応付けて記憶されている。例えば、“要素工程A”が“工程1”である工程は、“要素工程B”が“工程6”である工程と順序が入れ替え可能であることを意味する。すなわち、工程1と工程6との順序を変更することができることを意味する。
スケジュール決定部21が工程を結合したり、順序変更したりする例を図13を用いて説明する。まず、図13(A)に示すように、工程1〜工程5の工程グラフを示す情報が入力されているものとする。この場合に、図13(B)に示すように、工程決定部17によって、検査工程及び運搬工程が挿入される。この後に、図13(B)に示すような工程に基づいて、仮想装置特定部20が仮想装置を特定した後に、スケジュール決定部21が仮想装置特定結果情報を取得する。スケジュール決定部21は、まず工程間を結合できるか否かを図12(A)に示した結合可能テーブルを参照して判断する。図13(B)の例の場合、結合可能テーブルにより、工程2と工程4とが結合可能であると判断する。そこで、スケジュール決定部21は、工程2及び工程4を結合し、これらの工程を工程6に変更し、図13(C)のように工程を更新する。また、工程3と検査工程4とが同一の機能であった場合、工程3と検査工程4との間にある運搬工程5を削除する。この結果、図13(D)に示すように工程を更新する。
続いて、スケジュール決定部21は、工程の順番の入れ替えが可能か否かを判断する。スケジュール決定部21は、工程可変テーブルを参照し、工程1が、工程6、工程3、及び工程5と順番入れ替え可能であるので、工程1を工程5の前又は後に変更する。この結果、図13(E)に示すような結果となる。
続いて、スケジュール決定部21は、作業主体情報DB12を参照し、各工程に対応する仮想装置が有する機能を包含する機能を有する作業主体を全て取得する。このとき、必ずしも作業主体単体の機能で仮想装置の機能を包含する必要はなく、作業主体の組み合わせで仮想装置の機能を包含するようにしても構わない。具体的には、スケジュール決定部21は、仮想装置情報DB16を参照して、対象となる仮想装置(各工程に特定された仮想装置)の仮想装置IDに対応する機能(“機能1”〜“機能10”)を取得する。そして、スケジュール決定部21は、作業主体機能テーブルを参照し、当該機能全てを包含しうる作業主体又はその組み合わせを特定する(例えば、特定した作業主体における“装置ID”を取得する)。さらに、スケジュール決定部21は、取得した作業主体に対応する予約状況を示す情報を状況情報DB14から取得する。具体的には、スケジュール決定部21は、状況情報DB14を参照し、当該“装置ID”に対応する“状態”、“予定メンテ1”、“予定メンテ2”、及び“予約済時間”を取得し、取得した情報と“装置ID”とを対応付けてメモリ上で記憶しておく。
続いて、スケジュール決定部21は、工程決定部17によって受信された製品の数量が、予め製品毎に定められているロット数の何倍か算出する。続いて、スケジュール決定部21は、ロットの単位毎に以下に示す処理を実施する。すなわち、スケジュール決定部21は、更新後の各工程に紐づけられた作業主体の空き時間を予約状況を示す情報(“予約済時間”、“予定メンテ1”、“予定メンテ2”)を用いて特定する。続いて、第一工程から最後の工程までの順に以下の(1)〜(5)の処理を実施する。まず、(1)第一工程に紐づく作業主体の空き時間を取得する(第1時間)。 続いて、(2)各作業主体の性能情報とロット数から1ロット処理するのに必要な時間を算出する(第2時間)。(3)第1時間>第2時間である場合、スケジュール決定部21は、当該作業主体を実施可能であると判断し、その旨をメモリに記憶する。(4)スケジュール決定部21は、工程ID及びロット番号を含むユニークな名称をつけて作業主体の仮予約をメモリに記憶しておく。(5)スケジュール決定部21は、実施可能となった作業主体の完了時間を次の工程の開始時間として、(1)〜(4)の処理と同じ処理を実施し、最終工程まで実施する。なお、最終工程まで仮予約できたものはそのロットが成立したとする。これを全てのロットについて実施する。スケジュール決定部21は、最終工程まで仮予約が成立したスケジュール候補の情報(工程ID、ロット番号、作業主体のID、利用時間)をプラン情報としてメモリに記憶する。最終工程まで成立しなかった場合は、仮予約を解除する。なお、説明を簡単にするために、全ての工程でロット数が同じとしたが、必ずしも同じである必要はない。工程毎にロット数が異なる場合もある。そのような場合は、工程間にロット数の差を補うための仮保管領域を用意すれば対応できる。また、製品によっては同じ形状の商品が複数個組み付けられる場合もある。そのような場合は、全ての工程が同じ回数だけロット処理をするわけではない。工程によっては他よりも多いロット処理が行われることもある。言い換えると、他に比べて少ないロット処理の回数しかない工程が存在する。回数の少ない工程については、スケジュール割当ての回数を減らすなどして対応する。
続いて、スケジュール決定部21は、上記のプラン情報毎に、各作業主体を何時間使用するか計算し、作業主体情報DB12の作業主体機能テーブルのコスト情報(“コスト”)に基づいて実行コストを算出する。また、スケジュール決定部21は、プラン毎に全工程の実行コストを合算することで費用(プランを実行するための価格)を算出する。なお、運搬工程については、工程間の場所情報に基づいた移動距離に基づいて運搬コストを算出して、運搬工程で実行する作業主体の実行コストに当該運搬コストを付加して上記費用を算出してもよい。スケジュール決定部21は、プラン毎にプラン情報に基づいて最終完了日も特定する。スケジュール決定部21は、当該プラン毎に算出した費用、納期、工程、及び使用する仮想装置を示す情報(見積もりデータ)を生成し、端末装置30へ送信する。この情報例を図14(A)に示す。図14(A)に示すように、当該見積もりデータは、プランを一意に特定する項目“プラン番号”毎に、当該プランを実行するための価格を示す項目“価格”と、納期を示す項目“納期”と、当該プランの工程を示す項目“工程”と、工程で使用する仮想装置を示す項目“使用する仮想装置”とを対応付けた情報である。例えば、“プラン番号”が“0”に対応するプランは、“価格”が“103913円”で、“工程”が“工程A→工程B→工程C”で、“使用する仮想装置”が“仮想装置A×2台、仮想装置C×1台”であることを示している。上記“プラン番号”は、プラン毎に一意となるように付された番号である。“納期”は、端末装置30へ見積もりデータを送信してから納品するまでの納期を示し、具体的には、端末装置30へ見積もりデータを送信する日から上記最終完了日までの期間である。“工程”は、プランに対応する工程の内、検査工程及び運搬工程を除いた工程である。スケジュール決定部21は、仮想装置特定部20から受信した仮想装置特定結果情報が示す工程の内、検査工程及び運搬工程を除いた工程を上記“工程”とする。“使用する仮想装置”は、仮想装置特定部20から受信した仮想装置特定結果情報が示す仮想装置である。
なお、スケジュール決定部21は、図14(B)に示すように、使用する作業主体及び当該作業主体が実行する時間を示す項目“使用する実装置(予定)”と、実際の工程情報を示す項目“実際の工程情報(予定)”と、製造製品が最終的に出荷される場所を特定する“最終出荷場所”とを示すスケジュール補足情報も生成している。“使用する実装置(予定)”は、使用する作業主体を示す情報であり、スケジュール決定部21が特定したプラン情報に含まれる作業主体のID及び利用時間から導かれる期間を示す。“実際の工程情報(予定)”は、仮想装置特定部20から受信した仮想装置特定結果情報の工程情報である。“最終出荷場所”は、実際の工程の最終工程の機能を実行する作業主体の工場の場所を示す。端末装置30から上記見積もりデータの内、選択された見積もりデータを受信すると、当該見積もりデータ及びスケジュール補足情報を実行要求部23へ送信する。
実行要求部23は、上記のように選択された見積もりデータに対応する作業主体の作業実行要求を工場サーバ40へ通知する。具体的に、実行要求部23は、上記のように選択された見積もりデータ及びスケジュール補足情報をスケジュール決定部21から取得すると、当該スケジュール補足情報の“使用する実装置(予定)”の項目内の各作業主体の状況情報に対して、予約情報(予約時間等)を登録する。具体的に、実行要求部23は、状況情報DB14を参照し、対象となる作業主体の“装置ID”に対応する“予約済時間”に上記見積もりデータに基づく時間を加算するように更新する。続いて、実行要求部23は、当該プランに対応する各作業主体が属する工場の工場サーバ40へ作業主体のID及び作業時間を通知すると共に、作業実行要求を送信する。
以下、情報処理システム1の各種処理の動作手順について説明する。まず、図15を参照しながら、作業主体情報取得部11が作業主体情報を作業主体情報DB12へ登録する手順について説明する。作業主体情報取得部11は、各工場サーバ40から作業主体情報の登録要求を受信すると共に、作業主体情報を取得する(ステップS1)。作業主体情報取得部11は、当該作業主体情報に機能を示す情報が含まれている場合、当該機能を示す情報(例えば、仕様表)から機能を特定する(ステップS2)。作業主体情報取得部11は、取得した作業主体情報の内、作業主体の属性に関する情報を作業主体属性テーブルへ登録し、作業主体の機能を示す作業主体機能情報を作業主体機能テーブルへ登録する(ステップS3)。
続いて、図16を参照しながら、端末装置30が製品の製造要求を送信してから、作業割当依頼(製造実行要求)を送信するまでの処理手順を説明する。まず、端末装置30は、製品の製造要求を送信すると共に、製品の設計図等の製品の情報をスケジュールサーバ10へ送信する(ステップS11)。端末装置30は、上記製造要求の受信時に工程情報を送信する場合(ステップS12:YES)、工程情報をスケジュールサーバ10へ送信し(ステップS13)、ステップS16へ進む。また、端末装置30は、上記製造要求時に工程情報を送信しない場合(ステップS12:NO)、スケジュールサーバ10へ工程提案依頼(工程情報の送信要求)を送信する(ステップS14)。端末装置30は、提案工程を受信し(ステップS15)、当該端末装置30のユーザの入力により当該提案工程の了承がなされると、その旨をスケジュールサーバ10へ送信する。その後、スケジュールサーバ10から工程に対応する仮想装置の情報(仮想装置確認情報)を受信する(ステップS16)。ユーザの入力によりこの情報の了承がなされると、端末装置30は、製作量、納期、及び価格の見積もり要求をスケジュールサーバ10へ送信する(ステップS17)。その後、スケジュールサーバ10から見積もり及び利用する仮想装置の情報(プラン情報)を受信する(ステップS18)。当該見積もり及び利用する仮想装置の情報について、修正希望を示す入力がユーザによってなされると、端末装置30は、工程修正結果を送信する(ステップS20)。ここで工程修正結果の例として、工程の修正等が該当する。一方、見積もり及び利用する仮想装置の情報について、了承する旨の入力がなされると、(ステップS19:YES)、端末装置30は、その旨の情報をスケジュールサーバ10へ送信すると共に、作業割当依頼をする。
次に、図17を参照しながら、スケジュールサーバ10が製品を製造するためのスケジュールを決定する処理の動作手順を説明する。図17は、スケジュールサーバ10が製品を製造するスケジュールを決定する動作を示すフローチャートである。
まず、工程決定部17は、端末装置30から製品の設計図等の製品の情報を受信すると共に製品の製造要求を受け付ける(ステップS31)。当該製造要求を受信した際に、端末装置30から工程情報の送信要求も受け付けていた場合(ステップS32:YES)、提案工程を作成し(ステップS33)、提案工程を送信する(ステップS34)。一方、端末装置30から工程情報の送信要求を受け付けていない場合(ステップS32:NO)、端末装置30から工程情報を受信する(ステップS35)。続いて、対応機能情報取得部18が工程に対応する機能を取得し、仮想装置特定部20が、工程と機能との対応関係と、仮想装置と機能との対応関係に基づいて、候補になりうる1又は複数の仮想装置を特定する(ステップS36)。続いて、スケジュール決定部21は、各工程の更新を行い(ステップS37)、状況情報DB14から状況情報を取得する(ステップS38)。スケジュール決定部21は、当該状況情報、運搬コスト、及び実行コストに基づいて工程のスケジューリングを行う(ステップS39)。スケジュール決定部21は、スケジューリング結果を端末装置30へ送信する(ステップS40)。端末装置30から修正要求を受信した場合(ステップS41:NO)、ステップS35へ進む。また、端末装置30から修正要求が無い場合(ステップS41:YES)は作業割当て依頼を受け取り、実行要求部23は、スケジューリングした作業主体についての予約情報を登録すると共に、各工場サーバ40へ対象の作業主体に対する作業実行要求を送信して(ステップS42)、処理を終了する。
以上説明した情報処理システム1のスケジュールサーバ10によれば、仮想装置特定部20が仮想装置に対応付けられる機能に基づいて、各工程に対応する仮想装置を特定し、スケジュール決定部21が当該仮想装置に対応付く機能を実行可能な作業主体の中から各工程で実行する作業主体を決定し、各工程のスケジュールを決定する。このように、スケジュールサーバ10は、機能に基づいて、統一的に管理された仮想装置の機能単位で各工程に割り当て、その仮想装置の機能に対応する作業主体を各工程で実行させる作業主体として決定することができるので、各工場の装置等の実際に工程を処理する主体が複数の機能を有する場合に、効率的に工程をスケジューリングすることができる。
また、状況情報取得部13は、各作業主体の稼働状況を示す状況情報を取得し、スケジュール決定部21は、状況情報取得手段により取得された状況情報及び予約状況に基づいて各工程で実行する作業主体を決定する。かかる構成を採れば、各作業主体の稼働状況を示す状況情報に基づいて各工程で実行する作業主体を決定するので、適切に稼働している作業主体を各工程で実行する作業主体に決定することができる。
また、対応機能情報取得部18は、工程情報に示される各工程に対応する機能を示す情報を取得し、仮想装置特定部20は、各工程に対応する機能を示す情報を用いて仮想装置を特定する。この場合、工程情報と機能とを対応付けた情報を取得して、当該情報を用いて工程に対応する仮想装置を特定するので、適切に工程に対応する仮想装置を決定できる。
また、作業主体情報取得部11は、作業主体を実行させるためのコストである実行コストをさらに含む作業主体情報を取得し、スケジュール決定部21は、作業主体情報取得部11により取得された作業主体情報を用いて各工程において実行する候補の作業主体を特定し、候補の作業主体の実行コストに基づいて各工程で実行する作業主体を決定する。この場合、各作業主体の実行コストに基づいて各工程で実行する作業主体を決定するので、例えば、実行コストが相対的に高い作業主体を、各工程で実行する作業主体に決定してしまうことを回避することができる。すなわち、効率的に工程をスケジューリングすることができる。
作業主体情報取得部11は、作業主体として人を含む作業主体情報を取得する。この場合、スケジュールサーバ10は、作業主体として作業員などの人も考慮して、工程をスケジューリングすることができる。
工程決定部17は、各工程に対応する検査工程の情報である検査工程情報を取得し、仮想装置特定部20は、検査工程情報の各検査工程に対応する機能に対応する仮想装置を特定する。
この場合、スケジュールサーバ10において、各工程に対応する検査工程を特定し、当該検査工程に対応する機能に対応する仮想装置を特定するので、検査工程も考慮して効率的に工程をスケジュールすることができる。
作業主体情報取得部11は、作業主体の作業場所の情報をさらに含む作業主体情報を取得し、スケジュール決定部21は、作業主体情報取得部11により取得された作業主体情報を用いて各工程において実行する候補の作業主体の場所を特定し、2つの工程間における候補の作業主体間の運搬によるコストである運搬コストを作業主体間の場所の距離に基づいて算出し、当該運搬コストに基づいて各工程で実行する作業主体を決定する。
この場合、スケジュールサーバ10は、各工程に対応する運搬コストに基づいて各工程で実行する作業主体を決定するので、例えば、運搬コストが相対的に高くなってしまう作業主体を、各工程で実行する作業主体に決定してしまうことを回避することができる。すなわち、効率的に工程をスケジューリングすることができる。
上述の実施形態では、製造する一連の工程の各工程に対応する機能を特定し、当該機能に対応する仮想装置を特定することにより、工程に対応する仮想装置を特定する場合について述べた。しかし、製造分野によっては、各工程に対し、“標準装置”とよばれる装置のように使用する装置の型式が既に決まっている場合がある。すなわち、工程と装置の対応情報を容易に作成できる製造分野もある。そのような場合は、装置が有する全機能を抽出して工程に紐づければ、これまで述べた方法を同様に利用することができる。