以下の実施形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。
また、以下の実施形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。
同様に、以下の実施形態において、構成要素等の形状、位置関係等に言及するときは特に明示した場合および原理的に明らかにそうではないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
また、実施形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。ただし、同一の部材であっても環境変更等により変更前の部材と称呼を共有すると混乱を生ぜしめるおそれが高い場合、別の異なる符号や名称を付すことがある。以下、本発明の各実施形態について図面を用いて説明する。
一般的に、組立ラインの工程設計は、組立順序生成とラインバランシングの設計工程を経る。組立順序生成工程では、工程設計者は、組立情報ひいてはそれを決定づける設備や作業員を考慮に入れて、対象とする組立製品を構成する部品を組み立てる作業の順序を決定する。ラインバランシングでは、工程設計者は、組立作業を複数の工程に分割する工程分割と、工程を担当する生産リソースを決定するリソース構成を決定する。
組立順序の候補は、最大で部品数の階乗となる。ただし、部品隣接関係に基づく部品の幾何制約を充足する必要がある。例えば、ネジなどの締結部品の組み立ては、被締結部品が先に組み立てられている必要がある。
工程分割では、工程設計者は、組立順序に沿って、一つまたは複数の作業を工程という単位にまとめる。ここで、各工程は異なる生産リソースによって並行して実行されるため、最も作業時間の長い工程が組立ライン全体のタクトタイムを決定する。また各工程の作業時間ばらつきを小さくすることで非稼働時間が最小化される。ただし、各工程の作業時間は、工程を担当する生産リソースの能力に依存する。
リソース構成では、工程設計者は、各工程の作業を担当とする人やロボットなどのメインリソースを決定する。また、作業内容に応じて治工具やロボットハンドなどのサブリソース(従属するリソース)を決定する。能力の高いメインリソースを使用すれば作業時間は短くなることが期待されるが、一般的に能力の高いメインリソースほど投資コストや運用コストが高くなるため、工程全体の運用コストを比較して工程計画を行う必要がある。
本実施形態では、組立ラインの目標タクトタイムを充足し、運用コストを最小化する組立ラインの工程設計の生成を実現する、工程設計装置について説明する。
なお、特開2019-16165号公報には、「設計支援装置は、組立に複数の作業を要する製品についての、各作業の順序制約と、各作業の作業時間と、各作業についてのロボット作業可否とを受け取る受信部と、ロボット作業不可の各作業について、前記順序制約と前記ロボット作業可否とに基づいて、ロボット作業可にした場合のロボットによる連続作業数を第1指標として計算する第1指標計算部と、ロボット作業不可の各作業について、前記順序制約と前記作業時間と前記ロボット作業可否とに基づいて、ロボット作業可にした場合の配置自由度を第2指標として計算する第2指標計算部と、前記第1指標と前記第2指標とに基づく情報と、当該第1指標および第2指標の対象作業とを関連付けて提示する提示部と、を備える。」との記載がある。
しかし、上記の記載に係る技術では、ロボットの連続作業数を指標とした作業順序の決定と複数ロボットへ作業を割りあてる技術が記載されているものの、部品の形状に依存するロボットのハンド交換や人の作業性は未考慮であるため、人・ロボットの混成ラインを想定した最適な作業順序を生成することはできない。
本発明に係る実施形態では、組立ラインにおいて、様々なリソースが含まれる場合に、人やロボットなど複数の生産リソースを組み合わせた状態で運用コストを抑えた工程設計情報を生成する。
なお、以下の実施形態においては、「入力部」、「出力部」、「通信部」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/Oインターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
また、以下の説明では、「外部記憶装置」は、一つ以上の記憶デバイスの一例である一つ以上の永続記憶デバイスでよい。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVME(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。
また、以下の説明では、「記憶部」または「外部記憶装置」は、メモリと永続記憶装置のうちメモリかまたは両方であればよい。
また、以下の説明では、「処理部」または「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア記述言語によりゲートアレイの集合体である回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGA又はASIC)によって実現されてもよいし、それらの組合せによって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、「プログラム」や「処理部」を主語として処理を説明する場合があるが、プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。また、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のテーブルでもよいし、入力に対する出力を発生するニューラルネットワーク、遺伝的アルゴリズムやランダムフォレストに代表されるような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
また、以下の説明では、「生産ラインシステム」は、一つ以上の物理的な計算機で構成されたシステムでもよいし、物理的な計算リソース群(例えば、クラウド基盤)上に実現されたシステム(例えば、クラウドコンピューティングシステム)でもよい。生産ラインシステムが表示用情報を「表示する」ことは、計算機が有する表示デバイスに表示用情報を表示することであってもよいし、計算機が表示用計算機に表示用情報を送信することであってもよい(後者の場合は表示用計算機によって表示用情報が表示される)。
図1は、生産ラインシステムの構成例を示す図である。生産ラインシステム1は、製造現場(エリア)あるいは製造現場外の施設に設けられる。生産ラインシステム1には、図示しないネットワークを介して通信可能に接続された表示用計算機等の利用環境に応じた装置群が含まれる。
図示しないが、ネットワークは、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、VPN(Virtual Private Network)、インターネット等の一般公衆回線を一部または全部に用いた通信網、携帯電話通信網等、のいずれかまたはこれらの複合したネットワークである。なお、ネットワークは、Wi-Fi(登録商標)や5G(Generation)等の無線による通信網であってもよい。
工程計画装置100は、生産設備単位で、あるいは、生産設備を利用しない作業エリアでは生産リソース単位で、組立製品の組立てに係る作業工程を割り当てる。
図2は、製品概観の例を示す図である。組立製品200は、ベースとなる板状の部品の上に、計10個の部品を組み立てることで成立する製品である。組立製品200では、部品のタイプは平面板(P:Plate)と円柱(C:Cylinder)の2種類に分類されている。
工程計画装置100は、記憶部110と、処理部120と、通信部130と、入力部140と、出力部150と、を備える。記憶部110には、製品情報111と、リソース情報112と、部品・リソース組合せ情報113と、工程設計情報114と、が含まれる。また、製品情報111には、部品隣接関係情報1111と、部品仕様情報1112と、が含まれる。
図3は、部品隣接関係情報の例を示す図である。部品隣接関係情報1111は、組立製品200の部品隣接関係を先行順位グラフとして保持する例である。先行順位グラフの丸は部品を示しノード、ノード間をつなぐ矢印は部品の隣接関係から部品の組立順序を決定するエッジである。先行順位グラフは、部品の組立順序を決定する際の制約を表現する方法の一つである。エッジの矢印と接していないノードは分解可能な部品である。部品隣接関係情報1111の例では、部品IDが5、7、9、10の部品は初期状態で分解可能なノードである。例えば部品IDが5の部品205Cが分解されると、部品IDが4の部品と接する矢印がなくなるため、部品IDが4の部品も分解の候補に加わる。
分解順序を決定した後、その逆順を組立順序とすることができる。先行順位グラフの情報は、DOT言語を用いてデータ構造を保持してもよい。製品情報111として部品隣接関係を有することで、組立順序生成における制約をデータとして表現することができ、組立順序の候補を絞ることができる。
図4は、部品仕様情報の例を示す図である。部品仕様情報1112は、組立製品200の部品構成、部品仕様、部品位置関係を、表形式で保持する例である。部品構成として、各部品の部品ID1112aと員数1112bが記憶される。また、部品仕様として、各部品の形状に基づく分類、すなわち部品タイプ1112cと、部品の重量1112dと、が記憶される。また、部品位置関係として、各部品の取付位置1112eが記憶される。取付位置1112eは、組立製品200に設けた原点を基準点として、各部品の中心位置を原点からxyzの三軸方向の座標で表すものである。そのため、部品間の距離を算出することが可能である。
リソース情報112には、メインリソース仕様1121と、サブリソース仕様1122と、リソース組合せ制約1123と、が含まれる。
図5は、メインリソース仕様の例を示す図である。メインリソース仕様1121は、組立ラインにおいて組立作業の主体を担うメインリソースの候補とその仕様を定義する例である。メインリソース仕様1121には、リソースタイプ1121aと、リソース名1121bと、リソースID1121cと、耐荷重1121dと、初期投資コスト1121eと、減価償却期間1121fと、人件費1121gと、が含まれる。
リソースタイプ1121aは、メインリソースの所定のタイプが記憶される。リソースタイプがロボットの場合は、初期投資コスト1121eと減価償却期間1121fとを設定することで、使用期間における減価償却費を組立ラインの運用コストの一部として算出することができるようになる。また、リソースタイプ1121aが人の場合、人件費1121gを設定することで、人の作業時間に応じた人件費を組立ラインの運用コストの一部として算出することができるようになる。
リソース名1121bは、リソースの名称であるが、仕様が同じリソース間で個体を識別可能な名称である必要はない。リソースID1121cは、リソースの識別子であり、個体を識別可能である必要がある。耐荷重1121dは、サブリソースと接続する場合に、保持できる荷重を特定する情報である。
図6は、サブリソース仕様の例を示す図である。サブリソース仕様1122は、組立ラインにおいて組立作業の主体となるメインリソースを補助するサブリソースの候補とその仕様を定義する例である。サブリソース仕様1122には、リソースタイプ1122aと、リソース名1122bと、リソースID1122cと、耐荷重1122dと、初期投資コスト1122eと、重量1122fと、が含まれる。
リソースタイプ1122aは、サブリソースの所定のタイプが記憶される。リソースタイプがロボットハンドの場合は、その能力を示す指標として、耐荷重1122dと初期投資コスト1122eと、重量1122fが設定される。
リソース名1122bは、リソースの名称であるが、仕様が同じリソース間で個体を識別可能な名称である必要はない。あるいは、リソースタイプがハンドである場合であっても、仕様が異なる二種類のハンドがある場合には、リソース名は双方を識別可能である必要がある。リソースID1122cは、リソースの識別子であり、個体を識別可能である必要がある。耐荷重1122dは、部品を取り扱う場合に、保持できる荷重を特定する情報である。重量1122fは、メインリソースに接続される際に耐荷重の観点から必要となるサブリソースそのものの重量である。
ハンドとロボットの関係(すなわち、サブリソースと接続可能なメインリソース)については、後述のリソース組合せ制約1123により別途定義される。また、ハンドとハンドで取り扱う部品の関係については、後述の部品・リソース組合せ情報113により別途定義される。
図7は、リソース組合せ制約の例を示す図である。リソース組合せ制約1123は、サブリソースであるハンドを主キー(リソースID1123a)として、各ハンドを接続可能なメインリソース(組合せ可能なメインリソース1123b)を定義している。
部品・リソース組合せ情報113には、作業時間情報1131と、組合せ制約1132と、後述する組合せ制約式(1)および(2)が含まれる。
図8は、作業時間情報の例を示す図である。作業時間情報1131は、組立製品を構成する部品ごとに、各メインリソースによる組立を行った場合の処理時間を定義する例である。作業時間情報1131には、部品ID1131aと、処理時間(MR_Hu_01)1131bと、処理時間(MR_Ro_01)1131cと、処理時間(MR_Ro_04)1131dと、処理時間(MR_Ro_05)1131eと、が含まれる。
例えば、部品IDが1の部品は、メインリソースとして人(MR_Hu_01)が組立作業を担当した場合は処理時間(MR_Hu_01)1131bに定義されるように12.0秒、ロボット(MR_Ro_05)が組立作業を担当した場合は処理時間(MR_Ro_05)1131eに定義されるように30.0秒かかることが定義されている。なお、作業時間情報1131は、図の例のように、候補となるメインリソースごとに作業時間を定義してもよいし、基準となるメインリソース(例えば人)に対する所定の係数を定義するようにしてもよい。
図9は、組合せ制約の例を示す図である。組合せ制約1132は、部品仕様とサブリソース仕様の組合せ制約の例である。組合せ制約1132は、部品タイプ1132aを主キーとして、各部品を取り扱えるサブリソース(扱えるサブリソース1132b)を定義している。部品の形状によって取り扱い可能なロボットのハンドが異なるため、組合せ制約を充足する必要がある。例えば、Pタイプの部品と、Cタイプの部品では、把持可能なハンドの形状が異なるため、部品に応じて使用できるサブリソースには制約が発生する。
なお、部品とサブリソースの関係は、部品ごとに個別定義してもよい。また、一つの部品や形状に対して、複数のサブリソースを組合せ可能な候補として定義してもよい。図9の例のように、対象製品固有の部品でなく、部品タイプなどの部品の属性に対して組合せ制約を定義することができれば、工程設計に共通な情報として工程計画装置100の記憶部110にあらかじめ記憶しておくことも可能となる。
また、これらの他にも、部品・リソース組合せ情報113には、組合せ制約が数式により保持される。このような組合せ制約式(1)および(2)について、説明する。
MRWC > (SRW+PW) ×αMR・・・式(1)
上式(1)は、部品とメインリソースの組合せ制約の例である。式(1)において、MRWCはメインリソースの耐荷重1121d、SRWはサブリソースの重量1122f、PWは部品の重量1112d、αMRはメインリソースの安全率である。
上式(1)では、メインリソースであるロボットにサブリソースのハンドを取り付け、ハンドが対応可能な形状の部品を把持する必要のある作業において、ハンド重量と部品重量との和にメインリソースの安全率を乗じた値が、メインリソースの耐荷重以下であることが制約式として定義されている。当該作業におけるメインリソースの選択においては、式(1)の制約を満たすメインリソースを選択する必要がある。
SRWC > PW×αSR・・・式(2)
上式(2)は、部品とサブリソースの組み合わせ制約の例である。式(2)において、SRWCはサブリソースの耐荷重1122d、PWは部品の重量1112d、αSRはサブリソースの安全率である。
上式(2)では、メインリソースであるロボットにサブリソースのハンドを取り付け、ハンドが対応可能な形状の部品を把持する必要のある作業において、部品重量にサブリソースの安全率を乗じた値が、サブリソースの耐荷重以下であることが制約式として定義されている。当該作業におけるサブリソースの選択においては、組合せ制約1132の制約に加え、式(2)の制約を満たすサブリソースを選択する必要がある。
工程設計情報114は、組立順序と、組立順序を区分する工程の情報と、各工程で用いるメインリソースおよびサブリソースと、それにより発生する運用コストと、が対応付けて格納される。
図1の説明に戻る。処理部120には、組立順序候補生成部121と、組立順序候補拡張部122と、ラインバランシング部123と、最適解選択部124と、が含まれる。
組立順序候補生成部121は、各種の制約を満たし、かつリソースに応じた優先基準に従って部品の組立順序の候補案を生成する。なお、組立順序候補生成部121は、作業員であるリソースに係る優先基準を、作業員による組立作業の品質維持を優先するものとし、サブリソースであるハンド部材を交換可能なメインリソースであるロボットに応じた優先基準として、ハンド部材の交換回数の低減を優先することとする。
例えば、組立順序候補生成部121は、作業員であるリソースに応じた優先基準として、部品の取付位置が近い部品を順に組み立てることとする。
組立順序候補拡張部122は、生成された複数の前記部品の組立順序の候補案間で組み合わせて新たな前記部品の組立順序の候補案を生成する。具体的には、組立順序候補拡張部122は、生成された複数の部品の組立順序の候補案のそれぞれについて、各工程に含まれる作業時間の合計が平準化されるように工程に分割し、分割した工程を部品の組立順序の候補案間で組み合わせて新たな部品の組立順序の候補案を生成する。
平準化の具体例としては、組立順序候補拡張部122は、部品の作業時間と目標タクトタイムに基づき工程に分割し、分割した工程を部品の組立順序の候補案間で組み合わせて新たな部品の組立順序の候補案を生成するというものが挙げられる。または、組立順序候補拡張部122は、生成された複数の前記部品の組立順序の候補案のそれぞれについて、目標タクトタイムを用いて工程分割の最大数と最小数とを求め、該工程分割の最大数と最小数の間に収まるように工程に分割し、分割した工程を部品の組立順序の候補案間で組み合わせて新たな部品の組立順序の候補案を生成するというものも挙げられる。
ラインバランシング部123は、候補案を用いて工程分割、リソース割付を行って工程設計情報の候補を生成する。
最適解選択部124は、工程設計情報の候補ごとに所定の評価指標を用いて最適な候補を選択する。
通信部130は、ネットワークを介して、各種の情報について他の装置との送受信を行う。
入力部140は、例えば画面上で表示・操作され、キーボードあるいはマウスにて操作され入力された入力情報を受け取る。
出力部150は、例えば、所定の処理を行った結果出力する情報が含まれる画面情報を作成し、通信部130を介して表示用計算機に出力する。
図10は、工程計画装置のハードウェア構成例を示す図である。工程計画装置100は、プロセッサ(例えば、CPU、あるいはGPU)901と、RAM(Random Access Memory)等のメモリ902と、ハードディスク装置(HDD)やSSDなどの外部記憶装置903と、CDやDVDなどの可搬性を有する記憶媒体904に対して情報を読む読取装置905と、キーボードやマウス、バーコードリーダ、タッチパネルなどの入力装置906と、ディスプレイなどの出力装置907と、LANやインターネットなどの通信ネットワークを介して他のコンピュータと通信する通信装置908とを備えた一般的なコンピュータ900、あるいはこのコンピュータ900を複数備えたネットワークシステムで実現できる。なお、読取装置905は、可搬性を有する記憶媒体904の読取だけでなく、書き込みも可能なものであっても良いことは言うまでもない。
例えば、処理部120に含まれる組立順序候補生成部121と、組立順序候補拡張部122と、ラインバランシング部123と、最適解選択部124とは、外部記憶装置903に記憶されている所定のプログラムをメモリ902にロードしてプロセッサ901で実行することで実現可能であり、入力部140は、プロセッサ901が入力装置906を利用することで実現可能であり、出力部150は、プロセッサ901が出力装置907あるいは通信装置908を利用することで実現可能であり、通信部130は、プロセッサ901が通信装置908を利用することで実現可能であり、記憶部110は、プロセッサ901がメモリ902または外部記憶装置903を利用することにより実現可能である。
この所定のプログラムは、読取装置905を介して可搬性を有する記憶媒体904から、あるいは、通信装置908を介してネットワークから、外部記憶装置903にダウンロードされ、それから、メモリ902上にロードされてプロセッサ901により実行されるようにしてもよい。また、読取装置905を介して可搬性を有する記憶媒体904から、あるいは、通信装置908を介してネットワークから、メモリ902上に直接ロードされ、プロセッサ901により実行されるようにしてもよい。
図11は、工程設計処理のフローの例を示す図である。工程設計処理は、インターフェース装置を介してユーザにより開始指示を受け付けると開始される。
まず、入力部140は、工程設計を行う組立ラインの目標タクトタイムの入力を受け付ける(ステップS001)。ここで設定された目標タクトタイムを充足するようこの後のすべての処理が実行される。組立ラインが複数の工程から構成される場合、各工程のタクトタイムのうち、最大の値が組立ライン全体のタクトタイムとなる。すなわち、組立ラインのタクトタイムは、ボトルネックとなる工程のタクトタイムと一致する。
そして、入力部140は、製品情報の入力を受け付ける(ステップS002)。受け付けた製品情報は、製品情報111に格納される。製品情報111は、工程設計の対象となる組立製品ごとに定義・記憶される。
そして、入力部140は、リソース情報の入力を受け付ける(ステップS003)。受け付けたリソース情報は、リソース情報112に格納される。リソース情報112は、工程設計の対象となる組立製品ごとに定義・記憶される。または、工程設計の対象によらず工程設計に共通な情報として工程計画装置100の記憶部110にあらかじめ記憶しておいてもよい。さらに、あらかじめ記憶された情報から指定されたリソース情報として選択入力を受け付けてもよい。
そして、入力部140は、部品・リソース組合せ情報の入力を受け付ける(ステップS004)。受け付けた部品・リソース組合せ情報は、部品・リソース組合せ情報113に格納される。部品・リソース組合せ情報113は、工程設計の対象ごとに定義・記憶される。または、工程設計の対象によらず工程設計に共通な情報として工程計画装置100の記憶部110にあらかじめ記憶しておいてもよい。さらに、あらかじめ記憶された情報から指定されたリソース情報として選択入力を受け付けてもよい。
そして、組立順序候補生成部121は、入力を受け付けた各情報を用いて、組立順序の候補を生成する(ステップS005)。組立順序の候補の生成は、おおまかに、リソース毎の組順候補生成処理(ステップS0051)と、組順候補拡張処理(ステップS0052)と、に分けて実施される。
まず、リソース毎の組順候補生成処理(ステップS0051)について説明する。組立順序は最大で部品の階乗通りの候補解があるため、すべての組立順序の候補に対して後続のラインバランシングを計算するとその組合せは膨大であり、実現が困難である。そこで、工程設計者は、リソース毎に、部品の形状・配置が組立時間・品質に与える影響を根拠として、組立順序生成ルールを定義する。このルールは、アルゴリズムとして組順候補生成処理(ステップS0051)に盛り込まれる。あるいは、組順候補生成処理(ステップS0051)をルールベースで実装する場合には、ルールとして実装する。ここでは、一例としてロボットと人をリソースとするルールをアルゴリズムとして盛り込む例を示す。
ロボットは、部品形状に合わせて部品を把持するハンド交換が必要であり、組立の作業時間に加えて、ハンド交換を行う時間を含めた段取り時間が追加で必要となる。他方、部品配置については、ロボットの動作範囲内であれば繰り返し動作の精度が高く品質への影響は小さい。そこで、ロボットをメインリソースとする場合の組立順序生成ルールとして、前後の順序で取り扱う部品の形状が異なりハンド交換が必要となる回数を計測し、最小化するものとする。
人は、部品形状の変化に対しては柔軟に対応可能である。他方、空間的に近い部品に対して連続作業する方が、集中力が持続し高い品質を維持することができる。そこで、人をメインリソースとする場合の組立順序生成ルールとして、部品の位置の変化量を計測し、最小化するものとする。
あるいは、候補となるリソースの種類として、人やロボットをさらに細分化して組立順序生成ルールを設けてもよい。例えば、人は年齢、経験値によって特性が変化すると考えられるため、これに合わせて組立順序生成ルールも細分化してもよい。また、ロボットは制御軸数やサイズによって組立順序生成ルールを細分化してもよい。また、人やロボット以外のリソース候補がある場合(専用機など)、組立順序生成ルールを個別に定義してもよい。
リソース毎の組順候補生成処理においては、組立順序候補生成部121は、このような組立順序生成ルールを用いて、リソース毎に組立順序の候補を生成する。なお、組立順序生成ルールを満たす組立順序の候補が複数存在する場合には、組立順序候補生成部121は、候補間を比較して、別の指標による選別を行うようにしてもよい。
例えば、ロボットをメインリソースとする場合の組立順序生成ルールとして、前後の順序で取り扱う部品の形状が異なりハンド交換が必要となる回数を計測し、最小化するものがある場合に、同一のハンド交換数となる組立順序が導出されると、組立順序候補生成部121は、組立順序間で部品の位置の変化量を計測し、最小化するものを組立順序の候補とするようにしてもよい。あるいは、そのような複数の評価指標により組立順序の候補を絞り込むルールを予め設けるようにしてもよい。組順候補生成処理の詳細については、後述する。
次に、組順候補拡張処理について説明する。人・ロボットそれぞれに最適化された組立順序の候補が、複数のリソース組合せを要する環境において最適とは限らない。そこで、人・ロボットそれぞれに最適化された組立順序の候補をベースとして、人・ロボットの混成ラインの環境を想定した組立順序候補の生成を行うことが考えられる。
組順候補拡張処理(ステップS0052)の例として、リソース毎の組立順序の候補を交叉させて組順候補を拡張する処理について説明する。リソース毎の組順候補生成処理で生成した組立順序候補の複数の部分要素に分割し、分割した要素を交叉させて結合し重複作業を除去することで、複数リソースの組合せを想定した組順の追加候補を生成する処理である。なお、交叉による組順候補の拡張処理は一例であり、遺伝的アルゴリズムなどによって新しい候補を追加するようにしてもよい。
交叉による組順候補の拡張処理では、例えば、リソースごとの組立順序の候補X,Y,Zがある場合に、Xの先頭工程をベースに、Yの工程を後続させ、さらにZの工程を後続させ、二度目以降の同一作業を除去することで、追加候補が一つ生成される。同様に、Xの先頭工程をベースに、Yの工程を後続させ、二度目以降の同一作業を除去する(Zの候補を使わない)追加候補も生成できる。あるいはYの先頭工程をベースに、Zの工程を後続させ、さらにXの工程を後続させ、二度目以降の同一作業を除去するものも、追加候補となる。組立順序候補拡張部122は、このようにX,Y,Zの組み合わせによりバリエーションを生成する。組順候補拡張処理の詳細は、後述する。
そして、ラインバランシング部123は、生成した組立順序の候補を選択するための変数N(Nは整数)を初期化し、N=1に設定する(ステップS006)。
そして、ラインバランシング部123は、生成した組立順序の候補からN番目の候補を選択する(ステップS007)。
そして、ラインバランシング部123は、選択した組立順序の候補Nを入力として、ステップS001にて設定した目標タクトタイムを充足するラインバランシングの解を生成する(ステップS008)。ラインバランシングは、おおまかに、組立順序の候補Nの工程分割処理(ステップS0081)と、リソース割付処理(ステップS0082)と、に分けて実施される。
まず、工程分割処理(ステップS0081)について説明する。ラインバランシング部123は、選択した組立順序の候補Nを、複数の工程に分割する。この際、工程の分割数は、工程の分割数の最大値Cmaxと最小値Cminの間に収まるようにする。工程の分割数の最大値Cmaxと最小値Cminは、それぞれ後述するタクトタイムに基づく式(3)、式(4)を用いて算出する。
各工程には、固有のメインリソースが必要であり、メインリソースのコストがライン運用コストにおいて支配的であることから、可能な限り少ない工程に分割することが求められる。そのため、ラインバランシング部123は、少ない分割数を優先して採用して工程を分割する。分割は工程ごとの時間を平準化することを評価指標としてもよい。ただし、各工程の正確な作業時間は、リソース割付後にのみ算出可能である。
次に、リソース割付処理(ステップS0082)について説明する。ラインバランシング部123は、分割した各工程に適したメインリソースを割り付ける。さらに、部品・リソース組合せ情報113に基づき、必要に応じて各部品にサブリソースを割り付ける。例えば、メインリソースとしてロボットを割り付けた場合、部品の形状に応じたハンドをサブリソースとして割り付ける必要がある。
各工程の作業時間は、各部品の作業時間と段取り時間に基づき算出される。このうち、各部品の作業時間については、ラインバランシング部123は、部品ごとに割り付けられたメインリソースに応じて算出する。また、段取り時間については、ラインバランシング部123は、工程内でサブリソースの交換が必要な場合に、必要な追加時間として算出する。
工程設計の解が目標タクトタイムを充足しない場合は、目標タクトタイムを充足する工程設計の解が生成されるまで、ラインバランシング部123が異なる工程分割処理とリソース割付処理を繰り返し実行する。工程分割の再生成の一例として、分割数を維持して、ラインバランシング部123は、目標タクトタイムを超過している工程の部品の一部を隣接する工程に移動させて工程分割の再作成としてもよい。また、ラインバランシング部123は、工程分割数を変更して新規の分割案を生成してもよい。
目標タクトタイムを充足する工程設計の解が生成された場合は、ラインバランシング部123は、工程設計の解を工程設計情報114に格納させる。選択した組順候補の全ての工程分割案を生成し、各工程分割案に対して最適なリソース割付を実行することで、選択した組立順序の候補Nに対して、最適な工程設計の解を導出することができる。また、計算時間を閾値として設定し、ラインバランシング部123は、時間内で到達しえた最良解を工程設計の解として導出してもよい。
各工程のリソース割付が決まると、組立ラインの運用コストを算出することができる。ラインバランシング部123は、メインリソースとしてのロボットと、サブリソースについては、初期投資コストと減価償却期間を用いて、各工程設計の解について当該作業期間における運用コストを算出する。ラインバランシング部123は、メインリソースとしての人については、人件費を用いて運用コストを算出する。
そして、ラインバランシング部123は、生成した組立順序の候補をすべて処理したか否かを判定する(ステップS009)。未処理の候補が残っている場合(ステップS009にて「No」の場合)には、ラインバランシング部123は、変数Nに1を加算し(ステップS010)、ステップS007に制御を戻し、次の組順候補を選択する。
すべての組順候補を処理した場合(ステップS009にて「Yes」の場合)には、最適解選択部124は、運用コストが最小となる工程設計の解を選択し(ステップS011)、工程設計処理を終了する。ステップS011では、最適解選択部124は、運用コスト以外の評価式(例えば初期投資コスト)を用いて解を選択してもよい。また、最適解選択部124は、結果を一覧表示させて、ユーザによる解の選択入力を受け付けてもよい。
以上が、工程設計処理のフローの例である。工程設計処理によれば、簡便に運用コストを抑えた工程計画を立案することができる。
図12は、リソース毎の組順候補生成処理のフローの例を示す図である。リソース毎の組順候補生成処理は、工程設計処理のステップS0051において実施される。
まず、組立順序候補生成部121は、リソース情報112に含まれるメインリソース候補から1つ(リソース候補Rとする)を選択する(ステップS0511)。例えば、メインリソース仕様1121を例に説明すると、組立順序候補生成部121は、行頭のデータであるリソースID1121cがMR_Ro_01であるリソースを、リソース候補Rとして選択する。
そして、組立順序候補生成部121は、選択したリソース候補Rのタイプがロボットであるか否かを判定する(ステップS0512)。具体的には、組立順序候補生成部121は、選択したリソース候補Rのリソースタイプ1121aがRobotであるか否か判定する。
選択したリソース候補Rのタイプがロボットである場合(ステップS0512にて「Yes」の場合)には、組立順序候補生成部121は、ロボットの組立順序生成ルールとして定義したハンド交換回数を最小化する組立順序を生成する(ステップS0513)。ハンド交換の要否は、組合せ制約1132を用いて、部品の組立順序上の部品タイプが変更されるタイミングごとに判断することができる。
選択したリソース候補Rのタイプがロボットでない場合(ステップS0512にて「No」の場合)には、組立順序候補生成部121は、人の組立順序生成ルールとして定義した部品の位置変化量を最小化する組立順序を生成する(ステップS0514)。部品の位置変化量は、部品仕様情報1112を用いて、取付位置1112eの距離を用いて算出することができる。
そして、組立順序候補生成部121は、ステップS0513またはステップS0514で生成した組立順序を候補として、工程設計情報114に格納する(ステップS0515)。
そして、組立順序候補生成部121は、リソース情報112のすべてのメインリソース候補を処理したか否かを判断する(ステップS0516)。未処理の候補が残っている場合(ステップS0516にて「No」の場合)には、組立順序候補生成部121は、制御をステップS0511に戻し、次のリソース候補を選択する。すべての候補を処理した場合(ステップS0516にて「Yes」の場合)には、組立順序候補生成部121は、リソース毎の組順候補生成処理を終了する。
以上が、リソース毎の組順候補生成処理のフローの例である。リソース毎の組順候補生成処理によれば、リソースに適した組順候補を生成することができる。
図13は、組順候補のアウトプットの例を示す図である。組立製品200に対して、部品の位置変化量を最小化する人の組立順序生成ルールを適用して生成された組立順序の例と、ハンド交換回数を最小化するロボットの組立順序生成ルールを適用して生成された組立順序の生成例とを示している。人の組立順序生成ルールを適用して生成された組立順序では、部品の位置に着目して効率化がなされ、ロボットの組立順序生成ルールを適用して生成された組立順序では、部品の位置ではなく、同タイプの部品を連続して取り扱うことを重視して効率化されているといえる。
図14は、組順候補拡張処理のフローの例を示す図である。組順候補拡張処理は、工程設計処理のステップS0052において実施される。
まず、組立順序候補拡張部122は、部分要素を生成するための工程分割数の最大値(Cmax)、最小値(Cmin)を算出する(ステップS0521)。ここでは、各部品の作業時間と目標タクトタイムを用いて算出する例を示す。
工程分割数の最大値(Cmax)は、各部品に対して最も低速なリソースで、全部品でハンド交換が発生すると仮定して、下式(3)を用いて算出できる。
Cmax=Roundup(Σ(OT(max)i+CT)/T)・・・式(3)
工程分割数の最小値(Cmin)は、各部品に対して最も高速なリソースで、ハンド交換が一度もないと仮定して、下式(4)を用いて算出できる。
Cmin=Roundup(Σ(OT(min)i/T)・・・式(4)
上式(3)および上式(4)において、Roundup()はパラメータの小数点以下を切り上げて整数化する関数であり、OT(max)iは部品iで最も低速なリソースを選択した場合の作業時間(最も長い作業時間)、OT(min)iは部品iで最も高速なリソースを選択した場合の作業時間(最も短い作業時間)、CTは工具交換時間、Tは目標タクトタイムである。
そして、組立順序候補拡張部122は、組立順序候補生成部121が生成し工程設計情報114に格納した組立順序の候補を一つ選択する(ステップS0522)。ここで選択された組立順序の候補を組順候補Iとする。
そして、組立順序候補拡張部122は、工程分割の最大値(Cmax)から最小値(Cmin)の範囲で、工程分割数Cを一つ選択し、選択した組順候補Iを、選択した工程分割数Cに分割する(ステップS0523)。ここで、組立順序候補拡張部122は、各工程に含まれる作業時間の合計が平準化されるように工程分割してもよい。
そして、組立順序候補拡張部122は、組順候補Iの先頭工程と他の組順候補とを結合し、重複部品の作業を削除する(ステップS0524)。すなわち、分割した組順候補Iの部分解に、他の組順候補を結合した上で、先頭の部分解に含まれる部品は後方の組順候補と重複するため、重複を削除することで、交叉が成立し、新しい組立順序の候補を生成するという方法の例である。
なお、交叉による組順候補の拡張においては、組立順序候補拡張部122は、部分解同士をランダムに組合せて交叉させてもよい。また、組立順序候補拡張部122は、2つの組立順序の候補だけでなく、3つ以上の組立順序の候補の部分解を順不同に組合せて新たな組立順序の候補を生成してもよい。
そして、組立順序候補拡張部122は、生成した組立順序候補が、これまでに生成した組立順序候補と異なる場合、追加候補として工程設計情報114に登録する(ステップS0525)。
そして、組立順序候補拡張部122は、すべての工程分割数Cについての候補を処理したか否かを判定する(ステップS0526)。未処理の工程分割数Cの候補が残っている場合(ステップS0526にて「No」の場合)には、組立順序候補拡張部122は、ステップS0523に制御を戻し、別の工程分割数Cを選択して組順候補Iを分割する。
すべての工程分割数Cについて処理した場合(ステップS0526にて「Yes」の場合)には、組立順序候補拡張部122は、すべての組順候補Iを処理したか否かを判定する(ステップS0527)。未処理の組順候補が残っている場合(ステップS0527にて「No」の場合)には、組立順序候補拡張部122は、制御をステップS0522に戻し、別の組順候補Iを選択する。すべての組順候補を処理した場合(ステップS0527にて「Yes」の場合)には、組立順序候補拡張部122は、組順候補拡張処理を終了する。
以上が、組順候補拡張処理のフローの例である。組順候補拡張処理によれば、リソースの組み合わせに適した組順候補を生成することができる。
図15は、組順候補の拡張の例を示す図である。組立製品200に関して、ステップS0523における工程分割の例が、人をリソースとする場合の候補Xであり、ロボットをリソースとする場合の候補Yである。人とロボットの組立順序候補をそれぞれ3工程に分割している。ここでは、人の組順候補を候補X、ロボットの組順候補を候補Yとする。
拡張候補X×Yでは、候補Xの部分解の先頭と、候補Yの全体を結合し、候補Xの部分解の先頭に含まれる部品(1P、2C、3P、4P)が候補Yと重複しているため、候補Yから重複作業を削除することで、新しい組立順序の候補を生成している。また、拡張候補Y×Xでは、候補Yの部分解の先頭と、候補Xの全体を結合し、候補Yの部分解の先頭に含まれる部品(1P、6P、8P)が候補Xと重複しているため、候補Xから重複作業を削除することで、新しい組立順序の候補を生成している。
このように、リソース候補毎に生成した組順候補の部分要素を交叉させることで、複数リソースの組合せを想定した組順の追加候補を生成することができ、続くラインバランシングの候補を最適解近傍で増やせるため、より最適な解を導出することができるようになる。
図16は、組立順序候補表示画面の例を示す図である。組立順序候補表示画面の例1200には、複数の組立順序の候補が生成されていることが示されている。具体的には、組立順序候補表示画面の例1200では、組立順序の候補ごとに、組立順序、生成した演算部、選択リソースが対応付けられて表示される。なお、選択リソースには、リソース候補毎の組立順序候補生成部121が生成した候補については、演算時に選択したリソース候補、すなわち使用した組立順序生成ルールが表示される。
図17は、工程設計結果の比較表示画面の例を示す図である。工程設計結果の比較表示画面の例1300には、結果の表示順番を選択するプルダウン1301と、評価指標グラフ1302と、工程詳細表示ボタン1303と、が含まれる。プルダウン1301は、予め定められた工程設計結果の表示順の基準の選択を受け付ける。評価指標グラフ1302は、縦軸に運用コスト等のプルダウン1301にて選択された評価指標、横軸に組順IDを設けたグラフであり、工程設計された組順ごとに、指標値の棒グラフ等のグラフが工程設計結果間で対比可能に表示される。評価指標グラフ1302では、評価指標が運用コストである場合、棒グラフには人件費と原価償却費のような内訳も表示される。工程詳細表示ボタン1303は、入力を受け付けると、評価指標グラフ1302において選択された組順IDに関して後述の工程設計結果の詳細表示画面の例1400に遷移する。
図18は、工程設計結果の詳細表示画面の例を示す図である。工程設計結果の詳細表示画面の例1400には、詳細を表示する対象の組順ID表示1401と、工程分割とリソースの構成すなわちラインバランシングの結果の工程設計情報表示1402と、運用コスト表示1403と、が含まれる。
工程設計情報表示1402には、例えば、組順IDが3である工程設計情報が表示される。該工程は3つに分割されており、メインリソースとして、第1工程には、人(MR_Hu_01)、第2工程と第3工程にはロボット(ともにMR_Ro_01)が割り付けられている。また、第2工程の部品(部品IDはそれぞれ6、8、9)のタイプはすべてP(平面板:Plate)であるため、対応するサブリソースとして平面版対応ハンド(SR_Ha_02)が割り付けられている。同様に、第3工程の部品(部品IDはそれぞれ7、10、5)のタイプはすべてC(円柱:Cylinder)であるため、対応するサブリソースとして円柱対応ハンド(SR_Ha_01)が割り付けられている。
運用コスト表示1403には、当該組順による工程実施の場合の所定期間(例えば、1か月)における減価償却費と、人件費と、が表示される。
以上が、本実施形態に係る生産ラインシステム1の構成である。生産ラインシステム1によって、エンジニアのノウハウに依存せず手戻りをなくし、短時間で運用コスト最小となる工程設計を立案できる。つまり、簡便に運用コストを抑えた工程計画を立案することができる。
上記技術においては、メインリソースである人には、サブリソースがない例を示しているが、これに限られない。例えば、治具をサブリソースとして設定し、人にも耐荷重の設定を行うことで、本例におけるロボットと同様にサブリソースまで含めたリソース割付が可能となる。
上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。実施形態の構成の一部を他の構成に置き換えることが可能である。また、実施形態の構成の一部について、削除をすることも可能である。
また、上記の各部、各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各部、各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク等の記録装置、または、ICカード、SDカード、DVD等の記憶媒体に置くことができる。
なお、上述した実施形態にかかる制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えても良い。以上、本発明について、実施形態を中心に説明した。