本発明の一実施形態について、図1〜図21を参照して説明する。
本実施形態に係る組合せ秤10は、手動式と呼ばれるものであり、図1に示すように、1台の制御装置30と、この制御装置30に通信ライン50を介してバス接続されたN(N;2以上の整数)台の計量器70,70,…と、を備えている。なお、計量器70の台数Nは、N=8〜16程度が適当であり、ここでは例えばN=10とする。
このうち、制御装置30は、命令入力手段としての操作キー32と、表示手段としての例えば液晶型のディスプレイ34と、を備えている。より具体的には、制御装置30は、図2に示すように、CPU(Central
Processing Unit)36を備えており、このCPU36に、入出力インタフェース回路38を介して、操作キー32およびディスプレイ34が接続されている。なお、ディスプレイ34としていわゆるタッチスクリーンを採用することによって、当該ディスプレイ34に操作キー32と同様の機能を担わせてもよい。
さらに、CPU36には、入出力インタフェース50を介して、上述の通信ライン50も接続されている。また、CPU36には、記憶手段としてのメモリ回路40も接続されている。このメモリ回路40は、ROM(Read Only Memory)やRAM(Random Access Memory),EEPROM(Electronically Erasable and Programmable Read Only Memory)等の半導体メモリによって構成されており、このメモリ回路40には、CPU36の動作を制御するための制御プログラム(以下、メインプログラムと言う。)が記憶されている。
一方、それぞれの計量器70は、図示しない被計量物としての物品が手動(オペレータによる手作業)で載置される計量台72を備えている。この計量台72は、図3に示すように、荷重センサ74に結合されており、荷重センサ74は、当該計量台72に載置された物品の重量wxに応じた電圧のアナログ計量信号を生成する。なお、荷重センサ74としては、例えば歪ゲージ式ロードセルが適当であるが、これに限定されない。また、ここで言う物品は、例えばリンゴやタマネギ等の比較的に大形の農産物であり、1台の計量器70(計量台72)につき1個ずつ載置される。
荷重センサ74によって生成されたアナログ計量信号は、増幅回路76によって増幅処理を施された後、A/D変換回路78に入力される。A/D変換回路78は、入力されたアナログ計量信号を、所定のサンプリング周期ΔTでサンプリングして、ディジタル計量信号に変換する。なお、A/D変換回路78によるサンプリング周期ΔTは、1[ms]程度が適当であるが、これに限定されない。また、A/D変換回路78にアナログ計量信号が入力される前の段階、例えば増幅回路76の入力側または出力側において、アナログ計量信号に含まれる比較的に高い周波数帯のノイズ成分、例えば100[Hz]以上の主に電気的要因によるノイズ成分、を除去すべく、適当なアナログフィルタ回路を設けてもよい。
A/D変換回路78によって変換されたディジタル計量信号は、入出力インタフェース回路80を介して、CPU82に入力される。CPU82は、入力されたディジタル計量信号に含まれる比較的に低い周波数帯のノイズ成分、例えば100[Hz]以下の主に機械的要因によるノイズ成分、を除去するべく、当該ディジタル計量信号に移動平均処理等の適当なディジタルフィルタリング処理を施す。そして、処理後のディジタル計量信号に基づいて、物品の重量wxに応じた重量測定値wx’(≒wx)を算出する。なお、重量測定値wx’が所定のしきい値wzよりも小さい(wx’<wz)ときには、当該測定重量値wx’としてwx’=0という値を出す。
CPU82によって算出された重量測定値wx’は、後述するように制御装置30(CPU36)に伝えられる。このため、CPU82は、入出力インタフェース回路80を介して、上述の通信ライン50に接続されている。また、CPU82には、入出力インタフェース回路80を介して、後述する“A”,“B”および“C”という3種類のランプ84,86および88も接続されている。さらに、CPU82には、半導体メモリによって構成されたメモリ回路90も接続されており、このメモリ回路90には、CPU82の動作を制御するための制御プログラム(以下、サブプログラムと言う。)が記憶されている。
なお、各計量器70,70,…には、それぞれを識別するための個別の計量器番号n(n=1〜N)が付されている。また、図には示さないが、制御装置30,通信ライン50および各計量器70,70,…は、1つの筺体に収容されることで一体化されている。
このように構成された本実施形態の組合せ秤10によれば、各計量器70,70,…に載置された合計10個(∵N=10)の物品のうち、所定個数M、例えばM=3個、の物品から成る組合せが選択される。その際、組合せの合計重量値Wyが予め定められた目標重量値Wtに等しいか出来る限り近いこと、および、当該組合せを構成する各物品間で重量wxが揃っていること、という2つの条件が満足されるように、次のような工夫が施されている。
即ち、まず、本実施形態における物品の重量wxに注目すると、この物品の重量wxは、図4に示すように概ね正規分布する、と考えられる。この前提の下、複数、例えば4つ、の境界重量値wb1,wa1,wa2およびwb2が設定される。具体的には、物品の平均重量値wmよりも低い領域に2つの境界重量値wb1およびwa1が設定され、当該平均重量値wmを中心として、これら2つの境界重量値wb1およびwa1と対称に他の2つの境界重量値wa2およびwb2が設定される。より具体的には、平均重量値wmがwm=100[g]であるとすると、各境界重量値wb1,wa1,wa2およびwb2はそれぞれwb1=50[g],wa1=70[g],wa2=130[g]およびwb2=150[g]とされる。勿論、これらの値に限定されない。
なお、各境界重量値wb1,wa1,wa2およびwb2の設定は、事前の初期設定作業において、操作キー32の操作により行われる。また、初期設定作業においては、上述したしきい値wzおよび組合せ個数Mも設定され、さらに目標重量値Wtも設定される。この目標重量値Wtとしては、物品の平均重量値Wmに組合せ個数Mを乗じた値(Wt=Wm・M)が適当であり、厳密にはこれよりも少し小さめの値が適当である。さらにまた、初期設定作業では、許容重量範囲の下限重量値Wbおよび上限重量値Wuも設定される。ただし、下限重量値Wbは、目標重量値Wtと等価(Wb=Wt)とされる。これは、最終的に商品となる組合せの合計重量値Wyのミニマム値を保証するためである。
このように各種パラメータが設定されると、制御装置30(CPU36)は、これらをメモリ回路40に記憶する。併せて、各境界重量値wb1,wa1,wa2およびwb2によって仕切られる5つの重量ランクC1,B1,A,B2およびC2を規定する。詳しくは、最小の境界重量値wb1未満の領域を、C1ランクとする。そして、最小の境界重量値wb1以上かつ2番目に小さい境界重量値wa1未満の領域を、B1ランクとし、2番目に小さい境界重量値wa1以上かつ3番目に小さい境界重量値wa2未満の領域を、Aランクとする。さらに、3番目に小さい境界重量値wa2以上かつ最大の境界重量値wb2未満の領域を、B2ランクとし、最大の境界重量値wb2以上の領域を、C2ランクとする。
そして、制御装置30は、各境界重量値wb1,wa1,wa2およびwb2,各重量ランクC1,B1,A,B2およびC2,ならびにしきい値wzに関する情報を、各計量器70,70,…に送る。それぞれの計量器70(CPU82)は、制御装置30から送られてきたこれらの情報を、メモリ回路90に記憶する。これをもって、初期設定作業が完了する。
この初期設定作業の後、実際に組合せ計量作業が行われる。具体的には、各計量器70,70,…(各計量台72,72,…)に物品が1個ずつ手動で載置される。すると、それぞれの計量器70は、自身に載置された物品の重量測定値wx’を上述した要領で算出する。さらに、算出した重量測定値wx’がいずれの重量ランクRw(=C1,B1,A,B2またはC2)に属するのかを判定する。なお、重量測定値wx’がwx’=0であるときは、重量ランクRwとしてRw=0という判定を下す。そして、これら重量測定値wx’および重量ランクRwに関するデータを、メモリ回路90内に構成された図示しない送信レジスタに記憶する。そして、制御装置30から送信要求を受けると、これに応答して、当該送信レジスタに記憶されたデータを自身の計量器番号nと共に制御装置30に送る。
制御装置30(CPU36)は、周期的または非周期的に各計量器70,70,…に対して順番に上述の送信要求を行い、この送信要求に応答して各計量器70,70,…からデータが送られてくると、これを、一旦、図5に示す受信レジスタに記憶する。そして、このデータに含まれる重量測定値wx’および重量ランクRwを、それぞれの計量器70の計量器番号nと共に、ディスプレイ34に表示する。
さらに、制御装置30は、各計量器70,70,…のうち、重量ランクRwがAランクに属するものの重量測定値wx’を所定個数M=3個ずつ組み合わせて、その合計重量値Wyが目標重量値Wtと上限重量値Wuとによって規定される許容重量範囲内(Wt≦Wy≦Wu)に入り、かつ当該合計重量値Wyが目標重量値Wtに最も近い組合せを、選択する。そして、このAランクの組合せ演算によって所望の組合せが選択されたとき、その組合せを構成する物品が載置されているそれぞれの計量器70に対して“A”というランプを点灯させるように指示を送る。これにより、この指示を受けた計量器70のAランプ84が点灯する。なお、Aランプ84は、他のランプ86および88と異なる発光色とされており、例えば白色ランプとされている。併せて、制御装置30は、いずれの計量器70に載置されている物品がAランクの組合せ演算によって選択されたのかを表す情報を、ディスプレイ34に表示する。具体的には、ディスプレイ34に表示されている各計量器70,70,…の計量器番号nのうち、選択された物品に対応する計量器番号nを、それ以外のものとは別の態様(例えば色または輝度)で表示すると共に、“Aランク”という文字を当該ディスプレイ34に表示する。
このようにいずれかの計量器70のAランプ84が点灯すると共に、その計量器70に載置されている物品がAランクの組合せ演算によって選択されたことを表す情報がディスプレイ34に表示されることによって、オペレータは、当該Aランクの組合せが選択されたこと、およびその組合せを構成する物品がいずれの計量器70に載置されているのかを、認識することができる。これを受けて、オペレータは、選択された物品を、それが載置されている計量器70から手動で取り除く。そして、取り除いた物品を、例えばAランク用の包装容器に収容して、次工程に送る。
物品が取り除かれたことによって空になった計量器70には、制御装置30から、Aランプ84を消灯させるための指示が送られる。これにより、この指示を受けた計量器70のAランプ84が消灯する。併せて、制御装置30は、ディスプレイ34の表示を元の状態に戻す。これをもって、一連(1回)の組合せ計量作業が完了する。そして、空になった計量器70に新たな物品が載置され、改めて組合せ計量作業が開始される。
なお、Aランクの組合せ演算によって所望の組合せが選択されないとき、つまり合計重量値Wyが許容重量範囲内に入る組合せが存在しないとき、制御装置30は、B1ランクおよびB2ランクをも選択対象範囲に加えて、組合せ演算を行う。具体的には、Aランク,B1ランクおよびB2ランクから1つずつ(合計M=3個の)重量測定値wx’を取り出し、これらを組み合わせて、その合計重量値Wyが許容重量範囲内に入り、かつ目標重量値Wtに最も近い組合せを、選択する。そして、この言わばBランクの組合せ演算によって所望の組合せが選択されたときは、その組合せを構成する物品が載置されているそれぞれの計量器70に対して“B”というランプを点灯させるように指示を送る。これにより、この指示を受けた計量器70のBランプ86が点灯する。なお、Bランプ86は、例えば青色のランプとされている。併せて、制御装置30は、いずれの計量器70に載置されている物品がBランクの組合せ演算によって選択されたのかを表す情報を、ディスプレイ34に表示する。具体的には、ディスプレイ34に表示されている各計量器番号nのうち、選択された物品に対応する計量器番号nを、それ以外のものとは別の態様で表示すると共に、“Bランク”という文字をディスプレイ34に表示する。
このようにいずれかの計量器70のBランプ86が点灯すると共に、その計量器70に載置されている物品がBランクの組合せ演算によって選択されたことを表す情報がディスプレイ34に表示されることによって、オペレータは、当該Bランクの組合せが選択されたこと、およびその組合せを構成する物品がいずれの計量器70に載置されているのかを、認識することができる。これを受けて、オペレータは、選択された物品を、それが載置されている計量器70から取り除き、Bランク用の包装容器に収容する。すると、この物品が取り除かれたことによって空になった計量器70のBランプ86が消灯する。併せて、ディスプレイ34の表示が元の状態に戻る。そして、空になった計量器70に新たな物品が載置され、改めて組合せ計量作業が開始される。
さらに、このBランクの組合せ演算によっても依然として所望の組合せが選択されないときは、制御装置30は、B1ランクおよびB2ランクに代えて、C1ランクおよびC2ランクを選択対象範囲に加えて、組合せ演算を行う。具体的には、Aランク,C1ランクおよびC2ランクから1つずつ重量測定値wx’を取り出し、これらを組み合わせて、その合計重量値Wyが許容重量範囲内に入り、かつ目標重量値Wtに最も近い組合せを、選択する。そして、この言わばCランクの組合せ演算によって所望の組合せが選択されたときは、その組合せを構成する物品が載置されているそれぞれの計量器70に対して“C”というランプを点灯させるように指示を送る。これにより、この指示を受けた計量器70のCランプ88が点灯する。なお、Cランプ88は、例えば黄色のランプとされている。併せて、制御装置30は、いずれの計量器70に載置されている物品がCランクの組合せ演算によって選択されたのかを表す情報を、ディスプレイ34に表示する。具体的には、ディスプレイ34に表示されている各計量器番号nのうち、選択された物品に対応する計量器番号nを、それ以外のものとは別の態様で表示すると共に、“Cランク”という文字をディスプレイ34に表示する。
このようにいずれかの計量器70のCランプ88が点灯すると共に、その計量器70に載置されている物品がCランクの組合せ演算によって選択されたことを表す情報がディスプレイ34に表示されることによって、オペレータは、当該Cランクの組合せが選択されたこと、およびその組合せを構成する物品がいずれの計量器70に載置されているのかを、認識することができる。これを受けて、オペレータは、選択された物品を、それが載置されている計量器70から取り除き、Cランク用の包装容器に収容する。これにより、空になった計量器70のCランプ86が消灯すると共に、ディスプレイ34の表示が元の状態に戻る。そして、空になった計量器70に新たな物品が載置され、改めて組合せ計量作業が開始される。
なお、このCランクの組合せ演算をもってしても依然として所望の組合せが選択されないときは、制御装置30は、許容重量範囲を特別に広げ、詳しくは上限重量値Wuを所定量だけ上げる。そして、この特別な許容重量範囲(Wt≦Wy≦Wu’;Wu’>Wu)を用いて、改めてAランクの組合せ演算を行い、例えばこのAランクの組合せ演算によって所望の組合せが選択されないときは、Bランクの組合せ演算を行い、このBランクの組合せ演算によって所望の組合せが選択されないときは、さらにCランクの組合せ演算を行う。それでもなお、所望の組合せが選択されないときは、その旨を表すアラームを一定期間にわたって出力して、組合せ計量作業を強制終了させる。そして、各計量器70,70,…に供給されている(言わば組合せの場に参加している)いずれかの物品が新たな物品と交換された上で、改めて最初から組合せ計量作業が開始される。なお、ここで言うアラームは、例えばディスプレイ34に所定のメッセージを表示する等の視覚的態様によって出力されてもよいし、ブザーを鳴らす等の聴覚的態様によって出力されてもよい。
このように、本実施形態の組合せ秤10によれば、組合せの場に参加している各物品のうち、その重量値wxがAランクに属する物品、つまり重量値wxのバラツキが比較的に小さい物品、から優先的に組み合わされ、合計重量値Wyが許容重量範囲内に入り、かつ目標重量値Wtに最も近い組合せが、選択される。従って、組合せの合計重量値Wyが目標重量値Wtに等しいか出来る限り近いこと、および、組合せを構成する各物品間で重量値wxが揃っていること、という組合せの品質および価値の観点から重視される2つの要求を積極的に満足することができる。言い換えれば、Aランクという高品質かつ高価値な組合せを高い確率で構成することができる。
また、Aランクの組合せが選択されないときは、その次に品質および価値の高いBランクの組合せが選択され、それでもなお組合せが選択されないときは、Cランクの組合せが選択される。このように品質および価値の高い組合せから順に選択されるので、当該組合せの品質および価値の低下が抑制される。
さらに、Aランク,BランクおよびCランクのいずれかの組合せが選択されたとき、その品質ランクRq(=A,BまたはC)を表す情報がディスプレイ34に表示されると共に、組合せを構成する物品が載置された計量器70の各ランプ84,86および88のうち当該品質ランクRqに対応するものが点灯する。従って、それぞれの組合せについての品質ランクRqの判別(選別)が極めて容易である。
なお、上述の如くAランク→Bランク→Cランクの順で組合せ演算が行われた場合には、BランクおよびCランクに属する物品、特にCランクに属する物品が、いつまで経っても選択されずに、組合せの場に残ってしまう可能性がある。そして、このように組合せの場に残ってしまう物品、言わば滞留品、が発生すると、新たに組合せの場に加えられる物品の実質数が減って、Aランクという高品質かつ高価値な組合せはおろか、BランクおよびCランクの組合せまでもが選択され難くなる。これは、言うまでもなく、作業効率の低下を招く。
そこで、このような不都合を回避するべく、制御装置30は、組合せの場に参加しているそれぞれの物品について、当該組合せの場に参加してからどれくらいの期間にわたって待ち続けているのかを、待ち回数Sという変数でカウントする。具体的には、Aランク,BランクおよびCランクのいずれに拘らず1つの組合せが選択されるたびに、この選択された組合せを構成する物品以外の物品の待ち回数Sを“1”ずつインクリメントする。そして、例えばBランクに属するいずれかの物品の待ち回数Sが所定回数Pに達したときは、Bランク→Aランク→Cランクの順で組合せ演算を行う。一方、例えばCランクに属するいずれかの物品の待ち回数Sが所定回数Pに達したときは、Cランク→Aランク→Bランクの順で組合せ演算を行う。さらに、Bランクに属する物品とCランクに属する物品との両方の待ち回数Sが所定回数Pに達したときには、Bランク→Cランク→Aランクの順で組合せ演算を行う。なお、いずれの物品の待ち回数Sも所定回数Pに達していないときには、上述の如くAランク→Bランク→Cランクの順で組合せ演算を行う。
このように組合せとして選択され難いBランクおよびCランクに属する物品について、それぞれの待ち回数Sが所定回数Pに達したときに、その物品が優先的に選択されるように組合せ演算の順番が適宜変更されることで、滞留品の発生が抑制され、作業効率の低下が阻止される。なお、いずれかの物品の待ち回数Sが所定回数Sよりも大きい最大回数Q(>P)に達したときは、制御装置30は、その旨を表すアラームを一定期間にわたって出力すると共に、当該物品が載置された計量器70の計量器番号nをディスプレイ34に表示する(またはディスプレイ34に表示されている各計量器番号nのうち当該物品に対応するものをそれ以外とは別態様とする)。この場合は、組合せの場に参加しているいずれかの物品が新たな物品と交換された上で、改めて組合せ計量作業が行われる。ここで言う所定回数Pおよび最大回数Qについては、上述した初期設定作業において任意に設定可能としてもよい。
このような手順による組合せ計量作業を実現するために、それぞれの計量器70のCPU82は、上述したサブプログラムに従って、図6のフローチャートで示される計量タスクを実行する。
即ち、CPU82は、A/D変換回路78のサンプリング周期ΔTに合わせて、ステップS1に進み、当該A/D変換回路78からディジタル計量信号を取得する。そして、ステップS3に進み、ディジタル計量信号が安定しているか否かを判別する。具体的には、ステップS1で今回取得されたディジタル計量信号とこれに連続する過去複数個のディジタル計量信号(サンプリング値)との中で最大値と最小値との差を求め、この差が所定値よりも小さいときは、当該ディジタル計量信号は安定していると判別し、そうでないときは、不安定であると判別する。そして、この判別結果に基づいて、次のステップS5で、その先の進路を決定する。
ステップS5において、例えばディジタル計量信号が不安定であるとき、CPU82は、そのままこの計量タスクを終了する。一方、ディジタル計量信号が安定しているときは、ステップS7に進み、上述したようにディジタルフィルタリング処理後のディジタル計量信号に基づいて重量測定値wx’を算出する。そして、ステップS9に進み、この重量測定値wx’としきい値wzとを比較する。
このステップS9において、例えば重量測定値wx’がしきい値wz以上(wx’≧wz)であるとき、CPU82は、計量台72に物品が載置されているものと認識して、ステップS11に進む。そして、このステップS11において、重量測定値wx’をメモリ回路90に一時的に記憶した後、ステップS13に進む。
ステップS13において、CPU82は、重量測定値wx’の属する重量ランクRwを判別する。具体的には、重量測定値wx’が、図4に示した最小の境界重量値wb1未満(wx’<wb1)であるとき、当該重量測定値wx’はC1ランクに属する、と判別する。そして、重量測定値wx’が最小の境界重量値wb1以上かつ2番目に小さい境界重量値wa1未満(wb1≦wx’<wa1)であるとき、当該重量測定値wx’はB1ランクに属する、と判別する。さらに、重量測定値wx’が2番目に小さい境界重量値wa1以上かつ3番目に小さい境界重量値wa2未満(wa1≦wx’<wa2)であるとき、当該重量測定値wx’はAランクに属する、と判別する。そして、重量測定値wx’が3番目に小さい境界重量値wa2以上かつ最大の境界重量値wb2未満(wa2≦wx’<wb2)であるとき、当該重量測定値wx’はB1ランクに属する、と判別し、重量測定値wx’が最大の境界重量値wb2以上(wx’≧wb2)であるとき、重量測定値wx’はB2ランクに属する、と判別する。
このステップS13における重量ランクRwの判別後、CPU82は、ステップS15に進み、当該ステップS13での判別結果を、メモリ回路90に一時的に記憶する。そして、ステップS16に進み、メモリ回路90に一時的に記憶しておいた重量測定値wx’と重量ランクRwとを自身の計量器番号nと合わせて上述した送信レジスタに記憶(セット)する。このステップS16の実行をもって、計量タスクを終了する。
なお、上述のステップS9において、重量測定値wx’がしきい値wzよりも小さい(wx’<wz)とき、CPU82は、計量台72に物品が載置されていないものと認識して、ステップS17に進む。そして、このステップS17において、重量測定値wx’をwx’=0としてメモリ回路90に一時的に記憶し、さらにステップS19において、重量ランクRwをもRw=0として当該メモリ回路90に一時的に記憶した後、ステップS16に進む。
これに対して、制御装置30側のCPU36は、上述したメインプログラムに従って、図7〜図16のフローチャートで示される組合せ計量タスクを実行する。
この組合せ計量タスクにおいて、CPU36は、まず、図7のステップS101に進み、各計量器70,70,…に対して順番に送信要求を行い、この送信要求に応答して各計量器70,70,…から送られてくるデータを受信する。そして、ステップS103に進み、当該ステップS101で受信したデータを、図5に示した受信レジスタに記憶する。なお、CPU36は、この受信レジスタとは別に、図17に示すメモリレジスタをも、メモリ回路40内に構成している。そして、後述するように、これら受信レジスタの記憶内容とメモリレジスタの記憶内容とを比較して、両者が不一致なときにのみ、受信レジスタの記憶内容をそのままメモリレジスタにコピーする。また、図には示さないが、CPU36は、このメモリレジスタの記憶内容に従って、各計量器70,70,…による重量測定値wx’および重量ランクRwを、それぞれの計量器番号nと共に、ディスプレイ34に表示する。
ステップS103の実行後、CPU36は、ステップS105に進み、受信レジスタの記憶内容のうち重量ランクRwを、図18に示す待ち管理レジスタに記憶する。この待ち管理レジスタは、それぞれの計量器70ごとに当該重量ランクRwを管理すると共に、上述した待ち回数Sをカウントするためのものであり、この待ち管理レジスタもまた、CPU36によってメモリ回路40内に構成されている。そして、CPU36は、ステップS107に進み、この待ち管理レジスタ内で重量ランクRwがRw=0となっている計量器70についての待ち回数Sをリセット(S=0)する。
さらに、CPU36は、ステップS109に進み、Faというフラグに“0”が設定されているか否かを判定する。このフラグFaは、今現在、組合せが選択されている状態にあるか否か(言い換えれば当該組合せを構成するそれぞれの物品が計量器70から取り除かれるのを待っている状態にあるか否か)を表す指標であり、当該組合せが選択されている状態にあるときにのみ、このフラグFaに“1”が設定され、そうでないときには、“0”が設定される。ここで、例えば、このフラグFaに“0”が設定されているとき、つまり今現在は組合せが選択されていない状態にあるとき、CPU36は、ステップS111に進む。
ステップS111において、CPU36は、組合せ演算を開始する準備が整ったか否か(言い換えれば前回の組合せ計量作業が終わって次の組合せ計量作業が開始された直後であるか否か)を判定する。なお、このステップS111の組合せ演算開始可否判定処理については、後で詳しく説明する。
そして、CPU36は、ステップS113に進み、ステップS111での判定結果に基づいて、その先の進路を決定する。ここで、例えば、ステップS111での判定結果が組合せ演算を開始する準備が整っていないことを表す場合、CPU36は、一旦、この組合せ計量タスクを終了する。一方、組合せを開始する準備が整っている場合には、ステップS115に進む。
ステップS115において、CPU36は、許容重量範囲として、目標重量値Wtと上限重量値Wuとによって規定される言わば通常範囲(Wt≦Wy≦Wu)を設定する。そして、ステップS117に進み、Fb,FcおよびFbcという各フラグにそれぞれ“0”が設定されているか否かを判定する。ここで、フラグFbは、上述したBランクを優先してのBランク→Aランク→Cランクの順で組合せ演算を行う必要があるか否かを表す指標であり、当該Bランクを優先する必要があるときは、このフラグFbに“1”が設定され、そうでないときは、“0”が設定される。そして、フラグFcは、Cランクを優先してのCランク→Aランク→Bランクの順で組合せ演算を行う必要があるか否かを表す指標であり、当該Cランクを優先する必要があるときは、このフラグFcに“1”が設定され、そうでないときは、“0”が設定される。さらに、フラグFbcは、BランクおよびCランクを優先してのBランク→Cランク→Aランクの順で組合せ演算を行う必要があるか否かを表す指標であり、当該BランクおよびCランクを優先する必要があるときは、このフラグFbcに“1”が設定され、そうでないときは、“0”が設定される。
このステップS117において、例えば、全てのフラグFb,FcおよびFbcに“0”が設定されているとき、つまりBランクおよびCランクのいずれをも優先する必要がないとき、CPU36は、図8のステップS119に進む。そして、このステップS119において、Aランクの組合せ演算を行う。具体的には、上述したように重量ランクRwがAランクに属する物品の重量測定値wx’をM=3個ずつ組み合わせて、その合計重量値Wyが許容重量範囲内に入り、かつ目標重量値Wtに最も近い組合せを、選択する。なお、このステップS119における組合せ演算は、図17に示したメモリレジスタの記憶内容に基づいて行われる。
ステップS119の実行後、CPU36は、ステップS121に進み、当該ステップS119における組合せ演算によってAランクの組合せが選択されたか否かを判定する。そして、例えば、Aランクの組合せが選択されたと判定すると、ステップS123に進み、当該Aランクの組合せを構成する物品が載置された計量器70を特定すると共に、Aランクという品質ランクRqを特定する。具体的には、メモリ回路40内に構成した図19に示す組合せ管理レジスタにおいて、組合せを構成する物品が載置された計量器70の組合せ当否欄に“1”を設定し、そうでない計量器70の組合せ当否欄に“0”を設定する。併せて、品質ランクRqの欄に“Aランク”を表す符号を設定する。
さらに、CPU36は、ステップS125に進み、ステップS123で特定した計量器70に対して、当該ステップS123で特定した品質ランクRqに対応するランプ84,86または88を点灯させるように指示を送る。これにより、この指示を受けた計量器70の当該品質ランクRqに対応するランプ84,86または88が点灯する。また、図には示さないが、CPU36は、いずれの計量器70に載置されている物品が組合せを構成しているのか、およびその組合せの品質ランクRqに関する情報を、ディスプレイ34に表示する。
そして、CPU36は、ステップS127に進み、上述したフラグFaに“1”を設定して、一旦、この組合せ計量タスクを終了する。
一方、上述のステップS121において、Aランクの組合せが選択されないとき、CPU36は、ステップS129に進む。そして、このステップS129において、Bランクの組合せ演算を行う。具体的には、重量ランクRwがAランク,B1ランクおよびB2ランクに属する物品の重量測定値wx’を1つずつ(合計M=3個)取り出し、これらを組み合わせて、その合計重量値Wyが許容重量範囲内に入り、かつ目標重量値Wtに最も近い組合せを、選択する。なお、このステップS129における組合せ演算もまた、ステップS119と同様、図17に示したメモリレジスタの記憶内容に基づいて行われる。
ステップS129の実行後、CPU36は、ステップS131に進み、当該ステップS129における組合せ演算によってBランクの組合せが選択されたか否かを判定する。そして、例えば、Bランクの組合せが選択されたと判定すると、ステップS123に進む。なお、この場合は、ステップS123において、Bランクの組合せを構成する物品が載置された計量器70が特定されると共に、Bランクという品質ランクRqが特定される。
さらに、ステップS131において、Bランクの組合せが選択されないとき、CPU36は、ステップS133に進む。そして、このステップS133において、Cランクの組合せ演算を行う。具体的には、重量ランクRwがAランク,C1ランクおよびC2ランクに属する物品の重量測定値wx’を1つずつ取り出し、これらを組み合わせて、その合計重量値Wyが許容重量範囲内に入り、かつ目標重量値Wtに最も近い組合せを、選択する。なお、このステップS133における組合せ演算もまた、図17に示したメモリレジスタの記憶内容に基づいて行われる。
そして、ステップS133の実行後、CPU36は、ステップS135に進み、当該ステップS133における組合せ演算によってCランクの組合せが選択されたか否かを判定する。ここで、例えば、Cランクの組合せが選択されたと判定すると、ステップS123に進む。なお、この場合は、ステップS123において、Cランクの組合せを構成する物品が載置された計量器70が特定されると共に、Cランクという品質ランクRqが特定される。
一方、ステップS135において、Cランクの組合せが選択されないとき、CPU36は、図9ステップS137に進む。そして、このステップS137において、許容重量範囲として、拡張された特別な範囲(Wt≦Wy≦Wu’)を設定した後、改めてAランク→Bランク→Cランクの順に組合せ演算を行うべく、図8におけるステップS121〜ステップS135(ただし、ステップS123〜ステップS127を除く。)と同様のステップS139〜ステップS149を実行する。そして、これらのステップS139〜ステップS149において所望の組合せが選択されたときは、図8のステップS123に進む。一方、所望の組合せが選択されないときは、ステップS151に進む。
ステップS151において、CPU36は、組合せが選択されなかったことを表すアラームを一定期間にわたって出力した後、この組合せ計量タスクを終了する。なお、この場合は、組合せの場に参加しているいずれかの物品が新たな物品と交換される。
さらに、上述の図7におけるステップS117において、いずれかのフラグFb,FcおよびFbcに“1”が設定されているとき、CPU36は、図10のステップS153に進む。そして、このステップS153において、Bランク優先を表すフラグFbに“1”が設定されているか否かを判定する。ここで、例えば、このフラグFbに“1”が設定されているとき、CPU36は、Bランクを優先しての組合せ演算を行うべく、ステップS155に進む。そして、このステップS155において、Bランクの組合せ演算を行う。
ステップS155の実行後、CPU36は、ステップS157に進み、当該ステップS155における組合せ演算によってBランクの組合せが選択されたか否かを判定する。そして、例えば、Bランクの組合せが選択されたと判定すると、ステップS159に進み、フラグFbに“0”を設定した後、図8のステップS123に進む。一方、ステップS157において、Bランクの組合せが選択されないときは、ステップS161に進む。
ステップS161において、CPU36は、Aランクの組合せ演算を行う。そして、ステップS163に進み、当該ステップS161での組合せ演算によってAランクの組合せが選択されたか否かを判定する。そして、Aランクの組合せが選択されたと判定すると、ステップS159に進み、そうでない場合は、ステップS165に進む。
ステップS165において、CPU36は、Cランクの組合せ演算を行う。そして、ステップS167に進み、当該ステップS165での組合せ演算によってCランクの組合せが選択されたか否かを判定する。そして、Cランクの組合せが選択されたと判定すると、ステップS159に進み、そうでない場合は、図11のステップS169に進む。
ステップS169において、CPU36は、許容重量範囲として、特別範囲(Wt≦Wy≦Wu’)を設定した後、改めてBランク→Aランク→Cランクの順に組合せ演算を行うべく、図10におけるステップS155〜ステップS167(ただし、ステップS159を除く。)と同様のステップS171〜ステップS181を実行する。そして、これらのステップS171〜ステップS181において所望の組合せが選択されたときは、図8のステップS123に進む。一方、所望の組合せが選択されないときは、ステップS183において、フラグFbに“0”を設定した後、アラームを出力するべく、図9のステップS151に進む。
そして、上述の図10におけるステップS153において、フラグFbに“1”が設定されていないとき、CPU36は、図12のステップS185に進む。そして、このステップS185において、Cランク優先を表すフラグFcに“1”が設定されているか否かを判定する。ここで、例えば、フラグFcに“1”が設定されているとき、CPU36は、Cランクを優先しての組合せ演算を行うべく、ステップS187に進む。そして、このステップS187において、Cランクの組合せ演算を行う。
ステップS187の実行後、CPU36は、ステップS189に進み、当該ステップS187における組合せ演算によってCランクの組合せが選択されたか否かを判定する。そして、例えば、Cランクの組合せが選択されたと判定すると、ステップS191に進み、フラグFcに“0”を設定した後、図8のステップS123に進む。一方、ステップS189において、Cランクの組合せが選択されないときは、ステップS193に進む。
ステップS193において、CPU36は、Aランクの組合せ演算を行う。そして、ステップS195に進み、当該ステップS193での組合せ演算によってAランクの組合せが選択されたか否かを判定する。そして、Aランクの組合せが選択されたと判定すると、ステップS191に進み、そうでない場合は、ステップS197に進む。
ステップS197において、CPU36は、Bランクの組合せ演算を行う。そして、ステップS199に進み、当該ステップS197での組合せ演算によってBランクの組合せが選択されたか否かを判定する。そして、Bランクの組合せが選択されたと判定すると、ステップS191に進み、そうでない場合は、図13のステップS201に進む。
ステップS201において、CPU36は、許容重量範囲として、特別範囲(Wt≦Wy≦Wu’)を設定した後、改めてCランク→Aランク→Bランクの順に組合せ演算を行うべく、図12におけるステップS187〜ステップS199(ただし、ステップS191を除く。)と同様のステップS203〜ステップS213を実行する。そして、これらのステップS203〜ステップS213において所望の組合せが選択されたときは、図8のステップS123に進む。一方、所望の組合せが選択されないときは、ステップS215において、フラグFcに“0”を設定した後、図9のステップS151に進む。
さらに、上述の図12におけるステップS185において、フラグFbに“1”が設定されていないとき、つまりフラグFbcに“1”が設定されているとき、CPU36は、図14のステップS217に進む。そして、このステップS217において、Bランクの組合せ演算を行った後、ステップS219に進み、当該ステップS217での組合せ演算によってBランクの組合せが選択されたか否かを判定する。
このステップS219において、例えば、Bランクの組合せが選択されたと判定すると、CPU36は、ステップS221に進み、フラグFbcに“0”を設定した後、図8のステップS123に進む。一方、Bランクの組合せが選択されないときは、ステップS223に進む。
ステップS223において、CPU36は、Cランクの組合せ演算を行う。そして、ステップS225に進み、当該ステップS223での組合せ演算によってCランクの組合せが選択されたか否かを判定する。そして、Cランクの組合せが選択されたと判定すると、ステップS221に進み、そうでない場合は、ステップS227に進む。
ステップS227において、CPU36は、Aランクの組合せ演算を行う。そして、ステップS229に進み、当該ステップS227での組合せ演算によってAランクの組合せが選択されたか否かを判定する。そして、Aランクの組合せが選択されたと判定すると、ステップS221に進み、そうでない場合は、図15のステップS231に進む。
ステップS231において、CPU36は、許容重量範囲として、特別範囲(Wt≦Wy≦Wu’)を設定した後、改めてBランク→Cランク→Aランクの順に組合せ演算を行うべく、図14におけるステップS217〜ステップS229(ただし、ステップS221を除く。)と同様のステップS233〜ステップS243を実行する。そして、これらのステップS233〜ステップS243において所望の組合せが選択されたときは、図8のステップS123に進む。一方、所望の組合せが選択されないときは、ステップS245において、フラグFbcに“0”を設定した後、図9のステップS151に進む。
図7に戻って、ステップS109において、フラグFaに“1”が設定されているとき、つまり今現在組合せが選択されている状態にあるとき、CPU36は、図16のステップS247に進む。そして、このステップS247において、組合せ計量作業が完了したか否か、つまり組合せを構成する全ての物品が計量器70から取り除かれたか否か、を判定する。なお、この判定は、図5に示した受信レジスタと図19に示した組合せ管理レジスタとを参照(照合)することによって行われる。そして、このステップS247における判定結果に基づいて、次のステップS249で、その先の進路を決定する。
ステップS249において、例えば未だ組合せ計量作業が完了していないと判定した場合、CPU36は、そのままこの組合せ計量タスクを終了する。一方、組合せ計量作業が完了していると判定した場合は、ステップS251に進み、フラグFaに“0”を設定した後、ステップS253に進む。そして、このステップS253において、組合せ管理レジスタを参照しながら、今現在各ランプ84,86および88いずれかが点灯している状態にある計量器70に対して、当該ランプ84,86または88を消灯させるよう指示を送る。これにより、この指示を受けた計量器70のランプ84,86または88が消灯する。併せて、図には示さないが、CPU36は、ディスプレイ34の表示を元に戻す。
さらに、CPU36は、ステップS255に進み、組合せ管理レジスタの内容をクリアすることによって、組合せを構成する物品が載置された計量器70の特定を解除すると共に、品質ランクRqの特定を解除する。そして、ステップS257に進み、図18に示した待ち管理レジスタ内において重量ランクRwがRw≠0となっているそれぞれの計量器70についての待ち回数Sを“1”ずつインクリメント(S=S+1)し、その後、ステップS259に進む。
ステップS259において、CPU36は、待ち管理レジスタ内において待ち回数Sが所定回数Pに達した(S≧P)計量器70が存在するか否かを、判定する。ここで、例えば、待ち回数Sが所定回数Pに達した計量器70が存在しない場合は、組合せ計量タスクを終了する。一方、待ち回数Sが所定回数Pに達した計量器70が存在する場合は、ステップS261に進み、その計量器70に載置されている物品がいずれの重量ランクRwに属するのかを、判別する。
例えば、その物品がB1ランクまたはB2ランクに属する場合、CPU36は、ステップS263に進み、Bランクの組合せ演算を優先するためのフラグFbに“1”を設定した後、ステップS265に進む。一方、C1ランクまたはC2ランクに属する場合は、ステップS267に進み、Cランクの組合せ演算を優先するためのフラグFcに“1”を設定した後、ステップS265に進む。さらに、B1ランクまたはB2ランクに属する物品と、C1ランクまたはC2ランクに属する物品と、の両方が存在する場合は、ステップS269に進み、BランクおよびCランクの組合せ演算を優先するためのフラグFbcに“1”を設定した後、ステップS265に進む。
ステップS265において、CPU36は、待ち回数Sが最大回数Qに達した(S≧Q)計量器70が存在するか否かを、判定する。そして、例えば、待ち回数Sが最大回数Qに達した計量器70が存在しない場合は、そのままこの計量タスクを終了する。一方、待ち回数Sが最大回数Qに達した計量器70が存在する場合は、その計量器70を表す情報をディスプレイ34に表示した後、アラームを出力するべく、図9のステップS151に進む。
続いて、上述の図7におけるステップS111の組合せ演算開始可否判定処理について、図20を参照して、詳しく説明する。
この組合せ演算開始可否判定処理において、CPU36は、まず、ステップS301に進み、図5に示した受信レジスタの記憶内容と、図17に示したメモリレジスタの記憶内容と、を比較する。そして、これら両者が不一致であるか否かを、次のステップS303で判定する。
このステップS303において、例えば受信レジスタの記憶内容とメモリレジスタの記憶内容とが不一致であると判定したとき、CPU36は、ステップS305に進み、受信レジスタの記憶内容をそのままメモリレジスタにコピーする。そして、ステップS307に進み、このメモリレジスタにコピーされた各重量測定値wx’の中に新たにゼロ(wx’=0)となったもの、つまり新たに空になった計量器70、が存在するか否か、を判断する。
このステップS307において、例えば新たにゼロとなった重量測定値wx’が存在する場合、CPU36は、ステップS309に進み、組合せ演算を開始する準備が整っていないことを表す“開始不可”という判定を下す。そして、このステップS309の実行をもって、組合せ演算開始可否判定処理を終了する。なお、上述のステップS303において、受信レジスタの記憶内容とメモリレジスタの記憶内容とが不一致でないときも、CPU36は、このステップS309を実行して、組合せ演算開始可否判定処理を終了する。
一方、ステップS307において、新たにゼロとなった重量測定値wx’が存在しない場合、CPU36は、ステップS311に進む。そして、このステップS311において、組合せ演算を開始する準備が整っていることを表す“開始可能”という判断を下して、組合せ演算開始可否判定処理を終了する。
なお、本実施形態においては、物品として、リンゴやタマネギ等の比較的に大形の農産物を例に挙げたが、これに限らない。例えば、他の野菜や果物等の農産物であってもよいし、タラコ等の魚卵を含む魚介類や海藻類等の水産物であってもよい。また、これら農産物や水産物等の1次産品に限らず、ブロイラ(加工食肉)や菓子等の加工品、いわゆる2次産品、であってもよい。そして、比較的に小形の物品については、1台の計量器70につき数個〜十数個程度のごく少量ずつ載置されてもよい。
また、本実施形態では、手動式の組合せ秤10を例に挙げて説明したが、半自動式や自動式の組合せ秤にも、本発明を適用することができる。なお、参考までに、半自動式の組合せ秤とは、それぞれの計量器に個別品が供給されるときは手動で行われ、当該計量器から個別品が取り除かれるときは自動で行われる方式のものである。そして、自動式とは、個別品の供給および除去がいずれも自動で行われる方式のものである。
さらに、Cランクの組合せ演算では、Aランク,C1ランクおよびC2ランクを選択対象範囲としたが、これに限らない。例えば、Aランク,B1ランク,B2ランク,C1ランクおよびC2ランクの全てを選択対象範囲としてもよい。
そして、組合せ個数MをM=3としたが、これ以外の数としてもよい。ただし、この場合、特にBランクおよびCランクの組合せ演算において、いずれの重量ランクRwからいくつの重量測定値wx’を取り出すのかを、当該組合せ個数Mに応じて適宜決定するのが、肝要である。
また、本実施形態においては、4つの境界重量値wb1,wa1,wa2およびwb2を設定することによって、Aランク,B1ランク,B2ランク,C1ランクおよびC2ランクという5つの重量ランクRwを規定したが、これに限らない。例えば、図21に示すように、6つの境界重量値w1〜w6を設定することによって、第1ランク〜第7ランクという7つの重量ランクRwを規定してもよい。
この場合、例えば、Aランクの組合せ演算においては、平均重量値wmを含む第4ランクと、これに隣接する第3ランクおよび第5ランクと、から1つずつ重量測定値wx’を取り出し、これらを組み合わせればよい。そして、Bランクの組合せ演算においては、第4ランクと、第3ランクおよび第5ランクよりも外側にある第2ランクおよび第6ランクと、から1つずつ重量測定値wx’を取り出せばよい。さらに、Cランクの組合せ演算においては、第4ランクと、両端にある第1ランクおよび第7ランクと、から1つずつ重量測定値wx’を取り出せばよい。勿論、これ以外の取り合わせでもよい。
なお、図21において、例えば物品の平均重量値wmがwm=100[g]であるとすると、各境界重量値w1,w2,w3,w4,w5およびw6はそれぞれw1=50[g],w2=70[g],w3=90[g],w4=110[g],w5=130[g]およびw6=150[g]程度が、適当である。勿論、これらの値に限定されない。
さらに、品質ランクRqについては、Aランク,BランクおよびCランクという3つのランクを定めたが、これ以外の数のランクを設定してもよい。また、図18に示した待ち管理レジスタについては、待ち回数Sに代えて、待ち時間をカウントしてもよいし、これらを併用してもよい。