以下、本発明に係る各実施形態を、図1ないし図24を用いて説明する。
〔システム構成〕
先ず、図1を用いて本発明に係る工程管理システムのシステム構成を説明する。
図1は、本発明に係る工程管理システムのシステム構成図である。
本発明のシステムは、ハードディスクなどの記憶装置E0100と、CPUなどの中央処理装置E0200と、キーボードやバーコードリーダやRFIDリーダなどの入力装置E0300と、液晶ディスプレイやプリンタなどの出力装置E0400と、Ethernet(登録商標)などの通信装置E0500とが、バスによって接続する構成をとる。
記憶装置E0100には、工程テーブルT1100と、工程関係テーブルT1200と、履歴テーブルT1300と、履歴関係テーブルT1400と、推定履歴テーブルT1500と、推定履歴関係テーブルT1600と、履歴登録プログラムF1100と、検索プログラムF1200と、監視プログラムF1300と、履歴推定プログラムF1400とを格納する。
工程テーブルT1100は、いかなる作業工程があり、それぞれの工程でいかなることをするかなどの定義を保持する。
工程関係テーブルT1200は、工程テーブルT1100に登録された工程間の関係の定義を保持する。そして、工程関係により、工程の実行順序などを定義する。
履歴テーブルT1300は、工程テーブルT1100に登録された工程に対応する作業履歴を蓄積する。
履歴関係テーブルT1400は、履歴テーブルT1300に登録された履歴間の関係情報を蓄積する。履歴関係により、履歴の実行順序などを提示することができる。
推定履歴テーブルT1500は、保留となっていて、未だ登録されていない履歴を推定した結果を保持する。
推定履歴関係テーブルT1600は、履歴テーブルT1300の履歴と推定履歴テーブルT1500の履歴の間の関係情報を保持する。
履歴登録プログラムF1100は、入力装置E0300や通信装置E0500を通して送られてきた履歴情報を、履歴テーブルT1300に登録する。また、工程テーブルT1100と、工程関係テーブルT1200を用いて、履歴テーブルT1300に登録された履歴間の関係情報を作成し、履歴関係テーブルT1400に登録する。
検索プログラムF1200は、入力装置E0300や通信装置E0500から入力された検索条件に対して、履歴テーブルT1300と、履歴関係テーブルT1400と、推定履歴テーブルT1500と、推定履歴関係テーブルT1600を用いて、履歴の検索をおこない、履歴関係に基づいて履歴を構造化して並べる。そして、検索結果は、出力装置E0400や通信装置E0500から出力する。
監視プログラムF1300は、履歴テーブルT1300と履歴関係テーブルT1400を監視し、一定の時間以上履歴が登録されない場合に、警告を発したり、履歴推定プログラムF1400を起動して履歴の推定をするなど、規定の動作をする。
履歴推定プログラムF1400は、工程テーブルT1100と、工程関係テーブルT1200と、履歴テーブルT1300と、履歴関係テーブルT1400を用いて、履歴関係テーブルT1400で保留となっている履歴情報を推定する。推定した履歴は、推定履歴テーブルT1500に、推定した履歴と履歴の関係情報は推定履歴関係テーブルT1600に登録する。
〔実施形態1〕
以下、本発明に係る第一の実施形態を、図2ないし図10を用いて説明する。
図2は、PCの製造と流通の工程モデルを示す工程ダイアグラムである。
図3は、工程テーブルT1100の一例を示す図である。
図4は、工程関係テーブルT1200の一例を示す図である。
図5は、モノ属性テーブルT1700の一例を示す図である。
図6は、履歴テーブルT1300の一例を示す図である。
図7は、本発明の第一の実施形態に係る履歴テーブルT1300の生成の途中の様子を示す図である。
図8は、本発明の第一の実施形態に係る履歴関係テーブルT1400の一例を示す図である。
図9は、本発明の第一の実施形態に係る履歴登録プログラムF1100の処理を示すフローチャートである。
図10は、検索プログラムF1200の処理を示すフローチャートである。
図11は、本発明の第一の実施形態に係る履歴の検索結果を作業順に出力した例を示す図である。
本実施形態では、モノがPCである場合をモデルにして、それに関連する履歴情報の登録し、履歴関係を作成する例を説明する。この例では、モノに関する履歴情報が、そのモノの工程順に集まらなくてもよい。
本実施形態で採りあげるPCは、図2に示されたような製造と流通の工程モデルを有するものとする。図2(a)がPCの流通部分で、図2(b)がPCの製造部分である。ここで、P11、P12、…、P55、P56は、工程を識別する番号である。例えば、工程P11は、工場1での出荷工程を示している。また、工程と工程を結ぶ矢印は、工程間の関係であり、工程の実行順序を示している。例えば、工程P11から工程P21への工程関係T1211は、PCを工場1で出荷し、次に倉庫1で検品をおこなうことを示している。
図2(a)の工程P11からは分岐して、工程P21への工程関係T1211と、工程P22への工程関係T1212と二つの工程関係がある。これは、あるPCは倉庫1に送り、別のあるPCは倉庫2に送るという2つの経路の可能性があることを示している。図2(b)の枠T1225で囲んだ部分は、工程関係T1222と工程関係T1223がグループであることを示している。グループの中の矢印は、複数の経路の可能性があるという意味ではなく、複数の矢印すべての経路が必要という意味となる。すなわち、工程P55のPC合成のためには、工程関係T1222を通して工程P52から来た演算装置と、工程関係T1223を通して工程P54から来たディスプレイ、両方の経路が必要であり、両方を組み合わせる工程が工程P55となる。PCに関する工程モデルは、以下の図3に示される工程テーブルT1100と、図4に示される工程関係テーブルT1200により、定義することができる。
工程テーブルT1100は、図3に示されるように、全工程中で工程を一意に識別する「工程ID」と、作業をおこなう場所を示す「作業場所」と、作業をおこなう対象となるモノの種類を示す「モノ種類」と、工程でいかなる作業をおこなうかを示す「作業内容」などの項目を有している。そして、作業場所、モノ種類、作業内容などの項目の組み合わせにより、工程を判別することができるように定義する。例えば、工程P11の工程は、工場1でPCに対しておこなう出荷工程であることを示している。この工程テーブルT1100には、システム使用者があらかじめデータを登録しておく必要がある。
一方、工程関係テーブルT1200は、図4に示されるように、遷移前の工程を示す「前工程ID」と、遷移後の工程を示す「後工程ID」と、遷移前の作業から遷移後の作業までの間の平均的な時間差を示す「推定時間」と、複数の工程関係をグループ化するための「グループID」などの項目を有している。例えば、工程関係T1211のレコードは、前工程がP11であり、後工程がP21であるから、工程P11の次に工程P21を実行することを示している。また、工程関係T1211と工程関係T1214より、工程P11、工程P21、工程P31の順に流れる工程の経路があることを定義できる。なお、推定時間は、「1時間」のような単一の時間だけでなく、「1時間〜2時間」のような範囲で示しても良い。この工程関係テーブルT1200には、システム使用者があらかじめデータを登録しておく必要がある。
モノ属性テーブルT1700は、図5に示されるように全モノ中でモノを一意に識別する「モノID」と、モノがどのような種類のモノであるかを示す「モノ種類」などの項目を有する。例えば、モノ属性情報T1711は、モノIDがPC1であるモノの種類は、PCであるということを示している。より具体的には、モノ種類は、PCの型番であり、モノIDは、シリアル番号、あるいは、運搬の対象となるパレットにつけられるパレットIDに対応するものである。モノ属性テーブルT1700には、システム使用者があらかじめデータを登録しておくか、初めて履歴を登録する際に、モノの属性情報も登録するようにして、データの登録をおこなう。このモノ属性テーブルT1700は、履歴情報を登録する際の参照情報として用いられる。
履歴テーブルT1300は、図6に示されるように全履歴中で履歴を一意に識別する「履歴ID」と、作業がおこなわれた日時を示す「作業日時」と、作業がおこなわれた場所を示す「作業場所」と、作業をおこなった対象となるモノを示す「モノID」と、作業の内容を示す「作業内容」と、作業が属する工程を示す「工程ID」などの項目を有する。例えば、履歴H11は、「12月1日の10時に工場1にて、PC1を出荷した」という内容を示し、工程P11に属することを示している。図には示さないが、履歴テーブルT1300には、作業をおこなった者を示す「作業者ID」などの項目を含んでも良い。履歴テーブルT1300には、後に説明するように履歴登録プログラムF1100により、データを登録する。
履歴関係テーブルT1400は、図8に示されるように遷移前の履歴を示す「前履歴ID」と、遷移後の履歴を示す「後履歴ID」などの項目を有する。例えば、履歴関係T1411は、履歴H11の作業をおこなった後に、履歴H21の作業をおこなったことを示している。履歴関係テーブルT1400には、後に説明するように履歴登録プログラムF1100により、データを登録する。
次に、図9を用いて履歴登録プログラムF1100の処理を説明する。
履歴登録プログラムF1100は、履歴情報を引数にして起動する。
先ず、最初の状態として、履歴テーブルT1300は、図7(a)に示されているように、履歴H11、H21が登録されている状況であり、履歴関係テーブルT1400は、図8(a)に示されているようにそれぞれ前履歴ID、後履歴IDに履歴H11、H21が登録されている状況であるとする。
最初に、履歴登録プログラムF1100が、「作業日時:12/03 16:00、作業場所:店舗1、作業内容:入荷、モノID:PC1」という履歴情報を引数に起動すると、次のようになる。
モノ属性テーブルT1700を用いて、モノIDがPC1であるため、モノ種類がPCであることを検索する。そして、工程テーブルT1100のレコードを検索し、モノ種類、作業場所、作業内容をマッチングされて、「モノID:PC1、作業場所:店舗1、作業内容:入荷」である工程は、工程P41ということがわかる(ステップF1101)。なお、引数の履歴情報に工程IDが渡される場合には、モノ属性テーブルT1700や、工程テーブルT1100を用いずに、履歴情報から直接工程IDを取り出しても良い。
そして、履歴登録プログラムF1100が、履歴情報に対して、全履歴中で履歴を一意に識別する履歴IDを発行する。例えば、この履歴情報に対しては、H41という履歴IDを発行する。履歴IDを含んだ履歴情報を、履歴テーブルT1300に登録する。図7(b)の履歴H41のようになる(ステップF1102)。
そして、ステップF1103〜ステップF1106で、履歴H41と前工程の履歴との間の履歴関係を作成して、履歴関係テーブルに登録する。
先ず、工程関係テーブルT1200を用いて、工程P41の前工程を検索する。すると、「後工程ID:P41」である工程関係として、工程関係T1217と工程関係T1218の二つが見つかる。すなわち、前工程が存在する。なお、前工程が存在しない場合、すなわち、その製造に係る第一工程の場合は、前工程の履歴との履歴関係を作成するステップを飛ばす(ステップF1103)。
工程関係T1217「前工程ID:P31、後工程ID:P41」に関して、工程P31の履歴でのモノIDを取得する(ステップF1104)。履歴H41におけるモノIDはPC1で、工程P31と工程P41ではモノ種類は変化していない。よって、工程P31の履歴でのモノIDはPC1であろうと推測される。
また、工程関係T1218「前工程ID:P32、後工程ID:P41」に関して、工程P32の履歴でのモノIDを取得する(ステップF1104)。履歴H41におけるモノIDはPC1で、工程P32と工程P41ではモノ種類は変化していない。よって、工程P32の履歴でのモノIDはPC1であろうと推測される。
モノIDと工程IDにより、履歴を特定することができる。工程関係T1217に対応する履歴関係を検索する。履歴テーブルT1300を用いて、「モノID:PC1、工程ID:P31」であるような履歴を検索する。しかし、図7(b)の履歴テーブルT1300には、そのような履歴は見つからない。よって、工程関係T1217に対応する履歴関係は登録されていないことがわかる。次に、工程関係T1218に対応する履歴関係を検索する。履歴テーブルT1300を用いて、「モノID:PC1、工程ID:P32」である履歴を検索する。しかし、図7(b)の履歴テーブルT1300には、そのような履歴は見つからない。よって、工程関係T1218に対応する履歴関係は登録されていないことがわかる。以上より、工程関係T1217と工程関係T1218に対応する履歴関係がないことがわかる(ステップF1105)。
この結果、前工程の履歴を保留を表現するコードを用いて、履歴関係を履歴関係テーブルT1400に仮登録する。仮に、そのコードとして「Pending」を用いるとすると、図8(b)の履歴関係T1413のように、「前履歴ID:Pending、後履歴ID:H41」という履歴関係を作成して、履歴関係テーブルT1400に追加する(ステップF1106)。
次に、ステップF1108で、履歴H41と後工程の履歴との間の履歴関係を作成する。
先ず、工程関係テーブルT1200を用いて、工程P41の後工程を検索する。すると、「前工程ID:P41」である工程関係は見つからない。よって、後工程の履歴との履歴関係を作成するステップを飛ばす(ステップF1108)。
以上の処理により、履歴H41が登録され、履歴関係テーブルT1400は、図8(b)のようになる。
続いて、履歴登録プログラムF1100が、「作業日時:12/03 11:00、作業場所:センター1、作業内容:検品、モノID:PC1」という履歴情報を引数に起動すると、次のようになる。
履歴情報のうち、工程を特定する情報から、履歴がどの工程に属するかを取得する。履歴情報は工程P31に属することがわかる(ステップF1101)。
履歴情報を、履歴テーブルT1300に登録する。図7(c)に示された履歴テーブルT1300の履歴H31のようになる(ステップF1102)。
そして、ステップF1103〜ステップF1106で、履歴H31と前工程の履歴との間の履歴関係を作成する。
先ず、工程関係テーブルT1200を用いて、工程P31の前工程を検索する。すると、「後工程ID:P31」である工程関係として、工程関係T1214が見つかる(ステップF1103)。すなわち、前工程が存在する。
工程関係T1214「前工程ID:P21、後工程ID:P31」に関して、工程P21の履歴でのモノIDを取得する(ステップF1104)。履歴H31におけるモノIDはPC1で、工程P21と工程P31ではモノ種類は変化していない。よって、工程P21の履歴でのモノIDはPC1であろうと推測される。
次に、工程関係T1214に対応する履歴関係を検索する。履歴テーブルT1300を用いて、「モノID:PC1、工程ID:P21」である履歴を検索する。すると、履歴H21が見つかる。履歴関係テーブルT1400を用いて、「前履歴ID:H21」である履歴を検索する。すると、図8(b)の履歴関係T1412が見つかる(ステップF1105)。
これで、「前履歴ID:H21」の後の履歴がH31であることがわかったので、図7(c)の履歴関係T1412のように、Pending部分を履歴H31に書き換える(ステップF1106)。
次に、ステップF1108〜ステップF1112で、後工程の履歴との間の履歴関係を作成する。
工程関係テーブルT1200を用いて、工程P31の後工程を検索する。すると、「前工程ID:P31」である工程関係として、工程関係T1217が見つかる。すなわち、後工程が存在する(ステップF1108)。
工程関係T1217「前工程ID:P31、後工程ID:P41」に関して、工程P41の履歴でのモノIDを取得する(ステップF1109)。履歴H31におけるモノIDはPC1で、工程P31におけるモノ種類と工程P41におけるもの種類は変化していないので、工程P41の履歴でのモノIDはPC1であろうと推測される。
そして、工程関係T1217に対応する履歴関係を検索する。履歴テーブルT1300を用いて、「モノID:PC1、工程P41」である履歴を検索する。すると、履歴H41が見つかる。履歴関係テーブルT1400を用いて、「後履歴ID:H41」である履歴を検索する。すると、図7(b)の履歴関係T1413が見つかる(ステップF1110)。
これで、「後履歴ID:H41」の前の履歴が履歴H31であることがわかったので、図7(c)の履歴関係T1413のように、Pending部分を履歴H31に書き換える(ステップF1112)。
以上の処理により、履歴H31が登録され、履歴関係テーブルT1400は図7(c)のようになる。
次に、図10を用いて検索対象とするモノIDを引数として検索し、履歴情報を出力する処理について説明する。
検索プログラムF1200が、「モノID:PC1」を引数にして起動すると、次のようになる。
履歴テーブルT1300を用いて、「モノID:PC1」である履歴を検索する(ステップF1201)。すると、履歴H11、H21、H31、H41の四つが見つかる。この四つの履歴の中からまず一つの履歴を選択する。ここでは履歴H31を選択するとする。
ステップF1201で見つかった履歴のうち、履歴H31は未検索である(ステップF1202)。
履歴関係テーブルT1400を用いて、「後履歴ID:H31」である履歴関係を検索する(ステップF1203)。すると、履歴関係T1412「前履歴ID:H21、後履歴ID:H31」が見つかる。
また、履歴関係テーブルT1400を用いて、「後履歴ID:H21」である履歴関係を検索する(ステップF1203)。すると、履歴関係T1411「前履歴ID:H11、後履歴ID:H21」が見つかる。
履歴関係テーブルT1400を用いて、「後履歴ID:H11」である履歴関係を検索する(ステップF1203)。しかし、そのような履歴関係は見つからない。したがって、履歴H11が現在までの履歴の先頭である。このように前履歴をたどることにより、「履歴H11→履歴H21→履歴H31」であることがわかる。
次に、履歴関係テーブルT1400を用いて、「前履歴ID:H31」である履歴関係を検索する(ステップF1204)。すると、履歴関係T1413「前履歴ID:H31、後履歴ID:H41」が見つかる。
履歴関係テーブルT1400を用いて、「前履歴ID:H41」である履歴関係を検索する。しかし、そのような履歴関係は見つからない。このように後履歴をたどることにより、「履歴H31→履歴H41」であることがわかる。(ステップF1204)
ステップF1201で見つかった履歴のうち、未検索の履歴がないときに、検索を終了する(ステップF1202)。
以上の処理により、「履歴H11→履歴H21→履歴H31→履歴H41」がPC1の経路であることがわかる。
このPC1に関して検索した結果を、図11に示されように出力装置や通信装置を通して出力する。これにより、PC1がどのような工程をどのような順番で通ってきたかわかる。
〔実施形態2〕
以下、本発明に係る第二の実施形態を、図12ないし図16を用いて説明する。
工程管理において、作業がおこなわれたあとでも、履歴情報は必ずしも即座に反映されるものではなく、タイムラグがあったり、なんらかのトラブルにより更新されないときもある。本実施形態では、そのようなときに、工程と工程関係の設定情報を基にして、抜けている履歴を推定して表示するものである。
図12は、監視プログラムF1300の処理を示すフローチャートである。
図13は、本発明の第二の実施形態に係る推定履歴テーブルT1500の一例を示す図である。
図14は、本発明の第二の実施形態に係る推定履歴関係テーブルの一例を示す図である。
図15は、履歴推定プログラムF1400の処理を示すフローチャートである。
図16は、検索プログラムF1200を使って、PC1に関して検索した場合の検索結果の表示の一例である。
図8に示した履歴関係テーブルT1400において、前履歴IDがPendingで、後履歴が登録されている履歴関係が存在するということは、前履歴の作業は終了しているが、前履歴の履歴情報がシステムにまだ届いていないことを意味している。
図8(b)に示されている状況、すなわち、履歴登録プログラムF1100により履歴H11、H21、H41が登録され、履歴H31がまだ登録されていない状況での、監視プログラムF1300の動作は、次のようになる。
履歴関係テーブルT1400を用いて、「前履歴ID:Pending」であるような履歴関係を検索する(ステップF1301)。すると、履歴関係T1413が見つかる。
履歴関係T1413は、「前履歴ID:Pending、後履歴ID:H41」である。履歴H41の作業日時から現在までの時間が、システムによって決められた警告時間を超えているかどうかを調べる(ステップF1302)。このときには、履歴テーブルT1300の作業日時の項目と、工程関係テーブルT1200の推定時間差の項目が参照される。
警告時間を超えている場合は、警告を発したり、履歴関係T1413を引数にして履歴推定プログラムF1400を起動するなど、システムによって決められたアクションを実行をする(ステップF1303)。
次に、履歴関係テーブルT1400を用いて、他の「前履歴ID:Pending」である履歴関係を検索する(ステップF1301)。そのような履歴関係が見つからない場合は、終了となる。
監視プログラムF1300は、これを定期的に実行し、履歴の未到着時間が警告時間を超えているものに対してアクションを実行する。
以下では、規定のアクションとして、あるモノIDに対して履歴を推定して出力する手順について説明する。
履歴の推定をおこなうときには、これまで説明してきたテーブルに加えて、推定履歴テーブルT1500と、推定履歴関係テーブルT1600が用いられる。
推定履歴テーブルT1500は、図13に示されるように全履歴中で履歴を一意に識別する「履歴ID」と、作業がおこなわれたと考えられる日時の範囲を示す「推定作業日時」と、作業がおこなわれた場所を示す「作業場所」と、作業をおこなった対象となるモノを示す「モノID」と、作業でおこなった内容を示す「作業内容」と、作業が属する工程を示す「工程ID」などの項目を有する。例えば、推定履歴HX31は、「センター1において、PC1に対して検品作業をおこなったという履歴があるということが推測され、作業は12/03 10:00から12/03 12:00までの間におこなわれたであろうと推測される」ということを示している。推定履歴テーブルT1500は、種別などの項目を設けて、履歴と推定履歴の区別をつけることができれば、履歴テーブルT1300と同一にしても良い。推定履歴テーブルT1500は、後に説明するように履歴推定プログラムF1400により、データを登録する。
推定履歴関係テーブルT1600は、図14に示されるように遷移前の履歴を示す「前履歴ID」と、遷移後の履歴を示す「後履歴ID」など項目を有する。
推定履歴関係テーブルT1600は、種別などの項目を設けて履歴関係と推定履歴関係の区別をつけることができれば、履歴関係テーブルT1400と同一にしても良い。推定履歴関係テーブルT1600は、後に説明するように履歴推定プログラムF1400により、データを登録する。
次に、図15を用いて履歴推定プログラムF1400の処理を説明する。
図15Aが履歴推定プログラムF1400のメイン部分で、図15Bが工程履歴列検索サブルーチン部分である。なお、工程履歴列検索サブルーチンは、再起呼び出しをおこなっていることに注意を要する。
先ず、履歴推定プログラムF1400は、履歴関係を引数にして起動する。「工程履歴列検索」サブルーチンは、引数で渡す履歴から一番近い過去の履歴を検索し、引数で渡す履歴から見つかった履歴までのパスを工程履歴列として返す。
工程履歴列とは、「履歴ID」または「工程ID(モノID)」を要素と持つリスト構造である。例えば、履歴H21、工程P31(PC1)、履歴H41を要素として持つ工程履歴列は、仮に[H21,P31(PC1),H41]と表記する。「工程P31(PC1)」とは、工程P31での履歴で、PC1に関するものという意味である。
履歴推定プログラムF1400は、履歴の推定をおこなう際に、工程テーブルT1100と工程関係テーブルT1200を使用する。工程テーブルT1100により、作業場所や作業内容などを推定することができる。また、工程関係テーブルT1200の推定時間は、前後工程の履歴との時間の差を定義しているので、前後工程の履歴を利用して作業日時を推定することができる。
監視プログラムF1300より、履歴推定プログラムF1400が、履歴関係T1413を引数にして起動されると、次のようになる。
履歴関係T1413のPendingでない履歴はH41である。履歴H41では、モノIDがPC1、工程IDがP41である。「モノID:PC1、工程ID:P41、工程履歴列:[H41]」を引数として、サブルーチン「工程履歴列検索」を起動する(ステップF1401)。
工程P41の前工程を検索する。工程関係テーブルT1200を用いて、「後工程ID:P41」である工程関係を検索すると、工程関係T1217と工程関係T1218の二つが見つかる(ステップF1411(A))。よって、前工程が存在する。ここで、ステップF1411(A)は、ステップF1411は、再起呼出しで呼ばれる他のステップと区別するための表記である。
ステップF1411(A)での検索で見つかった工程関係T1217「前工程ID:P31、後工程ID:P41」は未導出である(ステップF1412)。
未導出のときは、工程P31の履歴でのモノIDを取得する(ステップF1413)。工程P41の履歴でのモノIDはPC1で、工程P31と工程P41ではモノ種類は変化してない。よって、工程P31でのモノIDはPC1であろうと推測される。
工程P31の履歴を検索する。履歴テーブルT1300を用いて、「モノID:PC1、工程ID:P31」である履歴を検索する(ステップF1414)。しかし、そのような履歴は見つからない。
「モノID:PC1、工程ID:P31、工程履歴列:[P31(PC1),H41]」を引数として、工程履歴列検索サブルーチンを起動する(ステップF1415)。すなわち、工程履歴列検索サブルーチンは再起呼び出しされる。
先ず、工程P31の前工程を検索する(ステップF1411(B))。工程関係テーブルT1200を用いて、「後工程ID:P31」である工程関係を検索すると、工程関係T1214が見つかる。よって、前工程が存在する。
ステップF1411(B)で見つかった工程関係T1214「前工程ID:P21、後工程ID:P31」は未導出である。(ステップF1412)
未導出のときは、工程P21の履歴でのモノIDを取得する(ステップF1413)。工程P31の履歴でのモノIDはPC1で、工程P21と工程P31ではモノ種類は変化していない。よって、工程P21でのモノIDはPC1であろうと推測される。
次に、工程P21の履歴を検索する。履歴テーブルT1300を用いて、「モノID:PC1、工程ID:P21」である履歴を検索する(ステップF1414)。すると、履歴H21が見つかる。
次に、工程関係T1214に対応する履歴関係を検索する。履歴テーブルT1300と、履歴関係テーブルT1400を用いて、「前履歴ID:H21、後履歴の工程ID:P31」である履歴関係を検索する(ステップF1417)。しかし、そのような履歴関係は見つからない。
工程履歴列[H21,P31(PC1),H41]をメモリに保存する(ステップF1418)。これが、工程履歴列検索サブルーチンの戻り値となる。
そして、ステップF1411(B)での検索で見つかった履歴関係のうち、未導出のものはない。したがって、工程履歴列検索サブルーチンを終了する(ステップF1412)。これで、再起呼び出しされた工程履歴列検索サブルーチンが終了することになる(F1415の呼び出し終了)。
次に、ステップF1411(A)での検索で見つかった工程関係T1218「前工程ID:P32、後工程ID:P41」は未導出である(ステップF1412)。
未導出のときは、工程P32の履歴でのモノIDを取得する(ステップF1413)。工程P41の履歴でのモノIDはPC1で、工程P32と工程P41ではモノ種類は変化していない。よって、工程P32でのモノIDはPC1であろうと推測される。
次に、工程P32の履歴を検索する。履歴テーブルT1300を用いて、「モノID:PC1、工程ID:P32」である履歴を検索する(ステップF1414)。しかし、そのような履歴は見つからない。
「モノID:PC1、工程ID:P32、工程履歴列:[P32(PC1),H41]」を引数として、工程履歴列検索サブルーチンを起動する(ステップF1415)。すなわち、工程履歴列検索サブルーチンは再起呼び出しされる。
先ず、工程P32の前工程を検索する(ステップF1411(C))。工程関係テーブルT1200を用いて、「後工程ID:P32」である工程関係を検索すると、工程関係T1215と工程関係T1216の二つが見つかる。よって、前工程が存在する。
ステップF1411(C)で見つかった工程関係T1215「前工程ID:P21、後工程ID:P32」は未導出である(ステップF1412)。
未導出のときは、工程P21の履歴でのモノIDを取得する(ステップF1413)。工程P32の履歴でのモノIDはPC1で、工程P21と工程P32ではモノ種類は変化していない。よって、工程P21でのモノIDはPC1であろうと推測される。
次に、工程P21の履歴を検索する。履歴テーブルT1300を用いて、「モノID:PC1、工程ID:P21」である履歴を検索する(ステップF1414)。すると、履歴H21が見つかる。
次に、工程関係T1215に対応する履歴関係を検索する(ステップF1417)。履歴テーブルT1300と、履歴関係テーブルT1400を用いて、「前履歴ID:H21、後履歴の工程ID:P32」である履歴関係を検索する。しかし、そのような履歴関係は見つからない。
したがって、工程履歴列[H21,P32(PC1),H41]をメモリに保存する(ステップF1418)。これが、工程履歴列検索の戻り値となる。
次に、ステップF1411(C)で見つかった工程関係T1216「前工程ID:P22、後工程ID:P32」は未導出である(ステップF1412)。
未導出のときは、工程P22の履歴でのモノIDを取得する(ステップF1413)。工程P32の履歴でのモノIDはPC1で、工程P22と工程P32ではモノ種類は変化していない。よって、工程P22でのモノIDはPC1であろうと推測される。
次に、工程P22の履歴を検索する(ステップF1414)。履歴テーブルT1300を用いて、「モノID:PC1、工程ID:P22」である履歴を検索する。しかし、そのような履歴は見つからない。
したがって、再び「モノID:PC1、工程ID:P22、工程履歴列:[P22(PC1),P32(PC1),H41]」を引数として、工程履歴列検索サブルーチンを起動する(ステップF1415)。すなわち、再び、工程履歴列検索サブルーチンは、再起呼出しされる。
先ず、工程P22の前工程を検索する(ステップF1411(D))。工程関係テーブルT1200を用いて、「後工程ID:P22」である工程関係を検索すると、工程関係T1212と工程関係T1213の二つが見つかる。
このとき、ステップF1411(D)での検索で見つかった工程関係T1212「前工程ID:P11、後工程ID:P22」は未導出である(ステップF1412)。
未導出のときは、工程P11の履歴でのモノIDを取得する(ステップF1413)。工程P22の履歴でのモノIDはPC1で、工程P11と工程P22ではモノ種類は変化していない。よって、工程P11でのモノIDはPC1であろうと推測される。
次に、工程P11の履歴を検索する。履歴テーブルT1300を用いて、「モノID:PC1、工程ID:P11」である履歴を検索する(ステップF1414)。すると、履歴H11が見つかる。
次に、工程関係T1212に対応する履歴関係を検索する(ステップF1417)。履歴テーブルT1300と履歴関係テーブルT1400を用いて、「前履歴ID:H11、後履歴の工程ID:P22」である履歴関係を検索する。しかし、そのような履歴関係は見つからない。
したがって、工程履歴列[H11,P22(PC1),P31(PC1),H41]をメモリに保存する(ステップF1418)。これが、工程履歴列サブルーチンの戻り値である。
次に、ステップF1411(D)での検索で見つかった工程関係T1213「前工程ID:P12、後工程ID:P22」は未導出である(ステップF1412)。
未導出のときは、工程P12の履歴でのモノIDを取得する(ステップF1413)。工程P22の履歴でのモノIDはPC1で、工程P12と工程P22ではモノ種類は変化していない。よって、工程P12でのモノIDはPC1であろうと推測される。
次に、工程P12の履歴を検索する(ステップF1414)。履歴テーブルT1300を用いて、「モノID:PC1、工程ID:P12」である履歴を検索する。しかし、そのような履歴は見つからない。
したがって、「モノID:PC1、工程ID:P12、工程履歴列:[P12(PC1),P22(PC1),P31(PC1),H41]」を引数として、工程履歴列検索サブルーチンを起動する(ステップF1415)。すなわち、再び、工程履歴列検索サブルーチンが再起呼出しされる。
次に、工程P12の前工程を検索する(ステップF1411(E))。工程関係テーブルT1200を用いて、「後工程ID:P12」である工程関係を検索すると、そのような工程関係は見つからない。よって、前工程は存在しない。
したがって、工程履歴列[P12(PC1),P22(PC1),P31(PC1),H41]をメモリに保存する(ステップF1416)。これが工程履歴列検索サブルーチンの戻り値である。工程履歴列検索サブルーチンを終了する(ステップF1415の呼出し終了)。
ステップF1411(D)での検索で見つかった履歴関係のうち、未導出のものはない(ステップF1412)。工程履歴列検索サブルーチンを終了する(ステップF1415の呼出し終了)。
ステップF1411(C)での検索で見つかった履歴関係のうち、未導出のものはない(ステップF1412)。工程履歴列検索サブルーチンを終了する(ステップF1415の呼出し終了)。
ステップF1411(A)での検索で見つかった履歴関係のうち、未導出のものはない(ステップF1412)。工程履歴列検索サブルーチンを終了する。
このようにして、工程履歴列検索サブルーチン実行によってメモリに保存された工程履歴列は、[H21,P31(PC1),H41]、[H21,P32(PC1),H41]、[H11,P22(PC1),P32(PC1),H41]、[P12(PC1),P22(PC1),P32(PC1),H41]の四つである。
ここまでで、図2(a)の工程関係を基にして推測される履歴H41の前の作業となる推定履歴がわかったことになる。そして、工程履歴列の中に、先頭要素が履歴となる工程履歴列は、[H21,P31(PC1),H41]、[H21,P32(PC1),H41]、[H11,P22(PC1),P32(PC1),H41]の三つがある。先頭要素が履歴となっていないということは、その工程のパスは、これまでに履歴情報としての登録がなかったことを意味する。したがって、履歴が登録されたパスに比べて、作業がおこなわれた可能性は低いと考えられる。
よって、先頭要素が履歴のものがある場合には、先頭要素が履歴となっていないものは、推定履歴の候補から外すことにする。
なお、先頭要素が履歴となる工程履歴列がない場合、すなわち、すべての工程履歴列の先頭要素が工程の場合は、工程履歴列を候補から外すステップを飛ばし(ステップF1402)、それらを候補となる工程履歴列とする。
もし、先頭要素が工程となる工程履歴列を採用すると、通らない履歴が出てきてしまう。そのため、工程履歴列の中で、先頭要素が工程となる工程履歴列を取り除く。工程履歴列[P12(PC1),P22(PC1),P32(PC1),H41]の先頭要素P12は工程である。よって、残る工程履歴列は、[H21,P31(PC1),H41]、[H21,P32(PC1),H41]、[H11,P22(PC1),P32(PC1),H41]の三つとなる(ステップF1403)。
工程履歴列[H21,P31(PC1),H41]、[H21,P32(PC1),H41]、[H11,P22(PC1),P32(PC1),H41]の先頭要素はH11とH21である。履歴H11とH21の工程は、それぞれ工程P11とP21であり、工程P11から工程P21へのパスが存在するが、工程P21から工程P11へのパスは存在しない。もし、工程履歴列[H11,P22(PC1),P32(PC1),H41]を採用すると、工程P21から工程P11へのパスが存在しないため、履歴H21を通らなくなってしまう。一方、工程履歴列[H21,P31(PC1),H41]や[H21,P32(PC1),H41]を採用した場合は、工程P11から工程P12へのパスが存在するため、履歴H11を通らないということはない。
これらを考慮すると、工程履歴列[H11,P22(PC1),P32(PC1),H41]の可能性は、他の二つに比べて低いことがわかる。よって、工程履歴列[H11,P22(PC1),P32(PC1),H41]を候補から取り除く(ステップF1404)。残る工程履歴列は[H21,P31(PC1),H41]、[H21,P32(PC1),H41]の二つとなる。
次に、得られた候補となる工程履歴列から推定履歴を作成する(F1405)。
先ず、工程履歴列[H21,P31(PC1),H41]の工程P31の履歴を推定する。推定する履歴に対して、全履歴中で履歴を一意に識別する履歴ID:HX31を発行する。工程P31の履歴でのモノIDはPC1である。工程テーブルT1100より、工程P31の履歴は「作業場所:センター1、作業内容:検品」と決まる。前履歴H21の作業日時「12/02 10:00」と、工程P21とP31の間(工程関係T1214)の推定時間「24時間」より、推定作業日時は「12/03 10:00」となる。後履歴H41の作業日時「12/03 16:00」と、工程P31とP41の間(工程関係T1217)の推定時間「6時間」より、推定作業日時は「12/03 12:00」となる。よって、推定作業日時は12/03 10:00から12/03 12:00までの間となる。総合して、履歴ID:HX31の内容として、図13に示されるように「履歴ID:HX31、推定作業日時:12/03 10:00〜12:00、作業場所:センター1、モノID:PC1、作業内容:検品、工程ID:P31」という推定履歴を作成し、推定履歴テーブルT1500に登録する。同様にして、工程履歴列 [H21,P32(PC1),H41]の工程P32に対して、推定履歴HX32として、図13に示されるように「履歴ID:HX32、推定作業日時:12/03 10:00−12:00、作業場所:センター2、モノID:PC1、作業内容:検品、工程ID:P32」という推定履歴を作成し、推定履歴テーブルT1500に登録する。
次に、推定された履歴を基にして、推定履歴関係を作成する(F1406)。
先ず、工程履歴列[H21,P31(PC1),H41]に対して、推定履歴関係を作成する。工程P31の推定履歴はHX31であるので、図14の推定履歴関係T1611と推定履歴関係T1612に示されるように「前履歴ID:H21、後履歴ID:HX31」と「前履歴ID:HX31、後履歴ID:H41」という推定履歴関係を作成し、推定履歴関係テーブルT1600に登録する。
同様にして、工程履歴列[H21,P31(PC1),H41]に対して、図14の推定履歴関係T1613と推定履歴関係T1614に示されるように「前履歴ID:H21、後履歴ID:HX32」と「前履歴ID:HX32、後履歴ID:H41」という推定履歴関係を作成し、推定履歴関係テーブルT1600に登録する。
以上の処理により、推定が完了する。
履歴の推定がおこなわれた状況で、検索プログラムF1200が、「モノID:PC1」を引数にして起動すると、次のようになる。
履歴テーブルT1300と、推定履歴テーブルT1500を用いて、「モノID:PC1」である履歴を検索する(図10のステップF1201)。すると、履歴H11、H21、H41の三つと、推定履歴HX31、HX32の二つの計五つが見つかる。この五つの履歴の中から、まず一つの履歴を選択する。ここでは、推定履歴HX31を選択するとする。
ステップF1201で見つかった履歴のうち、推定履歴HX31は未検索である(ステップF1202)。
次に、履歴関係テーブルT1400と、推定履歴関係テーブルT1600を用いて、「後履歴ID:HX31」である履歴関係を検索する(ステップF1203)。すると、推定履歴関係T1611「前履歴ID:H21、後履歴ID:HX31」が見つかる。
次に、履歴関係テーブルT1400と、推定履歴関係テーブルT1600を用いて、「後履歴ID:H21」である履歴関係を検索する(ステップF1203)。すると、履歴関係T1411「前履歴ID:H11、後履歴ID:HX21」が見つかる。
次に、履歴関係テーブルT1400と、推定履歴関係テーブルT1600を用いて、「後履歴ID:H11」である履歴関係を検索する(ステップF1203)。しかし、そのような履歴関係は見つからない。このように前履歴をたどることにより、「履歴H11→履歴H21→推定履歴HX31」であることがわかる。
また、履歴関係テーブルT1400と、推定履歴関係テーブルT1600を用いて、「前履歴ID:HX31」である履歴関係を検索する(ステップF1204)。すると、推定履歴関係T1612「前履歴ID:HX31、後履歴ID:H41」が見つかる。
次に、履歴関係テーブルT1400と、推定履歴関係テーブルT1600を用いて、「前履歴ID:H41」である履歴関係を検索する(ステップF1204)。しかし、そのような履歴関係は見つからない。このように後履歴をたどることにより、「推定履歴HX31→履歴H41」であることがわかる。
ステップF1201で見つかった履歴のうち、推定履歴HX32は未検索である。(ステップF1202)
次に、履歴関係テーブルT1400と、推定履歴関係テーブルT1600を用いて、「後履歴ID:HX32」である履歴関係を検索する(ステップF1203)。すると、推定履歴関係T1613「前履歴ID:H21、後履歴ID:HX32」が見つかる。
次に、履歴関係テーブルT1400と、推定履歴関係テーブルT1600を用いて、「後履歴ID:H21」である履歴関係を検索する(ステップF1203)。すると、履歴関係T1411「前履歴ID:H11、後履歴ID:HX21」が見つかる。
次に、履歴関係テーブルT1400と、推定履歴関係テーブルT1600を用いて、「後履歴ID:H11」である履歴関係を検索する(ステップF1203)。しかし、そのような履歴関係は見つからない。このように前履歴をたどることにより、「履歴H11→履歴H21→推定履歴HX32」であることがわかる。
次に、履歴関係テーブルT1400と、推定履歴関係テーブルT1600を用いて、「前履歴ID:HX32」である履歴関係を検索する(ステップF1204)。すると、推定履歴関係T1614「前履歴ID:HX32、後履歴ID:H41」が見つかる。
次に、履歴関係テーブルT1400と、推定履歴関係テーブルT1600を用いて、「前履歴ID:H41」である履歴関係を検索する(ステップF1204)。しかし、そのような履歴関係は見つからない。このように後履歴をたどることにより、「推定履歴HX32→履歴H41」であることがわかる。
ステップF1201で見つかった履歴のうち、未検索の履歴はない(ステップF1202)。よって、検索を終了する。
以上の処理により、「履歴H11→履歴H21→推定履歴HX31→履歴H41」または「履歴H11→履歴H21→推定履歴HX32→履歴H41」がPC1の経路であることがわかる。
検索プログラムF1200を使って、PC1に関して検索した場合の検索結果の表示を示すと、図16に示されるようになる。この表示では、PC1に関して推定した二つの経路を提示しており、また、それぞれの工程がいつおこなわれたかの推定日時も提示している。
〔実施形態3〕
以下、本発明に係る第三の実施形態を、図17ないし図20を用いて説明する。
これまでの実施形態は、モノが変化しない場合、すなわち単一の製造物を工程間で受け継ぐ場合について説明してきた。実際の工程では、合成、分解、梱包、開梱のようなモノの変化はしばしばおこりうる。本実施形態では、そのような場合の履歴情報の登録および履歴関係を作成する方法について説明する。ここでは、図2(b)に示されるように、演算装置とディスプレイからPCを組み立てる工程関係モデルを例にとることにする。
図17は、モノ関係テーブルT1800の一例を示す図である。
図18は、本発明の第三の実施形態に係る履歴関係テーブルT1400の生成の途中の様子を示す図である。
図19は、本発明の第三の実施形態に係る履歴関係テーブルT1400の一例を示す図である。
図20は、本発明の第三の実施形態に係る履歴の検索結果を作業順に出力した例を示す図である。
本実施形態では、工程間でモノが変化するもので、その関係を登録する必要がある。モノ関係テーブルT1800は、そのようなモノの関係情報を保持する保持すテーブルである。
モノ関係テーブルT1800は、図17に示されるように、遷移前のモノIDを示す「遷移前モノID」と、遷移後のモノIDを示す「遷移後モノID」などの項目を有する。例えば、モノ関係情報T1811は演算装置2がPC2に遷移することを、モノ関係情報T1812はディスプレイ2がPC2に遷移することを示している。そして、モノ関係情報T1811、T1812を合わせて、演算装置2とディスプレイ2からPC2ができることを示している。モノ関係テーブルT1800には、システム使用者があらかじめデータを登録しておく必要がある。
以下、既出の図9を用いて履歴登録プログラムF1100の処理を説明する。
履歴テーブルT1300は、図18(a)に示されるように、履歴H51、H53が登録され、履歴関係テーブルT1400は、図19(a)に示されような関係が登録されているものとする。
履歴登録プログラムF1100が、「作業日時:12/02 10:30、作業場所:工場1、作業内容:合成、モノID:PC2」の履歴情報を引数に起動すると、次のようになる。
履歴情報のうち、工程を特定する情報から、履歴がどの工程に属するかを取得する(ステップF1101)。工程テーブルT1100と、モノ属性テーブルT1700を用いて、「モノID:PC2、作業場所:工場1、作業内容:合成」である工程は、工程P55ということがわかる。
次に、履歴登録プログラムF1100が、履歴情報に対して、全履歴中で履歴を一意に識別する履歴IDを発行する(ステップF1102)。例えば、この履歴情報に対しては、H55という履歴IDを発行する。履歴IDを含んだ履歴情報を、履歴テーブルT1300に登録する。図18(b)の履歴H55のようになる。
そして、ステップF1103〜ステップF1106で、履歴H55と前工程の履歴との間の履歴関係を作成する。
先ず、工程関係テーブルT1200を用いて、工程P55の前工程を検索する(ステップF1103)。すると、「後工程ID:P55」である工程関係として、工程関係T1222と工程関係T1223の二つが見つかる。すなわち、前工程が存在する。この二つの履歴の中から、まず一つの履歴を選択する。ここでは履歴H55を選択するとする。
工程関係T1222「前工程ID:P52、後工程ID:P55」に関して、工程P52の履歴でのモノIDを取得する(ステップF1104)。履歴H55におけるモノIDはPC2で、工程P52におけるモノ種類は演算装置、工程P55におけるモノ種類はPCと、モノ種類は変化している。このとき、モノ属性テーブルT1700と、モノ関係テーブルT1800を用いて、「遷移前モノIDのモノ種類:演算装置、遷移後モノID:PC2」であるモノ関係を検索する。すると、モノ関係T1811が見つかる。工程P52の履歴でのモノIDは演算装置2である。また、工程関係T1223「前工程ID:P54、後工程ID:P55」に関して、工程P54の履歴でのモノIDを取得する。履歴H55におけるモノIDはPC2で、工程P54におけるモノ種類はディスプレイ、工程P55におけるモノ種類はPCと、モノ種類は変化している。モノ属性テーブルT1700と、モノ関係テーブルT1800を用いて、「遷移前モノIDのモノ種類:ディスプレイ、遷移後モノID:PC2」であるモノ関係を検索する。すると、モノ関係T1812が見つかる。工程P52におけるモノIDは、ディスプレイ2である。なお、前履歴でのモノIDから後履歴でのモノIDを作成するような手段がある場合は、モノ関係テーブルT1800がなくても良い。例えば、演算装置AAAとディスプレイBBBから作成するPCに対して、AAABBBというモノIDをつけるとする。この場合、演算装置とディスプレイでのモノIDがわかれば、自動的にPCのモノIDを得ることができる。また、PCのモノIDから、演算装置でのモノIDと、ディスプレイでのモノIDを得ることもできる。
次に、工程関係T1222に対応する履歴関係を検索する(ステップF1105)。履歴テーブルT1300を用いて、「モノID:演算装置2、工程ID:P52」であるような履歴を検索する。しかし、そのような履歴は見つからない。よって、工程関係T1222に対応する履歴関係は登録されていないことがわかる。また、工程関係T1223に対応する履歴関係を検索する。履歴テーブルT1300を用いて、「モノID:ディスプレイ2、工程ID:P54」である履歴を検索する。しかし、そのような履歴は見つからない。よって、工程関係T1223に対応する履歴関係は登録されていないことがわかる。以上より、工程関係T1222と工程関係T1223に対応する履歴関係がないことがわかる。
次に、前工程の履歴を保留を表現するコードを用いて、履歴関係を履歴関係テーブルT1400に仮登録する。工程関係T1222と工程関係T1223は同じグループG1に属するので、工程関係T1222に対応する履歴関係と、工程関係T1223に対応する履歴関係は、どちらも必要であり、二つの履歴関係を仮登録することになる。図17(b)の履歴関係T1423のように「前履歴ID:Pending、後履歴ID:H55」という履歴関係と、図19(b)の履歴関係T1424のように「前履歴ID:Pending、後履歴ID:H55」という履歴関係を作成し、履歴関係テーブルT1400に登録する(ステップF1107)。
そして、ステップF1108〜ステップF1111で、履歴H55と後工程の履歴との間の履歴関係を作成する。
先ず、工程関係テーブルT1200を用いて、工程P55の後工程を検索する(ステップF1108)。すると、「前工程ID:P55」である工程関係として、工程関係T1224が見つかる。すなわち、後工程が存在する。
工程関係T1224「前工程ID:P55、後工程ID:P56」に関して、工程P56の履歴でのモノIDを取得する(ステップF1109)。工程P55の履歴でのモノIDはPC2で、工程P55とP56ではモノ種類は変化していない。よって、工程P56の履歴でのモノIDはPC2であろうと推測される。
次に、工程関係T1224に対応する履歴関係を検索する。履歴テーブルT1300を用いて、「モノID:PC2、工程ID:P56」である履歴を検索する(ステップF1110)。しかし、そのような履歴は見つからない。よって、工程関係T1224に対応する履歴関係は登録されていないことがわかる。
次に、後工程の履歴を保留を表現するコードを用いて、履歴関係を履歴関係テーブルT1400に仮登録する。図19(b)の履歴関係T1425のように、「前履歴ID:H55、後履歴ID:Pending」という履歴関係を作成する(ステップF1111)。
以上の処理により、履歴H55が登録され、履歴関係テーブルT1400は図19(b)のようになる。
続いて、履歴登録プログラムF1100が、履歴H52の履歴情報を引数に実行すると、履歴テーブルT1300は、図18(c)に示されるようになり、履歴関係テーブルT1400は、図19(c)に示されるようになる。
続いて、履歴登録プログラムF1100が、履歴H54の履歴情報を引数に実行し、その後、履歴H56の履歴情報を引数に実行すると、履歴テーブルT1300は、図18(d)に示されるようになり、履歴関係テーブルT1400は、図19(d)に示されるようになる。
そして、履歴テーブルT1300と、推定履歴テーブルT1500を用いて、「モノID:PC2」である履歴を検索する(図10のステップF1201)。すると、履歴H55、H56の二つが見つかる。
ステップF1201で見つかった履歴のうち、履歴H55は未検索である(ステップF1202)。
そこで、履歴関係テーブルT1400を用いて、「後履歴ID:H55」である履歴関係を検索する(ステップF1203)。すると、履歴関係T1453と履歴関係T1454の二つが見つかる。
次に、ステップF1203の検索で見つかった履歴関係T1453「前履歴ID:H52、後履歴ID:H55」に関して、履歴関係テーブルT1400を用いて、「後履歴ID:H52」である履歴関係を検索する(ステップF1203)。すると、履歴関係T1411「前履歴ID:H51、後履歴ID:H52」が見つかる。
次に、履歴関係テーブルT1400を用いて、「後履歴ID:H51」である履歴関係を検索する(ステップF1203)。しかし、そのような履歴関係は見つからない。このように前履歴をたどることにより、「履歴H51→履歴H52→履歴H55」であることがわかる。
次に、ステップF1203の検索で見つかった履歴関係T1454「前履歴ID:H54、後履歴ID:H55」に関して、履歴関係テーブルT1400を用いて、「後履歴ID:H54」である履歴関係を検索する(ステップF1203)。すると、履歴関係T1411「前履歴ID:H51、後履歴ID:H52」が見つかる。
次に、履歴関係テーブルT1400を用いて、「後履歴ID:H53」である履歴関係を検索する(ステップF1203)。しかし、そのような履歴関係は見つからない。このように前履歴をたどることにより、「履歴H53→履歴H54→履歴H55」であることがわかる。
次に、履歴関係テーブルT1400と、推定履歴関係テーブルT1600を用いて、「前履歴ID:H55」である履歴関係を検索する(ステップF1204)。すると、推定履歴関係T1614「前履歴ID:H55、後履歴ID:H56」が見つかる。
次に、履歴関係テーブルT1400を用いて、「前履歴ID:H56」である履歴関係を検索する(ステップF1204)。しかし、そのような履歴関係は見つからない。このように後履歴をたどることにより、「履歴H55→履歴H56」であることがわかる。
ステップF1201で見つかった履歴のうち、未検索な履歴はない(ステップF1202)。よって、検索を終了する。
以上の処理により、「履歴H51→履歴H52→履歴H55→履歴H56」および「履歴H53→履歴H54→履歴H55→履歴H56」がPC2の経路であることがわかる。
このPC1に関して検索した結果を、図20に示されように出力装置や通信装置を通して出力する。これにより、PC2が演算装置2とディスプレイ2からできており、それぞれがどのような経路を通ってきたかがわかる。
〔実施形態4〕
以下、本発明に係る第四の実施形態を、図21および図22を用いて説明する。
本実施形態は、第三の実施形態と同じく工程間でモノが変化する場合で、抜けている履歴を推定する方法である。
図21は、本発明の第四の実施形態に係る推定履歴テーブルT1500の一例を示す図である。
図22は、本発明の第四の実施形態に係る推定履歴関係テーブルの一例を示す図である。
ここで、履歴関係テーブルT1400は、図19(c)に示されるように履歴H51、H52、H53、H55が登録されている状況であったとする。
履歴関係T1424は、前履歴IDがPendingで、後履歴IDがあるため、前履歴の作業は終了しているが、まだ登録されていないことがわかる。
履歴推定プログラムF1400が、履歴関係T1424を引数にして起動すると、次のようになる。
履歴関係T1424のPendingでない履歴はH55である。履歴H55では、モノIDがPC2、工程IDがP55である。「モノID:PC2、工程ID:P55、工程履歴列:[H55]」を引数として、サブルーチン「工程履歴列検索」を起動する(図15AのステップF1401)。
工程P55の前工程を検索する。工程関係テーブルT1200を用いて、「後工程ID:P55」である工程関係を検索すると(図15BのステップF1411(A))、工程関係T1222と工程関係T1223の二つが見つかる。よって、前工程が存在する。
ステップF1411(A)での検索で見つかった工程関係T1222「前工程ID:P52、後工程ID:P55」は未導出である(ステップF1412)。
このとき、工程P52の履歴でのモノIDを取得する(ステップF1413)。工程P55の履歴でのモノIDはPC2で、工程P52におけるモノ種類は演算装置、工程P55におけるモノ種類はPCと、モノ種類は変化している。モノ属性テーブルT1700と、モノ関係テーブルT1800を用いて、「遷移前モノIDのモノ種類:演算装置、遷移後モノID:PC2」であるモノ関係を検索する。すると、モノ関係T1811が見つかる。工程P52の履歴でのモノIDは、演算装置2である。
次に、工程P52の履歴を検索する(ステップF1414)。履歴テーブルT1300を用いて、「モノID:演算装置2、工程ID:P52」である履歴を検索する。すると、履歴H52が見つかる。
次に、工程関係T1222に対応する履歴関係を検索する(ステップF1417)。履歴テーブルT1300と、履歴関係テーブルT1400を用いて、「前履歴ID:H52、後履歴の工程ID:P55」な履歴関係を検索する。すると、履歴関係T1423が見つかる。
ステップF1411(A)での検索で見つかった工程関係T1223「前工程ID:P54、後工程ID:P55」は未導出である(ステップF1412)。
次に、工程P54の履歴でのモノIDを取得する(ステップF1413)。履歴H55におけるモノIDはPC2で、工程P54におけるモノ種類はディスプレイ、工程P55におけるモノ種類はPCと、モノ種類は変化している。そこで、モノ属性テーブルT1700と、モノ関係テーブルT1800を用いて、「遷移前モノIDのモノ種類:ディスプレイ、遷移後モノID:PC2」なるモノ関係を検索する。すると、モノ関係T1812が見つかる。工程P52におけるモノIDは、ディスプレイ2である。
次に、工程P54の履歴を検索する(ステップF1414)。履歴テーブルT1300を用いて、「モノID:ディスプレイ2、工程ID:P54」な履歴を検索する。しかし、そのような履歴は見つからない。
「モノID:ディスプレイ2、工程ID:P54、工程履歴列:[P54(ディスプレイ2),H55]」を引数として、工程履歴列検索サブルーチンを起動する(ステップF1415)。すなわち、工程履歴列検索サブルーチンは再起呼出しされる。
次に、工程P54の前工程を検索する(ステップF1411(B))。工程関係テーブルT1200を用いて、「後工程ID:P54」である工程関係を検索すると、工程関係T1221が見つかる。よって、前工程が存在する。
ステップF1411(B)で見つかった工程関係T1221「前工程ID:P53、後工程ID:P54」は未導出である(ステップF1412)。
このとき、工程P53の履歴でのモノIDを取得する(ステップF1413)。履歴H54におけるモノIDはディスプレイ2で、工程P53と工程P54ではモノ種類は変化していない。よって、工程P53におけるモノIDは、ディスプレイ2であろうと推測される。
次に、工程P53の履歴を検索する(ステップF1414)。履歴テーブルT1300を用いて、「モノID:ディスプレイ2、工程ID:P53」である履歴を検索する。すると、履歴H53が見つかる。
そして、履歴テーブルT1300と、履歴関係テーブルT1400を用いて、「前履歴ID:H53、後履歴の工程ID:P54」である履歴関係を検索する(ステップF1417)。しかし、そのような履歴関係は見つからない。
そこで、工程履歴列[H53,P54(ディスプレイ2),H55]をメモリに保存する(ステップF1418)。これが、工程履歴列サブルーチンの戻り値である。
ステップF1411(B)での検索で見つかった履歴関係のうち、未導出のものはない。そこで、工程履歴列検索サブルーチンを終了する(ステップF1412)。これで、再起呼び出しされた工程履歴列検索サブルーチンが終了することになる(F1415の呼び出し終了)。
次に、ステップF1411(A)での検索で見つかった履歴関係のうち、未導出のものはない。工程履歴列検索サブルーチンを終了する(ステップF1412)。
このようにして、工程履歴列検索サブルーチンの実行によってメモリに保存された工程履歴列は、[H53,P54(ディスプレイ2),H55]である。工程履歴列[H53,P54(ディスプレイ2),H55]は先頭要素が履歴となる工程履歴列である。
工程履歴列の中で、先頭要素が工程となる工程履歴列を候補から外す(ステップF1402)。工程履歴列[H53,P54(ディスプレイ2),H55]は先頭要素が工程ではないので候補から外されない。残る工程履歴列は[H53,P54(ディスプレイ2),H55]となる(ステップF1403)。
工程履歴列は[H53,P54(ディスプレイ2),H55]の一つだけなので、この工程履歴列を採用することにより、通らなくなる履歴が発生することはないので、候補から外されない(ステップF1404)。したがって、残る工程履歴列は[H53,P54(ディスプレイ2),H55]となる。
次に、工程履歴列[H53,P54(ディスプレイ2),H55]の工程P54の履歴を推定する(ステップF1405)。推定する履歴に対して、全履歴中で履歴を一意に識別する履歴ID:HX54を発行する。工程P54でのモノIDはディスプレイ2である。工程テーブルT1100より、工程P54の履歴は、「作業場所:工場1、作業内容:出庫」と決まる。前履歴H53の作業日時「12/01 10:00」と、工程P53とP54の間(工程関係T1221)の推定時間「1週間」より、推定作業日時は「12/08 10:00」となる。後履歴H55の作業日時「12/02 10:30」と、工程P54とP55の間(工程関係T1223)の推定時間「30分」より、推定作業日時は「12/02 10:00」となる。前工程P54での作業日時が、後工程P55での作業日時より後になることはないことを踏まえると、推定作業日時は12/02 10:00から12/02 10:30までの間となる。総合して、「履歴ID:HX54、推定作業日時:12/02 10:00−10:30、作業場所:工場1、モノID:ディスプレイ2、作業内容:出庫、工程ID:P54」という推定履歴を作成し、推定履歴HX54として、図21に示されるように推定履歴テーブルT1500に登録する。
次に、工程履歴列[H53,P54(ディスプレイ2),H55]に対して、推定履歴関係を作成する(ステップF1406)。工程P54の推定履歴はHX54であるので、「前履歴ID:H53、後履歴ID:HX54」と「前履歴ID:HX54、後履歴ID:H55」という推定履歴関係を作成して、図21の推定履歴関係T1621と推定履歴関係T1622に示されるように、推定履歴関係テーブルT1600に登録する。
以上の処理により、推定が完了する。
〔実施形態5〕
以下、本発明の第五の実施形態を、図23および図24を用いて説明する。
第一の実施形態で、履歴テーブルと履歴関係テーブルを設定する方法について説明したが、本実施形態は、履歴関係テーブル作成のための一変形方法であるということができる。
図23は、本発明の第五の実施形態に係る履歴テーブルT1300の生成の途中の様子を示す図である。
図24は、本発明の第五の実施形態に係る履歴登録プログラムF1500の処理を示すフローチャートである。
本実施形態では、図23に示されるように、保留状態の履歴に対してPendingIDという識別子を振り当て、保留状態の履歴を区別する。
履歴登録プログラムF1500は、前工程から受け取ったPendingIDと、履歴情報を引数にして起動する。
第一工程の履歴を登録するときは、前工程がないため、PendingIDはない。履歴登録プログラムF1500が、「PendingID:なし」および「作業日時:12/01 10:00、作業場所:工場1、作業内容:入庫、モノID:演算装置2」という履歴を引数にして起動すると、次のようになる。
履歴情報のうち、工程を特定する情報から、履歴がどの工程に属するかを取得する(ステップF1501)。工程テーブルT1100と、モノ属性テーブルT1700を用いて、「モノID:演算装置2、作業場所:工場1、作業内容:入庫」である工程は、工程P51ということがわかる。なお、履歴情報に工程IDが渡される場合は、モノ属性テーブルT1700や、工程テーブルT1100を用いずに、履歴情報から直接工程IDを取り出しても良い。
次に、履歴登録プログラムF1500が、履歴情報に対して、全履歴中で履歴を一意に識別する履歴IDを発行する(ステップF1502)。例えば、この履歴情報に対しては、H51という履歴IDを発行する。履歴IDを含んだ履歴情報を履歴テーブルT1300に登録する。図6の履歴H51のようになる。
次に、履歴H51と前工程の履歴との間の履歴関係を作成する(ステップF1503)。
履歴登録プログラムF1500は、PendingIDを受け取っていない。よって、PendingIDを書き換えるステップを飛ばす(ステップF1503)。
そして、ステップF1505〜ステップF1506で、履歴H51と後工程の履歴との間の履歴関係を作成する。
先ず、工程関係テーブルT1200を用いて、工程P51の後工程を検索する(ステップF1505)。すると、「前工程ID:P51」である工程関係として、工程関係T1220が見つかる。つまり、後工程は存在する。なお、後工程が存在しない場合、つまり最終工程の場合は、後工程の履歴との履歴関係を作成するステップを飛ばす。
次に、履歴関係テーブルT1400に、工程関係T1220「前工程ID:P51、後工程ID:P52」に対応する履歴関係を仮登録する(ステップF1506)。履歴登録プログラムF1500が、工程P52における履歴に対して、仮履歴IDとしてPending1を割り当てる。図23(a)の履歴関係T1431のように、「前履歴ID:H51、後履歴ID:Pending1」という履歴関係を作成する。
以上の処理により、履歴H51の登録と履歴関係が作成され、出力としてPending1を受け取る。作業対象のモノを次の工程に移動させるときに、モノと一緒にPendingIDの情報も運ぶ。RFIDなどを使用する場合には、このPendingIDをRFIDなどに記憶させても良い。
続いて、履歴登録プログラムF1500が、「PendingID:Pending1」および「作業日時:12/02 10:00、作業場所:工場1、作業内容:出庫、モノID:演算装置2」という履歴を引数にして起動すると、次のようになる。
履歴情報のうち、工程を特定する情報から、履歴がどの工程に属するかを取得する(ステップF1501)。工程テーブルT1100と、モノ属性テーブルT1700を用いて、「モノID:演算装置2、作業場所:工場1、作業内容:出庫」である工程は、工程P52ということがわかる。
履歴登録プログラムF1500が、履歴情報に対して、全履歴中で履歴を一意に識別する履歴IDを発行する。例えば、この履歴情報に対しては、H52という履歴IDを発行する。履歴IDを含んだ履歴情報を履歴テーブルT1300に登録する(ステップF1502)。履歴H52は、図6に示されるになる。
そして、ステップF1503〜ステップF1504で、履歴H52と前工程の履歴との間の履歴関係を作成する。
履歴登録プログラムF1500は、Pending1を受け取っている(ステップF1503)。
履歴関係テーブルT1400のPending1部分を履歴H52に書き換える(ステップF1504)。 T1431は、図21(b)に示されるようになる。
そして、ステップF1505〜ステップF1506で、履歴H52と後工程の履歴との間の履歴関係を作成する。
先ず、工程関係テーブルT1200を用いて、工程P51の後工程を検索する(ステップF1505)。すると、「前工程ID:P52」である工程関係として、工程関係T1222が見つかる。すなわち、後工程が存在する。
次に、履歴関係テーブルT1400に、工程関係T1222「前工程ID:P52、後工程ID:P55」に対応する履歴関係を仮登録する(ステップF1506)。履歴登録プログラムF1500が、工程P55における履歴に対して、仮履歴IDとしてPending2を発行する。図23(b)の履歴関係T1432のように、「前履歴ID:H52、後履歴ID:Pending2」という履歴関係を作成する。
以上の処理により、履歴H52の登録と履歴関係がおこなわれ、出力としてPending2を受け取る。
続いて、履歴登録プログラムF1500により、履歴H53と履歴H54を登録すると、履歴関係テーブルT1400は、図23(c)のようになる。履歴H54を登録したときの実行結果として、Pending4を受け取る。
演算装置2とディスプレイ2からPC2を合成するときは、演算装置2よりPengind2と、ディスプレイ2よりPending4を受け取っている。履歴登録プログラムF1500が、「PendingID:Pending2,Pending4」および「作業日時:12/02 10:30、作業場所:工場1、作業内容:合成、モノID:PC2」という履歴を引数にして起動すると、次のようになる。
履歴情報のうち、工程を特定する情報から、履歴がどの工程に属するかを取得する(ステップF1501)。工程テーブルT1100と、モノ属性テーブルT1700を用いて、「モノID:PC2、作業場所:工場1、作業内容:合成」である工程は、工程P55ということがわかる。
次に、履歴登録プログラムF1500が、履歴情報に対して、全履歴中で履歴を一意に識別する履歴IDを発行する。例えば、この履歴情報に対しては、H55という履歴IDを発行する。履歴IDを含んだ履歴情報を履歴テーブルT1300に登録する(ステップF1502)。履歴H55は、図6に示されるようになる。
そこで、ステップF1503〜ステップF1504で、履歴H55と前工程の履歴との間の履歴関係を作成する。
履歴登録プログラムF1500は、Pending2およひPending4を受け取っている(ステップF1503)。
したがって、履歴関係テーブルT1400に対して、Pending2部分及びPending4部分を履歴H55に書き換える(ステップF1504)。すると、図23(d)のT1432およびT1434のようになる。
次に、ステップF1505〜ステップF1506で、履歴H55と後工程の履歴との間の履歴関係を作成する。
先ず、工程関係テーブルT1200を用いて、工程P55の後工程を検索する(ステップF1505)。すると、「前工程ID:P55」である工程関係として、工程関係T1224が見つかる。すなわち、後工程が存在する。
次に、履歴関係テーブルT1400に、工程関係T1224「前工程ID:P55、後工程ID:P56」に対応する履歴関係を仮登録する(ステップF1506)。履歴登録プログラムF1500が、工程P56における履歴に対して、仮履歴IDとしてPending5を発行する。図23(d)の履歴関係T1435のように、「前履歴ID:H55、後履歴ID:Pending5」という履歴関係を作成する。
以上の処理により、履歴H55の登録と履歴関係を作成し、出力としてPending5を受け取る。