(57)【要約】  整数計画問題生成部３８は、生産計画情報ＤＢ５２から未だ段取り作業が行われていない図番の生産計画情報を取得し、取得した生産計画情報と、予め定めた制約と、に基づいて、段取り作業の実行順の最適化の問題を整数計画問題として定式化する。そして、整数計画問題ソルバ部４０は、ＧＬＰＫ等を用いて各図番の段取り作業の実行順を決定する。この場合、整数計画問題生成部３８は、生産計画情報に基づいて、各マウンタラインにおいて各図番の仮の段取り作業開始時刻Ｓiを算出し、異なるマウンタラインに属する図番ｉのＳiと図番ｊのＳjとの差が閾値ＤＴ以上であった場合に、図番ｉと図番ｊの段取り順序関係をｉ→ｊの順番に固定する。これにより、少ない計算量で、段取り作業の適切な実行順を決定することができる。
2017187511.tif 000002
【特許請求の範囲】
【請求項１】
複数種類の製品を生産する複数のラインを備え、前記複数のラインそれぞれにおいて、生産する製品の種類を切り替える際に切り替え後の製品を生産するための段取り作業を必要とするシステムにおける段取り作業を支援する作業支援装置であって、
各製品の段取り時間、各製品の生産時間、各ラインにおける製品の生産順の情報を含む生産計画情報のうち、未だ段取り作業が行われていない製品の生産計画情報を記憶部から取得する取得部と、
取得した前記生産計画情報と、予め定めた制約と、に基づいて、段取り作業の実行順の最適化の問題を整数計画問題として定式化し、整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する決定部と、を備え、
前記決定部は、前記生産計画情報に基づいて、各ラインにおいて各製品の段取り作業を開始できる最も早い時刻を算出し、第１のラインで生産される第１の製品の段取り作業を開始できる最も早い時刻と、前記第１のラインとは異なる第２のラインで生産される第２の製品の段取り作業を開始できる最も早い時刻と、の差が所定の閾値以上であった場合に、前記第１の製品の段取り作業を前記第２の製品の段取り作業よりも前に実行すると決定した上で、前記整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する、ことを特徴とする作業支援装置。
【請求項２】
前記決定部は、前記閾値を段階的に大きくしながら、前記各製品の段取り作業の実行順を決定する処理を繰り返し実行し、繰り返す度に前記実行順を更新する、ことを特徴とする請求項１に記載の作業支援装置。
【請求項３】
所定時間ごと又は前記システムにおける生産が前記生産計画情報から所定以上乖離するごとに、
前記取得部は、未だ段取り作業が行われていない製品の生産計画情報を前記記憶部から取得し、
前記決定部は、前記各製品の段取り作業の実行順をリセットして、前記各製品の段取り作業の実行順を決定する処理を再開することを特徴とする請求項１又は２に記載の作業支援装置。
【請求項４】
複数種類の製品を生産する複数のラインを備え、前記複数のラインそれぞれにおいて、生産する製品の種類を切り替える際に切り替え後の製品を生産するための段取り作業を必要とするシステムにおける段取り作業を支援する作業支援方法であって、
各製品の段取り時間、各製品の生産時間、各ラインにおける製品の生産順の情報を含む生産計画情報のうち、未だ段取り作業が行われていない製品の生産計画情報を記憶部から取得し、
取得した前記生産計画情報と、予め定めた制約と、に基づいて、段取り作業の実行順の最適化の問題を整数計画問題として定式化し、整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する、処理をコンピュータが実行し、
前記決定する処理において、前記生産計画情報に基づいて、各ラインにおいて各製品の段取り作業を開始できる最も早い時刻を算出し、第１のラインで生産される第１の製品の段取り作業を開始できる最も早い時刻と、前記第１のラインとは異なる第２のラインで生産される第２の製品の段取り作業を開始できる最も早い時刻と、の差が所定の閾値以上であった場合に、前記第１の製品の段取り作業を前記第２の製品の段取り作業よりも前に実行すると決定した上で、前記整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する、ことを特徴とする作業支援方法。
【請求項５】
前記決定する処理において、前記閾値を段階的に大きくしながら、前記各製品の段取り作業の実行順を決定する処理を繰り返し実行し、繰り返す度に前記実行順を更新する、ことを特徴とする請求項４に記載の作業支援方法。
【請求項６】
所定時間ごと又は前記システムにおける生産が前記生産計画情報から所定以上乖離するごとに、
未だ段取り作業が行われていない製品の生産計画情報を前記記憶部から取得し、
前記各製品の段取り作業の実行順をリセットして、前記各製品の段取り作業の実行順を決定する処理を再開することを特徴とする請求項４又は５に記載の作業支援方法。
【請求項７】
複数種類の製品を生産する複数のラインを備え、前記複数のラインそれぞれにおいて、生産する製品の種類を切り替える際に切り替え後の製品を生産するための段取り作業を必要とするシステムにおける段取り作業を支援する作業支援プログラムであって、
各製品の段取り時間、各製品の生産時間、各ラインにおける製品の生産順の情報を含む生産計画情報のうち、未だ段取り作業が行われていない製品の生産計画情報を記憶部から取得し、
取得した前記生産計画情報と、予め定めた制約と、に基づいて、段取り作業の実行順の最適化の問題を整数計画問題として定式化し、整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する、処理をコンピュータに実行させ、
前記決定する処理において、前記生産計画情報に基づいて、各ラインにおいて各製品の段取り作業を開始できる最も早い時刻を算出し、第１のラインで生産される第１の製品の段取り作業を開始できる最も早い時刻と、前記第１のラインとは異なる第２のラインで生産される第２の製品の段取り作業を開始できる最も早い時刻と、の差が所定の閾値以上であった場合に、前記第１の製品の段取り作業を前記第２の製品の段取り作業よりも前に実行すると決定した上で、前記整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する、ことを特徴とする作業支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業支援装置、作業支援方法及び作業支援プログラムに関する。
【背景技術】
【０００２】
表面実装ラインのような生産ラインや、各種生産を行う装置では、生産ラインや装置毎に予め割り当てられた生産計画の全てが完了する時刻（生産完了時刻）が早いほど、コスト、納期の面から望ましい。【０００３】
生産ラインや装置において多品種少量生産を行う場合、一日のうちに製造物の種類（「図番」と呼ぶ）が何度も変わるため、その都度、生産ラインや装置の設定変更を行う必要がある（例えば、特許文献１〜３等参照）。このような設定変更は「段取り」と呼ばれ、設定変更のための作業は「段取り作業」と呼ばれる。段取り作業が行われている間は、生産ラインや装置の生産が停止する。【０００４】
１人の作業員が複数の生産ラインや複数の装置の段取り作業を担当することが多々あり、その場合、複数の生産ラインや複数の装置に対して同時に段取り作業を行うことはできない。従来においては、段取り作業を行うことが可能になった順番の通りに、作業者が段取り作業を実行することとしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３７３０１５号公報
【特許文献２】特開平４−８７７６２号公報
【特許文献３】特開２００９−９３２７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
段取り作業の順番を工夫すれば、生産完了時刻を早めることができる。しかしながら、ある時点の段取り作業の実行順を工夫すると、以降の生産の進行状況に影響を与える。したがって、最適な段取り作業の実行順を決定するためには、後々の影響まで考慮した複雑な最適化問題を解く必要がある。【０００７】
最適化問題においては、生産ラインの数や装置の数が増えるほど組み合わせ数が増えるため、計算に長時間を要したり、組み合わせ爆発が起き、計算ができなくなるおそれがある。【０００８】
１つの側面では、本発明は、少ない計算量で、段取り作業の適切な実行順を決定することが可能な作業支援装置、作業支援方法及び作業支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの態様では、作業支援装置は、複数種類の製品を生産する複数のラインを備え、前記複数のラインそれぞれにおいて、生産する製品の種類を切り替える際に切り替え後の製品を生産するための段取り作業を必要とするシステムにおける段取り作業を支援する作業支援装置であって、各製品の段取り時間、各製品の生産時間、各ラインにおける製品の生産順の情報を含む生産計画情報のうち、未だ段取り作業が行われていない製品の生産計画情報を記憶部から取得する取得部と、取得した前記生産計画情報と、予め定めた制約と、に基づいて、段取り作業の実行順の最適化の問題を整数計画問題として定式化し、整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する決定部と、を備え、前記決定部は、前記生産計画情報に基づいて、各ラインにおいて各製品の段取り作業を開始できる最も早い時刻を算出し、第１のラインで生産される第１の製品の段取り作業を開始できる最も早い時刻と、前記第１のラインとは異なる第２のラインで生産される第２の製品の段取り作業を開始できる最も早い時刻と、の差が所定の閾値以上であった場合に、前記第１の製品の段取り作業を前記第２の製品の段取り作業よりも前に実行すると決定した上で、前記整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する。
【発明の効果】
【００１０】
少ない計算量で、段取り作業の適切な実行順を決定することができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係る生産システムの構成を概略的に示す図である。
【図２】表面実装ラインについて示す図である。
【図３】サーバのハードウェア構成を示す図である。
【図４】サーバの機能ブロック図である。
【図５】生産計画情報ＤＢのデータ構造の一例を示す図である。
【図６】生産状況情報ＤＢのデータ構造の一例を示す図である。
【図７】図７（ａ）、図７（ｂ）は、段取り作業を実行する順番が生産完了時刻に与える影響について説明するための図である。
【図８】サーバの制御部による処理を示すフローチャートである。
【図９】マウンタラインごとの生産完了時刻推定値を示す図である。
【図１０】サーバの整数計画問題生成部及び整数計画問題ソルバ部による処理を示すフローチャートである。
【図１１】整数計画問題生成部による仮の段取り開始時刻を算出する処理を示すフローチャートである。
【図１２】変数ｘijを固定値とする処理について説明するための図である。
【図１３】表示例を示す図である。
【図１４】図１４（ａ）、図１４（ｂ）は、比較例における生産完了時刻と一実施形態における生産完了時刻を比較した図である。
【図１５】変形例を示す図である。
【発明を実施するための形態】
【００１２】
以下、生産システムの一実施形態について、図１〜図１４に基づいて詳細に説明する。
【００１３】
図１には、一実施形態に係る生産システム１００の構成が概略的に示されている。図１に示すように、本実施形態の生産システム１００は、システムとしての生産ライン７０と、作業支援装置としてのサーバ１０と、作業者用端末６０とを備える。生産ライン７０とサーバ１０と作業者用端末６０とは、ネットワーク８０に接続されている。
【００１４】
生産ライン７０は、一例として、図２に示すような表面実装ライン２０を複数有するものとする。表面実装ライン２０は、プリント回路基板（以下、単に「基板」と呼ぶ）に部品を実装するためのラインであり、基板ローダ、ハンダ印刷機、印刷検査機、マウンタライン、実装検査機、リフロー炉、外観検査機、アンローダ等を備え、各装置間は、コンベアで接続されている。マウンタラインは、基板に部品を実装する複数のマウンタ装置を有する。
【００１５】
基板ローダは、コンベア上に基板をロードする。ハンダ印刷機は、基板上の所定の箇所にハンダを印刷する。印刷検査機は、基板上のハンダの検査を行う。印刷検査機による検査に合格した基板は、マウンタラインに搬送され、マウンタラインでは、各マウンタ装置において電子部品などの部品を基板上の印刷されたハンダ上に表面実装する。実装検査機は、基板上の部品の実装に不具合がないか検査する。リフロー炉は、検査に合格した基板に対してリフローを行うことで、部品を基板に固定する。外観検査機は、基板の外観に不具合がないか検査する。アンローダは、検査に合格した基板をコンベアから取り出す。
【００１６】
なお、生産ライン７０の各表面実装ライン２０においては、生産計画時に予め定められた順番に沿って図番を処理するものとする。ここで、「図番」とは、１枚以上の同一の基板でかつ、同一の表面実装ラインで連続して製造される基板の組（ロット）のことを意味する。本実施形態では、図番の各表面実装ライン２０への割り当てや、生産順は、生産時には変更することができないものとする。
【００１７】
また、本実施形態においては、ある図番の生産から次の図番の生産の間に準備作業を行う必要がある。この準備作業は「段取り作業」と呼ばれ、段取り作業にかかる時間は「段取り時間」と呼ばれている。図番ごとの段取り時間や、段取り後の図番の生産にかかる時間（生産時間）についても、生産計画において予め定められているものとする。なお、本実施形態においては、段取り作業が開始した後、終了するまでは中断できないこととしてもよいし、途中で中断でき、中断したところから再開できることとしてもよい。
【００１８】
なお、各表面実装ライン２０においては、上述のような生産計画に基づいて生産を行うものの、図番毎の段取り作業のタイミングや生産時間は、計画通りに進まないことがある。これは、１人の作業者が担当する複数の表面実装ライン２０において段取り作業が同時に発生した場合に、段取り作業が開始できるようになるまでの時間（待ち時間）が生じたり、突発的な装置の停止等により生産時間にばらつきが生じるためである。
【００１９】
なお、本実施形態では、段取り作業の順番の最適化を説明する際に、各図番の生産時間として、マウンタラインにおける処理時間を用いることとしている。したがって、サーバ１０において管理するデータベースにおいては、生産時間に関するデータをマウンタラインごとにまとめている。
【００２０】
図１に戻り、サーバ１０は、生産ライン７０から得られる各種データを管理し、生産ライン７０の生産状況を作業者用端末６０に通知する。また、サーバ１０は、生産ライン７０における作業者の段取り作業の順番を作業者用端末６０に通知することで、作業者による段取り作業を支援する。
【００２１】
図３には、サーバ１０のハードウェア構成が示されている。図３に示すように、サーバ１０は、ＣＰＵ（Central Processing Unit）９０、ＲＯＭ（Read Only Memory）９２、ＲＡＭ（Random Access Memory）９４、記憶部（ここではＨＤＤ（Hard Disk Drive））９６、ネットワークインタフェース９７、及び可搬型記憶媒体用ドライブ９９等を備えている。これらサーバ１０の構成各部は、バス９８に接続されている。サーバ１０では、ＲＯＭ９２あるいはＨＤＤ９６に格納されているプログラム（作業支援プログラムを含む）、或いは可搬型記憶媒体用ドライブ９９が可搬型記憶媒体９１から読み取ったプログラム（作業支援プログラムを含む）をＣＰＵ９０が実行することにより、図４に示す、各部としての機能が実現される。なお、図４は、サーバ１０のＨＤＤ９６等に格納されている生産計画情報ＤＢ（database）５２、生産状況情報ＤＢ５４も図示されている。
【００２２】
図４には、サーバ１０の機能ブロック図が示されている。ＣＰＵ９０は、プログラムを実行することにより、図４に示す、生産計画情報収集部３０、生産状況情報収集部３２、制御部３４、ライン生産完了時刻推定部３６、取得部としての整数計画問題生成部３８、整数計画問題ソルバ部４０、作業順表示部４６、として機能する。
【００２３】
生産計画情報収集部３０は、生産計画情報ＤＢ５２から生産計画情報を収集し、制御部３４に送信する。生産計画情報には、各図番の段取り時間や生産時間に関する情報が含まれる。
【００２４】
図５には、生産計画情報ＤＢ５２の具体的なデータ構造が示されている。図５に示すように、生産計画情報ＤＢ５２は、「マウンタライン」、「図番」、「段取り時間」、「生産時間」の各フィールドを有する。生産計画情報ＤＢ５２においては、どの「マウンタライン」（表面実装ライン２０）でどの「図番」を生産するかが格納されている。なお、同一のマウンタラインで生産される図番が複数ある場合、生産計画情報ＤＢ５２の上から順に生産されるものとする。また、「段取り時間」と「生産時間」のフィールドには、各図番の段取りと生産にどれだけの時間を要するのかが格納されている。例えば、生産計画情報ＤＢ５２には、マウンタラインＡにおいて、図番ａ、図番ｂの順に生産すること、図番ａ、ｂの生産の間に１５分の段取り時間が必要なこと、図番ａ、ｂの生産時間が１時間２０分、３時間５分であることなどが格納されている。
【００２５】
図４に戻り、生産状況情報収集部３２は、生産状況情報ＤＢ５４から生産状況情報を収集し、制御部３４に送信する。生産状況情報ＤＢ５４においては、各図番の生産状況に関する情報が管理されている。
【００２６】
図６には、生産状況情報ＤＢ５４のデータ構造の一例が示されている。図６に示すように、生産状況情報ＤＢ５４は、「マウンタライン」、「図番」、「段取り開始時刻」、「段取り終了時刻」、「生産開始時刻」、「生産完了時刻」の各フィールドを有する。生産状況情報ＤＢ５４においては、いずれかの「マウンタライン」でいずれかの「図番」を生産した場合のデータとして、「段取り開始時刻」と「段取り終了時刻」が格納されるとともに「生産開始時刻」と「生産完了時刻」が格納される。なお、生産が完了した図番であれば、「段取り開始時刻」、「段取り終了時刻」、「生産開始時刻」、「生産完了時刻」の全てのフィールドに時刻が格納される。また、段取りが終了し、生産を開始する図番であれば、「段取り開始時刻」、「段取り終了時刻」、「生産開始時刻」のフィールドに時刻が格納される。また、段取り作業が開始したが完了していない図番であれば、「段取り開始時刻」のフィールドに時刻が格納される。なお、「段取り開始時刻」、「段取り終了時刻」、「生産開始時刻」、「生産完了時刻」の全てのフィールドに時刻が格納されていなければ、段取り作業が開始していないことを意味する。
【００２７】
図４に戻り、制御部３４は、サーバ１０の各機能（各部）の処理を統括的に制御する。例えば、制御部３４は、生産計画情報収集部３０及び生産状況情報収集部３２が収集したデータを適切なタイミングで、各部３６〜４０、４６に送信したり、各部３６〜４０、４６に適切なタイミングで処理を実行させたりする。
【００２８】
ライン生産完了時刻推定部３６は、所定間隔で、各マウンタライン（表面実装ライン２０）で生産予定の全ての図番の生産が完了する時刻を推定する。
【００２９】
整数計画問題生成部３８は、整数計画問題ソルバ部４０で解く整数計画問題を生成する。具体的には、整数計画問題生成部３８は、変数、制約、目的関数を決定するとともに、一部の変数を固定値にすることで、整数計画問題を解く際の組み合わせ爆発対策を実行する。
【００３０】
整数計画問題ソルバ部４０は、ＧＬＰＫ（GNU Linear Programming Kit）等のソフトウェアを用いて、整数計画問題生成部３８が生成した整数計画問題を解く。整数計画問題ソルバ部４０は、整数計画問題を解くことにより、段取り作業の作業順を決定する。
【００３１】
例えば、図７（ａ）、図７（ｂ）に示すように、マウンタラインＡ、Ｂがあり、マウンタラインＡにおける図番１の生産終了時刻がｔ1、マウンタラインＢにおける図番３の生産終了時刻がｔ2であったとする。この場合、図７（ａ）のように、マウンタラインＡの段取り作業を先に実行すると、その間は、マウンタラインＢの段取り作業が行えず、段取り待ち時間が発生する。また、図７（ｂ）のように、マウンタラインＢの段取り作業を先に実行すると、その間は、マウンタラインＡの段取り作業が行えず、段取り待ち時間が発生する。本例では、マウンタラインＡの段取り作業を先に行った場合（図７（ａ））には、全ラインにおける生産完了時刻はＴとなり、マウンタラインＢの段取り作業を先に行った場合（図７（ｂ））には、全ラインにおける生産完了時刻はＴ’（Ｔ’のほうがＴよりも早い時刻）となる。すなわち、整数計画問題ソルバ部４０は、整数計画問題を解くことで、全てのラインの生産完了時刻が極力早くなるような最適な段取り作業の順番を決定することとしている。
【００３２】
作業順表示部４６は、整数計画問題ソルバ部４０の処理結果（段取り作業の作業順）を取得し、作業者用端末６０に送信して、作業者用端末６０に表示させる。
【００３３】
図１に戻り、作業者用端末６０は、作業者が携帯したり、生産ライン７０近傍に設置される端末であり、ＰＣ（Personal Computer）、タブレット型端末、スマートフォン等であるものとする。作業者用端末６０は、ディスプレイを備えており、サーバ１０で決定された段取り作業の作業順を表示することで、作業者による作業を支援する。
【００３４】
（サーバ１０の処理）
以下、サーバ１０の処理について、図８、図１０、図１１のフローチャートに沿って、詳細に説明する。
【００３５】
（図８の処理について）
図８の処理は、図１０の処理の開始、中断のタイミングを制御する処理である。図８の処理においては、まず、ステップＳ１０において、制御部３４は、所定秒数（例えば１０秒）だけ待機する。次いで、ステップＳ１２では、制御部３４は、トリガー条件が成立したか否かを判断する。ここで、制御部３４は、以下の条件（１）、（２）のいずれかが成立した場合にトリガー条件が成立したと判断することができる。
（１） 前回のトリガー条件が成立してから一定時間（例えば３０分）が経過したとき。
（２） 前回のトリガー条件が成立した時点のマウンタラインα（α＝Ａ，Ｂ，…）の生産完了時刻の推定値Ｔαと現時点のマウンタラインαの生産完了時刻の推定値Ｔα’の差の絶対値Ｄα（＝｜Ｔα’−Ｔα｜）を求め、マウンタラインαの少なくとも１つ以上が一定値（例えば１０分）以上になるとき。
【００３６】
なお、生産完了時刻の推定値Ｔiは、後述するステップＳ１２の判断が肯定されたタイミングごとに、ライン生産完了時刻推定部３６によって推定される。具体的には、ライン生産完了時刻推定部３６は、各時点において各ラインのボトルネック工程で生産している図番を特定し、現在の図番の生産が完了するまでの時間を同一図番の生産履歴に基づいて推定する。また、ライン生産完了時刻推定部３６は、以降に生産する図番の生産が完了するまでの時間を、生産計画情報や同種の図番の生産履歴に基づいて推定する。そして、ライン生産完了時刻推定部３６は、推定した各図番の生産が完了するまでの時間を合算して得られた時間を現在の時刻に加算することで、各ラインの生産完了時刻を推定する。なお、生産完了時刻の推定値は、図９に示すようなテーブル（内部テーブル）において、管理されているものとする。図９のテーブルには、「マウンタライン」と「前回トリガー条件成立時の生産完了時刻推定値」のテーブルが用意されている。
【００３７】
次いで、ステップＳ１４では、制御部３４は、最適化プロセスを実行中であるか否かを判断する。なお、最適化プロセスは、図１０のフローチャートに沿った処理を意味する。ステップＳ１４の判断が肯定された場合には、ステップＳ１６に移行する。ステップＳ１６に移行すると、制御部３４は、最適化プロセスを中断し、ステップＳ１８に移行する。一方、ステップＳ１４の判断が否定された場合には、ステップＳ１６を経ずに、ステップＳ１８に移行する。
【００３８】
ステップＳ１８に移行すると、制御部３４は、最適化プロセスを開始する。この場合、制御部３４は、図１０のフローチャートの処理を開始する。その後は、ステップＳ１０に戻り、制御部３４は、上述した処理を繰り返し実行する。
【００３９】
（図１０の処理（最適化プロセス）について）
次に、図１０の処理（最適化プロセス）について説明する。なお、図１０の処理は、最適な段取り作業の順番を決定する処理である。
【００４０】
図１０の処理では、まず、ステップＳ３０において、整数計画問題生成部３８が、生産計画情報収集部３０及び制御部３４を介して、生産計画情報ＤＢ５２から現時点で未だ段取り作業が行われていない図番の生産計画情報を取得する。
【００４１】
次いで、ステップＳ３１において、制御部３４は、閾値ＤＴを一例として１５（分）に設定する。
【００４２】
次いで、ステップＳ３２では、整数計画問題ソルバ部４０は、現在の閾値ＤＴの条件で整数計画問題を解く。
【００４３】
ここで、ステップＳ３２における整数計画問題ソルバ部４０の処理の前提として、整数計画問題生成部３８は、整数計画問題として、以下に示すような変数、制約、目的関数を定めている。なお、図番ｉ（＝１、２、…、Ｎ）は、ステップＳ３２が行われる時点で段取りが開始されていない図番を表しており、段取りが既に始まっている図番や段取りが既に終わっている図番は含まない。
【００４４】
（変数）
ｘij：ｉ番目の図番とｊ番目の図番の順番を表す。
ｉがｊより先の時０、逆の時１。
ｉ＝１，…，Ｎ、ｊ＝１，…，Ｎ、ｉ≠ｊ。
ｄｓi：ｉ番目図番の段取り開始時刻
ｄｅi：ｉ番目図番の段取り終了時刻
ｍｓi：ｉ番目図番の生産開始時刻
ｍｅi：ｉ番目図番の生産終了時刻
Ｄi：ｉ番目図番の段取り時間
Ｍi：ｉ番目図番の生産時間
Ｓi：ｉ番目図番の仮の段取り開始時刻（詳細は後述する）
Ｌi：ｉ番目の図番と同じラインで順番が１つ前の図番
（制約）
∀ｉ  ｍｓi＝ｄｅi：図番の段取り終了時刻と生産開始時刻の関係
∀ｉ  ｄｅi＝ｄｓi＋Ｄi：図番の段取り開始時刻と段取り終了時刻の関係
∀ｉ  ｍｅi＝ｍｓi＋Ｍi：図番の生産開始時刻と生産終了時刻の関係
∀ｉ  ｍｅLi≦ｄｓi：１つ前の図番の生産終了時刻と段取り開始時刻の関係
生産ラインが異なり、ｉ＜ｊとなる全ての図番ｉ，ｊの組み合わせについて、
ｄｓi≧ｄｅi−Ｕ×（１−ｘij）、ｄｓj≧ｄｅi−Ｕ×ｘij
：全ての図番の段取り時間帯（ｄｓi〜ｄｅi）が重ならないという制約
ただし、Ｕは段取り時間と生産時間の合計と比較して十分大きな数
Ｕ≧Σi（Ｄi＋Ｍi）
∀ｉ  ｍｓi≧Ｓi：仮の段取り時刻Ｓと段取り開始時刻の関係
（目的関数）
∀ｉ  ｆ≧ｍｅi  最小化
【００４５】
ここで、上記変数に含まれている、マウンタラインαに属する図番ｉの仮の段取り開始時刻Ｓiの計算方法について、図１１のフローチャートに沿って説明する。なお、図１１の処理は、整数計画問題生成部３８が整数計画問題を生成するたびに実行する処理である。ここで、仮の段取り開始時刻Ｓiとは、図番ｉの段取り作業を開始できる最も早い時刻（段取り待ち時間を０とした場合の時刻）を意味する。
【００４６】
図１１の処理では、まず、ステップＳ５０において、整数計画問題生成部３８は、生産状況情報ＤＢ５４（図６）に条件１を満たす図番があるか否かを判断する。ここで、条件１とは、
「マウンタラインαに属し、段取り開始時刻が記録されており、かつ段取り終了時刻が記録されていない図番」
という条件である。このステップＳ５０の判断が肯定された場合には、ステップＳ５２に移行し、整数計画問題生成部３８は、条件を満たす図番を図番ｋとする。
【００４７】
次いで、ステップＳ５４では、整数計画問題生成部３８は、図番ｋの生産終了時刻Ｅkを次式（１）に基づいて計算する。
Ｅk＝図番ｋの段取り開始時刻＋図番ｋの段取り時間＋図番ｋの生産時間
…（１）
【００４８】
なお、図番ｋの段取り開始時刻は、生産状況情報ＤＢ５４から取得でき、図番ｋの段取り時間、図番ｋの生産時間は、生産計画情報ＤＢ５２から取得できる。
【００４９】
ステップＳ５４の処理が終了した後は、ステップＳ６８に移行する。
【００５０】
一方、ステップＳ５０の判断が否定された場合には、ステップＳ５６に移行し、整数計画問題生成部３８は、生産状況情報ＤＢ５４に条件２を満たす図番があるか否かを判断する。ここで、条件２とは、
「マウンタラインαに属し、段取り終了時刻又は生産開始時刻のいずれか一方が記録されており、かつ生産終了時刻が記録されていない図番」
という条件である。このステップＳ５６の判断が肯定された場合には、ステップＳ５８に移行し、整数計画問題生成部３８は、条件を満たす図番を図番ｋとする。そして、ステップＳ６０では、整数計画問題生成部３８は、図番ｋの生産終了時刻Ｅkを次式（２）に基づいて計算する。
Ｅk＝図番ｋの生産開始時刻＋図番ｋの生産時間                …（２）
【００５１】
なお、図番ｋの生産開始時刻は、生産状況情報ＤＢ５４から取得でき、図番ｋの生産時間は、生産計画情報ＤＢ５２から取得できる。
【００５２】
ステップＳ６０の処理が終了した後は、ステップＳ６８に移行する。
【００５３】
一方、ステップＳ５６の判断が否定された場合には、ステップＳ６２に移行し、整数計画問題生成部３８は、生産状況情報ＤＢ５４に条件３を満たす図番があるか否かを判断する。ここで、条件３とは、
「マウンタラインαに属し、記録された生産終了時刻が最も遅い図番」
という条件である。このステップＳ６２の判断が肯定された場合には、ステップＳ６４に移行し、整数計画問題生成部３８は、条件を満たす図番を図番ｋとする。そして、ステップＳ６６では、整数計画問題生成部３８は、図番ｋの生産終了時刻Ｅkを次式（３）とする。
Ｅk＝図番ｋの生産終了時刻                  …（３）
【００５４】
なお、図番ｋの生産終了時刻は、生産状況情報ＤＢ５４から取得できる。
【００５５】
ステップＳ６６の処理が終了した後は、ステップＳ６８に移行する。一方、ステップＳ６２の判断が否定された場合には、図１１の全処理を終了する。
【００５６】
ステップＳ６８に移行すると、整数計画問題生成部３８は、マウンタラインαで図番ｋの次の図番（図番ｉ）があるか否かを判断する。このステップＳ６８の判断が否定された場合には、図１１の全処理を終了するが、肯定された場合には、ステップＳ７０に移行する。
【００５７】
ステップＳ７０に移行すると、整数計画問題生成部３８は、図番ｉの仮の段取り時刻Ｓiを次式（４）のように定義する。
Ｓi＝Ｅk        …（４）
【００５８】
次いで、ステップＳ７２では、整数計画問題生成部３８は、図番ｉのＥiを次式（５）に基づいて計算する。
Ｅi＝Ｓi＋図番ｉの段取り時間＋図番ｉの生産時間      …（５）
【００５９】
なお、図番ｉの段取り時間、図番ｉの生産時間は、生産計画情報ＤＢ５２から取得できる。
【００６０】
次いで、ステップＳ７４では、整数計画問題生成部３８は、図番ｋを図番ｉで置き換え、Ｅkの値をＥiで置き換える。ステップＳ７４の後は、ステップＳ６８に戻り、マウンタラインαで図番ｋの次の図番がなくなるまでステップＳ６８〜Ｓ７４の処理・判断を繰り返し実行する。これにより、マウンタラインαで行う必要のある段取り作業の仮の段取り作業時刻Ｓiをすべて算出することが可能となっている。
【００６１】
なお、図１１の処理は、全てのマウンタラインに対して実行される。
【００６２】
（組み合わせ爆発対策）
また、整数計画問題生成部３８は、整数計画問題ソルバ部４０が整数計画問題を解く際に、組み合わせ爆発が生じないようにするため、図１１の処理により算出した仮の段取り開始時刻と、閾値ＤＴと、を用いて、変数xijの少なくとも一部を固定値（「０」又は「１」）とする。なお、ｘijは、上述したように、異なるマウンタラインのｉ番目の図番とｊ番目の図番の順番を表す変数である。以下、変数ｘijの一部を固定値にする方法について説明する。
【００６３】
整数計画問題生成部３８は、異なるマウンタラインの図番ｉと図番ｊの間でＳiとＳjの差（＝Ｓj−Ｓi）が閾値ＤＴ（ここでは、１５分）以上であれば、図番ｉと図番ｊの段取り順序関係を図番ｉ、図番ｊの順に固定する。この場合、整数計画問題の変数ｘijを０に固定する。
【００６４】
一方、異なるマウンタラインの図番ｉと図番ｊの間でＳiとＳjの差(Ｓj−Ｓi)が閾値ＤＴ未満であれば、整数計画問題生成部３８は、図番ｉと図番ｊの段取り順序関係は固定しない（変数のままとする）。
【００６５】
例えば、図１２に示す、マウンタラインＡの図番２の仮の段取り作業時刻Ｓ2と、マウンタラインＢの図番４の仮の段取り作業時刻Ｓ4との差が閾値ＤＴ（＝１５分）以上であったとする。この場合、変数ｘ24は０に固定され、閾値ＤＴ未満であれば、変数ｘ24は変数のままとされる。
【００６６】
このように、変数ｘijの一部を固定値とすることで、変数の数を少なくできる。また、探索する組み合わせの数を減らすことができるので、組み合わせ爆発の発生を抑制することができる。
【００６７】
以上のような組み合わせ爆発対策の下、整数計画問題ソルバ部４０が、図１０のステップＳ３２において、上述した変数、制約の下、目的関数をＧＬＰＫ等を用いて解く。これにより、段取り作業の順番の最適化結果を少ない処理量で求めることができる。
【００６８】
図１０に戻り、ステップＳ３４では、整数計画問題ソルバ部４０は、最適化結果を内部メモリに登録する。この場合、一例として、図１３に示すような段取り作業の順番の最適化結果が内部メモリに登録されることになる。なお、図１３の最適化結果には、段取り作業の順番を示す「作業順」と、「マウンタライン」及び「図番」の情報と、「段取り開始予定時刻」及び「段取り終了予定時刻」の情報が格納される。
【００６９】
次いで、ステップＳ３６では、整数計画問題ソルバ部４０は、現在の閾値ＤＴに所定数（例えば１５（分））を加算する（ＤＴ＝ＤＴ＋１５）。その後は、ステップＳ３２に戻り、新たな閾値ＤＴのもとで、ステップＳ３２を実行する。そして、ステップＳ３４では、新たな閾値ＤＴ（＝３０）で求められた段取り作業の順番で、内部メモリに登録されていた段取り作業の順番を更新する。なお、閾値が大きいほど固定値となるｘijは減るため、処理時間は長くなるものの、より適切な段取り作業の順番が得られる。したがって、図１０の処理が実行されている間は、新たに求められた段取り作業の順番で内部メモリを更新する。このように、本実施形態では、最初は閾値を小さく設定して、段取り作業の順番を短時間で算出し、時間が許す限り閾値を大きくしながら、より精度の高い段取り作業の順番を算出することとしている。これにより、処理時間がかかりすぎて、必要なときに段取り作業の順番を作業者に提供できないという事態の発生を極力抑制することができる。
【００７０】
なお、図１０の処理は、前述のように、図８のトリガー条件が成立した段階で一旦中断される。そして、トリガー条件成立後においては、段取り作業の順番を格納する内部メモリをリセットした後、ステップＳ３０から処理を再開する。この場合、ステップＳ３０では、整数計画問題生成部３８がトリガー条件成立後のタイミングで未だ段取り作業が行われていない図番の生産計画情報を生産計画情報ＤＢ５２から新たに取得する。そして、整数計画問題生成部３８は、新たに取得した生産計画情報に基づいて整数計画問題を定式化し、上述したように閾値ＤＴを徐々に大きくしながら、段取り作業の順番を決定する処理を繰り返し実行する。
【００７１】
段取り作業を行う作業者は、必要に応じて（例えば段取り作業を行う必要が生じた段階で）、内部メモリに格納された図１３の情報を作業者用端末６０において呼び出すことができる。これにより、作業者は、最新の最適化された段取り作業順にしたがって、段取り作業を行うことが可能となる。
【００７２】
なお、本実施形態では、整数計画問題生成部３８と、整数計画問題ソルバ部４０とを含んで、生産計画情報と、予め定めた制約と、に基づいて、段取り作業の実行順の最適化の問題を整数計画問題として定式化し、整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する決定部としての機能が実現されている。
【００７３】
以上、詳細に説明したように、本実施形態によると、整数計画問題生成部３８は、生産計画情報ＤＢ５２から未だ段取り作業が行われていない図番の生産計画情報を取得し（Ｓ３０）、取得した生産計画情報と、予め定めた制約と、に基づいて、段取り作業の実行順の最適化の問題を整数計画問題として定式化する（Ｓ３２）。そして、整数計画問題ソルバ部４０は、整数計画問題ソルバ（ＧＬＰＫ等）を用いて各図番の段取り作業の実行順を決定する（Ｓ３２）。この場合、整数計画問題生成部３８は、生産計画情報に基づいて、各マウンタラインにおいて各図番の仮の段取り作業開始時刻Ｓiを算出し（図１１）、異なるマウンタラインに属する図番ｉのＳiと図番ｊのＳjとの差が閾値ＤＴ以上であった場合に、図番ｉと図番ｊの段取り順序関係をｉ→ｊの順番に固定する。これにより、本実施形態では、未だ段取り作業が行われていない図番の生産計画情報に基づいて整数計画問題を定式化し、整数計画問題ソルバを用いて整数計画問題を解くことにより、適切な段取り作業の実行順を決定することができる。また、整数計画問題において、各図番の仮の段取り作業開始時刻を求め、異なるマウンタラインの図番の仮の段取り作業開始時刻の差が閾値以上であれば、各図番の段取り作業の順番を固定するので、整数計画問題を解く際の変数の数が減り、組み合わせ爆発が生じるのを抑制することができる。
【００７４】
ここで、図１４（ａ）には、比較例として、マウンタラインＡ〜Ｆにおいて、従来のように段取り作業が必要になった順に段取り作業を実行する場合の、段取り時間と生産時間が示されている。また、図１４（ｂ）には、比較例（図１４（ａ））と同一の生産計画に関し、本実施形態のようにして整数計画問題を解いて段取り作業の順番を決定した場合の、段取り時間と生産時間が示されている。なお、図１４（ａ）、図１４（ｂ）の黒い矩形部分は段取り作業を示し、白い矩形部分は生産を示している。
【００７５】
図１４（ａ）、図１４（ｂ）を比較すると分かるように、本実施形態のように最適化問題を解いて段取り作業の順番を決定することにより、全てのマウンタラインにおいて生産が完了する時刻が早くなっていることが分かる。なお、本例では、本実施形態のほうが比較例よりも４％程度削減することができている。
【００７６】
また、本実施形態によると、整数計画問題ソルバ部４０は、閾値ＤＴを段階的に大きくしながら（Ｓ３６）、段取り作業の実行順を決定する処理を繰り返し実行し、繰り返す度に実行順を更新する（Ｓ３４）。これにより、最初は閾値を小さく設定して、段取り作業の順番を短時間で算出し、時間が許す限り閾値を大きくしながら、より精度の高い段取り作業の実行順を算出して、更新することができる。これにより、処理時間がかかりすぎて、作業者が必要なときに段取り作業の順番を提供できないという事態の発生を極力抑制することができる。
【００７７】
また、本実施形態では、所定時間ごと又は各ラインの生産が生産計画から所定以上乖離するごとに、整数計画問題生成部３８は、未だ段取り作業が行われていない製品の生産計画情報を生産計画情報ＤＢ５２から取得する（Ｓ３０）。また、整数計画問題ソルバ部４０は、各図番の段取り作業の実行順を格納する内部メモリをリセットして、各図番の段取り作業の実行順を決定する。これにより、マウンタラインの生産状況に応じて、段取り作業の実行順を適切に決定することができる。
【００７８】
なお、上記実施形態では、閾値ＤＴを順次変更しながら整数計画問題の求解を繰り返す場合について説明したが、処理量が然程大きくない場合には、異なる閾値ＤＴを用いた複数の整数計画問題を同時並行的に実行することとしてもよい。
【００７９】
なお、上記実施形態では、作業者が段取り作業の順番の表示を要求した際に、作業順表示部４６が作業者用端末６０に送信し、表示する場合について説明したが、これに限られるものではない。例えば、作業順表示部４６は、随時、最新の段取り作業の順番を作業者用端末６０に送信し、表示するようにしてもよい。
【００８０】
なお、サーバ１０は、上記実施形態（図１）のように、生産ライン７０を所有する会社等で管理されるオンプレミスの形態であってもよいし、図１２に示す生産システム２００のようにクラウドサーバの形態であってもよい。図１２のクラウドサーバ１１０は、工場１５０内の生産ライン７０からネットワーク１８０を介して送信されてくるデータを取得して、処理し、処理結果を作業者用端末６０に提供する。なお、クラウドサーバ１１０と、工場１５０の所在国は異なっていてもよい。
【００８１】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【００８２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００８４】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【００８５】
１０  サーバ（作業支援装置）
２０  表面実装ライン（ライン）
３８  整数計画問題生成部（取得部、決定部の一部）
４０  整数計画問題ソルバ部（決定部の一部）
７０  生産ライン（システム）
【図１】
2017187511.tif 000003
【図２】
2017187511.tif 000004
【図３】
2017187511.tif 000005
【図４】
2017187511.tif 000006
【図５】
2017187511.tif 000007
【図６】
2017187511.tif 000008
【図７】
2017187511.tif 000009
【図８】
2017187511.tif 000010
【図９】
2017187511.tif 000011
【図１０】
2017187511.tif 000012
【図１１】
2017187511.tif 000013
【図１２】
2017187511.tif 000014
【図１３】
2017187511.tif 000015
【図１４】
2017187511.tif 000016
【図１５】
2017187511.tif 000017
【手続補正書】
【提出日】平成30年7月25日(2018.7.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数種類の製品を生産する複数のラインを備え、前記複数のラインそれぞれにおいて、生産する製品の種類を切り替える際に切り替え後の製品を生産するための段取り作業を必要とするシステムにおける段取り作業を支援する作業支援装置であって、
各製品の段取り時間、各製品の生産時間、各ラインにおける製品の生産順の情報を含む生産計画情報のうち、未だ段取り作業が行われていない製品の生産計画情報を記憶部から取得する取得部と、
取得した前記生産計画情報と、予め定めた制約と、に基づいて、段取り作業の実行順の最適化の問題を整数計画問題として定式化し、整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する決定部と、を備え、
前記決定部は、前記生産計画情報に基づいて、各ラインにおいて各製品の段取り作業を開始できる最も早い時刻を算出し、第１のラインで生産される第１の製品の段取り作業を開始できる最も早い時刻と、前記第１のラインとは異なる第２のラインで生産される第２の製品の段取り作業を開始できる最も早い時刻と、の差が所定の閾値以上であった場合に、前記第１の製品の段取り作業を前記第２の製品の段取り作業よりも前に実行すると決定した上で、前記整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する、ことを特徴とする作業支援装置。
【請求項２】
前記決定部は、前記閾値を段階的に大きくしながら、前記各製品の段取り作業の実行順を決定する処理を繰り返し実行し、繰り返す度に前記実行順を更新する、ことを特徴とする請求項１に記載の作業支援装置。
【請求項３】
所定時間ごと又は前記システムにおける生産が前記生産計画情報から所定以上乖離するごとに、
前記取得部は、未だ段取り作業が行われていない製品の生産計画情報を前記記憶部から取得し、
前記決定部は、前記各製品の段取り作業の実行順をリセットして、前記各製品の段取り作業の実行順を決定する処理を再開することを特徴とする請求項１又は２に記載の作業支援装置。
【請求項４】
複数種類の製品を生産する複数のラインを備え、前記複数のラインそれぞれにおいて、生産する製品の種類を切り替える際に切り替え後の製品を生産するための段取り作業を必要とするシステムにおける段取り作業を支援する作業支援方法であって、
各製品の段取り時間、各製品の生産時間、各ラインにおける製品の生産順の情報を含む生産計画情報のうち、未だ段取り作業が行われていない製品の生産計画情報を記憶部から取得し、
取得した前記生産計画情報と、予め定めた制約と、に基づいて、段取り作業の実行順の最適化の問題を整数計画問題として定式化し、整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する、処理をコンピュータが実行し、
前記決定する処理において、前記生産計画情報に基づいて、各ラインにおいて各製品の段取り作業を開始できる最も早い時刻を算出し、第１のラインで生産される第１の製品の段取り作業を開始できる最も早い時刻と、前記第１のラインとは異なる第２のラインで生産される第２の製品の段取り作業を開始できる最も早い時刻と、の差が所定の閾値以上であった場合に、前記第１の製品の段取り作業を前記第２の製品の段取り作業よりも前に実行すると決定した上で、前記整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する、ことを特徴とする作業支援方法。
【請求項５】
複数種類の製品を生産する複数のラインを備え、前記複数のラインそれぞれにおいて、生産する製品の種類を切り替える際に切り替え後の製品を生産するための段取り作業を必要とするシステムにおける段取り作業を支援する作業支援プログラムであって、
各製品の段取り時間、各製品の生産時間、各ラインにおける製品の生産順の情報を含む生産計画情報のうち、未だ段取り作業が行われていない製品の生産計画情報を記憶部から取得し、
取得した前記生産計画情報と、予め定めた制約と、に基づいて、段取り作業の実行順の最適化の問題を整数計画問題として定式化し、整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する、処理をコンピュータに実行させ、
前記決定する処理において、前記生産計画情報に基づいて、各ラインにおいて各製品の段取り作業を開始できる最も早い時刻を算出し、第１のラインで生産される第１の製品の段取り作業を開始できる最も早い時刻と、前記第１のラインとは異なる第２のラインで生産される第２の製品の段取り作業を開始できる最も早い時刻と、の差が所定の閾値以上であった場合に、前記第１の製品の段取り作業を前記第２の製品の段取り作業よりも前に実行すると決定した上で、前記整数計画問題ソルバを用いて各製品の段取り作業の実行順を決定する、ことを特徴とする作業支援プログラム。
【国際調査報告】
2017187511.tif 000018
2017187511.tif 000019