(57)【特許請求の範囲】
【請求項１】
納品先が指定された仕分箱に商品を払い出す仕分部により前記商品を仕分ける仕分設備を制御する仕分制御装置であって、
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、前記仕分設備と通信可能な通信インタフェースと、を有し、
前記記憶デバイスは、前記仕分部内で滞留中の個々の物品について払出先の仕分箱が決定済みか否かを示す仕分部内商品情報と、前記仕分部から前記仕分箱への払出対象の個々の物品について払出済みか否かを示す梱包明細情報と、を記憶しており、
前記プロセッサは、
前記滞留中の個々の物品のうち前記払出先の仕分箱が未定の第１物品を前記仕分部内商品情報から特定する第１特定処理と、
前記払出対象の個々の物品のうち前記第１特定処理によって特定された前記第１物品と同一商品の第２物品を前記仕分部内商品情報または前記梱包明細情報から特定する第２特定処理と、
前記第２特定処理によって前記第２物品が特定された場合、前記第１物品の払出先の仕分箱を、前記第２物品の払出先の仕分箱に決定する決定処理と、
前記第１物品を前記決定処理によって決定された払出先の仕分箱に仕分けるための指示である第１払出指示情報を生成する第１生成処理と、
前記第１生成処理によって生成された前記第１払出指示情報を前記仕分部に送信する第１送信処理と、
を実行することを特徴とする仕分制御装置。
【請求項２】
請求項１に記載の仕分制御装置であって、
前記プロセッサは、
払出先候補の仕分箱を指定する納品先に対応しかつ払出先の仕分箱が未定の商品が存在する場合、前記未定の商品を前記払出先候補の仕分箱に払い出すための梱包計算ルールが順守可能か否かを判断する第１判断処理と、
前記第１判断処理によって順守可能であると判断された場合、前記梱包明細情報に前記払出先候補の仕分箱と前記未定の商品との組み合わせを登録する登録処理と、
前記滞留中の個々の物品のうち前記未定の商品の個数分の物品について、前記払出先の仕分箱に仕分けるための指示である第２払出指示情報を生成する第２生成処理と、
前記第２生成処理によって生成された前記第２払出指示情報を前記仕分部に送信する第２送信処理と、
を実行することを特徴とする仕分制御装置。
【請求項３】
請求項２に記載の仕分制御装置であって、
前記プロセッサは、
前記仕分部内商品情報において、前記未定の商品の個数分の物品について前記払出先候補の仕分箱を登録し、前記梱包明細情報において、前記払出先候補の仕分箱と前記未定の商品との組み合わせについて、前記未定の商品の個数分の物品の識別情報を登録する更新処理を実行することを特徴とする仕分制御装置。
【請求項４】
請求項２に記載の仕分制御装置であって、
前記梱包計算ルールは、前記払出先候補の仕分箱の容積と、前記未定の商品の個数分の容積と、に基づいて、前記払出先候補の仕分箱に前記未定の商品が前記未定の商品の個数分梱包可能か否かを前記プロセッサが計算するルールであることを特徴とする仕分制御装置。
【請求項５】
請求項２に記載の仕分制御装置であって、
前記プロセッサは、
前記第１判断処理によって順守不可能であると判断された場合、前記梱包明細情報において、前記払出先候補の仕分箱への払出対象の全物品について払出済みであるか否かを判断する第２判断処理と、
前記第２判断処理によって払出済みであると判断された場合、前記払出先候補の仕分箱を空の仕分箱に切り替えるための指示である箱切替指示情報を生成する第３生成処理と、
前記第３生成処理によって生成された前記箱切替指示情報を前記仕分設備に送信する第３送信処理と、
を実行することを特徴とする仕分制御装置。
【請求項６】
納品先が指定された仕分箱に商品を払い出す仕分部により前記商品を仕分ける仕分設備を制御する仕分制御装置による仕分制御方法であって、
前記仕分制御装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、前記仕分設備と通信可能な通信インタフェースと、を有し、
前記記憶デバイスは、前記仕分部内で滞留中の個々の物品について払出先の仕分箱が決定済みか否かを示す仕分部内商品情報と、前記仕分部から前記仕分箱への払出対象の個々の物品について払出済みか否かを示す梱包明細情報と、を記憶しており、
前記仕分制御方法は、
前記プロセッサが、
前記滞留中の個々の物品のうち前記払出先の仕分箱が未定の第１物品を前記仕分部内商品情報から特定する第１特定処理と、
前記払出対象の個々の物品のうち前記第１特定処理によって特定された前記第１物品と同一商品の第２物品を前記仕分部内商品情報または前記梱包明細情報から特定する第２特定処理と、
前記第２特定処理によって前記第２物品が特定された場合、前記第１物品の払出先の仕分箱を、前記第２物品の払出先の仕分箱に決定する決定処理と、
前記第１物品を前記決定処理によって決定された払出先の仕分箱に仕分けるための指示である第１払出指示情報を生成する第１生成処理と、
前記第１生成処理によって生成された前記第１払出指示情報を前記仕分部に送信する第１送信処理と、
を実行することを特徴とする仕分制御方法。
【請求項７】
納品先が指定された仕分箱に商品を払い出す仕分部により前記商品を仕分ける仕分設備の制御をプロセッサに実行させる仕分制御プログラムであって、
前記プロセッサは、記憶デバイスにアクセス可能であり、
前記記憶デバイスは、前記仕分部内で滞留中の個々の物品について払出先の仕分箱が決定済みか否かを示す仕分部内商品情報と、前記仕分部から前記仕分箱への払出対象の個々の物品について払出済みか否かを示す梱包明細情報と、を記憶しており、
前記プロセッサに、
前記滞留中の個々の物品のうち前記払出先の仕分箱が未定の第１物品を前記仕分部内商品情報から特定する第１特定処理と、
前記払出対象の個々の物品のうち前記第１特定処理によって特定された前記第１物品と同一商品の第２物品を前記仕分部内商品情報または前記梱包明細情報から特定する第２特定処理と、
前記第２特定処理によって前記第２物品が特定された場合、前記第１物品の払出先の仕分箱を、前記第２物品の払出先の仕分箱に決定する決定処理と、
前記第１物品を前記決定処理によって決定された払出先の仕分箱に仕分けるための指示である第１払出指示情報を生成する第１生成処理と、
前記第１生成処理によって生成された前記第１払出指示情報を前記仕分部に送信する第１送信処理と、
を実行させることを特徴とする仕分制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仕分対象を仕分ける仕分制御装置、仕分制御方法、および仕分制御プログラムに関する。
【背景技術】
【０００２】
倉庫内の一作業として商品の仕分作業がある。仕分作業とは、納品先からの発注に応じて、商品を納品先別に仕分ける作業である。仕分作業の一形態として、ソータなどの設備を用いて自動で仕分ける方法がある。たとえば、ソータによる自動仕分では、商品投入口（インダクション）から作業者が商品を投入し、コンベアによって商品が自動搬送され、コンベアと連結した複数のシュートに設置された仕分箱に商品を自動で落とすことで、仕分作業の自動化が実現される。【０００３】
また、１つの納品先からの発注量が１つの仕分箱に入らない場合、複数の仕分箱に分割して仕分ける必要がある。どの仕分箱にどの商品を何個仕分けるかを決定する処理を、本明細書では「梱包計算」と呼ぶこととする。ここで、納品先での荷受け作業の効率の観点から、各仕分箱には、その仕分箱に入っている商品とその個数の情報を有する梱包明細が同梱または貼付されていることが望ましい。【０００４】
また、特に納品先が販売店である場合、納品先での商品陳列作業の効率化の観点から、「１種類の商品が複数の仕分箱に分割されないように仕分ける」、「商品カテゴリ毎に仕分箱を分ける」など、梱包計算におけるルールが定められていることが一般的である。以上により、自動仕分においても梱包明細の同梱や梱包計算ルールを順守することが重要である。【０００５】
梱包明細の同梱を実現する自動仕分に関する既存技術には、たとえば、下記特許文献１の仕分方法がある。特許文献１は、仕分作業に先立って梱包計算を実施して各仕分箱に仕分ける商品・個数の情報を作成し、その情報を表示・出力する仕分方法を開示する。具体的には、たとえば、特許文献１の仕分方法は、各仕分箱に仕分ける商品・個数を事前に決めておき、自動仕分設備を用いてその通りに仕分ける方法である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４‐１４８４０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した特許文献１の仕分方法では、自動仕分設備が保有しているシュートの数より仕分箱数が多い場合、すべての仕分箱を同時にシュートに設置することができない。したがって、あるシュートに設置した仕分箱への仕分が完了したら、そのシュートに次の仕分箱を設置するという方法をとる必要がある。【０００８】
一方、投入されてから仕分けられるまでの間に商品が滞在する物理的な領域（以降、仕分部と呼ぶ）において、その内部に溜められる商品の個数（以降、容量と呼ぶ）に上限が存在する。そのため、特許文献１のように事前に梱包計算をする方法では、シュートに設置されていない仕分箱向けの商品で仕分部が埋まってしまうと、投入も仕分もできないデッドロックの状態が発生するという問題がある。【０００９】
本問題を回避する１つの方法として、デッドロックが起きないような商品投入順序を予め策定しておき、その順序の通りに投入するという方法がある。しかしながら、当該方法では、商品投入順序を制御するための設備や、いわゆる水すまし作業が必要となる。【００１０】
本発明は、商品投入順序の制御を必要としない自動仕分を実現することを目的とする。
【課題を解決するための手段】
【００１１】
本願において開示される発明の一側面となる仕分制御装置、仕分制御方法、および仕分制御プログラムは、納品先が指定された仕分箱に商品を払い出す仕分部により前記商品を仕分ける仕分設備を制御する仕分制御装置、仕分制御方法、および仕分制御プログラムである。仕分制御装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、前記仕分設備と通信可能な通信インタフェースと、を有する。前記記憶デバイスは、前記仕分部内で滞留中の個々の物品について払出先の仕分箱が決定済みか否かを示す仕分部内商品情報と、前記仕分部から前記仕分箱への払出対象の個々の物品について払出済みか否かを示す梱包明細情報と、を記憶する。前記プロセッサは、前記滞留中の個々の物品のうち前記払出先の仕分箱が未定の第１物品を前記仕分部内商品情報から特定する第１特定処理と、前記払出対象の個々の物品のうち前記第１特定処理によって特定された前記第１物品と同一商品の第２物品を前記仕分部内商品情報または前記梱包明細情報から特定する第２特定処理と、前記第２特定処理によって前記第２物品が特定された場合、前記第１物品の払出先の仕分箱を、前記第２物品の払出先の仕分箱に決定する決定処理と、前記第１物品を前記決定処理によって決定された払出先の仕分箱に仕分けるための指示である第１払出指示情報を生成する第１生成処理と、前記第１生成処理によって生成された前記第１払出指示情報を前記仕分部に送信する第１送信処理と、を実行することを特徴とする。
【発明の効果】
【００１２】
本発明の代表的な実施の形態によれば、商品投入順序の制御を必要としない自動仕分を実現することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１３】
【図１】図１は、仕分設備例を示す説明図である。
【図２】図２は、仕分システムのシステム構成例を示す説明図である。
【図３】図３は、商品マスタテーブルの記憶内容例を示す説明図である。
【図４】図４は、仕分口情報テーブルの記憶内容例を示す説明図である。
【図５】図５は、仕分箱情報テーブルの記憶内容例を示す説明図である。
【図６】図６は、物量情報テーブルの記憶内容例を示す説明図である。
【図７】図７は、仕分部内商品情報テーブルの記憶内容例を示す説明図である。
【図８】図８は、梱包明細情報テーブルの記憶内容例を示す説明図である。
【図９】図９は、商品仕分シーケンス例を示す説明図である。
【図１０】図１０は、図９に示した指示生成処理（ステップＳ９０３）の詳細な処理手順例を示すフローチャートである。
【図１１】図１１は、第１払出指示生成処理（ステップＳ１００１）の詳細な処理手順例を示すフローチャートである。
【図１２】図１２は、第２払出指示生成処理（ステップＳ１００２）の詳細な処理手順例を示すフローチャートである。
【図１３】図１３は、箱切替指示生成処理（ステップＳ１００３）の詳細な処理手順例を示すフローチャートである。
【図１４】図１４は、梱包明細の一例を示す説明図である。
【発明を実施するための形態】
【００１４】
＜仕分設備例＞
図１は、仕分設備例を示す説明図である。（Ａ）は、ピースソータ１００Ａを示し、（Ｂ）は、バケット自動倉庫システム１００Ｂを示す。ピースソータ１００Ａは、投入部１０１と、第１仕分部１０２Ａと、梱包部１０３と、を有する。投入部１０１は、倉庫内の棚からピッキングされた商品１１０を第１仕分部１０２Ａのトレイ１２２に投入する。投入部１０１では、投入作業者Ｗ１が商品１１０を第１仕分部１０２Ａに投入してもよく、コンベアやロボットのアームが、自動的に商品１１０を第１仕分部１０２Ａに投入してもよい。
【００１５】
第１仕分部１０２Ａは、投入部１０１から投入された商品１１０を搬送し、仕分先ごとに梱包部１０３へ仕分ける。第１仕分部１０２Ａは、環状のコンベア１２１Ａとコンベア１２１Ａ上のトレイ１２２を有し、トレイ１２２に投入された商品１１０を、仕分先ごとのソータ１３０から払い出す。梱包部１０３は、ソータ１３０とソータ１３０から供給された商品１１０が投入される仕分箱１３１とを有する。梱包作業者Ｗ２は、商品１１０が満杯になった仕分箱１３１を空の仕分箱１３１に交換する。商品１１０が満杯になった仕分箱１３１は、仕分先に配送されることになる。
【００１６】
バケット自動倉庫システム１００Ｂは、投入部１０１と、第２仕分部１０２Ｂと、梱包部１０３と、を有する。第２仕分部１０２Ｂは、投入部１０１からトレイ１２２に投入された商品１１０を搬送し、仕分先ごとに梱包部１０３へ仕分ける。第２仕分部１０２Ｂは、コンベア１２１Ｂと、バケット自動倉庫１２３と、を有する。バケット自動倉庫１２３は、投入部１０１からの商品１１０を保管するとともに、仕分先ごとに、１梱包分の商品１１０が揃ったら、ソータ１３０を介して梱包部１０３に払い出す。
【００１７】
上述したピースソータ１００Ａやバケット自動倉庫システム１００Ｂは、仕分設備１００の一例であり、商品１１０の投入、仕分、梱包を実現する仕分設備１００であれば、他の構成でもよい。
【００１８】
＜仕分システムのシステム構成例＞
図２は、仕分システムのシステム構成例を示す説明図である。仕分システム２００は、仕分設備１００と仕分制御装置２５０とを有する。仕分設備１００と仕分制御装置２５０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２６０により通信可能に接続される。
【００１９】
仕分設備１００は、図１に示した投入部１０１、仕分部１０２（第１仕分部１０２Ａおよび第２仕分部１０２Ｂの総称）、梱包部１０３のほか、出力部１０４を有する。出力部１０４は、梱包部１０３で梱包される仕分先の商品群についての梱包明細１４０を出力する。梱包作業者Ｗ２は、商品群が梱包された仕分箱１３１に梱包明細１４０を付与する。梱包明細１４０は、仕分先ＩＤ１４０１、仕分箱ＩＤ１４０２、梱包された商品群の梱包一覧１４０３（商品名およびその個数）が記載された用紙（シールでもよい）である（図１４を参照。）。また、投入部１０１、仕分部１０２、梱包部１０３、および出力部１０４は、それぞれ、第１コントローラ２０１〜第４コントローラ２０４を有する。
【００２０】
第１コントローラ２０１は、投入実績情報２１０を生成してネットワーク２６０を介して仕分制御装置２５０に送信する。投入実績情報２１０とは、トレイ１２２への商品１１０の投入実績を示す情報であり、トレイ１２２に投入した商品１１０の商品ＩＤおよび個数と、投入先のトレイ１２２のトレイＩＤと、を含む。投入作業者Ｗ１が手作業で投入実績情報２１０を第１コントローラ２０１に入力してもよい。また、投入部１０１が、仕分部１０２への搬送コンベアを有する場合、搬送コンベア上にバーコードリーダを設け、商品１１０に付与された商品ＩＤを示すバーコードや、トレイ１２２に付与されたトレイＩＤを示すバーコードを読み取ることで、投入実績情報２１０を生成することができる。
【００２１】
第２コントローラ２０２は、仕分制御装置２５０から払出指示情報２２１を受信することで、払出指示情報２２１に従って仕分部１０２内の商品１１０を梱包部１０３に払い出すように制御する。また、第２コントローラ２０２は、払出指示情報２２１に従って払出が完了した場合に仕分制御装置２５０に払出実績情報２２２を送信する。払出指示情報２２１とは、仕分部１０２から払い出すべき商品１１０と払出先となる仕分箱１３１とを指定する情報である。払出実績情報２２２とは、払出指示情報２２１に従って梱包部１０３に払い出した商品１１０と払出先となった仕分箱１３１を示す情報である。
【００２２】
第３コントローラ２０３は、仕分制御装置２５０から箱切替指示情報２３１を受信することで、梱包作業者Ｗ２に仕分箱１３１の切替を促す。また、第３コントローラ２０３は、梱包作業者Ｗ２からの操作入力により、箱切替実績情報２３２を生成し、仕分制御装置２５０に送信する。箱切替指示情報２３１とは、切替対象となる仕分箱１３１を指定して梱包作業者Ｗ２に空の仕分箱１３１への交換を促す情報である。箱切替実績情報２３２とは、仕分箱１３１の切替が完了したことを示す情報である。
【００２３】
第４コントローラ２０４は、仕分制御装置２５０から梱包明細情報２４０を受信することで、梱包明細１４０を出力する。梱包明細情報２４０は、仕分先ＩＤ１４０１、仕分箱ＩＤ１４０２、梱包された商品群の梱包一覧１４０３（商品名およびその個数）を含む情報である。
【００２４】
また、仕分制御装置２５０は、プロセッサ２５１と、記憶デバイス２５２と、入力デバイス２５３と、出力デバイス２５４と、通信インターフェース（通信ＩＦ２５５）と、を有する。プロセッサ２５１、記憶デバイス２５２、入力デバイス２５３、出力デバイス２５４、および通信ＩＦ２５５は、バス２５６により接続される。プロセッサ２５１は、仕分制御装置２５０を制御する。記憶デバイス２５２は、プロセッサ２５１の作業エリアとなる。また、記憶デバイス２５２は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス２５２としては、たとえば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フラッシュメモリがある。入力デバイス２５３は、データを入力する。入力デバイス２５３としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス２５４は、データを出力する。出力デバイス２５４としては、たとえば、ディスプレイ、プリンタがある。通信ＩＦ２５５は、ネットワーク２６０と接続し、データを送受信する。なお、第１コントローラ２０１〜第４コントローラ２０４も仕分制御装置２５０と同様のハードウェア構成となる。
【００２５】
＜各種テーブルの記憶内容例＞
つぎに、仕分制御装置２５０がアクセス可能な各種テーブルの記憶内容例について説明する。以降のテーブルは、具体的には、たとえば、図２に示した記憶デバイス２５２または仕分制御装置２５０がネットワーク２６０を介してアクセス可能な外部装置（不図示）に記憶される。なお、以降のテーブルの説明において、ＡＡフィールドｂｂｂ（ＡＡはフィールド名、ｂｂｂは符号）の値を、ＡＡｂｂｂと表記する場合がある。たとえば、商品名フィールド３０１の値を、商品名３０１と表記する。
【００２６】
図３は、商品マスタテーブルの記憶内容例を示す説明図である。商品マスタテーブル３００は、商品１１０を特定するための情報（商品情報）を格納するマスタテーブルである。商品マスタテーブル３００は、商品名フィールド３０１と、容積フィールド３０２と、カテゴリフィールド３０３と、を有し、同一行の各フィールドの値の組み合わせが、商品情報を規定するエントリとなる。商品名フィールド３０１は、商品名を格納する記憶領域である。商品名３０１は、商品１１０の名称（または識別情報）である。容積フィールド３０２は、その商品名３０１の商品１１０の１個当たりの容積を格納する記憶領域である。カテゴリフィールド３０３は、その商品名３０１の商品１１０のカテゴリを格納する記憶領域である。
【００２７】
図４は、仕分口情報テーブルの記憶内容例を示す説明図である。仕分口情報テーブル４００は、仕分口、すなわち、仕分部１０２のシュートを特定するための情報（仕分口情報）を格納するテーブルである。仕分口情報テーブル４００は、仕分口名フィールド４０１と、納品先名フィールド４０２と、を有し、同一行の各フィールドの値の組み合わせが、仕分口情報を規定するエントリとなる。仕分口名フィールド４０１は、仕分口名（たとえば、識別情報）を格納する記憶領域である。納品先名フィールド４０２は、納品先名を格納する記憶領域である。納品先名４０２は、納品先（仕分先ともいう）の名称（または識別情報）である。
【００２８】
図５は、仕分箱情報テーブルの記憶内容例を示す説明図である。仕分箱情報テーブル５００は、仕分箱１３１を特定するための情報（仕分箱情報）を格納するマスタテーブルである。仕分箱情報テーブル５００は、仕分箱名フィールド５０１と、仕分口名フィールド４０１と、仕分箱容積フィールド５０２と、を有し、同一行の各フィールドの値の組み合わせが、仕分箱情報を規定するエントリとなる。仕分箱名フィールド５０１は、仕分箱名を格納する記憶領域である。仕分箱名５０１は、仕分箱１３１の名称（または識別情報）である。仕分箱容積フィールド５０２は、仕分箱容積を格納する記憶領域である。仕分箱容積５０２は、その仕分箱１３１の容積である。
【００２９】
図６は、物量情報テーブルの記憶内容例を示す説明図である。物量情報テーブル６００は、納品先の物量、すなわち、納品先に仕分けられる商品１１０の個数である物量情報を特定するためのテーブルである。仕分制御装置２５０は、物量情報テーブル６００にしたがって商品１１０を仕分ける。物量情報テーブル６００は、納品先名フィールド４０２と、商品名フィールド３０１と、個数フィールド６０１と、残存個数フィールド６０２と、を有し、同一行の各フィールドの値の組み合わせが、物量情報を規定するエントリとなる。個数フィールド６０１は、その納品先名４０２の納品先に対しその商品名３０１の商品１１０を仕分けるべき個数を格納する記憶領域である。残存個数フィールド６０２は、残存個数を格納する記憶領域である。残存個数６０２は、その納品先名４０２の納品先に対しその商品名３０１の商品１１０が仕分けられていない残りの個数である。
【００３０】
図７は、仕分部内商品情報テーブルの記憶内容例を示す説明図である。仕分部内商品情報テーブル７００は、仕分部１０２内で滞留中の個々の物品について払出先の仕分箱１３１が決定済みか否かを示す情報（仕分部内商品情報）を格納するテーブルである。仕分部内商品情報は、仕分部１０２内に存在する商品１１０とその払出先の仕分箱１３１とを特定する。仕分部内商品情報テーブル７００は、商品名フィールド３０１と、トレイＩＤフィールド７０１と、投入品ＩＤフィールド７０２と、払出先仕分箱名フィールド７０３と、を有し、同一行の各フィールドの値の組み合わせが、仕分部内商品情報を規定するエントリとなる。本実施例では、説明の便宜上、１つのエントリは、１個の商品１１０をあらわすこととする。つまり、ある商品１１０が仕分部１０２内に、たとえば、５個存在する場合には、当該商品１１０のエントリは、仕分部内商品情報テーブル７００に５つ存在する。
【００３１】
トレイＩＤフィールド７０１は、トレイＩＤを格納する記憶領域である。トレイＩＤ７０１は、その商品１１０が投入されたトレイ１２２を一意に特定する識別情報である。投入品ＩＤフィールド７０２は、投入品ＩＤを格納する記憶領域である。投入品ＩＤ７０２は、投入品を一意に特定する識別情報である。投入品とは、仕分部１０２に投入された商品１１０である。投入品ＩＤ７０２は、投入品を１個１個区別するために付与される識別情報である。以降、「商品１１０」と「投入品ＩＤ７０２によって特定される商品１個」を区別するために、後者を「物品」と呼ぶこととする。また、たとえば、複数の物品の商品名３０１が同一であれば、当該複数の物品は同一商品である。
【００３２】
払出先仕分箱名フィールド７０３は、払出先仕分箱名を格納する記憶領域である。払出先仕分箱名７０３は、払出先の仕分箱１３１の名称（または識別情報）である。払出先仕分箱名７０３は、その当該投入品ＩＤ７０２の物品の払出先の仕分箱１３１を特定する。払出先仕分箱名フィールド７０３が空欄のエントリは、その物品の払出先がまだ決まっていないことを意味する。
【００３３】
図８は、梱包明細情報テーブルの記憶内容例を示す説明図である。梱包明細情報テーブル８００は、仕分部１０２から仕分箱１３１への払出対象の個々の物品について払出済みか否かを示す梱包明細情報２４０を格納するテーブルである。梱包明細情報２４０は、梱包明細１４０の出力に必要な情報である。梱包明細情報テーブル８００は、仕分箱名フィールド５０１と、商品名フィールド３０１と、カテゴリフィールド３０３と、投入品ＩＤフィールド７０２と、払出済みフラグフィールド８０１と、を有し、同一行の各フィールドの値の組み合わせが、梱包明細情報２４０を規定するエントリとなる。
【００３４】
商品名３０１は、当該仕分箱１３１に払い出す商品１１０を特定する。投入品ＩＤ７０２は、当該仕分箱１３１に払い出す物品を特定する。投入品ＩＤフィールド７０２が空欄のエントリは、当該仕分箱名５０１の仕分箱１３１に当該商品名３０１の商品１１０を１個払い出すことは決まっているが、当該商品１１０がどの物品であるかは決まっていない状態を表す。払出済みフラグフィールド８０１は、払出済みフラグを格納する記憶領域である。払出済みフラグ８０１は、当該仕分箱１３１に対して当該投入品ＩＤ７０２の物品が既に払い出されたか否かを特定するフラグである。
【００３５】
＜商品仕分シーケンス例＞
図９は、商品仕分シーケンス例を示す説明図である。まず、投入部１０１が商品１１０を仕分部１０２に投入することにより、第１コントローラ２０１は、投入実績情報２１０を生成して仕分制御装置２５０に送信する（ステップＳ９０１）。仕分制御装置２５０は、物量情報テーブル６００の更新処理および仕分部内商品情報テーブルへのエントリの登録処理を実行する（ステップＳ９０２）。
【００３６】
具体的には、たとえば、仕分制御装置２５０は、投入実績情報２１０から商品名３０１とトレイＩＤ７０１と商品１１０の個数とを特定する。仕分制御装置２５０は、物量情報テーブル６００を参照して、特定した商品名３０１に対応する個数６０１から、投入実績情報２１０に含まれる商品１１０の個数を減算することにより、残存個数６０２を更新する。仕分制御装置２５０は、残存個数６０２が「０」になったエントリを物量情報テーブル６００から消去する。この場合、図示しない方法により、その旨が投入部１０１に通知され、以降、その商品が投入されないようにする。
【００３７】
また、仕分制御装置２５０は、仕分部内商品情報テーブル７００に、投入実績情報２１０からの商品名３０１およびトレイＩＤ７０１を登録するとともに、特定した当該登録したエントリの投入品ＩＤフィールド７０２に、固有な投入品ＩＤ７０２を付与して登録する。なお、投入実績情報２１０に含まれる商品１１０の個数が複数である場合、仕分部１０２は当該エントリを複数（すなわち、物品ごとに）作成し、各エントリの投入品ＩＤ７０２が異なるように生成する。なお、払出先仕分箱名７０３は、指示生成処理（ステップＳ９０３）で格納される。
【００３８】
つぎに、仕分制御装置２５０は、指示生成処理を実行する（ステップＳ９０３）。指示生成処理（ステップＳ９０３）は、払出指示情報２２１または箱切替指示情報２３１を生成する処理である。指示生成処理（ステップＳ９０３）の詳細については、図１０で後述する。
【００３９】
つぎに、指示生成処理（ステップＳ９０３）によって払出指示情報２２１が生成された場合、仕分制御装置２５０は、払出指示情報２２１を仕分部１０２の第２コントローラ２０２に送信する（ステップＳ９０４）。第２コントローラ２０２は、払出指示情報２２１を受け付けると、払出指示情報２２１に従って商品１１０を梱包部１０３に払い出すよう仕分部１０２を制御する。払出指示情報２２１は、仕分部内商品情報テーブル７００のエントリのうちトレイＩＤ７０１および払出先仕分箱名７０３を有するエントリである。また、払出指示情報２２１には、払出先仕分箱名７０３に対応する仕分口名４０１も含まれる。
【００４０】
第２コントローラ２０２は、たとえば、払出指示情報２２１に含まれるトレイＩＤ７０１のトレイ１２２が仕分口名４０１の仕分口に到達するのを仕分部１０２に設けられたセンサ（不図示）により検出し、当該トレイ１２２を仕分口側に傾けることで、トレイ１２２上の商品１１０を仕分口に払い出す。これにより、商品１１０は、仕分口から払出先の仕分箱１３１に投入される。そして、第２コントローラ２０２は、払出実績情報２２２を生成して、仕分制御装置２５０に送信する。
【００４１】
払出実績情報２２２は、払出指示情報２２１にしたがって払出された実績を示す情報であり、少なくとも投入品ＩＤ７０２を含む。仕分制御装置２５０は、払出実績情報２２２に含まれる投入品ＩＤ７０２を有するエントリを仕分部内商品情報テーブル７００から削除する（ステップＳ９０７）。
【００４２】
つぎに、仕分制御装置２５０は、梱包明細情報テーブル８００において、払出実績情報２２２に含まれる投入品ＩＤ７０２に対応する払出済みフラグ８０１を「ＦＡＬＳＥ」から「ＴＲＵＥ」に更新する（ステップＳ９０８）。なお、梱包明細情報テーブル８００のエントリは、指示生成処理（ステップＳ９０３）で生成される。
【００４３】
つぎに、仕分制御装置２５０は、梱包明細情報テーブル８００において、払出済みフラグ８０１が「ＴＲＵＥ」に更新されたエントリのうち、仕分箱名５０１、商品名３０１、およびカテゴリ３０３を取得する。また、仕分制御装置２５０は、商品名３０１が同一であるエントリの数をその商品１１０の個数として取得する。仕分制御装置２５０は、仕分箱名５０１、商品名３０１、カテゴリ３０３、および商品１１０の個数を梱包明細情報２４０として取得する（ステップＳ９０９）。
【００４４】
つぎに、仕分制御装置２５０は、梱包明細情報２４０を出力部１０４の第４コントローラ２０４に送信する（ステップＳ９１０）。第４コントローラ２０４は、出力部１０４を制御して梱包明細１４０を出力する（ステップＳ９１１）。
【００４５】
また、指示生成処理（ステップＳ９０３）によって箱切替指示情報２３１が生成された場合、仕分制御装置２５０は、箱切替指示情報２３１を梱包部１０３の第３コントローラ２０３に送信する（ステップＳ９１２）。第３コントローラ２０３は、箱切替指示情報２３１を受け付けると、箱切替指示情報２３１に従って仕分箱１３１を空の仕分箱１３１に交換するよう梱包作業者Ｗ２に促す情報を出力する。箱切替指示情報２３１は、仕分箱名５０１と仕分口名４０１と仕分箱容積５０２とを含む情報である。
【００４６】
梱包作業者Ｗ２が仕分箱１３１の交換を完了すると、第３コントローラ２０３は、梱包作業者Ｗ２の操作により箱切替実績情報２３２を仕分制御装置２５０に送信する（ステップＳ９１３）。箱切替実績情報２３２には、交換した空の仕分箱１３１の仕分箱名５０１、当該仕分箱１３１に対応する仕分口名４０１、当該仕分箱１３１の仕分箱容積５０２が含まれる。
【００４７】
仕分制御装置２５０は、箱切替実績情報２３２を受信すると、仕分箱情報を更新する（ステップＳ９１４）。具体的には、たとえば、仕分制御装置２５０は、箱切替指示情報２３１に対応するエントリを仕分箱情報テーブル５００から削除して、箱切替実績情報２３２を新規エントリとして仕分箱情報テーブル５００に格納する。
【００４８】
＜指示生成処理（ステップＳ９０３）＞
図１０は、図９に示した指示生成処理（ステップＳ９０３）の詳細な処理手順例を示すフローチャートである。指示生成処理（ステップＳ９０３）は、仕分部１０２で滞留中の物品の払出先を逐次的に決定する処理であり、商品投入作業を開始してから全商品１１０を梱包し終えるまでの間、一定時間間隔または特定のタイミングで繰り返し実行される。ここで、特定のタイミングとは、図９の例では、仕分制御装置２５０が投入実績情報２１０を受信した後であるが、仕分制御装置２５０が払出実績情報２２２や箱切替実績情報２３２を受信した後でもよい。また、本実施例では、「１納品先において、１商品が複数の仕分箱に分割されないように仕分ける」という梱包計算ルールが採用されているものとするが、梱包計算ルールは当該ルールに限定されない。
【００４９】
仕分制御装置２５０は、仕分部１０２内に払出先が決まっていない物品があるか否かを判断する（ステップＳ１０００）。具体的には、たとえば、仕分制御装置２５０は、仕分部内商品情報テーブル７００において、払出先仕分箱名７０３が空欄の行（エントリ）が存在するか否かを判定する。
【００５０】
仕分部１０２内に払出先が決まっていない物品がない場合（ステップＳ１０００：Ｎｏ）、仕分制御装置２５０は、指示生成処理（ステップＳ９０３）を終了する。この場合、払出指示情報２２１および箱切替指示情報２３１のいずれも生成されないため、仕分制御装置２５０は、投入部１０１から投入実績情報２１０を待ち受けることになる。
【００５１】
一方、仕分部１０２内に払出先が決まっていない物品がある場合（ステップＳ１０００：Ｙｅｓ）、仕分制御装置２５０は、第１払出指示生成処理（ステップＳ１００１）、第２払出指示生成処理（ステップＳ１００２）、箱切替指示生成処理（ステップＳ１００３）を実行する。第１払出指示生成処理（ステップＳ１００１）については図１１で、第２払出指示生成処理（ステップＳ１００２）については図１２で、箱切替指示生成処理（ステップＳ１００３）については図１３で後述する。
【００５２】
＜第１払出指示生成処理（ステップＳ１００１）＞
図１１は、第１払出指示生成処理（ステップＳ１００１）の詳細な処理手順例を示すフローチャートである。第１払出指示生成処理（ステップＳ１００１）は、各仕分箱１３１に対し払い出す商品１１０は決まっているが物品が決まっていない場合に、仕分部１０２の中から払い出す物品を選定して払出指示情報２２１を生成する処理である。
【００５３】
以降、梱包明細情報テーブル８００上のｉ番目の行を梱包明細行ｉとし、梱包明細行ｉの仕分箱１３１を仕分箱Ｘ、梱包明細行ｉの商品１１０を商品Ａと呼ぶこととする。また、第１払出指示生成処理（ステップＳ１００１）の実行時における梱包明細情報テーブル８００の行数をＮとする。Ｎは非負整数である。ｉの初期値は、Ｎ≠０であれば、ｉ＝１であり、Ｎ＝０（梱包明細情報テーブル８００が空）であれば、ｉ＝０である。ｉはステップＳ１１１１〜Ｓ１１１４を実行するごとにインクリメントされる変数である。
【００５４】
仕分制御装置２５０は、梱包明細情報テーブル８００の行数Ｎについて、梱包明細行ｉごとにステップＳ１１１１〜Ｓ１１１４をループ処理する。仕分制御装置２５０は、梱包明細行ｉごとにステップＳ１１１１〜Ｓ１１１４を実行した後、ｉをインクリメントし、ｉ≦Ｎであれば、インクリメント後の梱包明細行ｉについて当該ループ処理を実行し、ｉ＞Ｎであれば、第２払出指示生成処理（ステップＳ１００２）に移行する（ステップＳ１１０１）。
【００５５】
仕分制御装置２５０は、梱包明細行ｉの投入品ＩＤフィールド７０２が空欄であるか否かを判断する（ステップＳ１１１１）。梱包明細行ｉの投入品ＩＤフィールド７０２が空欄であるという状態は、仕分箱Ｘに商品Ａを払い出すことは決まっているが、どの物品を払い出すかは決まっていない状態を意味する。
【００５６】
梱包明細行ｉの投入品ＩＤフィールド７０２が空欄でない場合（ステップＳ１１１１：Ｎｏ）、ステップＳ１１０１に移行する。一方、梱包明細行ｉの投入品ＩＤフィールド７０２が空欄である場合（ステップＳ１１１１：Ｙｅｓ）、仕分制御装置２５０は、仕分部１０２内において梱包明細行ｉの物品の払出先が決まっておらず、かつ、仕分部１０２内に梱包明細行ｉの物品と同一商品Ａの他の物品が存在するか否かを判断する（ステップＳ１１１２）。
【００５７】
具体的には、たとえば、梱包明細行ｉの物品（投入品ＩＤ７０２）について仕分箱内商品情報テーブル７００に払出先仕分箱名７０３がない場合、払出先が決まっていないことになる。たとえば、仕分部内商品情報テーブル７００において、２行目のエントリの物品が梱包明細行ｉの物品である場合、払出先仕分箱名７０３が空欄であるため、梱包明細行ｉの物品について、払出先が決まっていないことになる。
【００５８】
また、同一の商品名３０１を有する他のエントリが仕分部内商品情報テーブル７００（または梱包明細情報テーブル８００）に存在する場合、梱包明細行ｉの物品と同一商品１１０の他の物品が存在することになる。たとえば、仕分部内商品情報テーブル７００において、２行目のエントリの物品が梱包明細行ｉの物品である場合、その商品名３０１は「Ｐ００１」である。１行目のエントリの商品名３０１も「Ｐ００１」であるため、梱包明細行ｉの物品（投入品ＩＤ７０２が「２」）と同一商品Ａ＝「Ｐ００１」の他の物品（投入品ＩＤ７０２が「１」）が存在することになる。なお、他の物品の存在特定は、梱包明細情報テーブル８００を用いてもよい。
【００５９】
つぎに、仕分制御装置２５０は、仕分部１０２内において梱包明細行ｉの物品の払出先が決まっておらず、かつ、仕分部１０２内に梱包明細行ｉの物品と同一商品Ａの他の物品が存在する場合（ステップＳ１１１２：Ｙｅｓ）、ステップＳ１１１３に移行し、そうでない場合（ステップＳ１１１２：Ｎｏ）、ステップＳ１１０１に移行する。
【００６０】
つぎに、仕分制御装置２５０は、仕分部１０２内において梱包明細行ｉの物品の払出先が決まっておらず、かつ、仕分部１０２内に梱包明細行ｉの物品と同一商品Ａの他の物品が存在する場合、梱包明細行ｉの物品を払い出す払出先の仕分箱を、当該他の物品の払出先の仕分箱に決定する（ステップＳ１１１３）。この場合、仕分制御装置２５０は、梱包明細行ｉの払出先仕分箱名フィールド７０３に、物品を払い出す仕分箱Ｘの仕分箱名５０１を登録する。
【００６１】
つぎに、仕分制御装置２５０は、払出指示情報２２１を生成する（ステップＳ１１１４）、払出指示情報２２１は、梱包明細行ｉの物品をステップＳ１１１３で決定された仕分箱Ｘに払い出すための情報である。生成された払出指示情報２２１は、ステップＳ９０４で仕分部１０２に送信される。
【００６２】
＜第２払出指示生成処理（ステップＳ１００２）＞
図１２は、第２払出指示生成処理（ステップＳ１００２）の詳細な処理手順例を示すフローチャートである。第２払出指示生成処理（ステップＳ１００２）は、各仕分箱１３１において新たに払い出す商品１１０を決定して、払出指示情報２２１を生成する処理である。ステップＳ１２００〜Ｓ１２０１は、必要な場合に限り、設置中の仕分箱ｊごとに払出指示情報２２１を生成する処理である。
【００６３】
以降、仕分箱情報テーブル５００の対象となる仕分箱情報を示す行（エントリ）を仕分箱ｊとし、第２払出指示生成処理（ステップＳ１００２）の実行時における仕分箱情報テーブル５００の行数、すなわち、設置中の仕分箱１３１の数をＭとする。Ｍは非負整数である。ｊの初期値は、Ｍ≠０であれば、ｊ＝１であり、Ｍ＝０（設置中の仕分箱１３１がない）であれば、ｊ＝０である。ｊはステップＳ１２１０〜Ｓ１２２１を実行するごとにインクリメントされる変数である。
【００６４】
また、仕分部内商品情報テーブル７００の対象となる仕分部内商品情報を示す行（エントリ）を仕分部内商品行ｋとし、第２払出指示生成処理（ステップＳ１００２）の実行時における仕分部内商品情報テーブル７００の行数をＬとする。Ｌは非負整数である。ｋの初期値は、Ｌ≠０であれば、ｋ＝１であり、Ｌ＝０であれば、ｋ＝０である。ｋはステップＳ１２２０〜Ｓ１２３６を実行するごとにインクリメントされる変数である。
【００６５】
仕分制御装置２５０は、仕分箱情報テーブル５００の行数Ｍについて、仕分箱ｊごとにステップＳ１２１０〜Ｓ１２２１をループ処理する。仕分制御装置２５０は、仕分箱ｊごとにステップＳ１２１０〜Ｓ１２２１を実行した後、ｊをインクリメントし、ｊ≦Ｍであれば、インクリメント後の仕分箱ｊについて当該ループ処理を実行し、ｊ＞Ｍであれば、箱切替指示生成処理（ステップＳ１００３）に移行する（ステップＳ１２０１）。
【００６６】
仕分制御装置２５０は、仕分箱ｊに箱切替指示情報２３１が出力済みであるか否かを判断する（ステップＳ１２１０）。出力済みである場合（ステップＳ１２１０：Ｙｅｓ）、次の仕分箱１３１について処理するため、ステップＳ１２０１に移行する。一方、出力済みでない場合（ステップＳ１２１０：Ｎｏ）、仕分制御装置２５０は、仕分部内商品情報テーブル７００の行数Ｌについて、仕分部内商品行ｋごとにステップＳ１２３１〜Ｓ１２３６をループ処理する。仕分制御装置２５０は、仕分部内商品行ｋごとにステップＳ１２３１〜Ｓ１２３６を実行した後、ｋをインクリメントし、ｋ≦Ｌであれば、インクリメント後の仕分部内商品行ｋについて当該ループ処理を実行し、ｋ＞Ｌであれば、ステップＳ１２０１に移行する（ステップＳ１２２１）。
【００６７】
仕分制御装置２５０は、仕分部内商品行ｋの物品の払出先が決まっているか否かを判断する（ステップＳ１２３１）。具体的には、たとえば、仕分制御装置２５０は、仕分部内商品情報テーブル７００の仕分部内商品行ｋに払出先仕分箱名７０３があるか否かを判断する。払出先が決まっている場合、すなわち、仕分部内商品行ｋに払出先仕分箱名７０３がある場合（ステップＳ１２３１：Ｙｅｓ）、払出指示情報２２１がすでに出されているため、ステップＳ１２３２に移行する。一方、払出先が決まっていない、すなわち、仕分部内商品行ｋに払出先仕分箱名７０３がない場合（ステップＳ１２３１：Ｎｏ）、ステップＳ１２２１に移行する。
【００６８】
つぎに、仕分制御装置２５０は、仕分箱ｊの納品先に対する仕分部内商品行ｋの商品１１０の未仕分個数Ｘｊｋが１個以上あるか否かを判断する（ステップＳ１２３２）。未仕分個数Ｘｊｋとは、仕分対象商品１１０の個数のうち、まだ仕分先が決定していない個数である。具体的には、たとえば、未仕分個数Ｘｊｋは、物量情報テーブル６００における仕分箱名５０１に該当する仕分箱ｊの納品先名４０２に対応する仕分部内商品行ｋの商品１１０の商品名３０１の個数から、梱包明細情報テーブル８００における仕分箱名５０１に該当する仕分箱ｊの納品先名４０２に対応する仕分部内商品行ｋの商品１１０の商品名３０１である行数を差し引いた数である。
【００６９】
仕分箱ｊの納品先に対する梱包明細行ｉの商品１１０の未仕分個数Ｘｊｋが１個以上ある場合（ステップＳ１２３２：Ｙｅｓ）、ステップＳ１２３３に移行し、仕分箱ｊの納品先に対する仕分部内商品行ｋの商品１１０の未仕分個数Ｘｊｋが１個以上ない場合（ステップＳ１２３２：Ｎｏ）、ステップＳ１２２１に移行する。
【００７０】
つぎに、仕分制御装置２５０は、仕分箱ｊに仕分部内商品行ｋの商品１１０を仕分ける場合、梱包計算ルールを順守可能か否か判断する（ステップＳ１２３３）。順守可能である場合（ステップＳ１２３３：Ｙｅｓ）、ステップＳ１２３４に移行し、順守不可能である場合（ステップＳ１２３３：Ｎｏ）、ステップＳ１２２１に移行する。
【００７１】
梱包計算ルールの順守可否については、具体的には、たとえば、「仕分箱ｊに商品ＡがＸｊｋ個入りきるかどうか」により判定される。具体的には、まず、仕分制御装置２５０は、梱包明細情報テーブル８００から仕分箱ｊに払出済みまたは払い出すことが決定している商品名３０１の行数を特定し、当該商品名３０１の商品Ａの容積を商品マスタテーブル３００から取得し、仕分箱ｊに仕分けされる商品Ａの総容積（＝特定した行数×取得した商品Ａの容積）を算出する。算出した総容積を「占有済み容積」とする。
【００７２】
また、仕分制御装置２５０は、取得した商品Ａの容積を用いて、商品Ａの未仕分個数Ｘｊｋ個分の容積を「追加容積」として算出する。そして、仕分制御装置２５０は、仕分箱ｊの仕分箱容積５０２を仕分箱情報テーブル５００から取得し、占有済み容積と追加容積との合計が仕分箱ｊの仕分箱容積５０２を超えるか否かを判断する。当該合計が仕分箱ｊの仕分箱容積５０２を超えない場合、仕分制御装置２５０は、梱包計算ルールを順守可能と判定する。
【００７３】
これにより、「１商品を複数の仕分箱に分割しない」という梱包計算ルールを順守することが可能となる。ただし、前述したように本実施例は梱包計算ルールを上記ルールに限定するものではないため、梱包計算ルールに合わせて本ステップにおける判定方法を変更してもよい。たとえば、梱包計算ルールが「商品のカテゴリ毎に仕分箱を分ける」である場合、仕分制御装置２５０は、「仕分箱ｊにカテゴリ３０３Ｃの商品１１０がＸｊｋ個入りきるかどうか」により判定されることになる。
【００７４】
つぎに、仕分制御装置２５０は、仕分箱ｊに商品ＡをＸｊｋ個払い出すことを決定し、梱包明細情報テーブル８００に、仕分箱名５０１が「仕分箱ｊ」でありかつ商品名３０１が「商品Ａ」である行（エントリ）をＸｊｋ行だけ追加する（ステップＳ１２３４）。そして、仕分制御装置２５０は、仕分部内商品情報テーブル７００を参照して、払出先が決まっていない仕分部１０２内の商品Ａの物品に対しＸｊｋ個を上限とする仕分箱ｊへの払出指示情報２２１を生成する（ステップＳ１２３５）。払出指示情報２２１は、仕分部１０２から払い出すべき商品Ａと払出先となる仕分箱ｊとを指定する情報である。
【００７５】
さらに、仕分制御装置２５０は、生成した払出指示情報２２１に基づき、仕分部内商品情報テーブル７００の払出先仕分箱名フィールド７０３および梱包明細情報テーブル８００の投入品ＩＤフィールド７０２を更新して、ステップＳ１２２１に移行する（ステップＳ１２３６）。具体的には、たとえば、仕分制御装置２５０は、仕分部内商品情報テーブル７００の商品名３０１が「商品Ａ」の行における払出先仕分箱名フィールド７０３に、仕分箱ｊを追加し、梱包明細情報テーブル８００の仕分箱名５０１が「仕分箱ｊ」でかつ商品名３０１が「商品Ａ」である行の投入品ＩＤフィールド７０２に、新規の投入品ＩＤ７０２を追加する。
【００７６】
＜箱切替指示生成処理（ステップＳ１００３）＞
図１３は、箱切替指示生成処理（ステップＳ１００３）の詳細な処理手順例を示すフローチャートである。箱切替指示生成処理（ステップＳ１００３）は、各仕分箱１３１に対する箱切替指示情報２３１を生成する処理である。ステップＳ１３００〜Ｓ１３０１は、必要な場合に限り、設置中の仕分箱ｊごとに、箱切替指示情報２３１を生成する処理である。
【００７７】
第２払出指示生成処理（ステップＳ１００２）と同様、仕分箱情報テーブル５００の対象となる仕分箱情報を示す行（エントリ）を仕分箱ｊとし、箱切替指示生成処理（ステップＳ１００３）の実行時における仕分箱情報テーブル５００の行数、すなわち、設置中の仕分箱１３１数をＭとする。Ｍは非負整数である。ｊの初期値は、Ｍ≠０であれば、ｊ＝１であり、Ｍ＝０（設置中の仕分箱１３１がない）であれば、ｊ＝０である。ｊはステップＳ１３１０〜Ｓ１３２１を実行するごとにインクリメントされる変数である。
【００７８】
また、仕分部内商品情報テーブル７００の対象となる仕分部内商品情報を示す行（エントリ）を仕分部内商品行ｋとし、箱切替指示生成処理（ステップＳ１００３）の実行時における仕分部内商品情報テーブル７００の行数をＬとする。Ｌは非負整数である。ｋの初期値は、Ｌ≠０であれば、ｋ＝１であり、Ｌ＝０であれば、ｋ＝０である。ｋはステップＳ１３２０〜Ｓ１３３５を実行するごとにインクリメントされる変数である。
【００７９】
仕分制御装置２５０は、仕分箱情報テーブル５００の行数Ｍについて、仕分箱ｊごとにステップＳ１３１０〜Ｓ１３２１をループ処理する。仕分制御装置２５０は、仕分箱ｊごとにステップＳ１３１０〜Ｓ１３２１を実行した後、ｊをインクリメントし、ｊ≦Ｍであれば、インクリメント後の仕分箱ｊについて当該ループ処理を実行し、ｊ＞Ｍであれば、指示生成処理（ステップＳ９０３）を終了する（ステップＳ１３０１）。
【００８０】
仕分制御装置２５０は、仕分箱ｊに箱切替指示情報２３１が出力済みであるか否かを判断する（ステップＳ１３１０）。出力済みである場合（ステップＳ１３１０：Ｙｅｓ）、次の仕分箱１３１について処理するため、ステップＳ１３０１に移行する。一方、出力済みでない場合（ステップＳ１３１０：Ｎｏ）、仕分制御装置２５０は、仕分部内商品情報テーブル７００の行数Ｎについて、仕分部内商品行ｋごとにステップＳ１３２０〜Ｓ１３３５をループ処理する。仕分制御装置２５０は、仕分部内商品行ｋごとにステップＳ１３３１〜Ｓ１３３５を実行した後、ｋをインクリメントし、ｋ≦Ｌであれば、インクリメント後の梱包明細行ｉについて当該ループ処理を実行し、ｋ＞Ｌであれば、ステップＳ１３０１に移行する（ステップＳ１３２１）。
【００８１】
仕分制御装置２５０は、仕分部内商品行ｋの物品の払出先が決まっているか否かを判断する（ステップＳ１３３１）。具体的には、たとえば、仕分制御装置２５０は、仕分部内商品情報テーブル７００の仕分部内商品行ｋに払出先仕分箱名７０３があるか否かを判断する。払出先が決まっている場合、すなわち、仕分部内商品行ｋに払出先仕分箱名７０３がある場合（ステップＳ１３３１：Ｙｅｓ）、払出指示情報２２１がすでに出されているため、ステップＳ１３３２に移行する。一方、払出先が決まっていない、すなわち、仕分部内商品行ｋに払出先仕分箱名７０３がない場合（ステップＳ１３３１：Ｎｏ）、ステップＳ１３２１に移行する。
【００８２】
つぎに、仕分制御装置２５０は、仕分箱ｊの納品先に対する仕分部内商品行ｋの商品１１０の未仕分個数Ｘｊｋが１個以上あるか否かを判断する（ステップＳ１３３２）。仕分箱ｊの納品先に対する仕分部内商品行ｋの商品１１０の未仕分個数Ｘｊｋが１個以上ある場合（ステップＳ１３３２：Ｙｅｓ）、ステップＳ１３３３に移行し、仕分箱ｊの納品先に対する仕分部内商品行ｋの商品１１０の未仕分個数Ｘｊｋが１個以上ない場合（ステップＳ１３３２：Ｎｏ）、ステップＳ１３２１に移行する。
【００８３】
つぎに、仕分制御装置２５０は、仕分箱ｊに仕分部内商品行ｋの商品１１０を仕分ける場合、梱包計算ルールを順守可能か否か判断する（ステップＳ１３３３）。順守可能である場合（ステップＳ１３３３：Ｙｅｓ）、ステップＳ１３２１に移行し、順守不可能である場合（ステップＳ１３３３：Ｎｏ）、ステップＳ１３３４に移行する。
【００８４】
つぎに、仕分制御装置２５０は、仕分箱ｊのすべての行の払出済みフラグ８０１が「ＴＲＵＥ」であるか否かを判断する（ステップＳ１３３４）。仕分箱ｊのすべての行の払出済みフラグ８０１が「ＴＲＵＥ」である場合（ステップＳ１３３４：Ｙｅｓ）、ステップＳ１３３５に移行し、仕分箱ｊのすべての行の払出済みフラグ８０１が「ＴＲＵＥ」でない場合（ステップＳ１３３４：Ｎｏ）、ステップＳ１３２１に移行する。
【００８５】
つぎに、仕分制御装置２５０は、仕分部内商品情報テーブル７００を参照して、仕分箱ｊを空の仕分箱１３１に切り替える箱切替指示情報２３１を生成して、ステップＳ１３０１に移行する（ステップＳ１３３５）。箱切替指示情報２３１は、切替対象となる仕分箱１３１を指定して梱包作業者Ｗ２に空の仕分箱１３１への交換を促す情報である。
【００８６】
このように、本実施例の仕分制御装置２５０は、納品先が指定された仕分箱に商品を払い出す仕分部１０２により商品を仕分ける仕分設備１００を制御する。仕分制御装置２５０は、記憶デバイス２５２に、仕分部１０２内で滞留中の個々の物品について払出先の仕分箱が決定済みか否かを示す仕分部内商品情報テーブル７００と、仕分部１０２から仕分箱への払出対象の個々の物品について払出済みか否かを示す梱包明細情報テーブル８００と、を記憶する。
【００８７】
プロセッサ２５１は、滞留中の個々の物品のうち払出先の仕分箱が未定の第１物品を仕分部内商品情報テーブル７００から特定する第１特定処理を実行する（ステップＳ１１１２）。プロセッサ２５１は、払出対象の個々の物品のうち第１特定処理によって特定された第１物品と同一商品の第２物品（他の物品）を仕分部内商品情報テーブル７００または梱包明細情報テーブル８００から特定する第２特定処理を実行する（ステップＳ１１１２）。プロセッサ２５１は、第２特定処理によって第２物品が特定された場合、第１物品の払出先の仕分箱を、第２物品の払出先の仕分箱に決定する決定処理を実行する（ステップＳ１１１３）。プロセッサ２５１は、第１物品を決定処理によって決定された払出先の仕分箱に仕分けるための指示である第１払出指示情報を生成する第１生成処理を実行する（ステップＳ１１１４）。プロセッサ２５１は、第１生成処理によって生成された第１払出指示情報を仕分部１０２に送信する第１送信処理を実行する（ステップＳ９０４）。
【００８８】
これにより、商品投入順序があらかじめ策定されていなくても自動仕分を実現することができる。
【００８９】
また、上述した仕分制御装置２５０では、プロセッサ２５１は、払出先候補の仕分箱を指定する納品先に対し払出先の仕分箱が未定の商品が存在する場合、未定の商品を払出先候補の仕分箱に払い出すための梱包計算ルールが順守可能か否かを判断する第１判断処理を実行する（ステップＳ１２３３）。プロセッサ２５１は、第１判断処理によって順守可能であると判断された場合、梱包明細情報テーブル８００に払出先候補の仕分箱（仕分箱名５０１）と未定の商品（商品名３０１）との組み合わせを登録する登録処理を実行する（ステップＳ１２３４）。プロセッサ２５１は、滞留中の個々の物品のうち未定の商品の個数分の物品について、払出先の仕分箱に仕分けるための指示である第２払出指示情報を生成する第２生成処理を実行する（ステップＳ１２３５）。プロセッサ２５１は、第２生成処理によって生成された第２払出指示情報を仕分部１０２に送信する第２送信処理を実行する（ステップＳ９０４）。
【００９０】
これにより、梱包計算ルールを順守しつつ、商品投入順序があらかじめ策定されていなくても自動仕分を実現することができる。
【００９１】
また、上述した仕分制御装置２５０では、プロセッサ２５１は、仕分部内商品情報テーブル７００において、未定の商品の個数分の物品について払出先候補の仕分箱を登録し、梱包明細情報テーブル８００において、払出先候補の仕分箱と未定の商品との組み合わせについて、未定の商品の個数分の物品の識別情報を登録する更新処理を実行する（Ｓ１２３６）。
【００９２】
これにより、仕分部内商品情報テーブル７００および梱包明細情報テーブル８００を最新の仕分状態にして、リアルタイムで自動仕分を実現することができる。
【００９３】
また、上述した仕分制御装置２５０では、梱包計算ルールは、払出先候補の仕分箱の容積と、未定の商品の個数分の容積と、に基づいて、払出先候補の仕分箱に未定の商品が未定の商品の個数（未仕分個数Ｘｊｋ）分梱包可能か否かをプロセッサ２５１が計算するルールである。
【００９４】
これにより、「１商品を複数の仕分箱に分割しない」という梱包計算ルールを順守しつつ、商品投入順序があらかじめ策定されていなくても自動仕分を実現することができる。したがって、当該梱包計算ルールを順守した場合に梱包された仕分箱には異なる商品が梱包されない。
【００９５】
また、上述した仕分制御装置２５０では、プロセッサ２５１は、第１判断処理（ステップＳ１２３３）によって順守不可能であると判断された場合、梱包明細情報テーブル８００において、払出先候補の仕分箱への払出対象の全物品について払出済みであるか否かを判断する第２判断処理を実行する（ステップＳ１３３４）。プロセッサ２５１は、第２判断処理によって払出済みであると判断された場合、払出先候補の仕分箱を空の仕分箱に切り替えるための指示である箱切替指示情報２３１を生成する第３生成処理を実行する（ステップＳ１３３５）。プロセッサ２５１は、第３生成処理によって生成された箱切替指示情報２３１を仕分設備１００の梱包部１０３に送信する第３送信処理を実行する（ステップＳ９１２）。
【００９６】
これにより、満杯になった仕分箱から空の仕分箱への切り替えをリアルタイムで円滑におこなうことができる。
【００９７】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【００９８】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【００９９】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）の記録媒体に格納することができる。
【０１００】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【図１】
0006755393.tif 000002
【図２】
0006755393.tif 000003
【図３】
0006755393.tif 000004
【図４】
0006755393.tif 000005
【図５】
0006755393.tif 000006
【図６】
0006755393.tif 000007
【図７】
0006755393.tif 000008
【図８】
0006755393.tif 000009
【図９】
0006755393.tif 000010
【図１０】
0006755393.tif 000011
【図１１】
0006755393.tif 000012
【図１２】
0006755393.tif 000013
【図１３】
0006755393.tif 000014
【図１４】
0006755393.tif 000015