(57)【特許請求の範囲】
【請求項１】
物流システムの、保管装置、搬送装置、及びピッキング用の装置の少なくともいずれかからなるハードウェアを管理・制御するためのソフトウェアからなるプロセスを、コンピュータのメモリに複数記憶させると共に、
前記各プロセスにより、前記コンピュータに、プロセス間通信によるハードウェアの管理・制御用のメッセージの送受信を実行させると共に、前記メッセージに従ったハードウェアの管理・制御を実行させるシステムにおいて、
前記各プロセスに対応させて、前記コンピュータに前記プロセス間通信用の送信バッファと受信バッファとを設けると共に、
前記コンピュータに、送信バッファからのメッセージの読み出しと、読み出し順にメッセージを所定のプロセスの受信バッファへ書き込むこととを実行させる、バスマネージャーが前記メモリに記憶され、
前記各プロセスは、前記コンピュータに、送信バッファへのメッセージの書き込みと、先入先出による受信バッファからのメッセージの読み出しとを実行させるように構成され、
旧プロセスと該旧プロセスと交替すべき新プロセスとを共存させて記憶するように前記メモリは構成され、
旧プロセスと新プロセスは送信バッファと受信バッファとを共用し、
前記コンピュータに、新プロセスの立ち上げ時に送信バッファに旧プロセス及び新プロセスへ向けて新プロセスの立ち上げを書き込むことと、受信バッファから新プロセスの立ち上げを読み出すと、それ以降に受信バッファから読み出したメッセージから新プロセスによるハードウェアの管理・制御を開始することとを実行させるように、新プロセスが構成され、
前記コンピュータに、新プロセスの立ち上げを受信バッファから読み出すと、それ以前に読み出したメッセージに対する旧プロセスによるハードウェアの管理・制御を処理した後に、旧プロセスによる処理を停止する機能を実行させるように、旧プロセスが構成されていることを特徴とする物流システム。
【請求項２】
物流システムの、保管装置、搬送装置、及びピッキング用の装置の少なくともいずれかからなるハードウェアを管理・制御するための、ソフトウェアからなるプロセスをコンピュータのメモリに複数記憶させると共に、
前記各プロセスにより、前記コンピュータに、プロセス間通信によるハードウェアの管理・制御用のメッセージの送受信と、前記メッセージに従ったハードウェアの管理・制御を実行させる方法において、
前記各プロセスに対応させて、前記コンピュータに前記プロセス間通信用の送信バッファと受信バッファとを設けると共に、前記メモリに記憶させたバスマネージャーにより、前記コンピュータを、送信バッファからメッセージを読み出し、読み出したメッセージを読み出し順に所定のプロセスの受信バッファに書き込むように機能させ、
前記各プロセスにより、前記コンピュータに、送信バッファへのメッセージの書き込みと、先入先出による受信バッファからのメッセージの読み出しとを実行させ、
旧プロセスと該旧プロセスと交替すべき新プロセスとを前記メモリに共存させて記憶し、
旧プロセスと新プロセスは送信バッファと受信バッファとを共用し、
新プロセスにより、前記コンピュータに、新プロセスの立ち上げ時に送信バッファに旧プロセス及び新プロセスへ向けて新プロセスの立ち上げを書き込む機能と、受信バッファから新プロセスの立ち上げを読み出すと、それ以降に受信バッファから読み出したメッセージから新プロセスによるハードウェアの管理・制御を開始する機能とを実行させ、
旧プロセスにより、前記コンピュータに、新プロセスの立ち上げを受信バッファから読み出すと、それ以前に読み出したメッセージに対する旧プロセスによるハードウェアの管理・制御を処理した後に、旧プロセスによる処理を停止する機能を実行させる、ことを特徴とする物流システムでのプロセス制御方法。
【発明の詳細な説明】
【０００１】
【発明の利用分野】
この発明は物流システムや物流システムでのプロセス制御に関し、特に物流システムの制御や管理用の、コンピュータ上のプロセスのバージョンアップに関する。
【０００２】
【従来技術】
物流システムは、ストッカーや自動倉庫などの保管装置と、搬送台車や長距離コンベヤなどの搬送装置と、流動棚やピッキング装置などのピッキング用の装置などで構成されている。これらのハードウェアの管理や制御のために、コンピュータ上に各ハードウェアなどに対応したプロセスを設ける。物流に対応して、コンピュータ上ではプロセス間通信が生じ、例えば搬送装置からストッカーへの入庫の依頼は、搬送装置のマネージャーからストッカーのマネージャーへの入庫の依頼を伴い、ストッカーのマネージャーは、入庫が正しく行われたか否かをチェックし、在庫ファイルや入出庫実績ファイルを更新し、必要に応じてより上位のプロセスに報告することになる。
【０００３】
【従来技術の問題点】
物流システムの各プロセスは、基本的に停止することができない。各プロセスはプロセス間の協調で物流を管理・制御しており、１つのプロセスを停止させると、物流システム全体に影響する。このためプロセスをバージョンアップするには、夜間や休日、定期点検日などに物流システムが停止するのを待って行う必要があった。
【０００４】
【発明の課題】
この発明の基本的課題は、物流システムを停止させずに、旧プロセスと新プロセスの協調により、自動的にバージョンアップできるようにすることにある。
この発明での追加の課題は、旧プロセスと新プロセスとの分担がいかなる場合にも混乱しないようにすることにある。
この発明での課題は、物流システムを停止させずに、かつ新旧のプロセス間の分担をいかなる場合にも明確にして、新プロセスと旧プロセスとの協調により、自動的にバージョンアップする方法を提供することにある。
【０００５】
【発明の構成】
この発明の物流システムは、物流システムの、保管装置、搬送装置、及びピッキング用の装置の少なくともいずれかからなるハードウェアを管理・制御するためのソフトウェアからなるプロセスを、コンピュータのメモリに複数記憶させると共に、
前記各プロセスにより、前記コンピュータに、プロセス間通信によるハードウェアの管理・制御用のメッセージの送受信を実行させると共に、前記メッセージに従ったハードウェアの管理・制御を実行させるシステムにおいて、
前記各プロセスに対応させて、前記コンピュータに前記プロセス間通信用の送信バッファと受信バッファとを設けると共に、
前記コンピュータに、送信バッファからのメッセージの読み出しと、読み出し順にメッセージを所定のプロセスの受信バッファへ書き込むこととを実行させる、バスマネージャーが前記メモリに記憶され、
前記各プロセスは、前記コンピュータに、送信バッファへのメッセージの書き込みと、先入先出による受信バッファからのメッセージの読み出しとを実行させるように構成され、
旧プロセスと該旧プロセスと交替すべき新プロセスとを共存させて記憶するように前記メモリは構成され、
旧プロセスと新プロセスは送信バッファと受信バッファとを共用し、
前記コンピュータに、新プロセスの立ち上げ時に送信バッファに旧プロセス及び新プロセスへ向けて新プロセスの立ち上げを書き込むことと、受信バッファから新プロセスの立ち上げを読み出すと、それ以降に受信バッファから読み出したメッセージから新プロセスによるハードウェアの管理・制御を開始することとを実行させるように、新プロセスが構成され、
前記コンピュータに、新プロセスの立ち上げを受信バッファから読み出すと、それ以前に読み出したメッセージに対する旧プロセスによるハードウェアの管理・制御を処理した後に、旧プロセスによる処理を停止する機能を実行させるように、旧プロセスが構成されていることを特徴とする。
【０００６】
このようにすると、新プロセスと旧プロセスとが、バッファから立ち上げのメッセージを読み出す順序やタイミングが変化しても、旧プロセスが処理すべきメッセージと新プロセスが処理すべきメッセージの範囲は変化せず、新プロセスと旧プロセスとの間で、メッセージの担当範囲の混乱が生じることがない。
【０００８】
またこの発明の物流システムでのプロセス制御方法は、物流システムの、保管装置、搬送装置、及びピッキング用の装置の少なくともいずれかからなるハードウェアを管理・制御するための、ソフトウェアからなるプロセスをコンピュータのメモリに複数記憶させると共に、
前記各プロセスにより、前記コンピュータに、プロセス間通信によるハードウェアの管理・制御用のメッセージの送受信と、前記メッセージに従ったハードウェアの管理・制御を実行させる方法において、
前記各プロセスに対応させて、前記コンピュータに前記プロセス間通信用の送信バッファと受信バッファとを設けると共に、前記メモリに記憶させたバスマネージャーにより、前記コンピュータを、送信バッファからメッセージを読み出し、読み出したメッセージを読み出し順に所定のプロセスの受信バッファに書き込むように機能させ、
前記各プロセスにより、前記コンピュータに、送信バッファへのメッセージの書き込みと、先入先出による受信バッファからのメッセージの読み出しとを実行させ、
旧プロセスと該旧プロセスと交替すべき新プロセスとを前記メモリに共存させて記憶し、
旧プロセスと新プロセスは送信バッファと受信バッファとを共用し、
新プロセスにより、前記コンピュータに、新プロセスの立ち上げ時に送信バッファに旧プロセス及び新プロセスへ向けて新プロセスの立ち上げを書き込む機能と、受信バッファから新プロセスの立ち上げを読み出すと、それ以降に受信バッファから読み出したメッセージから新プロセスによるハードウェアの管理・制御を開始する機能とを実行させ、
旧プロセスにより、前記コンピュータに、新プロセスの立ち上げを受信バッファから読み出すと、それ以前に読み出したメッセージに対する旧プロセスによるハードウェアの管理・制御を処理した後に、旧プロセスによる処理を停止する機能を実行させる、ことを特徴とする。
【０００９】
【用語法】
この明細書において、情報処理関係の各用語は実効的な意味で解釈するものとし、例えばプロセス間の通信や送信／受信は、実際に通信や送受信が行われるというよりも、プロセス間でのメッセージの交換が行われることを意味している。バッファ、プロセスなどの用語も同様で、バッファはその所在自体は任意であり、プロセスはプログラムで実現される場合もあれば、プログラムとハードウェアの双方を含んでいる場合もある。バスマネージャーの概念は、プロセス間通信を制御するプロセスなどの手段を意味している。
【００１０】
【発明の作用と効果】
この発明の物流システムでは、旧プロセスと交替すべき新プロセスをメモリに記憶する。新プロセスは、自己がメモリにインストールされたことや始めてＣＰＵタイムを割り当てられたこと等を検出して、新プロセスが立ち上がった旨を旧プロセスに通信する。旧プロセスはこの通信を受信すると、それ以前に受信済みの他の通信を処理した後に停止する。そして新プロセスは、立ち上げの旨を旧プロセスへ通信した後の他のプロセスからの通信から、処理を開始する。このようにすれば、新プロセスと旧プロセスとの協調により自動的にバージョンアップを行うことができる。新プロセスや旧プロセスは、通常は物理的に同じコンピュータ上のメインメモリにインストールされるので、新プロセスから旧プロセスへの通信はごく短時間で行うことができ、通信遅れによって新プロセスの分担範囲と旧プロセスの分担範囲が混乱することはほとんどない。さらに旧プロセスから新プロセスへのバージョンアップの間も、他のプロセスからバージョンアップするプロセスにメッセージを通信でき、システム全体を停止させる必要がない。これらのためこの発明の物流システムでは、新プロセスと旧プロセスとの協調により、システムを停止させずに自動的にバージョンアップできる（請求項１）。
【００１１】
新プロセスから旧プロセスに、新プロセスの立ち上げの旨の送信が行われるのとほとんど同時に、他のプロセスからメッセージが送信された場合、極めて低い確率ではあるが、新プロセスと旧プロセスのいずれのプロセスがバージョンアップ間際に送られたメッセージを処理するのか曖昧になることがある。新プロセスと旧プロセスとがメインメモリ上に共存することから、新プロセスが旧プロセスに立ち上げのメッセージを送信した後に、他のプロセスから他のメッセージが送信されて、他のメッセージが先に旧プロセスにより読み出される確率はごく僅かである。しかしながらこのようなごく僅かな場合にでも、他のプロセスからのメッセージの処理が曖昧になることを避けるため、好ましくは各プロセスにプロセス間通信用の送信バッファと受信バッファとを設け、各プロセスは受信バッファから先入先出の原則に従って通信を読み出す。次にプロセス間通信を管理するマネージャーを設け、このマネージャーは送信バッファから読み出した順番に通信を所定の宛先の受信バッファに書き込む。そして新プロセスは自己と旧プロセスとに宛てて、立ち上げの旨を送信する。このようにすれば新プロセスも旧プロセスも、同じ順序で受信バッファのメッセージを読み出すことになる。なおここで簡単のため、新プロセスと旧プロセスとは送信バッファや受信バッファを共用し、新プロセスも旧プロセスも同じ受信バッファから新プロセスの立ち上げのメッセージを読み出すようにする。新プロセスも旧プロセスも同じ順序でメッセージを読み出すので、新プロセスが自己の立ち上げを送信した後、受信バッファに到着するまでに遅れがあるにしても、またこの遅れの間に他のプロセスからのメッセージが受信されるにしても、新プロセスと旧プロセスとの間で他のプロセスからのメッセージの処理範囲が曖昧にならない。従って請求項２の発明では、いかなる場合でも確実に新プロセスと旧プロセスとの処理範囲を明確にして、バージョンアップを行うことができる。
【００１２】
請求項２の物流システムでのプロセス制御方法の発明は、請求項１の物流システムの発明にほぼ対応し、同様に新プロセスと旧プロセスとの協調により、自動的にバージョンアップを行うことができ、この間にシステムを停止させる必要がない。さらにいかなる場合でも、新プロセスと旧プロセスとの分担範囲が曖昧になることがない。
【００１３】
【実施例】
図１〜図４に、実施例を示す。図１の２〜８は物流システムのハードウェア資源を表し、例えば物流システムのストッカー２や有軌道台車４、リニア搬送台車６、搬送ロボット８等である。以下、ハードウェア資源２〜８を単に資源と呼ぶ。そして実施例はシステムを停止させずに、プロセスのバージョンアップを自動的に行うことが特に重要なクリーンルーム用の物流システムを想定する。
【００１４】
図１の１０は、制御用のコンピュータで、資源２〜８と通信して資源２〜８から種々の報告を受けると共に、資源２〜８を制御する。この意味でコンピュータ１０は、資源２〜８のコントロールとマネージメントとを行っている。１２はコンピュータ１０内のメッセージバスで、実際のバスでも仮想的なバスでも良く、複数のプロセスがバッファを介してバス１２に接続されている。例えば１４は旧のストッカーコントロールマネージャー（ＳＣＭ）で、ストッカー２のコントロールと管理とを行うための旧プロセスである。１５は、旧のストッカーコントロールマネージャー１４と交替すべき、新のストッカーコントロールマネージャーで、ＳＣＭＮと略記する。１６は有軌道台車コントロールマネージャー（ＲＣＭ）で、１８はリニア搬送台車コントロールマネージャー（ＬＣＭ）であり、２０は搬送ロボットコントロールマネージャー（ＭＣＭ）である。各コントロールマネージャー１４〜２０はそれぞれプロセスであり、プロセス間の通信により複数の資源２〜８から成る物流システムの制御と管理とを行っている。２２は各コントロールマネージャー１４〜２０に接続した送受信用のバッファで、送信バッファ２３と受信バッファ２４とを備えており、新旧のストッカーコントロールマネージャー１４，１５はバッファ２２ａを共用する。なお旧のストッカーコントロールマネージャー１４と新のストッカーコントロールマネージャー１５とで、バッファを別途に有するようにしても良い。
【００１５】
２６はバッファで、２８はバスマネージャーで、メッセージバス１２でのプロセス間のメッセージ通信を管理する。バスマネージャー２８は各プロセス１４〜２０毎に設けたバッファ２２を巡回するようにチェックし、各送信バッファ２３からプロセス間通信（プロセス間通信をメッセージと呼ぶ）を読み出し、バッファ２６に書き込む。これと同時にバスマネージャー２８は、バッファ２６のメッセージを所定の宛先の受信バッファ２４に書き込む。バスマネージャー２８は多数のバッファ２２を往復するのではなく、訪問して読み出す順序を変えずに周回するようにチェックし、バッファ２６に蓄えたメッセージを先入先出で、即ちバッファ２６に先に書き込んだものを先に、受信バッファ２４に書き込む。また各メッセージには宛先のプロセスがタグ等に指定されている。
【００１６】
実施例でのプロセス間通信では、各プロセスがバスマネージャー２８にメッセージを送信し、メッセージで指定されているプロセスに対してバスマネージャー２８がメッセージを配達するものと、見なすことができる。この意味で、各プロセスはメッセージを送信し、他のプロセスから送信されたメッセージを購読するものと言うことができる。
【００１７】
なお図１のコンピュータ１０には、これ以外に上位コンピュータとの通信部等の、他のプロセスが存在するが、それらの図示を省略する。またマネージャー１４〜２０やバッファ２２，２６，バスマネージャー２８等は、コンピュータ１０の図示しないメインメモリに常駐しており、新のストッカーコントロールマネージャー１５を立ち上げ、旧のストッカーコントロールマネージャー１４が担当するメッセージの処理を終了すると、旧のストッカーコントロールマネージャー１４は停止して、図示しないＯＳに自己の抹消を依頼する。これによって旧のストッカーコントロールマネージャー１４はプロセスとしては消滅する。さらに各コントロールマネージャー１４〜２０は、ファイル等のソフトウェア資源を持ち、旧のストッカーコントロールマネージャー１４が新のストッカーコントロールマネージャー１５にバージョンアップされると、ファイル等の資源も旧のストッカーコントロールマネージャー１４から新のストッカーコントロールマネージャー１５へ引き継がれる。
【００１８】
図２に、バスマネージャー２８によるメッセージの送受信を模式的に示す。バスマネージャー２８は、図２に示す方向にメッセージバス１２を巡回するかのように処理し、バスマネージャー２８が処理するバッファが、所定の順序でループ状に並んでいると見なすことができる。図２での送信メッセージは、バスマネージャー２８が既に有しているメッセージ▲３▼と、メッセージ▲４▼，▲５▼，▲６▼の４つである。バスマネージャー２８はバッファ２２ａでメッセージ▲４▼を受け取り、メッセージ▲３▼を受信バッファに書き込む。次のバッファ２２ｂでメッセージ▲３▼，▲４▼を書き込む。次のバッファ２２ｃでは、メッセージ▲５▼，▲６▼を受け取り、メッセージ▲３▼，▲４▼を書き込む。最後のバッファ２２ｄでは、メッセージ▲３▼，▲４▼，▲５▼，▲６▼を書き込む。このようにしてバスマネージャー２８がバッファ２２ａの手前まで戻ると、各バッファ２２ａ〜２２ｄに書き込んだメッセージの内容は様々である。例えばバッファ２２ａ，２２ｂはメッセージ▲５▼，▲６▼を書き込まれていない。しかしながらどのバッファで見ても、メッセージの順番は不変である。例えばバッファ２２ａは次にメッセージ▲５▼，▲６▼を書き込まれ、メッセージ▲４▼はバッファ２２ａから送信したメッセージなので無視でき、バッファ２２ａとバッファ２２ｃやバッファ２２ｄとはメッセージの順番は一致している。このようにバスマネージャー２８は所定の順序でバッファ２２を巡回するようにして、メッセージを読み出し、読み出した順に先入先出の原則でメッセージを受信バッファに書き込んでいく。ここで各プロセスが先入先出の原則により受信バッファからメッセージを読み出せば、どのプロセスでもメッセージは基本的に同じ順番で配列している。
【００１９】
図３に、旧のストッカーコントロールマネージャー１４と新のストッカーコントロールマネージャー１５との間での、共通の受信バッファ２４ａからのメッセージの読み出しを示す。新のストッカーコントロールマネージャー１５はメインメモリー上に立ち上げられると、それに伴ってプロセス中の立ち上げプログラムが起動され、バージョンアップを意味する特別のメッセージ「ＳＹＮ」を送信バッファに書き込む。このメッセージはバスマネージャーにより、受信バッファ２４ａに書き込まれる。また受信バッファ２４ａ中のＳＣＭ１〜ＳＣＭ６は、いずれもストッカーコントロールマネージャーで処理すべきメッセージである。旧のストッカーコントロールマネージャー１４はバッファ２４ａのメッセージを順次読み出し、ＳＣＭ１〜ＳＣＭ３までを読み出してこれを自己の処理範囲とした後、メッセージ「ＳＹＮ」を読み出すと、バージョンアップがされたことを認識する。この結果旧のストッカーコントロールマネージャー１４は、以降のメッセージの処理を開始せず、読み出し済みのメッセージＳＣＭ１〜ＳＣＭ３等の処理を終了すると、ファイル等の資源を新のストッカーコントロールマネージャー１５に引き渡して停止する。続いて図示しないＯＳに自己の消滅を依頼する。新のストッカーコントロールマネージャー１５も、受信バッファ２４ａからメッセージを読み出す。新旧のストッカーコントロールマネージャー１４，１５で共通の受信バッファを用いているので、同じ順でメッセージを読み出し、メッセージ「ＳＹＮ」を読み出すと、以降のメッセージを新のストッカーコントロールマネージャー１５の処理範囲とする。なおここでは新旧のストッカーコントロールマネージャー１４，１５が共通のバッファ２４ａを用いた。
【００２０】
図４に、新旧のストッカーコントロールマネージャーの交替（バージョンアップ）のアルゴリズムを示す。新プロセスであるＳＣＭＮ（新のストッカーコントロールマネージャー）をメインメモリへストアすると、ＳＣＭＮはバージョンアップ情報を表すメッセージ「ＳＹＮ」を送信し、バスマネージャーは「ＳＹＮ」をＳＣＭＮとＳＣＭの共用の受信バッファへ書き込む。これらの後ＳＣＭＮとＳＣＭのいずれが先にメッセージ「ＳＹＮ」を読み出すかは、ＣＰＵタイムの割り当て等により変動する。いずれが先にＣＰＵタイムを割り当てられた場合でも、ＳＣＭは「ＳＹＮ」より前に受信したメッセージを実行して停止し、ＳＣＭＮは「ＳＹＮ」より後に受信したメッセージを実行し、ファイル等のプロセス資源をＳＣＭより引き継ぐ。そしてメッセージ「ＳＹＮ」は特別のメッセージで、ＳＣＭとＳＣＭＮの双方が購読するまで、即ちＳＣＭとＳＣＭＮの双方が受信バッファに読み出し済みと書き込むまで、バッファから抹消されない。ＳＣＭとＳＣＭＮの双方がバッファからメッセージ「ＳＹＮ」を読み出すと、メッセージ「ＳＹＮ」は受信バッファより削除され、この後旧プロセスＳＣＭは自己の担当分のメッセージの処理を終了した時点で停止し、ＯＳにより消去される。このようにしてバージョンアップが自動的に完了し、この間システムを停止させる必要はなく、旧プロセスと新プロセスの間で担当範囲が混乱する恐れもない。
【００２１】
実施例では、１つのコンピュータ内に複数のプロセスが存在する場合を例にしたが、複数のコンピュータを設けて、プロセスがこれらのコンピュータ上に分散し、ＬＡＮ等で接続されている場合も同様である。その場合メッセージバスは物理的にはコンピュータ間のＬＡＮ等により実現され、新プロセスと旧プロセスとは基本的に同じコンピュータにインストールされるものと仮定できる。そして各プロセス毎に送受信用のバッファを設けて、ＬＡＮマネージャー等によりプロセス間のメッセージ通信を管理すれば、図１〜図４の実施例と同様に実施できる。
【００２２】
実施例では、新プロセスから旧プロセスにバージョンアップの旨を送信した直後に、他のプロセスから処理依頼等のメッセージが到着した場合でも、どのメッセージを新プロセスと旧プロセスのいずれが処理するのかが明確になる。従ってメッセージがバージョンアップのために処理不能になることがなく、トラブルを生じることがない。
【図面の簡単な説明】
【図１】  実施例の物流システムの構成を示すブロック図
【図２】  実施例での、プロセス間のメッセージの送信と購読とを示す図
【図３】  実施例での、共通の受信バッファからの旧プロセス（ＳＣＭ）と新プロセス（ＳＣＭＮ）とのメッセージの読み出しと、処理範囲の分担とを示す図
【図４】  実施例での、プロセスのバージョンアップアルゴリズムを示すフローチャート
【符号の説明】
２〜８    資源
１０      コンピュータ
１２      メッセージバス
１４      旧のストッカーコントロールマネージャー
１５      新のストッカーコントロールマネージャー
１６      有軌道台車コントロールマネージャー
１８      リニア搬送台車コントロールマネージャー
２０      搬送ロボットコントロールマネージャー
２２      バッファ
２３      送信バッファ
２４      受信バッファ
２６      バッファ
２８      バスマネージャー
【図１】
0004366707.tif 000002
【図２】
0004366707.tif 000003
【図３】
0004366707.tif 000004
【図４】
0004366707.tif 000005