2020年10月14日水曜日

ExcelToolを使ってICタグをもう少しだけ探せるようにしてみた

ExcelToolの機能の一つに「ICタグを探す」というものがあります。これはExcel上で選択したタグIDのICタグをハンディで読み取ると、ハンディから音が鳴るというものです。近づくにつれて3段階くらいで音が変わります。ICタグを使って探すということは、現物が見つからなくなって困っている状況だと思うので、なるべく読取精度を上げたいところです。

使ったもの

パラメータチューニング

ExcelToolのICタグを探すは、Inventoryで周囲のタグIDを集めてきて、探しているタグIDがその中にあったら音を鳴らすという動きをします。そこで、タグ全数をより短時間で読めるパラメータであれば、効率よくICタグを探すこともできると考えて、パラメータをいろいろ変えて全数読み取るまでの時間を計測してみました。

試したパラメータは下記です。いずれも設定 > コントロールパネル > BHT Settings > RFID > PARAMETERから設定可能です。ここで設定した値はExcelToolにもそのまま反映されます。

  • Session Flag
  • Q Value
  • Session Flag Initialization

10回ずつ試行した結果が下記のグラフとなります。グラフ中のSxQyは、それぞれSession FlagがxでQ Valueがyであることを意味しています。後ろにSFIDが付いているものはSession Flag InitializationをDisableしていることを意味しています。(付いてないのはEnable)


まず、S0Q2, S1Q2, S2Q2とS0Q7, S1Q7, S2Q7をそれぞれ比較してみると、Q Valueについては7を設定した方が良さそうです。S0Q7, S1Q7, S2Q7を見てみると、Session Flagは0と2の方が1に比べて、読取時間もばらつきも小さいことが分かります。さらにSession Flag Initializationの有無について見てみると、S1Q7, S2Q7に比べて、S1Q7SFID, S2Q7SFIDの方が読取時間もばらつきも小さいことが分かります。Session Flag InitializationはDisableにした方が良さそうです。

図には表れていないのですが、S2Q7SFIDについては、10回のうち2回、いくら読んでも読めないタグが1枚ずつあったのと、モノ探しのときは音が鳴り続けて欲しいですが、この設定だと一発読んだら反応しなくなります(逆に検品や棚卸には向くと思います)。なので、全数読取による試行結果からは、Session Flagは1で、Q Valueは7、Session Flag InitializationをDisableするのがばらつきも少なく、読取時間的にも良さそうです。

Select Command

はじめに説明した通り、ExcelToolのICタグを探すは、周囲のタグをすべて読み取ります。一方でEPCglobal Class 1 Gen 2のSelectコマンドを使えば、探しているタグIDのみ絞り込んで読み取ることも可能です。ハンディ側のアプリを少し改造して試してみます。BHT-1281の場合、SetTagFilterOr() を使用すると実現できます。一点注意点として、この関数は複数のタグIDを一度に設定できるのですが、異なるタグID長のものを設定するとエラーとなるようです。

実験は箱に入ったタグ100枚のうち、10枚(下の写真のA~J)について緑の矢印の方向から読み取ってみました。


読取の様子はこんな感じ。ハンディを箱に徐々に近づけていきます。

10枚のタグについて、ハンディを箱に近づけて行きながら、最初に読み取られた距離と安定して読み取れる距離をそれぞれ3回計測して平均としてまとめました。

従来版はハンディアプリを改造せずそのまま使いました。パラメータはもっともよかったS1Q7SFIDを使っています。2つのSelect版はそれぞれ改造したハンディアプリを使っています。Select版SFIDのパラメータはS0Q2SFIDとしています。Select版はS0Q2です。なぜこのパラメータとしたかは、いろいろ試す時間がなかったので、勘でS0Q2SFIDとしてみて、ついでにS0Q2を試してみたという感じです。Session Flagが0なのにSFIDとする意味はあるのかとか、Session Flag InitializationとSelectの関係とか疑問はいろいろあるのですが、勉強不足でよく分かりませんでした。


では、最初に読み取った距離を見てみます。AとB、CとD、EとF、GとH、IとJはそれぞれハンディから同じくらいの距離のはずなのですが、差が出ています。周囲の環境のせいでしょうか。全体としてEとFの読取距離が短いです。これは周囲をタグで囲まれている影響でしょうか。ハンディから見て奥側は総じて従来版の読取がよく、中から手前側は改造版がよく、パラメータはSFIはEnableとした方がよいという結果となりました。特に周囲をタグに囲まれた状況では改造版による読取の改善が顕著です。従来版と比べてSelect版はEで約13%、Fで9%それぞれ読取り距離が改善しています。また、タグがハンディ側にある場合も、従来版と比べてSelect版はIで約2%、Jで約12%それぞれ読取距離が改善しています。


次に安定して読み取られた距離を見てみると、概ね最初に読み取った距離と同様の傾向が見て取れます。こちらも周囲をタグに囲まれた状況での読取の改善が顕著で、従来版と比べてSelect版はEで約24%、Fで約15%それぞれ読取距離が改善しています。また、タグがハンディ側にある場合も、従来版と比べてSelect版はIで約13%、Jで約12%それぞれ読取距離が改善しています。

考察

現場でのモノ探しを考えると、とにかく最初の一回が鳴るというのは大きいと思います。その場にあると確信してモノ探しができるからです。また、安定して鳴るというのも安心感につながると思います。現場の環境や使用するタグ、ハンディ、タグを何に貼るのか、タグの密度など、いろいろな条件によって結果は変わると思いますが、今回作った改造版は、ある条件では10%程度は読取距離が改善することが分かりました。これが役に立つかは状況次第でしょうか。

あとがき

実は改造版実装直後に読み取った感触ではもうちょっと改善するかなあと思っていたんですが、改めてちゃんと測るとそうでもなかったっていう話でした。最初に試した場所(開発環境)は周囲をいろんなタグに囲まれているので、そのせいで差を顕著に感じたのかもしれません。あとは実際の現場に行ったときの知識の一つとして持っておくとよいかなと思いました。

追記

お客様からこの機能を使って一度に何枚タグを指定して探せるのかご質問をいただきました。SDKに記載無かったので、実際に試してみました。7枚指定したところ、下記のExceptionが発生したため、{"Specified parameter for RFID.SetTagFilterOr is invalid."} 最大6枚まで指定できるものと思います。(非公式)

0 件のコメント:

コメントを投稿