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枚まで指定できるものと思います。(非公式)

2020年10月5日月曜日

Wi-Fi Directを使って、VPN経由で通信してみる

はじめにお断り。本記事はRFID関係ありません。でもたまにはいいよね?

前回、Wi-Fi Directを使ってリーダとExcelの接続まで行ってみました。この記事でのWi-Fi Directは、PCのモバイルホットスポットの方を指しています。で、そのときからうすうす気が付いてはいたのですが、PC上でVPNに接続すると、Wi-Fi Direct経由で接続したスマホからインターネット接続ができていませんでした。


使ったもの 

  • Windows 10 PC

手順

まず、ネットワーク接続を開いてください。下記のようになっていると思います。「Microsoft Wi-Fi Direct Virtual Ada...」と表示のあるアイコンの名称をメモしてください。
ここでは、「ローカルエリア接続* 11」となります。


お使いのVPNを接続してください。ここでは、SekaiVPNというアイコンを接続しました。すると、こんな感じに青くなると思います。

青くなったSekaiVPNを右クリックして、プロパティを選択してください。共有タブというのがあると思うので、それを開いてください。以下の感じです。

「ネットワークのほかのユーザーに、このコンピューターのインターネット接続をとおしての接続を許可する」にチェックをいれてください。チェック時にダイアログが表示されたら、OKを押してください。
ホームネットワーク接続に最初にメモした名称(ここでは、「ローカルエリア接続* 11」)を選択してください。

つぎに設定ボタンを押すと、こんな画面が表示されると思います。チェックすると、ダイアログが表示されるので、必要なポートだけチェックしてください。必要なポートが一覧になければ追加してください。

最後にVPN接続を切断し、再接続すると、Wi-Fi Directでつながった機器がVPN経由でインターネットに出られるようになると思います。

で、何がうれしいの?

個人的にはスマホ開発などで、手元にあるハンディをVPN接続先の開発環境に繋げるときでしょうか。スマホからもVPN接続すればいいだけですが、二度手間を省けますし、VPN接続のための資源を一つで済ませられます。あとはレガシーな機器で、Wi-Fiはサポートしているけど、VPN接続をサポートしてない場合にも使えると思います。

ただ、有線LANに接続するタイプの機器の場合は使えないですね。その場合は拠点間VPNを張るくらいですかね。何かよいアイデアあれば教えてください。