前回はリレーショナルデータベスを使いましたが、もっと簡単に実現したいです。
今回はコレクタにバッチファイルを実行させる方法です。
バッチファイルの作りかたは、知らなくても大丈夫。
AIに相談しました。
例えば「コマンドラインで時刻を取得して、その出力から特定の情報をとりたい。」
と相談すると、実例を交えて回答してくれるので、
コピーすると、やりたいバッチファイルが実現できました。
実行させるバッチファイルは、コレクタからの引数を、ちょこっと加工して新たにテキストファイルを作ります。
バッチファイルは今回も、コレクタからアンテナ番号をもらいます。
このバッチファイル(collog.bat)は、
「時刻情報+EPC情報+アンテナ番号」を入れて、拡張子「.coltxt」として作成します。
コレクタで何回か読み取ると、こいう感じになります。
つぎにエクセルで、このフォルダを監視して「*.coltxt」を、常に監視したい。
監視して、アンテナ番号と時刻の差分の秒数を計算して、ICタグ移動を知りたい。
と、AIに相談すると、
「モードレスのフォームを作り、そのフォームから数秒間隔で監視するのがお勧めです。
そのフォームの中から結果をエクセルシートに書いてはいかがですか。
こういうフォームを作ると実現できます。」
という回答をくれるので、試しに作ったり、エラーを相談したり、改良案を求めたり、
と、AIと一緒に考えました。
すると、実現できました!
左上の画面ではコレクタがバッチファイルを実行している様子が見えます。
下のエクセルでは、モードレスフォームを実行して「監視中」を表示しています。
フォームではコレクタが作ったファイルを監視して、
「持ち込み/持ち出し/移動無し/タイムアウト」を表示しています。
(タイムアウトとは、1回は読んだけど、次の読み取りまでの時間が長すぎた。
だから移動ではなく、移動は判断しないタイムアウトだね。
という意味です。今回の「移動」とは、読んでから10秒ぐらいの間に
再度の読み取りがあった。という考えです。)
エクセルのフォームのレイアウトや作り方は、皆さんが好みで作成されると良いでしょう。
コレクタから情報をもらい、新たにファイルを作成するバッチファイルは、
コレクタの仕様にしたがった呼び出しになりますので、下記にご紹介します。
【コレクタに設定する、collog.batの呼び出し】
【collog.bat】
set P=C:\RFID\CMD\
set T=%TIME: =0%
set F=%T:~0,2%%T:~3,2%%T:~6,2%%T:~9,2%
set D=%date:~0,4%%date:~5,2%%date:~8,2%
set EPC=%1%
set ANT=%2%
set YMD=%3%
set HMS=%4%
set OUTF=%P%%D%-%F%-%EPC%-%ANT%.coltxt
echo %OUTF%
echo %EPC%,%ANT%,%YMD%,%HMS% > %OUTF%
exit
0 件のコメント:
コメントを投稿